From b98f0e3904429c6d3b4abcb7d0ae33bbf27be730 Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Wed, 13 May 2026 12:11:54 +0100 Subject: [PATCH] lgtm --- .forgejo/workflows/docker-publish.yml | 84 +-- .../price_model.ipynb | 0 frontend/scripts/check-translations.mjs | 51 +- frontend/src/components/home/HomeFinalCta.tsx | 36 ++ frontend/src/components/home/HomePage.tsx | 36 +- .../src/components/home/ProductShowcase.tsx | 56 +- .../src/components/ui/TravelTimeInfoPopup.tsx | 3 +- frontend/src/components/ui/UserMenu.tsx | 2 +- frontend/src/hooks/useAuth.ts | 19 +- .../src/hooks/useHexagonSelection.test.ts | 6 +- frontend/src/hooks/useLicense.ts | 4 +- frontend/src/i18n/locales/de.ts | 589 +++++++++++++++-- frontend/src/i18n/locales/en.ts | 476 +++++++++++++- frontend/src/i18n/locales/fr.ts | 596 ++++++++++++++++-- frontend/src/i18n/locales/hi.ts | 574 +++++++++++++++-- frontend/src/i18n/locales/hu.ts | 576 +++++++++++++++-- frontend/src/i18n/locales/zh.ts | 501 +++++++++++++-- frontend/src/lib/api.ts | 13 +- frontend/src/lib/json-ld.ts | 11 + frontend/src/lib/seoLandingPages.ts | 66 ++ frontend/src/lib/travel-params.ts | 27 + frontend/src/lib/url-state.ts | 6 +- frontend/tailwind.config.js | 12 +- pipeline/test_validate_outputs.py | 61 ++ pipeline/utils/test_fuzzy_join.py | 61 ++ pipeline/utils/test_poi_counts.py | 27 + pitch.md | 73 --- r5-java/src/main/java/propertymap/App.java | 7 + screenshot/src/screenshot.ts | 50 +- screenshot/src/validation.test.ts | 43 ++ screenshot/src/validation.ts | 65 +- server-rs/Cargo.lock | 1 + server-rs/Cargo.toml | 1 + server-rs/src/routes/ai_filters.rs | 10 + server-rs/src/routes/stats.rs | 23 +- server-rs/src/routes/streetview.rs | 5 +- server-rs/src/routes/telemetry.rs | 18 +- video/render.sh | 26 +- 38 files changed, 3732 insertions(+), 483 deletions(-) rename price_model.ipynb => analyses/price_model.ipynb (100%) create mode 100644 frontend/src/components/home/HomeFinalCta.tsx create mode 100644 frontend/src/lib/json-ld.ts create mode 100644 frontend/src/lib/travel-params.ts create mode 100644 pipeline/test_validate_outputs.py delete mode 100644 pitch.md diff --git a/.forgejo/workflows/docker-publish.yml b/.forgejo/workflows/docker-publish.yml index 991aa00..10a3b89 100644 --- a/.forgejo/workflows/docker-publish.yml +++ b/.forgejo/workflows/docker-publish.yml @@ -6,10 +6,6 @@ on: tags: ["v*"] workflow_dispatch: -env: - REGISTRY: ${{ gitea.server_url }} - IMAGE_NAME: ${{ gitea.repository }} - jobs: build-and-push: runs-on: docker @@ -27,54 +23,64 @@ jobs: - name: Set up Docker Buildx uses: https://github.com/docker/setup-buildx-action@v3 + - name: Resolve registry vars + id: registry + run: | + host="${{ gitea.server_url }}" + host="${host#https://}" + host="${host#http://}" + repo=$(echo "${{ gitea.repository }}" | tr '[:upper:]' '[:lower:]') + { + echo "host=${host}" + echo "image=${host}/${repo}" + echo "screenshot_image=${host}/${repo}-screenshot" + } >> "$GITHUB_OUTPUT" + - name: Log in to Forgejo Container Registry uses: https://github.com/docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} + registry: ${{ steps.registry.outputs.host }} username: ${{ gitea.actor }} password: ${{ secrets.GITEA_TOKEN }} - - name: Determine image tags - id: tags - run: | - REPO=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]') - SHA_SHORT=$(echo "${{ gitea.sha }}" | cut -c1-7) - TAGS="${{ env.REGISTRY }}/${REPO}:sha-${SHA_SHORT}" + - name: Extract metadata (main) + id: meta + uses: https://github.com/docker/metadata-action@v5 + with: + images: ${{ steps.registry.outputs.image }} + tags: | + type=sha,format=short + type=raw,value=latest,enable={{is_default_branch}} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} - # Add latest tag on default branch - if [ "${{ gitea.ref }}" = "refs/heads/main" ]; then - TAGS="${TAGS},${{ env.REGISTRY }}/${REPO}:latest" - fi - - # Add version tags for semver tags - REF="${{ gitea.ref }}" - if [[ "$REF" =~ ^refs/tags/v([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then - VERSION="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}" - MINOR="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}" - TAGS="${TAGS},${{ env.REGISTRY }}/${REPO}:${VERSION}" - TAGS="${TAGS},${{ env.REGISTRY }}/${REPO}:${MINOR}" - fi - - echo "tags=${TAGS}" >> "$GITHUB_OUTPUT" - echo "repo=${REPO}" >> "$GITHUB_OUTPUT" - echo "sha_short=${SHA_SHORT}" >> "$GITHUB_OUTPUT" - - - name: Build and push + - name: Build and push (main) uses: https://github.com/docker/build-push-action@v6 with: context: . push: true - tags: ${{ steps.tags.outputs.tags }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ steps.tags.outputs.repo }}:buildcache - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ steps.tags.outputs.repo }}:buildcache,mode=max + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=registry,ref=${{ steps.registry.outputs.image }}:buildcache + cache-to: type=registry,ref=${{ steps.registry.outputs.image }}:buildcache,mode=max - - name: Build and push screenshot service + - name: Extract metadata (screenshot) + id: meta-screenshot + uses: https://github.com/docker/metadata-action@v5 + with: + images: ${{ steps.registry.outputs.screenshot_image }} + tags: | + type=sha,format=short + type=raw,value=latest,enable={{is_default_branch}} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + + - name: Build and push (screenshot) uses: https://github.com/docker/build-push-action@v6 with: context: ./screenshot push: true - tags: | - ${{ env.REGISTRY }}/${{ steps.tags.outputs.repo }}-screenshot:latest - ${{ env.REGISTRY }}/${{ steps.tags.outputs.repo }}-screenshot:sha-${{ steps.tags.outputs.sha_short }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ steps.tags.outputs.repo }}-screenshot:buildcache - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ steps.tags.outputs.repo }}-screenshot:buildcache,mode=max + tags: ${{ steps.meta-screenshot.outputs.tags }} + labels: ${{ steps.meta-screenshot.outputs.labels }} + cache-from: type=registry,ref=${{ steps.registry.outputs.screenshot_image }}:buildcache + cache-to: type=registry,ref=${{ steps.registry.outputs.screenshot_image }}:buildcache,mode=max diff --git a/price_model.ipynb b/analyses/price_model.ipynb similarity index 100% rename from price_model.ipynb rename to analyses/price_model.ipynb diff --git a/frontend/scripts/check-translations.mjs b/frontend/scripts/check-translations.mjs index 49638b9..64683bf 100644 --- a/frontend/scripts/check-translations.mjs +++ b/frontend/scripts/check-translations.mjs @@ -12,6 +12,8 @@ // 5. The lazy locale loader map covers every non-English supported language. // 6. Selected visible UI strings that previously slipped through are not // hardcoded outside the i18n files. +// 7. Server-derived feature/group names from server-rs/src/features.rs are +// present in en.ts > server so they can be translated. // // The script parses the TypeScript source with the compiler API and walks the // AST — no runtime import, no transpilation, no temp files. Run it with: @@ -26,6 +28,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url)); const I18N_DIR = join(__dirname, '..', 'src', 'i18n'); const LOCALES_DIR = join(I18N_DIR, 'locales'); const SRC_DIR = join(__dirname, '..', 'src'); +const FEATURES_RS = join(__dirname, '..', '..', 'server-rs', 'src', 'features.rs'); const PLACEHOLDER_RE = /\{\{\s*[a-zA-Z_][\w]*\s*\}\}/g; const HTML_TAG_RE = /<\/?[a-zA-Z][\w]*\b[^>]*>/g; @@ -204,6 +207,26 @@ function readLocale(code) { return obj; } +function readServerFeatureNames() { + const src = readFileSync(FEATURES_RS, 'utf8'); + const names = []; + const re = /\bname:\s*"((?:\\.|[^"\\])*)"/g; + for (const match of src.matchAll(re)) { + names.push(JSON.parse(`"${match[1]}"`)); + } + return [...new Set(names)]; +} + +function readServerFeatureConfigNames() { + const src = readFileSync(FEATURES_RS, 'utf8'); + const names = []; + const re = /Feature::(?:Enum|Numeric)\([^]*?name:\s*"((?:\\.|[^"\\])*)"/g; + for (const match of src.matchAll(re)) { + names.push(JSON.parse(`"${match[1]}"`)); + } + return [...new Set(names)]; +} + function readNamedRecord(file, varName) { const sf = parseFile(join(I18N_DIR, file)); const init = findVarInitializer(sf, varName); @@ -335,7 +358,7 @@ function checkLocales(supportedCodes) { } } -function checkRecordCoverage(file, varName, supportedCodes, serverKeys) { +function checkRecordCoverage(file, varName, supportedCodes, serverKeys, requiredKeys) { const record = readNamedRecord(file, varName); const expected = supportedCodes.filter((c) => c !== 'en'); const present = Object.keys(record); @@ -357,6 +380,12 @@ function checkRecordCoverage(file, varName, supportedCodes, serverKeys) { if (record[code]) for (const k of Object.keys(record[code])) union.add(k); } + for (const key of requiredKeys) { + if (!union.has(key)) { + fail(`${file}: missing translations for API feature "${key}"`); + } + } + for (const code of expected) { const langKeys = new Set(Object.keys(record[code] ?? {})); for (const key of union) { @@ -380,6 +409,14 @@ function checkRecordCoverage(file, varName, supportedCodes, serverKeys) { } } +function checkServerSourceCoverage(serverKeys) { + for (const name of readServerFeatureNames()) { + if (!serverKeys.has(name)) { + fail(`en.ts > server is missing API feature/group name "${name}" from features.rs`); + } + } +} + function collectSourceFiles(dir, out = []) { for (const entry of readdirSync(dir, { withFileTypes: true })) { const path = join(dir, entry.name); @@ -444,8 +481,16 @@ function main() { checkLocaleLoaders(supportedCodes); const en = readLocale('en'); const serverKeys = new Set(Object.keys(en.server ?? {})); - checkRecordCoverage('descriptions.ts', 'descriptions', supportedCodes, serverKeys); - checkRecordCoverage('details.ts', 'details', supportedCodes, serverKeys); + const sourceFeatureKeys = readServerFeatureConfigNames(); + checkServerSourceCoverage(serverKeys); + checkRecordCoverage( + 'descriptions.ts', + 'descriptions', + supportedCodes, + serverKeys, + sourceFeatureKeys + ); + checkRecordCoverage('details.ts', 'details', supportedCodes, serverKeys, sourceFeatureKeys); checkForbiddenVisibleStrings(); for (const w of warnings) console.warn(`warn: ${w}`); diff --git a/frontend/src/components/home/HomeFinalCta.tsx b/frontend/src/components/home/HomeFinalCta.tsx new file mode 100644 index 0000000..0d3158d --- /dev/null +++ b/frontend/src/components/home/HomeFinalCta.tsx @@ -0,0 +1,36 @@ +import { useTranslation } from 'react-i18next'; +import { trackEvent } from '../../lib/analytics'; + +const HOME_SECTION_HEADING_CLASS = + 'text-2xl md:text-3xl font-bold text-navy-950 dark:text-warm-100'; +const HOME_BODY_CLASS = 'text-base leading-relaxed text-warm-600 dark:text-warm-400'; +const HOME_PRIMARY_BUTTON_CLASS = + 'bg-coral-500 text-white rounded-lg font-semibold hover:bg-coral-600 transition-colors text-base shadow-lg shadow-coral-500/25 text-center'; + +export default function HomeFinalCta({ + onOpenDashboard, + trackingLocation = 'bottom', + className = '', +}: { + onOpenDashboard: () => void; + trackingLocation?: string; + className?: string; +}) { + const { t } = useTranslation(); + + return ( +
+

{t('home.ctaTitle')}

+

{t('home.ctaDescription')}

+ +
+ ); +} diff --git a/frontend/src/components/home/HomePage.tsx b/frontend/src/components/home/HomePage.tsx index 0585f77..35a0ffe 100644 --- a/frontend/src/components/home/HomePage.tsx +++ b/frontend/src/components/home/HomePage.tsx @@ -1,8 +1,8 @@ -import { useState, useEffect, useRef } from 'react'; +import { lazy, Suspense, useState, useEffect, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import { useFadeInRef } from '../../hooks/useFadeIn'; import HexCanvas from './HexCanvas'; -import ProductShowcase from './ProductShowcase'; +import HomeFinalCta from './HomeFinalCta'; import BottomIllustration from './BottomIllustration'; import { TickerValue } from '../ui/TickerValue'; import { ChevronIcon, LogoIcon, PlayIcon } from '../ui/icons'; @@ -23,6 +23,16 @@ const PRODUCT_DEMO_VIDEO_BY_LANGUAGE: Record = { hi: 'recording-hi', }; const PRODUCT_DEMO_SECTION_ID = 'product-demo-video'; +const ProductShowcase = lazy(() => import('./ProductShowcase')); + +function ProductShowcaseFallback({ className = '' }: { className?: string }) { + return ( + - + }> + + +
+
diff --git a/frontend/src/components/home/ProductShowcase.tsx b/frontend/src/components/home/ProductShowcase.tsx index 71eacae..420eb5c 100644 --- a/frontend/src/components/home/ProductShowcase.tsx +++ b/frontend/src/components/home/ProductShowcase.tsx @@ -3,13 +3,14 @@ import { useEffect, useMemo, useRef, + lazy, + Suspense, type ComponentType, type MutableRefObject, } from 'react'; import type { TFunction } from 'i18next'; import { useTranslation } from 'react-i18next'; import { cellToLatLng, polygonToCells } from 'h3-js'; -import ProductMap from '../map/Map'; import PriceHistoryChart from '../map/PriceHistoryChart'; import StackedBarChart from '../map/StackedBarChart'; import JourneyInstructions, { type JourneyInstructionPreset } from '../map/JourneyInstructions'; @@ -39,6 +40,7 @@ import type { } from '../../types'; const SHOWCASE_STEP_COUNT = 4; +const ProductMap = lazy(() => import('../map/Map')); const SHOWCASE_INTERVAL_MS = 5200; const SHOWCASE_SCOUT_INTERVAL_MS = 9000; const SHOWCASE_STEP_INTERVALS_MS = [ @@ -563,6 +565,7 @@ function FilterOnlyScreen({ isActive }: { isActive: boolean }) { function EnglandHexMapScreen({ isActive }: { isActive: boolean }) { const { t } = useTranslation(); const [viewState, setViewState] = useState(SHOWCASE_MAP_START_VIEW); + const [shouldRenderMap, setShouldRenderMap] = useState(isActive); const elapsedRef = useRef(0); const lastFrameRef = useRef(null); @@ -570,6 +573,7 @@ function EnglandHexMapScreen({ isActive }: { isActive: boolean }) { elapsedRef.current = 0; lastFrameRef.current = null; setViewState(SHOWCASE_MAP_START_VIEW); + if (isActive) setShouldRenderMap(true); }, [isActive]); useEffect(() => { @@ -596,29 +600,33 @@ function EnglandHexMapScreen({ isActive }: { isActive: boolean }) { return (
- {}} - features={DEMO_FEATURES} - selectedHexagonId={null} - hoveredHexagonId={null} - onHexagonClick={noopHexagonClick} - onHexagonHover={noopHexagonHover} - initialViewState={viewState} - theme="dark" - screenshotMode - hideLegend - densityLabel={t('home.showcaseMatchingHomesLabel')} - totalCount={SHOWCASE_MAP_TOTAL_COUNT} - /> + {shouldRenderMap && ( + + )}
Birmingham
diff --git a/frontend/src/components/ui/TravelTimeInfoPopup.tsx b/frontend/src/components/ui/TravelTimeInfoPopup.tsx index 87924d2..98e293b 100644 --- a/frontend/src/components/ui/TravelTimeInfoPopup.tsx +++ b/frontend/src/components/ui/TravelTimeInfoPopup.tsx @@ -15,8 +15,7 @@ export function TravelTimeInfoPopup({ return (

- {t('travelInfo.mainDesc')} - {modes.desc(mode)} {t('travelInfo.sliderHint')} + {t('travelInfo.mainDesc')} {modes.desc(mode)}. {t('travelInfo.sliderHint')}

); diff --git a/frontend/src/components/ui/UserMenu.tsx b/frontend/src/components/ui/UserMenu.tsx index 230790c..c2b00df 100644 --- a/frontend/src/components/ui/UserMenu.tsx +++ b/frontend/src/components/ui/UserMenu.tsx @@ -17,7 +17,7 @@ export default function UserMenu({ theme: 'light' | 'dark'; onToggleTheme: () => void; onLogout: () => void; - onNavigate: (page: Page) => void; + onNavigate: (page: Page, hash?: string) => void; }) { const { t } = useTranslation(); const [open, setOpen] = useState(false); diff --git a/frontend/src/hooks/useAuth.ts b/frontend/src/hooks/useAuth.ts index 87d926c..e944add 100644 --- a/frontend/src/hooks/useAuth.ts +++ b/frontend/src/hooks/useAuth.ts @@ -23,6 +23,11 @@ function recordToUser(record: { id: string; [key: string]: unknown }): AuthUser }; } +function authRefreshInvalidated(error: unknown): boolean { + const status = (error as { status?: unknown })?.status; + return status === 401 || status === 403; +} + export function useAuth() { const [user, setUser] = useState(() => { if (pb.authStore.isValid && pb.authStore.record) { @@ -128,12 +133,16 @@ export function useAuth() { setError(null); try { const result = await pb.collection('users').authRefresh(); - setUser(recordToUser(result.record)); + const refreshedUser = recordToUser(result.record); + setUser(refreshedUser); + return refreshedUser; } catch (err) { - // Token is invalid/expired — clear auth state but don't set error, - // since this is a background refresh, not a user-initiated action - pb.authStore.clear(); - setUser(null); + // Only clear auth on explicit token rejection. Network and 5xx failures + // should not log users out during background refresh. + if (authRefreshInvalidated(err)) { + pb.authStore.clear(); + setUser(null); + } throw err; } finally { setLoading(false); diff --git a/frontend/src/hooks/useHexagonSelection.test.ts b/frontend/src/hooks/useHexagonSelection.test.ts index 6320d84..a2534a4 100644 --- a/frontend/src/hooks/useHexagonSelection.test.ts +++ b/frontend/src/hooks/useHexagonSelection.test.ts @@ -134,8 +134,10 @@ describe('useHexagonSelection', () => { }); }); - expect(result.current.areaStats?.count).toBe(4); - expect(result.current.unfilteredAreaCount).toBeNull(); + await waitFor(() => { + expect(result.current.areaStats?.count).toBe(4); + expect(result.current.unfilteredAreaCount).toBeNull(); + }); expect(requests.some((url) => url.startsWith('/api/hexagon-stats'))).toBe(false); }); diff --git a/frontend/src/hooks/useLicense.ts b/frontend/src/hooks/useLicense.ts index 34d2707..6661718 100644 --- a/frontend/src/hooks/useLicense.ts +++ b/frontend/src/hooks/useLicense.ts @@ -6,7 +6,7 @@ export function useLicense() { const [checkingOut, setCheckingOut] = useState(false); const [error, setError] = useState(null); - const startCheckout = useCallback(async () => { + const startCheckout = useCallback(async (returnPath?: string) => { trackEvent('Checkout Start', { has_referral: 'false' }); setCheckingOut(true); setError(null); @@ -15,7 +15,7 @@ export function useLicense() { method: 'POST', ...authHeaders({ headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({}), + body: JSON.stringify(returnPath ? { return_path: returnPath } : {}), }), }); assertOk(res, 'Checkout'); diff --git a/frontend/src/i18n/locales/de.ts b/frontend/src/i18n/locales/de.ts index b5ab4e1..9bc2cd0 100644 --- a/frontend/src/i18n/locales/de.ts +++ b/frontend/src/i18n/locales/de.ts @@ -163,6 +163,14 @@ const de: Translations = { // ── License Success ──────────────────────────────── licenseSuccess: { + verifyingTitle: 'Zugang wird geprüft', + verifyingSubtitle: 'Wir prüfen dein Konto, bevor wir die Karte freischalten.', + verifyingDescription: 'Das dauert nach dem Bezahlen normalerweise nur ein paar Sekunden.', + activationDelayedTitle: 'Zahlung erhalten', + activationDelayedSubtitle: 'Der Zugang wird noch aktiviert.', + activationDelayedDescription: + 'Wir konnten die Kontoaktualisierung noch nicht bestätigen. Aktualisiere gleich noch einmal oder kontaktiere den Support, falls der Zugang nicht erscheint.', + stayOnPricing: 'Auf der Preisseite bleiben', title: 'Du bist dabei.', subtitle: 'Dein lebenslanger Zugang ist jetzt aktiv.', description: 'Voller Zugang zu allen Funktionen, allen Postleitzahlen, in ganz England.', @@ -270,7 +278,7 @@ const de: Translations = { carDesc: ' mit dem Auto, basierend auf typischen Straßengeschwindigkeiten und dem Straßennetz.', bicycleDesc: ' mit dem Fahrrad, auf fahrradfreundlichen Strecken.', walkingDesc: ' zu Fuß, über Fußwege und Bürgersteige.', - mainDesc: 'Zeigt, wie lange es dauert, das ausgewählte Ziel von jedem Gebiet aus zu erreichen', + mainDesc: 'Zeigt die Reisezeit vom ausgewählten Ziel zu jedem Gebiet.', sliderHint: 'Verwende den Schieberegler, um deine maximale Pendelzeit festzulegen.', }, @@ -357,8 +365,8 @@ const de: Translations = { viewProperties: '{{count}} Immobilien ansehen', viewPropertiesShort: 'Immobilien ansehen', priceHistory: 'Preisentwicklung', - journeysFrom: 'Verbindungen ab {{label}}', - to: 'Nach {{destination}}', + journeysFrom: 'Reisezeiten für {{label}}', + to: 'Von {{destination}}', noJourneyData: 'Keine Verbindungsdaten verfügbar', viewOnGoogleMaps: 'Auf Google Maps ansehen', walk: 'Zu Fuß', @@ -418,18 +426,18 @@ const de: Translations = { // ── Home Page ────────────────────────────────────── home: { - heroEyebrow: 'Für Käufer, die fragen: „Wo soll ich überhaupt suchen?“', - heroTitle1: 'Finden Sie die Postleitzahlen', - heroTitle2: 'die zu Ihrem Leben passen', - heroTitle3: 'Nicht nur die Gegenden, die Sie schon kennen.', + heroEyebrow: 'Finden Sie zuerst, wo Sie suchen sollten', + heroTitle1: 'Suchen Sie nicht länger', + heroTitle2: 'an den falschen Orten', + heroTitle3: 'Bevor Inserate Ihre Suche verengen.', heroSubtitle: - 'Von Londoner Stadtteilen über Pendlerorte bis zu regionalen Städten: England hat zu viele Orte, um sie einzeln zu recherchieren.', + 'Finden Sie Postleitzahlen, bei denen Budget, Pendelweg und Alltag zusammenpassen.', heroDescription: - 'Legen Sie Budget, Pendelzeit, Schulen, Sicherheit, Lärm, Breitband und Lebensstil fest. Perfect Postcode scannt Englands Postleitzahlen und zeigt Orte, die wirklich passen, auch Gegenden, die Sie nie in ein Immobilienportal eingegeben hätten.', - exploreTheMap: 'Passende Postleitzahlen finden', - seeTheDifference: 'So funktioniert es', - productDemoLabel: 'Perfect Postcode-Produktdemo', - playProductDemo: 'Perfect Postcode-Produktdemo abspielen', + 'Perfect Postcode filtert zuerst jede Postleitzahl, damit Sie Besichtigungen nur dort verfolgen, wo es wirklich passt.', + exploreTheMap: 'Zeigen Sie mir, wo ich suchen soll', + seeTheDifference: 'Demo ansehen', + productDemoLabel: 'Sehen, wie Sie zuerst den richtigen Suchort finden', + playProductDemo: 'Suchort-Demo abspielen', scrollToProductDemo: 'Zur Produktdemo scrollen', showcaseHeader: 'So funktioniert es', showcaseContext: 'So funktioniert Perfect Postcode', @@ -437,45 +445,44 @@ const de: Translations = { showcaseFeatureNoiseShort: 'Lärm', showcaseFeatureSchoolsShort: 'Schulen', showcaseFeatureTravelShort: 'Fahrzeit', - showcaseGoodPrimariesNearby: '{{count}}+ gute Grundschulen in der Nähe', - showcaseWithinRail: 'Innerhalb von {{count}} Min. zur Bahn', - showcaseMatchingHomesLabel: 'Passende Immobilien', - showcaseMatchingHomes: '{{value}} passende Immobilien', + showcaseGoodPrimariesNearby: '{{count}}+ gute oder hervorragende Grundschulen in der Nähe', + showcaseWithinRail: 'Innerhalb von {{count}} Min. eines Bahnhofs', + showcaseMatchingHomesLabel: 'Passende Postleitzahlen', + showcaseMatchingHomes: '{{value}} passende Postleitzahlen', showcaseMedianPrice: '{{value}} Median', showcaseJourneyRoutes: 'Routen', showcaseNearby: '{{value}} in der Nähe', showcasePoliticalVoteShare: 'Politischer Stimmenanteil', - showcaseLotsMore: '...und vieles mehr', + showcaseLotsMore: 'Mehr Nachbarschaftsdaten', showcaseMinutes: '{{count}} Min.', showcaseSendShortlist: 'Auswahlliste senden', showcaseDownloadXlsx: '.xlsx herunterladen', showcaseTopThree: 'Top 3', - showcaseScoutBullet1: - 'Gehen Sie durch die Straßen, bevor die Inseratsuche Ihre Optionen einengt.', + showcaseScoutBullet1: 'Prüfen Sie die Straße, bevor Sie sich auf Inseratsalarme festlegen.', showcaseScoutBullet2: 'Testen Sie den Pendelweg von einer echten Haustür, nicht nur anhand eines Bezirksnamens.', showcaseScoutBullet3: 'Vergleichen Sie Besichtigungen mit belastbaren Daten im Rücken.', showcaseStep1Tab: 'Filtern', - showcaseStep1Title: 'Aus vagen Wünschen eine präzise Suche machen', + showcaseStep1Title: 'Festlegen, was funktionieren muss', showcaseStep1Body: - 'Legen Sie fest, was zählt, und sehen Sie genau, wie viele unpassende Postleitzahlen jede Anforderung aus Ihrer Suche ausschließt.', + 'Fügen Sie Budget, Pendelweg, Schulen, Sicherheit, Lärm und lokale Details hinzu. Sehen Sie zu, wie die falschen Postleitzahlen herausfallen.', showcaseStep1Chip1: 'Ruhige Straßen', - showcaseStep1Chip2: 'Top-Grundschulen', + showcaseStep1Chip2: 'Gute Grundschulen in der Nähe', showcaseStep1Chip3: 'Unter £500k', showcaseStep1VennCenter: 'Postleitzahlen, die alle drei erfüllen', showcaseStep2Tab: 'Abgleichen', - showcaseStep2Title: 'Die Karte zeigt Orte, die Sie nicht eingegeben hätten', + showcaseStep2Title: 'Sehen Sie die Orte, die übrig bleiben', showcaseStep2Body: - 'Durchsuchen Sie England nach Passung, statt mit vertrauten Gebietsnamen zu beginnen. Verborgene Ecken werden sichtbar, bevor Immobilienportale Ihre Suche einengen.', + 'Suchen Sie nach praktischen Kriterien, nicht nach vertrauten Namen. Die Karte zeigt Postleitzahlen-Cluster, die Sie zuerst prüfen sollten.', showcaseStep2Region: 'Großraum London', showcaseStep2Sources: 'Land Registry · ONS · Ofsted · DfT', showcaseStep2ClustersLabel: 'Passende Gruppen', showcaseStep3Tab: 'Prüfen', - showcaseStep3Title: 'Prüfen, warum eine Postleitzahl passt', + showcaseStep3Title: 'Prüfen Sie die Daten', showcaseStep3Body: - 'Öffnen Sie ein passendes Gebiet und prüfen Sie Preise, Sicherheit, Schulen, Breitband und Kompromisse in einem Bereich, bevor Sie ein Wochenende dort verbringen.', - showcaseStep3HeaderArea: 'Ihre perfekte Postleitzahl', - showcaseStep3HeaderFit: 'Nachbarschaftsbelege', + 'Öffnen Sie eine Postleitzahl und sehen Sie Preis, Pendelweg, Schulen, Kriminalität, Breitband und Kompromisse, bevor Sie besichtigen.', + showcaseStep3HeaderArea: 'Vorausgewählte Postleitzahl', + showcaseStep3HeaderFit: 'Was passt', showcaseStep3Stat1Label: 'Verkaufspreis-Trend', showcaseStep3Stat2Label: 'Kriminalität', showcaseStep3Stat2Value: 'Unter dem Bezirksdurchschnitt', @@ -485,34 +492,35 @@ const de: Translations = { showcaseStep3Stat5Label: 'Grundschulen', showcaseStep3Stat5Value: '3 „Hervorragend“ innerhalb von 1 Meile', showcaseStep4Tab: 'Erkunden', - showcaseStep4Title: 'Selbst vor Ort prüfen', + showcaseStep4Title: 'Nehmen Sie die Auswahlliste mit auf die Straße', showcaseStep4Body: - 'Nehmen Sie drei fundierte Ausgangspunkte mit in die echte Welt. Laufen Sie durch die Straßen, testen Sie den Pendelweg und vergleichen Sie Besichtigungen mit Kontext.', + 'Exportieren Sie die prüfenswerten Postleitzahlen, testen Sie den Pendelweg, laufen Sie die Straßen ab und vergleichen Sie Besichtigungen mit gespeichertem Kontext.', showcaseStep4FileName: 'areas-to-scout.xlsx', showcaseStep4ExportLabel: 'Nach Excel exportieren', showcaseStep4ColPostcode: 'Postleitzahl', showcaseStep4ColScore: 'Passung', showcaseStep4ColCommute: 'Pendeln', - showcaseStep4ColPrice: 'Median verkauft', - showcaseStep4Conclusion: 'Von hier aus können Sie Ihre Suche beginnen.', - statProperties: 'historische Verkäufe', - statFilters: 'kombinierbare Filter', + showcaseStep4ColPrice: 'Median-Verkaufspreis', + showcaseStep4Conclusion: + 'Exportieren Sie eine Auswahlliste und beginnen Sie, die Straßen zu prüfen.', + statProperties: 'Verkäufe laut HM Land Registry', + statFilters: 'Möglichkeiten, die Karte einzugrenzen', statEvery: 'Jede', - statPostcodeInEngland: 'Postleitzahl in England', - ourPhilosophy: 'Beginnen Sie mit Ihrem Leben, nicht mit einer Postleitzahl', + statPostcodeInEngland: 'aktive Postleitzahl in England', + ourPhilosophy: 'Beginnen Sie nicht länger mit Orten, die Sie schon kennen.', philosophyP1: - 'Die meisten Immobilienseiten fragen, wo Sie wohnen möchten. In London ist das besonders schwierig, aber das gleiche Problem gibt es in ganz England: Käufer starten mit wenigen bekannten Orten und prüfen dann Pendelzeit, Schulen, Kriminalität, Street View, Breitband und Verkaufspreise in getrennten Tabs.', + 'Die meisten Suchen beginnen mit einem Ortsnamen und hoffen dann, dass passende Wohnungen auftauchen. Das überspringt die schwierigere Frage: Welche Orte lohnen sich wirklich für die Suche?', philosophyP2: - 'Perfect Postcode dreht die Suche um. Sagen Sie der Karte, was zählt, und sie zeigt passende Postleitzahlen mit nachvollziehbaren Gründen. Erst Daten, dann vor Ort das Gefühl prüfen.', + 'Perfect Postcode beginnt vor dem Immobilienportal. Legen Sie fest, was ein Ort leisten muss, und sehen Sie zuerst die Postleitzahlen, die Ihre Aufmerksamkeit verdienen.', streetTitle: 'Orte ändern sich von Straße zu Straße', streetIntro: - 'Große Gebietsnamen verdecken die Details, die zählen: Bahnhofsseite, Straßenlärm, Schulmix, genaue Pendelzeit und echte Verkaufspreise.', - streetCard1Title: 'Finden Sie Gegenden, die Sie übersehen hätten', + 'Die richtige Bahnhofsseite, eine laute Straße oder ein einzelner Schuleinzugsbereich können die Suche verändern. Gebietsnamen ebnen all das ein.', + streetCard1Title: 'Raus aus der Falle vertrauter Namen', streetCard1Body: - 'Entdecken Sie Postleitzahlen, die Ihren Anforderungen entsprechen, statt sich nur auf bekannte Namen, Empfehlungen oder Hype zu verlassen.', - streetCard2Title: 'Sehen Sie Kompromisse vor Besichtigungen', + 'Finden Sie passende Postleitzahlen außerhalb der Orte, die bereits auf Ihrer Liste stehen.', + streetCard2Title: 'Kennen Sie die Kompromisse, bevor Sie losgehen', streetCard2Body: - 'Vergleichen Sie Preis, Platz, Pendelzeit, Sicherheit, Schulen, Breitband, Lärm und Energieeffizienz, bevor Sie Wochenenden mit Besichtigungen verbringen.', + 'Prüfen Sie Preis, Pendelweg, Lärm, Schulen, Sicherheit, Breitband und nahe gelegene Ausstattung, bevor Sie Besichtigungen buchen.', othersVs: 'Andere vs', checkMyPostcode: 'Immobilienportale', areaGuides: 'Postleitzahl-Berichte', @@ -522,11 +530,11 @@ const de: Translations = { compAreaDataSub: '(Kriminalität, Schulen, Lärm, Breitband, Ausstattung)', compPropertyData: 'Historie auf Immobilienebene', compPropertyDataSub: '(Verkaufspreise, EPC, Wohnfläche, Schätzwert)', - compFilters: '56 Filter, die zusammenarbeiten', - compFiltersSub: '(nicht eine Postleitzahl oder ein Inserat nach dem anderen)', - ctaTitle: 'Hören Sie auf zu raten, wo Sie kaufen sollen.', + compFilters: 'Budget, Pendelweg, Schulen, Sicherheit und lokale Daten zusammen', + compFiltersSub: '(Budget + Pendelweg + Schulen + Sicherheit + lokaler Kontext)', + ctaTitle: 'Finden Sie heraus, wo Sie suchen sollten, bevor Sie Besichtigungen buchen.', ctaDescription: - 'Erstellen Sie eine Auswahlliste von Postleitzahlen, die zu Ihrem echten Leben passen, und prüfen Sie sie dann vor Ort.', + 'Erstellen Sie eine Postleitzahlen-Auswahlliste aus den Dingen, die zählen, und prüfen Sie dann die Straßen persönlich.', }, // ── Pricing Page ─────────────────────────────────── @@ -608,7 +616,7 @@ const de: Translations = { dsCrimeName: 'Kriminalitätsdaten auf Straßenebene', dsCrimeOrigin: 'data.police.uk', dsCrimeUse: - 'Kriminalitätsdaten auf Straßenebene von 2023 bis 2025, aggregiert als Jahresdurchschnitte nach LSOA und Deliktsart (Gewalt, Einbruch, antisoziales Verhalten, Drogen, Fahrzeugkriminalität usw.).', + 'Kriminalitätsdaten auf Straßenebene aggregiert als Jahresdurchschnitte nach LSOA und Deliktsart (Gewalt, Einbruch, antisoziales Verhalten, Drogen, Fahrzeugkriminalität usw.).', dsOsmName: 'OpenStreetMap-POIs', dsOsmOrigin: 'OpenStreetMap contributors / Geofabrik', dsOsmUse: @@ -624,7 +632,7 @@ const de: Translations = { dsTowName: 'Nationale Karte der Bäume außerhalb von Waldflächen', dsTowOrigin: 'Forest Research / Defra NCEA', dsTowUse: - 'Baumkronen-Polygone für Einzelbäume, Baumgruppen und kleine Gehölze in England. Hier verwendet, um die straßennahe Baumdichte rund um Immobilienadressen zu schätzen.', + 'Baumkronen-Polygone für Einzelbäume, Baumgruppen und kleine Gehölze in England. Hier verwendet, um Baumdeckungs-Perzentile rund um Postleitzahlen-Zentroide zu schätzen.', dsNaptanName: 'NaPTAN (Haltestellen des öffentlichen Verkehrs)', dsNaptanOrigin: 'Department for Transport', dsNaptanUse: @@ -777,6 +785,10 @@ const de: Translations = { receiveNewsletter: 'Newsletter-E-Mails erhalten', needHelp: 'Brauchst du Hilfe? Schreib uns an', responseTime: 'Wir antworten in der Regel innerhalb von 24 Stunden.', + shareLinksTitle: 'Geteilte Links', + noShareLinksYet: 'Noch keine geteilten Links', + copyShareLink: 'Geteilten Link kopieren', + clicksLabel: 'Klicks', }, // ── Saved Page ───────────────────────────────────── @@ -926,6 +938,7 @@ const de: Translations = { 'Current energy rating': 'Aktuelle Energiebewertung', 'Potential energy rating': 'Potenzielle Energiebewertung', 'Interior height (m)': 'Raumhöhe (m)', + 'Street tree density percentile': 'Perzentil der Straßenbaumdichte', // ─ Feature names (Transport) ─ 'Travel time to nearest train or tube station (min)': @@ -1123,6 +1136,482 @@ const de: Translations = { ' years': ' Jahre', ' rooms': ' Zimmer', }, + + seo: { + 'Property price map': 'Immobilienpreiskarte', + 'Compare property prices across every postcode in England': + 'Vergleichen Sie Immobilienpreise für alle Postleitzahlen in England', + 'Property price map for England - Compare postcodes before viewing': + 'Immobilienpreiskarte für England – Vergleichen Sie die Postleitzahlen vor der Ansicht', + 'Compare sold prices, estimated current value, price per square metre and local context across English postcodes before searching listings.': + 'Vergleichen Sie die Verkaufspreise, den geschätzten aktuellen Wert, den Preis pro Quadratmeter und den lokalen Kontext in allen englischen Postleitzahlen, bevor Sie nach Angeboten suchen.', + 'Perfect Postcode maps sold prices, estimated current value, price per square metre, property type, floor area, tenure, and local context so buyers can find realistic search areas before opening listing portals.': + 'Perfect Postcode bildet die Verkaufspreise, den geschätzten aktuellen Wert, den Preis pro Quadratmeter, den Immobilientyp, die Grundfläche, den Besitz und den lokalen Kontext ab, sodass Käufer realistische Suchbereiche finden können, bevor sie Angebotsportale öffnen.', + 'Screen historical sale prices and current-value estimates by postcode.': + 'Überprüfen Sie historische Verkaufspreise und aktuelle Wertschätzungen nach Postleitzahl.', + 'Compare value with commute, schools, broadband, crime, noise, and amenities.': + 'Vergleichen Sie den Wert mit Pendelverkehr, Schulen, Breitband, Kriminalität, Lärm und Annehmlichkeiten.', + 'Build a shortlist before spending weekends on viewings.': + 'Erstellen Sie eine Auswahlliste, bevor Sie die Wochenenden mit Besichtigungen verbringen.', + 'Find postcodes that fit the budget before listings appear': + 'Finden Sie Postleitzahlen, die zum Budget passen, bevor Einträge erscheinen', + 'Start with a maximum price and property type, then colour the map by price per square metre or estimated current price. This helps reveal areas where similar homes have historically traded within reach, even when there are no live listings today.': + 'Beginnen Sie mit einem Höchstpreis und einem Immobilientyp und färben Sie die Karte dann nach dem Preis pro Quadratmeter oder dem geschätzten aktuellen Preis ein. Dies hilft dabei, Bereiche aufzudecken, in denen in der Vergangenheit ähnliche Häuser in Reichweite gehandelt wurden, auch wenn es heute keine Live-Einträge gibt.', + 'Filter by last known sale price, estimated current value, property type, tenure, and floor area.': + 'Filtern Sie nach dem letzten bekannten Verkaufspreis, dem geschätzten aktuellen Wert, der Art der Immobilie, der Nutzungsdauer und der Grundfläche.', + 'Compare nearby postcodes using the same criteria instead of relying on area reputation.': + 'Vergleichen Sie nahegelegene Postleitzahlen anhand derselben Kriterien, anstatt sich auf die Reputation der Region zu verlassen.', + 'Use the results as a shortlist for listing alerts, local research, and viewings.': + 'Verwenden Sie die Ergebnisse als Auswahlliste für die Auflistung von Benachrichtigungen, lokale Recherchen und Besichtigungen.', + 'Separate cheap from good value': 'Trennen Sie günstig vom guten Preis-Leistungs-Verhältnis', + 'A lower price can reflect smaller homes, weaker transport, more noise, or fewer local services. The map keeps those trade-offs visible so the cheapest postcode isn’t automatically treated as the best option.': + 'Ein niedrigerer Preis kann auf kleinere Häuser, schwächere Transportmöglichkeiten, mehr Lärm oder weniger lokale Dienstleistungen zurückzuführen sein. Die Karte macht diese Kompromisse sichtbar, sodass die günstigste Postleitzahl nicht automatisch als beste Option behandelt wird.', + 'Start from area value, not listing availability': + 'Beginnen Sie mit dem Flächenwert und geben Sie nicht die Verfügbarkeit an', + 'Listing portals only show homes for sale today. A postcode-level property price map lets you compare wider areas, understand local price patterns, and avoid missing places where the next suitable listing might appear.': + 'Auf Immobilienportalen werden heute ausschließlich Häuser zum Verkauf angeboten. Mit einer Immobilienpreiskarte auf Postleitzahlenebene können Sie größere Gebiete vergleichen, lokale Preismuster verstehen und vermeiden, Orte zu verpassen, an denen das nächste passende Angebot erscheinen könnte.', + 'Use prices alongside real constraints': 'Nutzen Sie Preise neben realen Zwängen', + 'Budget rarely matters on its own. Perfect Postcode combines price filters with travel time, school quality, property size, energy performance, local environment, and services so your shortlist reflects how you actually want to live.': + 'Das Budget allein spielt selten eine Rolle. Perfect Postcode kombiniert Preisfilter mit Reisezeit, Schulqualität, Grundstücksgröße, Energieleistung, lokaler Umgebung und Dienstleistungen, sodass Ihre Auswahlliste widerspiegelt, wie Sie tatsächlich leben möchten.', + 'What the price data is for': 'Wozu dienen die Preisdaten?', + 'Use the map to compare areas and spot search candidates. It isn’t a valuation, mortgage decision, survey, legal search, or live listing feed.': + 'Nutzen Sie die Karte, um Gebiete zu vergleichen und Suchkandidaten zu erkennen. Es handelt sich nicht um eine Bewertung, eine Hypothekenentscheidung, eine Umfrage, eine rechtliche Suche oder einen Live-Eintrags-Feed.', + 'How to validate a promising area': 'So validieren Sie einen vielversprechenden Bereich', + 'Once a postcode looks promising, check current listings, sold-price comparables, agent details, flood searches, legal packs, surveys, and local authority information before making a decision.': + 'Sobald eine Postleitzahl vielversprechend aussieht, prüfen Sie aktuelle Angebote, Vergleichswerte zu Verkaufspreisen, Maklerdetails, Überschwemmungssuchen, Rechtsbeilagen, Umfragen und Informationen der örtlichen Behörden, bevor Sie eine Entscheidung treffen.', + 'Is this a replacement for Rightmove or Zoopla?': + 'Ist dies ein Ersatz für Rightmove oder Zoopla?', + 'No. Use it before and alongside listing portals. Perfect Postcode helps decide where to look; listing portals show what’s currently for sale.': + 'Nein. Verwenden Sie es vor und neben Immobilienportalen. Perfect Postcode hilft bei der Entscheidung, wo gesucht werden soll. Immobilienportale zeigen, was gerade zum Verkauf steht.', + 'Can I compare price with schools or commute time?': + 'Kann ich den Preis mit Schulen oder der Pendelzeit vergleichen?', + 'Yes. Price filters can be combined with travel-time, schools, crime, broadband, road-noise, amenities, and environment filters.': + 'Ja. Preisfilter können mit Reisezeit-, Schul-, Kriminalitäts-, Breitband-, Straßenlärm-, Ausstattungs- und Umgebungsfiltern kombiniert werden.', + 'Does the map cover all of the UK?': 'Deckt die Karte ganz Großbritannien ab?', + 'The current product focuses on England because several core property and postcode datasets are England-specific.': + 'Das aktuelle Produkt konzentriert sich auf England, da mehrere Kerndatensätze zu Grundstücken und Postleitzahlen spezifisch für England sind.', + 'Birmingham property search guide': 'Leitfaden für die Immobiliensuche in Birmingham', + 'A worked example for balancing price, commute, and family trade-offs.': + 'Ein praktisches Beispiel für den Ausgleich von Preis-, Pendel- und Familienkompromissen.', + 'Data sources and coverage': 'Datenquellen und Abdeckung', + 'See which datasets sit behind the postcode filters and where they have limits.': + 'Sehen Sie, welche Datensätze sich hinter den Postleitzahlenfiltern befinden und wo diese Grenzen haben.', + Methodology: 'Methodik', + 'Understand how the map is intended to support shortlisting, not replace due diligence.': + 'Verstehen Sie, dass die Karte die Auswahl von Kandidaten unterstützen und nicht die Due Diligence ersetzen soll.', + 'Postcode checker': 'Postleitzahlenprüfer', + 'Check one postcode before you spend time on a viewing.': + 'Überprüfen Sie eine Postleitzahl, bevor Sie Zeit für eine Besichtigung aufwenden.', + 'Explore the property map': 'Entdecken Sie die Immobilienkarte', + 'Postcode property search': 'Immobiliensuche nach Postleitzahlen', + 'Find postcodes that match your property search criteria': + 'Finden Sie Postleitzahlen, die Ihren Immobiliensuchkriterien entsprechen', + 'Postcode property search - Find areas that match your criteria': + 'Immobiliensuche nach Postleitzahlen – Finden Sie Gebiete, die Ihren Kriterien entsprechen', + 'Search every postcode by budget, property type, floor area, tenure, commute, schools, crime, broadband, noise, parks and local amenities.': + 'Durchsuchen Sie jede Postleitzahl nach Budget, Immobilientyp, Grundfläche, Besitz, Pendelverkehr, Schulen, Kriminalität, Breitband, Lärm, Parks und lokalen Annehmlichkeiten.', + 'Search every postcode by budget, property type, size, tenure, commute, schools, crime, broadband, noise, parks, and local amenities instead of checking areas one at a time.': + 'Durchsuchen Sie jede Postleitzahl nach Budget, Immobilientyp, Größe, Nutzungsdauer, Pendelverkehr, Schulen, Kriminalität, Breitband, Lärm, Parks und lokalen Annehmlichkeiten, anstatt die Gebiete einzeln zu überprüfen.', + 'Filter England-wide postcode data from one map.': + 'Filtern Sie englandweite Postleitzahlendaten aus einer Karte.', + 'Shortlist unfamiliar areas with comparable evidence.': + 'Nehmen Sie unbekannte Gebiete mit vergleichbaren Beweisen in die engere Auswahl.', + 'Save and share search areas before booking viewings.': + 'Speichern und teilen Sie Suchbereiche, bevor Sie Besichtigungen buchen.', + 'Turn a broad brief into postcode candidates': + 'Verwandeln Sie einen umfassenden Auftrag in Postleitzahlenkandidaten', + 'Enter the practical constraints first: budget, property size, tenure, travel time, school needs, broadband, and tolerance for road noise or crime levels. The map removes places that fail those constraints and keeps the remaining options comparable.': + 'Geben Sie zunächst die praktischen Einschränkungen ein: Budget, Grundstücksgröße, Besitzdauer, Reisezeit, Schulbedarf, Breitbandanschluss und Toleranz gegenüber Straßenlärm oder Kriminalität. Die Karte entfernt Orte, die diese Einschränkungen nicht erfüllen, und sorgt dafür, dass die verbleibenden Optionen vergleichbar bleiben.', + 'Relax one constraint at a time': 'Lockern Sie eine Einschränkung nach der anderen', + 'When the search becomes too narrow, loosen a single filter and watch which postcodes reappear. This makes compromise explicit instead of relying on guesswork.': + 'Wenn die Suche zu eng wird, lockern Sie einen einzelnen Filter und beobachten Sie, welche Postleitzahlen wieder auftauchen. Dies macht Kompromisse explizit, anstatt sich auf Vermutungen zu verlassen.', + 'Turn vague areas into specific postcodes': + 'Verwandeln Sie unklare Gebiete in konkrete Postleitzahlen', + 'Broad town or borough searches hide large differences between streets. Perfect Postcode helps you move from a general area to postcodes that satisfy your hard requirements.': + 'Bei umfangreichen Stadt- oder Bezirkssuchen verbergen sich große Unterschiede zwischen den Straßen. Perfect Postcode hilft Ihnen, von einem allgemeinen Gebiet zu Postleitzahlen zu gelangen, die Ihren harten Anforderungen entsprechen.', + 'Keep trade-offs visible': 'Halten Sie Kompromisse sichtbar', + 'When there are too many or too few matches, adjust one constraint at a time and see exactly which postcodes reappear. That makes compromises explicit instead of relying on guesswork.': + 'Wenn es zu viele oder zu wenige Übereinstimmungen gibt, passen Sie jeweils eine Einschränkung an und sehen Sie genau, welche Postleitzahlen wieder angezeigt werden. Das macht Kompromisse explizit, anstatt sich auf Vermutungen zu verlassen.', + 'Why postcode-level comparison matters': + 'Warum der Vergleich auf Postleitzahlenebene wichtig ist', + 'Two nearby postcodes can differ on schools, road noise, transport access, property mix, and price. Comparing at postcode level reduces the chance of treating a whole town as one uniform market.': + 'Zwei nahegelegene Postleitzahlen können sich hinsichtlich Schulen, Straßenlärm, Verkehrsanbindung, Immobilienmix und Preis unterscheiden. Ein Vergleich auf Postleitzahlenebene verringert die Wahrscheinlichkeit, dass eine ganze Stadt als ein einheitlicher Markt behandelt wird.', + 'How to use the results': 'So nutzen Sie die Ergebnisse', + 'Treat matching postcodes as a research queue: check live listings, visit streets, confirm schools and admissions, and review current official sources.': + 'Behandeln Sie übereinstimmende Postleitzahlen wie eine Recherchewarteschlange: Überprüfen Sie Live-Einträge, besuchen Sie Straßen, bestätigen Sie Schulen und Zulassungen und überprüfen Sie aktuelle offizielle Quellen.', + 'Can I save a postcode property search?': + 'Kann ich eine Postleitzahlen-Immobiliensuche speichern?', + 'Yes. Licensed users can save searches and return to them later. Saved searches are designed for shortlists and comparison notes.': + 'Ja. Lizenzierte Benutzer können Suchanfragen speichern und später darauf zurückgreifen. Gespeicherte Suchen sind für Auswahllisten und Vergleichsnotizen konzipiert.', + 'Can I search without knowing the area?': 'Kann ich suchen, ohne die Gegend zu kennen?', + 'Yes. The map is designed to surface unfamiliar areas that match practical constraints, not just places you already know.': + 'Ja. Die Karte ist so konzipiert, dass sie unbekannte Gebiete aufzeigt, die den praktischen Gegebenheiten entsprechen, und nicht nur Orte, die Sie bereits kennen.', + 'Are the results live property listings?': + 'Handelt es sich bei den Ergebnissen um Live-Immobilienanzeigen?', + 'No. The tool compares postcode data and historical/contextual property signals. You still need listing portals for current availability.': + 'Nein. Das Tool vergleicht Postleitzahlendaten und historische/kontextbezogene Immobiliensignale. Für die aktuelle Verfügbarkeit benötigen Sie weiterhin Immobilienportale.', + 'Manchester property search guide': 'Leitfaden zur Immobiliensuche in Manchester', + 'A regional guide for narrowing a broad search around Greater Manchester.': + 'Ein regionaler Leitfaden zur Eingrenzung einer umfassenden Suche im Großraum Manchester.', + 'Start a postcode search': 'Starten Sie eine Postleitzahlensuche', + 'Commute property search': 'Pendler-Immobiliensuche', + 'Search for places to live by commute time': 'Suchen Sie nach Wohnorten nach Pendelzeit', + 'Commute property search - Find places to live by travel time': + 'Pendler-Immobiliensuche – Finden Sie Wohnorte nach Reisezeit', + 'Filter postcodes by commute time, then compare price, schools, safety, broadband, road noise, parks and property data on one map.': + 'Filtern Sie Postleitzahlen nach Pendelzeit und vergleichen Sie dann Preise, Schulen, Sicherheit, Breitband, Straßenlärm, Parks und Grundstücksdaten auf einer Karte.', + 'Filter postcodes by modelled car, cycling, walking, and public transport travel times, then layer on property price, schools, crime, broadband, noise, and local amenities.': + 'Filtern Sie Postleitzahlen nach modellierten Fahrzeiten für Autos, Radfahrer, Fußgänger und öffentliche Verkehrsmittel und fügen Sie dann Immobilienpreise, Schulen, Kriminalität, Breitband, Lärm und örtliche Annehmlichkeiten hinzu.', + 'Compare reachable postcodes by realistic travel-time bands.': + 'Vergleichen Sie erreichbare Postleitzahlen anhand realistischer Reisezeitbereiche.', + 'Search by destination first, then filter for property and neighbourhood fit.': + 'Suchen Sie zuerst nach Reiseziel und filtern Sie dann nach der passenden Immobilie und Nachbarschaft.', + 'Avoid areas that look close on a map but fail the daily journey.': + 'Vermeiden Sie Gebiete, die auf einer Karte zwar nah anmutend aussehen, auf der täglichen Reise aber scheitern.', + 'Start with the destination that matters': 'Beginnen Sie mit dem Ziel, das zählt', + 'Choose a commute destination, transport mode, and time range, then add the property filters. This prevents a cheap-looking area from reaching the shortlist if the daily journey doesn’t work.': + 'Wählen Sie ein Pendelziel, ein Transportmittel und einen Zeitraum aus und fügen Sie dann die Eigenschaftsfilter hinzu. Dadurch wird verhindert, dass ein günstig erscheinendes Gebiet in die engere Wahl kommt, wenn die tägliche Anreise nicht klappt.', + 'Compare the commute against the rest of daily life': + 'Vergleichen Sie den Weg zur Arbeit mit dem Rest des täglichen Lebens', + 'A fast commute isn’t enough if the property size, school context, safety threshold, broadband, or road-noise exposure don’t fit. The map keeps those signals side by side.': + 'Ein schnelles Pendeln reicht nicht aus, wenn die Grundstücksgröße, der Schulkontext, die Sicherheitsschwelle, das Breitbandnetz oder die Straßenlärmbelastung nicht passen. Die Karte hält diese Signale nebeneinander.', + 'Commute from postcodes, not just place names': + 'Pendeln Sie über Postleitzahlen, nicht nur über Ortsnamen', + 'Two streets in the same town can have very different station access, road routes, and public transport options. Postcode-level travel-time filtering keeps that difference visible.': + 'Zwei Straßen in derselben Stadt können sehr unterschiedliche Bahnhofszufahrten, Straßenrouten und öffentliche Verkehrsmittel haben. Durch die Reisezeitfilterung auf Postleitzahlenebene bleibt dieser Unterschied sichtbar.', + 'Balance journey time with the rest of the move': + 'Gleichen Sie die Reisezeit mit dem Rest des Umzugs aus', + 'A fast commute only helps if the area also fits your budget, housing needs, school preferences, safety threshold, broadband requirement, and tolerance for road noise.': + 'Ein schnelles Pendeln hilft nur, wenn die Gegend auch zu Ihrem Budget, Ihren Wohnbedürfnissen, Ihren Schulpräferenzen, Ihrer Sicherheitsschwelle, Ihrem Breitbandbedarf und Ihrer Toleranz gegenüber Straßenlärm passt.', + 'How travel-time filters should be interpreted': + 'Wie Reisezeitfilter interpretiert werden sollten', + 'Travel-time modelling is useful for comparing areas consistently. Before committing, check current timetables, disruption patterns, parking, cycling conditions, and walking routes.': + 'Die Reisezeitmodellierung ist nützlich, um Gebiete konsistent zu vergleichen. Bevor Sie sich verpflichten, prüfen Sie die aktuellen Fahrpläne, Störungsmuster, Parkmöglichkeiten, Fahrradbedingungen und Wanderrouten.', + 'Why commute filters are combined with property data': + 'Warum Pendelfilter mit Immobiliendaten kombiniert werden', + 'Commute search is most useful when it removes impossible areas while still showing whether the remaining options are affordable and liveable.': + 'Die Pendelsuche ist am nützlichsten, wenn sie unmögliche Bereiche entfernt und gleichzeitig anzeigt, ob die verbleibenden Optionen erschwinglich und lebenswert sind.', + 'Can I compare car, cycling, walking, and public transport?': + 'Kann ich Auto, Radfahren, Wandern und öffentliche Verkehrsmittel vergleichen?', + 'The product supports multiple travel modes where precomputed destination data is available.': + 'Das Produkt unterstützt mehrere Reisemodi, bei denen vorberechnete Zieldaten verfügbar sind.', + 'Are travel times exact?': 'Sind die Reisezeiten genau?', + 'No. Treat them as a consistent comparison model, then verify the real route before making viewing or purchase decisions.': + 'Nein. Behandeln Sie sie als konsistentes Vergleichsmodell und überprüfen Sie dann die tatsächliche Route, bevor Sie eine Betrachtungs- oder Kaufentscheidung treffen.', + 'Can I combine commute filters with schools and price?': + 'Kann ich Pendelfilter mit Schulen und Preis kombinieren?', + 'Yes. The commute filter can be layered with property price, size, schools, broadband, crime, amenities, and environmental signals.': + 'Ja. Der Pendelfilter kann mit Immobilienpreis, Größe, Schulen, Breitband, Kriminalität, Ausstattung und Umweltsignalen geschichtet werden.', + 'Bristol property search guide': 'Leitfaden zur Immobiliensuche in Bristol', + 'A worked example for balancing city access, price, and local context.': + 'Ein praktisches Beispiel für den Ausgleich von Stadterreichbarkeit, Preis und lokalem Kontext.', + 'Search by commute time': 'Suche nach Pendelzeit', + 'Schools and property search': 'Suche nach Schulen und Immobilien', + 'Find property search areas with schools and family trade-offs in view': + 'Finden Sie Immobiliensuchgebiete mit Blick auf Schulen und Familienkonflikte', + 'School property search - Compare postcodes for family moves': + 'Suche nach Schulgrundstücken – Vergleichen Sie Postleitzahlen für Familienumzüge', + 'Compare nearby schools, property size, prices, parks, safety, commute and local amenities before building a viewing shortlist.': + 'Vergleichen Sie Schulen in der Nähe, Grundstücksgröße, Preise, Parks, Sicherheit, Pendelverkehr und örtliche Annehmlichkeiten, bevor Sie eine Besichtigungsliste erstellen.', + 'Compare nearby Ofsted ratings, education context, property size, budget, safety, parks, commute, and local amenities before narrowing your viewing shortlist.': + 'Vergleichen Sie die Bewertungen von Ofsted in der Nähe, Bildungskontext, Grundstücksgröße, Budget, Sicherheit, Parks, Pendelverkehr und örtliche Annehmlichkeiten, bevor Sie Ihre Auswahlliste eingrenzen.', + 'Filter for nearby school quality alongside housing requirements.': + 'Filtern Sie neben den Wohnbedürfnissen auch nach der Qualität einer Schule in der Nähe.', + 'Compare family-friendly trade-offs across unfamiliar postcodes.': + 'Vergleichen Sie familienfreundliche Kompromisse über unbekannte Postleitzahlen hinweg.', + 'Use the map as a shortlist tool before checking admissions and catchments.': + 'Nutzen Sie die Karte als Tool für die Auswahlliste, bevor Sie Zulassungen und Einzugsgebiete prüfen.', + 'Use school context without ignoring the home': + 'Nutzen Sie den schulischen Kontext, ohne das Zuhause zu vernachlässigen', + 'Start with property size, budget, and commute constraints, then layer in nearby school quality and local context. This prevents school-led searches from hiding affordability or daily-life problems.': + 'Beginnen Sie mit der Grundstücksgröße, dem Budget und den Pendelbeschränkungen und berücksichtigen Sie dann die Qualität der nahegelegenen Schule und den lokalen Kontext. Dadurch wird verhindert, dass schulische Suchvorgänge Erschwinglichkeits- oder Alltagsprobleme verbergen.', + 'Verify admissions before deciding': + 'Überprüfen Sie die Zulassungen, bevor Sie eine Entscheidung treffen', + 'School data can point to promising areas, but admissions rules and catchments can change. Confirm current arrangements with schools and local authorities.': + 'Schuldaten können auf vielversprechende Gebiete hinweisen, aber Zulassungsregeln und Einzugsgebiete können sich ändern. Bestätigen Sie aktuelle Vereinbarungen mit Schulen und lokalen Behörden.', + 'School quality is one part of the shortlist': + 'Die Schulqualität ist ein Teil der engeren Auswahl', + 'Perfect Postcode helps you compare nearby school data with the other practical constraints that shape a family move: space, price, commute, parks, safety, and local services.': + 'Mit Perfect Postcode können Sie die Daten einer nahegelegenen Schule mit den anderen praktischen Einschränkungen vergleichen, die einen Familienumzug beeinflussen: Platz, Preis, Pendelverkehr, Parks, Sicherheit und örtliche Dienstleistungen.', + 'Check catchments before making decisions': + 'Überprüfen Sie die Einzugsgebiete, bevor Sie Entscheidungen treffen', + 'Admissions rules and catchment boundaries can change. Use postcode-level school data to find promising areas, then verify current admissions details with the school or local authority.': + 'Zulassungsregeln und Einzugsgebietsgrenzen können sich ändern. Verwenden Sie Schuldaten auf Postleitzahlenebene, um vielversprechende Gebiete zu finden, und überprüfen Sie dann die aktuellen Zulassungsdaten bei der Schule oder der örtlichen Behörde.', + 'How to treat school filters': 'Wie man Schulfilter behandelt', + 'Use school filters to narrow research, not to assume admission eligibility. Ratings, distance, admissions criteria, and school capacity should all be checked with current official sources.': + 'Verwenden Sie Schulfilter, um die Recherche einzugrenzen und nicht, um eine Zulassungsberechtigung anzunehmen. Bewertungen, Entfernung, Zulassungskriterien und Schulkapazität sollten anhand aktueller offizieller Quellen überprüft werden.', + 'Family trade-offs to compare': 'Familienkompromisse zum Vergleich', + 'Combine schools with parks, road noise, crime, property size, commute, broadband, and price so the shortlist reflects the whole move.': + 'Kombinieren Sie Schulen mit Parks, Straßenlärm, Kriminalität, Grundstücksgröße, Pendelverkehr, Breitband und Preis, damit die Auswahlliste den gesamten Umzug widerspiegelt.', + 'Does this show school catchment guarantees?': + 'Zeigt dies die Einzugsgebietsgarantien der Schule?', + 'No. It helps identify promising areas, but catchments and admissions must be verified with the school or local authority.': + 'Nein. Es hilft dabei, vielversprechende Gebiete zu identifizieren, Einzugsgebiete und Zulassungen müssen jedoch bei der Schule oder der örtlichen Behörde überprüft werden.', + 'Can I combine school filters with parks and safety?': + 'Kann ich Schulfilter mit Parks und Sicherheit kombinieren?', + 'Yes. School-aware search can be combined with crime, parks, commute, price, property size, and local services.': + 'Ja. Die schulbezogene Suche kann mit Kriminalität, Parks, Pendelverkehr, Preis, Grundstücksgröße und lokalen Dienstleistungen kombiniert werden.', + 'Is Ofsted the only school signal?': 'Ist Ofsted das einzige Schulsignal?', + 'No single score should decide a move. Use the map as a starting point, then review current school information in detail.': + 'Kein einzelnes Ergebnis sollte über einen Zug entscheiden. Nutzen Sie die Karte als Ausgangspunkt und sehen Sie sich dann die aktuellen Schulinformationen im Detail an.', + 'See where education, property, transport, and environment data comes from.': + 'Sehen Sie, woher Bildungs-, Immobilien-, Transport- und Umweltdaten stammen.', + 'Explore school-aware searches': 'Entdecken Sie schulbezogene Suchanfragen', + 'Check postcode data before you book a viewing': + 'Überprüfen Sie die Postleitzahlendaten, bevor Sie eine Besichtigung buchen', + 'Postcode checker - Property, crime, broadband, noise and schools': + 'Postleitzahlenprüfer – Eigentum, Kriminalität, Breitband, Lärm und Schulen', + 'Check postcode-level property prices, EPC data, crime, broadband, road noise, schools, council tax, amenities and travel-time context.': + 'Überprüfen Sie Immobilienpreise auf Postleitzahlenebene, EPC-Daten, Kriminalität, Breitband, Straßenlärm, Schulen, Gemeindesteuer, Annehmlichkeiten und Reisezeitkontext.', + 'Review property prices, EPC context, crime, broadband, road noise, local amenities, schools, deprivation, council tax, and travel-time data from one postcode-first map.': + 'Überprüfen Sie Immobilienpreise, EPC-Kontext, Kriminalität, Breitband, Straßenlärm, örtliche Annehmlichkeiten, Schulen, Benachteiligung, Gemeindesteuer und Reisezeitdaten auf einer Postleitzahlenkarte.', + 'Check multiple local signals before visiting a street.': + 'Überprüfen Sie mehrere örtliche Signale, bevor Sie eine Straße besuchen.', + 'Use official and open datasets rather than reputation alone.': + 'Nutzen Sie offizielle und offene Datensätze und nicht nur die Reputation.', + 'Compare postcodes consistently across England.': + 'Vergleichen Sie Postleitzahlen einheitlich in ganz England.', + 'Check the street before spending a viewing slot': + 'Überprüfen Sie die Straße, bevor Sie einen Besichtigungstermin verbringen', + 'Use the postcode checker to review price history, local context, amenities, schools, and environment signals before you commit time to visiting.': + 'Nutzen Sie den Postleitzahlen-Checker, um die Preisentwicklung, den lokalen Kontext, die Ausstattung, Schulen und Umgebungssignale zu überprüfen, bevor Sie sich Zeit für einen Besuch nehmen.', + 'Compare neighbouring postcodes': 'Vergleichen Sie benachbarte Postleitzahlen', + 'If one postcode looks promising, compare adjacent areas using the same filters. This often reveals whether a concern is street-specific or part of a wider pattern.': + 'Wenn eine Postleitzahl vielversprechend aussieht, vergleichen Sie benachbarte Gebiete mit denselben Filtern. Dies zeigt oft, ob ein Problem straßenspezifisch ist oder Teil eines umfassenderen Musters ist.', + 'Useful before and alongside listing portals': 'Nützlich vor und neben Immobilienportalen', + 'Listing photos rarely tell you enough about the surrounding street. Perfect Postcode gives you an evidence-led postcode check before you commit time to a viewing.': + 'Die Auflistungsfotos verraten Ihnen selten genug über die umliegende Straße. Perfect Postcode bietet Ihnen eine evidenzbasierte Postleitzahlenprüfung, bevor Sie sich Zeit für eine Besichtigung nehmen.', + 'A screening tool, not professional advice': + 'Ein Screening-Tool, keine professionelle Beratung', + 'The data is designed for shortlisting and comparison. Any purchase still needs current listing checks, legal due diligence, flood searches, lender requirements, and survey findings.': + 'Die Daten dienen der Auswahl und dem Vergleich. Für jeden Kauf sind weiterhin aktuelle Auflistungsprüfungen, rechtliche Due-Diligence-Prüfungen, Hochwasserrecherchen, Kreditgeberanforderungen und Umfrageergebnisse erforderlich.', + 'What a postcode check can catch': 'Was ein Postleitzahlen-Check fangen kann', + 'A postcode check can surface price context, environmental signals, nearby amenities, and other local indicators that are easy to miss in a listing.': + 'Eine Postleitzahlenprüfung kann Preiskontext, Umweltsignale, nahegelegene Annehmlichkeiten und andere lokale Indikatoren aufdecken, die in einem Eintrag leicht übersehen werden.', + 'What a postcode check can’t prove': 'Was eine Postleitzahlenprüfung nicht beweisen kann', + 'It can’t confirm the condition of a home, future development, legal title, lender requirements, or current street-level experience. Those still need direct checks.': + 'Es kann nicht den Zustand eines Hauses, die zukünftige Entwicklung, den Rechtstitel, die Anforderungen des Kreditgebers oder die aktuelle Erfahrung auf Straßenniveau bestätigen. Diese benötigen noch direkte Kontrollen.', + 'Can I use the checker before a viewing?': + 'Kann ich den Checker vor einer Besichtigung nutzen?', + 'Yes. That’s one of the main use cases: screen the postcode first, then decide whether the viewing is worth the time.': + 'Ja. Das ist einer der Hauptanwendungsfälle: Überprüfen Sie zuerst die Postleitzahl und entscheiden Sie dann, ob sich die Besichtigung lohnt.', + 'Does the checker include exact property condition?': + 'Enthält der Prüfer den genauen Zustand der Immobilie?', + 'No. Property condition requires listing details, surveys, and direct inspection.': + 'Nein. Für den Immobilienzustand sind detaillierte Angaben zur Auflistung, Gutachten und eine direkte Besichtigung erforderlich.', + 'Can I compare multiple postcodes?': 'Kann ich mehrere Postleitzahlen vergleichen?', + 'Yes. The map is designed for consistent comparison across postcodes.': + 'Ja. Die Karte ist für einen konsistenten Vergleich über mehrere Postleitzahlen hinweg konzipiert.', + 'Check postcodes on the map': 'Überprüfen Sie die Postleitzahlen auf der Karte', + 'Regional guide': 'Regionalführer', + 'How to compare Birmingham postcodes before a property search': + 'So vergleichen Sie die Postleitzahlen von Birmingham vor einer Immobiliensuche', + 'Birmingham property search - Compare postcodes by price and commute': + 'Immobiliensuche in Birmingham – Vergleichen Sie Postleitzahlen nach Preis und Arbeitsweg', + 'Use postcode-level data to compare Birmingham property prices, commute trade-offs, schools, crime, broadband and local amenities before viewings.': + 'Nutzen Sie Daten auf Postleitzahlenebene, um Immobilienpreise in Birmingham, Kompromisse beim Pendeln, Schulen, Kriminalität, Breitband und örtliche Annehmlichkeiten vor Besichtigungen zu vergleichen.', + 'Birmingham searches can change quickly from street to street. Use postcode-level evidence to compare budget, commute, schools, noise, crime, and local services before deciding where to watch listings.': + 'Die Suche in Birmingham kann sich von Straße zu Straße schnell ändern. Nutzen Sie Beweise auf Postleitzahlenebene, um Budget, Pendelverkehr, Schulen, Lärm, Kriminalität und örtliche Dienstleistungen zu vergleichen, bevor Sie entscheiden, wo Sie Einträge ansehen möchten.', + 'Start with commute corridors': 'Beginnen Sie mit Pendelkorridoren', + 'Choose the destination that matters, such as a workplace, station, university, or hospital, then compare reachable postcodes by transport mode and travel-time band.': + 'Wählen Sie das gewünschte Ziel aus, z. B. einen Arbeitsplatz, einen Bahnhof, eine Universität oder ein Krankenhaus, und vergleichen Sie dann erreichbare Postleitzahlen nach Verkehrsmittel und Reisezeitspanne.', + 'Use commute time as a hard filter before judging price.': + 'Nutzen Sie die Pendelzeit als harten Filter, bevor Sie den Preis beurteilen.', + 'Compare public transport with car, cycling, or walking where available.': + 'Vergleichen Sie öffentliche Verkehrsmittel mit dem Auto, dem Fahrrad oder zu Fuß, sofern verfügbar.', + 'Check the route manually before booking viewings.': + 'Überprüfen Sie die Route manuell, bevor Sie Besichtigungen buchen.', + 'Compare price with property type': 'Vergleichen Sie den Preis mit der Immobilienart', + 'Median prices alone can be misleading if the local property mix changes. Add property type, tenure, floor area, and price filters so similar areas are compared fairly.': + 'Allein die Medianpreise können irreführend sein, wenn sich der Immobilienmix vor Ort ändert. Fügen Sie Filter für Immobilienart, Grundstücksfläche, Grundfläche und Preis hinzu, damit ähnliche Flächen fair verglichen werden können.', + 'Keep family and environment trade-offs visible': + 'Halten Sie die Kompromisse zwischen Familie und Umwelt sichtbar', + 'Layer school context, parks, road noise, broadband, and crime signals on top of the property filters. That makes it easier to decide which compromises are acceptable.': + 'Überlagern Sie den Grundstücksfilter mit Schulkontext, Parks, Straßenlärm, Breitband und Kriminalitätssignalen. Das erleichtert die Entscheidung, welche Kompromisse akzeptabel sind.', + 'Can Perfect Postcode tell me the best area in Birmingham?': + 'Kann mir Perfect Postcode die beste Gegend in Birmingham nennen?', + 'No tool can decide the best area for every buyer. It helps compare postcodes against your own constraints so you can build a better shortlist.': + 'Kein Tool kann für jeden Käufer den besten Bereich bestimmen. Es hilft Ihnen, Postleitzahlen mit Ihren eigenen Einschränkungen zu vergleichen, sodass Sie eine bessere Auswahlliste erstellen können.', + 'Should I use this instead of local knowledge?': + 'Sollte ich dies anstelle von lokalem Wissen verwenden?', + 'No. Use it to find and compare candidates, then validate them with visits, local advice, listings, and official checks.': + 'Nein. Verwenden Sie es, um Kandidaten zu finden und zu vergleichen und sie dann durch Besuche, Beratung vor Ort, Auflistungen und offizielle Überprüfungen zu validieren.', + 'Compare price patterns before looking at live listings.': + 'Vergleichen Sie Preismuster, bevor Sie sich Live-Angebote ansehen.', + 'Search by travel time and then layer on property requirements.': + 'Suchen Sie nach Reisezeit und fügen Sie dann die Immobilienanforderungen hinzu.', + 'Understand how to interpret filters and limitations.': + 'Verstehen Sie, wie Sie Filter und Einschränkungen interpretieren.', + 'Compare Birmingham postcodes': 'Vergleichen Sie die Postleitzahlen von Birmingham', + 'How to compare Manchester postcodes for a property search': + 'So vergleichen Sie die Postleitzahlen von Manchester für eine Immobiliensuche', + 'Manchester property search - Compare postcodes before viewing': + 'Immobiliensuche in Manchester – Vergleichen Sie die Postleitzahlen vor der Besichtigung', + 'Compare Manchester-area postcodes by budget, commute, property type, schools, broadband, crime, noise and amenities before booking viewings.': + 'Vergleichen Sie Postleitzahlen im Raum Manchester nach Budget, Pendlerweg, Immobilientyp, Schulen, Breitband, Kriminalität, Lärm und Ausstattung, bevor Sie Besichtigungen buchen.', + 'A Manchester-area search can span city-centre, suburban, and commuter options. Perfect Postcode helps keep each postcode comparable against the same property and daily-life constraints.': + 'Eine Suche im Raum Manchester kann Optionen im Stadtzentrum, in Vorstädten und für Pendler umfassen. Perfect Postcode trägt dazu bei, dass jede Postleitzahl mit den gleichen Grundstücks- und Alltagsbeschränkungen vergleichbar bleibt.', + 'Use travel time to define the real search area': + 'Nutzen Sie die Reisezeit, um das tatsächliche Suchgebiet zu definieren', + 'Start from the destinations that matter, then compare reachable postcodes rather than assuming every nearby place has the same practical journey.': + 'Beginnen Sie mit den Zielen, die wichtig sind, und vergleichen Sie dann die erreichbaren Postleitzahlen, anstatt davon auszugehen, dass jeder Ort in der Nähe die gleiche praktische Anfahrt hat.', + 'Compare housing requirements before lifestyle preferences': + 'Vergleichen Sie zunächst die Wohnanforderungen und dann Ihre Lebensstilpräferenzen', + 'Filter by property type, floor area, tenure, and price before judging amenities. That keeps the shortlist grounded in homes that could realistically work.': + 'Filtern Sie nach Immobilientyp, Grundfläche, Nutzungsdauer und Preis, bevor Sie die Ausstattung beurteilen. Dadurch bleibt die Auswahlliste auf Häusern beschränkt, die realistisch funktionieren könnten.', + 'Check local context consistently': 'Überprüfen Sie den lokalen Kontext konsequent', + 'Use broadband, crime, road noise, parks, schools, and amenities as comparable signals. Then validate the strongest candidates with current local checks.': + 'Nutzen Sie Breitband, Kriminalität, Straßenlärm, Parks, Schulen und Einrichtungen als vergleichbare Signale. Anschließend validieren Sie die stärksten Kandidaten mit aktuellen lokalen Prüfungen.', + 'Can I compare Manchester suburbs with city-centre postcodes?': + 'Kann ich Vororte von Manchester mit Postleitzahlen im Stadtzentrum vergleichen?', + 'Yes. Use the same budget, property, commute, and local-context filters across both so trade-offs remain visible.': + 'Ja. Verwenden Sie für beide die gleichen Budget-, Immobilien-, Pendler- und lokalen Kontextfilter, damit Kompromisse sichtbar bleiben.', + 'Does this include live listings?': 'Umfasst dies Live-Einträge?', + 'No. Use it to decide where to search, then use listing portals for current homes for sale.': + 'Nein. Verwenden Sie es, um zu entscheiden, wo Sie suchen möchten, und nutzen Sie dann die Angebotsportale für aktuelle zum Verkauf stehende Häuser.', + 'Move from a broad search brief to specific postcode candidates.': + 'Wechseln Sie von einem breiten Suchauftrag zu bestimmten Postleitzahlkandidaten.', + 'Data sources': 'Datenquellen', + 'Review the datasets used for property and local-context comparison.': + 'Überprüfen Sie die Datensätze, die für den Eigenschafts- und lokalen Kontextvergleich verwendet werden.', + 'Check a single postcode before arranging a viewing.': + 'Überprüfen Sie eine einzelne Postleitzahl, bevor Sie eine Besichtigung vereinbaren.', + 'Compare Manchester postcodes': 'Vergleichen Sie die Postleitzahlen von Manchester', + 'How to compare Bristol postcodes before a property search': + 'So vergleichen Sie die Postleitzahlen von Bristol vor einer Immobiliensuche', + 'Bristol property search - Compare postcodes by commute and price': + 'Immobiliensuche in Bristol – Vergleichen Sie Postleitzahlen nach Pendelweg und Preis', + 'Compare Bristol postcodes by price, commute, property size, schools, broadband, crime, road noise, parks and amenities before viewings.': + 'Vergleichen Sie die Postleitzahlen von Bristol nach Preis, Pendlerweg, Grundstücksgröße, Schulen, Breitband, Kriminalität, Straßenlärm, Parks und Annehmlichkeiten vor der Besichtigung.', + 'Bristol searches often involve sharp trade-offs between price, journey time, property size, and neighbourhood context. A postcode-first comparison keeps those trade-offs visible.': + 'Bei Suchanfragen in Bristol müssen oft scharfe Kompromisse zwischen Preis, Reisezeit, Grundstücksgröße und Nachbarschaftskontext eingegangen werden. Ein Postleitzahlenvergleich macht diese Kompromisse sichtbar.', + 'Make commute constraints explicit': 'Machen Sie Pendelbeschränkungen explizit', + 'If access to the centre, a station, hospital, university, or business park matters, use travel-time filters first and then compare the remaining postcodes by property data.': + 'Wenn die Erreichbarkeit des Zentrums, eines Bahnhofs, eines Krankenhauses, einer Universität oder eines Gewerbegebiets von Bedeutung ist, verwenden Sie zunächst Reisezeitfilter und vergleichen Sie dann die übrigen Postleitzahlen anhand der Grundstücksdaten.', + 'Compare value, not just headline price': 'Vergleichen Sie den Wert, nicht nur den Gesamtpreis', + 'Use price, property type, and floor-area filters together. This helps distinguish lower-cost areas from areas that simply contain smaller or different homes.': + 'Nutzen Sie Preis-, Immobilientyp- und Flächenfilter gemeinsam. Dies hilft dabei, kostengünstigere Gebiete von Gebieten zu unterscheiden, in denen sich lediglich kleinere oder andere Häuser befinden.', + 'Screen environmental and local-service signals': + 'Überprüfen Sie Umgebungs- und lokale Servicesignale', + 'Road noise, parks, broadband, crime, and amenities can affect whether a property works day to day. Use them as screening criteria before booking viewings.': + 'Straßenlärm, Parks, Breitband, Kriminalität und Annehmlichkeiten können sich darauf auswirken, ob eine Immobilie im Alltag funktioniert. Nutzen Sie sie als Auswahlkriterien, bevor Sie Besichtigungen buchen.', + 'Can I use this for commuter villages around Bristol?': + 'Kann ich dies für Pendlerdörfer rund um Bristol nutzen?', + 'Yes, where the relevant postcode and travel-time data is available. Always verify routes and services manually before deciding.': + 'Ja, sofern die entsprechenden Postleitzahlen- und Reisezeitdaten verfügbar sind. Überprüfen Sie Routen und Dienste immer manuell, bevor Sie eine Entscheidung treffen.', + 'Can this tell me whether a listing is good value?': + 'Kann mir das sagen, ob ein Eintrag ein gutes Preis-Leistungs-Verhältnis bietet?', + 'It can provide area context, but a specific listing still needs comparable sales, condition checks, survey findings, and professional advice where appropriate.': + 'Es kann einen gebietsbezogenen Kontext bieten, aber für ein bestimmtes Angebot sind dennoch vergleichbare Verkäufe, Zustandsprüfungen, Umfrageergebnisse und gegebenenfalls professionelle Beratung erforderlich.', + 'Search by reachable postcodes before refining by budget and local context.': + 'Suchen Sie nach erreichbaren Postleitzahlen, bevor Sie die Suche nach Budget und lokalem Kontext verfeinern.', + 'Understand price patterns before setting listing alerts.': + 'Verstehen Sie Preismuster, bevor Sie Angebotsbenachrichtigungen einrichten.', + 'Privacy and security': 'Privatsphäre und Sicherheit', + 'How account and saved-search data is handled in the product.': + 'Wie Konto- und gespeicherte Suchdaten im Produkt verarbeitet werden.', + 'Compare Bristol postcodes': 'Vergleichen Sie die Postleitzahlen von Bristol', + 'Trust and coverage': 'Vertrauen und Abdeckung', + 'Perfect Postcode data sources and coverage': + 'Perfekte Postleitzahlen-Datenquellen und -Abdeckung', + 'Perfect Postcode data sources - Property, schools, commute and local context': + 'Perfekte Postleitzahlen-Datenquellen – Immobilien, Schulen, Pendler und lokaler Kontext', + 'Review the public and official datasets used by Perfect Postcode, including property prices, EPC, schools, crime, broadband, noise and travel-time context.': + 'Überprüfen Sie die von Perfect Postcode verwendeten öffentlichen und offiziellen Datensätze, einschließlich Immobilienpreise, EPC, Schulen, Kriminalität, Breitband, Lärm und Reisezeitkontext.', + 'Perfect Postcode combines property, transport, education, environment, and local-service datasets so buyers can compare postcodes consistently. This page explains what the data is for and where it should be verified.': + 'Perfect Postcode kombiniert Immobilien-, Transport-, Bildungs-, Umwelt- und lokale Dienstleistungsdatensätze, sodass Käufer Postleitzahlen konsistent vergleichen können. Auf dieser Seite wird erläutert, wozu die Daten dienen und wo sie überprüft werden sollten.', + 'Property and housing context': 'Immobilien- und Wohnkontext', + 'The product uses property transaction and housing-context datasets to support filters such as sale price, property type, tenure, floor area, energy performance, and estimated current value.': + 'Das Produkt nutzt Immobilientransaktions- und Wohnungskontextdatensätze, um Filter wie Verkaufspreis, Immobilientyp, Besitz, Grundfläche, Energieeffizienz und geschätzten aktuellen Wert zu unterstützen.', + 'Use these fields to compare areas, not as a formal valuation.': + 'Verwenden Sie diese Felder zum Vergleichen von Bereichen, nicht als formale Bewertung.', + 'Check current listings, title information, lender requirements, and survey results before buying.': + 'Überprüfen Sie vor dem Kauf aktuelle Angebote, Titelinformationen, Kreditgeberanforderungen und Umfrageergebnisse.', + 'Schools, safety, broadband, and environment': 'Schulen, Sicherheit, Breitband und Umwelt', + 'Local-context filters help compare postcodes on signals that affect daily life. They should be treated as screening data and checked against current official sources for decisions.': + 'Lokale Kontextfilter helfen beim Vergleich von Postleitzahlen anhand von Signalen, die das tägliche Leben beeinflussen. Sie sollten als Screening-Daten behandelt und für Entscheidungen mit aktuellen offiziellen Quellen verglichen werden.', + 'Travel-time data': 'Reisezeitdaten', + 'Travel-time filters are designed for consistent area comparison. Route availability, disruption, parking, walking access, and timetable details should be verified before committing to an area.': + 'Reisezeitfilter sind für einen konsistenten Gebietsvergleich konzipiert. Bevor Sie sich für ein Gebiet entscheiden, sollten Sie die Verfügbarkeit der Route, Störungen, Parkmöglichkeiten, Zugang zu Fuß und Fahrplandetails überprüfen.', + 'Why does coverage focus on England?': + 'Warum konzentriert sich die Berichterstattung auf England?', + 'Several core property, education, and local-context datasets are jurisdiction-specific. England coverage keeps comparisons more consistent.': + 'Mehrere Kerndatensätze zu Eigentum, Bildung und lokalem Kontext sind gebietsspezifisch. Die Berichterstattung über England sorgt für konsistentere Vergleiche.', + 'How should I handle stale or missing data?': + 'Wie gehe ich mit veralteten oder fehlenden Daten um?', + 'Use the map as a shortlist tool. If a postcode matters, verify the latest details with current official sources and direct local checks.': + 'Nutzen Sie die Karte als Shortlist-Tool. Wenn eine Postleitzahl von Bedeutung ist, überprüfen Sie die neuesten Angaben anhand aktueller offizieller Quellen und direkt vor Ort.', + 'How filters and comparisons should be interpreted.': + 'Wie Filter und Vergleiche interpretiert werden sollten.', + 'Review postcode-level context before a viewing.': + 'Überprüfen Sie vor einer Besichtigung den Kontext auf Postleitzahlenebene.', + 'How saved searches and account data are handled.': + 'Wie mit gespeicherten Suchanfragen und Kontodaten umgegangen wird.', + 'How to use the map': 'So verwenden Sie die Karte', + 'Methodology for postcode property research': + 'Methodik für die Immobilienrecherche nach Postleitzahlen', + 'Perfect Postcode methodology - How to interpret postcode property data': + 'Perfekte Postleitzahlen-Methodik – So interpretieren Sie Postleitzahlen-Eigenschaftsdaten', + 'Understand how to use postcode filters, property estimates, travel-time data, school context and local signals as a home-buying shortlist tool.': + 'Verstehen Sie, wie Sie Postleitzahlenfilter, Immobilienschätzungen, Reisezeitdaten, Schulkontext und lokale Signale als Tool für die Auswahlliste beim Hauskauf verwenden.', + 'Perfect Postcode is designed to make area shortlisting more evidence-led. It doesn’t replace estate agents, surveyors, conveyancers, lenders, school admissions teams, or local authority checks.': + 'Perfect Postcode wurde entwickelt, um die Auswahl von Gebieten evidenzbasierter zu gestalten. Es ersetzt nicht Immobilienmakler, Gutachter, Immobilienmakler, Kreditgeber, Schulzulassungsteams oder örtliche Behördenkontrollen.', + 'Start with hard constraints': 'Beginnen Sie mit harten Einschränkungen', + 'Begin with non-negotiables such as budget, property type, floor area, commute time, and essential services. This removes impossible postcodes before softer preferences are considered.': + 'Beginnen Sie mit nicht verhandelbaren Faktoren wie Budget, Immobilientyp, Grundfläche, Pendelzeit und wesentlichen Dienstleistungen. Dadurch werden unmögliche Postleitzahlen entfernt, bevor weichere Präferenzen berücksichtigt werden.', + 'Use colour layers for trade-offs': 'Verwenden Sie Farbebenen für Kompromisse', + 'After filtering, colour the remaining map by one signal at a time: price per square metre, road noise, school context, commute time, broadband, or crime. This makes trade-offs easier to discuss.': + 'Färben Sie die verbleibende Karte nach dem Filtern jeweils nach einem Signal ein: Preis pro Quadratmeter, Straßenlärm, Schulkontext, Pendelzeit, Breitband oder Kriminalität. Dies erleichtert die Diskussion von Kompromissen.', + 'Measure what’s working': 'Messen Sie, was funktioniert', + 'Use Search Console and analytics to track which public pages are indexed, which queries produce impressions, and which pages convert visitors into dashboard exploration. Review Core Web Vitals after every substantial frontend change.': + 'Verwenden Sie die Search Console und Analysen, um zu verfolgen, welche öffentlichen Seiten indiziert werden, welche Abfragen Impressionen erzeugen und welche Seiten Besucher in Dashboard-Erkundungen umwandeln. Überprüfen Sie die Core Web Vitals nach jeder wesentlichen Frontend-Änderung.', + 'Can the tool choose the right postcode for me?': + 'Kann das Tool die richtige Postleitzahl für mich auswählen?', + 'No. It helps compare evidence and reduce the search area. The final decision needs direct visits, current listings, legal checks, surveys, and personal judgement.': + 'Nein. Es hilft, Beweise zu vergleichen und den Suchbereich zu verkleinern. Die endgültige Entscheidung erfordert direkte Besuche, aktuelle Einträge, rechtliche Prüfungen, Umfragen und ein persönliches Urteil.', + 'How should I use estimates?': 'Wie verwende ich Schätzungen?', + 'Use estimates as comparison signals, not as professional valuations or purchase advice.': + 'Nutzen Sie Schätzungen als Vergleichssignale, nicht als professionelle Wertermittlung oder Kaufberatung.', + 'Understand where key filters come from.': 'Verstehen Sie, woher Schlüsselfilter kommen.', + 'Apply the methodology to price-led area comparison.': + 'Wenden Sie die Methodik auf einen preisorientierten Flächenvergleich an.', + 'Apply the methodology to destination-led search.': + 'Wenden Sie die Methodik auf die zielorientierte Suche an.', + Trust: 'Vertrauen', + 'Privacy and security for saved property searches': + 'Datenschutz und Sicherheit für gespeicherte Immobiliensuchen', + 'Perfect Postcode privacy and security - Saved searches and account data': + 'Perfekte Privatsphäre und Sicherheit für Postleitzahlen – Gespeicherte Suchanfragen und Kontodaten', + 'Learn how Perfect Postcode treats saved searches, account data and property research workflows with privacy and security in mind.': + 'Erfahren Sie, wie Perfect Postcode gespeicherte Suchanfragen, Kontodaten und Immobilienrecherche-Workflows unter Berücksichtigung von Datenschutz und Sicherheit behandelt.', + 'Property research can reveal personal priorities, budgets, and locations. The product keeps public SEO pages separate from account-only areas and marks private dashboard/account routes as noindex.': + 'Eine Immobilienrecherche kann persönliche Prioritäten, Budgets und Standorte aufdecken. Das Produkt trennt öffentliche SEO-Seiten von reinen Kontobereichen und markiert private Dashboard-/Kontorouten als Noindex.', + 'Public pages and private areas are separated': + 'Öffentliche Seiten und private Bereiche werden getrennt', + 'Marketing, methodology, guide, and support pages are indexable. Dashboard, account, saved searches, invites, and invitation routes are marked noindex or blocked from crawler access where appropriate.': + 'Marketing-, Methodik-, Leitfaden- und Supportseiten sind indexierbar. Dashboard, Konto, gespeicherte Suchen, Einladungen und Einladungsrouten werden gegebenenfalls als „noindex“ markiert oder für den Crawler-Zugriff blockiert.', + 'Saved search data is account-scoped': 'Gespeicherte Suchdaten sind kontobezogen', + 'Saved searches and properties are intended for signed-in use. They aren’t included in the public sitemap and shouldn’t be crawlable as public content.': + 'Gespeicherte Suchen und Eigenschaften sind für die Verwendung durch angemeldete Benutzer vorgesehen. Sie sind nicht in der öffentlichen Sitemap enthalten und sollten nicht als öffentlicher Inhalt gecrawlt werden können.', + 'Search measurement without exposing private data': + 'Suchmessung ohne Offenlegung privater Daten', + 'SEO measurement should happen on public pages using aggregated analytics and Search Console data. Private query parameters and account views shouldn’t become indexable landing pages.': + 'Die SEO-Messung sollte auf öffentlichen Seiten mithilfe aggregierter Analysen und Search Console-Daten erfolgen. Private Abfrageparameter und Kontoansichten sollten nicht zu indexierbaren Zielseiten werden.', + 'Are saved searches listed in the sitemap?': + 'Werden gespeicherte Suchanfragen in der Sitemap aufgeführt?', + 'No. Public SEO pages are listed; account and saved-search routes are intentionally excluded.': + 'Nein. Öffentliche SEO-Seiten werden aufgelistet. Konto- und gespeicherte Suchrouten werden absichtlich ausgeschlossen.', + 'Can private dashboard URLs appear in search?': + 'Können private Dashboard-URLs in der Suche angezeigt werden?', + 'They shouldn’t be indexed. The server marks private routes noindex and the sitemap only lists public pages.': + 'Sie sollten nicht indiziert werden. Der Server markiert private Routen mit Noindex und die Sitemap listet nur öffentliche Seiten auf.', + 'How to use public postcode data responsibly.': + 'So gehen Sie verantwortungsvoll mit öffentlichen Postleitzahldaten um.', + 'What data powers the public comparisons.': + 'Welche Daten basieren auf den öffentlichen Vergleichen?', + 'Explore public postcode-search workflows.': + 'Entdecken Sie öffentliche Workflows zur Postleitzahlensuche.', + }, }; export default de; diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index c8525b8..ecc84ff 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -159,6 +159,14 @@ const en = { // ── License Success ──────────────────────────────── licenseSuccess: { + verifyingTitle: 'Verifying access', + verifyingSubtitle: 'Checking your account before we unlock the map.', + verifyingDescription: 'This usually takes a few seconds after checkout.', + activationDelayedTitle: 'Payment received', + activationDelayedSubtitle: 'Access is still activating.', + activationDelayedDescription: + 'We could not confirm the account update yet. Refresh in a moment, or contact support if access does not appear.', + stayOnPricing: 'Stay on pricing', title: 'You’re in.', subtitle: 'Your lifetime access is now active.', description: 'Full access to every feature, every postcode, across all of England.', @@ -264,7 +272,7 @@ const en = { carDesc: ' by car, based on typical road speeds and the road network.', bicycleDesc: ' by bicycle, using cycle-friendly routes.', walkingDesc: ' on foot, using pedestrian paths and pavements.', - mainDesc: 'Shows how long it takes to reach the selected destination from each area', + mainDesc: 'Shows how long it takes to travel from the selected destination to each area.', sliderHint: 'Use the slider to set your maximum commute time.', }, @@ -349,8 +357,8 @@ const en = { viewProperties: 'View {{count}} Properties', viewPropertiesShort: 'View properties', priceHistory: 'Price History', - journeysFrom: 'Journeys from {{label}}', - to: 'To {{destination}}', + journeysFrom: 'Journey times for {{label}}', + to: 'From {{destination}}', noJourneyData: 'No journey data available', viewOnGoogleMaps: 'View on Google Maps', walk: 'Walk', @@ -594,7 +602,7 @@ const en = { dsCrimeName: 'Street-level Crime Data', dsCrimeOrigin: 'data.police.uk', dsCrimeUse: - 'Street-level crime data from 2023 to 2025, aggregated into yearly averages by LSOA and crime type (violence, burglary, anti-social behaviour, drugs, vehicle crime, etc.).', + 'Street-level crime data aggregated into yearly averages by LSOA and crime type (violence, burglary, anti-social behaviour, drugs, vehicle crime, etc.).', dsOsmName: 'OpenStreetMap POIs', dsOsmOrigin: 'OpenStreetMap contributors / Geofabrik', dsOsmUse: @@ -610,7 +618,7 @@ const en = { dsTowName: 'National Trees Outside Woodland Map', dsTowOrigin: 'Forest Research / Defra NCEA', dsTowUse: - 'Tree canopy polygons for lone trees, groups of trees, and small woodlands in England. Used here to estimate street-level tree coverage percentiles around property addresses.', + 'Tree canopy polygons for lone trees, groups of trees, and small woodlands in England. Used here to estimate tree coverage percentiles around postcode centroids.', dsNaptanName: 'NaPTAN (Public Transport Stops)', dsNaptanOrigin: 'Department for Transport', dsNaptanUse: @@ -761,6 +769,10 @@ const en = { receiveNewsletter: 'Receive newsletter emails', needHelp: 'Need help? Email us at', responseTime: 'We typically respond within 24 hours.', + shareLinksTitle: 'Shared links', + noShareLinksYet: 'No shared links yet', + copyShareLink: 'Copy shared link', + clicksLabel: 'clicks', }, // ── Saved Page ───────────────────────────────────── @@ -908,6 +920,7 @@ const en = { 'Current energy rating': 'Current energy rating', 'Potential energy rating': 'Potential energy rating', 'Interior height (m)': 'Interior height (m)', + 'Street tree density percentile': 'Street tree density percentile', // ─ Feature names (Transport) ─ 'Travel time to nearest train or tube station (min)': @@ -1101,6 +1114,459 @@ const en = { ' years': ' years', ' rooms': ' rooms', }, + + seo: { + 'Property price map': 'Property price map', + 'Compare property prices across every postcode in England': + 'Compare property prices across every postcode in England', + 'Property price map for England - Compare postcodes before viewing': + 'Property price map for England - Compare postcodes before viewing', + 'Compare sold prices, estimated current value, price per square metre and local context across English postcodes before searching listings.': + 'Compare sold prices, estimated current value, price per square metre and local context across English postcodes before searching listings.', + 'Perfect Postcode maps sold prices, estimated current value, price per square metre, property type, floor area, tenure, and local context so buyers can find realistic search areas before opening listing portals.': + 'Perfect Postcode maps sold prices, estimated current value, price per square metre, property type, floor area, tenure, and local context so buyers can find realistic search areas before opening listing portals.', + 'Screen historical sale prices and current-value estimates by postcode.': + 'Screen historical sale prices and current-value estimates by postcode.', + 'Compare value with commute, schools, broadband, crime, noise, and amenities.': + 'Compare value with commute, schools, broadband, crime, noise, and amenities.', + 'Build a shortlist before spending weekends on viewings.': + 'Build a shortlist before spending weekends on viewings.', + 'Find postcodes that fit the budget before listings appear': + 'Find postcodes that fit the budget before listings appear', + 'Start with a maximum price and property type, then colour the map by price per square metre or estimated current price. This helps reveal areas where similar homes have historically traded within reach, even when there are no live listings today.': + 'Start with a maximum price and property type, then colour the map by price per square metre or estimated current price. This helps reveal areas where similar homes have historically traded within reach, even when there are no live listings today.', + 'Filter by last known sale price, estimated current value, property type, tenure, and floor area.': + 'Filter by last known sale price, estimated current value, property type, tenure, and floor area.', + 'Compare nearby postcodes using the same criteria instead of relying on area reputation.': + 'Compare nearby postcodes using the same criteria instead of relying on area reputation.', + 'Use the results as a shortlist for listing alerts, local research, and viewings.': + 'Use the results as a shortlist for listing alerts, local research, and viewings.', + 'Separate cheap from good value': 'Separate cheap from good value', + 'A lower price can reflect smaller homes, weaker transport, more noise, or fewer local services. The map keeps those trade-offs visible so the cheapest postcode isn’t automatically treated as the best option.': + 'A lower price can reflect smaller homes, weaker transport, more noise, or fewer local services. The map keeps those trade-offs visible so the cheapest postcode isn’t automatically treated as the best option.', + 'Start from area value, not listing availability': + 'Start from area value, not listing availability', + 'Listing portals only show homes for sale today. A postcode-level property price map lets you compare wider areas, understand local price patterns, and avoid missing places where the next suitable listing might appear.': + 'Listing portals only show homes for sale today. A postcode-level property price map lets you compare wider areas, understand local price patterns, and avoid missing places where the next suitable listing might appear.', + 'Use prices alongside real constraints': 'Use prices alongside real constraints', + 'Budget rarely matters on its own. Perfect Postcode combines price filters with travel time, school quality, property size, energy performance, local environment, and services so your shortlist reflects how you actually want to live.': + 'Budget rarely matters on its own. Perfect Postcode combines price filters with travel time, school quality, property size, energy performance, local environment, and services so your shortlist reflects how you actually want to live.', + 'What the price data is for': 'What the price data is for', + 'Use the map to compare areas and spot search candidates. It isn’t a valuation, mortgage decision, survey, legal search, or live listing feed.': + 'Use the map to compare areas and spot search candidates. It isn’t a valuation, mortgage decision, survey, legal search, or live listing feed.', + 'How to validate a promising area': 'How to validate a promising area', + 'Once a postcode looks promising, check current listings, sold-price comparables, agent details, flood searches, legal packs, surveys, and local authority information before making a decision.': + 'Once a postcode looks promising, check current listings, sold-price comparables, agent details, flood searches, legal packs, surveys, and local authority information before making a decision.', + 'Is this a replacement for Rightmove or Zoopla?': + 'Is this a replacement for Rightmove or Zoopla?', + 'No. Use it before and alongside listing portals. Perfect Postcode helps decide where to look; listing portals show what’s currently for sale.': + 'No. Use it before and alongside listing portals. Perfect Postcode helps decide where to look; listing portals show what’s currently for sale.', + 'Can I compare price with schools or commute time?': + 'Can I compare price with schools or commute time?', + 'Yes. Price filters can be combined with travel-time, schools, crime, broadband, road-noise, amenities, and environment filters.': + 'Yes. Price filters can be combined with travel-time, schools, crime, broadband, road-noise, amenities, and environment filters.', + 'Does the map cover all of the UK?': 'Does the map cover all of the UK?', + 'The current product focuses on England because several core property and postcode datasets are England-specific.': + 'The current product focuses on England because several core property and postcode datasets are England-specific.', + 'Birmingham property search guide': 'Birmingham property search guide', + 'A worked example for balancing price, commute, and family trade-offs.': + 'A worked example for balancing price, commute, and family trade-offs.', + 'Data sources and coverage': 'Data sources and coverage', + 'See which datasets sit behind the postcode filters and where they have limits.': + 'See which datasets sit behind the postcode filters and where they have limits.', + Methodology: 'Methodology', + 'Understand how the map is intended to support shortlisting, not replace due diligence.': + 'Understand how the map is intended to support shortlisting, not replace due diligence.', + 'Postcode checker': 'Postcode checker', + 'Check one postcode before you spend time on a viewing.': + 'Check one postcode before you spend time on a viewing.', + 'Explore the property map': 'Explore the property map', + 'Postcode property search': 'Postcode property search', + 'Find postcodes that match your property search criteria': + 'Find postcodes that match your property search criteria', + 'Postcode property search - Find areas that match your criteria': + 'Postcode property search - Find areas that match your criteria', + 'Search every postcode by budget, property type, floor area, tenure, commute, schools, crime, broadband, noise, parks and local amenities.': + 'Search every postcode by budget, property type, floor area, tenure, commute, schools, crime, broadband, noise, parks and local amenities.', + 'Search every postcode by budget, property type, size, tenure, commute, schools, crime, broadband, noise, parks, and local amenities instead of checking areas one at a time.': + 'Search every postcode by budget, property type, size, tenure, commute, schools, crime, broadband, noise, parks, and local amenities instead of checking areas one at a time.', + 'Filter England-wide postcode data from one map.': + 'Filter England-wide postcode data from one map.', + 'Shortlist unfamiliar areas with comparable evidence.': + 'Shortlist unfamiliar areas with comparable evidence.', + 'Save and share search areas before booking viewings.': + 'Save and share search areas before booking viewings.', + 'Turn a broad brief into postcode candidates': 'Turn a broad brief into postcode candidates', + 'Enter the practical constraints first: budget, property size, tenure, travel time, school needs, broadband, and tolerance for road noise or crime levels. The map removes places that fail those constraints and keeps the remaining options comparable.': + 'Enter the practical constraints first: budget, property size, tenure, travel time, school needs, broadband, and tolerance for road noise or crime levels. The map removes places that fail those constraints and keeps the remaining options comparable.', + 'Relax one constraint at a time': 'Relax one constraint at a time', + 'When the search becomes too narrow, loosen a single filter and watch which postcodes reappear. This makes compromise explicit instead of relying on guesswork.': + 'When the search becomes too narrow, loosen a single filter and watch which postcodes reappear. This makes compromise explicit instead of relying on guesswork.', + 'Turn vague areas into specific postcodes': 'Turn vague areas into specific postcodes', + 'Broad town or borough searches hide large differences between streets. Perfect Postcode helps you move from a general area to postcodes that satisfy your hard requirements.': + 'Broad town or borough searches hide large differences between streets. Perfect Postcode helps you move from a general area to postcodes that satisfy your hard requirements.', + 'Keep trade-offs visible': 'Keep trade-offs visible', + 'When there are too many or too few matches, adjust one constraint at a time and see exactly which postcodes reappear. That makes compromises explicit instead of relying on guesswork.': + 'When there are too many or too few matches, adjust one constraint at a time and see exactly which postcodes reappear. That makes compromises explicit instead of relying on guesswork.', + 'Why postcode-level comparison matters': 'Why postcode-level comparison matters', + 'Two nearby postcodes can differ on schools, road noise, transport access, property mix, and price. Comparing at postcode level reduces the chance of treating a whole town as one uniform market.': + 'Two nearby postcodes can differ on schools, road noise, transport access, property mix, and price. Comparing at postcode level reduces the chance of treating a whole town as one uniform market.', + 'How to use the results': 'How to use the results', + 'Treat matching postcodes as a research queue: check live listings, visit streets, confirm schools and admissions, and review current official sources.': + 'Treat matching postcodes as a research queue: check live listings, visit streets, confirm schools and admissions, and review current official sources.', + 'Can I save a postcode property search?': 'Can I save a postcode property search?', + 'Yes. Licensed users can save searches and return to them later. Saved searches are designed for shortlists and comparison notes.': + 'Yes. Licensed users can save searches and return to them later. Saved searches are designed for shortlists and comparison notes.', + 'Can I search without knowing the area?': 'Can I search without knowing the area?', + 'Yes. The map is designed to surface unfamiliar areas that match practical constraints, not just places you already know.': + 'Yes. The map is designed to surface unfamiliar areas that match practical constraints, not just places you already know.', + 'Are the results live property listings?': 'Are the results live property listings?', + 'No. The tool compares postcode data and historical/contextual property signals. You still need listing portals for current availability.': + 'No. The tool compares postcode data and historical/contextual property signals. You still need listing portals for current availability.', + 'Manchester property search guide': 'Manchester property search guide', + 'A regional guide for narrowing a broad search around Greater Manchester.': + 'A regional guide for narrowing a broad search around Greater Manchester.', + 'Start a postcode search': 'Start a postcode search', + 'Commute property search': 'Commute property search', + 'Search for places to live by commute time': 'Search for places to live by commute time', + 'Commute property search - Find places to live by travel time': + 'Commute property search - Find places to live by travel time', + 'Filter postcodes by commute time, then compare price, schools, safety, broadband, road noise, parks and property data on one map.': + 'Filter postcodes by commute time, then compare price, schools, safety, broadband, road noise, parks and property data on one map.', + 'Filter postcodes by modelled car, cycling, walking, and public transport travel times, then layer on property price, schools, crime, broadband, noise, and local amenities.': + 'Filter postcodes by modelled car, cycling, walking, and public transport travel times, then layer on property price, schools, crime, broadband, noise, and local amenities.', + 'Compare reachable postcodes by realistic travel-time bands.': + 'Compare reachable postcodes by realistic travel-time bands.', + 'Search by destination first, then filter for property and neighbourhood fit.': + 'Search by destination first, then filter for property and neighbourhood fit.', + 'Avoid areas that look close on a map but fail the daily journey.': + 'Avoid areas that look close on a map but fail the daily journey.', + 'Start with the destination that matters': 'Start with the destination that matters', + 'Choose a commute destination, transport mode, and time range, then add the property filters. This prevents a cheap-looking area from reaching the shortlist if the daily journey doesn’t work.': + 'Choose a commute destination, transport mode, and time range, then add the property filters. This prevents a cheap-looking area from reaching the shortlist if the daily journey doesn’t work.', + 'Compare the commute against the rest of daily life': + 'Compare the commute against the rest of daily life', + 'A fast commute isn’t enough if the property size, school context, safety threshold, broadband, or road-noise exposure don’t fit. The map keeps those signals side by side.': + 'A fast commute isn’t enough if the property size, school context, safety threshold, broadband, or road-noise exposure don’t fit. The map keeps those signals side by side.', + 'Commute from postcodes, not just place names': 'Commute from postcodes, not just place names', + 'Two streets in the same town can have very different station access, road routes, and public transport options. Postcode-level travel-time filtering keeps that difference visible.': + 'Two streets in the same town can have very different station access, road routes, and public transport options. Postcode-level travel-time filtering keeps that difference visible.', + 'Balance journey time with the rest of the move': + 'Balance journey time with the rest of the move', + 'A fast commute only helps if the area also fits your budget, housing needs, school preferences, safety threshold, broadband requirement, and tolerance for road noise.': + 'A fast commute only helps if the area also fits your budget, housing needs, school preferences, safety threshold, broadband requirement, and tolerance for road noise.', + 'How travel-time filters should be interpreted': + 'How travel-time filters should be interpreted', + 'Travel-time modelling is useful for comparing areas consistently. Before committing, check current timetables, disruption patterns, parking, cycling conditions, and walking routes.': + 'Travel-time modelling is useful for comparing areas consistently. Before committing, check current timetables, disruption patterns, parking, cycling conditions, and walking routes.', + 'Why commute filters are combined with property data': + 'Why commute filters are combined with property data', + 'Commute search is most useful when it removes impossible areas while still showing whether the remaining options are affordable and liveable.': + 'Commute search is most useful when it removes impossible areas while still showing whether the remaining options are affordable and liveable.', + 'Can I compare car, cycling, walking, and public transport?': + 'Can I compare car, cycling, walking, and public transport?', + 'The product supports multiple travel modes where precomputed destination data is available.': + 'The product supports multiple travel modes where precomputed destination data is available.', + 'Are travel times exact?': 'Are travel times exact?', + 'No. Treat them as a consistent comparison model, then verify the real route before making viewing or purchase decisions.': + 'No. Treat them as a consistent comparison model, then verify the real route before making viewing or purchase decisions.', + 'Can I combine commute filters with schools and price?': + 'Can I combine commute filters with schools and price?', + 'Yes. The commute filter can be layered with property price, size, schools, broadband, crime, amenities, and environmental signals.': + 'Yes. The commute filter can be layered with property price, size, schools, broadband, crime, amenities, and environmental signals.', + 'Bristol property search guide': 'Bristol property search guide', + 'A worked example for balancing city access, price, and local context.': + 'A worked example for balancing city access, price, and local context.', + 'Search by commute time': 'Search by commute time', + 'Schools and property search': 'Schools and property search', + 'Find property search areas with schools and family trade-offs in view': + 'Find property search areas with schools and family trade-offs in view', + 'School property search - Compare postcodes for family moves': + 'School property search - Compare postcodes for family moves', + 'Compare nearby schools, property size, prices, parks, safety, commute and local amenities before building a viewing shortlist.': + 'Compare nearby schools, property size, prices, parks, safety, commute and local amenities before building a viewing shortlist.', + 'Compare nearby Ofsted ratings, education context, property size, budget, safety, parks, commute, and local amenities before narrowing your viewing shortlist.': + 'Compare nearby Ofsted ratings, education context, property size, budget, safety, parks, commute, and local amenities before narrowing your viewing shortlist.', + 'Filter for nearby school quality alongside housing requirements.': + 'Filter for nearby school quality alongside housing requirements.', + 'Compare family-friendly trade-offs across unfamiliar postcodes.': + 'Compare family-friendly trade-offs across unfamiliar postcodes.', + 'Use the map as a shortlist tool before checking admissions and catchments.': + 'Use the map as a shortlist tool before checking admissions and catchments.', + 'Use school context without ignoring the home': 'Use school context without ignoring the home', + 'Start with property size, budget, and commute constraints, then layer in nearby school quality and local context. This prevents school-led searches from hiding affordability or daily-life problems.': + 'Start with property size, budget, and commute constraints, then layer in nearby school quality and local context. This prevents school-led searches from hiding affordability or daily-life problems.', + 'Verify admissions before deciding': 'Verify admissions before deciding', + 'School data can point to promising areas, but admissions rules and catchments can change. Confirm current arrangements with schools and local authorities.': + 'School data can point to promising areas, but admissions rules and catchments can change. Confirm current arrangements with schools and local authorities.', + 'School quality is one part of the shortlist': 'School quality is one part of the shortlist', + 'Perfect Postcode helps you compare nearby school data with the other practical constraints that shape a family move: space, price, commute, parks, safety, and local services.': + 'Perfect Postcode helps you compare nearby school data with the other practical constraints that shape a family move: space, price, commute, parks, safety, and local services.', + 'Check catchments before making decisions': 'Check catchments before making decisions', + 'Admissions rules and catchment boundaries can change. Use postcode-level school data to find promising areas, then verify current admissions details with the school or local authority.': + 'Admissions rules and catchment boundaries can change. Use postcode-level school data to find promising areas, then verify current admissions details with the school or local authority.', + 'How to treat school filters': 'How to treat school filters', + 'Use school filters to narrow research, not to assume admission eligibility. Ratings, distance, admissions criteria, and school capacity should all be checked with current official sources.': + 'Use school filters to narrow research, not to assume admission eligibility. Ratings, distance, admissions criteria, and school capacity should all be checked with current official sources.', + 'Family trade-offs to compare': 'Family trade-offs to compare', + 'Combine schools with parks, road noise, crime, property size, commute, broadband, and price so the shortlist reflects the whole move.': + 'Combine schools with parks, road noise, crime, property size, commute, broadband, and price so the shortlist reflects the whole move.', + 'Does this show school catchment guarantees?': 'Does this show school catchment guarantees?', + 'No. It helps identify promising areas, but catchments and admissions must be verified with the school or local authority.': + 'No. It helps identify promising areas, but catchments and admissions must be verified with the school or local authority.', + 'Can I combine school filters with parks and safety?': + 'Can I combine school filters with parks and safety?', + 'Yes. School-aware search can be combined with crime, parks, commute, price, property size, and local services.': + 'Yes. School-aware search can be combined with crime, parks, commute, price, property size, and local services.', + 'Is Ofsted the only school signal?': 'Is Ofsted the only school signal?', + 'No single score should decide a move. Use the map as a starting point, then review current school information in detail.': + 'No single score should decide a move. Use the map as a starting point, then review current school information in detail.', + 'See where education, property, transport, and environment data comes from.': + 'See where education, property, transport, and environment data comes from.', + 'Explore school-aware searches': 'Explore school-aware searches', + 'Check postcode data before you book a viewing': + 'Check postcode data before you book a viewing', + 'Postcode checker - Property, crime, broadband, noise and schools': + 'Postcode checker - Property, crime, broadband, noise and schools', + 'Check postcode-level property prices, EPC data, crime, broadband, road noise, schools, council tax, amenities and travel-time context.': + 'Check postcode-level property prices, EPC data, crime, broadband, road noise, schools, council tax, amenities and travel-time context.', + 'Review property prices, EPC context, crime, broadband, road noise, local amenities, schools, deprivation, council tax, and travel-time data from one postcode-first map.': + 'Review property prices, EPC context, crime, broadband, road noise, local amenities, schools, deprivation, council tax, and travel-time data from one postcode-first map.', + 'Check multiple local signals before visiting a street.': + 'Check multiple local signals before visiting a street.', + 'Use official and open datasets rather than reputation alone.': + 'Use official and open datasets rather than reputation alone.', + 'Compare postcodes consistently across England.': + 'Compare postcodes consistently across England.', + 'Check the street before spending a viewing slot': + 'Check the street before spending a viewing slot', + 'Use the postcode checker to review price history, local context, amenities, schools, and environment signals before you commit time to visiting.': + 'Use the postcode checker to review price history, local context, amenities, schools, and environment signals before you commit time to visiting.', + 'Compare neighbouring postcodes': 'Compare neighbouring postcodes', + 'If one postcode looks promising, compare adjacent areas using the same filters. This often reveals whether a concern is street-specific or part of a wider pattern.': + 'If one postcode looks promising, compare adjacent areas using the same filters. This often reveals whether a concern is street-specific or part of a wider pattern.', + 'Useful before and alongside listing portals': 'Useful before and alongside listing portals', + 'Listing photos rarely tell you enough about the surrounding street. Perfect Postcode gives you an evidence-led postcode check before you commit time to a viewing.': + 'Listing photos rarely tell you enough about the surrounding street. Perfect Postcode gives you an evidence-led postcode check before you commit time to a viewing.', + 'A screening tool, not professional advice': 'A screening tool, not professional advice', + 'The data is designed for shortlisting and comparison. Any purchase still needs current listing checks, legal due diligence, flood searches, lender requirements, and survey findings.': + 'The data is designed for shortlisting and comparison. Any purchase still needs current listing checks, legal due diligence, flood searches, lender requirements, and survey findings.', + 'What a postcode check can catch': 'What a postcode check can catch', + 'A postcode check can surface price context, environmental signals, nearby amenities, and other local indicators that are easy to miss in a listing.': + 'A postcode check can surface price context, environmental signals, nearby amenities, and other local indicators that are easy to miss in a listing.', + 'What a postcode check can’t prove': 'What a postcode check can’t prove', + 'It can’t confirm the condition of a home, future development, legal title, lender requirements, or current street-level experience. Those still need direct checks.': + 'It can’t confirm the condition of a home, future development, legal title, lender requirements, or current street-level experience. Those still need direct checks.', + 'Can I use the checker before a viewing?': 'Can I use the checker before a viewing?', + 'Yes. That’s one of the main use cases: screen the postcode first, then decide whether the viewing is worth the time.': + 'Yes. That’s one of the main use cases: screen the postcode first, then decide whether the viewing is worth the time.', + 'Does the checker include exact property condition?': + 'Does the checker include exact property condition?', + 'No. Property condition requires listing details, surveys, and direct inspection.': + 'No. Property condition requires listing details, surveys, and direct inspection.', + 'Can I compare multiple postcodes?': 'Can I compare multiple postcodes?', + 'Yes. The map is designed for consistent comparison across postcodes.': + 'Yes. The map is designed for consistent comparison across postcodes.', + 'Check postcodes on the map': 'Check postcodes on the map', + 'Regional guide': 'Regional guide', + 'How to compare Birmingham postcodes before a property search': + 'How to compare Birmingham postcodes before a property search', + 'Birmingham property search - Compare postcodes by price and commute': + 'Birmingham property search - Compare postcodes by price and commute', + 'Use postcode-level data to compare Birmingham property prices, commute trade-offs, schools, crime, broadband and local amenities before viewings.': + 'Use postcode-level data to compare Birmingham property prices, commute trade-offs, schools, crime, broadband and local amenities before viewings.', + 'Birmingham searches can change quickly from street to street. Use postcode-level evidence to compare budget, commute, schools, noise, crime, and local services before deciding where to watch listings.': + 'Birmingham searches can change quickly from street to street. Use postcode-level evidence to compare budget, commute, schools, noise, crime, and local services before deciding where to watch listings.', + 'Start with commute corridors': 'Start with commute corridors', + 'Choose the destination that matters, such as a workplace, station, university, or hospital, then compare reachable postcodes by transport mode and travel-time band.': + 'Choose the destination that matters, such as a workplace, station, university, or hospital, then compare reachable postcodes by transport mode and travel-time band.', + 'Use commute time as a hard filter before judging price.': + 'Use commute time as a hard filter before judging price.', + 'Compare public transport with car, cycling, or walking where available.': + 'Compare public transport with car, cycling, or walking where available.', + 'Check the route manually before booking viewings.': + 'Check the route manually before booking viewings.', + 'Compare price with property type': 'Compare price with property type', + 'Median prices alone can be misleading if the local property mix changes. Add property type, tenure, floor area, and price filters so similar areas are compared fairly.': + 'Median prices alone can be misleading if the local property mix changes. Add property type, tenure, floor area, and price filters so similar areas are compared fairly.', + 'Keep family and environment trade-offs visible': + 'Keep family and environment trade-offs visible', + 'Layer school context, parks, road noise, broadband, and crime signals on top of the property filters. That makes it easier to decide which compromises are acceptable.': + 'Layer school context, parks, road noise, broadband, and crime signals on top of the property filters. That makes it easier to decide which compromises are acceptable.', + 'Can Perfect Postcode tell me the best area in Birmingham?': + 'Can Perfect Postcode tell me the best area in Birmingham?', + 'No tool can decide the best area for every buyer. It helps compare postcodes against your own constraints so you can build a better shortlist.': + 'No tool can decide the best area for every buyer. It helps compare postcodes against your own constraints so you can build a better shortlist.', + 'Should I use this instead of local knowledge?': + 'Should I use this instead of local knowledge?', + 'No. Use it to find and compare candidates, then validate them with visits, local advice, listings, and official checks.': + 'No. Use it to find and compare candidates, then validate them with visits, local advice, listings, and official checks.', + 'Compare price patterns before looking at live listings.': + 'Compare price patterns before looking at live listings.', + 'Search by travel time and then layer on property requirements.': + 'Search by travel time and then layer on property requirements.', + 'Understand how to interpret filters and limitations.': + 'Understand how to interpret filters and limitations.', + 'Compare Birmingham postcodes': 'Compare Birmingham postcodes', + 'How to compare Manchester postcodes for a property search': + 'How to compare Manchester postcodes for a property search', + 'Manchester property search - Compare postcodes before viewing': + 'Manchester property search - Compare postcodes before viewing', + 'Compare Manchester-area postcodes by budget, commute, property type, schools, broadband, crime, noise and amenities before booking viewings.': + 'Compare Manchester-area postcodes by budget, commute, property type, schools, broadband, crime, noise and amenities before booking viewings.', + 'A Manchester-area search can span city-centre, suburban, and commuter options. Perfect Postcode helps keep each postcode comparable against the same property and daily-life constraints.': + 'A Manchester-area search can span city-centre, suburban, and commuter options. Perfect Postcode helps keep each postcode comparable against the same property and daily-life constraints.', + 'Use travel time to define the real search area': + 'Use travel time to define the real search area', + 'Start from the destinations that matter, then compare reachable postcodes rather than assuming every nearby place has the same practical journey.': + 'Start from the destinations that matter, then compare reachable postcodes rather than assuming every nearby place has the same practical journey.', + 'Compare housing requirements before lifestyle preferences': + 'Compare housing requirements before lifestyle preferences', + 'Filter by property type, floor area, tenure, and price before judging amenities. That keeps the shortlist grounded in homes that could realistically work.': + 'Filter by property type, floor area, tenure, and price before judging amenities. That keeps the shortlist grounded in homes that could realistically work.', + 'Check local context consistently': 'Check local context consistently', + 'Use broadband, crime, road noise, parks, schools, and amenities as comparable signals. Then validate the strongest candidates with current local checks.': + 'Use broadband, crime, road noise, parks, schools, and amenities as comparable signals. Then validate the strongest candidates with current local checks.', + 'Can I compare Manchester suburbs with city-centre postcodes?': + 'Can I compare Manchester suburbs with city-centre postcodes?', + 'Yes. Use the same budget, property, commute, and local-context filters across both so trade-offs remain visible.': + 'Yes. Use the same budget, property, commute, and local-context filters across both so trade-offs remain visible.', + 'Does this include live listings?': 'Does this include live listings?', + 'No. Use it to decide where to search, then use listing portals for current homes for sale.': + 'No. Use it to decide where to search, then use listing portals for current homes for sale.', + 'Move from a broad search brief to specific postcode candidates.': + 'Move from a broad search brief to specific postcode candidates.', + 'Data sources': 'Data sources', + 'Review the datasets used for property and local-context comparison.': + 'Review the datasets used for property and local-context comparison.', + 'Check a single postcode before arranging a viewing.': + 'Check a single postcode before arranging a viewing.', + 'Compare Manchester postcodes': 'Compare Manchester postcodes', + 'How to compare Bristol postcodes before a property search': + 'How to compare Bristol postcodes before a property search', + 'Bristol property search - Compare postcodes by commute and price': + 'Bristol property search - Compare postcodes by commute and price', + 'Compare Bristol postcodes by price, commute, property size, schools, broadband, crime, road noise, parks and amenities before viewings.': + 'Compare Bristol postcodes by price, commute, property size, schools, broadband, crime, road noise, parks and amenities before viewings.', + 'Bristol searches often involve sharp trade-offs between price, journey time, property size, and neighbourhood context. A postcode-first comparison keeps those trade-offs visible.': + 'Bristol searches often involve sharp trade-offs between price, journey time, property size, and neighbourhood context. A postcode-first comparison keeps those trade-offs visible.', + 'Make commute constraints explicit': 'Make commute constraints explicit', + 'If access to the centre, a station, hospital, university, or business park matters, use travel-time filters first and then compare the remaining postcodes by property data.': + 'If access to the centre, a station, hospital, university, or business park matters, use travel-time filters first and then compare the remaining postcodes by property data.', + 'Compare value, not just headline price': 'Compare value, not just headline price', + 'Use price, property type, and floor-area filters together. This helps distinguish lower-cost areas from areas that simply contain smaller or different homes.': + 'Use price, property type, and floor-area filters together. This helps distinguish lower-cost areas from areas that simply contain smaller or different homes.', + 'Screen environmental and local-service signals': + 'Screen environmental and local-service signals', + 'Road noise, parks, broadband, crime, and amenities can affect whether a property works day to day. Use them as screening criteria before booking viewings.': + 'Road noise, parks, broadband, crime, and amenities can affect whether a property works day to day. Use them as screening criteria before booking viewings.', + 'Can I use this for commuter villages around Bristol?': + 'Can I use this for commuter villages around Bristol?', + 'Yes, where the relevant postcode and travel-time data is available. Always verify routes and services manually before deciding.': + 'Yes, where the relevant postcode and travel-time data is available. Always verify routes and services manually before deciding.', + 'Can this tell me whether a listing is good value?': + 'Can this tell me whether a listing is good value?', + 'It can provide area context, but a specific listing still needs comparable sales, condition checks, survey findings, and professional advice where appropriate.': + 'It can provide area context, but a specific listing still needs comparable sales, condition checks, survey findings, and professional advice where appropriate.', + 'Search by reachable postcodes before refining by budget and local context.': + 'Search by reachable postcodes before refining by budget and local context.', + 'Understand price patterns before setting listing alerts.': + 'Understand price patterns before setting listing alerts.', + 'Privacy and security': 'Privacy and security', + 'How account and saved-search data is handled in the product.': + 'How account and saved-search data is handled in the product.', + 'Compare Bristol postcodes': 'Compare Bristol postcodes', + 'Trust and coverage': 'Trust and coverage', + 'Perfect Postcode data sources and coverage': 'Perfect Postcode data sources and coverage', + 'Perfect Postcode data sources - Property, schools, commute and local context': + 'Perfect Postcode data sources - Property, schools, commute and local context', + 'Review the public and official datasets used by Perfect Postcode, including property prices, EPC, schools, crime, broadband, noise and travel-time context.': + 'Review the public and official datasets used by Perfect Postcode, including property prices, EPC, schools, crime, broadband, noise and travel-time context.', + 'Perfect Postcode combines property, transport, education, environment, and local-service datasets so buyers can compare postcodes consistently. This page explains what the data is for and where it should be verified.': + 'Perfect Postcode combines property, transport, education, environment, and local-service datasets so buyers can compare postcodes consistently. This page explains what the data is for and where it should be verified.', + 'Property and housing context': 'Property and housing context', + 'The product uses property transaction and housing-context datasets to support filters such as sale price, property type, tenure, floor area, energy performance, and estimated current value.': + 'The product uses property transaction and housing-context datasets to support filters such as sale price, property type, tenure, floor area, energy performance, and estimated current value.', + 'Use these fields to compare areas, not as a formal valuation.': + 'Use these fields to compare areas, not as a formal valuation.', + 'Check current listings, title information, lender requirements, and survey results before buying.': + 'Check current listings, title information, lender requirements, and survey results before buying.', + 'Schools, safety, broadband, and environment': 'Schools, safety, broadband, and environment', + 'Local-context filters help compare postcodes on signals that affect daily life. They should be treated as screening data and checked against current official sources for decisions.': + 'Local-context filters help compare postcodes on signals that affect daily life. They should be treated as screening data and checked against current official sources for decisions.', + 'Travel-time data': 'Travel-time data', + 'Travel-time filters are designed for consistent area comparison. Route availability, disruption, parking, walking access, and timetable details should be verified before committing to an area.': + 'Travel-time filters are designed for consistent area comparison. Route availability, disruption, parking, walking access, and timetable details should be verified before committing to an area.', + 'Why does coverage focus on England?': 'Why does coverage focus on England?', + 'Several core property, education, and local-context datasets are jurisdiction-specific. England coverage keeps comparisons more consistent.': + 'Several core property, education, and local-context datasets are jurisdiction-specific. England coverage keeps comparisons more consistent.', + 'How should I handle stale or missing data?': 'How should I handle stale or missing data?', + 'Use the map as a shortlist tool. If a postcode matters, verify the latest details with current official sources and direct local checks.': + 'Use the map as a shortlist tool. If a postcode matters, verify the latest details with current official sources and direct local checks.', + 'How filters and comparisons should be interpreted.': + 'How filters and comparisons should be interpreted.', + 'Review postcode-level context before a viewing.': + 'Review postcode-level context before a viewing.', + 'How saved searches and account data are handled.': + 'How saved searches and account data are handled.', + 'How to use the map': 'How to use the map', + 'Methodology for postcode property research': 'Methodology for postcode property research', + 'Perfect Postcode methodology - How to interpret postcode property data': + 'Perfect Postcode methodology - How to interpret postcode property data', + 'Understand how to use postcode filters, property estimates, travel-time data, school context and local signals as a home-buying shortlist tool.': + 'Understand how to use postcode filters, property estimates, travel-time data, school context and local signals as a home-buying shortlist tool.', + 'Perfect Postcode is designed to make area shortlisting more evidence-led. It doesn’t replace estate agents, surveyors, conveyancers, lenders, school admissions teams, or local authority checks.': + 'Perfect Postcode is designed to make area shortlisting more evidence-led. It doesn’t replace estate agents, surveyors, conveyancers, lenders, school admissions teams, or local authority checks.', + 'Start with hard constraints': 'Start with hard constraints', + 'Begin with non-negotiables such as budget, property type, floor area, commute time, and essential services. This removes impossible postcodes before softer preferences are considered.': + 'Begin with non-negotiables such as budget, property type, floor area, commute time, and essential services. This removes impossible postcodes before softer preferences are considered.', + 'Use colour layers for trade-offs': 'Use colour layers for trade-offs', + 'After filtering, colour the remaining map by one signal at a time: price per square metre, road noise, school context, commute time, broadband, or crime. This makes trade-offs easier to discuss.': + 'After filtering, colour the remaining map by one signal at a time: price per square metre, road noise, school context, commute time, broadband, or crime. This makes trade-offs easier to discuss.', + 'Measure what’s working': 'Measure what’s working', + 'Use Search Console and analytics to track which public pages are indexed, which queries produce impressions, and which pages convert visitors into dashboard exploration. Review Core Web Vitals after every substantial frontend change.': + 'Use Search Console and analytics to track which public pages are indexed, which queries produce impressions, and which pages convert visitors into dashboard exploration. Review Core Web Vitals after every substantial frontend change.', + 'Can the tool choose the right postcode for me?': + 'Can the tool choose the right postcode for me?', + 'No. It helps compare evidence and reduce the search area. The final decision needs direct visits, current listings, legal checks, surveys, and personal judgement.': + 'No. It helps compare evidence and reduce the search area. The final decision needs direct visits, current listings, legal checks, surveys, and personal judgement.', + 'How should I use estimates?': 'How should I use estimates?', + 'Use estimates as comparison signals, not as professional valuations or purchase advice.': + 'Use estimates as comparison signals, not as professional valuations or purchase advice.', + 'Understand where key filters come from.': 'Understand where key filters come from.', + 'Apply the methodology to price-led area comparison.': + 'Apply the methodology to price-led area comparison.', + 'Apply the methodology to destination-led search.': + 'Apply the methodology to destination-led search.', + Trust: 'Trust', + 'Privacy and security for saved property searches': + 'Privacy and security for saved property searches', + 'Perfect Postcode privacy and security - Saved searches and account data': + 'Perfect Postcode privacy and security - Saved searches and account data', + 'Learn how Perfect Postcode treats saved searches, account data and property research workflows with privacy and security in mind.': + 'Learn how Perfect Postcode treats saved searches, account data and property research workflows with privacy and security in mind.', + 'Property research can reveal personal priorities, budgets, and locations. The product keeps public SEO pages separate from account-only areas and marks private dashboard/account routes as noindex.': + 'Property research can reveal personal priorities, budgets, and locations. The product keeps public SEO pages separate from account-only areas and marks private dashboard/account routes as noindex.', + 'Public pages and private areas are separated': 'Public pages and private areas are separated', + 'Marketing, methodology, guide, and support pages are indexable. Dashboard, account, saved searches, invites, and invitation routes are marked noindex or blocked from crawler access where appropriate.': + 'Marketing, methodology, guide, and support pages are indexable. Dashboard, account, saved searches, invites, and invitation routes are marked noindex or blocked from crawler access where appropriate.', + 'Saved search data is account-scoped': 'Saved search data is account-scoped', + 'Saved searches and properties are intended for signed-in use. They aren’t included in the public sitemap and shouldn’t be crawlable as public content.': + 'Saved searches and properties are intended for signed-in use. They aren’t included in the public sitemap and shouldn’t be crawlable as public content.', + 'Search measurement without exposing private data': + 'Search measurement without exposing private data', + 'SEO measurement should happen on public pages using aggregated analytics and Search Console data. Private query parameters and account views shouldn’t become indexable landing pages.': + 'SEO measurement should happen on public pages using aggregated analytics and Search Console data. Private query parameters and account views shouldn’t become indexable landing pages.', + 'Are saved searches listed in the sitemap?': 'Are saved searches listed in the sitemap?', + 'No. Public SEO pages are listed; account and saved-search routes are intentionally excluded.': + 'No. Public SEO pages are listed; account and saved-search routes are intentionally excluded.', + 'Can private dashboard URLs appear in search?': 'Can private dashboard URLs appear in search?', + 'They shouldn’t be indexed. The server marks private routes noindex and the sitemap only lists public pages.': + 'They shouldn’t be indexed. The server marks private routes noindex and the sitemap only lists public pages.', + 'How to use public postcode data responsibly.': 'How to use public postcode data responsibly.', + 'What data powers the public comparisons.': 'What data powers the public comparisons.', + 'Explore public postcode-search workflows.': 'Explore public postcode-search workflows.', + }, } as const; export default en; diff --git a/frontend/src/i18n/locales/fr.ts b/frontend/src/i18n/locales/fr.ts index 2d2727a..32da1c9 100644 --- a/frontend/src/i18n/locales/fr.ts +++ b/frontend/src/i18n/locales/fr.ts @@ -163,6 +163,14 @@ const fr: Translations = { // ── License Success ──────────────────────────────── licenseSuccess: { + verifyingTitle: 'Vérification de l’accès', + verifyingSubtitle: 'Nous vérifions votre compte avant de débloquer la carte.', + verifyingDescription: 'Cela prend généralement quelques secondes après le paiement.', + activationDelayedTitle: 'Paiement reçu', + activationDelayedSubtitle: 'L’accès est encore en cours d’activation.', + activationDelayedDescription: + 'Nous n’avons pas encore pu confirmer la mise à jour du compte. Actualisez dans un instant ou contactez le support si l’accès n’apparaît pas.', + stayOnPricing: 'Rester sur les tarifs', title: 'C’est fait.', subtitle: 'Votre accès à vie est maintenant actif.', description: @@ -272,7 +280,7 @@ const fr: Translations = { bicycleDesc: ' à vélo, via des itinéraires adaptés aux cyclistes.', walkingDesc: ' à pied, via les chemins piétons et trottoirs.', mainDesc: - 'Affiche le temps nécessaire pour atteindre la destination sélectionnée depuis chaque zone', + 'Affiche le temps nécessaire pour aller de la destination sélectionnée vers chaque zone.', sliderHint: 'Utilisez le curseur pour définir votre temps de trajet maximum.', }, @@ -359,8 +367,8 @@ const fr: Translations = { viewProperties: 'Voir {{count}} propriétés', viewPropertiesShort: 'Voir les propriétés', priceHistory: 'Historique des prix', - journeysFrom: 'Trajets depuis {{label}}', - to: 'Vers {{destination}}', + journeysFrom: 'Temps de trajet pour {{label}}', + to: 'Depuis {{destination}}', noJourneyData: 'Aucune donnée de trajet disponible', viewOnGoogleMaps: 'Voir sur Google Maps', walk: 'Marche', @@ -420,18 +428,17 @@ const fr: Translations = { // ── Home Page ────────────────────────────────────── home: { - heroEyebrow: 'Pour les acheteurs qui se demandent « où chercher ? »', - heroTitle1: 'Trouvez les codes postaux', - heroTitle2: 'qui correspondent à votre vie', - heroTitle3: 'Pas seulement les quartiers que vous connaissez déjà.', - heroSubtitle: - 'Des quartiers londoniens aux villes de banlieue et aux villes régionales, l’Angleterre compte trop de lieux pour les rechercher un par un.', + heroEyebrow: 'Trouvez d’abord où chercher', + heroTitle1: 'Arrêtez de chercher', + heroTitle2: 'aux mauvais endroits', + heroTitle3: 'Avant que les annonces ne resserrent votre recherche.', + heroSubtitle: 'Trouvez les codes postaux où budget, trajet et quotidien s’alignent.', heroDescription: - 'Définissez votre budget, trajet, écoles, sécurité, bruit, débit internet et style de vie. Perfect Postcode analyse les codes postaux d’Angleterre et révèle les lieux qui correspondent vraiment, y compris ceux que vous n’auriez jamais cherchés sur un portail immobilier.', - exploreTheMap: 'Trouver mes codes postaux', - seeTheDifference: 'Voir comment ça marche', - productDemoLabel: 'Démo produit Perfect Postcode', - playProductDemo: 'Lire la démo produit Perfect Postcode', + 'Perfect Postcode filtre d’abord chaque code postal, pour que vous ne couriez après des visites que dans les lieux qui fonctionnent.', + exploreTheMap: 'Montrez-moi où chercher', + seeTheDifference: 'Voir la démo', + productDemoLabel: 'Voir comment trouver où chercher d’abord', + playProductDemo: 'Lire la démo « où chercher »', scrollToProductDemo: 'Faire défiler jusqu’à la démo produit', showcaseHeader: 'Comment ça marche', showcaseContext: 'Comment fonctionne Perfect Postcode', @@ -439,45 +446,44 @@ const fr: Translations = { showcaseFeatureNoiseShort: 'Bruit', showcaseFeatureSchoolsShort: 'Écoles', showcaseFeatureTravelShort: 'Trajet', - showcaseGoodPrimariesNearby: '{{count}}+ bonnes écoles primaires à proximité', - showcaseWithinRail: 'À moins de {{count}} min du train', - showcaseMatchingHomesLabel: 'Biens correspondants', - showcaseMatchingHomes: '{{value}} biens correspondants', + showcaseGoodPrimariesNearby: '{{count}}+ écoles primaires Good ou Outstanding à proximité', + showcaseWithinRail: 'À moins de {{count}} min d’une gare', + showcaseMatchingHomesLabel: 'Codes postaux correspondants', + showcaseMatchingHomes: '{{value}} codes postaux correspondants', showcaseMedianPrice: 'médiane {{value}}', showcaseJourneyRoutes: 'Itinéraires', showcaseNearby: '{{value}} à proximité', showcasePoliticalVoteShare: 'Répartition des voix', - showcaseLotsMore: '...et bien plus', + showcaseLotsMore: 'Plus de données de quartier', showcaseMinutes: '{{count}} min', showcaseSendShortlist: 'Envoyer la sélection', showcaseDownloadXlsx: 'Télécharger le .xlsx', showcaseTopThree: 'Top 3', - showcaseScoutBullet1: - 'Parcourez les rues avant que la recherche d’annonces ne réduise vos options.', + showcaseScoutBullet1: 'Vérifiez la rue avant de vous engager dans des alertes d’annonces.', showcaseScoutBullet2: 'Testez le trajet depuis une vraie porte d’entrée, pas seulement depuis un nom d’arrondissement.', showcaseScoutBullet3: 'Comparez les visites avec des preuves déjà en main.', showcaseStep1Tab: 'Filtrer', - showcaseStep1Title: 'Transformez des besoins vagues en recherche précise', + showcaseStep1Title: 'Définissez ce qui doit fonctionner', showcaseStep1Body: - 'Définissez ce qui compte et voyez exactement combien de codes postaux inadaptés chaque exigence retire de votre recherche.', + 'Ajoutez budget, trajet, écoles, sécurité, bruit et détails locaux. Regardez les mauvais codes postaux disparaître.', showcaseStep1Chip1: 'Rues calmes', - showcaseStep1Chip2: 'Écoles primaires bien notées', + showcaseStep1Chip2: 'Bonnes écoles primaires proches', showcaseStep1Chip3: 'Moins de £500k', showcaseStep1VennCenter: 'Codes postaux qui cochent les trois', - showcaseStep2Tab: 'Comparer', - showcaseStep2Title: 'Laissez la carte révéler des lieux que vous n’auriez pas tapés', + showcaseStep2Tab: 'Associer', + showcaseStep2Title: 'Voyez les lieux qui restent', showcaseStep2Body: - 'Parcourez l’Angleterre par adéquation au lieu de partir de noms de quartiers familiers. Des poches méconnues deviennent visibles avant que les portails d’annonces ne réduisent votre horizon.', + 'Cherchez par critères pratiques, pas par noms familiers. La carte montre les grappes de codes postaux à vérifier en premier.', showcaseStep2Region: 'Grand Londres', showcaseStep2Sources: 'Land Registry · ONS · Ofsted · DfT', showcaseStep2ClustersLabel: 'Grappes correspondantes', showcaseStep3Tab: 'Inspecter', - showcaseStep3Title: 'Comprenez pourquoi un code postal correspond', + showcaseStep3Title: 'Vérifiez les preuves', showcaseStep3Body: - 'Ouvrez n’importe quelle zone correspondante et vérifiez prix, sécurité, écoles, débit internet et compromis dans un seul panneau avant d’y passer un week-end.', - showcaseStep3HeaderArea: 'Votre code postal idéal', - showcaseStep3HeaderFit: 'Éléments sur le quartier', + 'Ouvrez un code postal et voyez prix, trajet, écoles, criminalité, débit internet et compromis avant de vous déplacer.', + showcaseStep3HeaderArea: 'Code postal présélectionné', + showcaseStep3HeaderFit: 'Ce qui fonctionne', showcaseStep3Stat1Label: 'Tendance des prix vendus', showcaseStep3Stat2Label: 'Criminalité', showcaseStep3Stat2Value: 'Sous la moyenne de l’arrondissement', @@ -487,34 +493,34 @@ const fr: Translations = { showcaseStep3Stat5Label: 'Écoles primaires', showcaseStep3Stat5Value: '3 « Excellent » à moins d’un mile', showcaseStep4Tab: 'Repérer', - showcaseStep4Title: 'Allez vérifier par vous-même', + showcaseStep4Title: 'Emmenez la sélection dans la rue', showcaseStep4Body: - 'Emportez trois points de départ solides dans le monde réel. Parcourez les rues, testez le trajet et comparez les visites avec du contexte.', + 'Exportez les codes postaux à vérifier, testez le trajet, parcourez les rues et comparez les visites avec le contexte sauvegardé.', showcaseStep4FileName: 'areas-to-scout.xlsx', showcaseStep4ExportLabel: 'Exporter vers Excel', showcaseStep4ColPostcode: 'Code postal', - showcaseStep4ColScore: 'Ajust.', + showcaseStep4ColScore: 'Adéquation', showcaseStep4ColCommute: 'Trajet', - showcaseStep4ColPrice: 'Prix médian', - showcaseStep4Conclusion: 'Vous pouvez commencer votre recherche ici.', - statProperties: 'ventes historiques', - statFilters: 'filtres combinables', + showcaseStep4ColPrice: 'Prix de vente médian', + showcaseStep4Conclusion: 'Exportez une sélection et commencez à vérifier les rues.', + statProperties: 'ventes HM Land Registry', + statFilters: 'façons de resserrer la carte', statEvery: 'Chaque', - statPostcodeInEngland: 'code postal d’Angleterre', - ourPhilosophy: 'Commencez par votre vie, pas par un code postal', + statPostcodeInEngland: 'code postal actif en Angleterre', + ourPhilosophy: 'Arrêtez de commencer par les villes que vous connaissez déjà.', philosophyP1: - 'La plupart des sites immobiliers demandent où vous voulez vivre. À Londres, c’est particulièrement difficile, mais le même problème existe partout en Angleterre : les acheteurs partent des quelques lieux qu’ils connaissent, puis vérifient séparément trajets, écoles, criminalité, Street View, débit internet et prix vendus.', + 'La plupart des recherches commencent par un nom de lieu, puis espèrent que les bons biens apparaîtront. Cela évite la question plus difficile : quels lieux valent vraiment la peine d’être recherchés ?', philosophyP2: - 'Perfect Postcode inverse la recherche. Dites à la carte ce qui compte et elle affiche les codes postaux qui correspondent, avec les raisons pour lesquelles ils méritent d’être étudiés. Les données d’abord, puis allez tester l’ambiance.', + 'Perfect Postcode commence avant le site d’annonces. Définissez ce qu’un lieu doit permettre, puis voyez les codes postaux qui méritent votre attention en premier.', streetTitle: 'Tout change rue par rue', streetIntro: - 'Les grands noms de quartiers cachent les détails importants : le côté de la gare, le bruit de la route, les écoles, le trajet exact et les vrais prix de vente.', - streetCard1Title: 'Trouvez les zones que vous auriez manquées', + 'Le bon côté d’une gare, une route bruyante ou une zone de recrutement scolaire peuvent changer la recherche. Les noms de zones gomment tout cela.', + streetCard1Title: 'Échappez au piège des noms familiers', streetCard1Body: - 'Faites ressortir les codes postaux qui correspondent à vos critères, au lieu de dépendre seulement des noms connus ou des recommandations.', - streetCard2Title: 'Voyez les compromis avant les visites', + 'Trouvez des correspondances au niveau du code postal hors des lieux déjà sur votre liste.', + streetCard2Title: 'Connaissez les compromis avant d’y aller', streetCard2Body: - 'Comparez prix, surface, trajet, sécurité, écoles, débit internet, bruit et énergie avant de passer vos week-ends à courir les visites.', + 'Vérifiez prix, trajet, bruit, écoles, sécurité, débit internet et commodités proches avant de réserver des visites.', othersVs: 'Les autres vs', checkMyPostcode: 'Portails d’annonces', areaGuides: 'Rapports de code postal', @@ -524,11 +530,11 @@ const fr: Translations = { compAreaDataSub: '(criminalité, écoles, bruit, débit internet, services)', compPropertyData: 'Historique par propriété', compPropertyDataSub: '(prix vendus, DPE, surface, valeur estimée)', - compFilters: '56 filtres qui fonctionnent ensemble', - compFiltersSub: '(pas un code postal ou une annonce à la fois)', - ctaTitle: 'Arrêtez de deviner où acheter.', + compFilters: 'Budget, trajet, écoles, sécurité et données locales ensemble', + compFiltersSub: '(budget + trajet + écoles + sécurité + contexte local)', + ctaTitle: 'Trouvez où chercher avant de réserver des visites.', ctaDescription: - 'Construisez une sélection de codes postaux adaptés à votre vraie vie, puis allez les tester sur place.', + 'Construisez une sélection de codes postaux à partir de ce qui compte, puis vérifiez les rues sur place.', }, // ── Pricing Page ─────────────────────────────────── @@ -609,7 +615,7 @@ const fr: Translations = { dsCrimeName: 'Données de criminalité de proximité', dsCrimeOrigin: 'data.police.uk', dsCrimeUse: - 'Données de criminalité de proximité de 2023 à 2025, agrégées en moyennes annuelles par LSOA et type d’infraction (violences, cambriolages, troubles à l’ordre public, stupéfiants, vols de véhicules, etc.).', + 'Données de criminalité de proximité agrégées en moyennes annuelles par LSOA et type d’infraction (violences, cambriolages, troubles à l’ordre public, stupéfiants, vols de véhicules, etc.).', dsOsmName: 'Points d’intérêt OpenStreetMap', dsOsmOrigin: 'OpenStreetMap contributors / Geofabrik', dsOsmUse: @@ -625,7 +631,7 @@ const fr: Translations = { dsTowName: 'Carte nationale des arbres hors forêt', dsTowOrigin: 'Forest Research / Defra NCEA', dsTowUse: - 'Polygones de couvert arboré pour les arbres isolés, groupes d’arbres et petits bois en Angleterre. Utilisés ici pour estimer la densité d’arbres au niveau de la rue autour des adresses de biens.', + 'Polygones de couvert arboré pour les arbres isolés, groupes d’arbres et petits bois en Angleterre. Utilisés ici pour estimer les percentiles de couvert arboré autour des centroïdes de codes postaux.', dsNaptanName: 'NaPTAN (arrêts de transport public)', dsNaptanOrigin: 'Department for Transport', dsNaptanUse: @@ -780,6 +786,10 @@ const fr: Translations = { receiveNewsletter: 'Recevoir les e-mails de la newsletter', needHelp: 'Besoin d’aide ? Écrivez-nous à', responseTime: 'Nous répondons généralement sous 24 heures.', + shareLinksTitle: 'Liens partagés', + noShareLinksYet: 'Aucun lien partagé pour l’instant', + copyShareLink: 'Copier le lien partagé', + clicksLabel: 'clics', }, // ── Saved Page ───────────────────────────────────── @@ -929,6 +939,7 @@ const fr: Translations = { 'Current energy rating': 'Classement énergétique actuel', 'Potential energy rating': 'Classement énergétique potentiel', 'Interior height (m)': 'Hauteur intérieure (m)', + 'Street tree density percentile': 'Percentile de densité arborée de la rue', // ─ Feature names (Transport) ─ 'Travel time to nearest train or tube station (min)': @@ -1122,6 +1133,485 @@ const fr: Translations = { ' years': ' ans', ' rooms': ' pièces', }, + + seo: { + 'Property price map': "Carte des prix de l'immobilier", + 'Compare property prices across every postcode in England': + 'Comparez les prix de l’immobilier pour chaque code postal en Angleterre', + 'Property price map for England - Compare postcodes before viewing': + "Carte des prix de l'immobilier en Angleterre - Comparez les codes postaux avant de consulter", + 'Compare sold prices, estimated current value, price per square metre and local context across English postcodes before searching listings.': + 'Comparez les prix de vente, la valeur actuelle estimée, le prix au mètre carré et le contexte local dans les codes postaux anglais avant de rechercher des annonces.', + 'Perfect Postcode maps sold prices, estimated current value, price per square metre, property type, floor area, tenure, and local context so buyers can find realistic search areas before opening listing portals.': + "Perfect Postcode cartographie les prix de vente, la valeur actuelle estimée, le prix au mètre carré, le type de propriété, la superficie, le mode d'occupation et le contexte local afin que les acheteurs puissent trouver des zones de recherche réalistes avant d'ouvrir les portails d’annonces.", + 'Screen historical sale prices and current-value estimates by postcode.': + 'Consultez l’historique des prix de vente et les estimations de la valeur actuelle par code postal.', + 'Compare value with commute, schools, broadband, crime, noise, and amenities.': + 'Comparez la valeur avec les déplacements domicile-travail, les écoles, le haut débit, la criminalité, le bruit et les commodités.', + 'Build a shortlist before spending weekends on viewings.': + 'Créez une liste restreinte avant de passer vos week-ends en visites.', + 'Find postcodes that fit the budget before listings appear': + "Trouvez les codes postaux qui correspondent au budget avant que les annonces n'apparaissent", + 'Start with a maximum price and property type, then colour the map by price per square metre or estimated current price. This helps reveal areas where similar homes have historically traded within reach, even when there are no live listings today.': + "Commencez par un prix maximum et un type de propriété, puis coloriez la carte par prix au mètre carré ou prix actuel estimé. Cela permet de révéler les zones où des maisons similaires ont historiquement été négociées à portée de main, même s'il n'y a pas d’annonces en cours aujourd'hui.", + 'Filter by last known sale price, estimated current value, property type, tenure, and floor area.': + "Filtrez par dernier prix de vente connu, valeur actuelle estimée, type de propriété, mode d'occupation et superficie.", + 'Compare nearby postcodes using the same criteria instead of relying on area reputation.': + 'Comparez les codes postaux à proximité en utilisant les mêmes critères au lieu de vous fier à la réputation de la zone.', + 'Use the results as a shortlist for listing alerts, local research, and viewings.': + 'Utilisez les résultats comme liste restreinte pour répertorier les alertes, les recherches locales et les visites.', + 'Separate cheap from good value': 'Séparez le bon marché du bon rapport qualité-prix', + 'A lower price can reflect smaller homes, weaker transport, more noise, or fewer local services. The map keeps those trade-offs visible so the cheapest postcode isn’t automatically treated as the best option.': + 'Un prix inférieur peut refléter des logements plus petits, des transports plus faibles, plus de bruit ou moins de services locaux. La carte garde ces compromis visibles, de sorte que le code postal le moins cher n’est pas automatiquement traité comme la meilleure option.', + 'Start from area value, not listing availability': + 'Commencer à partir de la valeur de la zone, sans lister la disponibilité', + 'Listing portals only show homes for sale today. A postcode-level property price map lets you compare wider areas, understand local price patterns, and avoid missing places where the next suitable listing might appear.': + "Les portails d’annonces affichent uniquement les maisons à vendre aujourd’hui. Une carte des prix immobiliers au niveau du code postal vous permet de comparer des zones plus larges, de comprendre les modèles de prix locaux et d'éviter de manquer des endroits où la prochaine annonce appropriée pourrait apparaître.", + 'Use prices alongside real constraints': 'Utiliser les prix avec des contraintes réelles', + 'Budget rarely matters on its own. Perfect Postcode combines price filters with travel time, school quality, property size, energy performance, local environment, and services so your shortlist reflects how you actually want to live.': + "Le budget compte rarement à lui seul. Perfect Postcode combine des filtres de prix avec le temps de trajet, la qualité de l'école, la taille de la propriété, la performance énergétique, l'environnement local et les services afin que votre liste restreinte reflète la façon dont vous souhaitez réellement vivre.", + 'What the price data is for': 'À quoi servent les données de prix', + 'Use the map to compare areas and spot search candidates. It isn’t a valuation, mortgage decision, survey, legal search, or live listing feed.': + 'Utilisez la carte pour comparer les zones et repérer les candidats à la recherche. Il ne s’agit pas d’une évaluation, d’une décision hypothécaire, d’une enquête, d’une recherche juridique ou d’un flux d’annonces en direct.', + 'How to validate a promising area': 'Comment valider un domaine prometteur', + 'Once a postcode looks promising, check current listings, sold-price comparables, agent details, flood searches, legal packs, surveys, and local authority information before making a decision.': + "Une fois qu'un code postal semble prometteur, vérifiez les annonces actuelles, les prix de vente comparables, les détails de l'agent, les recherches d'inondations, les dossiers juridiques, les enquêtes et les informations des autorités locales avant de prendre une décision.", + 'Is this a replacement for Rightmove or Zoopla?': + 'Est-ce un remplacement pour Rightmove ou Zoopla ?', + 'No. Use it before and alongside listing portals. Perfect Postcode helps decide where to look; listing portals show what’s currently for sale.': + 'Non. Utilisez-le avant et parallèlement aux portails d’annonces. Perfect Postcode aide à décider où chercher ; les portails d’annonces affichent ce qui est actuellement en vente.', + 'Can I compare price with schools or commute time?': + 'Puis-je comparer les prix avec les écoles ou le temps de trajet ?', + 'Yes. Price filters can be combined with travel-time, schools, crime, broadband, road-noise, amenities, and environment filters.': + "Oui. Les filtres de prix peuvent être combinés avec des filtres sur le temps de trajet, les écoles, la criminalité, le haut débit, le bruit de la route, les commodités et l'environnement.", + 'Does the map cover all of the UK?': 'La carte couvre-t-elle tout le Royaume-Uni ?', + 'The current product focuses on England because several core property and postcode datasets are England-specific.': + "Le produit actuel se concentre sur l'Angleterre, car plusieurs ensembles de données de propriétés et de codes postaux de base sont spécifiques à l'Angleterre.", + 'Birmingham property search guide': 'Guide de recherche de propriétés à Birmingham', + 'A worked example for balancing price, commute, and family trade-offs.': + 'Un exemple concret pour équilibrer les compromis en matière de prix, de déplacement et de famille.', + 'Data sources and coverage': 'Sources de données et couverture', + 'See which datasets sit behind the postcode filters and where they have limits.': + 'Découvrez quels ensembles de données se trouvent derrière les filtres de code postal et où ils ont des limites.', + Methodology: 'Méthodologie', + 'Understand how the map is intended to support shortlisting, not replace due diligence.': + 'Comprenez comment la carte est destinée à soutenir la présélection et non à remplacer la diligence raisonnable.', + 'Postcode checker': 'Vérificateur de code postal', + 'Check one postcode before you spend time on a viewing.': + 'Vérifiez un code postal avant de consacrer du temps à une visite.', + 'Explore the property map': 'Explorez la carte de la propriété', + 'Postcode property search': 'Recherche de propriété par code postal', + 'Find postcodes that match your property search criteria': + 'Trouvez les codes postaux qui correspondent à vos critères de recherche de propriété', + 'Postcode property search - Find areas that match your criteria': + 'Recherche de propriété par code postal - Trouvez les zones qui correspondent à vos critères', + 'Search every postcode by budget, property type, floor area, tenure, commute, schools, crime, broadband, noise, parks and local amenities.': + "Recherchez chaque code postal par budget, type de propriété, superficie, mode d'occupation, déplacements domicile-travail, écoles, criminalité, haut débit, bruit, parcs et commodités locales.", + 'Search every postcode by budget, property type, size, tenure, commute, schools, crime, broadband, noise, parks, and local amenities instead of checking areas one at a time.': + "Recherchez chaque code postal par budget, type de propriété, taille, mode d'occupation, déplacements domicile-travail, écoles, criminalité, haut débit, bruit, parcs et commodités locales au lieu de vérifier les zones une par une.", + 'Filter England-wide postcode data from one map.': + 'Filtrez les données des codes postaux de toute l’Angleterre à partir d’une seule carte.', + 'Shortlist unfamiliar areas with comparable evidence.': + 'Présélectionnez les domaines inconnus avec des preuves comparables.', + 'Save and share search areas before booking viewings.': + 'Enregistrez et partagez les zones de recherche avant de réserver des visites.', + 'Turn a broad brief into postcode candidates': + 'Transformez un dossier général en candidats au code postal', + 'Enter the practical constraints first: budget, property size, tenure, travel time, school needs, broadband, and tolerance for road noise or crime levels. The map removes places that fail those constraints and keeps the remaining options comparable.': + "Saisissez d'abord les contraintes pratiques : budget, taille de la propriété, mode d'occupation, temps de trajet, besoins scolaires, haut débit et tolérance au bruit routier ou aux niveaux de criminalité. La carte supprime les endroits qui ne respectent pas ces contraintes et conserve les options restantes comparables.", + 'Relax one constraint at a time': 'Assouplir une contrainte à la fois', + 'When the search becomes too narrow, loosen a single filter and watch which postcodes reappear. This makes compromise explicit instead of relying on guesswork.': + 'Lorsque la recherche devient trop étroite, supprimez un seul filtre et observez quels codes postaux réapparaissent. Cela rend le compromis explicite au lieu de s’appuyer sur des conjectures.', + 'Turn vague areas into specific postcodes': + 'Transformez des zones vagues en codes postaux spécifiques', + 'Broad town or borough searches hide large differences between streets. Perfect Postcode helps you move from a general area to postcodes that satisfy your hard requirements.': + "Les recherches à grande échelle dans les villes ou les arrondissements cachent de grandes différences entre les rues. Perfect Postcode vous aide à passer d'une zone générale à des codes postaux qui répondent à vos exigences strictes.", + 'Keep trade-offs visible': 'Gardez les compromis visibles', + 'When there are too many or too few matches, adjust one constraint at a time and see exactly which postcodes reappear. That makes compromises explicit instead of relying on guesswork.': + "Lorsqu'il y a trop ou pas assez de correspondances, ajustez une contrainte à la fois et voyez exactement quels codes postaux réapparaissent. Cela rend les compromis explicites au lieu de s’appuyer sur des conjectures.", + 'Why postcode-level comparison matters': + 'Pourquoi la comparaison au niveau du code postal est importante', + 'Two nearby postcodes can differ on schools, road noise, transport access, property mix, and price. Comparing at postcode level reduces the chance of treating a whole town as one uniform market.': + "Deux codes postaux proches peuvent différer en termes d'écoles, de bruit routier, d'accès aux transports, de composition immobilière et de prix. La comparaison au niveau du code postal réduit la probabilité de traiter une ville entière comme un seul marché uniforme.", + 'How to use the results': 'Comment utiliser les résultats', + 'Treat matching postcodes as a research queue: check live listings, visit streets, confirm schools and admissions, and review current official sources.': + "Traitez les codes postaux correspondants comme une file d'attente de recherche : vérifiez les listes en direct, visitez les rues, confirmez les écoles et les admissions et consultez les sources officielles actuelles.", + 'Can I save a postcode property search?': + 'Puis-je enregistrer une recherche de propriété par code postal ?', + 'Yes. Licensed users can save searches and return to them later. Saved searches are designed for shortlists and comparison notes.': + 'Oui. Les utilisateurs sous licence peuvent enregistrer leurs recherches et y revenir plus tard. Les recherches enregistrées sont conçues pour les listes restreintes et les notes de comparaison.', + 'Can I search without knowing the area?': 'Puis-je chercher sans connaître la zone ?', + 'Yes. The map is designed to surface unfamiliar areas that match practical constraints, not just places you already know.': + 'Oui. La carte est conçue pour faire apparaître des zones inconnues qui correspondent à des contraintes pratiques, et pas seulement des endroits que vous connaissez déjà.', + 'Are the results live property listings?': + 'Les résultats sont-ils des annonces immobilières en direct ?', + 'No. The tool compares postcode data and historical/contextual property signals. You still need listing portals for current availability.': + 'Non. L’outil compare les données de code postal et les signaux de propriété historiques/contextuels. Vous avez toujours besoin de portails d’annonces pour connaître la disponibilité actuelle.', + 'Manchester property search guide': 'Guide de recherche de propriétés à Manchester', + 'A regional guide for narrowing a broad search around Greater Manchester.': + 'Un guide régional pour affiner une recherche large autour du Grand Manchester.', + 'Start a postcode search': 'Lancer une recherche de code postal', + 'Commute property search': 'Recherche de propriété pour les déplacements domicile-travail', + 'Search for places to live by commute time': + 'Rechercher des lieux de résidence par temps de trajet', + 'Commute property search - Find places to live by travel time': + 'Recherche de propriété pour les déplacements domicile-travail – Trouver des endroits où vivre en fonction du temps de trajet', + 'Filter postcodes by commute time, then compare price, schools, safety, broadband, road noise, parks and property data on one map.': + 'Filtrez les codes postaux par temps de trajet, puis comparez les données sur les prix, les écoles, la sécurité, le haut débit, le bruit routier, les parcs et les propriétés sur une seule carte.', + 'Filter postcodes by modelled car, cycling, walking, and public transport travel times, then layer on property price, schools, crime, broadband, noise, and local amenities.': + "Filtrez les codes postaux par temps de trajet modélisés en voiture, en vélo, à pied et en transports en commun, puis superposez le prix de l'immobilier, les écoles, la criminalité, le haut débit, le bruit et les commodités locales.", + 'Compare reachable postcodes by realistic travel-time bands.': + 'Comparez les codes postaux accessibles par tranches de temps de trajet réalistes.', + 'Search by destination first, then filter for property and neighbourhood fit.': + "Recherchez d'abord par destination, puis filtrez en fonction de l'adéquation de la propriété et du quartier.", + 'Avoid areas that look close on a map but fail the daily journey.': + 'Évitez les zones qui semblent proches sur une carte mais qui échouent au trajet quotidien.', + 'Start with the destination that matters': 'Commencez par la destination qui compte', + 'Choose a commute destination, transport mode, and time range, then add the property filters. This prevents a cheap-looking area from reaching the shortlist if the daily journey doesn’t work.': + 'Choisissez une destination de trajet, un mode de transport et une plage horaire, puis ajoutez les filtres de propriétés. Cela évite qu’une zone d’apparence bon marché ne figure sur la liste restreinte si le trajet quotidien ne fonctionne pas.', + 'Compare the commute against the rest of daily life': + 'Comparez les déplacements avec le reste de la vie quotidienne', + 'A fast commute isn’t enough if the property size, school context, safety threshold, broadband, or road-noise exposure don’t fit. The map keeps those signals side by side.': + 'Un trajet rapide ne suffit pas si la taille de la propriété, le contexte scolaire, le seuil de sécurité, le haut débit ou l’exposition au bruit de la route ne conviennent pas. La carte conserve ces signaux côte à côte.', + 'Commute from postcodes, not just place names': + 'Déplacez-vous à partir des codes postaux, pas seulement des noms de lieux', + 'Two streets in the same town can have very different station access, road routes, and public transport options. Postcode-level travel-time filtering keeps that difference visible.': + 'Deux rues d’une même ville peuvent avoir des accès à la gare, des itinéraires routiers et des options de transports publics très différents. Le filtrage du temps de trajet au niveau du code postal maintient cette différence visible.', + 'Balance journey time with the rest of the move': + 'Équilibrez le temps de trajet avec le reste du déménagement', + 'A fast commute only helps if the area also fits your budget, housing needs, school preferences, safety threshold, broadband requirement, and tolerance for road noise.': + "Un trajet rapide n'est utile que si la zone correspond également à votre budget, à vos besoins en matière de logement, à vos préférences scolaires, à votre seuil de sécurité, à vos exigences en matière de haut débit et à votre tolérance au bruit de la route.", + 'How travel-time filters should be interpreted': + 'Comment interpréter les filtres de temps de trajet', + 'Travel-time modelling is useful for comparing areas consistently. Before committing, check current timetables, disruption patterns, parking, cycling conditions, and walking routes.': + 'La modélisation du temps de trajet est utile pour comparer les zones de manière cohérente. Avant de vous engager, vérifiez les horaires actuels, les schémas de perturbations, le stationnement, les conditions cyclables et les itinéraires pédestres.', + 'Why commute filters are combined with property data': + 'Pourquoi les filtres de trajet domicile-travail sont combinés avec les données de propriété', + 'Commute search is most useful when it removes impossible areas while still showing whether the remaining options are affordable and liveable.': + "La recherche de trajet est plus utile lorsqu'elle supprime les zones impossibles tout en indiquant si les options restantes sont abordables et vivable.", + 'Can I compare car, cycling, walking, and public transport?': + 'Puis-je comparer la voiture, le vélo, la marche et les transports publics ?', + 'The product supports multiple travel modes where precomputed destination data is available.': + 'Le produit prend en charge plusieurs modes de déplacement pour lesquels des données de destination précalculées sont disponibles.', + 'Are travel times exact?': 'Les temps de trajet sont-ils exacts ?', + 'No. Treat them as a consistent comparison model, then verify the real route before making viewing or purchase decisions.': + "Non. Traitez-les comme un modèle de comparaison cohérent, puis vérifiez le véritable itinéraire avant de prendre une décision de visualisation ou d'achat.", + 'Can I combine commute filters with schools and price?': + 'Puis-je combiner les filtres de trajet domicile-travail avec les écoles et le prix ?', + 'Yes. The commute filter can be layered with property price, size, schools, broadband, crime, amenities, and environmental signals.': + 'Oui. Le filtre des déplacements domicile-travail peut être superposé au prix de l’immobilier, à la taille, aux écoles, au haut débit, à la criminalité, aux commodités et aux signaux environnementaux.', + 'Bristol property search guide': 'Guide de recherche de propriétés à Bristol', + 'A worked example for balancing city access, price, and local context.': + "Un exemple concret pour équilibrer l'accès à la ville, le prix et le contexte local.", + 'Search by commute time': 'Rechercher par temps de trajet', + 'Schools and property search': "Recherche d'écoles et de propriétés", + 'Find property search areas with schools and family trade-offs in view': + 'Trouvez des zones de recherche de propriété avec des compromis scolaires et familiaux en vue', + 'School property search - Compare postcodes for family moves': + 'Recherche de propriété scolaire - Comparez les codes postaux pour les déménagements familiaux', + 'Compare nearby schools, property size, prices, parks, safety, commute and local amenities before building a viewing shortlist.': + 'Comparez les écoles à proximité, la taille de la propriété, les prix, les parcs, la sécurité, les déplacements et les commodités locales avant de créer une liste restreinte de visites.', + 'Compare nearby Ofsted ratings, education context, property size, budget, safety, parks, commute, and local amenities before narrowing your viewing shortlist.': + 'Comparez les évaluations Ofsted à proximité, le contexte éducatif, la taille de la propriété, le budget, la sécurité, les parcs, les déplacements domicile-travail et les commodités locales avant de réduire votre liste restreinte de visualisation.', + 'Filter for nearby school quality alongside housing requirements.': + 'Filtrez la qualité des écoles à proximité ainsi que les exigences en matière de logement.', + 'Compare family-friendly trade-offs across unfamiliar postcodes.': + 'Comparez les compromis adaptés aux familles entre des codes postaux inconnus.', + 'Use the map as a shortlist tool before checking admissions and catchments.': + 'Utilisez la carte comme outil de présélection avant de vérifier les admissions et les bassins versants.', + 'Use school context without ignoring the home': + 'Utiliser le contexte scolaire sans ignorer la maison', + 'Start with property size, budget, and commute constraints, then layer in nearby school quality and local context. This prevents school-led searches from hiding affordability or daily-life problems.': + "Commencez par la taille de la propriété, le budget et les contraintes de déplacement, puis ajoutez la qualité des écoles à proximité et le contexte local. Cela empêche les recherches menées par l'école de cacher des problèmes d'abordabilité ou de la vie quotidienne.", + 'Verify admissions before deciding': 'Vérifier les admissions avant de décider', + 'School data can point to promising areas, but admissions rules and catchments can change. Confirm current arrangements with schools and local authorities.': + 'Les données scolaires peuvent indiquer des domaines prometteurs, mais les règles d’admission et les bassins versants peuvent changer. Confirmez les arrangements actuels avec les écoles et les autorités locales.', + 'School quality is one part of the shortlist': + "La qualité de l'école fait partie de la liste restreinte", + 'Perfect Postcode helps you compare nearby school data with the other practical constraints that shape a family move: space, price, commute, parks, safety, and local services.': + 'Perfect Postcode vous aide à comparer les données des écoles à proximité avec les autres contraintes pratiques qui façonnent un déménagement familial : espace, prix, déplacements domicile-travail, parcs, sécurité et services locaux.', + 'Check catchments before making decisions': + 'Vérifier les bassins versants avant de prendre des décisions', + 'Admissions rules and catchment boundaries can change. Use postcode-level school data to find promising areas, then verify current admissions details with the school or local authority.': + "Les règles d'admission et les limites des bassins versants peuvent changer. Utilisez les données scolaires au niveau du code postal pour trouver des zones prometteuses, puis vérifiez les détails actuels des admissions auprès de l'école ou des autorités locales.", + 'How to treat school filters': 'Comment traiter les filtres scolaires', + 'Use school filters to narrow research, not to assume admission eligibility. Ratings, distance, admissions criteria, and school capacity should all be checked with current official sources.': + "Utilisez les filtres scolaires pour affiner la recherche, et non pour supposer l’éligibilité à l’admission. Les notes, la distance, les critères d'admission et la capacité de l'école doivent tous être vérifiés auprès des sources officielles actuelles.", + 'Family trade-offs to compare': 'Les compromis familiaux à comparer', + 'Combine schools with parks, road noise, crime, property size, commute, broadband, and price so the shortlist reflects the whole move.': + "Combinez les écoles avec les parcs, le bruit de la route, la criminalité, la taille de la propriété, les déplacements domicile-travail, le haut débit et le prix afin que la liste restreinte reflète l'ensemble du déménagement.", + 'Does this show school catchment guarantees?': + 'Cela montre-t-il des garanties de fréquentation scolaire ?', + 'No. It helps identify promising areas, but catchments and admissions must be verified with the school or local authority.': + "Non. Cela permet d'identifier les zones prometteuses, mais les recrutements et les admissions doivent être vérifiés auprès de l'école ou des autorités locales.", + 'Can I combine school filters with parks and safety?': + 'Puis-je combiner les filtres scolaires avec les parcs et la sécurité ?', + 'Yes. School-aware search can be combined with crime, parks, commute, price, property size, and local services.': + "Oui. La recherche adaptée à l'école peut être combinée avec la criminalité, les parcs, les déplacements domicile-travail, le prix, la taille de la propriété et les services locaux.", + 'Is Ofsted the only school signal?': 'Ofsted est-il le seul signal scolaire ?', + 'No single score should decide a move. Use the map as a starting point, then review current school information in detail.': + "Aucun score ne devrait décider d'un coup. Utilisez la carte comme point de départ, puis examinez en détail les informations actuelles sur l’école.", + 'See where education, property, transport, and environment data comes from.': + "Découvrez d'où proviennent les données sur l'éducation, l'immobilier, les transports et l'environnement.", + 'Explore school-aware searches': "Explorez les recherches adaptées à l'école", + 'Check postcode data before you book a viewing': + 'Vérifiez les données du code postal avant de réserver une visite', + 'Postcode checker - Property, crime, broadband, noise and schools': + 'Vérificateur de code postal - Propriété, criminalité, haut débit, bruit et écoles', + 'Check postcode-level property prices, EPC data, crime, broadband, road noise, schools, council tax, amenities and travel-time context.': + "Vérifiez les prix de l'immobilier au niveau du code postal, les données EPC, la criminalité, le haut débit, le bruit de la route, les écoles, la taxe d'habitation, les commodités et le contexte du temps de trajet.", + 'Review property prices, EPC context, crime, broadband, road noise, local amenities, schools, deprivation, council tax, and travel-time data from one postcode-first map.': + "Examinez les prix de l'immobilier, le contexte EPC, la criminalité, le haut débit, le bruit de la route, les commodités locales, les écoles, les privations, la taxe d'habitation et les données sur le temps de trajet à partir d'une seule carte indiquant le code postal.", + 'Check multiple local signals before visiting a street.': + 'Vérifiez plusieurs signaux locaux avant de visiter une rue.', + 'Use official and open datasets rather than reputation alone.': + 'Utilisez des ensembles de données officiels et ouverts plutôt que la seule réputation.', + 'Compare postcodes consistently across England.': + 'Comparez les codes postaux de manière cohérente dans toute l’Angleterre.', + 'Check the street before spending a viewing slot': + "Vérifiez la rue avant de passer un créneau d'observation", + 'Use the postcode checker to review price history, local context, amenities, schools, and environment signals before you commit time to visiting.': + "Utilisez le vérificateur de code postal pour examiner l'historique des prix, le contexte local, les commodités, les écoles et les signaux environnementaux avant de consacrer du temps à votre visite.", + 'Compare neighbouring postcodes': 'Comparez les codes postaux voisins', + 'If one postcode looks promising, compare adjacent areas using the same filters. This often reveals whether a concern is street-specific or part of a wider pattern.': + 'Si un code postal semble prometteur, comparez les zones adjacentes en utilisant les mêmes filtres. Cela révèle souvent si une préoccupation est spécifique à une rue ou fait partie d’un schéma plus large.', + 'Useful before and alongside listing portals': + 'Utile avant et parallèlement aux portails d’annonces', + 'Listing photos rarely tell you enough about the surrounding street. Perfect Postcode gives you an evidence-led postcode check before you commit time to a viewing.': + 'Les photos de la liste vous en disent rarement assez sur la rue environnante. Perfect Postcode vous offre une vérification du code postal fondée sur des preuves avant de consacrer du temps à une visite.', + 'A screening tool, not professional advice': + 'Un outil de dépistage, pas un conseil professionnel', + 'The data is designed for shortlisting and comparison. Any purchase still needs current listing checks, legal due diligence, flood searches, lender requirements, and survey findings.': + "Les données sont conçues pour la présélection et la comparaison. Tout achat nécessite toujours des vérifications des annonces actuelles, une diligence raisonnable juridique, des recherches d'inondations, des exigences des prêteurs et des résultats d'enquêtes.", + 'What a postcode check can catch': "Ce qu'une vérification du code postal peut détecter", + 'A postcode check can surface price context, environmental signals, nearby amenities, and other local indicators that are easy to miss in a listing.': + "Une vérification du code postal peut faire apparaître le contexte des prix, les signaux environnementaux, les commodités à proximité et d'autres indicateurs locaux faciles à manquer dans une annonce.", + 'What a postcode check can’t prove': + "Ce qu'une vérification du code postal ne peut pas prouver", + 'It can’t confirm the condition of a home, future development, legal title, lender requirements, or current street-level experience. Those still need direct checks.': + 'Il ne peut pas confirmer l’état d’une maison, le développement futur, le titre légal, les exigences du prêteur ou l’expérience actuelle au niveau de la rue. Ceux-ci ont encore besoin de contrôles directs.', + 'Can I use the checker before a viewing?': + 'Puis-je utiliser le vérificateur avant une visite ?', + 'Yes. That’s one of the main use cases: screen the postcode first, then decide whether the viewing is worth the time.': + 'Oui. C’est l’un des principaux cas d’utilisation : examinez d’abord le code postal, puis décidez si le visionnage en vaut la peine.', + 'Does the checker include exact property condition?': + 'Le vérificateur inclut-il l’état exact de la propriété ?', + 'No. Property condition requires listing details, surveys, and direct inspection.': + 'L’état de la propriété nécessite des détails d’inscription, des enquêtes et une inspection directe.', + 'Can I compare multiple postcodes?': 'Puis-je comparer plusieurs codes postaux ?', + 'Yes. The map is designed for consistent comparison across postcodes.': + 'Oui. La carte est conçue pour une comparaison cohérente entre les codes postaux.', + 'Check postcodes on the map': 'Vérifiez les codes postaux sur la carte', + 'Regional guide': 'Guide régional', + 'How to compare Birmingham postcodes before a property search': + 'Comment comparer les codes postaux de Birmingham avant une recherche de propriété', + 'Birmingham property search - Compare postcodes by price and commute': + 'Recherche de propriété à Birmingham - Comparez les codes postaux par prix et trajet', + 'Use postcode-level data to compare Birmingham property prices, commute trade-offs, schools, crime, broadband and local amenities before viewings.': + "Utilisez les données au niveau du code postal pour comparer les prix de l'immobilier à Birmingham, les compromis pour les déplacements domicile-travail, les écoles, la criminalité, le haut débit et les commodités locales avant les visites.", + 'Birmingham searches can change quickly from street to street. Use postcode-level evidence to compare budget, commute, schools, noise, crime, and local services before deciding where to watch listings.': + "Les recherches à Birmingham peuvent changer rapidement d'une rue à l'autre. Utilisez des preuves au niveau du code postal pour comparer le budget, les déplacements domicile-travail, les écoles, le bruit, la criminalité et les services locaux avant de décider où regarder les annonces.", + 'Start with commute corridors': 'Commencez par les couloirs de déplacement', + 'Choose the destination that matters, such as a workplace, station, university, or hospital, then compare reachable postcodes by transport mode and travel-time band.': + 'Choisissez la destination qui compte, comme un lieu de travail, une gare, une université ou un hôpital, puis comparez les codes postaux accessibles par mode de transport et tranche horaire de trajet.', + 'Use commute time as a hard filter before judging price.': + 'Utilisez le temps de trajet comme filtre dur avant de juger le prix.', + 'Compare public transport with car, cycling, or walking where available.': + "Comparez les transports publics avec la voiture, le vélo ou la marche lorsqu'ils sont disponibles.", + 'Check the route manually before booking viewings.': + "Vérifiez l'itinéraire manuellement avant de réserver des visites.", + 'Compare price with property type': 'Comparez le prix avec le type de propriété', + 'Median prices alone can be misleading if the local property mix changes. Add property type, tenure, floor area, and price filters so similar areas are compared fairly.': + 'Les prix médians à eux seuls peuvent être trompeurs si la composition immobilière locale change. Ajoutez des filtres de type de propriété, d’occupation, de superficie et de prix afin que les zones similaires soient comparées équitablement.', + 'Keep family and environment trade-offs visible': + 'Gardez les compromis familiaux et environnementaux visibles', + 'Layer school context, parks, road noise, broadband, and crime signals on top of the property filters. That makes it easier to decide which compromises are acceptable.': + 'Superposez le contexte scolaire, les parcs, le bruit de la route, le haut débit et les signaux de criminalité au-dessus des filtres de propriété. Il est ainsi plus facile de décider quels compromis sont acceptables.', + 'Can Perfect Postcode tell me the best area in Birmingham?': + "Perfect Postcode peut-il m'indiquer le meilleur quartier de Birmingham ?", + 'No tool can decide the best area for every buyer. It helps compare postcodes against your own constraints so you can build a better shortlist.': + 'Aucun outil ne peut décider du meilleur quartier pour chaque acheteur. Il permet de comparer les codes postaux avec vos propres contraintes afin que vous puissiez créer une meilleure liste restreinte.', + 'Should I use this instead of local knowledge?': + 'Dois-je utiliser cela à la place des connaissances locales ?', + 'No. Use it to find and compare candidates, then validate them with visits, local advice, listings, and official checks.': + 'Non. Utilisez-le pour rechercher et comparer des candidats, puis validez-les avec des visites, des conseils locaux, des listings et des contrôles officiels.', + 'Compare price patterns before looking at live listings.': + 'Comparez les modèles de prix avant de consulter les annonces en direct.', + 'Search by travel time and then layer on property requirements.': + 'Recherchez par temps de trajet, puis superposez les exigences de propriété.', + 'Understand how to interpret filters and limitations.': + 'Comprendre comment interpréter les filtres et les limitations.', + 'Compare Birmingham postcodes': 'Comparez les codes postaux de Birmingham', + 'How to compare Manchester postcodes for a property search': + 'Comment comparer les codes postaux de Manchester pour une recherche de propriété', + 'Manchester property search - Compare postcodes before viewing': + 'Recherche de propriété à Manchester - Comparez les codes postaux avant de visiter', + 'Compare Manchester-area postcodes by budget, commute, property type, schools, broadband, crime, noise and amenities before booking viewings.': + 'Comparez les codes postaux de la région de Manchester par budget, trajet domicile-travail, type de propriété, écoles, haut débit, criminalité, bruit et commodités avant de réserver des visites.', + 'A Manchester-area search can span city-centre, suburban, and commuter options. Perfect Postcode helps keep each postcode comparable against the same property and daily-life constraints.': + 'Une recherche dans la région de Manchester peut couvrir les options du centre-ville, de la banlieue et des navetteurs. Perfect Postcode permet de garder chaque code postal comparable par rapport aux mêmes contraintes de propriété et de vie quotidienne.', + 'Use travel time to define the real search area': + 'Utiliser le temps de trajet pour définir la véritable zone de recherche', + 'Start from the destinations that matter, then compare reachable postcodes rather than assuming every nearby place has the same practical journey.': + 'Commencez par les destinations qui comptent, puis comparez les codes postaux accessibles plutôt que de supposer que chaque lieu à proximité propose le même trajet pratique.', + 'Compare housing requirements before lifestyle preferences': + 'Comparez les exigences en matière de logement avant les préférences de style de vie', + 'Filter by property type, floor area, tenure, and price before judging amenities. That keeps the shortlist grounded in homes that could realistically work.': + "Filtrez par type de propriété, superficie, mode d'occupation et prix avant de juger des équipements. Cela maintient la liste restreinte des maisons qui pourraient fonctionner de manière réaliste.", + 'Check local context consistently': 'Vérifiez le contexte local de manière cohérente', + 'Use broadband, crime, road noise, parks, schools, and amenities as comparable signals. Then validate the strongest candidates with current local checks.': + 'Utilisez le haut débit, la criminalité, le bruit de la route, les parcs, les écoles et les commodités comme signaux comparables. Validez ensuite les candidats les plus forts avec les contrôles locaux en cours.', + 'Can I compare Manchester suburbs with city-centre postcodes?': + 'Puis-je comparer la banlieue de Manchester avec les codes postaux du centre-ville ?', + 'Yes. Use the same budget, property, commute, and local-context filters across both so trade-offs remain visible.': + 'Oui. Utilisez les mêmes filtres de budget, de propriété, de trajet domicile-travail et de contexte local dans les deux cas afin que les compromis restent visibles.', + 'Does this include live listings?': 'Cela inclut-il les annonces en direct ?', + 'No. Use it to decide where to search, then use listing portals for current homes for sale.': + 'Non. Utilisez-le pour décider où rechercher, puis utilisez les portails d’annonces pour les maisons actuellement à vendre.', + 'Move from a broad search brief to specific postcode candidates.': + "Passez d'une recherche générale à des candidats de code postal spécifiques.", + 'Data sources': 'Sources de données', + 'Review the datasets used for property and local-context comparison.': + 'Examinez les ensembles de données utilisés pour la comparaison des propriétés et du contexte local.', + 'Check a single postcode before arranging a viewing.': + "Vérifiez un seul code postal avant d'organiser une visite.", + 'Compare Manchester postcodes': 'Comparez les codes postaux de Manchester', + 'How to compare Bristol postcodes before a property search': + 'Comment comparer les codes postaux de Bristol avant une recherche de propriété', + 'Bristol property search - Compare postcodes by commute and price': + 'Recherche de propriété à Bristol - Comparez les codes postaux par trajet et par prix', + 'Compare Bristol postcodes by price, commute, property size, schools, broadband, crime, road noise, parks and amenities before viewings.': + 'Comparez les codes postaux de Bristol par prix, trajet domicile-travail, taille de la propriété, écoles, haut débit, criminalité, bruit de la route, parcs et commodités avant les visites.', + 'Bristol searches often involve sharp trade-offs between price, journey time, property size, and neighbourhood context. A postcode-first comparison keeps those trade-offs visible.': + 'Les recherches à Bristol impliquent souvent des compromis pointus entre le prix, la durée du trajet, la taille de la propriété et le contexte du quartier. Une comparaison basée sur le code postal permet de garder ces compromis visibles.', + 'Make commute constraints explicit': 'Rendre explicites les contraintes de déplacement', + 'If access to the centre, a station, hospital, university, or business park matters, use travel-time filters first and then compare the remaining postcodes by property data.': + "Si l'accès au centre, à une gare, à un hôpital, à une université ou à un parc d'activités est important, utilisez d'abord des filtres de temps de trajet, puis comparez les codes postaux restants en fonction des données de propriété.", + 'Compare value, not just headline price': 'Comparez la valeur, pas seulement le prix global', + 'Use price, property type, and floor-area filters together. This helps distinguish lower-cost areas from areas that simply contain smaller or different homes.': + 'Utilisez ensemble les filtres de prix, de type de propriété et de superficie. Cela permet de distinguer les zones à moindre coût des zones qui contiennent simplement des maisons plus petites ou différentes.', + 'Screen environmental and local-service signals': + 'Filtrer les signaux environnementaux et de service local', + 'Road noise, parks, broadband, crime, and amenities can affect whether a property works day to day. Use them as screening criteria before booking viewings.': + "Le bruit de la route, les parcs, le haut débit, la criminalité et les commodités peuvent affecter le fonctionnement quotidien d'une propriété. Utilisez-les comme critères de sélection avant de réserver des visites.", + 'Can I use this for commuter villages around Bristol?': + "Puis-je l'utiliser pour les villages de banlieue autour de Bristol ?", + 'Yes, where the relevant postcode and travel-time data is available. Always verify routes and services manually before deciding.': + 'Oui, lorsque les données relatives au code postal et à la durée du trajet sont disponibles. Vérifiez toujours les itinéraires et les services manuellement avant de prendre une décision.', + 'Can this tell me whether a listing is good value?': + 'Cela peut-il me dire si une annonce présente un bon rapport qualité-prix ?', + 'It can provide area context, but a specific listing still needs comparable sales, condition checks, survey findings, and professional advice where appropriate.': + "Il peut fournir un contexte régional, mais une annonce spécifique nécessite toujours des ventes comparables, des vérifications de l'état, des résultats d'enquête et des conseils professionnels, le cas échéant.", + 'Search by reachable postcodes before refining by budget and local context.': + "Recherchez par codes postaux accessibles avant d'affiner par budget et contexte local.", + 'Understand price patterns before setting listing alerts.': + 'Comprenez les modèles de prix avant de définir des alertes d’annonces.', + 'Privacy and security': 'Confidentialité et sécurité', + 'How account and saved-search data is handled in the product.': + 'Comment les données de compte et de recherche enregistrées sont gérées dans le produit.', + 'Compare Bristol postcodes': 'Comparez les codes postaux de Bristol', + 'Trust and coverage': 'Confiance et couverture', + 'Perfect Postcode data sources and coverage': + 'Sources de données et couverture parfaites du code postal', + 'Perfect Postcode data sources - Property, schools, commute and local context': + 'Sources de données Perfect Postcode – Propriété, écoles, déplacements domicile-travail et contexte local', + 'Review the public and official datasets used by Perfect Postcode, including property prices, EPC, schools, crime, broadband, noise and travel-time context.': + "Examinez les ensembles de données publiques et officielles utilisées par Perfect Postcode, notamment les prix de l'immobilier, l'EPC, les écoles, la criminalité, le haut débit, le bruit et le contexte du temps de trajet.", + 'Perfect Postcode combines property, transport, education, environment, and local-service datasets so buyers can compare postcodes consistently. This page explains what the data is for and where it should be verified.': + "Perfect Postcode combine des ensembles de données sur la propriété, les transports, l'éducation, l'environnement et les services locaux afin que les acheteurs puissent comparer les codes postaux de manière cohérente. Cette page explique à quoi servent les données et où elles doivent être vérifiées.", + 'Property and housing context': 'Contexte immobilier et logement', + 'The product uses property transaction and housing-context datasets to support filters such as sale price, property type, tenure, floor area, energy performance, and estimated current value.': + "Le produit utilise des ensembles de données sur les transactions immobilières et le contexte du logement pour prendre en charge des filtres tels que le prix de vente, le type de propriété, le mode d'occupation, la superficie, la performance énergétique et la valeur actuelle estimée.", + 'Use these fields to compare areas, not as a formal valuation.': + 'Utilisez ces champs pour comparer des zones, et non comme une évaluation formelle.', + 'Check current listings, title information, lender requirements, and survey results before buying.': + "Vérifiez les annonces actuelles, les informations sur le titre, les exigences du prêteur et les résultats de l'enquête avant d'acheter.", + 'Schools, safety, broadband, and environment': 'Écoles, sécurité, haut débit et environnement', + 'Local-context filters help compare postcodes on signals that affect daily life. They should be treated as screening data and checked against current official sources for decisions.': + 'Les filtres de contexte local permettent de comparer les codes postaux sur des signaux qui affectent la vie quotidienne. Elles doivent être traitées comme des données de sélection et vérifiées par rapport aux sources officielles actuelles pour les décisions.', + 'Travel-time data': 'Données sur le temps de trajet', + 'Travel-time filters are designed for consistent area comparison. Route availability, disruption, parking, walking access, and timetable details should be verified before committing to an area.': + "Les filtres de temps de trajet sont conçus pour une comparaison cohérente des zones. La disponibilité des itinéraires, les perturbations, le stationnement, l'accès à pied et les détails des horaires doivent être vérifiés avant de s'engager dans une zone.", + 'Why does coverage focus on England?': + 'Pourquoi la couverture médiatique se concentre-t-elle sur l’Angleterre ?', + 'Several core property, education, and local-context datasets are jurisdiction-specific. England coverage keeps comparisons more consistent.': + 'Plusieurs ensembles de données de base sur la propriété, l’éducation et le contexte local sont spécifiques à une juridiction. La couverture de l’Angleterre rend les comparaisons plus cohérentes.', + 'How should I handle stale or missing data?': + 'Comment dois-je gérer les données obsolètes ou manquantes ?', + 'Use the map as a shortlist tool. If a postcode matters, verify the latest details with current official sources and direct local checks.': + 'Utilisez la carte comme outil de présélection. Si un code postal est important, vérifiez les derniers détails auprès des sources officielles actuelles et dirigez les contrôles locaux.', + 'How filters and comparisons should be interpreted.': + 'Comment les filtres et les comparaisons doivent être interprétés.', + 'Review postcode-level context before a viewing.': + 'Examinez le contexte au niveau du code postal avant une visualisation.', + 'How saved searches and account data are handled.': + 'Comment les recherches enregistrées et les données du compte sont traitées.', + 'How to use the map': 'Comment utiliser la carte', + 'Methodology for postcode property research': + 'Méthodologie de recherche de propriété de code postal', + 'Perfect Postcode methodology - How to interpret postcode property data': + 'Méthodologie Perfect Postcode - Comment interpréter les données de propriété du code postal', + 'Understand how to use postcode filters, property estimates, travel-time data, school context and local signals as a home-buying shortlist tool.': + "Comprenez comment utiliser les filtres de codes postaux, les estimations de propriété, les données de temps de trajet, le contexte scolaire et les signaux locaux comme outil de liste restreinte pour l'achat d'une maison.", + 'Perfect Postcode is designed to make area shortlisting more evidence-led. It doesn’t replace estate agents, surveyors, conveyancers, lenders, school admissions teams, or local authority checks.': + 'Perfect Postcode est conçu pour que la présélection de zones soit davantage fondée sur des preuves. Il ne remplace pas les agents immobiliers, les géomètres, les agents de transfert de biens, les prêteurs, les équipes d’admission scolaire ou les contrôles des autorités locales.', + 'Start with hard constraints': 'Commencez avec des contraintes strictes', + 'Begin with non-negotiables such as budget, property type, floor area, commute time, and essential services. This removes impossible postcodes before softer preferences are considered.': + 'Commencez par les éléments non négociables tels que le budget, le type de propriété, la superficie, le temps de trajet et les services essentiels. Cela supprime les codes postaux impossibles avant que des préférences plus douces ne soient prises en compte.', + 'Use colour layers for trade-offs': 'Utilisez des calques de couleur pour les compromis', + 'After filtering, colour the remaining map by one signal at a time: price per square metre, road noise, school context, commute time, broadband, or crime. This makes trade-offs easier to discuss.': + "Après filtrage, coloriez la carte restante en fonction d'un signal à la fois : prix au mètre carré, bruit de la route, contexte scolaire, temps de trajet, haut débit ou criminalité. Cela rend les compromis plus faciles à discuter.", + 'Measure what’s working': 'Mesurez ce qui fonctionne', + 'Use Search Console and analytics to track which public pages are indexed, which queries produce impressions, and which pages convert visitors into dashboard exploration. Review Core Web Vitals after every substantial frontend change.': + 'Utilisez la Search Console et les analyses pour suivre quelles pages publiques sont indexées, quelles requêtes produisent des impressions et quelles pages convertissent les visiteurs en exploration de tableau de bord. Passez en revue Core Web Vitals après chaque modification substantielle du frontend.', + 'Can the tool choose the right postcode for me?': + "L'outil peut-il choisir le bon code postal pour moi ?", + 'No. It helps compare evidence and reduce the search area. The final decision needs direct visits, current listings, legal checks, surveys, and personal judgement.': + 'Non. Cela permet de comparer les preuves et de réduire la zone de recherche. La décision finale nécessite des visites directes, des inscriptions à jour, des contrôles juridiques, des enquêtes et un jugement personnel.', + 'How should I use estimates?': 'Comment dois-je utiliser les estimations ?', + 'Use estimates as comparison signals, not as professional valuations or purchase advice.': + "Utilisez les estimations comme signaux de comparaison, et non comme évaluations professionnelles ou conseils d'achat.", + 'Understand where key filters come from.': "Comprenez d'où viennent les filtres clés.", + 'Apply the methodology to price-led area comparison.': + 'Appliquez la méthodologie à la comparaison de zones basée sur les prix.', + 'Apply the methodology to destination-led search.': + 'Appliquez la méthodologie à la recherche basée sur la destination.', + Trust: 'Confiance', + 'Privacy and security for saved property searches': + 'Confidentialité et sécurité pour les recherches de propriétés enregistrées', + 'Perfect Postcode privacy and security - Saved searches and account data': + 'Confidentialité et sécurité parfaites du code postal - Recherches enregistrées et données de compte', + 'Learn how Perfect Postcode treats saved searches, account data and property research workflows with privacy and security in mind.': + "Découvrez comment Perfect Postcode traite les recherches enregistrées, les données de compte et les flux de recherche de propriété en gardant à l'esprit la confidentialité et la sécurité.", + 'Property research can reveal personal priorities, budgets, and locations. The product keeps public SEO pages separate from account-only areas and marks private dashboard/account routes as noindex.': + 'La recherche immobilière peut révéler des priorités personnelles, des budgets et des emplacements. Le produit sépare les pages de référencement publiques des zones réservées aux comptes et marque les itinéraires de tableau de bord/compte privés comme non-index.', + 'Public pages and private areas are separated': + 'Les pages publiques et les zones privées sont séparées', + 'Marketing, methodology, guide, and support pages are indexable. Dashboard, account, saved searches, invites, and invitation routes are marked noindex or blocked from crawler access where appropriate.': + "Les pages marketing, méthodologie, guide et support sont indexables. Le tableau de bord, le compte, les recherches enregistrées, les invitations et les itinéraires d'invitation sont marqués comme non indexés ou bloqués pour l'accès du robot, le cas échéant.", + 'Saved search data is account-scoped': + 'Les données de recherche enregistrées sont limitées au compte', + 'Saved searches and properties are intended for signed-in use. They aren’t included in the public sitemap and shouldn’t be crawlable as public content.': + 'Les recherches et propriétés enregistrées sont destinées à une utilisation connectée. Ils ne sont pas inclus dans le plan du site public et ne doivent pas être explorables en tant que contenu public.', + 'Search measurement without exposing private data': + 'Rechercher des mesures sans exposer de données privées', + 'SEO measurement should happen on public pages using aggregated analytics and Search Console data. Private query parameters and account views shouldn’t become indexable landing pages.': + "La mesure du référencement doit avoir lieu sur les pages publiques à l'aide d'analyses agrégées et de données de la Search Console. Les paramètres de requêtes privées et les vues de compte ne doivent pas devenir des pages de destination indexables.", + 'Are saved searches listed in the sitemap?': + 'Les recherches enregistrées sont-elles répertoriées dans le plan du site ?', + 'No. Public SEO pages are listed; account and saved-search routes are intentionally excluded.': + 'Non. Les pages de référencement publiques sont répertoriées ; le compte et les itinéraires de recherche enregistrés sont intentionnellement exclus.', + 'Can private dashboard URLs appear in search?': + 'Les URL de tableaux de bord privés peuvent-elles apparaître dans la recherche ?', + 'They shouldn’t be indexed. The server marks private routes noindex and the sitemap only lists public pages.': + 'Ils ne devraient pas être indexés. Le serveur marque les routes privées sans index et le plan du site ne répertorie que les pages publiques.', + 'How to use public postcode data responsibly.': + 'Comment utiliser les données publiques des codes postaux de manière responsable.', + 'What data powers the public comparisons.': + 'Quelles données alimentent les comparaisons publiques.', + 'Explore public postcode-search workflows.': + 'Explorez les workflows publics de recherche de codes postaux.', + }, }; export default fr; diff --git a/frontend/src/i18n/locales/hi.ts b/frontend/src/i18n/locales/hi.ts index 8da14f1..5171898 100644 --- a/frontend/src/i18n/locales/hi.ts +++ b/frontend/src/i18n/locales/hi.ts @@ -151,6 +151,14 @@ const hi: Translations = { }, licenseSuccess: { + verifyingTitle: 'एक्सेस सत्यापित हो रहा है', + verifyingSubtitle: 'मानचित्र खोलने से पहले हम आपका खाता जांच रहे हैं.', + verifyingDescription: 'चेकआउट के बाद इसमें आम तौर पर कुछ सेकंड लगते हैं.', + activationDelayedTitle: 'भुगतान प्राप्त हुआ', + activationDelayedSubtitle: 'एक्सेस अभी सक्रिय हो रहा है.', + activationDelayedDescription: + 'हम अभी खाते का अपडेट पुष्टि नहीं कर पाए. थोड़ी देर में रिफ्रेश करें, या एक्सेस न दिखे तो सपोर्ट से संपर्क करें.', + stayOnPricing: 'मूल्य पेज पर रहें', title: 'आप अंदर हैं.', subtitle: 'आपका लाइफटाइम एक्सेस अब सक्रिय है.', description: 'पूरे इंग्लैंड में हर फीचर और हर पोस्टकोड का पूरा एक्सेस.', @@ -253,7 +261,7 @@ const hi: Translations = { carDesc: ' कार से, सामान्य सड़क गति और सड़क नेटवर्क के आधार पर.', bicycleDesc: ' साइकिल से, साइकिल-अनुकूल मार्गों का उपयोग करके.', walkingDesc: ' पैदल, पैदल रास्तों और फुटपाथों का उपयोग करके.', - mainDesc: 'दिखाता है कि हर क्षेत्र से चुने गए गंतव्य तक पहुंचने में कितना समय लगता है', + mainDesc: 'दिखाता है कि चुने गए गंतव्य से हर क्षेत्र तक यात्रा में कितना समय लगता है.', sliderHint: 'अपना अधिकतम आवागमन समय सेट करने के लिए स्लाइडर का उपयोग करें.', }, @@ -334,8 +342,8 @@ const hi: Translations = { viewProperties: '{{count}} संपत्तियां देखें', viewPropertiesShort: 'संपत्तियां देखें', priceHistory: 'कीमत इतिहास', - journeysFrom: '{{label}} से यात्राएं', - to: '{{destination}} तक', + journeysFrom: '{{label}} के लिए यात्रा समय', + to: '{{destination}} से', noJourneyData: 'कोई यात्रा डेटा उपलब्ध नहीं', viewOnGoogleMaps: 'Google Maps पर देखें', walk: 'पैदल', @@ -388,18 +396,17 @@ const hi: Translations = { }, home: { - heroEyebrow: 'उन खरीदारों के लिए जो पूछते हैं “मुझे देखना कहां शुरू करना चाहिए?”', - heroTitle1: 'वे पोस्टकोड खोजें जो', - heroTitle2: 'आपकी जिंदगी से मेल खाते हैं', - heroTitle3: 'सिर्फ वे क्षेत्र नहीं जिन्हें आप पहले से जानते हैं.', - heroSubtitle: - 'लंदन बरो से लेकर कम्यूटर टाउन और क्षेत्रीय शहरों तक, इंग्लैंड में एक-एक जगह रिसर्च करने के लिए बहुत अधिक स्थान हैं.', + heroEyebrow: 'पहले पता करें कि कहां देखना है', + heroTitle1: 'गलत जगहों पर', + heroTitle2: 'खोजना बंद करें', + heroTitle3: 'इससे पहले कि लिस्टिंग आपकी खोज सीमित कर दें.', + heroSubtitle: 'ऐसे पोस्टकोड खोजें जहां आपका बजट, आवागमन और रोजमर्रा की जिंदगी मेल खाते हों.', heroDescription: - 'अपना बजट, आवागमन, स्कूल, सुरक्षा, शोर, ब्रॉडबैंड और जीवनशैली की जरूरतें सेट करें. Perfect Postcode इंग्लैंड के पोस्टकोड स्कैन करता है और वे जगहें दिखाता है जो सच में मेल खाती हैं, उन क्षेत्रों सहित जिन्हें आप किसी प्रॉपर्टी पोर्टल में कभी नहीं खोजते.', - exploreTheMap: 'मेरे मेल खाते पोस्टकोड खोजें', - seeTheDifference: 'देखें यह कैसे काम करता है', - productDemoLabel: 'Perfect Postcode उत्पाद डेमो', - playProductDemo: 'Perfect Postcode उत्पाद डेमो चलाएं', + 'Perfect Postcode पहले हर पोस्टकोड को फिल्टर करता है, ताकि आप सिर्फ उन्हीं जगहों पर मकान देखने जाएं जो सच में काम आती हैं.', + exploreTheMap: 'मुझे दिखाएं कहां देखना है', + seeTheDifference: 'डेमो देखें', + productDemoLabel: 'देखें कि पहले कहां देखना है कैसे पता करें', + playProductDemo: '“कहां देखना है” डेमो चलाएं', scrollToProductDemo: 'उत्पाद डेमो तक स्क्रोल करें', showcaseHeader: 'यह कैसे काम करता है', showcaseContext: 'Perfect Postcode कैसे काम करता है', @@ -407,43 +414,43 @@ const hi: Translations = { showcaseFeatureNoiseShort: 'शोर', showcaseFeatureSchoolsShort: 'स्कूल', showcaseFeatureTravelShort: 'यात्रा', - showcaseGoodPrimariesNearby: '{{count}}+ अच्छे प्राइमरी स्कूल पास में', - showcaseWithinRail: 'रेल से {{count}} मिनट के भीतर', - showcaseMatchingHomesLabel: 'मेल खाते घर', - showcaseMatchingHomes: '{{value}} मेल खाते घर', + showcaseGoodPrimariesNearby: '{{count}}+ अच्छे या उत्कृष्ट प्राइमरी स्कूल पास में', + showcaseWithinRail: 'स्टेशन से {{count}} मिनट के भीतर', + showcaseMatchingHomesLabel: 'मेल खाते पोस्टकोड', + showcaseMatchingHomes: '{{value}} मेल खाते पोस्टकोड', showcaseMedianPrice: '{{value}} मीडियन', showcaseJourneyRoutes: 'यात्रा मार्ग', showcaseNearby: '{{value}} पास में', showcasePoliticalVoteShare: 'राजनीतिक वोट हिस्सेदारी', - showcaseLotsMore: '...और भी बहुत कुछ', + showcaseLotsMore: 'पड़ोस का और डेटा', showcaseMinutes: '{{count}} मिनट', showcaseSendShortlist: 'शॉर्टलिस्ट भेजें', showcaseDownloadXlsx: '.xlsx डाउनलोड करें', showcaseTopThree: 'शीर्ष 3', - showcaseScoutBullet1: 'लिस्टिंग खोज आपके विकल्प घटाए, उससे पहले सड़कें चलकर देखें.', + showcaseScoutBullet1: 'लिस्टिंग अलर्ट लगाने से पहले सड़क जांचें.', showcaseScoutBullet2: 'आवागमन किसी असली दरवाजे से जांचें, सिर्फ बरो नाम से नहीं.', - showcaseScoutBullet3: 'पहले से मौजूद प्रमाण के साथ viewing की तुलना करें.', + showcaseScoutBullet3: 'पहले से सहेजे गए प्रमाण के साथ मकान देखने के विकल्पों की तुलना करें.', showcaseStep1Tab: 'फिल्टर', - showcaseStep1Title: 'अस्पष्ट जरूरतों को सटीक खोज में बदलें', + showcaseStep1Title: 'सेट करें कि क्या काम करना जरूरी है', showcaseStep1Body: - 'जो मायने रखता है उसे सेट करें और देखें कि हर जरूरत कितने गलत-फिट पोस्टकोड को आपकी खोज से बाहर रखती है.', + 'बजट, आवागमन, स्कूल, सुरक्षा, शोर और स्थानीय विवरण जोड़ें. गलत पोस्टकोड को बाहर होते देखें.', showcaseStep1Chip1: 'शांत सड़कें', - showcaseStep1Chip2: 'शीर्ष-रेटेड प्राइमरी', + showcaseStep1Chip2: 'पास में अच्छे प्राइमरी', showcaseStep1Chip3: '£500,000 से कम', showcaseStep1VennCenter: 'तीनों शर्तों को पूरा करने वाले पोस्टकोड', showcaseStep2Tab: 'मिलान', - showcaseStep2Title: 'मानचित्र को वे जगहें दिखाने दें जिन्हें आप टाइप नहीं करते', + showcaseStep2Title: 'बची हुई जगहें देखें', showcaseStep2Body: - 'परिचित इलाकों के नामों से शुरू करने के बजाय अपनी जरूरतों से मेल के आधार पर इंग्लैंड देखें. प्रॉपर्टी पोर्टल आपकी सोच सीमित करें, उससे पहले छिपे हुए अच्छे इलाके सामने आ जाते हैं.', + 'परिचित नामों से नहीं, व्यावहारिक जांचों से खोजें. मानचित्र पहले जांचने लायक पोस्टकोड क्लस्टर दिखाता है.', showcaseStep2Region: 'ग्रेटर लंदन', showcaseStep2Sources: 'Land Registry · ONS · Ofsted · DfT', showcaseStep2ClustersLabel: 'मेल खाते क्लस्टर', showcaseStep3Tab: 'जांचें', - showcaseStep3Title: 'जांचें कि कोई पोस्टकोड क्यों चुना गया', + showcaseStep3Title: 'प्रमाण जांचें', showcaseStep3Body: - 'किसी भी मेल खाते क्षेत्र को खोलें और वहां सप्ताहांत बिताने से पहले कीमतें, सुरक्षा, स्कूल, ब्रॉडबैंड और समझौते एक ही पैनल में जांचें.', - showcaseStep3HeaderArea: 'आपका परफेक्ट पोस्टकोड', - showcaseStep3HeaderFit: 'पड़ोस का प्रमाण', + 'कोई पोस्टकोड खोलें और मकान देखने से पहले कीमत, आवागमन, स्कूल, अपराध, ब्रॉडबैंड और समझौते देखें.', + showcaseStep3HeaderArea: 'शॉर्टलिस्ट किया गया पोस्टकोड', + showcaseStep3HeaderFit: 'क्या काम करता है', showcaseStep3Stat1Label: 'बेची गई कीमत का रुझान', showcaseStep3Stat2Label: 'अपराध दर', showcaseStep3Stat2Value: 'बरो औसत से कम', @@ -453,34 +460,33 @@ const hi: Translations = { showcaseStep3Stat5Label: 'प्राइमरी स्कूल', showcaseStep3Stat5Value: '1 मील के अंदर 3 उत्कृष्ट', showcaseStep4Tab: 'स्काउट', - showcaseStep4Title: 'खुद जाकर देखें', + showcaseStep4Title: 'शॉर्टलिस्ट को सड़कों तक ले जाएं', showcaseStep4Body: - 'तीन ठोस शुरुआती बिंदुओं को वास्तविक दुनिया में ले जाएं. सड़कें चलकर देखें, आवागमन आजमाएं और संदर्भ के साथ मकानों की देखने-समझने की यात्राओं की तुलना करें.', + 'जांचने लायक पोस्टकोड निर्यात करें, आवागमन आजमाएं, सड़कें चलकर देखें और सहेजे गए संदर्भ के साथ मकान देखने के विकल्पों की तुलना करें.', showcaseStep4FileName: 'areas-to-scout.xlsx', showcaseStep4ExportLabel: 'Excel में निर्यात करें', showcaseStep4ColPostcode: 'पोस्टकोड', showcaseStep4ColScore: 'फिट', showcaseStep4ColCommute: 'आवागमन', - showcaseStep4ColPrice: 'मीडियन बिक्री', - showcaseStep4Conclusion: 'आप अपनी यात्रा यहां से शुरू कर सकते हैं.', - statProperties: 'ऐतिहासिक बिक्री', - statFilters: 'जोड़े जा सकने वाले फिल्टर', + showcaseStep4ColPrice: 'मीडियन बिक्री मूल्य', + showcaseStep4Conclusion: 'शॉर्टलिस्ट निर्यात करें और सड़कें जांचना शुरू करें.', + statProperties: 'HM Land Registry बिक्री', + statFilters: 'मानचित्र को संकरा करने के तरीके', statEvery: 'हर', - statPostcodeInEngland: 'इंग्लैंड का पोस्टकोड', - ourPhilosophy: 'पोस्टकोड नहीं, अपनी जिंदगी से शुरू करें', + statPostcodeInEngland: 'इंग्लैंड का सक्रिय पोस्टकोड', + ourPhilosophy: 'उन कस्बों से शुरू करना बंद करें जिन्हें आप पहले से जानते हैं.', philosophyP1: - 'अधिकांश संपत्ति साइटें पूछती हैं कि आप कहां रहना चाहते हैं. लंदन में यह बहुत कठिन है, लेकिन यही समस्या पूरे इंग्लैंड में आती है: खरीदार उन कुछ जगहों में से चुनते हैं जिन्हें वे जानते हैं, फिर आवागमन टूल, Ofsted, पुलिस डेटा, Street View, ब्रॉडबैंड जांच और बेचे गए दामों को अलग-अलग टैब में मिलाते हैं.', + 'अधिकांश खोजें किसी जगह के नाम से शुरू होती हैं, फिर उम्मीद करती हैं कि सही घर मिल जाएंगे. इससे कठिन सवाल छूट जाता है: कौन सी जगहें सच में खोजने लायक हैं?', philosophyP2: - 'Perfect Postcode खोज को उलट देता है. मानचित्र को बताएं कि क्या मायने रखता है और यह वे पोस्टकोड दिखाता है जो योग्य हैं, साथ में प्रमाण भी कि वे देखने लायक क्यों हैं. पहले डेटा, फिर माहौल खुद परखें.', + 'Perfect Postcode लिस्टिंग साइट से पहले शुरू होता है. सेट करें कि किसी जगह को क्या समर्थन देना चाहिए, फिर वे पोस्टकोड देखें जो पहले आपका ध्यान मांगते हैं.', streetTitle: 'जगहें सड़क-दर-सड़क बदलती हैं', streetIntro: - 'बड़े क्षेत्र नाम वे विवरण छिपा देते हैं जो मायने रखते हैं: स्टेशन किस तरफ है, सड़क का शोर, स्कूल मिश्रण, सटीक आवागमन और समान घर वास्तव में किस कीमत पर बिके.', - streetCard1Title: 'वे क्षेत्र खोजें जो आपसे छूट सकते थे', - streetCard1Body: - 'परिचित नामों, दोस्तों की सिफारिशों या “उभरते इलाके” की चर्चा पर निर्भर रहने के बजाय अपनी जरूरतों से मेल खाते पोस्टकोड सामने लाएं.', - streetCard2Title: 'मकान देखने से पहले समझौते समझें', + 'स्टेशन का सही तरफ होना, शोर वाली सड़क या एक स्कूल कैचमेंट भी खोज बदल सकता है. क्षेत्र के नाम यह सब समतल कर देते हैं.', + streetCard1Title: 'परिचित नामों के जाल से बाहर निकलें', + streetCard1Body: 'अपनी सूची में पहले से मौजूद जगहों से बाहर पोस्टकोड-स्तर के मेल खोजें.', + streetCard2Title: 'जाने से पहले समझौते जानें', streetCard2Body: - 'सप्ताहांत मकान देखने में बिताने से पहले कीमत, जगह, आवागमन, सुरक्षा, स्कूल, ब्रॉडबैंड, शोर और ऊर्जा रेटिंग की तुलना करें.', + 'मकान देखने की बुकिंग से पहले कीमत, आवागमन, शोर, स्कूल, सुरक्षा, ब्रॉडबैंड और पास की सुविधाएं जांचें.', othersVs: 'दूसरे बनाम', checkMyPostcode: 'प्रॉपर्टी पोर्टल', areaGuides: 'पोस्टकोड रिपोर्ट', @@ -490,11 +496,11 @@ const hi: Translations = { compAreaDataSub: '(अपराध, स्कूल, शोर, ब्रॉडबैंड, सुविधाएं)', compPropertyData: 'संपत्ति-स्तर इतिहास', compPropertyDataSub: '(बेची कीमतें, EPC, फर्श क्षेत्र, अनुमानित मूल्य)', - compFilters: '56 फिल्टर साथ काम करते हुए', - compFiltersSub: '(एक समय में केवल एक पोस्टकोड या एक लिस्टिंग नहीं)', - ctaTitle: 'कहां खरीदना है, इसका अनुमान लगाना बंद करें.', + compFilters: 'बजट, आवागमन, स्कूल, सुरक्षा और स्थानीय डेटा साथ में', + compFiltersSub: '(बजट + आवागमन + स्कूल + सुरक्षा + स्थानीय संदर्भ)', + ctaTitle: 'मकान देखने की बुकिंग से पहले पता करें कि कहां देखना है.', ctaDescription: - 'उन पोस्टकोड की शॉर्टलिस्ट बनाएं जो आपकी वास्तविक जिंदगी से मेल खाते हैं, फिर उन्हें खुद जांचें.', + 'जो बातें मायने रखती हैं उनसे पोस्टकोड शॉर्टलिस्ट बनाएं, फिर सड़कों को खुद जांचें.', }, pricingPage: { @@ -570,7 +576,7 @@ const hi: Translations = { dsCrimeName: 'सड़क-स्तर अपराध डेटा', dsCrimeOrigin: 'data.police.uk', dsCrimeUse: - '2023 से 2025 तक सड़क-स्तर अपराध डेटा, LSOA और अपराध प्रकार (हिंसा, सेंधमारी, असामाजिक व्यवहार, ड्रग्स, वाहन अपराध आदि) के अनुसार वार्षिक औसत में समेकित.', + 'सड़क-स्तर अपराध डेटा, LSOA और अपराध प्रकार (हिंसा, सेंधमारी, असामाजिक व्यवहार, ड्रग्स, वाहन अपराध आदि) के अनुसार वार्षिक औसत में समेकित.', dsOsmName: 'OpenStreetMap रुचि-स्थल', dsOsmOrigin: 'OpenStreetMap contributors / Geofabrik', dsOsmUse: @@ -586,7 +592,7 @@ const hi: Translations = { dsTowName: 'वन क्षेत्र से बाहर पेड़ों का राष्ट्रीय नक्शा', dsTowOrigin: 'Forest Research / Defra NCEA', dsTowUse: - 'इंग्लैंड में अकेले पेड़ों, पेड़ों के समूहों और छोटे वन क्षेत्रों के वृक्ष आच्छादन बहुभुज. यहां संपत्ति पतों के आसपास सड़क-स्तर पेड़ घनत्व का अनुमान लगाने के लिए उपयोग किया गया है.', + 'इंग्लैंड में अकेले पेड़ों, पेड़ों के समूहों और छोटे वन क्षेत्रों के वृक्ष आच्छादन बहुभुज. यहां पोस्टकोड केंद्रों के आसपास वृक्ष आच्छादन प्रतिशतक का अनुमान लगाने के लिए उपयोग किया गया है.', dsNaptanName: 'NaPTAN (सार्वजनिक परिवहन स्टॉप)', dsNaptanOrigin: 'Department for Transport', dsNaptanUse: @@ -723,6 +729,10 @@ const hi: Translations = { receiveNewsletter: 'न्यूज़लेटर ईमेल प्राप्त करें', needHelp: 'मदद चाहिए? हमें ईमेल करें', responseTime: 'हम आमतौर पर 24 घंटे के भीतर जवाब देते हैं.', + shareLinksTitle: 'साझा किए गए लिंक', + noShareLinksYet: 'अभी कोई साझा लिंक नहीं', + copyShareLink: 'साझा लिंक कॉपी करें', + clicksLabel: 'क्लिक', }, savedPage: { @@ -859,6 +869,7 @@ const hi: Translations = { 'Current energy rating': 'मौजूदा ऊर्जा रेटिंग', 'Potential energy rating': 'संभावित ऊर्जा रेटिंग', 'Interior height (m)': 'भीतरी ऊंचाई (मी)', + 'Street tree density percentile': 'सड़क वृक्ष घनत्व प्रतिशतक', 'Travel time to nearest train or tube station (min)': 'निकटतम ट्रेन या ट्यूब स्टेशन तक यात्रा समय (मिनट)', 'Good+ primary schools within 2km': '2 किमी के अंदर अच्छी या बेहतर रेटिंग वाले प्राथमिक स्कूल', @@ -1029,6 +1040,465 @@ const hi: Translations = { ' years': ' वर्ष', ' rooms': ' कमरे', }, + + seo: { + 'Property price map': 'संपत्ति मूल्य मानचित्र', + 'Compare property prices across every postcode in England': + 'इंग्लैंड में प्रत्येक पोस्टकोड पर संपत्ति की कीमतों की तुलना करें', + 'Property price map for England - Compare postcodes before viewing': + 'इंग्लैंड के लिए संपत्ति मूल्य मानचित्र - देखने से पहले पोस्टकोड की तुलना करें', + 'Compare sold prices, estimated current value, price per square metre and local context across English postcodes before searching listings.': + 'लिस्टिंग खोजने से पहले बेची गई कीमतों, अनुमानित वर्तमान मूल्य, प्रति वर्ग मीटर कीमत और अंग्रेजी पोस्टकोड में स्थानीय संदर्भ की तुलना करें।', + 'Perfect Postcode maps sold prices, estimated current value, price per square metre, property type, floor area, tenure, and local context so buyers can find realistic search areas before opening listing portals.': + 'Perfect Postcode में बेची गई कीमतें, अनुमानित वर्तमान मूल्य, प्रति वर्ग मीटर कीमत, संपत्ति का प्रकार, फर्श क्षेत्र, कार्यकाल और स्थानीय संदर्भ शामिल हैं ताकि खरीदार लिस्टिंग पोर्टल खोलने से पहले यथार्थवादी खोज क्षेत्र पा सकें।', + 'Screen historical sale prices and current-value estimates by postcode.': + 'पोस्टकोड द्वारा ऐतिहासिक बिक्री मूल्य और वर्तमान-मूल्य अनुमान स्क्रीन करें।', + 'Compare value with commute, schools, broadband, crime, noise, and amenities.': + 'मूल्य की तुलना आवागमन, स्कूल, ब्रॉडबैंड, अपराध, शोर और सुविधाओं से करें।', + 'Build a shortlist before spending weekends on viewings.': + 'देखने पर सप्ताहांत बिताने से पहले एक छोटी सूची बनाएं।', + 'Find postcodes that fit the budget before listings appear': + 'लिस्टिंग प्रदर्शित होने से पहले ऐसे पोस्टकोड खोजें जो बजट के अनुकूल हों', + 'Start with a maximum price and property type, then colour the map by price per square metre or estimated current price. This helps reveal areas where similar homes have historically traded within reach, even when there are no live listings today.': + 'अधिकतम कीमत और संपत्ति के प्रकार से शुरू करें, फिर प्रति वर्ग मीटर कीमत या अनुमानित वर्तमान कीमत के आधार पर मानचित्र को रंग दें। इससे उन क्षेत्रों को उजागर करने में मदद मिलती है जहां समान घरों का ऐतिहासिक रूप से पहुंच के भीतर कारोबार होता रहा है, तब भी जब आज कोई लाइव लिस्टिंग नहीं है।', + 'Filter by last known sale price, estimated current value, property type, tenure, and floor area.': + 'अंतिम ज्ञात बिक्री मूल्य, अनुमानित वर्तमान मूल्य, संपत्ति का प्रकार, कार्यकाल और फर्श क्षेत्र के आधार पर फ़िल्टर करें।', + 'Compare nearby postcodes using the same criteria instead of relying on area reputation.': + 'क्षेत्र की प्रतिष्ठा पर निर्भर रहने के बजाय समान मानदंड का उपयोग करके आस-पास के पोस्टकोड की तुलना करें।', + 'Use the results as a shortlist for listing alerts, local research, and viewings.': + 'अलर्ट, स्थानीय शोध और देखने की सूची के लिए शॉर्टलिस्ट के रूप में परिणामों का उपयोग करें।', + 'Separate cheap from good value': 'सस्ते को अच्छे मूल्य से अलग करें', + 'A lower price can reflect smaller homes, weaker transport, more noise, or fewer local services. The map keeps those trade-offs visible so the cheapest postcode isn’t automatically treated as the best option.': + 'कम कीमत छोटे घरों, कमजोर परिवहन, अधिक शोर या कम स्थानीय सेवाओं को प्रतिबिंबित कर सकती है। मानचित्र उन ट्रेड-ऑफ़ को दृश्यमान रखता है इसलिए सबसे सस्ते पोस्टकोड को स्वचालित रूप से सर्वोत्तम विकल्प के रूप में नहीं माना जाता है।', + 'Start from area value, not listing availability': + 'क्षेत्र मूल्य से प्रारंभ करें, उपलब्धता सूचीबद्ध करने से नहीं', + 'Listing portals only show homes for sale today. A postcode-level property price map lets you compare wider areas, understand local price patterns, and avoid missing places where the next suitable listing might appear.': + 'लिस्टिंग पोर्टल केवल आज बिक्री के लिए घर दिखाते हैं। एक पोस्टकोड-स्तरीय संपत्ति मूल्य मानचित्र आपको व्यापक क्षेत्रों की तुलना करने, स्थानीय मूल्य पैटर्न को समझने और उन स्थानों को खोने से बचने की सुविधा देता है जहां अगली उपयुक्त सूची दिखाई दे सकती है।', + 'Use prices alongside real constraints': 'वास्तविक बाधाओं के साथ-साथ कीमतों का उपयोग करें', + 'Budget rarely matters on its own. Perfect Postcode combines price filters with travel time, school quality, property size, energy performance, local environment, and services so your shortlist reflects how you actually want to live.': + 'बजट अपने आप में शायद ही कभी मायने रखता है। Perfect Postcode यात्रा के समय, स्कूल की गुणवत्ता, संपत्ति के आकार, ऊर्जा प्रदर्शन, स्थानीय वातावरण और सेवाओं के साथ मूल्य फ़िल्टर को जोड़ता है ताकि आपकी शॉर्टलिस्ट यह दर्शाए कि आप वास्तव में कैसे रहना चाहते हैं।', + 'What the price data is for': 'मूल्य डेटा किस लिए है', + 'Use the map to compare areas and spot search candidates. It isn’t a valuation, mortgage decision, survey, legal search, or live listing feed.': + 'क्षेत्रों की तुलना करने और उम्मीदवारों की खोज करने के लिए मानचित्र का उपयोग करें। यह कोई मूल्यांकन, बंधक निर्णय, सर्वेक्षण, कानूनी खोज या लाइव लिस्टिंग फ़ीड नहीं है।', + 'How to validate a promising area': 'एक आशाजनक क्षेत्र का सत्यापन कैसे करें', + 'Once a postcode looks promising, check current listings, sold-price comparables, agent details, flood searches, legal packs, surveys, and local authority information before making a decision.': + 'एक बार जब कोई पोस्टकोड आशाजनक लगे, तो निर्णय लेने से पहले वर्तमान लिस्टिंग, बिक्री-मूल्य तुलनीय, एजेंट विवरण, बाढ़ खोज, कानूनी पैक, सर्वेक्षण और स्थानीय प्राधिकारी जानकारी की जांच करें।', + 'Is this a replacement for Rightmove or Zoopla?': + 'क्या यह राइटमूव या ज़ूप्ला का प्रतिस्थापन है?', + 'No. Use it before and alongside listing portals. Perfect Postcode helps decide where to look; listing portals show what’s currently for sale.': + 'नहीं, इसे लिस्टिंग पोर्टल से पहले और साथ में उपयोग करें। Perfect Postcode यह तय करने में मदद करता है कि कहां देखना है; लिस्टिंग पोर्टल दिखाते हैं कि वर्तमान में बिक्री के लिए क्या है।', + 'Can I compare price with schools or commute time?': + 'क्या मैं कीमत की तुलना स्कूलों या आवागमन के समय से कर सकता हूँ?', + 'Yes. Price filters can be combined with travel-time, schools, crime, broadband, road-noise, amenities, and environment filters.': + 'हाँ। मूल्य फ़िल्टर को यात्रा-समय, स्कूल, अपराध, ब्रॉडबैंड, सड़क-शोर, सुविधाएं और पर्यावरण फ़िल्टर के साथ जोड़ा जा सकता है।', + 'Does the map cover all of the UK?': 'क्या मानचित्र पूरे ब्रिटेन को कवर करता है?', + 'The current product focuses on England because several core property and postcode datasets are England-specific.': + 'वर्तमान उत्पाद इंग्लैंड पर केंद्रित है क्योंकि कई मुख्य संपत्ति और पोस्टकोड डेटासेट इंग्लैंड-विशिष्ट हैं।', + 'Birmingham property search guide': 'बर्मिंघम संपत्ति खोज गाइड', + 'A worked example for balancing price, commute, and family trade-offs.': + 'मूल्य, आवागमन और पारिवारिक व्यापार-बंद को संतुलित करने के लिए एक कारगर उदाहरण।', + 'Data sources and coverage': 'डेटा स्रोत और कवरेज', + 'See which datasets sit behind the postcode filters and where they have limits.': + 'देखें कि कौन से डेटासेट पोस्टकोड फ़िल्टर के पीछे बैठते हैं और उनकी सीमाएँ कहाँ हैं।', + Methodology: 'क्रियाविधि', + 'Understand how the map is intended to support shortlisting, not replace due diligence.': + 'समझें कि मानचित्र का उद्देश्य शॉर्टलिस्टिंग का समर्थन करना है, न कि उचित परिश्रम को प्रतिस्थापित करना।', + 'Postcode checker': 'पोस्टकोड चेकर', + 'Check one postcode before you spend time on a viewing.': + 'देखने में समय बर्बाद करने से पहले एक पोस्टकोड जांच लें।', + 'Explore the property map': 'संपत्ति मानचित्र का अन्वेषण करें', + 'Postcode property search': 'पोस्टकोड संपत्ति खोज', + 'Find postcodes that match your property search criteria': + 'ऐसे पोस्टकोड ढूंढें जो आपकी संपत्ति खोज मानदंडों से मेल खाते हों', + 'Postcode property search - Find areas that match your criteria': + 'पोस्टकोड संपत्ति खोज - ऐसे क्षेत्र खोजें जो आपके मानदंडों से मेल खाते हों', + 'Search every postcode by budget, property type, floor area, tenure, commute, schools, crime, broadband, noise, parks and local amenities.': + 'प्रत्येक पोस्टकोड को बजट, संपत्ति के प्रकार, फर्श क्षेत्र, कार्यकाल, आवागमन, स्कूल, अपराध, ब्रॉडबैंड, शोर, पार्क और स्थानीय सुविधाओं के आधार पर खोजें।', + 'Search every postcode by budget, property type, size, tenure, commute, schools, crime, broadband, noise, parks, and local amenities instead of checking areas one at a time.': + 'एक-एक करके क्षेत्रों की जाँच करने के बजाय प्रत्येक पोस्टकोड को बजट, संपत्ति के प्रकार, आकार, कार्यकाल, आवागमन, स्कूल, अपराध, ब्रॉडबैंड, शोर, पार्क और स्थानीय सुविधाओं के आधार पर खोजें।', + 'Filter England-wide postcode data from one map.': + 'एक मानचित्र से इंग्लैंड-व्यापी पोस्टकोड डेटा फ़िल्टर करें।', + 'Shortlist unfamiliar areas with comparable evidence.': + 'तुलनीय साक्ष्यों के साथ अपरिचित क्षेत्रों को संक्षिप्त करें।', + 'Save and share search areas before booking viewings.': + 'बुकिंग देखने से पहले खोज क्षेत्रों को सहेजें और साझा करें।', + 'Turn a broad brief into postcode candidates': + 'एक व्यापक संक्षिप्त विवरण को पोस्टकोड उम्मीदवारों में बदलें', + 'Enter the practical constraints first: budget, property size, tenure, travel time, school needs, broadband, and tolerance for road noise or crime levels. The map removes places that fail those constraints and keeps the remaining options comparable.': + 'पहले व्यावहारिक बाधाएँ दर्ज करें: बजट, संपत्ति का आकार, कार्यकाल, यात्रा का समय, स्कूल की ज़रूरतें, ब्रॉडबैंड, और सड़क के शोर या अपराध के स्तर के लिए सहनशीलता। मानचित्र उन स्थानों को हटा देता है जो उन बाधाओं को विफल करते हैं और शेष विकल्पों को तुलनीय बनाए रखते हैं।', + 'Relax one constraint at a time': 'एक समय में एक बाधा में ढील दें', + 'When the search becomes too narrow, loosen a single filter and watch which postcodes reappear. This makes compromise explicit instead of relying on guesswork.': + 'जब खोज बहुत संकीर्ण हो जाए, तो एक फ़िल्टर ढीला करें और देखें कि कौन से पोस्टकोड फिर से दिखाई देते हैं। यह अनुमान पर भरोसा करने के बजाय समझौते को स्पष्ट करता है।', + 'Turn vague areas into specific postcodes': 'अस्पष्ट क्षेत्रों को विशिष्ट पोस्टकोड में बदलें', + 'Broad town or borough searches hide large differences between streets. Perfect Postcode helps you move from a general area to postcodes that satisfy your hard requirements.': + 'व्यापक शहर या नगर खोजें सड़कों के बीच बड़े अंतर को छिपाती हैं। Perfect Postcode आपको सामान्य क्षेत्र से पोस्टकोड तक जाने में मदद करता है जो आपकी कठिन आवश्यकताओं को पूरा करता है।', + 'Keep trade-offs visible': 'ट्रेड-ऑफ़ को दृश्यमान रखें', + 'When there are too many or too few matches, adjust one constraint at a time and see exactly which postcodes reappear. That makes compromises explicit instead of relying on guesswork.': + 'जब बहुत अधिक या बहुत कम मिलान हों, तो एक समय में एक बाधा को समायोजित करें और देखें कि कौन से पोस्टकोड फिर से दिखाई देते हैं। यह अनुमान पर भरोसा करने के बजाय समझौतों को स्पष्ट करता है।', + 'Why postcode-level comparison matters': 'पोस्टकोड-स्तरीय तुलना क्यों मायने रखती है', + 'Two nearby postcodes can differ on schools, road noise, transport access, property mix, and price. Comparing at postcode level reduces the chance of treating a whole town as one uniform market.': + 'पास के दो पोस्टकोड स्कूलों, सड़क के शोर, परिवहन पहुंच, संपत्ति मिश्रण और कीमत पर भिन्न हो सकते हैं। पोस्टकोड स्तर पर तुलना करने से पूरे शहर को एक समान बाज़ार मानने की संभावना कम हो जाती है।', + 'How to use the results': 'परिणामों का उपयोग कैसे करें', + 'Treat matching postcodes as a research queue: check live listings, visit streets, confirm schools and admissions, and review current official sources.': + 'मेल खाते पोस्टकोड को एक शोध कतार के रूप में मानें: लाइव लिस्टिंग की जाँच करें, सड़कों पर जाएँ, स्कूलों और प्रवेशों की पुष्टि करें, और वर्तमान आधिकारिक स्रोतों की समीक्षा करें।', + 'Can I save a postcode property search?': 'क्या मैं पोस्टकोड संपत्ति खोज सहेज सकता हूँ?', + 'Yes. Licensed users can save searches and return to them later. Saved searches are designed for shortlists and comparison notes.': + 'हाँ। लाइसेंस प्राप्त उपयोगकर्ता खोजों को सहेज सकते हैं और बाद में उन पर वापस लौट सकते हैं। सहेजी गई खोजें शॉर्टलिस्ट और तुलना नोट्स के लिए डिज़ाइन की गई हैं।', + 'Can I search without knowing the area?': 'क्या मैं क्षेत्र जाने बिना खोज कर सकता हूँ?', + 'Yes. The map is designed to surface unfamiliar areas that match practical constraints, not just places you already know.': + 'हाँ। मानचित्र को उन अपरिचित क्षेत्रों को प्रदर्शित करने के लिए डिज़ाइन किया गया है जो व्यावहारिक बाधाओं से मेल खाते हैं, न कि केवल उन स्थानों के लिए जिन्हें आप पहले से जानते हैं।', + 'Are the results live property listings?': 'क्या परिणाम लाइव संपत्ति सूची हैं?', + 'No. The tool compares postcode data and historical/contextual property signals. You still need listing portals for current availability.': + 'नहीं, टूल पोस्टकोड डेटा और ऐतिहासिक/प्रासंगिक संपत्ति संकेतों की तुलना करता है। वर्तमान उपलब्धता के लिए आपको अभी भी लिस्टिंग पोर्टल की आवश्यकता है।', + 'Manchester property search guide': 'मैनचेस्टर संपत्ति खोज गाइड', + 'A regional guide for narrowing a broad search around Greater Manchester.': + 'ग्रेटर मैनचेस्टर के आसपास व्यापक खोज को सीमित करने के लिए एक क्षेत्रीय मार्गदर्शिका।', + 'Start a postcode search': 'पोस्टकोड खोज प्रारंभ करें', + 'Commute property search': 'यात्रा संपत्ति खोज', + 'Search for places to live by commute time': 'आवागमन के समय के अनुसार रहने के लिए स्थान खोजें', + 'Commute property search - Find places to live by travel time': + 'यात्रा संपत्ति की खोज - यात्रा के समय के अनुसार रहने के लिए स्थान खोजें', + 'Filter postcodes by commute time, then compare price, schools, safety, broadband, road noise, parks and property data on one map.': + 'आवागमन के समय के अनुसार पोस्टकोड फ़िल्टर करें, फिर एक मानचित्र पर कीमत, स्कूल, सुरक्षा, ब्रॉडबैंड, सड़क शोर, पार्क और संपत्ति डेटा की तुलना करें।', + 'Filter postcodes by modelled car, cycling, walking, and public transport travel times, then layer on property price, schools, crime, broadband, noise, and local amenities.': + 'मॉडल की गई कार, साइकिल चलाना, पैदल चलना और सार्वजनिक परिवहन यात्रा के समय के आधार पर पोस्टकोड फ़िल्टर करें, फिर संपत्ति की कीमत, स्कूल, अपराध, ब्रॉडबैंड, शोर और स्थानीय सुविधाओं पर परत लगाएं।', + 'Compare reachable postcodes by realistic travel-time bands.': + 'यथार्थवादी यात्रा-समय बैंड द्वारा पहुंच योग्य पोस्टकोड की तुलना करें।', + 'Search by destination first, then filter for property and neighbourhood fit.': + 'पहले गंतव्य के आधार पर खोजें, फिर संपत्ति और पड़ोस के अनुसार फ़िल्टर करें।', + 'Avoid areas that look close on a map but fail the daily journey.': + 'उन क्षेत्रों से बचें जो मानचित्र पर नज़दीक दिखते हैं लेकिन दैनिक यात्रा में विफल होते हैं।', + 'Start with the destination that matters': 'उस गंतव्य से शुरुआत करें जो मायने रखता है', + 'Choose a commute destination, transport mode, and time range, then add the property filters. This prevents a cheap-looking area from reaching the shortlist if the daily journey doesn’t work.': + 'आवागमन गंतव्य, परिवहन मोड और समय सीमा चुनें, फिर संपत्ति फ़िल्टर जोड़ें। यदि दैनिक यात्रा काम नहीं करती है तो यह सस्ते दिखने वाले क्षेत्र को शॉर्टलिस्ट तक पहुंचने से रोकता है।', + 'Compare the commute against the rest of daily life': + 'दैनिक जीवन के बाकी हिस्सों से आवागमन की तुलना करें', + 'A fast commute isn’t enough if the property size, school context, safety threshold, broadband, or road-noise exposure don’t fit. The map keeps those signals side by side.': + 'यदि संपत्ति का आकार, स्कूल का संदर्भ, सुरक्षा सीमा, ब्रॉडबैंड, या सड़क-शोर जोखिम फिट नहीं बैठता है तो तेज़ आवागमन पर्याप्त नहीं है। मानचित्र उन संकेतों को एक साथ रखता है।', + 'Commute from postcodes, not just place names': + 'केवल स्थान के नाम से नहीं, बल्कि पोस्टकोड से यात्रा करें', + 'Two streets in the same town can have very different station access, road routes, and public transport options. Postcode-level travel-time filtering keeps that difference visible.': + 'एक ही शहर की दो सड़कों पर स्टेशन पहुंच, सड़क मार्ग और सार्वजनिक परिवहन विकल्प बहुत भिन्न हो सकते हैं। पोस्टकोड-स्तरीय यात्रा-समय फ़िल्टरिंग उस अंतर को दृश्यमान रखता है।', + 'Balance journey time with the rest of the move': + 'यात्रा के समय को शेष चाल के साथ संतुलित करें', + 'A fast commute only helps if the area also fits your budget, housing needs, school preferences, safety threshold, broadband requirement, and tolerance for road noise.': + 'तेज़ आवागमन तभी सहायक होता है जब क्षेत्र आपके बजट, आवास आवश्यकताओं, स्कूल की प्राथमिकताओं, सुरक्षा सीमा, ब्रॉडबैंड आवश्यकता और सड़क शोर के प्रति सहनशीलता के अनुरूप हो।', + 'How travel-time filters should be interpreted': + 'यात्रा-समय फ़िल्टर की व्याख्या कैसे की जानी चाहिए', + 'Travel-time modelling is useful for comparing areas consistently. Before committing, check current timetables, disruption patterns, parking, cycling conditions, and walking routes.': + 'यात्रा-समय मॉडलिंग लगातार क्षेत्रों की तुलना करने के लिए उपयोगी है। प्रतिबद्ध होने से पहले, वर्तमान समय सारिणी, व्यवधान पैटर्न, पार्किंग, साइकिल चलाने की स्थिति और पैदल चलने के मार्गों की जांच करें।', + 'Why commute filters are combined with property data': + 'आवागमन फ़िल्टर को संपत्ति डेटा के साथ क्यों जोड़ा जाता है?', + 'Commute search is most useful when it removes impossible areas while still showing whether the remaining options are affordable and liveable.': + 'यात्रा खोज तब सबसे उपयोगी होती है जब यह असंभव क्षेत्रों को हटा देती है और साथ ही यह भी दिखाती है कि क्या शेष विकल्प किफायती और रहने योग्य हैं।', + 'Can I compare car, cycling, walking, and public transport?': + 'क्या मैं कार, साइकिल चलाना, पैदल चलना और सार्वजनिक परिवहन की तुलना कर सकता हूँ?', + 'The product supports multiple travel modes where precomputed destination data is available.': + 'उत्पाद कई यात्रा मोड का समर्थन करता है जहां पूर्व-गणना गंतव्य डेटा उपलब्ध है।', + 'Are travel times exact?': 'क्या यात्रा का समय सटीक है?', + 'No. Treat them as a consistent comparison model, then verify the real route before making viewing or purchase decisions.': + 'नहीं, उन्हें एक सुसंगत तुलना मॉडल के रूप में मानें, फिर देखने या खरीदारी का निर्णय लेने से पहले वास्तविक मार्ग को सत्यापित करें।', + 'Can I combine commute filters with schools and price?': + 'क्या मैं स्कूलों और कीमत के साथ आवागमन फ़िल्टर जोड़ सकता हूँ?', + 'Yes. The commute filter can be layered with property price, size, schools, broadband, crime, amenities, and environmental signals.': + 'हाँ। आवागमन फ़िल्टर को संपत्ति की कीमत, आकार, स्कूल, ब्रॉडबैंड, अपराध, सुविधाओं और पर्यावरण संकेतों के साथ स्तरित किया जा सकता है।', + 'Bristol property search guide': 'ब्रिस्टल संपत्ति खोज गाइड', + 'A worked example for balancing city access, price, and local context.': + 'शहर की पहुंच, कीमत और स्थानीय संदर्भ को संतुलित करने के लिए एक कारगर उदाहरण।', + 'Search by commute time': 'आवागमन समय के आधार पर खोजें', + 'Schools and property search': 'स्कूल और संपत्ति खोज', + 'Find property search areas with schools and family trade-offs in view': + 'स्कूलों और पारिवारिक लेन-देन को ध्यान में रखते हुए संपत्ति खोज क्षेत्र खोजें', + 'School property search - Compare postcodes for family moves': + 'स्कूल संपत्ति खोज - पारिवारिक स्थानांतरण के लिए पोस्टकोड की तुलना करें', + 'Compare nearby schools, property size, prices, parks, safety, commute and local amenities before building a viewing shortlist.': + 'देखने के लिए शॉर्टलिस्ट बनाने से पहले आस-पास के स्कूलों, संपत्ति के आकार, कीमतों, पार्कों, सुरक्षा, आवागमन और स्थानीय सुविधाओं की तुलना करें।', + 'Compare nearby Ofsted ratings, education context, property size, budget, safety, parks, commute, and local amenities before narrowing your viewing shortlist.': + 'अपनी देखने की सूची को सीमित करने से पहले आस-पास की ऑफस्टेड रेटिंग, शिक्षा संदर्भ, संपत्ति का आकार, बजट, सुरक्षा, पार्क, आवागमन और स्थानीय सुविधाओं की तुलना करें।', + 'Filter for nearby school quality alongside housing requirements.': + 'आवास आवश्यकताओं के साथ-साथ नजदीकी स्कूल की गुणवत्ता के लिए फ़िल्टर करें।', + 'Compare family-friendly trade-offs across unfamiliar postcodes.': + 'अपरिचित पोस्टकोड में परिवार-अनुकूल व्यापार-बंदों की तुलना करें।', + 'Use the map as a shortlist tool before checking admissions and catchments.': + 'प्रवेश और कैचमेंट की जांच करने से पहले मानचित्र को शॉर्टलिस्ट टूल के रूप में उपयोग करें।', + 'Use school context without ignoring the home': + 'घर को नज़रअंदाज़ किए बिना स्कूल के संदर्भ का उपयोग करें', + 'Start with property size, budget, and commute constraints, then layer in nearby school quality and local context. This prevents school-led searches from hiding affordability or daily-life problems.': + 'संपत्ति के आकार, बजट और आवागमन की बाधाओं से शुरुआत करें, फिर पास के स्कूल की गुणवत्ता और स्थानीय संदर्भ पर ध्यान दें। यह स्कूल-आधारित खोजों को सामर्थ्य या दैनिक जीवन की समस्याओं को छिपाने से रोकता है।', + 'Verify admissions before deciding': 'निर्णय लेने से पहले प्रवेश सत्यापित करें', + 'School data can point to promising areas, but admissions rules and catchments can change. Confirm current arrangements with schools and local authorities.': + 'स्कूल डेटा आशाजनक क्षेत्रों की ओर इशारा कर सकता है, लेकिन प्रवेश नियम और कैचमेंट बदल सकते हैं। स्कूलों और स्थानीय अधिकारियों के साथ वर्तमान व्यवस्था की पुष्टि करें।', + 'School quality is one part of the shortlist': 'स्कूल की गुणवत्ता शॉर्टलिस्ट का एक हिस्सा है', + 'Perfect Postcode helps you compare nearby school data with the other practical constraints that shape a family move: space, price, commute, parks, safety, and local services.': + 'Perfect Postcode आपको आस-पास के स्कूल डेटा की तुलना अन्य व्यावहारिक बाधाओं से करने में मदद करता है जो पारिवारिक स्थानांतरण को आकार देते हैं: स्थान, मूल्य, आवागमन, पार्क, सुरक्षा और स्थानीय सेवाएं।', + 'Check catchments before making decisions': + 'निर्णय लेने से पहले जलग्रहण क्षेत्रों की जाँच करें', + 'Admissions rules and catchment boundaries can change. Use postcode-level school data to find promising areas, then verify current admissions details with the school or local authority.': + 'प्रवेश नियम और जलग्रहण सीमाएँ बदल सकती हैं। आशाजनक क्षेत्रों को खोजने के लिए पोस्टकोड-स्तरीय स्कूल डेटा का उपयोग करें, फिर स्कूल या स्थानीय प्राधिकरण के साथ वर्तमान प्रवेश विवरण सत्यापित करें।', + 'How to treat school filters': 'स्कूल फ़िल्टर का इलाज कैसे करें', + 'Use school filters to narrow research, not to assume admission eligibility. Ratings, distance, admissions criteria, and school capacity should all be checked with current official sources.': + 'शोध को सीमित करने के लिए स्कूल फ़िल्टर का उपयोग करें, न कि प्रवेश पात्रता मानने के लिए। रेटिंग, दूरी, प्रवेश मानदंड और स्कूल की क्षमता सभी की जाँच वर्तमान आधिकारिक स्रोतों से की जानी चाहिए।', + 'Family trade-offs to compare': 'तुलना करने के लिए पारिवारिक व्यापार-बंद', + 'Combine schools with parks, road noise, crime, property size, commute, broadband, and price so the shortlist reflects the whole move.': + 'स्कूलों को पार्क, सड़क के शोर, अपराध, संपत्ति के आकार, आवागमन, ब्रॉडबैंड और कीमत के साथ मिलाएं ताकि शॉर्टलिस्ट पूरे कदम को प्रतिबिंबित कर सके।', + 'Does this show school catchment guarantees?': 'क्या यह स्कूल कैचमेंट गारंटी दिखाता है?', + 'No. It helps identify promising areas, but catchments and admissions must be verified with the school or local authority.': + 'नहीं, यह आशाजनक क्षेत्रों की पहचान करने में मदद करता है, लेकिन कैचमेंट और प्रवेश को स्कूल या स्थानीय प्राधिकरण से सत्यापित किया जाना चाहिए।', + 'Can I combine school filters with parks and safety?': + 'क्या मैं स्कूल फ़िल्टर को पार्क और सुरक्षा के साथ जोड़ सकता हूँ?', + 'Yes. School-aware search can be combined with crime, parks, commute, price, property size, and local services.': + 'हाँ। स्कूल-जागरूक खोज को अपराध, पार्क, आवागमन, कीमत, संपत्ति का आकार और स्थानीय सेवाओं के साथ जोड़ा जा सकता है।', + 'Is Ofsted the only school signal?': 'क्या ऑफस्टेड एकमात्र स्कूल सिग्नल है?', + 'No single score should decide a move. Use the map as a starting point, then review current school information in detail.': + 'किसी एक अंक से किसी चाल का निर्णय नहीं होना चाहिए। शुरुआती बिंदु के रूप में मानचित्र का उपयोग करें, फिर वर्तमान स्कूल जानकारी की विस्तार से समीक्षा करें।', + 'See where education, property, transport, and environment data comes from.': + 'देखें कि शिक्षा, संपत्ति, परिवहन और पर्यावरण डेटा कहाँ से आता है।', + 'Explore school-aware searches': 'स्कूल-जागरूक खोजों का अन्वेषण करें', + 'Check postcode data before you book a viewing': + 'देखने की बुकिंग करने से पहले पोस्टकोड डेटा की जाँच करें', + 'Postcode checker - Property, crime, broadband, noise and schools': + 'पोस्टकोड चेकर - संपत्ति, अपराध, ब्रॉडबैंड, शोर और स्कूल', + 'Check postcode-level property prices, EPC data, crime, broadband, road noise, schools, council tax, amenities and travel-time context.': + 'पोस्टकोड-स्तरीय संपत्ति की कीमतें, ईपीसी डेटा, अपराध, ब्रॉडबैंड, सड़क शोर, स्कूल, परिषद कर, सुविधाएं और यात्रा-समय संदर्भ की जांच करें।', + 'Review property prices, EPC context, crime, broadband, road noise, local amenities, schools, deprivation, council tax, and travel-time data from one postcode-first map.': + 'एक पोस्टकोड-प्रथम मानचित्र से संपत्ति की कीमतें, ईपीसी संदर्भ, अपराध, ब्रॉडबैंड, सड़क शोर, स्थानीय सुविधाएं, स्कूल, अभाव, परिषद कर और यात्रा-समय डेटा की समीक्षा करें।', + 'Check multiple local signals before visiting a street.': + 'किसी सड़क पर जाने से पहले कई स्थानीय सिग्नलों की जाँच करें।', + 'Use official and open datasets rather than reputation alone.': + 'केवल प्रतिष्ठा के बजाय आधिकारिक और खुले डेटासेट का उपयोग करें।', + 'Compare postcodes consistently across England.': + 'पूरे इंग्लैंड में लगातार पोस्टकोड की तुलना करें।', + 'Check the street before spending a viewing slot': + 'देखने का स्लॉट खर्च करने से पहले सड़क की जाँच करें', + 'Use the postcode checker to review price history, local context, amenities, schools, and environment signals before you commit time to visiting.': + 'यात्रा के लिए समय निर्धारित करने से पहले मूल्य इतिहास, स्थानीय संदर्भ, सुविधाओं, स्कूलों और पर्यावरण संकेतों की समीक्षा करने के लिए पोस्टकोड चेकर का उपयोग करें।', + 'Compare neighbouring postcodes': 'पड़ोसी पोस्टकोड की तुलना करें', + 'If one postcode looks promising, compare adjacent areas using the same filters. This often reveals whether a concern is street-specific or part of a wider pattern.': + 'यदि एक पोस्टकोड आशाजनक लगता है, तो उसी फ़िल्टर का उपयोग करके आसन्न क्षेत्रों की तुलना करें। इससे अक्सर पता चलता है कि कोई चिंता सड़क-विशिष्ट है या व्यापक पैटर्न का हिस्सा है।', + 'Useful before and alongside listing portals': 'लिस्टिंग पोर्टल से पहले और साथ में उपयोगी', + 'Listing photos rarely tell you enough about the surrounding street. Perfect Postcode gives you an evidence-led postcode check before you commit time to a viewing.': + 'लिस्टिंग फ़ोटो शायद ही आपको आस-पास की सड़क के बारे में पर्याप्त जानकारी देती हो। देखने के लिए समय देने से पहले Perfect Postcode आपको साक्ष्य-संचालित पोस्टकोड जांच देता है।', + 'A screening tool, not professional advice': 'एक स्क्रीनिंग टूल, पेशेवर सलाह नहीं', + 'The data is designed for shortlisting and comparison. Any purchase still needs current listing checks, legal due diligence, flood searches, lender requirements, and survey findings.': + 'डेटा को शॉर्टलिस्टिंग और तुलना के लिए डिज़ाइन किया गया है। किसी भी खरीदारी के लिए अभी भी वर्तमान लिस्टिंग जांच, कानूनी उचित परिश्रम, बाढ़ खोज, ऋणदाता आवश्यकताओं और सर्वेक्षण निष्कर्षों की आवश्यकता होती है।', + 'What a postcode check can catch': 'एक पोस्टकोड जांच क्या पकड़ सकती है', + 'A postcode check can surface price context, environmental signals, nearby amenities, and other local indicators that are easy to miss in a listing.': + 'एक पोस्टकोड जांच से मूल्य संदर्भ, पर्यावरणीय संकेत, आस-पास की सुविधाएं और अन्य स्थानीय संकेतक सामने आ सकते हैं जिन्हें सूची में शामिल करना आसान है।', + 'What a postcode check can’t prove': 'पोस्टकोड जांच क्या साबित नहीं कर सकती', + 'It can’t confirm the condition of a home, future development, legal title, lender requirements, or current street-level experience. Those still need direct checks.': + 'यह घर की स्थिति, भविष्य के विकास, कानूनी स्वामित्व, ऋणदाता आवश्यकताओं या वर्तमान सड़क-स्तरीय अनुभव की पुष्टि नहीं कर सकता है। उन्हें अभी भी सीधी जांच की जरूरत है।', + 'Can I use the checker before a viewing?': 'क्या मैं देखने से पहले चेकर का उपयोग कर सकता हूँ?', + 'Yes. That’s one of the main use cases: screen the postcode first, then decide whether the viewing is worth the time.': + 'हाँ। यह मुख्य उपयोग मामलों में से एक है: पहले पोस्टकोड को स्क्रीन करें, फिर तय करें कि देखना समय के लायक है या नहीं।', + 'Does the checker include exact property condition?': + 'क्या चेकर में संपत्ति की सटीक स्थिति शामिल है?', + 'No. Property condition requires listing details, surveys, and direct inspection.': + 'नहीं, संपत्ति की स्थिति के लिए लिस्टिंग विवरण, सर्वेक्षण और प्रत्यक्ष निरीक्षण की आवश्यकता होती है।', + 'Can I compare multiple postcodes?': 'क्या मैं अनेक पोस्टकोड की तुलना कर सकता हूँ?', + 'Yes. The map is designed for consistent comparison across postcodes.': + 'हाँ। मानचित्र को सभी पोस्टकोडों में लगातार तुलना के लिए डिज़ाइन किया गया है।', + 'Check postcodes on the map': 'मानचित्र पर पोस्टकोड जांचें', + 'Regional guide': 'क्षेत्रीय मार्गदर्शक', + 'How to compare Birmingham postcodes before a property search': + 'संपत्ति खोज से पहले बर्मिंघम पोस्टकोड की तुलना कैसे करें', + 'Birmingham property search - Compare postcodes by price and commute': + 'बर्मिंघम संपत्ति खोज - कीमत और आवागमन के आधार पर पोस्टकोड की तुलना करें', + 'Use postcode-level data to compare Birmingham property prices, commute trade-offs, schools, crime, broadband and local amenities before viewings.': + 'देखने से पहले बर्मिंघम संपत्ति की कीमतों, आवागमन व्यापार-बंद, स्कूलों, अपराध, ब्रॉडबैंड और स्थानीय सुविधाओं की तुलना करने के लिए पोस्टकोड-स्तरीय डेटा का उपयोग करें।', + 'Birmingham searches can change quickly from street to street. Use postcode-level evidence to compare budget, commute, schools, noise, crime, and local services before deciding where to watch listings.': + 'बर्मिंघम खोजें एक सड़क से दूसरी सड़क पर तेज़ी से बदल सकती हैं। लिस्टिंग कहाँ देखनी है यह तय करने से पहले बजट, आवागमन, स्कूल, शोर, अपराध और स्थानीय सेवाओं की तुलना करने के लिए पोस्टकोड-स्तरीय साक्ष्य का उपयोग करें।', + 'Start with commute corridors': 'आवागमन गलियारों से शुरुआत करें', + 'Choose the destination that matters, such as a workplace, station, university, or hospital, then compare reachable postcodes by transport mode and travel-time band.': + 'वह गंतव्य चुनें जो महत्वपूर्ण हो, जैसे कार्यस्थल, स्टेशन, विश्वविद्यालय, या अस्पताल, फिर परिवहन मोड और यात्रा-समय बैंड द्वारा पहुंच योग्य पोस्टकोड की तुलना करें।', + 'Use commute time as a hard filter before judging price.': + 'कीमत तय करने से पहले आवागमन के समय को एक कठिन फिल्टर के रूप में उपयोग करें।', + 'Compare public transport with car, cycling, or walking where available.': + 'जहां उपलब्ध हो वहां सार्वजनिक परिवहन की तुलना कार, साइकिल या पैदल चलने से करें।', + 'Check the route manually before booking viewings.': + 'बुकिंग देखने से पहले मैन्युअल रूप से मार्ग की जाँच करें।', + 'Compare price with property type': 'संपत्ति के प्रकार के साथ कीमत की तुलना करें', + 'Median prices alone can be misleading if the local property mix changes. Add property type, tenure, floor area, and price filters so similar areas are compared fairly.': + 'यदि स्थानीय संपत्ति मिश्रण बदलता है तो औसत कीमतें अकेले भ्रामक हो सकती हैं। संपत्ति का प्रकार, कार्यकाल, फर्श क्षेत्र और मूल्य फ़िल्टर जोड़ें ताकि समान क्षेत्रों की तुलना निष्पक्ष रूप से की जा सके।', + 'Keep family and environment trade-offs visible': + 'परिवार और पर्यावरण के बीच के संबंधों को स्पष्ट रखें', + 'Layer school context, parks, road noise, broadband, and crime signals on top of the property filters. That makes it easier to decide which compromises are acceptable.': + 'संपत्ति फ़िल्टर के शीर्ष पर स्कूल संदर्भ, पार्क, सड़क शोर, ब्रॉडबैंड और अपराध सिग्नल परत करें। इससे यह तय करना आसान हो जाता है कि कौन से समझौते स्वीकार्य हैं।', + 'Can Perfect Postcode tell me the best area in Birmingham?': + 'क्या Perfect Postcode मुझे बर्मिंघम में सबसे अच्छा क्षेत्र बता सकता है?', + 'No tool can decide the best area for every buyer. It helps compare postcodes against your own constraints so you can build a better shortlist.': + 'कोई भी उपकरण प्रत्येक खरीदार के लिए सर्वोत्तम क्षेत्र का निर्णय नहीं कर सकता। यह आपकी अपनी बाधाओं के विरुद्ध पोस्टकोड की तुलना करने में मदद करता है ताकि आप एक बेहतर शॉर्टलिस्ट बना सकें।', + 'Should I use this instead of local knowledge?': + 'क्या मुझे स्थानीय ज्ञान के स्थान पर इसका उपयोग करना चाहिए?', + 'No. Use it to find and compare candidates, then validate them with visits, local advice, listings, and official checks.': + 'नहीं, इसका उपयोग उम्मीदवारों को खोजने और तुलना करने के लिए करें, फिर उन्हें विजिट, स्थानीय सलाह, लिस्टिंग और आधिकारिक जांच के साथ मान्य करें।', + 'Compare price patterns before looking at live listings.': + 'लाइव लिस्टिंग देखने से पहले मूल्य पैटर्न की तुलना करें।', + 'Search by travel time and then layer on property requirements.': + 'यात्रा के समय के आधार पर खोजें और फिर संपत्ति की आवश्यकताओं के आधार पर खोजें।', + 'Understand how to interpret filters and limitations.': + 'समझें कि फ़िल्टर और सीमाओं की व्याख्या कैसे करें।', + 'Compare Birmingham postcodes': 'बर्मिंघम पोस्टकोड की तुलना करें', + 'How to compare Manchester postcodes for a property search': + 'संपत्ति खोज के लिए मैनचेस्टर पोस्टकोड की तुलना कैसे करें', + 'Manchester property search - Compare postcodes before viewing': + 'मैनचेस्टर संपत्ति खोज - देखने से पहले पोस्टकोड की तुलना करें', + 'Compare Manchester-area postcodes by budget, commute, property type, schools, broadband, crime, noise and amenities before booking viewings.': + 'बुकिंग देखने से पहले बजट, आवागमन, संपत्ति के प्रकार, स्कूल, ब्रॉडबैंड, अपराध, शोर और सुविधाओं के आधार पर मैनचेस्टर-क्षेत्र के पोस्टकोड की तुलना करें।', + 'A Manchester-area search can span city-centre, suburban, and commuter options. Perfect Postcode helps keep each postcode comparable against the same property and daily-life constraints.': + 'मैनचेस्टर-क्षेत्र की खोज शहर-केंद्र, उपनगरीय और कम्यूटर विकल्पों तक फैली हो सकती है। Perfect Postcode प्रत्येक पोस्टकोड को समान संपत्ति और दैनिक जीवन की बाधाओं के मुकाबले तुलनीय रखने में मदद करता है।', + 'Use travel time to define the real search area': + 'वास्तविक खोज क्षेत्र को परिभाषित करने के लिए यात्रा समय का उपयोग करें', + 'Start from the destinations that matter, then compare reachable postcodes rather than assuming every nearby place has the same practical journey.': + 'उन गंतव्यों से शुरू करें जो मायने रखते हैं, फिर यह मानने के बजाय कि हर नजदीकी स्थान की व्यावहारिक यात्रा समान है, पहुंच योग्य पोस्टकोड की तुलना करें।', + 'Compare housing requirements before lifestyle preferences': + 'जीवनशैली प्राथमिकताओं से पहले आवास आवश्यकताओं की तुलना करें', + 'Filter by property type, floor area, tenure, and price before judging amenities. That keeps the shortlist grounded in homes that could realistically work.': + 'सुविधाओं का आकलन करने से पहले संपत्ति के प्रकार, फर्श क्षेत्र, कार्यकाल और कीमत के आधार पर फ़िल्टर करें। यह शॉर्टलिस्ट को उन घरों पर आधारित रखता है जो वास्तविक रूप से काम कर सकते हैं।', + 'Check local context consistently': 'स्थानीय संदर्भ की लगातार जाँच करें', + 'Use broadband, crime, road noise, parks, schools, and amenities as comparable signals. Then validate the strongest candidates with current local checks.': + 'ब्रॉडबैंड, अपराध, सड़क शोर, पार्क, स्कूल और सुविधाओं को तुलनीय सिग्नल के रूप में उपयोग करें। फिर वर्तमान स्थानीय जांच के साथ सबसे मजबूत उम्मीदवारों को मान्य करें।', + 'Can I compare Manchester suburbs with city-centre postcodes?': + 'क्या मैं मैनचेस्टर उपनगरों की तुलना सिटी-सेंटर पोस्टकोड से कर सकता हूँ?', + 'Yes. Use the same budget, property, commute, and local-context filters across both so trade-offs remain visible.': + 'हाँ। दोनों में समान बजट, संपत्ति, आवागमन और स्थानीय-संदर्भ फ़िल्टर का उपयोग करें ताकि ट्रेड-ऑफ़ दिखाई देता रहे।', + 'Does this include live listings?': 'क्या इसमें लाइव लिस्टिंग शामिल है?', + 'No. Use it to decide where to search, then use listing portals for current homes for sale.': + 'नहीं, इसका उपयोग यह तय करने के लिए करें कि कहां खोजना है, फिर बिक्री के लिए वर्तमान घरों के लिए लिस्टिंग पोर्टल का उपयोग करें।', + 'Move from a broad search brief to specific postcode candidates.': + 'व्यापक खोज संक्षिप्त से विशिष्ट पोस्टकोड उम्मीदवारों की ओर बढ़ें।', + 'Data sources': 'डेटा स्रोत', + 'Review the datasets used for property and local-context comparison.': + 'संपत्ति और स्थानीय-संदर्भ तुलना के लिए उपयोग किए गए डेटासेट की समीक्षा करें।', + 'Check a single postcode before arranging a viewing.': + 'देखने की व्यवस्था करने से पहले एक पोस्टकोड की जाँच करें।', + 'Compare Manchester postcodes': 'मैनचेस्टर पोस्टकोड की तुलना करें', + 'How to compare Bristol postcodes before a property search': + 'संपत्ति खोज से पहले ब्रिस्टल पोस्टकोड की तुलना कैसे करें', + 'Bristol property search - Compare postcodes by commute and price': + 'ब्रिस्टल संपत्ति खोज - यात्रा और कीमत के आधार पर पोस्टकोड की तुलना करें', + 'Compare Bristol postcodes by price, commute, property size, schools, broadband, crime, road noise, parks and amenities before viewings.': + 'देखने से पहले कीमत, आवागमन, संपत्ति के आकार, स्कूल, ब्रॉडबैंड, अपराध, सड़क शोर, पार्क और सुविधाओं के आधार पर ब्रिस्टल पोस्टकोड की तुलना करें।', + 'Bristol searches often involve sharp trade-offs between price, journey time, property size, and neighbourhood context. A postcode-first comparison keeps those trade-offs visible.': + 'ब्रिस्टल खोजों में अक्सर कीमत, यात्रा के समय, संपत्ति के आकार और पड़ोस के संदर्भ के बीच तीव्र आदान-प्रदान शामिल होता है। पोस्टकोड-पहली तुलना उन ट्रेड-ऑफ़ को दृश्यमान रखती है।', + 'Make commute constraints explicit': 'आवागमन संबंधी बाधाओं को स्पष्ट करें', + 'If access to the centre, a station, hospital, university, or business park matters, use travel-time filters first and then compare the remaining postcodes by property data.': + 'यदि केंद्र, स्टेशन, अस्पताल, विश्वविद्यालय या बिजनेस पार्क तक पहुंच मायने रखती है, तो पहले यात्रा-समय फ़िल्टर का उपयोग करें और फिर संपत्ति डेटा द्वारा शेष पोस्टकोड की तुलना करें।', + 'Compare value, not just headline price': 'मूल्य की तुलना करें, न कि केवल मुख्य मूल्य की', + 'Use price, property type, and floor-area filters together. This helps distinguish lower-cost areas from areas that simply contain smaller or different homes.': + 'मूल्य, संपत्ति प्रकार और फर्श-क्षेत्र फ़िल्टर का एक साथ उपयोग करें। इससे कम लागत वाले क्षेत्रों को उन क्षेत्रों से अलग करने में मदद मिलती है जिनमें छोटे या अलग-अलग घर होते हैं।', + 'Screen environmental and local-service signals': + 'पर्यावरण और स्थानीय-सेवा संकेतों को स्क्रीन करें', + 'Road noise, parks, broadband, crime, and amenities can affect whether a property works day to day. Use them as screening criteria before booking viewings.': + 'सड़क का शोर, पार्क, ब्रॉडबैंड, अपराध और सुविधाएं प्रभावित कर सकती हैं कि कोई संपत्ति दिन-प्रतिदिन काम करती है या नहीं। बुकिंग देखने से पहले उन्हें स्क्रीनिंग मानदंड के रूप में उपयोग करें।', + 'Can I use this for commuter villages around Bristol?': + 'क्या मैं इसका उपयोग ब्रिस्टल के आसपास के कम्यूटर गांवों के लिए कर सकता हूं?', + 'Yes, where the relevant postcode and travel-time data is available. Always verify routes and services manually before deciding.': + 'हां, जहां प्रासंगिक पोस्टकोड और यात्रा-समय डेटा उपलब्ध है। निर्णय लेने से पहले हमेशा मार्गों और सेवाओं को मैन्युअल रूप से सत्यापित करें।', + 'Can this tell me whether a listing is good value?': + 'क्या यह मुझे बता सकता है कि क्या कोई सूची अच्छा मूल्य है?', + 'It can provide area context, but a specific listing still needs comparable sales, condition checks, survey findings, and professional advice where appropriate.': + 'यह क्षेत्र का संदर्भ प्रदान कर सकता है, लेकिन एक विशिष्ट सूची को अभी भी तुलनीय बिक्री, स्थिति जांच, सर्वेक्षण निष्कर्ष और जहां उपयुक्त हो, पेशेवर सलाह की आवश्यकता होती है।', + 'Search by reachable postcodes before refining by budget and local context.': + 'बजट और स्थानीय संदर्भ के अनुसार परिष्कृत करने से पहले पहुंच योग्य पोस्टकोड द्वारा खोजें।', + 'Understand price patterns before setting listing alerts.': + 'लिस्टिंग अलर्ट सेट करने से पहले मूल्य पैटर्न को समझें।', + 'Privacy and security': 'गोपनीयता और सुरक्षा', + 'How account and saved-search data is handled in the product.': + 'उत्पाद में खाता और सहेजा गया-खोज डेटा कैसे प्रबंधित किया जाता है।', + 'Compare Bristol postcodes': 'ब्रिस्टल पोस्टकोड की तुलना करें', + 'Trust and coverage': 'भरोसा और कवरेज', + 'Perfect Postcode data sources and coverage': 'Perfect Postcode डेटा स्रोत और कवरेज', + 'Perfect Postcode data sources - Property, schools, commute and local context': + 'Perfect Postcode डेटा स्रोत - संपत्ति, स्कूल, आवागमन और स्थानीय संदर्भ', + 'Review the public and official datasets used by Perfect Postcode, including property prices, EPC, schools, crime, broadband, noise and travel-time context.': + 'प्रॉपर्टी की कीमतें, ईपीसी, स्कूल, अपराध, ब्रॉडबैंड, शोर और यात्रा-समय के संदर्भ सहित, Perfect Postcode द्वारा उपयोग किए गए सार्वजनिक और आधिकारिक डेटासेट की समीक्षा करें।', + 'Perfect Postcode combines property, transport, education, environment, and local-service datasets so buyers can compare postcodes consistently. This page explains what the data is for and where it should be verified.': + 'Perfect Postcode संपत्ति, परिवहन, शिक्षा, पर्यावरण और स्थानीय-सेवा डेटासेट को जोड़ता है ताकि खरीदार लगातार पोस्टकोड की तुलना कर सकें। यह पृष्ठ बताता है कि डेटा किस लिए है और इसे कहां सत्यापित किया जाना चाहिए।', + 'Property and housing context': 'संपत्ति और आवास संदर्भ', + 'The product uses property transaction and housing-context datasets to support filters such as sale price, property type, tenure, floor area, energy performance, and estimated current value.': + 'उत्पाद बिक्री मूल्य, संपत्ति प्रकार, कार्यकाल, फर्श क्षेत्र, ऊर्जा प्रदर्शन और अनुमानित वर्तमान मूल्य जैसे फिल्टर का समर्थन करने के लिए संपत्ति लेनदेन और आवास-संदर्भ डेटासेट का उपयोग करता है।', + 'Use these fields to compare areas, not as a formal valuation.': + 'इन क्षेत्रों का उपयोग क्षेत्रों की तुलना करने के लिए करें, औपचारिक मूल्यांकन के रूप में नहीं।', + 'Check current listings, title information, lender requirements, and survey results before buying.': + 'खरीदने से पहले वर्तमान लिस्टिंग, शीर्षक जानकारी, ऋणदाता आवश्यकताओं और सर्वेक्षण परिणामों की जांच करें।', + 'Schools, safety, broadband, and environment': 'स्कूल, सुरक्षा, ब्रॉडबैंड और पर्यावरण', + 'Local-context filters help compare postcodes on signals that affect daily life. They should be treated as screening data and checked against current official sources for decisions.': + 'स्थानीय-संदर्भ फ़िल्टर दैनिक जीवन को प्रभावित करने वाले संकेतों पर पोस्टकोड की तुलना करने में मदद करते हैं। उन्हें स्क्रीनिंग डेटा के रूप में माना जाना चाहिए और निर्णयों के लिए वर्तमान आधिकारिक स्रोतों के विरुद्ध जांच की जानी चाहिए।', + 'Travel-time data': 'यात्रा-समय डेटा', + 'Travel-time filters are designed for consistent area comparison. Route availability, disruption, parking, walking access, and timetable details should be verified before committing to an area.': + 'यात्रा-समय फ़िल्टर सुसंगत क्षेत्र तुलना के लिए डिज़ाइन किए गए हैं। किसी क्षेत्र में जाने से पहले मार्ग की उपलब्धता, व्यवधान, पार्किंग, पैदल पहुंच और समय सारिणी विवरण सत्यापित किया जाना चाहिए।', + 'Why does coverage focus on England?': 'कवरेज इंग्लैंड पर केंद्रित क्यों है?', + 'Several core property, education, and local-context datasets are jurisdiction-specific. England coverage keeps comparisons more consistent.': + 'कई मुख्य संपत्ति, शिक्षा और स्थानीय-संदर्भ डेटासेट क्षेत्राधिकार-विशिष्ट हैं। इंग्लैंड का कवरेज तुलनाओं को अधिक सुसंगत रखता है।', + 'How should I handle stale or missing data?': 'मुझे बासी या गुम डेटा को कैसे संभालना चाहिए?', + 'Use the map as a shortlist tool. If a postcode matters, verify the latest details with current official sources and direct local checks.': + 'मानचित्र को शॉर्टलिस्ट टूल के रूप में उपयोग करें। यदि कोई पोस्टकोड मायने रखता है, तो वर्तमान आधिकारिक स्रोतों और सीधे स्थानीय जांच से नवीनतम विवरण सत्यापित करें।', + 'How filters and comparisons should be interpreted.': + 'फ़िल्टर और तुलनाओं की व्याख्या कैसे की जानी चाहिए.', + 'Review postcode-level context before a viewing.': + 'देखने से पहले पोस्टकोड-स्तरीय संदर्भ की समीक्षा करें।', + 'How saved searches and account data are handled.': + 'सहेजी गई खोजों और खाता डेटा को कैसे प्रबंधित किया जाता है।', + 'How to use the map': 'मानचित्र का उपयोग कैसे करें', + 'Methodology for postcode property research': 'पोस्टकोड संपत्ति अनुसंधान के लिए पद्धति', + 'Perfect Postcode methodology - How to interpret postcode property data': + 'Perfect Postcode पद्धति - पोस्टकोड संपत्ति डेटा की व्याख्या कैसे करें', + 'Understand how to use postcode filters, property estimates, travel-time data, school context and local signals as a home-buying shortlist tool.': + 'घर-खरीद शॉर्टलिस्ट टूल के रूप में पोस्टकोड फ़िल्टर, संपत्ति अनुमान, यात्रा-समय डेटा, स्कूल संदर्भ और स्थानीय संकेतों का उपयोग करने का तरीका समझें।', + 'Perfect Postcode is designed to make area shortlisting more evidence-led. It doesn’t replace estate agents, surveyors, conveyancers, lenders, school admissions teams, or local authority checks.': + 'Perfect Postcode को क्षेत्र की शॉर्टलिस्टिंग को अधिक साक्ष्य आधारित बनाने के लिए डिज़ाइन किया गया है। यह संपत्ति एजेंटों, सर्वेक्षणकर्ताओं, वाहकों, ऋणदाताओं, स्कूल प्रवेश टीमों या स्थानीय प्राधिकरण जांचों को प्रतिस्थापित नहीं करता है।', + 'Start with hard constraints': 'कठिन बाधाओं से शुरुआत करें', + 'Begin with non-negotiables such as budget, property type, floor area, commute time, and essential services. This removes impossible postcodes before softer preferences are considered.': + 'बजट, संपत्ति का प्रकार, फर्श क्षेत्र, आवागमन का समय और आवश्यक सेवाओं जैसे गैर-परक्राम्य मुद्दों से शुरुआत करें। नरम प्राथमिकताओं पर विचार करने से पहले यह असंभव पोस्टकोड को हटा देता है।', + 'Use colour layers for trade-offs': 'ट्रेड-ऑफ़ के लिए रंग परतों का उपयोग करें', + 'After filtering, colour the remaining map by one signal at a time: price per square metre, road noise, school context, commute time, broadband, or crime. This makes trade-offs easier to discuss.': + 'फ़िल्टर करने के बाद, शेष मानचित्र को एक समय में एक सिग्नल से रंगें: प्रति वर्ग मीटर कीमत, सड़क का शोर, स्कूल का संदर्भ, आवागमन का समय, ब्रॉडबैंड, या अपराध। इससे ट्रेड-ऑफ़ पर चर्चा करना आसान हो जाता है।', + 'Measure what’s working': 'मापें कि क्या काम कर रहा है', + 'Use Search Console and analytics to track which public pages are indexed, which queries produce impressions, and which pages convert visitors into dashboard exploration. Review Core Web Vitals after every substantial frontend change.': + 'यह ट्रैक करने के लिए सर्च कंसोल और एनालिटिक्स का उपयोग करें कि कौन से सार्वजनिक पृष्ठ अनुक्रमित हैं, कौन सी क्वेरीज़ इंप्रेशन उत्पन्न करती हैं, और कौन से पृष्ठ आगंतुकों को डैशबोर्ड अन्वेषण में परिवर्तित करते हैं। प्रत्येक महत्वपूर्ण फ्रंटएंड परिवर्तन के बाद कोर वेब वाइटल्स की समीक्षा करें।', + 'Can the tool choose the right postcode for me?': 'क्या टूल मेरे लिए सही पोस्टकोड चुन सकता है?', + 'No. It helps compare evidence and reduce the search area. The final decision needs direct visits, current listings, legal checks, surveys, and personal judgement.': + 'नहीं, यह साक्ष्यों की तुलना करने और खोज क्षेत्र को कम करने में मदद करता है। अंतिम निर्णय के लिए प्रत्यक्ष दौरे, वर्तमान लिस्टिंग, कानूनी जांच, सर्वेक्षण और व्यक्तिगत निर्णय की आवश्यकता होती है।', + 'How should I use estimates?': 'मुझे अनुमानों का उपयोग कैसे करना चाहिए?', + 'Use estimates as comparison signals, not as professional valuations or purchase advice.': + 'अनुमानों का उपयोग तुलना संकेतों के रूप में करें, न कि पेशेवर मूल्यांकन या खरीदारी सलाह के रूप में।', + 'Understand where key filters come from.': 'समझें कि मुख्य फ़िल्टर कहाँ से आते हैं।', + 'Apply the methodology to price-led area comparison.': + 'मूल्य-आधारित क्षेत्र तुलना के लिए कार्यप्रणाली लागू करें।', + 'Apply the methodology to destination-led search.': + 'गंतव्य-आधारित खोज के लिए कार्यप्रणाली लागू करें।', + Trust: 'भरोसा रखें', + 'Privacy and security for saved property searches': + 'सहेजी गई संपत्ति खोजों के लिए गोपनीयता और सुरक्षा', + 'Perfect Postcode privacy and security - Saved searches and account data': + 'Perfect Postcode गोपनीयता और सुरक्षा - सहेजी गई खोजें और खाता डेटा', + 'Learn how Perfect Postcode treats saved searches, account data and property research workflows with privacy and security in mind.': + 'जानें कि कैसे Perfect Postcode गोपनीयता और सुरक्षा को ध्यान में रखते हुए सहेजी गई खोजों, खाता डेटा और संपत्ति अनुसंधान वर्कफ़्लो का इलाज करता है।', + 'Property research can reveal personal priorities, budgets, and locations. The product keeps public SEO pages separate from account-only areas and marks private dashboard/account routes as noindex.': + 'संपत्ति अनुसंधान व्यक्तिगत प्राथमिकताओं, बजट और स्थानों को प्रकट कर सकता है। उत्पाद सार्वजनिक एसईओ पृष्ठों को केवल खाता क्षेत्रों से अलग रखता है और निजी डैशबोर्ड/खाता मार्गों को नोइंडेक्स के रूप में चिह्नित करता है।', + 'Public pages and private areas are separated': 'सार्वजनिक पृष्ठ और निजी क्षेत्र अलग-अलग हैं', + 'Marketing, methodology, guide, and support pages are indexable. Dashboard, account, saved searches, invites, and invitation routes are marked noindex or blocked from crawler access where appropriate.': + 'मार्केटिंग, कार्यप्रणाली, मार्गदर्शिका और सहायता पृष्ठ अनुक्रमित किए जा सकते हैं। डैशबोर्ड, खाता, सहेजी गई खोजें, आमंत्रण और आमंत्रण मार्गों को नोइंडेक्स के रूप में चिह्नित किया जाता है या जहां उपयुक्त हो क्रॉलर पहुंच से अवरुद्ध कर दिया जाता है।', + 'Saved search data is account-scoped': 'सहेजा गया खोज डेटा खाता-क्षेत्र है', + 'Saved searches and properties are intended for signed-in use. They aren’t included in the public sitemap and shouldn’t be crawlable as public content.': + 'सहेजी गई खोजें और संपत्तियां साइन-इन उपयोग के लिए हैं। वे सार्वजनिक साइटमैप में शामिल नहीं हैं और उन्हें सार्वजनिक सामग्री के रूप में क्रॉल नहीं किया जाना चाहिए।', + 'Search measurement without exposing private data': 'निजी डेटा को उजागर किए बिना माप खोजें', + 'SEO measurement should happen on public pages using aggregated analytics and Search Console data. Private query parameters and account views shouldn’t become indexable landing pages.': + 'समग्र विश्लेषण और खोज कंसोल डेटा का उपयोग करके सार्वजनिक पृष्ठों पर एसईओ माप होना चाहिए। निजी क्वेरी पैरामीटर और खाता दृश्य अनुक्रमणीय लैंडिंग पृष्ठ नहीं बनने चाहिए।', + 'Are saved searches listed in the sitemap?': 'क्या सहेजी गई खोजें साइटमैप में सूचीबद्ध हैं?', + 'No. Public SEO pages are listed; account and saved-search routes are intentionally excluded.': + 'नहीं, सार्वजनिक एसईओ पृष्ठ सूचीबद्ध हैं; खाता और सहेजे गए-खोज मार्गों को जानबूझकर बाहर रखा गया है।', + 'Can private dashboard URLs appear in search?': + 'क्या निजी डैशबोर्ड URL खोज में दिखाई दे सकते हैं?', + 'They shouldn’t be indexed. The server marks private routes noindex and the sitemap only lists public pages.': + 'उन्हें अनुक्रमित नहीं किया जाना चाहिए. सर्वर निजी मार्गों को नोइंडेक्स चिह्नित करता है और साइटमैप केवल सार्वजनिक पृष्ठों को सूचीबद्ध करता है।', + 'How to use public postcode data responsibly.': + 'सार्वजनिक पोस्टकोड डेटा का जिम्मेदारीपूर्वक उपयोग कैसे करें।', + 'What data powers the public comparisons.': + 'कौन सा डेटा सार्वजनिक तुलनाओं को शक्ति प्रदान करता है।', + 'Explore public postcode-search workflows.': + 'सार्वजनिक पोस्टकोड-खोज वर्कफ़्लोज़ का अन्वेषण करें।', + }, }; export default hi; diff --git a/frontend/src/i18n/locales/hu.ts b/frontend/src/i18n/locales/hu.ts index 98ad4ee..1b8a447 100644 --- a/frontend/src/i18n/locales/hu.ts +++ b/frontend/src/i18n/locales/hu.ts @@ -162,6 +162,14 @@ const hu: Translations = { // ── License Success ──────────────────────────────── licenseSuccess: { + verifyingTitle: 'Hozzáférés ellenőrzése', + verifyingSubtitle: 'Ellenőrizzük a fiókodat, mielőtt megnyitjuk a térképet.', + verifyingDescription: 'Ez fizetés után általában csak néhány másodperc.', + activationDelayedTitle: 'Fizetés beérkezett', + activationDelayedSubtitle: 'A hozzáférés még aktiválás alatt van.', + activationDelayedDescription: + 'Még nem tudtuk megerősíteni a fiók frissítését. Frissíts hamarosan, vagy írj a supportnak, ha a hozzáférés nem jelenik meg.', + stayOnPricing: 'Maradás az áraknál', title: 'Benne vagy.', subtitle: 'Az élethosszig tartó hozzáférésed most aktív.', description: 'Teljes hozzáférés minden funkcióhoz, minden irányítószámhoz, egész Angliában.', @@ -268,7 +276,7 @@ const hu: Translations = { carDesc: ' autóval, a tipikus sebességek és az úthálózat alapján.', bicycleDesc: ' kerékpárral, kerékpárbarát útvonalakon.', walkingDesc: ' gyalog, sétálóutakon és járdákon.', - mainDesc: 'Megmutatja, mennyi időbe telik a kiválasztott úticél elérése az egyes területekről', + mainDesc: 'Megmutatja az utazási időt a kiválasztott célponttól az egyes területekig.', sliderHint: 'Használd a csúszkát a maximális ingazási idő beállításához.', }, @@ -353,8 +361,8 @@ const hu: Translations = { viewProperties: '{{count}} ingatlan megtekintése', viewPropertiesShort: 'Ingatlanok megtekintése', priceHistory: 'Ártörténet', - journeysFrom: 'Utazások innen: {{label}}', - to: 'Ide: {{destination}}', + journeysFrom: 'Utazási idők ehhez: {{label}}', + to: 'Innen: {{destination}}', noJourneyData: 'Nincs elérhető utazási adat', viewOnGoogleMaps: 'Megtekintés a Google Maps-en', walk: 'Gyalog', @@ -414,18 +422,18 @@ const hu: Translations = { // ── Home Page ────────────────────────────────────── home: { - heroEyebrow: 'Vevőknek, akik azt kérdezik: „hol is kezdjem?”', - heroTitle1: 'Találd meg az irányítószámokat', - heroTitle2: 'amelyek illenek az életedhez', - heroTitle3: 'Nem csak azokat a környékeket, amelyeket már ismersz.', + heroEyebrow: 'Először találd meg, hol érdemes keresni', + heroTitle1: 'Ne keress tovább', + heroTitle2: 'rossz helyeken', + heroTitle3: 'Mielőtt a hirdetések beszűkítik a keresést.', heroSubtitle: - 'A londoni városrészeken, ingázó településeken és regionális városokon át Angliában túl sok hely van ahhoz, hogy egyenként kutasd át őket.', + 'Találd meg azokat az irányítószámokat, ahol a költségvetésed, az ingázásod és a mindennapjaid összeérnek.', heroDescription: - 'Állítsd be a költségvetést, ingázást, iskolákat, biztonságot, zajt, internetet és életstílust. A Perfect Postcode átnézi Anglia irányítószámait, és megmutatja azokat a helyeket is, amelyeket sosem írtál volna be egy ingatlanportálra.', - exploreTheMap: 'Megfelelő irányítószámok keresése', - seeTheDifference: 'Így működik', - productDemoLabel: 'Perfect Postcode termékdemó', - playProductDemo: 'Perfect Postcode termékdemó lejátszása', + 'A Perfect Postcode először minden irányítószámot megszűr, így csak ott mész megtekintésre, ahol tényleg működhet.', + exploreTheMap: 'Mutasd, hol keressek', + seeTheDifference: 'Demó megtekintése', + productDemoLabel: 'Nézd meg, hogyan találod meg először, hol keress', + playProductDemo: '„Hol keress” demó lejátszása', scrollToProductDemo: 'Ugrás a termékdemóhoz', showcaseHeader: 'Így működik', showcaseContext: 'Így működik a Perfect Postcode', @@ -433,44 +441,43 @@ const hu: Translations = { showcaseFeatureNoiseShort: 'Zaj', showcaseFeatureSchoolsShort: 'Iskolák', showcaseFeatureTravelShort: 'Utazás', - showcaseGoodPrimariesNearby: '{{count}}+ jó általános iskola a közelben', - showcaseWithinRail: '{{count}} percen belül vasúthoz', - showcaseMatchingHomesLabel: 'Illeszkedő otthonok', - showcaseMatchingHomes: '{{value}} illeszkedő otthon', + showcaseGoodPrimariesNearby: '{{count}}+ jó vagy kiváló általános iskola a közelben', + showcaseWithinRail: '{{count}} percen belül egy állomástól', + showcaseMatchingHomesLabel: 'Illeszkedő irányítószámok', + showcaseMatchingHomes: '{{value}} illeszkedő irányítószám', showcaseMedianPrice: '{{value}} medián', showcaseJourneyRoutes: 'Útvonalak', showcaseNearby: '{{value}} a közelben', showcasePoliticalVoteShare: 'Politikai szavazatarány', - showcaseLotsMore: '...és még sok más', + showcaseLotsMore: 'További környékadatok', showcaseMinutes: '{{count}} perc', showcaseSendShortlist: 'Küldd el a szűkített listát', showcaseDownloadXlsx: '.xlsx letöltése', showcaseTopThree: 'Top 3', - showcaseScoutBullet1: - 'Járd be az utcákat, mielőtt a hirdetéskeresés leszűkíti a lehetőségeidet.', + showcaseScoutBullet1: 'Ellenőrizd az utcát, mielőtt hirdetésfigyelőkre hagyatkozol.', showcaseScoutBullet2: 'Valódi bejárati ajtótól teszteld az ingázást, ne csak városrésznévből.', showcaseScoutBullet3: 'Bizonyítékokkal a kezedben hasonlítsd össze a megtekintéseket.', showcaseStep1Tab: 'Szűrés', - showcaseStep1Title: 'A homályos igényekből pontos keresés lesz', + showcaseStep1Title: 'Állítsd be, minek kell működnie', showcaseStep1Body: - 'Állítsd be, mi számít, és pontosan lásd, hogy minden feltétel hány nem megfelelő irányítószámot zár ki a keresésből.', + 'Add hozzá a költségvetést, ingázást, iskolákat, biztonságot, zajt és helyi részleteket. Figyeld, ahogy a rossz irányítószámok kiesnek.', showcaseStep1Chip1: 'Csendes utcák', - showcaseStep1Chip2: 'Kiváló általános iskolák', + showcaseStep1Chip2: 'Jó általános iskolák a közelben', showcaseStep1Chip3: '£500k alatt', showcaseStep1VennCenter: 'Mindhárom feltételt teljesítő irányítószámok', showcaseStep2Tab: 'Egyeztetés', - showcaseStep2Title: 'A térkép olyan helyeket hoz felszínre, amelyeket be sem írtál volna', + showcaseStep2Title: 'Nézd meg a fennmaradó helyeket', showcaseStep2Body: - 'Ismert területnevek helyett illeszkedés alapján pásztázd végig Angliát. A rejtett, jó lehetőségek láthatóvá válnak, mielőtt a hirdetési portálok leszűkítenék a gondolkodásodat.', + 'Gyakorlati ellenőrzések alapján keress, ne ismerős nevek szerint. A térkép megmutatja, mely irányítószám-klasztereket érdemes először megnézni.', showcaseStep2Region: 'Nagy-London', showcaseStep2Sources: 'Land Registry · ONS · Ofsted · DfT', showcaseStep2ClustersLabel: 'Találati klaszterek', showcaseStep3Tab: 'Vizsgálat', - showcaseStep3Title: 'Nézd meg, miért került be egy irányítószám', + showcaseStep3Title: 'Ellenőrizd a bizonyítékokat', showcaseStep3Body: - 'Nyiss meg bármelyik megfelelő területet, és egy panelen ellenőrizd az árakat, biztonságot, iskolákat, internetet és kompromisszumokat, mielőtt rászánsz egy hétvégét.', - showcaseStep3HeaderArea: 'A te tökéletes irányítószámod', - showcaseStep3HeaderFit: 'Környékadatok', + 'Nyiss meg egy irányítószámot, és megtekintés előtt nézd meg az árat, ingázást, iskolákat, bűnözést, internetet és kompromisszumokat.', + showcaseStep3HeaderArea: 'Szűkített irányítószám', + showcaseStep3HeaderFit: 'Mi működik', showcaseStep3Stat1Label: 'Eladási ár trend', showcaseStep3Stat2Label: 'Bűnözési ráta', showcaseStep3Stat2Value: 'Borough-átlag alatt', @@ -480,34 +487,33 @@ const hu: Translations = { showcaseStep3Stat5Label: 'Általános iskolák', showcaseStep3Stat5Value: '3 „outstanding” 1 mérföldön belül', showcaseStep4Tab: 'Felderítés', - showcaseStep4Title: 'Nézd meg személyesen', + showcaseStep4Title: 'Vidd ki a listát az utcára', showcaseStep4Body: - 'Vigyél magaddal három megalapozott kiindulópontot a való világba. Sétáld be az utcákat, próbáld ki az ingázást, és kontextussal hasonlítsd össze a megtekintéseket.', + 'Exportáld az ellenőrzésre érdemes irányítószámokat, próbáld ki az ingázást, járd be az utcákat, és mentett kontextussal hasonlítsd össze a megtekintéseket.', showcaseStep4FileName: 'areas-to-scout.xlsx', showcaseStep4ExportLabel: 'Exportálás Excelbe', showcaseStep4ColPostcode: 'Irányítószám', showcaseStep4ColScore: 'Egyezés', showcaseStep4ColCommute: 'Ingázás', showcaseStep4ColPrice: 'Medián eladási ár', - showcaseStep4Conclusion: 'Innen már el tudod indítani a keresést.', - statProperties: 'korábbi eladás', - statFilters: 'kombinálható szűrő', + showcaseStep4Conclusion: 'Exportálj egy szűkített listát, és kezdd el ellenőrizni az utcákat.', + statProperties: 'HM Land Registry eladás', + statFilters: 'mód a térkép szűkítésére', statEvery: 'Minden', - statPostcodeInEngland: 'irányítószám Angliában', - ourPhilosophy: 'Az életedből indulj ki, ne egy irányítószámból', + statPostcodeInEngland: 'aktív irányítószám Angliában', + ourPhilosophy: 'Ne azokkal a városokkal kezdj, amelyeket már ismersz.', philosophyP1: - 'A legtöbb ingatlanoldal először azt kérdezi, hol szeretnél élni. Londonban ez különösen nehéz, de ugyanez a probléma egész Angliában megjelenik: a vevők néhány ismert helyből indulnak ki, majd külön füleken ellenőrzik az ingázást, iskolákat, bűnözést, Street View-t, internetet és eladási árakat.', + 'A legtöbb keresés egy helynévvel indul, aztán reméli, hogy megjelennek a jó otthonok. Ez kihagyja a nehezebb kérdést: mely helyeken érdemes valójában keresni?', philosophyP2: - 'A Perfect Postcode megfordítja a keresést. Mondd meg a térképnek, mi számít, és megmutatja a megfelelő irányítószámokat, indoklással együtt. Előbb az adatok, aztán a helyszíni benyomás.', + 'A Perfect Postcode még a hirdetési oldal előtt indul. Állítsd be, mit kell támogatnia egy helynek, majd nézd meg először azokat az irányítószámokat, amelyek megérdemlik a figyelmedet.', streetTitle: 'A helyek utcáról utcára változnak', streetIntro: - 'A nagy környéknevek elrejtik a fontos részleteket: az állomás melyik oldalát, az útzajt, az iskolákat, a pontos ingázást és a valódi eladási árakat.', - streetCard1Title: 'Találd meg a kihagyott környékeket', - streetCard1Body: - 'Hozd felszínre azokat az irányítószámokat, amelyek megfelelnek a feltételeidnek, ne csak ismert nevekre vagy ajánlásokra hagyatkozz.', - streetCard2Title: 'Lásd a kompromisszumokat megtekintés előtt', + 'Az állomás jó oldala, egy zajos út vagy egyetlen iskolakörzet is megváltoztathatja a keresést. A területnevek mindezt elsimítják.', + streetCard1Title: 'Lépj ki az ismerős nevek csapdájából', + streetCard1Body: 'Találj irányítószám-szintű egyezéseket a már listázott helyeken kívül.', + streetCard2Title: 'Ismerd meg a kompromisszumokat, mielőtt elindulsz', streetCard2Body: - 'Hasonlítsd össze az árat, méretet, ingázást, biztonságot, iskolákat, internetet, zajt és energiahatékonyságot, mielőtt hétvégéket töltesz megtekintésekkel.', + 'Megtekintések foglalása előtt ellenőrizd az árat, ingázást, zajt, iskolákat, biztonságot, internetet és közeli szolgáltatásokat.', othersVs: 'Mások vs.', checkMyPostcode: 'Ingatlanportálok', areaGuides: 'Irányítószám-riportok', @@ -517,11 +523,11 @@ const hu: Translations = { compAreaDataSub: '(bűnözés, iskolák, zaj, internet, szolgáltatások)', compPropertyData: 'Ingatlanszintű előzmények', compPropertyDataSub: '(eladási árak, EPC, alapterület, becsült érték)', - compFilters: '56 együtt működő szűrő', - compFiltersSub: '(nem egy irányítószám vagy hirdetés egyszerre)', - ctaTitle: 'Ne találgasd, hol vegyél.', + compFilters: 'Költségvetés, ingázás, iskolák, biztonság és helyi adatok együtt', + compFiltersSub: '(költségvetés + ingázás + iskolák + biztonság + helyi kontextus)', + ctaTitle: 'Találd meg, hol érdemes keresni, mielőtt megtekintéseket foglalsz.', ctaDescription: - 'Készíts listát olyan irányítószámokból, amelyek illenek a valós életedhez, majd nézd meg őket személyesen.', + 'Készíts irányítószám-listát abból, ami számít, majd ellenőrizd személyesen az utcákat.', }, // ── Pricing Page ─────────────────────────────────── @@ -602,7 +608,7 @@ const hu: Translations = { dsCrimeName: 'Utcaszintű bűnözési adatok', dsCrimeOrigin: 'data.police.uk', dsCrimeUse: - 'Utcaszintű bűnözési adatok 2023-tól 2025-ig, éves átlagokba összegezve LSOA-nként és bűncselekménytípusonként (erőszak, betörés, közösségellenes magatartás, kábítószer, járműbűnözés stb.).', + 'Utcaszintű bűnözési adatok éves átlagokba összegezve LSOA-nként és bűncselekménytípusonként (erőszak, betörés, közösségellenes magatartás, kábítószer, járműbűnözés stb.).', dsOsmName: 'OpenStreetMap POI-k', dsOsmOrigin: 'OpenStreetMap contributors / Geofabrik', dsOsmUse: @@ -618,7 +624,7 @@ const hu: Translations = { dsTowName: 'Országos, erdőn kívüli fák térképe', dsTowOrigin: 'Forest Research / Defra NCEA', dsTowUse: - 'Fa lombkorona-poligonok magányos fákhoz, facsoportokhoz és kisebb erdőfoltokhoz Angliában. Itt az ingatlancímek körüli utcaszintű fasűrűség becslésére használjuk.', + 'Fa lombkorona-poligonok magányos fákhoz, facsoportokhoz és kisebb erdőfoltokhoz Angliában. Itt az irányítószám-középpontok körüli lombkorona-fedettségi percentilisek becslésére használjuk.', dsNaptanName: 'NaPTAN (Tömegközlekedési megállók)', dsNaptanOrigin: 'Department for Transport', dsNaptanUse: @@ -771,6 +777,10 @@ const hu: Translations = { receiveNewsletter: 'Hírlevél fogadása', needHelp: 'Segítségre van szükséged? Írj nekünk:', responseTime: 'Általában 24 órán belül válaszolunk.', + shareLinksTitle: 'Megosztott hivatkozások', + noShareLinksYet: 'Még nincsenek megosztott hivatkozások', + copyShareLink: 'Megosztott hivatkozás másolása', + clicksLabel: 'kattintás', }, // ── Saved Page ───────────────────────────────────── @@ -921,6 +931,7 @@ const hu: Translations = { 'Current energy rating': 'Jelenlegi energetikai minősítés', 'Potential energy rating': 'Potenciális energetikai minősítés', 'Interior height (m)': 'Belmagasság (m)', + 'Street tree density percentile': 'Utcai fasűrűségi percentilis', // ─ Feature names (Transport) ─ 'Travel time to nearest train or tube station (min)': @@ -1114,6 +1125,471 @@ const hu: Translations = { ' years': ' év', ' rooms': ' szoba', }, + + seo: { + 'Property price map': 'Ingatlan ártérkép', + 'Compare property prices across every postcode in England': + 'Hasonlítsa össze az ingatlanárakat az összes angliai irányítószám között', + 'Property price map for England - Compare postcodes before viewing': + 'Ingatlan ártérkép Angliában - Hasonlítsa össze az irányítószámokat a megtekintés előtt', + 'Compare sold prices, estimated current value, price per square metre and local context across English postcodes before searching listings.': + 'Hasonlítsa össze az eladási árakat, a becsült aktuális értéket, a négyzetméterenkénti árat és a helyi kontextust az angol irányítószámok között, mielőtt keresni kezdene az adatok között.', + 'Perfect Postcode maps sold prices, estimated current value, price per square metre, property type, floor area, tenure, and local context so buyers can find realistic search areas before opening listing portals.': + 'A Perfect Postcode feltérképezi az eladási árakat, a becsült jelenlegi értéket, a négyzetméterenkénti árat, az ingatlan típusát, az alapterületet, a tulajdonjogot és a helyi környezetet, így a vásárlók reális keresési területeket találhatnak, mielőtt megnyitnák a listát tartalmazó portálokat.', + 'Screen historical sale prices and current-value estimates by postcode.': + 'A korábbi eladási árak és a becsült aktuális érték megjelenítése irányítószám szerint.', + 'Compare value with commute, schools, broadband, crime, noise, and amenities.': + 'Hasonlítsa össze az értéket az ingázás, az iskolák, a szélessáv, a bűnözés, a zaj és a szolgáltatások értékével.', + 'Build a shortlist before spending weekends on viewings.': + 'Állítson össze egy szűkített listát, mielőtt a hétvégét nézegetéssel tölti.', + 'Find postcodes that fit the budget before listings appear': + 'A listák megjelenése előtt keresse meg a költségvetésnek megfelelő irányítószámokat', + 'Start with a maximum price and property type, then colour the map by price per square metre or estimated current price. This helps reveal areas where similar homes have historically traded within reach, even when there are no live listings today.': + 'Kezdje a maximális árral és az ingatlantípussal, majd színezze ki a térképet négyzetméterár vagy becsült aktuális ár alapján. Ez segít feltárni azokat a területeket, ahol korábban hasonló otthonokkal kereskedtek elérhető közelségben, még akkor is, ha ma még nincsenek élő listák.', + 'Filter by last known sale price, estimated current value, property type, tenure, and floor area.': + 'Szűrés az utolsó ismert eladási ár, a becsült jelenlegi érték, az ingatlan típusa, birtoklása és alapterülete alapján.', + 'Compare nearby postcodes using the same criteria instead of relying on area reputation.': + 'Hasonlítsa össze a közeli irányítószámokat ugyanazokkal a kritériumokkal ahelyett, hogy a terület hírnevére hagyatkozna.', + 'Use the results as a shortlist for listing alerts, local research, and viewings.': + 'Az eredményeket rövid listaként használja a riasztások listázásához, a helyi kutatásokhoz és a megtekintésekhez.', + 'Separate cheap from good value': 'Különítse el az olcsót a jó értéktől', + 'A lower price can reflect smaller homes, weaker transport, more noise, or fewer local services. The map keeps those trade-offs visible so the cheapest postcode isn’t automatically treated as the best option.': + 'Az alacsonyabb ár kisebb lakásokat, gyengébb közlekedést, nagyobb zajt vagy kevesebb helyi szolgáltatást tükrözhet. A térkép láthatóan tartja ezeket a kompromisszumokat, így a legolcsóbb irányítószámot nem kezeli automatikusan a legjobb megoldásként.', + 'Start from area value, not listing availability': + 'Kezdje a terület értékével, ne a rendelkezésre állás felsorolásával', + 'Listing portals only show homes for sale today. A postcode-level property price map lets you compare wider areas, understand local price patterns, and avoid missing places where the next suitable listing might appear.': + 'A listás portálokon ma csak az eladó lakások jelennek meg. Az irányítószám-szintű ingatlanártérkép segítségével szélesebb területeket hasonlíthat össze, megértheti a helyi ármintákat, és elkerülheti, hogy a következő helyeken megjelenjen a megfelelő hirdetés.', + 'Use prices alongside real constraints': 'Használja az árakat valós korlátok mellett', + 'Budget rarely matters on its own. Perfect Postcode combines price filters with travel time, school quality, property size, energy performance, local environment, and services so your shortlist reflects how you actually want to live.': + 'A költségvetés ritkán számít önmagában. A Perfect Postcode az árszűrőket kombinálja az utazási idővel, az iskola minőségével, az ingatlan méretével, az energiahatékonysággal, a helyi környezettel és a szolgáltatásokkal, így a szűkített lista tükrözi, hogyan szeretne ténylegesen élni.', + 'What the price data is for': 'Mire szolgálnak az áradatok', + 'Use the map to compare areas and spot search candidates. It isn’t a valuation, mortgage decision, survey, legal search, or live listing feed.': + 'Használja a térképet a területek összehasonlításához és a helyszíni kereséshez. Ez nem értékbecslés, jelzáloghitel-döntés, felmérés, jogi keresés vagy élő lista.', + 'How to validate a promising area': 'Hogyan érvényesítsünk egy ígéretes területet', + 'Once a postcode looks promising, check current listings, sold-price comparables, agent details, flood searches, legal packs, surveys, and local authority information before making a decision.': + 'Ha egy irányítószám ígéretesnek tűnik, a döntés meghozatala előtt ellenőrizze az aktuális listákat, az eladási árak összehasonlító adatait, az ügynökök adatait, az árvízkereséseket, a jogi csomagokat, a felméréseket és a helyi hatóságok adatait.', + 'Is this a replacement for Rightmove or Zoopla?': + 'Ez helyettesíti a Rightmove-ot vagy a Zoopla-t?', + 'No. Use it before and alongside listing portals. Perfect Postcode helps decide where to look; listing portals show what’s currently for sale.': + 'Nem. Használja a hirdetési portálok előtt és mellett. A Perfect Postcode segít eldönteni, hol keressen; a hirdetési portálok megmutatják, mi van jelenleg eladó.', + 'Can I compare price with schools or commute time?': + 'Összehasonlíthatom az árat az iskolák árával vagy az ingázási idővel?', + 'Yes. Price filters can be combined with travel-time, schools, crime, broadband, road-noise, amenities, and environment filters.': + 'Igen. Az árszűrők kombinálhatók az utazási idő, az iskolák, a bűnözés, a szélessáv, az útzaj, a szolgáltatások és a környezet szűrőivel.', + 'Does the map cover all of the UK?': 'A térkép lefedi az egész Egyesült Királyságot?', + 'The current product focuses on England because several core property and postcode datasets are England-specific.': + 'A jelenlegi termék Angliára összpontosít, mivel számos alapvető tulajdon- és irányítószám-adatkészlet Anglia-specifikus.', + 'Birmingham property search guide': 'Birmingham ingatlankeresési útmutató', + 'A worked example for balancing price, commute, and family trade-offs.': + 'Működő példa az ár, az ingázás és a családi kompromisszumok kiegyensúlyozására.', + 'Data sources and coverage': 'Adatforrások és lefedettség', + 'See which datasets sit behind the postcode filters and where they have limits.': + 'Tekintse meg, mely adatkészletek ülnek az irányítószám-szűrők mögött, és hol vannak korlátai.', + Methodology: 'Módszertan', + 'Understand how the map is intended to support shortlisting, not replace due diligence.': + 'Értse meg, hogy a térkép hogyan támogatja a szűkített listák felvételét, és nem helyettesíti a kellő gondosságot.', + 'Postcode checker': 'Irányítószám-ellenőrző', + 'Check one postcode before you spend time on a viewing.': + 'Ellenőrizze az egyik irányítószámot, mielőtt a megtekintéssel töltene időt.', + 'Explore the property map': 'Fedezze fel az ingatlantérképet', + 'Postcode property search': 'Irányítószám ingatlan keresés', + 'Find postcodes that match your property search criteria': + 'Keresse az ingatlankeresési kritériumoknak megfelelő irányítószámokat', + 'Postcode property search - Find areas that match your criteria': + 'Irányítószámú ingatlankeresés – Keresse meg a kritériumainak megfelelő területeket', + 'Search every postcode by budget, property type, floor area, tenure, commute, schools, crime, broadband, noise, parks and local amenities.': + 'Keressen minden irányítószámot költségvetés, ingatlantípus, alapterület, birtokviszony, ingázás, iskolák, bűnözés, szélessáv, zaj, parkok és helyi szolgáltatások alapján.', + 'Search every postcode by budget, property type, size, tenure, commute, schools, crime, broadband, noise, parks, and local amenities instead of checking areas one at a time.': + 'Keressen minden irányítószámon költségvetés, ingatlantípus, méret, birtoklás, ingázás, iskolák, bűnözés, szélessáv, zaj, parkok és helyi szolgáltatások szerint, ahelyett, hogy egyenként ellenőrizné a területeket.', + 'Filter England-wide postcode data from one map.': + 'Szűrje le az angliai irányítószámadatokat egyetlen térképről.', + 'Shortlist unfamiliar areas with comparable evidence.': + 'Sorolja fel az ismeretlen területeket összehasonlítható bizonyítékokkal.', + 'Save and share search areas before booking viewings.': + 'Mentse és ossza meg a keresési területeket a megtekintések lefoglalása előtt.', + 'Turn a broad brief into postcode candidates': + 'Változtassa meg a széles tájékoztatót irányítószám jelöltekké', + 'Enter the practical constraints first: budget, property size, tenure, travel time, school needs, broadband, and tolerance for road noise or crime levels. The map removes places that fail those constraints and keeps the remaining options comparable.': + 'Először adja meg a gyakorlati korlátokat: költségvetés, ingatlan mérete, birtoklási ideje, utazási idő, iskolai igények, szélessáv, valamint a közúti zaj- vagy bűnözési szint toleranciája. A térkép eltávolítja azokat a helyeket, amelyek nem felelnek meg ezeknek a korlátozásoknak, és a fennmaradó lehetőségeket összehasonlíthatóvá teszi.', + 'Relax one constraint at a time': 'Egyszerre lazítson egy kényszert', + 'When the search becomes too narrow, loosen a single filter and watch which postcodes reappear. This makes compromise explicit instead of relying on guesswork.': + 'Ha a keresés túl szűk lesz, lazítson meg egyetlen szűrőt, és figyelje, mely irányítószámok jelennek meg újra. Ez egyértelművé teszi a kompromisszumot ahelyett, hogy a találgatásokra hagyatkozna.', + 'Turn vague areas into specific postcodes': + 'A homályos területeket konkrét irányítószámokká alakíthatja', + 'Broad town or borough searches hide large differences between streets. Perfect Postcode helps you move from a general area to postcodes that satisfy your hard requirements.': + 'A nagyvárosi vagy kerületi keresések nagy különbségeket rejtenek az utcák között. A Perfect Postcode segítségével az általános területről a szigorú követelményeknek megfelelő irányítószámok felé léphet.', + 'Keep trade-offs visible': 'Tartsa láthatóan a kompromisszumokat', + 'When there are too many or too few matches, adjust one constraint at a time and see exactly which postcodes reappear. That makes compromises explicit instead of relying on guesswork.': + 'Ha túl sok vagy túl kevés az egyezés, állítson be egyszerre egy kényszert, és nézze meg, hogy pontosan mely irányítószámok jelennek meg újra. Ez egyértelművé teszi a kompromisszumokat ahelyett, hogy a találgatásokra hagyatkozna.', + 'Why postcode-level comparison matters': 'Miért számít az irányítószám-szintű összehasonlítás?', + 'Two nearby postcodes can differ on schools, road noise, transport access, property mix, and price. Comparing at postcode level reduces the chance of treating a whole town as one uniform market.': + 'Két közeli irányítószám különbözhet az iskoláktól, az út zajától, a közlekedési lehetőségektől, az ingatlanösszetételtől és az ártól függően. Az irányítószám szintű összehasonlítás csökkenti annak esélyét, hogy egy egész várost egységes piacként kezeljenek.', + 'How to use the results': 'Hogyan használjuk fel az eredményeket', + 'Treat matching postcodes as a research queue: check live listings, visit streets, confirm schools and admissions, and review current official sources.': + 'Kezelje az egyező irányítószámokat kutatási sorként: ellenőrizze az élő listákat, látogasson el az utcákra, erősítse meg az iskolákat és a felvételiket, és tekintse át az aktuális hivatalos forrásokat.', + 'Can I save a postcode property search?': 'Elmenthetem az irányítószámú ingatlankeresést?', + 'Yes. Licensed users can save searches and return to them later. Saved searches are designed for shortlists and comparison notes.': + 'Igen. Az engedéllyel rendelkező felhasználók elmenthetik a kereséseket, és később visszatérhetnek hozzájuk. A mentett keresések szűkített listákhoz és összehasonlító megjegyzésekhez készültek.', + 'Can I search without knowing the area?': 'Kereshetek a környék ismerete nélkül?', + 'Yes. The map is designed to surface unfamiliar areas that match practical constraints, not just places you already know.': + 'Igen. A térképet úgy tervezték, hogy a gyakorlati korlátoknak megfelelő, ismeretlen területeket is felszínre hozzon, nem csak a már ismert helyeket.', + 'Are the results live property listings?': 'Az eredmények élő ingatlanhirdetések?', + 'No. The tool compares postcode data and historical/contextual property signals. You still need listing portals for current availability.': + 'Nem. Az eszköz összehasonlítja az irányítószámadatokat és a történelmi/kontextuális tulajdonságjeleket. Az aktuális elérhetőséghez továbbra is listáznia kell a portálokat.', + 'Manchester property search guide': 'Manchester ingatlankeresési útmutató', + 'A regional guide for narrowing a broad search around Greater Manchester.': + 'Regionális útmutató a Nagy-Manchester környéki keresés szűkítéséhez.', + 'Start a postcode search': 'Indítsa el az irányítószám keresést', + 'Commute property search': 'Ingatlan keresés', + 'Search for places to live by commute time': 'Keressen lakóhelyeket az ingázási idő szerint', + 'Commute property search - Find places to live by travel time': + 'Ingatlankeresés – Keressen lakóhelyeket az utazási idő alapján', + 'Filter postcodes by commute time, then compare price, schools, safety, broadband, road noise, parks and property data on one map.': + 'Szűrje az irányítószámokat az ingázási idő szerint, majd hasonlítsa össze az árakat, az iskolákat, a biztonságot, a szélessávot, az útzajokat, a parkokat és az ingatlanadatokat egy térképen.', + 'Filter postcodes by modelled car, cycling, walking, and public transport travel times, then layer on property price, schools, crime, broadband, noise, and local amenities.': + 'Szűrje az irányítószámokat a modellezett autók, kerékpározás, gyaloglás és tömegközlekedési eszközök utazási ideje alapján, majd rétegezze az ingatlanárakat, az iskolákat, a bűnözést, a szélessávot, a zajt és a helyi létesítményeket.', + 'Compare reachable postcodes by realistic travel-time bands.': + 'Hasonlítsa össze az elérhető irányítószámokat valós utazási idősávok szerint.', + 'Search by destination first, then filter for property and neighbourhood fit.': + 'Először keressen cél szerint, majd szűrjön az ingatlanra és a környékre.', + 'Avoid areas that look close on a map but fail the daily journey.': + 'Kerülje el azokat a területeket, amelyek a térképen közelinek tűnnek, de nem teszik lehetővé a napi utazást.', + 'Start with the destination that matters': 'Kezdje a céllal, ami számít', + 'Choose a commute destination, transport mode, and time range, then add the property filters. This prevents a cheap-looking area from reaching the shortlist if the daily journey doesn’t work.': + 'Válasszon egy ingázási célt, közlekedési módot és időtartományt, majd adja hozzá a tulajdonságszűrőket. Ez megakadályozza, hogy egy olcsónak tűnő terület kerüljön a szűkített listára, ha a napi utazás nem működik.', + 'Compare the commute against the rest of daily life': + 'Hasonlítsa össze az ingázást a mindennapi élet többi részével', + 'A fast commute isn’t enough if the property size, school context, safety threshold, broadband, or road-noise exposure don’t fit. The map keeps those signals side by side.': + 'A gyors ingázás nem elég, ha az ingatlan mérete, iskolai környezet, biztonsági küszöb, szélessáv vagy közúti zajnak való kitettség nem felel meg. A térkép egymás mellett tartja ezeket a jeleket.', + 'Commute from postcodes, not just place names': + 'Ingázzon irányítószámok alapján, nem csak helynevek alapján', + 'Two streets in the same town can have very different station access, road routes, and public transport options. Postcode-level travel-time filtering keeps that difference visible.': + 'Ugyanabban a városban két utcának nagyon eltérő lehet az állomás megközelítése, útvonala és tömegközlekedési lehetőségei. Az irányítószám-szintű utazási idő szűrés ezt a különbséget láthatóvá teszi.', + 'Balance journey time with the rest of the move': + 'Egyensúlyozza az utazási időt a mozgás többi részével', + 'A fast commute only helps if the area also fits your budget, housing needs, school preferences, safety threshold, broadband requirement, and tolerance for road noise.': + 'A gyors ingázás csak akkor segít, ha a terület megfelel az Ön költségvetésének, lakhatási igényeinek, iskolai preferenciáinak, biztonsági küszöbének, szélessávú követelményeinek és az útzaj toleranciájának.', + 'How travel-time filters should be interpreted': + 'Hogyan kell értelmezni az utazási időszűrőket', + 'Travel-time modelling is useful for comparing areas consistently. Before committing, check current timetables, disruption patterns, parking, cycling conditions, and walking routes.': + 'Az utazási idő modellezése hasznos a területek következetes összehasonlításához. Mielőtt elkötelezné magát, ellenőrizze az aktuális menetrendeket, a zavarási mintákat, a parkolást, a kerékpározási feltételeket és a gyalogos útvonalakat.', + 'Why commute filters are combined with property data': + 'Miért kombinálják az ingázási szűrőket a tulajdonságadatokkal?', + 'Commute search is most useful when it removes impossible areas while still showing whether the remaining options are affordable and liveable.': + 'Az ingázási keresés akkor a leghasznosabb, ha eltávolítja a lehetetlen területeket, miközben továbbra is megmutatja, hogy a fennmaradó lehetőségek megfizethetőek és élhetőek-e.', + 'Can I compare car, cycling, walking, and public transport?': + 'Összehasonlíthatom az autót, a kerékpározást, a gyaloglást és a tömegközlekedést?', + 'The product supports multiple travel modes where precomputed destination data is available.': + 'A termék többféle utazási módot támogat, ahol előre kiszámított céladatok állnak rendelkezésre.', + 'Are travel times exact?': 'Pontosak az utazási idők?', + 'No. Treat them as a consistent comparison model, then verify the real route before making viewing or purchase decisions.': + 'Nem. Kezelje őket konzisztens összehasonlítási modellként, majd ellenőrizze a valódi útvonalat, mielőtt megtekintési vagy vásárlási döntést hozna.', + 'Can I combine commute filters with schools and price?': + 'Kombinálhatom az ingázási szűrőket az iskolákkal és az árakkal?', + 'Yes. The commute filter can be layered with property price, size, schools, broadband, crime, amenities, and environmental signals.': + 'Igen. Az ingázási szűrő rétegezhető az ingatlanárral, a mérettel, az iskolákkal, a szélessávú internettel, a bűnözéssel, a szolgáltatásokkal és a környezeti jelekkel.', + 'Bristol property search guide': 'Bristol ingatlankeresési útmutató', + 'A worked example for balancing city access, price, and local context.': + 'Működő példa a városi hozzáférés, az ár és a helyi környezet egyensúlyának megteremtésére.', + 'Search by commute time': 'Keresés ingázási idő szerint', + 'Schools and property search': 'Iskolák és ingatlankeresés', + 'Find property search areas with schools and family trade-offs in view': + 'Keressen ingatlankeresési területeket iskolákkal és családi kompromisszumokkal', + 'School property search - Compare postcodes for family moves': + 'Iskolai ingatlankeresés – Hasonlítsa össze a családi költözés irányítószámait', + 'Compare nearby schools, property size, prices, parks, safety, commute and local amenities before building a viewing shortlist.': + 'Hasonlítsa össze a közeli iskolákat, az ingatlanok méretét, az árakat, a parkokat, a biztonságot, az ingázást és a helyi szolgáltatásokat, mielőtt összeállít egy megtekintési listát.', + 'Compare nearby Ofsted ratings, education context, property size, budget, safety, parks, commute, and local amenities before narrowing your viewing shortlist.': + 'Hasonlítsa össze a közeli Ofsted értékeléseket, az oktatási környezetet, az ingatlan méretét, a költségvetést, a biztonságot, a parkokat, az ingázást és a helyi szolgáltatásokat, mielőtt szűkítené a megtekintési listát.', + 'Filter for nearby school quality alongside housing requirements.': + 'Szűrje a közeli iskola minőségét a lakhatási követelmények mellett.', + 'Compare family-friendly trade-offs across unfamiliar postcodes.': + 'Hasonlítsa össze a családbarát kompromisszumokat az ismeretlen irányítószámok között.', + 'Use the map as a shortlist tool before checking admissions and catchments.': + 'Használja a térképet szűkített lista eszközeként, mielőtt ellenőrizné a befogadásokat és a vízgyűjtőket.', + 'Use school context without ignoring the home': + 'Használja az iskolai környezetet anélkül, hogy figyelmen kívül hagyná az otthont', + 'Start with property size, budget, and commute constraints, then layer in nearby school quality and local context. This prevents school-led searches from hiding affordability or daily-life problems.': + 'Kezdje az ingatlan méretével, költségvetésével és ingázási korlátaival, majd rétegezzen a közeli iskola minőségét és a helyi környezetet. Ez megakadályozza, hogy az iskola által vezetett keresések elrejtse a megfizethetőséget vagy a mindennapi élet problémáit.', + 'Verify admissions before deciding': 'A döntés előtt ellenőrizze a felvételt', + 'School data can point to promising areas, but admissions rules and catchments can change. Confirm current arrangements with schools and local authorities.': + 'Az iskolai adatok ígéretes területekre utalhatnak, de a felvételi szabályok és a vonzáskörzetek változhatnak. Erősítse meg a jelenlegi megállapodásokat az iskolákkal és a helyi hatóságokkal.', + 'School quality is one part of the shortlist': + 'Az iskolai minőség a szűkített lista egyik része', + 'Perfect Postcode helps you compare nearby school data with the other practical constraints that shape a family move: space, price, commute, parks, safety, and local services.': + 'A Perfect Postcode segítségével összehasonlíthatja a közeli iskola adatait a családi költözést meghatározó egyéb gyakorlati korlátokkal: hely, ár, ingázás, parkok, biztonság és helyi szolgáltatások.', + 'Check catchments before making decisions': 'Döntéshozatal előtt ellenőrizze a vízgyűjtőket', + 'Admissions rules and catchment boundaries can change. Use postcode-level school data to find promising areas, then verify current admissions details with the school or local authority.': + 'A felvételi szabályok és a vízgyűjtő határok változhatnak. Használja az irányítószám-szintű iskolai adatokat az ígéretes területek megtalálásához, majd ellenőrizze az aktuális felvételi adatokat az iskolával vagy a helyi hatóságokkal.', + 'How to treat school filters': 'Hogyan kezeljük az iskolai szűrőket', + 'Use school filters to narrow research, not to assume admission eligibility. Ratings, distance, admissions criteria, and school capacity should all be checked with current official sources.': + 'Használja az iskolai szűrőket a kutatás szűkítésére, ne pedig a felvételi jogosultság feltételezésére. A minősítéseket, a távolságot, a felvételi kritériumokat és az iskolai kapacitást ellenőrizni kell az aktuális hivatalos forrásokból.', + 'Family trade-offs to compare': 'Összehasonlítandó családi kompromisszumok', + 'Combine schools with parks, road noise, crime, property size, commute, broadband, and price so the shortlist reflects the whole move.': + 'Kombináld az iskolákat a parkokkal, az útzajjal, a bűnözéssel, az ingatlan méretével, az ingázással, a szélessávval és az árakkal, hogy a szűkített lista tükrözze az egész lépést.', + 'Does this show school catchment guarantees?': + 'Ez mutatja az iskolai vonzáskörzeti garanciákat?', + 'No. It helps identify promising areas, but catchments and admissions must be verified with the school or local authority.': + 'Nem. Segít azonosítani az ígéretes területeket, de a vonzáskörzeteket és a befogadásokat ellenőrizni kell az iskolával vagy a helyi hatósággal.', + 'Can I combine school filters with parks and safety?': + 'Kombinálhatom az iskolai szűrőket parkokkal és biztonsággal?', + 'Yes. School-aware search can be combined with crime, parks, commute, price, property size, and local services.': + 'Igen. Az iskolatudatos keresés kombinálható bűnözéssel, parkokkal, ingázással, árral, ingatlanmérettel és helyi szolgáltatásokkal.', + 'Is Ofsted the only school signal?': 'Az Ofsted az egyetlen iskolai jelzés?', + 'No single score should decide a move. Use the map as a starting point, then review current school information in detail.': + 'Egyetlen pontszám sem dönthet a lépésről. Használja a térképet kiindulási pontként, majd tekintse át részletesen az aktuális iskolai információkat.', + 'See where education, property, transport, and environment data comes from.': + 'Tekintse meg, honnan származnak az oktatási, ingatlan-, közlekedési és környezeti adatok.', + 'Explore school-aware searches': 'Fedezze fel az iskolatudatos kereséseket', + 'Check postcode data before you book a viewing': + 'A megtekintés lefoglalása előtt ellenőrizze az irányítószám adatait', + 'Postcode checker - Property, crime, broadband, noise and schools': + 'Irányítószám-ellenőrző – Ingatlanok, bűnözés, szélessáv, zaj és iskolák', + 'Check postcode-level property prices, EPC data, crime, broadband, road noise, schools, council tax, amenities and travel-time context.': + 'Ellenőrizze az irányítószám-szintű ingatlanárakat, az EPC-adatokat, a bűnözést, a szélessávot, az útzajt, az iskolákat, az önkormányzati adót, a kényelmi szolgáltatásokat és az utazási időt.', + 'Review property prices, EPC context, crime, broadband, road noise, local amenities, schools, deprivation, council tax, and travel-time data from one postcode-first map.': + 'Tekintse át az ingatlanárakat, az EPC-környezetet, a bűnözést, a szélessávot, az utak zaját, a helyi létesítményeket, az iskolákat, a nélkülözést, az önkormányzati adót és az utazási időre vonatkozó adatokat egyetlen irányítószám-először térképen.', + 'Check multiple local signals before visiting a street.': + 'Ellenőrizze több helyi jelet, mielőtt felkeres egy utcát.', + 'Use official and open datasets rather than reputation alone.': + 'Használjon hivatalos és nyílt adatkészleteket, ne csak a hírnevet.', + 'Compare postcodes consistently across England.': + 'Hasonlítsa össze következetesen az irányítószámokat Angliában.', + 'Check the street before spending a viewing slot': + 'Nézze meg az utcát, mielőtt megtekintési időt tölt el', + 'Use the postcode checker to review price history, local context, amenities, schools, and environment signals before you commit time to visiting.': + 'Használja az irányítószám-ellenőrzőt az árelőzmények, a helyi környezet, a szolgáltatások, az iskolák és a környezeti jelek áttekintésére, mielőtt időt szánna a látogatásra.', + 'Compare neighbouring postcodes': 'Hasonlítsa össze a szomszédos irányítószámokat', + 'If one postcode looks promising, compare adjacent areas using the same filters. This often reveals whether a concern is street-specific or part of a wider pattern.': + 'Ha egy irányítószám ígéretesnek tűnik, hasonlítsa össze a szomszédos területeket ugyanazokkal a szűrőkkel. Ez gyakran felfedi, hogy a probléma utcaspecifikus vagy egy szélesebb minta része.', + 'Useful before and alongside listing portals': 'Hasznos a hirdetési portálok előtt és mellett', + 'Listing photos rarely tell you enough about the surrounding street. Perfect Postcode gives you an evidence-led postcode check before you commit time to a viewing.': + 'A felsorolt ​​fotók ritkán mondanak eleget a környező utcáról. A Perfect Postcode bizonyítékokkal vezérelt irányítószám-ellenőrzést tesz lehetővé, mielőtt időt szánna a megtekintésre.', + 'A screening tool, not professional advice': 'Szűrőeszköz, nem szakmai tanács', + 'The data is designed for shortlisting and comparison. Any purchase still needs current listing checks, legal due diligence, flood searches, lender requirements, and survey findings.': + 'Az adatok szűkítésre és összehasonlításra készültek. Bármely vásárláshoz továbbra is szükség van az aktuális listázási ellenőrzésekre, a jogi átvilágításra, az árvízkutatásokra, a hitelezői követelményekre és a felmérések eredményeire.', + 'What a postcode check can catch': 'Amit egy irányítószám-ellenőrzés elkaphat', + 'A postcode check can surface price context, environmental signals, nearby amenities, and other local indicators that are easy to miss in a listing.': + 'Az irányítószám-ellenőrzés feltárhatja az árkontextust, a környezeti jelzéseket, a közeli létesítményeket és más olyan helyi mutatókat, amelyeket könnyen el lehet hagyni az adatlapon.', + 'What a postcode check can’t prove': 'Amit az irányítószám-ellenőrzés nem tud bizonyítani', + 'It can’t confirm the condition of a home, future development, legal title, lender requirements, or current street-level experience. Those still need direct checks.': + 'Nem tudja megerősíteni az otthon állapotát, a jövőbeni fejlesztést, a jogcímet, a hitelezői követelményeket vagy a jelenlegi utcai szintű tapasztalatot. Még mindig közvetlen ellenőrzésre van szükségük.', + 'Can I use the checker before a viewing?': 'Használhatom az ellenőrzőt megtekintés előtt?', + 'Yes. That’s one of the main use cases: screen the postcode first, then decide whether the viewing is worth the time.': + 'Igen. Ez az egyik fő felhasználási eset: először szűrje le az irányítószámot, majd döntse el, hogy megéri-e a megtekintése.', + 'Does the checker include exact property condition?': + 'Az ellenőrző pontos ingatlanállapotot tartalmaz?', + 'No. Property condition requires listing details, surveys, and direct inspection.': + 'Nem. Az ingatlan állapota megköveteli a részleteket, felméréseket és közvetlen ellenőrzést.', + 'Can I compare multiple postcodes?': 'Összehasonlíthatok több irányítószámot?', + 'Yes. The map is designed for consistent comparison across postcodes.': + 'Igen. A térképet az irányítószámok következetes összehasonlítására tervezték.', + 'Check postcodes on the map': 'Ellenőrizze az irányítószámokat a térképen', + 'Regional guide': 'Regionális útmutató', + 'How to compare Birmingham postcodes before a property search': + 'Birmingham irányítószámainak összehasonlítása ingatlankeresés előtt', + 'Birmingham property search - Compare postcodes by price and commute': + 'Birminghami ingatlankeresés – Hasonlítsa össze az irányítószámokat ár és ingázás alapján', + 'Use postcode-level data to compare Birmingham property prices, commute trade-offs, schools, crime, broadband and local amenities before viewings.': + 'Használja az irányítószám-szintű adatokat a birminghami ingatlanárak, az ingázási kompromisszumok, az iskolák, a bűnözés, a szélessáv és a helyi szolgáltatások összehasonlítására a megtekintés előtt.', + 'Birmingham searches can change quickly from street to street. Use postcode-level evidence to compare budget, commute, schools, noise, crime, and local services before deciding where to watch listings.': + 'A birminghami keresések gyorsan változhatnak utcáról utcára. Használjon irányítószám-szintű bizonyítékokat a költségvetés, az ingázás, az iskolák, a zaj, a bűnözés és a helyi szolgáltatások összehasonlítására, mielőtt eldönti, hol nézze meg az adatokat.', + 'Start with commute corridors': 'Kezdje az ingázási folyosókkal', + 'Choose the destination that matters, such as a workplace, station, university, or hospital, then compare reachable postcodes by transport mode and travel-time band.': + 'Válassza ki a fontos úti célt, például munkahelyet, állomást, egyetemet vagy kórházat, majd hasonlítsa össze az elérhető irányítószámokat közlekedési mód és utazási idősáv szerint.', + 'Use commute time as a hard filter before judging price.': + 'Használja az ingázási időt kemény szűrőként az ár megítélése előtt.', + 'Compare public transport with car, cycling, or walking where available.': + 'Hasonlítsa össze a tömegközlekedést autóval, kerékpározással vagy gyalogos közlekedéssel, ahol lehetséges.', + 'Check the route manually before booking viewings.': + 'A megtekintések lefoglalása előtt ellenőrizze az útvonalat manuálisan.', + 'Compare price with property type': 'Hasonlítsa össze az árat az ingatlan típusával', + 'Median prices alone can be misleading if the local property mix changes. Add property type, tenure, floor area, and price filters so similar areas are compared fairly.': + 'A medián árak önmagukban félrevezetőek lehetnek, ha a helyi ingatlanösszetétel megváltozik. Adjon hozzá ingatlantípust, birtoklási időt, alapterületet és árszűrőt, hogy a hasonló területeket tisztességesen hasonlítsa össze.', + 'Keep family and environment trade-offs visible': + 'A család és a környezet közötti kompromisszumok láthatóak legyenek', + 'Layer school context, parks, road noise, broadband, and crime signals on top of the property filters. That makes it easier to decide which compromises are acceptable.': + 'Az iskolai környezetet, a parkokat, az útzajokat, a szélessávot és a bűnjeleket az ingatlanszűrők tetejére helyezze. Ez megkönnyíti annak eldöntését, hogy mely kompromisszumok elfogadhatók.', + 'Can Perfect Postcode tell me the best area in Birmingham?': + 'Meg tudja mondani a Perfect Postcode Birmingham legjobb környékét?', + 'No tool can decide the best area for every buyer. It helps compare postcodes against your own constraints so you can build a better shortlist.': + 'Egyetlen eszköz sem tudja eldönteni a legjobb területet minden vásárló számára. Segít összehasonlítani az irányítószámokat saját korlátaival, így jobb szűkített listát készíthet.', + 'Should I use this instead of local knowledge?': 'Ezt használjam a helyismeret helyett?', + 'No. Use it to find and compare candidates, then validate them with visits, local advice, listings, and official checks.': + 'Nem. Használja a jelöltek megkeresésére és összehasonlítására, majd érvényesítse őket látogatásokkal, helyi tanácsokkal, listákkal és hatósági ellenőrzésekkel.', + 'Compare price patterns before looking at live listings.': + 'Hasonlítsa össze az ármintákat, mielőtt megnézné az élő listákat.', + 'Search by travel time and then layer on property requirements.': + 'Keressen utazási idő szerint, majd rétegezzen az ingatlanigényeket.', + 'Understand how to interpret filters and limitations.': + 'Ismerje meg a szűrők és korlátozások értelmezését.', + 'Compare Birmingham postcodes': 'Hasonlítsa össze a birminghami irányítószámokat', + 'How to compare Manchester postcodes for a property search': + 'Hogyan hasonlítsuk össze a manchesteri irányítószámokat ingatlankereséshez', + 'Manchester property search - Compare postcodes before viewing': + 'Manchesteri ingatlankeresés - Hasonlítsa össze az irányítószámokat a megtekintés előtt', + 'Compare Manchester-area postcodes by budget, commute, property type, schools, broadband, crime, noise and amenities before booking viewings.': + 'Hasonlítsa össze Manchester környéki irányítószámait költségvetés, ingázás, ingatlantípus, iskolák, szélessáv, bűnözés, zaj és szolgáltatások szerint, mielőtt lefoglalná a megtekintéseket.', + 'A Manchester-area search can span city-centre, suburban, and commuter options. Perfect Postcode helps keep each postcode comparable against the same property and daily-life constraints.': + 'A Manchester környéki keresés kiterjedhet a városközpontra, a külvárosra és az ingázási lehetőségekre. A Perfect Postcode segítségével az egyes irányítószámok összehasonlíthatók ugyanazokkal a tulajdonságokkal és a mindennapi élet korlátozásával.', + 'Use travel time to define the real search area': + 'Használja az utazási időt a valódi keresési terület meghatározásához', + 'Start from the destinations that matter, then compare reachable postcodes rather than assuming every nearby place has the same practical journey.': + 'Kezdje a fontos célpontoktól, majd hasonlítsa össze az elérhető irányítószámokat, ahelyett, hogy azt feltételezné, hogy minden közeli hely ugyanazt a gyakorlati utat járja be.', + 'Compare housing requirements before lifestyle preferences': + 'Hasonlítsa össze a lakhatási igényeket az életmódbeli preferenciák előtt', + 'Filter by property type, floor area, tenure, and price before judging amenities. That keeps the shortlist grounded in homes that could realistically work.': + 'Szűrje az ingatlan típusa, alapterülete, birtoklási ideje és ár alapján, mielőtt megítélné a felszereltséget. Ezáltal a szűkített lista olyan otthonokra épül, amelyek reálisan működhetnek.', + 'Check local context consistently': 'Következetesen ellenőrizze a helyi környezetet', + 'Use broadband, crime, road noise, parks, schools, and amenities as comparable signals. Then validate the strongest candidates with current local checks.': + 'Használja a szélessávot, a bűnözést, az útzajt, a parkokat, iskolákat és létesítményeket hasonló jelként. Ezután érvényesítse a legerősebb jelölteket az aktuális helyi ellenőrzésekkel.', + 'Can I compare Manchester suburbs with city-centre postcodes?': + 'Összehasonlíthatom Manchester külvárosait a városközpont irányítószámaival?', + 'Yes. Use the same budget, property, commute, and local-context filters across both so trade-offs remain visible.': + 'Igen. Ugyanazt a költségkeret-, tulajdon-, ingázási és helyi kontextusszűrőt használja mindkettőben, így a kompromisszumok láthatóak maradnak.', + 'Does this include live listings?': 'Ez magában foglalja az élő listákat?', + 'No. Use it to decide where to search, then use listing portals for current homes for sale.': + 'Nem. Használja annak eldöntésére, hogy hol keressen, majd használja az aktuális eladó lakások listázási portálját.', + 'Move from a broad search brief to specific postcode candidates.': + 'Térjen át a széles körű keresési összefoglalóról a konkrét irányítószám jelöltekre.', + 'Data sources': 'Adatforrások', + 'Review the datasets used for property and local-context comparison.': + 'Tekintse át a tulajdonságok és a helyi kontextus összehasonlításához használt adatkészleteket.', + 'Check a single postcode before arranging a viewing.': + 'A megtekintés megszervezése előtt ellenőrizze az irányítószámot.', + 'Compare Manchester postcodes': 'Hasonlítsa össze a Manchester irányítószámait', + 'How to compare Bristol postcodes before a property search': + 'Hogyan hasonlítsuk össze Bristol irányítószámait ingatlankeresés előtt', + 'Bristol property search - Compare postcodes by commute and price': + 'Ingatlankeresés Bristolban – Hasonlítsa össze az irányítószámokat ingázás és ár alapján', + 'Compare Bristol postcodes by price, commute, property size, schools, broadband, crime, road noise, parks and amenities before viewings.': + 'Hasonlítsa össze Bristol irányítószámait ár, ingázás, ingatlan mérete, iskolák, szélessáv, bűnözés, közúti zaj, parkok és szolgáltatások szerint a megtekintés előtt.', + 'Bristol searches often involve sharp trade-offs between price, journey time, property size, and neighbourhood context. A postcode-first comparison keeps those trade-offs visible.': + 'A bristoli keresések gyakran éles kompromisszumot foglalnak magukban az ár, az utazási idő, az ingatlan mérete és a környék kontextusa között. Az irányítószám-első összehasonlítás láthatóvá teszi ezeket a kompromisszumokat.', + 'Make commute constraints explicit': 'Tegye egyértelművé az ingázási korlátozásokat', + 'If access to the centre, a station, hospital, university, or business park matters, use travel-time filters first and then compare the remaining postcodes by property data.': + 'Ha fontos a központ, állomás, kórház, egyetem vagy üzleti park elérése, először használja az utazási idő szűrőit, majd hasonlítsa össze a fennmaradó irányítószámokat ingatlanadatok alapján.', + 'Compare value, not just headline price': 'Hasonlítsa össze az értéket, ne csak a főárat', + 'Use price, property type, and floor-area filters together. This helps distinguish lower-cost areas from areas that simply contain smaller or different homes.': + 'Használja együtt az ár-, ingatlantípus- és alapterület-szűrőket. Ez segít megkülönböztetni az alacsonyabb költségű területeket azoktól a területektől, amelyek egyszerűen kisebb vagy eltérő otthonokat tartalmaznak.', + 'Screen environmental and local-service signals': + 'Környezeti és helyi szolgáltatási jelek képernyője', + 'Road noise, parks, broadband, crime, and amenities can affect whether a property works day to day. Use them as screening criteria before booking viewings.': + 'Az útzaj, a parkok, a szélessáv, a bűnözés és a szolgáltatások befolyásolhatják az ingatlan napi működését. Használja őket szűrési kritériumként a megtekintések lefoglalása előtt.', + 'Can I use this for commuter villages around Bristol?': + 'Használhatom ezt a Bristol környéki ingázó falvakban?', + 'Yes, where the relevant postcode and travel-time data is available. Always verify routes and services manually before deciding.': + 'Igen, ahol a vonatkozó irányítószám és utazási idő rendelkezésre áll. Döntés előtt mindig ellenőrizze manuálisan az útvonalakat és a szolgáltatásokat.', + 'Can this tell me whether a listing is good value?': + 'Ez meg tudja mondani, hogy egy hirdetés jó érték-e?', + 'It can provide area context, but a specific listing still needs comparable sales, condition checks, survey findings, and professional advice where appropriate.': + 'Megadhatja a területi kontextust, de egy adott adatlapnak továbbra is szüksége van összehasonlítható eladásokra, állapotellenőrzésekre, felmérési eredményekre és adott esetben szakmai tanácsra.', + 'Search by reachable postcodes before refining by budget and local context.': + 'Keressen elérhető irányítószámok alapján, mielőtt finomítaná a költségvetés és a helyi kontextus alapján.', + 'Understand price patterns before setting listing alerts.': + 'Ismerje meg az ármintákat, mielőtt beállítja a listára vonatkozó figyelmeztetéseket.', + 'Privacy and security': 'Adatvédelem és biztonság', + 'How account and saved-search data is handled in the product.': + 'Hogyan történik a fiók és a mentett keresési adatok kezelése a termékben.', + 'Compare Bristol postcodes': 'Hasonlítsa össze a Bristol irányítószámait', + 'Trust and coverage': 'Bizalom és fedezet', + 'Perfect Postcode data sources and coverage': 'Perfect Postcode adatforrások és lefedettség', + 'Perfect Postcode data sources - Property, schools, commute and local context': + 'Perfect Postcode-adatforrások – ingatlanok, iskolák, ingázás és helyi környezet', + 'Review the public and official datasets used by Perfect Postcode, including property prices, EPC, schools, crime, broadband, noise and travel-time context.': + 'Tekintse át a Perfect Postcode által használt nyilvános és hivatalos adatkészleteket, beleértve az ingatlanárakat, az EPC-t, az iskolákat, a bűnözést, a szélessávot, a zajt és az utazási időt.', + 'Perfect Postcode combines property, transport, education, environment, and local-service datasets so buyers can compare postcodes consistently. This page explains what the data is for and where it should be verified.': + 'A Perfect Postcode egyesíti az ingatlanokat, a közlekedést, az oktatást, a környezetet és a helyi szolgáltatási adatkészleteket, így a vásárlók következetesen összehasonlíthatják az irányítószámokat. Ez az oldal elmagyarázza, hogy mire szolgálnak az adatok, és hol kell azokat ellenőrizni.', + 'Property and housing context': 'Ingatlan és lakáskörnyezet', + 'The product uses property transaction and housing-context datasets to support filters such as sale price, property type, tenure, floor area, energy performance, and estimated current value.': + 'A termék ingatlantranzakciókat és lakáskontextusú adatkészleteket használ az olyan szűrők támogatására, mint az eladási ár, az ingatlan típusa, a birtoklás, az alapterület, az energiateljesítmény és a becsült aktuális érték.', + 'Use these fields to compare areas, not as a formal valuation.': + 'Ezeket a mezőket területek összehasonlítására használja, ne formális értékelésként.', + 'Check current listings, title information, lender requirements, and survey results before buying.': + 'Vásárlás előtt ellenőrizze az aktuális listákat, a címadatokat, a hitelezői követelményeket és a felmérés eredményeit.', + 'Schools, safety, broadband, and environment': 'Iskolák, biztonság, szélessáv és környezet', + 'Local-context filters help compare postcodes on signals that affect daily life. They should be treated as screening data and checked against current official sources for decisions.': + 'A helyi kontextusszűrők segítenek összehasonlítani a mindennapi életet befolyásoló jelek irányítószámait. Ezeket szűrési adatokként kell kezelni, és a döntések meghozatalához össze kell hasonlítani a jelenlegi hivatalos forrásokkal.', + 'Travel-time data': 'Utazási idő adatok', + 'Travel-time filters are designed for consistent area comparison. Route availability, disruption, parking, walking access, and timetable details should be verified before committing to an area.': + 'Az utazási idő szűrőit a területek következetes összehasonlítására tervezték. Az útvonal elérhetőségét, a fennakadásokat, a parkolást, a gyalogos hozzáférést és a menetrend részleteit ellenőrizni kell, mielőtt elkötelezné magát egy adott területen.', + 'Why does coverage focus on England?': 'Miért fókuszál a tudósítás Angliára?', + 'Several core property, education, and local-context datasets are jurisdiction-specific. England coverage keeps comparisons more consistent.': + 'Számos alapvető tulajdon, oktatás és helyi kontextusú adatkészlet joghatóság-specifikus. Az angol lefedettség következetesebbé teszi az összehasonlításokat.', + 'How should I handle stale or missing data?': + 'Hogyan kezeljem az elavult vagy hiányzó adatokat?', + 'Use the map as a shortlist tool. If a postcode matters, verify the latest details with current official sources and direct local checks.': + 'Használja a térképet szűkített lista eszközeként. Ha az irányítószám számít, ellenőrizze a legfrissebb adatokat aktuális hivatalos forrásokból, és közvetlen helyi ellenőrzéseket végezzen.', + 'How filters and comparisons should be interpreted.': + 'Hogyan kell értelmezni a szűrőket és az összehasonlításokat.', + 'Review postcode-level context before a viewing.': + 'Megtekintés előtt tekintse át az irányítószám-szintű kontextust.', + 'How saved searches and account data are handled.': + 'A mentett keresések és fiókadatok kezelésének módja.', + 'How to use the map': 'Hogyan kell használni a térképet', + 'Methodology for postcode property research': 'Az irányítószám-tulajdonkutatás módszertana', + 'Perfect Postcode methodology - How to interpret postcode property data': + 'Perfect Postcode módszertan – Hogyan értelmezzük az irányítószám tulajdoni adatokat', + 'Understand how to use postcode filters, property estimates, travel-time data, school context and local signals as a home-buying shortlist tool.': + 'Ismerje meg, hogyan használhatja az irányítószám-szűrőket, az ingatlanbecsléseket, az utazási időre vonatkozó adatokat, az iskolai környezetet és a helyi jelzéseket lakásvásárlási szűkített eszközként.', + 'Perfect Postcode is designed to make area shortlisting more evidence-led. It doesn’t replace estate agents, surveyors, conveyancers, lenders, school admissions teams, or local authority checks.': + 'A Perfect Postcode célja, hogy a területek szűkített listáját több bizonyítékra irányítsa. Nem helyettesíti az ingatlanügynököket, a földmérőket, a szállítókat, a hitelezőket, az iskolai felvételi csoportokat vagy a helyi hatóságok ellenőrzéseit.', + 'Start with hard constraints': 'Kezdje kemény korlátokkal', + 'Begin with non-negotiables such as budget, property type, floor area, commute time, and essential services. This removes impossible postcodes before softer preferences are considered.': + 'Kezdje a nem alku tárgyát képező dolgokkal, mint például a költségvetés, az ingatlan típusa, az alapterület, az ingázási idő és az alapvető szolgáltatások. Ez eltávolítja a lehetetlen irányítószámokat, mielőtt a lágyabb beállításokat figyelembe venné.', + 'Use colour layers for trade-offs': 'Használjon színrétegeket a kompromisszumokhoz', + 'After filtering, colour the remaining map by one signal at a time: price per square metre, road noise, school context, commute time, broadband, or crime. This makes trade-offs easier to discuss.': + 'Szűrés után színezze ki a fennmaradó térképet egy-egy jellel: négyzetméterár, útzaj, iskolai környezet, ingázási idő, szélessáv vagy bűnözés. Ez megkönnyíti a kompromisszumok megvitatását.', + 'Measure what’s working': 'Mérje meg, mi működik', + 'Use Search Console and analytics to track which public pages are indexed, which queries produce impressions, and which pages convert visitors into dashboard exploration. Review Core Web Vitals after every substantial frontend change.': + 'Használja a Search Console-t és az Analytics szolgáltatást annak nyomon követésére, hogy mely nyilvános oldalak kerülnek indexelésre, mely lekérdezések eredményeznek megjelenítéseket, és mely oldalak váltják át a látogatókat irányítópult-felfedezéssé. Minden lényeges kezelőfelület-módosítás után tekintse át a Core Web Vitals-t.', + 'Can the tool choose the right postcode for me?': + 'Ki tudja választani az eszköz a számomra megfelelő irányítószámot?', + 'No. It helps compare evidence and reduce the search area. The final decision needs direct visits, current listings, legal checks, surveys, and personal judgement.': + 'Nem. Segít összehasonlítani a bizonyítékokat és csökkenteni a keresési területet. A végső döntéshez közvetlen látogatásokra, aktuális listákra, jogi ellenőrzésekre, felmérésekre és személyes ítéletekre van szükség.', + 'How should I use estimates?': 'Hogyan használjam a becsléseket?', + 'Use estimates as comparison signals, not as professional valuations or purchase advice.': + 'Használjon becsléseket összehasonlító jelként, ne pedig szakmai értékelésként vagy vásárlási tanácsként.', + 'Understand where key filters come from.': 'Ismerje meg, honnan származnak a kulcsszűrők.', + 'Apply the methodology to price-led area comparison.': + 'Alkalmazza a módszertant az árvezérelt terület-összehasonlításra.', + 'Apply the methodology to destination-led search.': + 'Alkalmazza a módszertant a célvezérelt keresésre.', + Trust: 'Bizalom', + 'Privacy and security for saved property searches': + 'Adatvédelem és biztonság a mentett ingatlankereséshez', + 'Perfect Postcode privacy and security - Saved searches and account data': + 'Perfect Postcode adatvédelem és biztonság – Mentett keresések és fiókadatok', + 'Learn how Perfect Postcode treats saved searches, account data and property research workflows with privacy and security in mind.': + 'Ismerje meg, hogyan kezeli a Perfect Postcode a mentett kereséseket, a fiókadatokat és a tulajdonkutatási munkafolyamatokat az adatvédelem és a biztonság szem előtt tartásával.', + 'Property research can reveal personal priorities, budgets, and locations. The product keeps public SEO pages separate from account-only areas and marks private dashboard/account routes as noindex.': + 'Az ingatlankutatás feltárhatja a személyes prioritásokat, a költségvetést és a helyszíneket. A termék elkülöníti a nyilvános keresőoptimalizálási oldalakat a csak fiókot tartalmazó területektől, és a privát irányítópult/fiókútvonalakat noindexként jelöli meg.', + 'Public pages and private areas are separated': + 'A nyilvános oldalak és a privát területek el vannak választva', + 'Marketing, methodology, guide, and support pages are indexable. Dashboard, account, saved searches, invites, and invitation routes are marked noindex or blocked from crawler access where appropriate.': + 'A marketing, a módszertan, az útmutató és a támogatási oldalak indexelhetők. Az irányítópult, a fiók, a mentett keresések, a meghívók és a meghívási útvonalak noindex-szel vannak megjelölve, vagy adott esetben blokkolva vannak a feltérképező robot számára.', + 'Saved search data is account-scoped': 'A mentett keresési adatok fiókra vonatkoznak', + 'Saved searches and properties are intended for signed-in use. They aren’t included in the public sitemap and shouldn’t be crawlable as public content.': + 'A mentett keresések és tulajdonságok bejelentkezett használatra szolgálnak. Nem szerepelnek a nyilvános webhelytérképen, és nyilvános tartalomként nem térképezhetők fel.', + 'Search measurement without exposing private data': + 'A mérési adatok keresése személyes adatok felfedése nélkül', + 'SEO measurement should happen on public pages using aggregated analytics and Search Console data. Private query parameters and account views shouldn’t become indexable landing pages.': + 'A keresőoptimalizálás mérésének nyilvános oldalakon kell történnie, összesített elemzési és Search Console-adatok felhasználásával. A privát lekérdezési paraméterek és a fióknézetek nem válhatnak indexelhető céloldalakká.', + 'Are saved searches listed in the sitemap?': + 'A mentett keresések szerepelnek az oldaltérképen?', + 'No. Public SEO pages are listed; account and saved-search routes are intentionally excluded.': + 'Nem. A nyilvános SEO oldalak felsorolva vannak; a fiók és a mentett keresési útvonalak szándékosan ki vannak zárva.', + 'Can private dashboard URLs appear in search?': + 'Megjelenhetnek a privát irányítópult-URL-ek a keresésben?', + 'They shouldn’t be indexed. The server marks private routes noindex and the sitemap only lists public pages.': + 'Nem szabad indexelni őket. A szerver a noindex privát útvonalakat jelöli meg, a webhelytérkép pedig csak a nyilvános oldalakat sorolja fel.', + 'How to use public postcode data responsibly.': + 'A nyilvános irányítószámadatok felelősségteljes használata.', + 'What data powers the public comparisons.': + 'Milyen adatok alapozzák meg a nyilvános összehasonlításokat.', + 'Explore public postcode-search workflows.': + 'Fedezze fel a nyilvános irányítószám-keresési munkafolyamatokat.', + }, }; export default hu; diff --git a/frontend/src/i18n/locales/zh.ts b/frontend/src/i18n/locales/zh.ts index cc8b488..b3ac3a5 100644 --- a/frontend/src/i18n/locales/zh.ts +++ b/frontend/src/i18n/locales/zh.ts @@ -158,6 +158,14 @@ const zh: Translations = { // ── License Success ──────────────────────────────── licenseSuccess: { + verifyingTitle: '正在验证访问权限', + verifyingSubtitle: '解锁地图前,我们正在检查您的账户。', + verifyingDescription: '结账后通常只需几秒钟。', + activationDelayedTitle: '已收到付款', + activationDelayedSubtitle: '访问权限仍在激活中。', + activationDelayedDescription: + '我们还无法确认账户更新。请稍后刷新;如果仍未显示访问权限,请联系支持。', + stayOnPricing: '留在价格页', title: '激活成功!', subtitle: '您的终身访问权限已生效。', description: '完整访问所有功能、所有邮编,覆盖整个英格兰。', @@ -262,7 +270,7 @@ const zh: Translations = { carDesc: '驾车出行,基于典型道路速度和路网计算。', bicycleDesc: '骑自行车出行,使用自行车友好路线。', walkingDesc: '步行出行,使用人行道和步行路线。', - mainDesc: '显示从每个区域到达所选目的地所需的时间', + mainDesc: '显示从所选目的地前往每个区域所需的时间。', sliderHint: '使用滑块设置您的最长通勤时间。', }, @@ -344,8 +352,8 @@ const zh: Translations = { viewProperties: '查看 {{count}} 处房产', viewPropertiesShort: '查看房产', priceHistory: '价格历史', - journeysFrom: '从 {{label}} 出发的路线', - to: '到 {{destination}}', + journeysFrom: '{{label}} 的出行时间', + to: '从 {{destination}} 出发', noJourneyData: '暂无出行数据', viewOnGoogleMaps: '在 Google Maps 上查看', walk: '步行', @@ -405,17 +413,16 @@ const zh: Translations = { // ── Home Page ────────────────────────────────────── home: { - heroEyebrow: '适合正在问“我到底该看哪里?”的买家', - heroTitle1: '找到真正', - heroTitle2: '适合您生活的邮编', - heroTitle3: '不只局限于您已经知道的区域。', - heroSubtitle: '从伦敦街区到通勤城镇和英格兰各地城市,可研究的地方太多,无法一个个筛查。', - heroDescription: - '设定预算、通勤、学校、安全、噪音、宽带和生活方式需求。Perfect Postcode 会扫描英格兰的邮编,显示真正匹配的地方,包括您从未想过要在房源网站上搜索的区域。', - exploreTheMap: '找到匹配的邮编', - seeTheDifference: '查看使用方式', - productDemoLabel: 'Perfect Postcode 产品演示', - playProductDemo: '播放 Perfect Postcode 产品演示', + heroEyebrow: '先找准该看哪里', + heroTitle1: '别再搜索', + heroTitle2: '不合适的地方', + heroTitle3: '在房源缩小您的选择之前。', + heroSubtitle: '找到预算、通勤和日常生活都匹配的邮编。', + heroDescription: 'Perfect Postcode 会先筛选每个邮编,让您只追踪真正合适地点的看房机会。', + exploreTheMap: '告诉我该看哪里', + seeTheDifference: '观看演示', + productDemoLabel: '了解如何先找准该看哪里', + playProductDemo: '播放“该看哪里”演示', scrollToProductDemo: '滚动到产品演示', showcaseHeader: '工作原理', showcaseContext: 'Perfect Postcode 的工作流程', @@ -423,42 +430,40 @@ const zh: Translations = { showcaseFeatureNoiseShort: '噪声', showcaseFeatureSchoolsShort: '学校', showcaseFeatureTravelShort: '出行', - showcaseGoodPrimariesNearby: '附近 {{count}}+ 所良好小学', - showcaseWithinRail: '{{count}} 分钟内到达铁路', - showcaseMatchingHomesLabel: '匹配房源', - showcaseMatchingHomes: '{{value}} 个匹配房源', + showcaseGoodPrimariesNearby: '附近 {{count}}+ 所良好或优秀小学', + showcaseWithinRail: '距车站 {{count}} 分钟内', + showcaseMatchingHomesLabel: '匹配邮编', + showcaseMatchingHomes: '{{value}} 个匹配邮编', showcaseMedianPrice: '{{value}} 中位数', showcaseJourneyRoutes: '出行路线', showcaseNearby: '附近 {{value}} 个', showcasePoliticalVoteShare: '政党得票份额', - showcaseLotsMore: '……以及更多', + showcaseLotsMore: '更多社区数据', showcaseMinutes: '{{count}} 分钟', showcaseSendShortlist: '发送候选名单', showcaseDownloadXlsx: '下载 .xlsx', showcaseTopThree: '前 3 名', - showcaseScoutBullet1: '在房源搜索缩小选择之前,先实地走走街道。', + showcaseScoutBullet1: '订阅房源提醒前,先核查街道。', showcaseScoutBullet2: '从真实门牌测试通勤,而不是只看行政区名称。', showcaseScoutBullet3: '带着已有证据比较看房结果。', showcaseStep1Tab: '筛选', - showcaseStep1Title: '把模糊需求变成精准搜索', - showcaseStep1Body: '设置真正重要的条件,并清楚看到每项要求为您排除了多少不合适的邮编。', + showcaseStep1Title: '设定必须满足的条件', + showcaseStep1Body: '加入预算、通勤、学校、安全、噪音和本地细节,看不合适的邮编逐个被筛掉。', showcaseStep1Chip1: '安静街道', - showcaseStep1Chip2: '顶级小学', + showcaseStep1Chip2: '附近优质小学', showcaseStep1Chip3: '£500,000 以内', showcaseStep1VennCenter: '同时满足三项条件的邮编', showcaseStep2Tab: '匹配', - showcaseStep2Title: '让地图浮现您原本不会输入的地方', - showcaseStep2Body: - '按匹配度扫描英格兰,而不是从熟悉的地名开始。房源门户缩小您的想象之前,隐藏的好区域会先显现出来。', + showcaseStep2Title: '查看剩下的可选地点', + showcaseStep2Body: '按实际条件搜索,而不是按熟悉地名搜索。地图会显示值得优先核查的邮编集群。', showcaseStep2Region: '大伦敦', showcaseStep2Sources: 'Land Registry · ONS · Ofsted · DfT', showcaseStep2ClustersLabel: '匹配集群', showcaseStep3Tab: '检查', - showcaseStep3Title: '查看某个邮编为什么入选', - showcaseStep3Body: - '打开任何匹配区域,在一个面板中查看价格、安全、学校、宽带和取舍,再决定是否花一个周末去实地看。', - showcaseStep3HeaderArea: '您的理想邮编', - showcaseStep3HeaderFit: '社区证据', + showcaseStep3Title: '核查依据', + showcaseStep3Body: '打开一个邮编,在看房前查看价格、通勤、学校、犯罪率、宽带和取舍。', + showcaseStep3HeaderArea: '候选邮编', + showcaseStep3HeaderFit: '匹配点', showcaseStep3Stat1Label: '成交价走势', showcaseStep3Stat2Label: '犯罪率', showcaseStep3Stat2Value: '低于本区平均水平', @@ -468,34 +473,31 @@ const zh: Translations = { showcaseStep3Stat5Label: '小学', showcaseStep3Stat5Value: '1英里内3所「优秀」', showcaseStep4Tab: '踏勘', - showcaseStep4Title: '亲自去看一看', - showcaseStep4Body: - '带着三个有数据支撑的起点走进现实。实地走街、测试通勤,并带着背景信息比较看房结果。', + showcaseStep4Title: '把候选名单带到实地', + showcaseStep4Body: '导出值得核查的邮编,测试通勤,走走街道,并用已保存的背景信息比较看房结果。', showcaseStep4FileName: 'areas-to-scout.xlsx', showcaseStep4ExportLabel: '导出到 Excel', showcaseStep4ColPostcode: '邮编', showcaseStep4ColScore: '匹配', showcaseStep4ColCommute: '通勤', showcaseStep4ColPrice: '成交中位价', - showcaseStep4Conclusion: '您可以从这里开始。', - statProperties: '历史成交记录', - statFilters: '可组合筛选条件', - statEvery: '覆盖', - statPostcodeInEngland: '英格兰每个邮编', - ourPhilosophy: '从生活需求出发,而不是从邮编出发', + showcaseStep4Conclusion: '导出候选名单,开始核查街道。', + statProperties: 'HM Land Registry 成交记录', + statFilters: '种缩小地图范围的方法', + statEvery: '每个', + statPostcodeInEngland: '英格兰活跃邮编', + ourPhilosophy: '别再从已经熟悉的城镇开始。', philosophyP1: - '大多数房产网站先问您想住哪里。在伦敦这个问题尤其困难,但英格兰各地都有同样的问题:买家通常只能从几个熟悉的地方开始,然后分别查询通勤、学校、犯罪率、街景、宽带和成交价。', + '大多数搜索先从地名开始,然后希望合适的房源会出现。这跳过了更难的问题:哪些地方真的值得搜索?', philosophyP2: - 'Perfect Postcode 反过来做搜索。告诉地图什么重要,它会显示符合条件的邮编,并解释为什么值得查看。先看数据,再去现场感受。', + 'Perfect Postcode 从房源网站之前开始。设定一个地方必须支持的生活条件,然后先查看最值得关注的邮编。', streetTitle: '每条街都可能不同', streetIntro: - '大的区域名称会掩盖关键细节:车站哪一侧、道路噪音、学校组合、真实通勤时间,以及类似房产的实际成交价。', - streetCard1Title: '发现您可能错过的区域', - streetCard1Body: - '根据您的条件找出匹配的邮编,而不是只依赖熟悉的地名、朋友推荐或“潜力区域”的宣传。', - streetCard2Title: '看房前先看清取舍', - streetCard2Body: - '在把周末花在看房之前,先比较价格、空间、通勤、安全、学校、宽带、噪音和能源评级。', + '车站的哪一侧、嘈杂道路或一个学校学区,都可能改变搜索结果。区域名称会抹平这些差异。', + streetCard1Title: '避开熟悉地名的陷阱', + streetCard1Body: '在已列入清单的地方之外,找到邮编级别的匹配项。', + streetCard2Title: '出发前先看清取舍', + streetCard2Body: '预约看房前,先核查价格、通勤、噪音、学校、安全、宽带和附近配套。', othersVs: '与其他平台对比', checkMyPostcode: '房源门户', areaGuides: '邮编报告', @@ -505,10 +507,10 @@ const zh: Translations = { compAreaDataSub: '(犯罪率、学校、噪音、宽带、设施)', compPropertyData: '房产级历史记录', compPropertyDataSub: '(成交价、EPC、面积、估值)', - compFilters: '56 项联动筛选', - compFiltersSub: '(不是一次查一个邮编或一个房源)', - ctaTitle: '别再猜哪里值得买。', - ctaDescription: '先建立符合真实生活需求的邮编候选名单,再去实地感受。', + compFilters: '预算、通勤、学校、安全和本地数据一起筛选', + compFiltersSub: '(预算 + 通勤 + 学校 + 安全 + 本地背景)', + ctaTitle: '预约看房前,先找到该看哪里。', + ctaDescription: '根据真正重要的条件建立邮编候选名单,再亲自核查街道。', }, // ── Pricing Page ─────────────────────────────────── @@ -585,7 +587,7 @@ const zh: Translations = { dsCrimeName: '街道级犯罪数据', dsCrimeOrigin: 'data.police.uk', dsCrimeUse: - '2023 年至 2025 年的街道级犯罪数据,按 LSOA 和犯罪类型(暴力犯罪、入室盗窃、反社会行为、毒品、车辆犯罪等)汇总为年均值。', + '街道级犯罪数据,按 LSOA 和犯罪类型(暴力犯罪、入室盗窃、反社会行为、毒品、车辆犯罪等)汇总为年均值。', dsOsmName: 'OpenStreetMap 兴趣点', dsOsmOrigin: 'OpenStreetMap contributors / Geofabrik', dsOsmUse: '涵盖大不列颠地区的商店、餐厅、医疗、休闲、旅游等兴趣点。', @@ -600,7 +602,7 @@ const zh: Translations = { dsTowName: '国家非林地树木地图', dsTowOrigin: 'Forest Research / Defra NCEA', dsTowUse: - '英格兰孤立树木、树群和小片林地的树冠多边形。此处用于估算房产地址周围街道级树木密度。', + '英格兰孤立树木、树群和小片林地的树冠多边形。此处用于估算邮编质心周围的树冠覆盖率百分位。', dsNaptanName: 'NaPTAN(公共交通站点)', dsNaptanOrigin: 'Department for Transport', dsNaptanUse: '英格兰各地铁路、公交、地铁/有轨电车、渡轮和机场的站点位置。', @@ -749,6 +751,10 @@ const zh: Translations = { receiveNewsletter: '接收新闻邮件', needHelp: '需要帮助?请发邮件至', responseTime: '我们通常在 24 小时内回复。', + shareLinksTitle: '已分享链接', + noShareLinksYet: '暂无已分享的链接', + copyShareLink: '复制分享链接', + clicksLabel: '点击', }, // ── Saved Page ───────────────────────────────────── @@ -891,6 +897,7 @@ const zh: Translations = { 'Current energy rating': '当前能源评级', 'Potential energy rating': '潜在能源评级', 'Interior height (m)': '室内层高(米)', + 'Street tree density percentile': '街道树木覆盖率百分位', // ─ Feature names (Transport) ─ 'Travel time to nearest train or tube station (min)': '到最近火车或地铁站的出行时间(分钟)', @@ -1083,6 +1090,390 @@ const zh: Translations = { ' years': ' 年', ' rooms': ' 间', }, + + seo: { + 'Property price map': '房产价格地图', + 'Compare property prices across every postcode in England': '比较英格兰每个邮政编码的房价', + 'Property price map for England - Compare postcodes before viewing': '英格兰房地产价格地图 - 查看前比较邮政编码', + 'Compare sold prices, estimated current value, price per square metre and local context across English postcodes before searching listings.': + '在搜索房源之前,比较各个英格兰邮政编码的售价、估计当前价值、每平方米价格和当地情况。', + 'Perfect Postcode maps sold prices, estimated current value, price per square metre, property type, floor area, tenure, and local context so buyers can find realistic search areas before opening listing portals.': + 'Perfect Postcode映射售价、估计当前价值、每平方米价格、房产类型、建筑面积、保有权和当地背景,以便买家在打开房源平台之前找到实际的搜索区域。', + 'Screen historical sale prices and current-value estimates by postcode.': + '按邮政编码筛选历史销售价格和当前价值估计。', + 'Compare value with commute, schools, broadband, crime, noise, and amenities.': + '将价值与通勤、学校、宽带、犯罪、噪音和便利设施进行比较。', + 'Build a shortlist before spending weekends on viewings.': '在周末观看之前先建立一个候选名单。', + 'Find postcodes that fit the budget before listings appear': '在列表出现之前查找符合预算的邮政编码', + 'Start with a maximum price and property type, then colour the map by price per square metre or estimated current price. This helps reveal areas where similar homes have historically traded within reach, even when there are no live listings today.': + '从最高价格和房产类型开始,然后按每平方米的价格或估计的当前价格为地图着色。这有助于揭示历史上类似房屋交易过的区域,即使现在没有实时挂牌房源。', + 'Filter by last known sale price, estimated current value, property type, tenure, and floor area.': + '按最后已知的销售价格、估计当前价值、房产类型、保有权和建筑面积进行筛选。', + 'Compare nearby postcodes using the same criteria instead of relying on area reputation.': + '使用相同的标准比较附近的邮政编码,而不是依赖区域声誉。', + 'Use the results as a shortlist for listing alerts, local research, and viewings.': + '使用结果作为列出警报、本地研究和查看的候选列表。', + 'Separate cheap from good value': '区分便宜和物有所值', + 'A lower price can reflect smaller homes, weaker transport, more noise, or fewer local services. The map keeps those trade-offs visible so the cheapest postcode isn’t automatically treated as the best option.': + '较低的价格可能反映出房屋较小、交通较弱、噪音较大或本地服务较少。地图使这些权衡显而易见,因此最便宜的邮政编码不会自动被视为最佳选择。', + 'Start from area value, not listing availability': '从面积价值开始,而不是列出可用性', + 'Listing portals only show homes for sale today. A postcode-level property price map lets you compare wider areas, understand local price patterns, and avoid missing places where the next suitable listing might appear.': + '房源平台仅显示今天待售的房屋。邮政编码级别的房产价格地图可让您比较更广泛的区域,了解当地的价格模式,并避免遗漏下一个合适的列表可能出现的位置。', + 'Use prices alongside real constraints': '使用价格和实际限制', + 'Budget rarely matters on its own. Perfect Postcode combines price filters with travel time, school quality, property size, energy performance, local environment, and services so your shortlist reflects how you actually want to live.': + '预算本身很少很重要。 Perfect Postcode 将价格过滤器与旅行时间、学校质量、房产规模、能源性能、当地环境和服务结合起来,因此您的候选名单反映了您真正想要的生活方式。', + 'What the price data is for': '价格数据的用途', + 'Use the map to compare areas and spot search candidates. It isn’t a valuation, mortgage decision, survey, legal search, or live listing feed.': + '使用地图比较区域并找到搜索候选者。它不是评估、抵押贷款决策、调查、法律搜索或实时列表源。', + 'How to validate a promising area': '如何验证有前景的领域', + 'Once a postcode looks promising, check current listings, sold-price comparables, agent details, flood searches, legal packs, surveys, and local authority information before making a decision.': + '一旦邮政编码看起来很有前途,请在做出决定之前检查当前列表、可比售价、代理商详细信息、洪水搜索、法律包、调查和地方当局信息。', + 'Is this a replacement for Rightmove or Zoopla?': '这是 Rightmove 或 Zoopla 的替代品吗?', + 'No. Use it before and alongside listing portals. Perfect Postcode helps decide where to look; listing portals show what’s currently for sale.': + '不可以。在房源平台之前和旁边使用它。Perfect Postcode有助于决定去哪里查找;房源平台显示当前正在出售的商品。', + 'Can I compare price with schools or commute time?': '我可以将价格与学校或通勤时间进行比较吗?', + 'Yes. Price filters can be combined with travel-time, schools, crime, broadband, road-noise, amenities, and environment filters.': + '是的。价格过滤器可以与旅行时间、学校、犯罪、宽带、道路噪音、便利设施和环境过滤器结合起来。', + 'Does the map cover all of the UK?': '地图涵盖了整个英国吗?', + 'The current product focuses on England because several core property and postcode datasets are England-specific.': + '当前产品主要针对英格兰,因为一些核心财产和邮政编码数据集是英格兰特定的。', + 'Birmingham property search guide': '伯明翰房产搜索指南', + 'A worked example for balancing price, commute, and family trade-offs.': '平衡价格、通勤和家庭权衡的有效示例。', + 'Data sources and coverage': '数据来源及覆盖范围', + 'See which datasets sit behind the postcode filters and where they have limits.': + '查看邮政编码过滤器后面的数据集以及它们的限制。', + Methodology: '方法论', + 'Understand how the map is intended to support shortlisting, not replace due diligence.': + '了解地图如何支持入围,而不是取代尽职调查。', + 'Postcode checker': '邮政编码检查器', + 'Check one postcode before you spend time on a viewing.': '在您花时间查看之前,请检查一个邮政编码。', + 'Explore the property map': '探索房产地图', + 'Postcode property search': '邮政编码属性搜索', + 'Find postcodes that match your property search criteria': '查找符合您的房产搜索条件的邮政编码', + 'Postcode property search - Find areas that match your criteria': '邮政编码属性搜索 - 查找符合您条件的区域', + 'Search every postcode by budget, property type, floor area, tenure, commute, schools, crime, broadband, noise, parks and local amenities.': + '按预算、房产类型、建筑面积、保有权、通勤、学校、犯罪、宽带、噪音、公园和当地设施搜索每个邮政编码。', + 'Search every postcode by budget, property type, size, tenure, commute, schools, crime, broadband, noise, parks, and local amenities instead of checking areas one at a time.': + '按预算、房产类型、面积、保有权、通勤、学校、犯罪、宽带、噪音、公园和当地设施搜索每个邮政编码,而不是一次检查一个区域。', + 'Filter England-wide postcode data from one map.': '从一张地图中过滤英格兰范围内的邮政编码数据。', + 'Shortlist unfamiliar areas with comparable evidence.': '将具有可比证据的不熟悉领域列入候选名单。', + 'Save and share search areas before booking viewings.': '在预订观看之前保存并共享搜索区域。', + 'Turn a broad brief into postcode candidates': '将广泛的简介转变为候选邮政编码', + 'Enter the practical constraints first: budget, property size, tenure, travel time, school needs, broadband, and tolerance for road noise or crime levels. The map removes places that fail those constraints and keeps the remaining options comparable.': + '首先输入实际限制:预算、房产规模、保有权、旅行时间、学校需求、宽带以及对道路噪音或犯罪水平的容忍度。该地图删除了不符合这些限制的地点,并保持其余选项的可比性。', + 'Relax one constraint at a time': '一次放松一项限制', + 'When the search becomes too narrow, loosen a single filter and watch which postcodes reappear. This makes compromise explicit instead of relying on guesswork.': + '当搜索范围变得太窄时,松开单个过滤器并观察哪些邮政编码重新出现。这使得妥协变得明确,而不是依赖猜测。', + 'Turn vague areas into specific postcodes': '将模糊区域变成特定的邮政编码', + 'Broad town or borough searches hide large differences between streets. Perfect Postcode helps you move from a general area to postcodes that satisfy your hard requirements.': + '广泛的城镇或行政区搜索隐藏了街道之间的巨大差异。Perfect Postcode可帮助您从一般区域转移到满足您硬要求的邮政编码。', + 'Keep trade-offs visible': '保持权衡可见', + 'When there are too many or too few matches, adjust one constraint at a time and see exactly which postcodes reappear. That makes compromises explicit instead of relying on guesswork.': + '当匹配项太多或太少时,一次调整一个约束并准确查看哪些邮政编码重新出现。这使得妥协变得明确,而不是依赖猜测。', + 'Why postcode-level comparison matters': '为什么邮政编码级别的比较很重要', + 'Two nearby postcodes can differ on schools, road noise, transport access, property mix, and price. Comparing at postcode level reduces the chance of treating a whole town as one uniform market.': + '附近的两个邮政编码在学校、道路噪音、交通便利、房产组合和价格方面可能有所不同。在邮政编码级别进行比较减少了将整个城镇视为一个统一市场的机会。', + 'How to use the results': '如何使用结果', + 'Treat matching postcodes as a research queue: check live listings, visit streets, confirm schools and admissions, and review current official sources.': + '将匹配的邮政编码视为研究队列:检查实时列表、访问街道、确认学校和招生以及查看当前的官方来源。', + 'Can I save a postcode property search?': '我可以保存邮政编码属性搜索吗?', + 'Yes. Licensed users can save searches and return to them later. Saved searches are designed for shortlists and comparison notes.': + '是的。许可用户可以保存搜索并稍后返回。保存的搜索专为候选列表和比较注释而设计。', + 'Can I search without knowing the area?': '我可以在不知道区域的情况下进行搜索吗?', + 'Yes. The map is designed to surface unfamiliar areas that match practical constraints, not just places you already know.': + '是的。该地图旨在显示符合实际限制的不熟悉的区域,而不仅仅是您已经知道的地方。', + 'Are the results live property listings?': '结果是实时房产列表吗?', + 'No. The tool compares postcode data and historical/contextual property signals. You still need listing portals for current availability.': + '不会。该工具会比较邮政编码数据和历史/上下文属性信号。您仍然需要列出当前可用性的门户。', + 'Manchester property search guide': '曼彻斯特房产搜索指南', + 'A regional guide for narrowing a broad search around Greater Manchester.': + '用于缩小大曼彻斯特广泛搜索范围的区域指南。', + 'Start a postcode search': '开始邮政编码搜索', + 'Commute property search': '通勤房产搜索', + 'Search for places to live by commute time': '按通勤时间搜索居住地', + 'Commute property search - Find places to live by travel time': '通勤房产搜索 - 按旅行时间查找居住地', + 'Filter postcodes by commute time, then compare price, schools, safety, broadband, road noise, parks and property data on one map.': + '按通勤时间过滤邮政编码,然后在一张地图上比较价格、学校、安全、宽带、道路噪音、公园和房产数据。', + 'Filter postcodes by modelled car, cycling, walking, and public transport travel times, then layer on property price, schools, crime, broadband, noise, and local amenities.': + '按模型汽车、自行车、步行和公共交通出行时间过滤邮政编码,然后按房价、学校、犯罪、宽带、噪音和当地便利设施进行分层。', + 'Compare reachable postcodes by realistic travel-time bands.': '按实际旅行时间范围比较可到达的邮政编码。', + 'Search by destination first, then filter for property and neighbourhood fit.': + '首先按目的地搜索,然后筛选适合的房产和社区。', + 'Avoid areas that look close on a map but fail the daily journey.': + '避开那些在地图上看起来很接近但日常行程却失败的区域。', + 'Start with the destination that matters': '从重要的目的地开始', + 'Choose a commute destination, transport mode, and time range, then add the property filters. This prevents a cheap-looking area from reaching the shortlist if the daily journey doesn’t work.': + '选择通勤目的地、交通方式和时间范围,然后添加属性过滤器。如果日常行程不起作用,这可以防止看似廉价的地区进入候选名单。', + 'Compare the commute against the rest of daily life': '将通勤与日常生活的其他部分进行比较', + 'A fast commute isn’t enough if the property size, school context, safety threshold, broadband, or road-noise exposure don’t fit. The map keeps those signals side by side.': + '如果房产规模、学校环境、安全阈值、宽带或道路噪音暴露不合适,快速通勤是不够的。地图将这些信号并排保存。', + 'Commute from postcodes, not just place names': '从邮政编码通勤,而不仅仅是地名', + 'Two streets in the same town can have very different station access, road routes, and public transport options. Postcode-level travel-time filtering keeps that difference visible.': + '同一城镇的两条街道可能有截然不同的车站通道、道路路线和公共交通选择。邮政编码级别的旅行时间过滤使这种差异可见。', + 'Balance journey time with the rest of the move': '平衡旅途时间与其余的搬家时间', + 'A fast commute only helps if the area also fits your budget, housing needs, school preferences, safety threshold, broadband requirement, and tolerance for road noise.': + '只有当该地区也符合您的预算、住房需求、学校偏好、安全阈值、宽带要求和道路噪音容忍度时,快速通勤才有帮助。', + 'How travel-time filters should be interpreted': '应如何解释旅行时间过滤器', + 'Travel-time modelling is useful for comparing areas consistently. Before committing, check current timetables, disruption patterns, parking, cycling conditions, and walking routes.': + '行程时间建模对于一致地比较区域很有用。在做出决定之前,请检查当前的时间表、中断模式、停车、骑行条件和步行路线。', + 'Why commute filters are combined with property data': '为什么通勤过滤器与房产数据相结合', + 'Commute search is most useful when it removes impossible areas while still showing whether the remaining options are affordable and liveable.': + '当通勤搜索删除不可能的区域,同时仍显示剩余选项是否负担得起且宜居时,它是最有用的。', + 'Can I compare car, cycling, walking, and public transport?': '我可以比较汽车、自行车、步行和公共交通吗?', + 'The product supports multiple travel modes where precomputed destination data is available.': + '该产品支持多种出行模式,其中预先计算的目的地数据可用。', + 'Are travel times exact?': '出行时间准确吗?', + 'No. Treat them as a consistent comparison model, then verify the real route before making viewing or purchase decisions.': + '不会。将它们视为一致的比较模型,然后在做出观看或购买决定之前验证真实路线。', + 'Can I combine commute filters with schools and price?': '我可以将通勤过滤器与学校和价格结合起来吗?', + 'Yes. The commute filter can be layered with property price, size, schools, broadband, crime, amenities, and environmental signals.': + '是的。通勤过滤器可以根据房价、面积、学校、宽带、犯罪、便利设施和环境信号进行分层。', + 'Bristol property search guide': '布里斯托尔房产搜索指南', + 'A worked example for balancing city access, price, and local context.': '平衡城市交通、价格和当地环境的有效示例。', + 'Search by commute time': '按通勤时间搜索', + 'Schools and property search': '学校和房产搜索', + 'Find property search areas with schools and family trade-offs in view': '寻找考虑学校和家庭权衡的房产搜索区域', + 'School property search - Compare postcodes for family moves': '学校财产搜索 - 比较家庭搬迁的邮政编码', + 'Compare nearby schools, property size, prices, parks, safety, commute and local amenities before building a viewing shortlist.': + '在建立观看候选名单之前,比较附近的学校、房产规模、价格、公园、安全、通勤和当地便利设施。', + 'Compare nearby Ofsted ratings, education context, property size, budget, safety, parks, commute, and local amenities before narrowing your viewing shortlist.': + '比较附近的 Ofsted 评级、教育背景、房产规模、预算、安全、公园、通勤和当地设施,然后再缩小您的观看候选名单。', + 'Filter for nearby school quality alongside housing requirements.': '筛选附近学校的质量以及住房要求。', + 'Compare family-friendly trade-offs across unfamiliar postcodes.': '比较不熟悉的邮政编码中适合家庭的权衡。', + 'Use the map as a shortlist tool before checking admissions and catchments.': + '在检查招生和流域之前,请使用地图作为候选名单工具。', + 'Use school context without ignoring the home': '利用学校环境而不忽视家庭', + 'Start with property size, budget, and commute constraints, then layer in nearby school quality and local context. This prevents school-led searches from hiding affordability or daily-life problems.': + '从房产规模、预算和通勤限制开始,然后分层考虑附近的学校质量和当地环境。这可以防止学校主导的搜索隐藏负担能力或日常生活问题。', + 'Verify admissions before deciding': '决定前核实录取情况', + 'School data can point to promising areas, but admissions rules and catchments can change. Confirm current arrangements with schools and local authorities.': + '学校数据可能会指出有前途的领域,但招生规则和学区可能会发生变化。与学校和地方当局确认当前的安排。', + 'School quality is one part of the shortlist': '学校质量是入围名单之一', + 'Perfect Postcode helps you compare nearby school data with the other practical constraints that shape a family move: space, price, commute, parks, safety, and local services.': + 'Perfect Postcode 可帮助您将附近的学校数据与影响家庭搬家的其他实际限制因素进行比较:空间、价格、通勤、公园、安全和当地服务。', + 'Check catchments before making decisions': '做出决定前检查流域', + 'Admissions rules and catchment boundaries can change. Use postcode-level school data to find promising areas, then verify current admissions details with the school or local authority.': + '招生规则和学区边界可能会发生变化。使用邮政编码级别的学校数据来寻找有前途的地区,然后与学校或地方当局核实当前的招生详细信息。', + 'How to treat school filters': '如何处理学校过滤器', + 'Use school filters to narrow research, not to assume admission eligibility. Ratings, distance, admissions criteria, and school capacity should all be checked with current official sources.': + '使用学校过滤器来缩小研究范围,而不是假设入学资格。评级、距离、录取标准和学校容量都应通过当前的官方来源进行检查。', + 'Family trade-offs to compare': '家庭权衡比较', + 'Combine schools with parks, road noise, crime, property size, commute, broadband, and price so the shortlist reflects the whole move.': + '将学校与公园、道路噪音、犯罪、房产规模、通勤、宽带和价格结合起来,这样入围名单就能反映整个搬迁情况。', + 'Does this show school catchment guarantees?': '这是否表明学校学区有保证?', + 'No. It helps identify promising areas, but catchments and admissions must be verified with the school or local authority.': + '不会。它有助于确定有前途的地区,但学区和招生必须经过学校或地方当局的核实。', + 'Can I combine school filters with parks and safety?': '我可以将学校过滤器与公园和安全结合起来吗?', + 'Yes. School-aware search can be combined with crime, parks, commute, price, property size, and local services.': + '是的。学校感知搜索可以与犯罪、公园、通勤、价格、房产规模和本地服务相结合。', + 'Is Ofsted the only school signal?': 'Ofsted 是唯一的学校信号吗?', + 'No single score should decide a move. Use the map as a starting point, then review current school information in detail.': + '任何一个分数都不能决定行动。使用地图作为起点,然后详细查看当前学校信息。', + 'See where education, property, transport, and environment data comes from.': + '查看教育、房地产、交通和环境数据的来源。', + 'Explore school-aware searches': '探索学校相关的搜索', + 'Check postcode data before you book a viewing': '在预订观看之前检查邮政编码数据', + 'Postcode checker - Property, crime, broadband, noise and schools': '邮政编码检查器 - 财产、犯罪、宽带、噪音和学校', + 'Check postcode-level property prices, EPC data, crime, broadband, road noise, schools, council tax, amenities and travel-time context.': + '检查邮政编码级别的房地产价格、EPC 数据、犯罪、宽带、道路噪音、学校、市政税、便利设施和旅行时间背景。', + 'Review property prices, EPC context, crime, broadband, road noise, local amenities, schools, deprivation, council tax, and travel-time data from one postcode-first map.': + '从一张邮政编码优先的地图中查看房地产价格、EPC 背景、犯罪、宽带、道路噪音、当地便利设施、学校、贫困、市政税和旅行时间数据。', + 'Check multiple local signals before visiting a street.': '在访问街道之前检查多个当地信号。', + 'Use official and open datasets rather than reputation alone.': '使用官方和开放的数据集,而不仅仅是声誉。', + 'Compare postcodes consistently across England.': '一致比较英格兰各地的邮政编码。', + 'Check the street before spending a viewing slot': '在花费观看时间之前检查一下街道', + 'Use the postcode checker to review price history, local context, amenities, schools, and environment signals before you commit time to visiting.': + '在您花时间参观之前,使用邮政编码检查器查看价格历史记录、当地背景、便利设施、学校和环境信号。', + 'Compare neighbouring postcodes': '比较邻近的邮政编码', + 'If one postcode looks promising, compare adjacent areas using the same filters. This often reveals whether a concern is street-specific or part of a wider pattern.': + '如果一个邮政编码看起来很有希望,请使用相同的过滤器比较相邻区域。这通常可以揭示问题是特定于街道的还是更广泛模式的一部分。', + 'Useful before and alongside listing portals': '在房源平台之前和旁边有用', + 'Listing photos rarely tell you enough about the surrounding street. Perfect Postcode gives you an evidence-led postcode check before you commit time to a viewing.': + '房源照片很少能告诉您有关周围街道的足够信息。Perfect Postcode在您投入时间观看之前为您提供以证据为主导的邮政编码检查。', + 'A screening tool, not professional advice': '筛查工具,而非专业建议', + 'The data is designed for shortlisting and comparison. Any purchase still needs current listing checks, legal due diligence, flood searches, lender requirements, and survey findings.': + '该数据旨在用于筛选和比较。任何购买仍需要当前的清单检查、法律尽职调查、大量搜索、贷方要求和调查结果。', + 'What a postcode check can catch': '邮政编码检查可以发现什么', + 'A postcode check can surface price context, environmental signals, nearby amenities, and other local indicators that are easy to miss in a listing.': + '邮政编码检查可以显示价格背景、环境信号、附近的便利设施以及列表中容易错过的其他本地指标。', + 'What a postcode check can’t prove': '邮政编码检查无法证明什么', + 'It can’t confirm the condition of a home, future development, legal title, lender requirements, or current street-level experience. Those still need direct checks.': + '它无法确认房屋的状况、未来的开发、法定所有权、贷款人要求或当前的街道经验。这些仍然需要直接检查。', + 'Can I use the checker before a viewing?': '我可以在观看前使用检查器吗?', + 'Yes. That’s one of the main use cases: screen the postcode first, then decide whether the viewing is worth the time.': + '是的。这是主要用例之一:首先筛选邮政编码,然后决定是否值得花时间查看。', + 'Does the checker include exact property condition?': '检查器是否包括准确的财产状况?', + 'No. Property condition requires listing details, surveys, and direct inspection.': + '不可以。房产状况需要列出详细信息、调查和直接检查。', + 'Can I compare multiple postcodes?': '我可以比较多个邮政编码吗?', + 'Yes. The map is designed for consistent comparison across postcodes.': '是的。该地图旨在实现跨邮政编码的一致比较。', + 'Check postcodes on the map': '检查地图上的邮政编码', + 'Regional guide': '区域指南', + 'How to compare Birmingham postcodes before a property search': '如何在房产搜索前比较伯明翰邮政编码', + 'Birmingham property search - Compare postcodes by price and commute': '伯明翰房产搜索 - 按价格和通勤比较邮政编码', + 'Use postcode-level data to compare Birmingham property prices, commute trade-offs, schools, crime, broadband and local amenities before viewings.': + '在查看之前,使用邮政编码级别的数据来比较伯明翰的房价、通勤权衡、学校、犯罪、宽带和当地设施。', + 'Birmingham searches can change quickly from street to street. Use postcode-level evidence to compare budget, commute, schools, noise, crime, and local services before deciding where to watch listings.': + '伯明翰的搜索可能因街道而异。在决定在哪里观看列表之前,使用邮政编码级别的证据来比较预算、通勤、学校、噪音、犯罪和当地服务。', + 'Start with commute corridors': '从通勤走廊开始', + 'Choose the destination that matters, such as a workplace, station, university, or hospital, then compare reachable postcodes by transport mode and travel-time band.': + '选择重要的目的地,例如工作场所、车站、大学或医院,然后按交通方式和旅行时间范围比较可到达的邮政编码。', + 'Use commute time as a hard filter before judging price.': '在判断价格之前,使用通勤时间作为硬过滤器。', + 'Compare public transport with car, cycling, or walking where available.': + '将公共交通与汽车、骑自行车或步行(如果有)进行比较。', + 'Check the route manually before booking viewings.': '在预订观看之前手动检查路线。', + 'Compare price with property type': '将价格与房产类型进行比较', + 'Median prices alone can be misleading if the local property mix changes. Add property type, tenure, floor area, and price filters so similar areas are compared fairly.': + '如果当地房地产结构发生变化,中位价格可能会产生误导。添加房产类型、保有权、建筑面积和价格过滤器,以便公平比较相似的区域。', + 'Keep family and environment trade-offs visible': '让家庭和环境之间的权衡显而易见', + 'Layer school context, parks, road noise, broadband, and crime signals on top of the property filters. That makes it easier to decide which compromises are acceptable.': + '将学校环境、公园、道路噪音、宽带和犯罪信号叠加在属性过滤器之上。这使得更容易决定哪些妥协是可以接受的。', + 'Can Perfect Postcode tell me the best area in Birmingham?': + 'Perfect Postcode可以告诉我 伯明翰 最好的区域吗?', + 'No tool can decide the best area for every buyer. It helps compare postcodes against your own constraints so you can build a better shortlist.': + '没有任何工具可以为每个买家决定最佳区域。它有助于将邮政编码与您自己的限制进行比较,以便您可以构建更好的候选名单。', + 'Should I use this instead of local knowledge?': '我应该使用这个而不是本地知识吗?', + 'No. Use it to find and compare candidates, then validate them with visits, local advice, listings, and official checks.': + '不会。用它来查找和比较候选人,然后通过访问、当地建议、列表和官方检查来验证他们。', + 'Compare price patterns before looking at live listings.': '在查看实时列表之前先比较价格模式。', + 'Search by travel time and then layer on property requirements.': '按旅行时间搜索,然后按财产要求分层。', + 'Understand how to interpret filters and limitations.': '了解如何解释过滤器和限制。', + 'Compare Birmingham postcodes': '比较伯明翰 邮政编码', + 'How to compare Manchester postcodes for a property search': '如何比较曼彻斯特邮政编码以进行房产搜索', + 'Manchester property search - Compare postcodes before viewing': '曼彻斯特房产搜索 - 查看前比较邮政编码', + 'Compare Manchester-area postcodes by budget, commute, property type, schools, broadband, crime, noise and amenities before booking viewings.': + '在预订观看之前,请按预算、通勤、房产类型、学校、宽带、犯罪、噪音和便利设施比较曼彻斯特地区的邮政编码。', + 'A Manchester-area search can span city-centre, suburban, and commuter options. Perfect Postcode helps keep each postcode comparable against the same property and daily-life constraints.': + '曼彻斯特地区的搜索可以涵盖市中心、郊区和通勤选项。Perfect Postcode有助于使每个邮政编码在相同的财产和日常生活限制下具有可比性。', + 'Use travel time to define the real search area': '使用行程时间来定义真正的搜索区域', + 'Start from the destinations that matter, then compare reachable postcodes rather than assuming every nearby place has the same practical journey.': + '从重要的目的地开始,然后比较可到达的邮政编码,而不是假设附近的每个地方都有相同的实际旅程。', + 'Compare housing requirements before lifestyle preferences': '在生活方式偏好之前比较住房要求', + 'Filter by property type, floor area, tenure, and price before judging amenities. That keeps the shortlist grounded in homes that could realistically work.': + '在判断便利设施之前,请按房产类型、建筑面积、使用期限和价格进行筛选。这使得入围名单以能够实际使用的房屋为基础。', + 'Check local context consistently': '一致地检查本地上下文', + 'Use broadband, crime, road noise, parks, schools, and amenities as comparable signals. Then validate the strongest candidates with current local checks.': + '使用宽带、犯罪、道路噪音、公园、学校和便利设施作为可比信号。然后通过当前的本地检查来验证最强的候选人。', + 'Can I compare Manchester suburbs with city-centre postcodes?': '我可以将曼彻斯特郊区与市中心的邮政编码进行比较吗?', + 'Yes. Use the same budget, property, commute, and local-context filters across both so trade-offs remain visible.': + '是的。在两者中使用相同的预算、财产、通勤和当地环境过滤器,以便权衡仍然可见。', + 'Does this include live listings?': '这包括实时列表吗?', + 'No. Use it to decide where to search, then use listing portals for current homes for sale.': + '不会。用它来决定在哪里搜索,然后使用当前待售房屋的房源平台。', + 'Move from a broad search brief to specific postcode candidates.': '从广泛的搜索概要转向特定的邮政编码候选人。', + 'Data sources': '数据来源', + 'Review the datasets used for property and local-context comparison.': '查看用于属性和本地上下文比较的数据集。', + 'Check a single postcode before arranging a viewing.': '在安排观看之前检查单个邮政编码。', + 'Compare Manchester postcodes': '比较曼彻斯特邮政编码', + 'How to compare Bristol postcodes before a property search': '如何在房产搜索前比较布里斯托尔邮政编码', + 'Bristol property search - Compare postcodes by commute and price': '布里斯托尔房产搜索 - 按通勤和价格比较邮政编码', + 'Compare Bristol postcodes by price, commute, property size, schools, broadband, crime, road noise, parks and amenities before viewings.': + '在查看之前,按价格、通勤、房产规模、学校、宽带、犯罪、道路噪音、公园和便利设施比较布里斯托尔邮政编码。', + 'Bristol searches often involve sharp trade-offs between price, journey time, property size, and neighbourhood context. A postcode-first comparison keeps those trade-offs visible.': + '布里斯托尔的搜索通常涉及价格、行程时间、房产规模和社区环境之间的尖锐权衡。邮政编码优先的比较使这些权衡显而易见。', + 'Make commute constraints explicit': '明确通勤限制', + 'If access to the centre, a station, hospital, university, or business park matters, use travel-time filters first and then compare the remaining postcodes by property data.': + '如果前往中心、车站、医院、大学或商业园区很重要,请首先使用出行时间过滤器,然后通过属性数据比较剩余的邮政编码。', + 'Compare value, not just headline price': '比较价值,而不仅仅是标题价格', + 'Use price, property type, and floor-area filters together. This helps distinguish lower-cost areas from areas that simply contain smaller or different homes.': + '将价格、房产类型和建筑面积过滤器结合使用。这有助于将低成本区域与仅包含较小或不同房屋的区域区分开来。', + 'Screen environmental and local-service signals': '筛选环境和本地服务信号', + 'Road noise, parks, broadband, crime, and amenities can affect whether a property works day to day. Use them as screening criteria before booking viewings.': + '道路噪音、公园、宽带、犯罪和便利设施都会影响房产的日常运作。在预订观看之前将它们用作筛选标准。', + 'Can I use this for commuter villages around Bristol?': '我可以将其用于布里斯托尔周围的通勤村庄吗?', + 'Yes, where the relevant postcode and travel-time data is available. Always verify routes and services manually before deciding.': + '是的,只要有相关邮政编码和旅行时间数据即可。在做出决定之前,请务必手动验证路线和服务。', + 'Can this tell me whether a listing is good value?': '这可以告诉我列表是否物有所值吗?', + 'It can provide area context, but a specific listing still needs comparable sales, condition checks, survey findings, and professional advice where appropriate.': + '它可以提供区域背景,但特定列表仍然需要可比较的销售、状况检查、调查结果和适当的专业建议。', + 'Search by reachable postcodes before refining by budget and local context.': + '先按可达的邮政编码进行搜索,然后再按预算和当地情况进行细化。', + 'Understand price patterns before setting listing alerts.': '在设置列表提醒之前了解价格模式。', + 'Privacy and security': '隐私和安全', + 'How account and saved-search data is handled in the product.': '产品中如何处理帐户和已保存的搜索数据。', + 'Compare Bristol postcodes': '比较布里斯托尔邮政编码', + 'Trust and coverage': '信任和覆盖', + 'Perfect Postcode data sources and coverage': 'Perfect Postcode数据源和覆盖范围', + 'Perfect Postcode data sources - Property, schools, commute and local context': + '完美的邮政编码数据源 - 房产、学校、通勤和当地情况', + 'Review the public and official datasets used by Perfect Postcode, including property prices, EPC, schools, crime, broadband, noise and travel-time context.': + '查看 Perfect Postcode 使用的公共和官方数据集,包括房价、EPC、学校、犯罪、宽带、噪音和旅行时间背景。', + 'Perfect Postcode combines property, transport, education, environment, and local-service datasets so buyers can compare postcodes consistently. This page explains what the data is for and where it should be verified.': + 'Perfect Postcode 结合了房地产、交通、教育、环境和本地服务数据集,因此买家可以一致地比较邮政编码。此页面解释了数据的用途以及应在何处验证数据。', + 'Property and housing context': '财产和住房环境', + 'The product uses property transaction and housing-context datasets to support filters such as sale price, property type, tenure, floor area, energy performance, and estimated current value.': + '该产品使用房产交易和住房背景数据集来支持销售价格、房产类型、保有权、建筑面积、能源绩效和估计当前价值等过滤器。', + 'Use these fields to compare areas, not as a formal valuation.': '使用这些字段来比较面积,而不是作为正式评估。', + 'Check current listings, title information, lender requirements, and survey results before buying.': + '购买前检查当前列表、产权信息、贷方要求和调查结果。', + 'Schools, safety, broadband, and environment': '学校、安全、宽带和环境', + 'Local-context filters help compare postcodes on signals that affect daily life. They should be treated as screening data and checked against current official sources for decisions.': + '本地上下文过滤器有助于比较影响日常生活的信号的邮政编码。它们应被视为筛选数据,并根据当前的官方来源进行检查以做出决定。', + 'Travel-time data': '行程时间数据', + 'Travel-time filters are designed for consistent area comparison. Route availability, disruption, parking, walking access, and timetable details should be verified before committing to an area.': + '传播时间过滤器旨在实现一致的面积比较。在前往某个区域之前,应验证路线可用性、中断情况、停车位、步行通道和时间表详细信息。', + 'Why does coverage focus on England?': '为什么报道聚焦英格兰?', + 'Several core property, education, and local-context datasets are jurisdiction-specific. England coverage keeps comparisons more consistent.': + '一些核心财产、教育和当地背景数据集是特定于管辖区的。英格兰的报道使比较更加一致。', + 'How should I handle stale or missing data?': '我应该如何处理陈旧或丢失的数据?', + 'Use the map as a shortlist tool. If a postcode matters, verify the latest details with current official sources and direct local checks.': + '使用地图作为候选名单工具。如果邮政编码很重要,请通过当前的官方来源验证最新详细信息并直接进行本地检查。', + 'How filters and comparisons should be interpreted.': '应如何解释过滤器和比较。', + 'Review postcode-level context before a viewing.': '在查看之前查看邮政编码级别的上下文。', + 'How saved searches and account data are handled.': '如何处理保存的搜索和帐户数据。', + 'How to use the map': '如何使用地图', + 'Methodology for postcode property research': '邮政编码财产研究方法', + 'Perfect Postcode methodology - How to interpret postcode property data': + 'Perfect Postcode方法 - 如何解释邮政编码属性数据', + 'Understand how to use postcode filters, property estimates, travel-time data, school context and local signals as a home-buying shortlist tool.': + '了解如何使用邮政编码过滤器、房产估算、旅行时间数据、学校背景和当地信号作为购房候选名单工具。', + 'Perfect Postcode is designed to make area shortlisting more evidence-led. It doesn’t replace estate agents, surveyors, conveyancers, lenders, school admissions teams, or local authority checks.': + 'Perfect Postcode 旨在使区域入围更加以证据为主导。它不能取代房地产经纪人、测量师、产权转让师、贷款人、学校招生团队或地方当局的检查。', + 'Start with hard constraints': '从硬性约束开始', + 'Begin with non-negotiables such as budget, property type, floor area, commute time, and essential services. This removes impossible postcodes before softer preferences are considered.': + '从预算、房产类型、建筑面积、通勤时间和基本服务等不可协商的事项开始。这会在考虑较软的偏好之前删除不可能的邮政编码。', + 'Use colour layers for trade-offs': '使用颜色层进行权衡', + 'After filtering, colour the remaining map by one signal at a time: price per square metre, road noise, school context, commute time, broadband, or crime. This makes trade-offs easier to discuss.': + '过滤后,一次按一个信号对剩余地图进行着色:每平方米价格、道路噪音、学校环境、通勤时间、宽带或犯罪情况。这使得权衡更容易讨论。', + 'Measure what’s working': '衡量哪些内容有效', + 'Use Search Console and analytics to track which public pages are indexed, which queries produce impressions, and which pages convert visitors into dashboard exploration. Review Core Web Vitals after every substantial frontend change.': + '使用 Search Console 和分析来跟踪哪些公共页面被索引、哪些查询产生展示次数以及哪些页面将访问者转化为仪表板探索。在每次重大前端更改后查看 Core Web Vitals。', + 'Can the tool choose the right postcode for me?': '该工具可以为我选择正确的邮政编码吗?', + 'No. It helps compare evidence and reduce the search area. The final decision needs direct visits, current listings, legal checks, surveys, and personal judgement.': + '不会。它有助于比较证据并缩小搜索范围。最终决定需要直接访问、当前列表、法律检查、调查和个人判断。', + 'How should I use estimates?': '我应该如何使用估算值?', + 'Use estimates as comparison signals, not as professional valuations or purchase advice.': + '使用估算作为比较信号,而不是作为专业估价或购买建议。', + 'Understand where key filters come from.': '了解关键过滤器的来源。', + 'Apply the methodology to price-led area comparison.': '将该方法应用于价格主导的区域比较。', + 'Apply the methodology to destination-led search.': '将该方法应用于以目的地为主导的搜索。', + Trust: '信任', + 'Privacy and security for saved property searches': '保存的财产搜索的隐私和安全', + 'Perfect Postcode privacy and security - Saved searches and account data': + '完美的邮政编码隐私和安全 - 保存的搜索和帐户数据', + 'Learn how Perfect Postcode treats saved searches, account data and property research workflows with privacy and security in mind.': + '了解 Perfect Postcode 如何在考虑隐私和安全的情况下处理已保存的搜索、帐户数据和财产研究工作流程。', + 'Property research can reveal personal priorities, budgets, and locations. The product keeps public SEO pages separate from account-only areas and marks private dashboard/account routes as noindex.': + '房地产研究可以揭示个人优先事项、预算和地点。该产品将公共 SEO 页面与仅帐户区域分开,并将私人仪表板/帐户路线标记为 noindex。', + 'Public pages and private areas are separated': '公共页面和私人区域分开', + 'Marketing, methodology, guide, and support pages are indexable. Dashboard, account, saved searches, invites, and invitation routes are marked noindex or blocked from crawler access where appropriate.': + '营销、方法、指南和支持页面都是可索引的。仪表板、帐户、已保存的搜索、邀请和邀请路线被标记为 noindex 或在适当的情况下阻止爬网程序访问。', + 'Saved search data is account-scoped': '保存的搜索数据是帐户范围内的', + 'Saved searches and properties are intended for signed-in use. They aren’t included in the public sitemap and shouldn’t be crawlable as public content.': + '保存的搜索和属性仅供登录使用。它们不包含在公共站点地图中,也不应作为公共内容进行抓取。', + 'Search measurement without exposing private data': '搜索测量而不暴露私人数据', + 'SEO measurement should happen on public pages using aggregated analytics and Search Console data. Private query parameters and account views shouldn’t become indexable landing pages.': + 'SEO 测量应该使用聚合分析和 Search Console 数据在公共页面上进行。私有查询参数和帐户视图不应成为可索引的登陆页面。', + 'Are saved searches listed in the sitemap?': '站点地图中是否列出了已保存的搜索?', + 'No. Public SEO pages are listed; account and saved-search routes are intentionally excluded.': + '否。列出了公共 SEO 页面;帐户和保存的搜索路线被有意排除。', + 'Can private dashboard URLs appear in search?': '私有仪表板 URL 可以出现在搜索中吗?', + 'They shouldn’t be indexed. The server marks private routes noindex and the sitemap only lists public pages.': + '它们不应该被索引。服务器将私有路由标记为noindex,站点地图仅列出公共页面。', + 'How to use public postcode data responsibly.': '如何负责任地使用公共邮政编码数据。', + 'What data powers the public comparisons.': '哪些数据支持公众比较。', + 'Explore public postcode-search workflows.': '探索公共邮政编码搜索工作流程。', + }, }; export default zh; diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 1c2654b..a7ec672 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -70,11 +70,14 @@ export function prewarmScreenshot(params: string): void { } export async function shortenUrl(params: string): Promise { - const res = await fetch(apiUrl('shorten'), { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ params }), - }); + const res = await fetch( + apiUrl('shorten'), + authHeaders({ + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ params }), + }) + ); if (!res.ok) throw new Error(`HTTP ${res.status}`); const data = await res.json(); return `${window.location.origin}${data.url}`; diff --git a/frontend/src/lib/json-ld.ts b/frontend/src/lib/json-ld.ts new file mode 100644 index 0000000..75aa4cd --- /dev/null +++ b/frontend/src/lib/json-ld.ts @@ -0,0 +1,11 @@ +// Safely serialise a value for embedding in a