1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-08-05 05:05:17 +02:00

refactor: rename adventures to locations across the application

- Updated localization files to replace adventure-related terms with location-related terms.
- Refactored TypeScript types and variables from Adventure to Location in various routes and components.
- Adjusted UI elements and labels to reflect the change from adventures to locations.
- Ensured all references to adventures in the codebase are consistent with the new location terminology.
This commit is contained in:
Sean Morley 2025-06-23 10:49:27 -04:00
parent 84b01b9749
commit 3a781225b9
46 changed files with 1521 additions and 1372 deletions

View file

@ -6,7 +6,9 @@ Were excited to have you contribute to AdventureLog! To ensure that this comm
1. **Open an Issue First**: Discuss any changes or features you plan to implement by opening an issue. This helps to clarify your idea and ensures theres a shared understanding.
2. **Document Changes**: If your changes impact the user interface, add new environment variables, or introduce new container configurations, make sure to update the documentation accordingly. The documentation is located in the `documentation` folder.
3. **Pull Request**: Submit a pull request with your changes. Make sure to reference the issue you opened in the description.
3. **Pull Request**: Submit a pull request with your changes directed towards the `development` branch. Make sure to reference the issue you opened in the description. After your pull request is submitted, it will be reviewed by the maintainers.
4. **Review Process**: The maintainers will review your pull request. They may suggest changes or improvements. Please be open to feedback and ready to make adjustments as needed.
5. **Merge**: Once your pull request is approved, it will be merged into the `development` branch. This branch is where all new features and changes are integrated before being released to the main branch.
## Code of Conduct

View file

@ -2,111 +2,191 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="AdventureLog Server" />
<meta name="description" content="AdventureLog API Server" />
<meta name="author" content="Sean Morley" />
<title>AdventureLog API Server</title>
<!-- Latest compiled and minified CSS -->
<!-- Bootstrap 5 CSS -->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
rel="stylesheet"
/>
<!-- Bootstrap Icons -->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css"
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"
/>
<!-- Optional theme -->
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"
/>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
body {
background-color: #f9f9fb;
color: #222;
font-family: "Segoe UI", sans-serif;
}
.navbar {
background-color: #2c3e50;
}
.navbar-brand,
.nav-link {
color: #ecf0f1 !important;
}
.hero {
padding: 4rem 1rem;
background: linear-gradient(135deg, #2980b9, #6dd5fa);
color: white;
text-align: center;
border-radius: 0 0 1rem 1rem;
}
.hero h1 {
font-size: 3rem;
margin-bottom: 1rem;
}
.hero p {
font-size: 1.25rem;
margin-bottom: 2rem;
}
.api-response {
margin-top: 1rem;
font-family: monospace;
background-color: #eef2f7;
padding: 1rem;
border-radius: 0.5rem;
}
footer {
text-align: center;
padding: 2rem 0;
font-size: 0.9rem;
color: #888;
}
</style>
</head>
<body role="document">
<div class="navbar navbar-inverse" role="navigation">
<body>
<!-- Navbar -->
<nav class="navbar navbar-expand-lg">
<div class="container">
<div class="navbar-header">
<button
type="button"
class="navbar-toggle collapsed"
data-toggle="collapse"
data-target=".navbar-collapse"
>
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">AdventureLog API Server</a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/">Server Home</a></li>
<li>
<a target="_blank" href="http://adventurelog.app"
>Documentation</a
>
</li>
<li>
<a class="navbar-brand" href="/">AdventureLog API</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarNav"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="/">Home</a></li>
<li class="nav-item">
<a
class="nav-link"
href="http://adventurelog.app"
target="_blank"
href="https://github.com/seanmorley15/AdventureLog"
>Source Code</a
>
Documentation
</a>
</li>
<li class="nav-item">
<a
class="nav-link"
href="https://github.com/seanmorley15/AdventureLog"
target="_blank"
>
Source Code
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/docs">API Docs</a>
</li>
<li><a href="/docs">API Docs</a></li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<div class="container">
<h1><i class="bi bi-map"></i> AdventureLog API</h1>
<p>
The backend powering your travels — flexible, powerful, and open
source.
</p>
<a href="/docs" class="btn btn-light btn-lg shadow-sm"
><i class="bi bi-book"></i> Explore API Docs</a
>
</div>
</div>
<div class="container theme-showcase" role="main">
{% block content %}{% endblock %}
<!-- Main Content -->
<div class="container my-5">
{% block content %}
<div class="text-center">
<h2>Try a Sample Request</h2>
<p>Use the form below to test an API POST request.</p>
<form
class="ajax-post d-flex flex-column align-items-center"
action="/api/test"
method="post"
style="max-width: 500px; margin: auto"
>
<input
type="text"
name="example"
placeholder="Enter example data"
class="form-control mb-3"
required
/>
<button type="submit" class="btn btn-primary">
<i class="bi bi-send"></i> Send Request
</button>
</form>
<div class="api-response"></div>
</div>
{% endblock %}
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script type="text/javascript">
var error_response = function (data) {
<footer class="text-center text-muted py-4">
Open source with ❤️ by
<a href="https://seanmorley.com" target="_blank">Sean Morley</a> • View on
<a href="https://github.com/seanmorley15/AdventureLog" target="_blank"
>GitHub</a
>
<a href="https://adventurelog.app" target="_blank">adventurelog.app</a>
</footer>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- jQuery (optional, used here for legacy script) -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
const error_response = (data) => {
$(".api-response").html(
"API Response: " +
data.status +
" " +
data.statusText +
"<br/>Content: " +
data.responseText
`<strong>API Response:</strong> ${data.status} ${data.statusText}<br/><strong>Content:</strong> ${data.responseText}`
);
};
var susccess_response = function (data) {
const susccess_response = (data) => {
$(".api-response").html(
"API Response: OK<br/>Content: " + JSON.stringify(data)
`<strong>API Response:</strong> OK<br/><strong>Content:</strong> ${JSON.stringify(
data,
null,
2
)}`
);
};
$().ready(function () {
$(document).ready(() => {
$("form.ajax-post button[type=submit]").click(function () {
var form = $("form.ajax-post");
const form = $("form.ajax-post");
$.post(form.attr("action"), form.serialize())
.fail(function (data) {
error_response(data);
})
.done(function (data) {
susccess_response(data);
});
.fail(error_response)
.done(susccess_response);
return false;
});
});
</script>
{% block script %}{% endblock %}
</body>
</html>

View file

@ -1,7 +1,7 @@
<script lang="ts">
import { createEventDispatcher } from 'svelte';
import { goto } from '$app/navigation';
import type { Adventure, Collection, User } from '$lib/types';
import type { Location, Collection, User } from '$lib/types';
const dispatch = createEventDispatcher();
import Launch from '~icons/mdi/launch';
@ -31,7 +31,7 @@
let isCollectionModalOpen: boolean = false;
let isWarningModalOpen: boolean = false;
export let adventure: Adventure;
export let adventure: Location;
let displayActivityTypes: string[] = [];
let remainingCount = 0;
@ -81,7 +81,7 @@
method: 'DELETE'
});
if (res.ok) {
addToast('info', $t('adventures.adventure_delete_success'));
addToast('info', $t('adventures.location_delete_success'));
dispatch('delete', adventure.id);
} else {
console.log('Error deleting adventure');
@ -109,16 +109,16 @@
if (res.ok) {
// Only update the adventure.collections after server confirms success
adventure.collections = updatedCollections;
addToast('info', `${$t('adventures.collection_link_success')}`);
addToast('info', `${$t('adventures.collection_link_location_success')}`);
} else {
addToast('error', `${$t('adventures.collection_link_error')}`);
addToast('error', `${$t('adventures.collection_link_location_error')}`);
}
}
async function removeFromCollection(event: CustomEvent<string>) {
let collectionId = event.detail;
if (!collectionId) {
addToast('error', `${$t('adventures.collection_remove_error')}`);
addToast('error', `${$t('adventures.collection_remove_location_error')}`);
return;
}
@ -139,9 +139,9 @@
if (res.ok) {
// Only update adventure.collections after server confirms success
adventure.collections = updatedCollections;
addToast('info', `${$t('adventures.collection_remove_success')}`);
addToast('info', `${$t('adventures.collection_remove_location_success')}`);
} else {
addToast('error', `${$t('adventures.collection_remove_error')}`);
addToast('error', `${$t('adventures.collection_remove_location_error')}`);
}
}
}
@ -166,9 +166,9 @@
{#if isWarningModalOpen}
<DeleteWarning
title={$t('adventures.delete_adventure')}
title={$t('adventures.delete_location')}
button_text="Delete"
description={$t('adventures.adventure_delete_confirm')}
description={$t('adventures.location_delete_confirm')}
is_warning={false}
on:close={() => (isWarningModalOpen = false)}
on:confirm={deleteAdventure}
@ -293,7 +293,7 @@
<li>
<button on:click={editAdventure} class="flex items-center gap-2">
<FileDocumentEdit class="w-4 h-4" />
{$t('adventures.edit_adventure')}
{$t('adventures.edit_location')}
</button>
</li>

View file

@ -1,5 +1,5 @@
<script lang="ts">
import type { Adventure, User } from '$lib/types';
import type { Location, User } from '$lib/types';
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
import { t } from 'svelte-i18n';
@ -17,8 +17,8 @@
import Public from '~icons/mdi/earth';
import Private from '~icons/mdi/lock';
let adventures: Adventure[] = [];
let filteredAdventures: Adventure[] = [];
let adventures: Location[] = [];
let filteredAdventures: Location[] = [];
let searchQuery: string = '';
let filterOption: string = 'all';
let isLoading: boolean = true;
@ -77,7 +77,7 @@
// Filter out adventures that are already linked to the collections
if (collectionId) {
adventures = newAdventures.filter((adventure: Adventure) => {
adventures = newAdventures.filter((adventure: Location) => {
return !(adventure.collections ?? []).includes(collectionId);
});
} else {
@ -91,7 +91,7 @@
dispatch('close');
}
function add(event: CustomEvent<Adventure>) {
function add(event: CustomEvent<Location>) {
adventures = adventures.filter((a) => a.id !== event.detail.id);
dispatch('add', event.detail);
}
@ -134,7 +134,7 @@
{filteredAdventures.length}
{$t('worldtravel.of')}
{totalAdventures}
{$t('navbar.adventures')}
{$t('locations.locations')}
</p>
</div>
</div>

View file

@ -1,6 +1,6 @@
<script lang="ts">
import { createEventDispatcher, onMount } from 'svelte';
import type { Adventure, Attachment, Category, Collection } from '$lib/types';
import type { Location, Attachment, Category, Collection } from '$lib/types';
import { addToast } from '$lib/toasts';
import { deserialize } from '$app/forms';
import { t } from 'svelte-i18n';
@ -97,7 +97,7 @@
let wikiError: string = '';
let adventure: Adventure = {
let adventure: Location = {
id: '',
name: '',
visits: [],
@ -121,7 +121,7 @@
attachments: []
};
export let adventureToEdit: Adventure | null = null;
export let adventureToEdit: Location | null = null;
adventure = {
id: adventureToEdit?.id || '',
@ -470,14 +470,14 @@
});
let data = await res.json();
if (data.id) {
adventure = data as Adventure;
adventure = data as Location;
isDetails = false;
warningMessage = '';
addToast('success', $t('adventures.adventure_created'));
addToast('success', $t('adventures.location_created'));
} else {
warningMessage = findFirstValue(data) as string;
console.error(data);
addToast('error', $t('adventures.adventure_create_error'));
addToast('error', $t('adventures.location_create_error'));
}
} else {
let res = await fetch(`/api/locations/${adventure.id}`, {
@ -489,13 +489,13 @@
});
let data = await res.json();
if (data.id) {
adventure = data as Adventure;
adventure = data as Location;
isDetails = false;
warningMessage = '';
addToast('success', $t('adventures.adventure_updated'));
addToast('success', $t('adventures.location_updated'));
} else {
warningMessage = Object.values(data)[0] as string;
addToast('error', $t('adventures.adventure_update_error'));
addToast('error', $t('adventures.location_update_error'));
}
}
imageSearch = adventure.name;
@ -509,7 +509,7 @@
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
<div class="modal-box w-11/12 max-w-3xl" role="dialog" on:keydown={handleKeydown} tabindex="0">
<h3 class="font-bold text-2xl">
{adventureToEdit ? $t('adventures.edit_adventure') : $t('adventures.new_adventure')}
{adventureToEdit ? $t('adventures.edit_location') : $t('adventures.new_location')}
</h3>
{#if adventure.id === '' || isDetails}
<div class="modal-action items-center">
@ -622,7 +622,7 @@
<label for="description">{$t('adventures.description')}</label><br />
<MarkdownEditor bind:text={adventure.description} />
<div class="mt-2">
<div class="tooltip tooltip-right" data-tip={$t('adventures.wiki_desc')}>
<div class="tooltip tooltip-right" data-tip={$t('adventures.wiki_location_desc')}>
<button type="button" class="btn btn-neutral mt-2" on:click={generateDesc}
>{$t('adventures.generate_desc')}</button
>
@ -634,7 +634,7 @@
<div>
<div class="form-control flex items-start mt-1">
<label class="label cursor-pointer flex items-start space-x-2">
<span class="label-text">{$t('adventures.public_adventure')}</span>
<span class="label-text">{$t('adventures.public_location')}</span>
<input
type="checkbox"
class="toggle toggle-primary"
@ -919,7 +919,7 @@
{#if adventure.is_public && adventure.id}
<div class="bg-neutral p-4 mt-2 rounded-md shadow-sm text-neutral-content">
<p class=" font-semibold">{$t('adventures.share_adventure')}</p>
<p class=" font-semibold">{$t('adventures.share_location')}</p>
<div class="flex items-center justify-between">
<p class="text-card-foreground font-mono">
{window.location.origin}/adventures/{adventure.id}

View file

@ -33,7 +33,7 @@
{
path: '/adventures',
icon: MapMarker,
label: 'navbar.my_adventures',
label: 'locations.my_locations',
section: 'main'
},
{

View file

@ -1,9 +1,9 @@
<script lang="ts">
import type { Adventure } from '$lib/types';
import type { Location } from '$lib/types';
import ImageDisplayModal from './ImageDisplayModal.svelte';
import { t } from 'svelte-i18n';
export let adventures: Adventure[] = [];
export let adventures: Location[] = [];
let currentSlide = 0;
let image_url: string | null = null;

View file

@ -334,7 +334,7 @@
{#if isChanged}
<div class="alert alert-success mb-4">
<span>{$t('categories.update_after_refresh')}</span>
<span>{$t('categories.location_update_after_refresh')}</span>
</div>
{/if}

View file

@ -1,6 +1,6 @@
<script lang="ts">
import type {
Adventure,
Location,
Transportation,
Lodging,
Note,
@ -31,7 +31,7 @@
import ChecklistCard from './ChecklistCard.svelte';
// Props
export let adventures: Adventure[] = [];
export let adventures: Location[] = [];
export let transportations: Transportation[] = [];
export let lodging: Lodging[] = [];
export let notes: Note[] = [];
@ -45,7 +45,7 @@
let sortOption: string = 'name_asc';
// Filtered arrays
let filteredAdventures: Adventure[] = [];
let filteredAdventures: Location[] = [];
let filteredTransportations: Transportation[] = [];
let filteredLodging: Lodging[] = [];
let filteredNotes: Note[] = [];
@ -256,7 +256,7 @@
<div class="hidden md:flex items-center gap-2">
<div class="stats stats-horizontal bg-base-200/50 border border-base-300/50">
<div class="stat py-2 px-3">
<div class="stat-title text-xs">{$t('navbar.adventures')}</div>
<div class="stat-title text-xs">{$t('locations.locations')}</div>
<div class="stat-value text-sm text-info">{adventures.length}</div>
</div>
<div class="stat py-2 px-3">
@ -380,7 +380,7 @@
on:click={() => (filterOption = 'adventures')}
>
<Adventures class="w-3 h-3" />
{$t('navbar.adventures')}
{$t('locations.locations')}
</button>
<button
class="tab tab-sm gap-2 {filterOption === 'transportation'

View file

@ -9,7 +9,7 @@
import ShareVariant from '~icons/mdi/share-variant';
import { goto } from '$app/navigation';
import type { Adventure, Collection, User } from '$lib/types';
import type { Location, Collection, User } from '$lib/types';
import { addToast } from '$lib/toasts';
import { t } from 'svelte-i18n';
@ -120,7 +120,7 @@
<!-- Adventure Count -->
<p class="text-sm text-base-content/70">
{collection.locations.length}
{$t('navbar.adventures')}
{$t('locations.locations')}
</p>
<!-- Date Range -->

View file

@ -1,5 +1,5 @@
<script lang="ts">
import type { Adventure, Collection } from '$lib/types';
import type { Location, Collection } from '$lib/types';
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
import { onMount } from 'svelte';
@ -172,7 +172,7 @@
</div>
{#if searchQuery}
<h3 class="text-xl font-semibold text-base-content/70 mb-2">
{$t('adventures.no_collections_found')}
{$t('adventures.no_collections_to_add_location')}
</h3>
<p class="text-base-content/50 text-center max-w-md mb-6">
{$t('collection.try_different_search')}
@ -183,7 +183,7 @@
</button>
{:else}
<h3 class="text-xl font-semibold text-base-content/70 mb-2">
{$t('adventures.no_collections_found')}
{$t('adventures.no_collections_to_add_location')}
</h3>
<p class="text-base-content/50 text-center max-w-md">
{$t('adventures.create_collection_first')}

View file

@ -3,10 +3,10 @@
const dispatch = createEventDispatcher();
import { onMount } from 'svelte';
let modal: HTMLDialogElement;
import type { Adventure } from '$lib/types';
import type { Location } from '$lib/types';
export let image: string;
export let adventure: Adventure | null = null;
export let adventure: Location | null = null;
onMount(() => {
modal = document.getElementById('my_modal_1') as HTMLDialogElement;

View file

@ -2,7 +2,7 @@
import { createEventDispatcher, onMount } from 'svelte';
import { t } from 'svelte-i18n';
import ImmichLogo from '$lib/assets/immich.svg';
import type { Adventure, ImmichAlbum } from '$lib/types';
import type { Location, ImmichAlbum } from '$lib/types';
import { debounce } from '$lib';
let immichImages: any[] = [];
@ -12,7 +12,7 @@
let immichNextURL: string = '';
let loading = false;
export let adventure: Adventure | null = null;
export let adventure: Location | null = null;
export let copyImmichLocally: boolean = false;
const dispatch = createEventDispatcher();
@ -21,7 +21,7 @@
let currentAlbum: string = '';
let selectedDate: string =
(adventure as Adventure | null)?.visits
(adventure as Location | null)?.visits
.map((v) => new Date(v.end_date || v.start_date))
.sort((a, b) => +b - +a)[0]
?.toISOString()

View file

@ -2,12 +2,12 @@
import { getBasemapUrl } from '$lib';
import { appVersion } from '$lib/config';
import { addToast } from '$lib/toasts';
import type { Adventure, Lodging, GeocodeSearchResult, Point, ReverseGeocode } from '$lib/types';
import type { Location, Lodging, GeocodeSearchResult, Point, ReverseGeocode } from '$lib/types';
import { onMount } from 'svelte';
import { t } from 'svelte-i18n';
import { DefaultMarker, MapEvents, MapLibre } from 'svelte-maplibre';
export let item: Adventure | Lodging;
export let item: Location | Lodging;
export let triggerMarkVisted: boolean = false;
export let initialLatLng: { lat: number; lng: number } | null = null; // Used to pass the location from the map selection to the modal
@ -366,7 +366,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
{reverseGeocodePlace.city
? reverseGeocodePlace.city + ', '
: ''}{reverseGeocodePlace.region}, {reverseGeocodePlace.country}
{$t('adventures.will_be_marked')}
{$t('adventures.will_be_marked_location')}
</span>
</div>
{/if}

View file

@ -103,7 +103,7 @@
// Navigation items for better organization
const navigationItems = [
{ path: '/adventures', icon: MapMarker, label: 'navbar.adventures' },
{ path: '/adventures', icon: MapMarker, label: 'locations.locations' },
{ path: '/collections', icon: FormatListBulletedSquare, label: 'navbar.collections' },
{ path: '/worldtravel', icon: Earth, label: 'navbar.worldtravel' },
{ path: '/map', icon: Map, label: 'navbar.map' },

View file

@ -1,6 +1,6 @@
<script lang="ts">
// @ts-nocheck
import type { Adventure, GeocodeSearchResult, Point } from '$lib/types';
import type { Location, GeocodeSearchResult, Point } from '$lib/types';
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher();
import { onMount } from 'svelte';
@ -13,7 +13,7 @@
let markers: Point[] = [];
export let query: string | null = null;
export let adventure: Adventure;
export let adventure: Location;
if (query) {
geocode();

View file

@ -182,11 +182,11 @@
if (data.id) {
transportation = data as Transportation;
addToast('success', $t('adventures.adventure_created'));
addToast('success', $t('adventures.location_created'));
dispatch('save', transportation);
} else {
console.error(data);
addToast('error', $t('adventures.adventure_create_error'));
addToast('error', $t('adventures.location_create_error'));
}
} else {
let res = await fetch(`/api/transportations/${transportation.id}`, {
@ -200,10 +200,10 @@
if (data.id) {
transportation = data as Transportation;
addToast('success', $t('adventures.adventure_updated'));
addToast('success', $t('adventures.location_updated'));
dispatch('save', transportation);
} else {
addToast('error', $t('adventures.adventure_update_error'));
addToast('error', $t('adventures.location_update_error'));
}
}
}

View file

@ -4,7 +4,7 @@ import randomBackgrounds from './json/backgrounds.json';
// @ts-ignore
import { DateTime } from 'luxon';
import type {
Adventure,
Location,
Background,
Checklist,
Collection,
@ -34,26 +34,6 @@ export function checkLink(link: string) {
}
}
export async function exportData() {
let res = await fetch('/api/locations/all');
let adventures = (await res.json()) as Location[];
res = await fetch('/api/collections/all');
let collections = (await res.json()) as Collection[];
res = await fetch('/api/visitedregion');
let visitedRegions = await res.json();
const data = {
adventures,
collections,
visitedRegions
};
const blob = new Blob([JSON.stringify(data)], { type: 'application/json' });
return URL.createObjectURL(blob);
}
export function isValidUrl(url: string) {
try {
new URL(url);
@ -63,22 +43,22 @@ export function isValidUrl(url: string) {
}
}
export function groupAdventuresByDate(
adventures: Adventure[],
export function groupLocationsByDate(
locations: Location[],
startDate: Date,
numberOfDays: number
): Record<string, Adventure[]> {
const groupedAdventures: Record<string, Adventure[]> = {};
): Record<string, Location[]> {
const groupedLocations: Record<string, Location[]> = {};
// Initialize all days in the range using DateTime
for (let i = 0; i < numberOfDays; i++) {
const currentDate = DateTime.fromJSDate(startDate).plus({ days: i });
const dateString = currentDate.toISODate(); // 'YYYY-MM-DD'
groupedAdventures[dateString] = [];
groupedLocations[dateString] = [];
}
adventures.forEach((adventure) => {
adventure.visits.forEach((visit: { start_date: string; end_date: string; timezone: any }) => {
locations.forEach((location) => {
location.visits.forEach((visit: { start_date: string; end_date: string; timezone: any }) => {
if (visit.start_date) {
// Check if it's all-day: start has 00:00:00 AND (no end OR end also has 00:00:00)
const startHasZeros = isAllDay(visit.start_date);
@ -115,10 +95,10 @@ export function groupAdventuresByDate(
const currentDate = DateTime.fromJSDate(startDate).plus({ days: i });
const currentDateStr = currentDate.toISODate();
// Include the current day if it falls within the adventure date range
// Include the current day if it falls within the location date range
if (currentDateStr >= startDateStr && currentDateStr <= endDateStr) {
if (groupedAdventures[currentDateStr]) {
groupedAdventures[currentDateStr].push(adventure);
if (groupedLocations[currentDateStr]) {
groupedLocations[currentDateStr].push(location);
}
}
}
@ -126,7 +106,7 @@ export function groupAdventuresByDate(
});
});
return groupedAdventures;
return groupedLocations;
}
function getLocalDateString(date: Date): string {
@ -426,15 +406,6 @@ export let TRANSPORTATION_TYPES_ICONS = {
other: '❓'
};
export function getAdventureTypeLabel(type: string) {
// return the emoji ADVENTURE_TYPE_ICONS label for the given type if not found return ? emoji
if (type in ADVENTURE_TYPE_ICONS) {
return ADVENTURE_TYPE_ICONS[type as keyof typeof ADVENTURE_TYPE_ICONS];
} else {
return '❓';
}
}
export function getRandomBackground() {
const today = new Date();

View file

@ -14,7 +14,7 @@ export type User = {
disable_password: boolean;
};
export type Adventure = {
export type Location = {
id: string;
name: string;
location?: string | null;
@ -50,7 +50,7 @@ export type Adventure = {
country?: Country | null;
};
export type AdditionalAdventure = Adventure & {
export type AdditionalLocation = Location & {
sun_times: {
date: string;
visit_id: string;
@ -126,7 +126,7 @@ export type Collection = {
name: string;
description: string;
is_public: boolean;
locations: Adventure[];
locations: Location[];
created_at?: string | null;
start_date: string | null;
end_date: string | null;

View file

@ -14,18 +14,12 @@
"adventures": {
"activities": {},
"add_to_collection": "Zur Sammlung hinzufügen",
"adventure_delete_confirm": "Sind Sie sicher, dass Sie dieses Abenteuer löschen möchten? \nDiese Aktion kann nicht rückgängig gemacht werden.",
"collection_link_error": "Fehler beim Verknüpfen des Abenteuers mit der Sammlung",
"collection_link_success": "Abenteuer erfolgreich mit Sammlung verknüpft!",
"collection_remove_error": "Beim Entfernen des Abenteuers aus der Sammlung ist ein Fehler aufgetreten",
"collection_remove_success": "Abenteuer erfolgreich aus der Sammlung entfernt!",
"delete": "Löschen",
"edit_adventure": "Abenteuer bearbeiten",
"no_image_found": "Kein Bild gefunden",
"open_details": "Details",
"remove_from_collection": "Aus Sammlung entfernen",
"adventure": "Abenteuer",
"adventure_delete_success": "Abenteuer erfolgreich gelöscht!",
"archive": "Archiv",
"archived": "Archiviert",
"archived_collection_message": "Sammlung erfolgreich archiviert!",
@ -39,7 +33,6 @@
"count_txt": "Suchergebnisse",
"date": "Datum",
"dates": "Termine",
"delete_adventure": "Abenteuer löschen",
"delete_collection": "Sammlung löschen",
"delete_collection_success": "Sammlung erfolgreich gelöscht!",
"descending": "Absteigend",
@ -56,8 +49,6 @@
"my_collections": "Meine Sammlungen",
"name": "Name",
"no_image_url": "Unter dieser URL wurde kein Bild gefunden.",
"not_found": "Abenteuer nicht gefunden",
"not_found_desc": "Das von Ihnen gesuchte Abenteuer konnte nicht gefunden werden. \nBitte versuchen Sie ein anderes Abenteuer aus oder schauen Sie später noch mal vorbei.",
"open_filters": "Filter öffnen",
"order_by": "Sortieren nach",
"order_direction": "Sortierreihenfolge",
@ -80,10 +71,6 @@
"activity_types": "Aktivitätstypen",
"add": "Hinzufügen",
"add_notes": "Notizen hinzufügen",
"adventure_create_error": "Das Abenteuer konnte nicht erstellt werden",
"adventure_created": "Abenteuer erstellt",
"adventure_update_error": "Das Abenteuer konnte nicht aktualisiert werden",
"adventure_updated": "Abenteuer aktualisiert",
"basic_information": "Basisdaten",
"category": "Kategorie",
"clear_map": "Karte leeren",
@ -100,23 +87,19 @@
"location": "Standort",
"location_information": "Standortinformationen",
"my_images": "Meine Bilder",
"new_adventure": "Neues Abenteuer",
"no_description_found": "Keine Beschreibung gefunden",
"no_images": "Keine Bilder",
"no_location": "Bitte geben Sie einen Ort ein",
"no_results": "Keine Ergebnisse gefunden",
"public_adventure": "Öffentliches Abenteuer",
"remove": "Entfernen",
"save_next": "Speichern & weiter",
"search_for_location": "Nach einem Ort suchen",
"search_results": "Suchergebnisse",
"see_adventures": "Siehe Abenteuer",
"share_adventure": "Teilen Sie dieses Abenteuer!",
"start_date": "Startdatum",
"upload_image": "Bild hochladen",
"url": "URL",
"warning": "Warnung",
"wiki_desc": "Ruft einen Auszug aus einem Wikipedia-Artikel ab, der zum Namen des Abenteuers passt.",
"wikipedia": "Wikipedia",
"adventure_not_found": "Keine Abenteuer vorhanden. \nFügen Sie welche über die Plus-Schaltfläche unten rechts hinzu oder versuchen Sie, die Filter zu ändern!",
"all": "Alle",
@ -124,7 +107,6 @@
"mark_visited": "als besucht markieren",
"my_adventures": "Meine Abenteuer",
"no_adventures_found": "Keine Abenteuer gefunden",
"no_collections_found": "Es wurden keine Sammlungen gefunden, die zu diesem Abenteuer hinzugefügt werden können.",
"no_linkable_adventures": "Es wurden keine Abenteuer gefunden, die mit dieser Sammlung verknüpft werden können.",
"not_visited": "Nicht besucht",
"regions_updated": "Regionen aktualisiert",
@ -181,10 +163,7 @@
"starting_airport": "Startflughafen",
"to": "Nach",
"transportation_delete_confirm": "Sind Sie sicher, dass Sie diesen Transport löschen möchten? \nDies lässt sich nicht rückgängig machen.",
"will_be_marked": "wird als besucht markiert, sobald das Abenteuer gespeichert wird.",
"cities_updated": "Städte aktualisiert",
"create_adventure": "Erstelle Abenteuer",
"no_adventures_to_recommendations": "Keine Abenteuer gefunden. \nFügen Sie mindestens ein Abenteuer hinzu, um Empfehlungen zu erhalten.",
"finding_recommendations": "Entdecken Sie verborgene Schätze für Ihr nächstes Abenteuer",
"attachment": "Anhang",
"attachment_delete_success": "Anhang gelöscht!",
@ -246,7 +225,31 @@
"name_location": "Name, Ort",
"collection_contents": "Sammelinhalt",
"check_in": "Einchecken",
"check_out": "Kasse"
"check_out": "Kasse",
"collection_link_location_error": "Fehlerverknüpfungsort zur Sammlung",
"collection_link_location_success": "Standort, die mit der Sammlung erfolgreich verknüpft sind!",
"collection_locations": "Sammelorte einbeziehen",
"collection_remove_location_error": "Fehler zur Entfernung des Standorts aus der Sammlung",
"collection_remove_location_success": "Standort erfolgreich aus der Sammlung entfernt!",
"create_location": "Standort erstellen",
"delete_location": "Position löschen",
"edit_location": "Standort bearbeiten",
"location_create_error": "Der Standort erstellt nicht",
"location_created": "Ort erstellt",
"location_delete_confirm": "Sind Sie sicher, dass Sie diesen Ort löschen möchten? \nDiese Aktion kann nicht rückgängig gemacht werden.",
"location_delete_success": "Standort erfolgreich gelöscht!",
"location_not_found": "Ort nicht gefunden",
"location_not_found_desc": "Der Ort, den Sie gesucht haben, konnte nicht gefunden werden. \nBitte probieren Sie einen anderen Ort aus oder schauen Sie später noch einmal vorbei.",
"location_update_error": "Der Standort nicht aktualisiert",
"location_updated": "Standort aktualisiert",
"new_location": "Neuer Standort",
"no_collections_to_add_location": "Keine Sammlungen, die diesen Ort hinzuzufügen.",
"no_locations_to_recommendations": "Keine Standorte gefunden. \nFügen Sie mindestens einen Ort hinzu, um Empfehlungen zu erhalten.",
"public_location": "Öffentliche Lage",
"share_location": "Teilen Sie diesen Ort!",
"visit_calendar": "Besuchen Sie den Kalender",
"wiki_location_desc": "Zieht Auszug aus dem Wikipedia -Artikel, der dem Namen des Standorts entspricht.",
"will_be_marked_location": "wird als besucht markiert, sobald der Standort gespeichert ist."
},
"home": {
"desc_1": "Entdecken, planen und erkunden Sie mühelos",
@ -317,10 +320,10 @@
"public_tooltip": "Mit einem öffentlichen Profil können Benutzer Sammlungen mit Ihnen teilen und Ihr Profil auf der Benutzerseite anzeigen.",
"new_password": "Neues Passwort",
"or_3rd_party": "Oder melden Sie sich bei einem Drittanbieter an",
"no_public_adventures": "Keine öffentlichen Abenteuer gefunden",
"no_public_collections": "Keine öffentlichen Sammlungen gefunden",
"user_adventures": "Benutzerabenteuer",
"user_collections": "Benutzersammlungen"
"user_collections": "Benutzersammlungen",
"no_public_locations": "Keine öffentlichen Standorte gefunden",
"user_locations": "Benutzerstandorte"
},
"users": {
"no_users_found": "Keine Benutzer mit öffentlichem Profil gefunden."
@ -579,13 +582,16 @@
"show_visited_regions": "Besuchte Regionen anzeigen",
"view_details": "Details anzeigen",
"adventure_stats": "Abenteuerstatistiken",
"adventures_shown": "Abenteuer gezeigt",
"completion": "Fertigstellung",
"display_options": "Anzeigenoptionen",
"map_controls": "Kartensteuerungen",
"marker_placed_on_map": "Marker auf der Karte platziert",
"place_marker_desc": "Klicken Sie auf die Karte, um einen Marker zu platzieren, oder fügen Sie ein Abenteuer ohne Ort hinzu.",
"regions": "Regionen"
"regions": "Regionen",
"add_location": "Neuen Standort hinzufügen",
"add_location_at_marker": "Fügen Sie einen neuen Standort bei Marker hinzu",
"location_map": "Standortkarte",
"locations_shown": "Standorte gezeigt",
"place_marker_desc_location": "Klicken Sie auf die Karte, um einen Marker zu platzieren."
},
"languages": {},
"share": {
@ -611,9 +617,9 @@
"no_shared_adventures": "Dieser Benutzer hat noch keine öffentlichen Abenteuer geteilt.",
"no_shared_collections": "Dieser Benutzer hat noch keine öffentlichen Sammlungen geteilt.",
"planned_trips": "Geplante Reisen",
"public_adventure_experiences": "Öffentliche Abenteuererlebnisse",
"travel_statistics": "Reisestatistik",
"your_journey_at_a_glance": "Ihre Abenteuerreise auf einen Blick"
"your_journey_at_a_glance": "Ihre Abenteuerreise auf einen Blick",
"public_location_experiences": "Öffentliche Standortlebnisse"
},
"categories": {
"category_name": "Kategoriename",
@ -622,9 +628,9 @@
"manage_categories": "Kategorien verwalten",
"no_categories_found": "Keine Kategorien gefunden.",
"select_category": "Kategorie wählen",
"update_after_refresh": "Die Abenteuerkarten werden aktualisiert, sobald Sie die Seite aktualisieren.",
"add_new_category": "Neue Kategorie hinzufügen",
"name_required": "Der Kategorienname ist erforderlich"
"name_required": "Der Kategorienname ist erforderlich",
"location_update_after_refresh": "Die Standortkarten werden aktualisiert, sobald Sie die Seite aktualisiert haben."
},
"dashboard": {
"add_some": "Warum nicht gleich Ihr nächstes Abenteuer planen? Sie können ein neues Abenteuer hinzufügen, indem Sie auf den Button unten klicken.",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "Empfehlung",
"recommendations": "Empfehlungen",
"adventure_recommendations": "Abenteuerempfehlungen",
"food": "Essen",
"tourism": "Tourismus"
"tourism": "Tourismus",
"location_recommendations": "Standortempfehlungen"
},
"lodging": {
"apartment": "Wohnung",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "Verbinden Sie Ihr Google Maps-Konto, um hochwertige Suchergebnisse und Empfehlungen für Standort zu erhalten."
},
"calendar": {
"all_categories": "Alle Kategorien",
"all_day_event": "Ganztägige Veranstaltung",
"calendar_overview": "Kalenderübersicht",
"categories": "Kategorien",
"day": "Tag",
"events_scheduled": "Veranstaltungen geplant",
"filter_by_category": "Filter nach Kategorie",
"filtered_results": "Gefilterte Ergebnisse",
"month": "Monat",
"today": "Heute",
"total_events": "Gesamtereignisse",
"week": "Woche"
},
"locations": {
"location": "Standort",
"locations": "Standorte",
"my_locations": "Meine Standorte"
}
}

File diff suppressed because it is too large Load diff

View file

@ -64,11 +64,6 @@
"of_world": "del mundo"
},
"adventures": {
"collection_remove_success": "¡Aventura eliminada de la colección con éxito!",
"collection_remove_error": "Error al eliminar la aventura de la colección",
"collection_link_success": "¡Aventura vinculada a la colección con éxito!",
"collection_link_error": "Error al vincular la aventura a la colección",
"adventure_delete_confirm": "¿Estás seguro de que quieres eliminar esta aventura? Esta acción no se puede deshacer.",
"open_details": "Abrir Detalles",
"edit_adventure": "Editar Aventura",
"remove_from_collection": "Eliminar de la Colección",
@ -80,8 +75,6 @@
"homepage": "Página principal",
"latitude": "Latitud",
"longitude": "Longitud",
"not_found": "Aventura no encontrada",
"not_found_desc": "La aventura que buscabas no se pudo encontrar. \nPruebe una aventura diferente o vuelva a consultar más tarde.",
"visit": "Visita",
"visits": "Visitas",
"adventure": "Aventura",
@ -116,8 +109,6 @@
"share": "Compartir",
"unarchive": "Desarchivar",
"cancel": "Cancelar",
"adventure_delete_success": "¡Aventura eliminada con éxito!",
"delete_adventure": "Eliminar aventura",
"planned": "Planificado",
"visited": "Visitado",
"dates": "Fechas",
@ -134,10 +125,6 @@
"activity_types": "Tipos de actividad",
"add": "Agregar",
"add_notes": "Agregar notas",
"adventure_create_error": "No se pudo crear la aventura",
"adventure_created": "Aventura creada",
"adventure_update_error": "No se pudo actualizar la aventura",
"adventure_updated": "Aventura actualizada",
"basic_information": "Información básica",
"category": "Categoría",
"clear_map": "Limpiar mapa",
@ -153,26 +140,21 @@
"location": "Ubicación",
"location_information": "Información de ubicación",
"my_images": "Mis imágenes",
"new_adventure": "Nueva aventura",
"no_description_found": "No se encontró ninguna descripción",
"no_images": "Sin imágenes",
"no_location": "Por favor ingresa una ubicación",
"no_results": "No se encontraron resultados",
"public_adventure": "Aventura pública",
"remove": "Eliminar",
"save_next": "Guardar y Siguiente",
"search_for_location": "Buscar una ubicación",
"search_results": "Resultados de búsqueda",
"share_adventure": "¡Comparte esta aventura!",
"start_date": "Fecha de inicio",
"upload_image": "Subir imagen",
"url": "URL",
"warning": "Advertencia",
"wiki_desc": "Extrae un extracto de un artículo de Wikipedia que coincide con el nombre de la aventura.",
"wikipedia": "Wikipedia",
"adventure_not_found": "No hay aventuras que mostrar. \n¡Agregue algunas usando el botón más en la parte inferior derecha o intente cambiar los filtros!",
"no_adventures_found": "No se encontraron aventuras",
"no_collections_found": "No se encontraron colecciones para agregar esta aventura.",
"my_adventures": "Mis aventuras",
"no_linkable_adventures": "No se encontraron aventuras que puedan vincularse a esta colección.",
"mark_visited": "Marcar como visitado",
@ -233,10 +215,7 @@
"starting_airport": "Aeropuerto de inicio",
"to": "A",
"transportation_delete_confirm": "¿Está seguro de que desea eliminar este transporte? \nEsta acción no se puede deshacer.",
"will_be_marked": "se marcará como visitado una vez guardada la aventura.",
"cities_updated": "ciudades actualizadas",
"create_adventure": "Crear aventura",
"no_adventures_to_recommendations": "No se encontraron aventuras. \nAñade al menos una aventura para obtener recomendaciones.",
"finding_recommendations": "Descubriendo gemas ocultas para tu próxima aventura",
"attachment": "Adjunto",
"attachment_delete_success": "¡El archivo adjunto se eliminó exitosamente!",
@ -298,7 +277,31 @@
"name_location": "Nombre, ubicación",
"collection_contents": "Contenido de la colección",
"check_in": "Registrarse",
"check_out": "Verificar"
"check_out": "Verificar",
"collection_link_location_error": "Error de vinculación de la ubicación para la recopilación",
"collection_link_location_success": "¡Ubicación vinculada a la colección con éxito!",
"collection_locations": "Incluir ubicaciones de colección",
"collection_remove_location_error": "Error de eliminación de la ubicación de la colección",
"collection_remove_location_success": "¡Ubicación eliminada de la colección con éxito!",
"create_location": "Crear ubicación",
"delete_location": "Eliminar la ubicación",
"edit_location": "Ubicación de edición",
"location_create_error": "No se pudo crear la ubicación",
"location_created": "Ubicación creada",
"location_delete_confirm": "¿Estás seguro de que quieres eliminar esta ubicación? \nEsta acción no se puede deshacer.",
"location_delete_success": "Ubicación eliminada con éxito!",
"location_not_found": "Ubicación no encontrada",
"location_not_found_desc": "No se podía encontrar la ubicación que estaba buscando. \nPruebe una ubicación diferente o vuelva a consultar más tarde.",
"location_update_error": "No se pudo actualizar la ubicación",
"location_updated": "Ubicación actualizada",
"new_location": "Nueva ubicación",
"no_collections_to_add_location": "No se encuentran colecciones para agregar esta ubicación a.",
"no_locations_to_recommendations": "No se encontraron ubicaciones. \nAgregue al menos una ubicación para obtener recomendaciones.",
"public_location": "Ubicación pública",
"share_location": "¡Comparte esta ubicación!",
"visit_calendar": "Visitar el calendario",
"wiki_location_desc": "Extrae extracto del artículo de Wikipedia que coincide con el nombre de la ubicación.",
"will_be_marked_location": "se marcará según lo visitado una vez que se guarde la ubicación."
},
"worldtravel": {
"all": "Todo",
@ -373,10 +376,10 @@
"public_tooltip": "Con un perfil público, los usuarios pueden compartir colecciones con usted y ver su perfil en la página de usuarios.",
"new_password": "Nueva contraseña",
"or_3rd_party": "O inicie sesión con un servicio de terceros",
"no_public_adventures": "No se encontraron aventuras públicas",
"no_public_collections": "No se encontraron colecciones públicas",
"user_adventures": "Aventuras de usuario",
"user_collections": "Colecciones de usuarios"
"user_collections": "Colecciones de usuarios",
"no_public_locations": "No se encontraron ubicaciones públicas",
"user_locations": "Ubicación de usuarios"
},
"users": {
"no_users_found": "No se encontraron usuarios con perfiles públicos."
@ -583,9 +586,12 @@
"display_options": "Opciones de visualización",
"map_controls": "Controles de mapa",
"marker_placed_on_map": "Marcador colocado en el mapa",
"place_marker_desc": "Haga clic en el mapa para colocar un marcador o agregar una aventura sin ubicación.",
"regions": "Regiones",
"adventures_shown": "aventuras mostradas"
"add_location": "Agregar nueva ubicación",
"add_location_at_marker": "Agregar nueva ubicación en el marcador",
"location_map": "Mapa de ubicación",
"locations_shown": "ubicaciones mostradas",
"place_marker_desc_location": "Haga clic en el mapa para colocar un marcador."
},
"share": {
"no_users_shared": "Ningún usuario compartió con",
@ -611,9 +617,9 @@
"no_shared_adventures": "Este usuario aún no ha compartido ninguna aventura pública.",
"no_shared_collections": "Este usuario aún no ha compartido ninguna colección pública.",
"planned_trips": "Viajes planificados",
"public_adventure_experiences": "Experiencias de aventura pública",
"travel_statistics": "Estadísticas de viaje",
"your_journey_at_a_glance": "Tu viaje de aventura a un vistazo"
"your_journey_at_a_glance": "Tu viaje de aventura a un vistazo",
"public_location_experiences": "Experiencias de ubicación pública"
},
"categories": {
"category_name": "Nombre de categoría",
@ -622,9 +628,9 @@
"manage_categories": "Administrar categorías",
"no_categories_found": "No se encontraron categorías.",
"select_category": "Seleccionar categoría",
"update_after_refresh": "Las tarjetas de aventuras se actualizarán una vez que actualices la página.",
"add_new_category": "Agregar nueva categoría",
"name_required": "Se requiere el nombre de la categoría"
"name_required": "Se requiere el nombre de la categoría",
"location_update_after_refresh": "Las tarjetas de ubicación se actualizarán una vez que actualice la página."
},
"dashboard": {
"add_some": "¿Por qué no empezar a planificar tu próxima aventura? \nPuedes agregar una nueva aventura haciendo clic en el botón de abajo.",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "Recomendación",
"recommendations": "Recomendaciones",
"adventure_recommendations": "Recomendaciones de aventura",
"food": "Comida",
"tourism": "Turismo"
"tourism": "Turismo",
"location_recommendations": "Recomendaciones de ubicación"
},
"lodging": {
"apartment": "Apartamento",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "Conecte su cuenta de Google Maps para obtener resultados y recomendaciones de búsqueda de ubicación de alta calidad."
},
"calendar": {
"all_categories": "Todas las categorías",
"all_day_event": "Evento todo el día",
"calendar_overview": "Descripción general del calendario",
"categories": "Categorías",
"day": "Día",
"events_scheduled": "Eventos programados",
"filter_by_category": "Filtrar por categoría",
"filtered_results": "Resultados filtrados",
"month": "Mes",
"today": "Hoy",
"total_events": "Total de eventos",
"week": "Semana"
},
"locations": {
"location": "Ubicación",
"locations": "Ubicación",
"my_locations": "Mis ubicaciones"
}
}

View file

@ -14,18 +14,12 @@
"adventures": {
"activities": {},
"add_to_collection": "Ajouter à la collection",
"adventure_delete_confirm": "Êtes-vous sûr de vouloir supprimer cette aventure ? \nCette action ne peut pas être annulée.",
"collection_link_error": "Erreur lors de la liaison de l'aventure à la collection",
"collection_link_success": "Aventure liée à la collection avec succès !",
"collection_remove_error": "Erreur lors de la suppression de l'aventure de la collection",
"collection_remove_success": "Aventure supprimée de la collection avec succès !",
"delete": "Supprimer",
"edit_adventure": "Modifier l'aventure",
"no_image_found": "Aucune image trouvée",
"open_details": "Ouvrir les détails",
"remove_from_collection": "Supprimer de la collection",
"adventure": "Aventure",
"adventure_delete_success": "Aventure supprimée avec succès !",
"archive": "Archiver",
"archived": "Archivée",
"archived_collection_message": "Collection archivée avec succès !",
@ -40,7 +34,6 @@
"create_new": "Créer une nouvelle aventure...",
"date": "Date",
"dates": "Dates",
"delete_adventure": "Supprimer l'aventure",
"delete_collection": "Supprimer la collection",
"delete_collection_success": "Collection supprimée avec succès !",
"descending": "Descendant",
@ -57,8 +50,6 @@
"my_collections": "Mes collections",
"name": "Nom",
"no_image_url": "Aucune image trouvée à cette URL.",
"not_found": "Aventure introuvable",
"not_found_desc": "L'aventure que vous cherchez est introuvable. \nVeuillez essayer une autre aventure ou revenez plus tard.",
"open_filters": "Ouvrir les filtres",
"order_by": "Trier par",
"order_direction": "Direction du tri",
@ -81,10 +72,6 @@
"activity_types": "Types d'activités",
"add": "Ajouter",
"add_notes": "Ajouter des notes",
"adventure_create_error": "Échec de la création de l'aventure",
"adventure_created": "Aventure créée",
"adventure_update_error": "Échec de la mise à jour de l'aventure",
"adventure_updated": "Aventure mise à jour",
"basic_information": "Informations de base",
"category": "Catégorie",
"clear_map": "Effacer la carte",
@ -100,23 +87,19 @@
"location": "Lieu",
"location_information": "Informations de localisation",
"my_images": "Mes images",
"new_adventure": "Nouvelle aventure",
"no_description_found": "Aucune description trouvée",
"no_images": "Aucune image",
"no_location": "Veuillez entrer un emplacement",
"no_results": "Aucun résultat trouvé",
"public_adventure": "Aventure publique",
"remove": "Retirer",
"save_next": "Sauvegarder",
"search_for_location": "Rechercher un lieu",
"search_results": "Résultats de la recherche",
"see_adventures": "Voir les aventures",
"share_adventure": "Partagez cette aventure !",
"start_date": "Date de début",
"upload_image": "Télécharger une image",
"url": "URL",
"warning": "Avertissement",
"wiki_desc": "Obtient un extrait de l'article Wikipédia correspondant au nom de l'aventure.",
"wikipedia": "Wikipédia",
"adventure_not_found": "Il n'y a aucune aventure à afficher. \nAjoutez-en en utilisant le bouton '+' en bas à droite ou essayez de changer les filtres !",
"all": "Tous",
@ -124,7 +107,6 @@
"mark_visited": "Marquer comme visité",
"my_adventures": "Mes aventures",
"no_adventures_found": "Aucune aventure trouvée",
"no_collections_found": "Aucune collection trouvée pour ajouter cette aventure.",
"no_linkable_adventures": "Aucune aventure trouvée pouvant être liée à cette collection.",
"not_visited": "Non visitée",
"regions_updated": "régions mises à jour",
@ -181,10 +163,7 @@
"starting_airport": "Aéroport de départ",
"to": "Vers",
"transportation_delete_confirm": "Etes-vous sûr de vouloir supprimer ce transport ? \nCette action ne peut pas être annulée.",
"will_be_marked": "sera marqué comme visité une fois laventure sauvegardée.",
"cities_updated": "villes mises à jour",
"create_adventure": "Créer une aventure",
"no_adventures_to_recommendations": "Aucune aventure trouvée. \nAjoutez au moins une aventure pour obtenir des recommandations.",
"finding_recommendations": "Découvrir des trésors cachés pour votre prochaine aventure",
"attachment": "Pièce jointe",
"attachment_delete_success": "Pièce jointe supprimée avec succès !",
@ -246,7 +225,31 @@
"name_location": "nom, emplacement",
"collection_contents": "Contenu de la collection",
"check_in": "Enregistrement",
"check_out": "Vérifier"
"check_out": "Vérifier",
"collection_link_location_error": "Erreur liant l'emplacement à la collection",
"collection_link_location_success": "Emplacement lié à la collection avec succès!",
"collection_locations": "Inclure les emplacements de collecte",
"collection_remove_location_error": "Erreur de suppression de l'emplacement de la collection",
"collection_remove_location_success": "Emplacement retiré de la collection avec succès!",
"create_location": "Créer un emplacement",
"delete_location": "Supprimer l'emplacement",
"edit_location": "Modifier l'emplacement",
"location_create_error": "Échec de la création de l'emplacement",
"location_created": "Emplacement créé",
"location_delete_confirm": "Êtes-vous sûr de vouloir supprimer cet emplacement? \nCette action ne peut pas être annulée.",
"location_delete_success": "Emplacement supprimé avec succès!",
"location_not_found": "Emplacement introuvable",
"location_not_found_desc": "L'emplacement que vous recherchiez n'a pas pu être trouvé. \nVeuillez essayer un autre emplacement ou revenir plus tard.",
"location_update_error": "Échec de la mise à jour de l'emplacement",
"location_updated": "Emplacement mis à jour",
"new_location": "Nouvel emplacement",
"no_collections_to_add_location": "Aucune collection n'a été trouvée pour ajouter cet emplacement à.",
"no_locations_to_recommendations": "Aucun emplacement trouvé. \nAjoutez au moins un emplacement pour obtenir des recommandations.",
"public_location": "Lieu public",
"share_location": "Partagez cet emplacement!",
"visit_calendar": "Visiter le calendrier",
"wiki_location_desc": "Tire un extrait de l'article de Wikipedia correspondant au nom de l'emplacement.",
"will_be_marked_location": "sera marqué comme visité une fois l'emplacement enregistré."
},
"home": {
"desc_1": "Découvrez, planifiez et explorez en toute simplicité",
@ -317,10 +320,10 @@
"public_tooltip": "Avec un profil public, les utilisateurs peuvent partager des collections avec vous et afficher votre profil sur la page des utilisateurs.",
"new_password": "Nouveau mot de passe",
"or_3rd_party": "Ou connectez-vous avec un service tiers",
"no_public_adventures": "Aucune aventure publique trouvée",
"no_public_collections": "Aucune collection publique trouvée",
"user_adventures": "Aventures de l'utilisateur",
"user_collections": "Collections de l'utilisateur"
"user_collections": "Collections de l'utilisateur",
"no_public_locations": "Aucun emplacement public trouvé",
"user_locations": "Emplacements des utilisateurs"
},
"users": {
"no_users_found": "Aucun utilisateur trouvé avec un profil public."
@ -579,13 +582,16 @@
"show_visited_regions": "Afficher les régions visitées",
"view_details": "Afficher les détails",
"adventure_stats": "Statistiques d'aventure",
"adventures_shown": "aventures montrées",
"completion": "Achèvement",
"display_options": "Options d'affichage",
"map_controls": "Contrôles de cartes",
"marker_placed_on_map": "Marqueur placé sur la carte",
"place_marker_desc": "Cliquez sur la carte pour placer un marqueur ou ajouter une aventure sans emplacement.",
"regions": "Régions"
"regions": "Régions",
"add_location": "Ajouter un nouvel emplacement",
"add_location_at_marker": "Ajouter un nouvel emplacement chez Marker",
"location_map": "Carte de localisation",
"locations_shown": "Emplacements montrés",
"place_marker_desc_location": "Cliquez sur la carte pour placer un marqueur."
},
"languages": {},
"share": {
@ -611,9 +617,9 @@
"no_shared_adventures": "Cet utilisateur n'a encore partagé aucune aventure publique.",
"no_shared_collections": "Cet utilisateur n'a pas encore partagé de collections publiques.",
"planned_trips": "Voyages prévus",
"public_adventure_experiences": "Expériences d'aventure publique",
"travel_statistics": "Statistiques de voyage",
"your_journey_at_a_glance": "Votre voyage d'aventure en un coup d'œil"
"your_journey_at_a_glance": "Votre voyage d'aventure en un coup d'œil",
"public_location_experiences": "Expériences de localisation publique"
},
"categories": {
"category_name": "Nom de la catégorie",
@ -622,9 +628,9 @@
"manage_categories": "Gérer les catégories",
"no_categories_found": "Aucune catégorie trouvée.",
"select_category": "Sélectionnez une catégorie",
"update_after_refresh": "Les cartes d'aventure seront mises à jour une fois que vous aurez actualisé la page.",
"add_new_category": "Ajouter une nouvelle catégorie",
"name_required": "Le nom de catégorie est requis"
"name_required": "Le nom de catégorie est requis",
"location_update_after_refresh": "Les cartes de localisation seront mises à jour une fois que vous avez actualisé la page."
},
"dashboard": {
"add_some": "Pourquoi ne pas commencer à planifier votre prochaine aventure ? \nVous pouvez ajouter une nouvelle aventure en cliquant sur le bouton ci-dessous.",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "Recommandation",
"recommendations": "Recommandations",
"adventure_recommendations": "Recommandations d'aventure",
"food": "Nourriture",
"tourism": "Tourisme"
"tourism": "Tourisme",
"location_recommendations": "Recommandations de localisation"
},
"lodging": {
"apartment": "Appartement",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "Connectez votre compte Google Maps pour obtenir des résultats de recherche et recommandations de recherche de haute qualité."
},
"calendar": {
"all_categories": "Toutes les catégories",
"all_day_event": "Événement toute la journée",
"calendar_overview": "Aperçu du calendrier",
"categories": "Catégories",
"day": "Jour",
"events_scheduled": "événements prévus",
"filter_by_category": "Filtre par catégorie",
"filtered_results": "Résultats filtrés",
"month": "Mois",
"today": "Aujourd'hui",
"total_events": "Événements totaux",
"week": "Semaine"
},
"locations": {
"location": "Emplacement",
"locations": "Lieux",
"my_locations": "Mes emplacements"
}
}

View file

@ -15,7 +15,6 @@
"activities": {},
"add_to_collection": "Aggiungi alla collezione",
"adventure": "Avventura",
"adventure_delete_confirm": "Sei sicuro di voler eliminare questa avventura? \nQuesta azione non può essere annullata.",
"archive": "Archivio",
"archived": "Archiviato",
"archived_collection_message": "Collezione archiviata con successo!",
@ -25,9 +24,6 @@
"category_filter": "Filtro categoria",
"clear": "Rimuovere",
"collection": "Collezione",
"collection_link_error": "Errore nel collegamento dell'avventura alla collezione",
"collection_remove_error": "Errore durante la rimozione dell'avventura dalla collezione",
"collection_remove_success": "Avventura rimossa con successo dalla collezione!",
"count_txt": "risultati corrispondenti alla tua ricerca",
"create_new": "Crea nuovo...",
"date": "Data",
@ -44,8 +40,6 @@
"my_collections": "Le mie collezioni",
"name": "Nome",
"no_image_found": "Nessuna immagine trovata",
"not_found": "Avventura non trovata",
"not_found_desc": "L'avventura che stavi cercando non è stata trovata. \nProva un'avventura diversa o riprova più tardi.",
"open_details": "Apri Dettagli",
"open_filters": "Apri filtri",
"order_by": "Ordina per",
@ -62,11 +56,8 @@
"updated": "Aggiornato",
"visit": "Visita",
"visits": "Visite",
"adventure_delete_success": "Avventura eliminata con successo!",
"collection_adventures": "Includi avventure dalle raccolte",
"collection_link_success": "Avventura collegata alla collezione con successo!",
"dates": "Date",
"delete_adventure": "Elimina avventura",
"duration": "Durata",
"image_removed_error": "Errore durante la rimozione dell'immagine",
"image_removed_success": "Immagine rimossa con successo!",
@ -80,10 +71,6 @@
"activity_types": "Tipi di attività",
"add": "Aggiungere",
"add_notes": "Aggiungi note",
"adventure_create_error": "Impossibile creare l'avventura",
"adventure_created": "Avventura creata",
"adventure_update_error": "Impossibile aggiornare l'avventura",
"adventure_updated": "Avventura aggiornata",
"basic_information": "Informazioni di base",
"category": "Categoria",
"clear_map": "Libera mappa",
@ -99,23 +86,19 @@
"location": "Posizione",
"location_information": "Informazioni sulla posizione",
"my_images": "Le mie immagini",
"new_adventure": "Nuova avventura",
"no_description_found": "Nessuna descrizione trovata",
"no_images": "Nessuna immagine",
"no_location": "Inserisci una località",
"no_results": "Nessun risultato trovato",
"public_adventure": "Avventura pubblica",
"remove": "Rimuovere",
"save_next": "Salva",
"search_for_location": "Cerca una posizione",
"search_results": "Risultati della ricerca",
"see_adventures": "Vedi Avventure",
"share_adventure": "Condividi questa avventura!",
"start_date": "Data di inizio",
"upload_image": "Carica immagine",
"url": "URL",
"warning": "Avvertimento",
"wiki_desc": "Estrae un estratto dall'articolo di Wikipedia corrispondente al nome dell'avventura.",
"wiki_image_error": "Errore durante il recupero dell'immagine da Wikipedia",
"wikipedia": "Wikipedia",
"adventure_not_found": "Non ci sono avventure da visualizzare. \nAggiungine alcuni utilizzando il pulsante più in basso a destra o prova a cambiare i filtri!",
@ -124,7 +107,6 @@
"mark_visited": "Segna come visitato",
"my_adventures": "Le mie avventure",
"no_adventures_found": "Nessuna avventura trovata",
"no_collections_found": "Nessuna collezione trovata a cui aggiungere questa avventura.",
"no_linkable_adventures": "Non è stata trovata alcuna avventura che possa essere collegata a questa collezione.",
"not_visited": "Non visitato",
"regions_updated": "regioni aggiornate",
@ -181,10 +163,7 @@
"starting_airport": "Aeroporto di partenza",
"to": "A",
"transportation_delete_confirm": "Sei sicuro di voler eliminare questo trasporto? \nQuesta azione non può essere annullata.",
"will_be_marked": "verrà contrassegnato come visitato una volta salvata l'avventura.",
"cities_updated": "città aggiornate",
"create_adventure": "Crea Avventura",
"no_adventures_to_recommendations": "Nessuna avventura trovata. \nAggiungi almeno un'avventura per ricevere consigli.",
"finding_recommendations": "Alla scoperta di tesori nascosti per la tua prossima avventura",
"attachment": "Allegato",
"attachment_delete_success": "Allegato eliminato con successo!",
@ -246,7 +225,31 @@
"name_location": "Nome, posizione",
"collection_contents": "Contenuto di raccolta",
"check_in": "Check -in",
"check_out": "Guardare"
"check_out": "Guardare",
"collection_link_location_error": "Errore che collega la posizione alla raccolta",
"collection_link_location_success": "Posizione collegata alla raccolta con successo!",
"collection_locations": "Includi luoghi di raccolta",
"collection_remove_location_error": "Errore di rimozione della posizione dalla raccolta",
"collection_remove_location_success": "Posizione rimossa dalla raccolta con successo!",
"create_location": "Crea posizione",
"delete_location": "Elimina posizione",
"edit_location": "Modifica posizione",
"location_create_error": "Impossibile creare posizione",
"location_created": "Posizione creata",
"location_delete_confirm": "Sei sicuro di voler eliminare questa posizione? \nQuesta azione non può essere annullata.",
"location_delete_success": "Posizione eliminata con successo!",
"location_not_found": "Posizione non trovata",
"location_not_found_desc": "Non è stato possibile trovare la posizione che stavi cercando. \nProva una posizione diversa o ricontrolla più tardi.",
"location_update_error": "Impossibile aggiornare la posizione",
"location_updated": "Posizione aggiornata",
"new_location": "Nuova posizione",
"no_collections_to_add_location": "Nessuna collezione trovata per aggiungere questa posizione a.",
"no_locations_to_recommendations": "Nessuna posizione trovata. \nAggiungi almeno una posizione per ottenere consigli.",
"public_location": "Posizione pubblica",
"share_location": "Condividi questa posizione!",
"visit_calendar": "Visita il calendario",
"wiki_location_desc": "Estratto dall'articolo di Wikipedia che corrisponde al nome della posizione.",
"will_be_marked_location": "sarà contrassegnato come visitato una volta salvata la posizione."
},
"home": {
"desc_1": "Scopri, pianifica ed esplora con facilità",
@ -317,10 +320,10 @@
"public_tooltip": "Con un profilo pubblico, gli utenti possono condividere raccolte con te e visualizzare il tuo profilo nella pagina degli utenti.",
"new_password": "Nuova password",
"or_3rd_party": "Oppure accedi con un servizio di terze parti",
"no_public_adventures": "Nessuna avventura pubblica trovata",
"no_public_collections": "Nessuna collezione pubblica trovata",
"user_adventures": "Avventure utente",
"user_collections": "Collezioni utente"
"user_collections": "Collezioni utente",
"no_public_locations": "Nessuna posizione pubblica trovata",
"user_locations": "Posizioni degli utenti"
},
"users": {
"no_users_found": "Nessun utente trovato con profili pubblici."
@ -579,13 +582,16 @@
"show_visited_regions": "Mostra regioni visitate",
"view_details": "Visualizza dettagli",
"adventure_stats": "Statistiche di avventura",
"adventures_shown": "Avventure mostrate",
"completion": "Completamento",
"display_options": "Opzioni di visualizzazione",
"map_controls": "Controlli della mappa",
"marker_placed_on_map": "Marcatore posizionato sulla mappa",
"place_marker_desc": "Fai clic sulla mappa per posizionare un indicatore o aggiungi un'avventura senza posizione.",
"regions": "Regioni"
"regions": "Regioni",
"add_location": "Aggiungi nuova posizione",
"add_location_at_marker": "Aggiungi nuova posizione al marcatore",
"location_map": "Mappa della posizione",
"locations_shown": "posizioni mostrate",
"place_marker_desc_location": "Fai clic sulla mappa per posizionare un indicatore."
},
"languages": {},
"share": {
@ -611,9 +617,9 @@
"no_shared_adventures": "Questo utente non ha ancora condiviso avventure pubbliche.",
"no_shared_collections": "Questo utente non ha ancora condiviso alcuna collezione pubblica.",
"planned_trips": "Viaggi pianificati",
"public_adventure_experiences": "Esperienze di avventura pubblica",
"travel_statistics": "Statistiche di viaggio",
"your_journey_at_a_glance": "Il tuo viaggio d'avventura a colpo d'occhio"
"your_journey_at_a_glance": "Il tuo viaggio d'avventura a colpo d'occhio",
"public_location_experiences": "Esperienze di posizione pubblica"
},
"categories": {
"category_name": "Nome della categoria",
@ -622,9 +628,9 @@
"manage_categories": "Gestisci categorie",
"no_categories_found": "Nessuna categoria trovata.",
"select_category": "Seleziona Categoria",
"update_after_refresh": "Le carte avventura verranno aggiornate una volta aggiornata la pagina.",
"add_new_category": "Aggiungi nuova categoria",
"name_required": "È richiesto il nome della categoria"
"name_required": "È richiesto il nome della categoria",
"location_update_after_refresh": "Le schede di posizione verranno aggiornate dopo aver aggiornato la pagina."
},
"dashboard": {
"add_some": "Perché non iniziare a pianificare la tua prossima avventura? \nPuoi aggiungere una nuova avventura facendo clic sul pulsante in basso.",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "Raccomandazione",
"recommendations": "Raccomandazioni",
"adventure_recommendations": "Consigli di avventura",
"food": "Cibo",
"tourism": "Turismo"
"tourism": "Turismo",
"location_recommendations": "Raccomandazioni sulla posizione"
},
"lodging": {
"apartment": "Appartamento",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "Collega il tuo account Google Maps per ottenere risultati e consigli di ricerca sulla posizione di alta qualità."
},
"calendar": {
"all_categories": "Tutte le categorie",
"all_day_event": "Evento per tutto il giorno",
"calendar_overview": "Panoramica del calendario",
"categories": "Categorie",
"day": "Giorno",
"events_scheduled": "eventi programmati",
"filter_by_category": "Filtro per categoria",
"filtered_results": "Risultati filtrati",
"month": "Mese",
"today": "Oggi",
"total_events": "Eventi totali",
"week": "Settimana"
},
"locations": {
"location": "Posizione",
"locations": "Luoghi",
"my_locations": "Le mie posizioni"
}
}

View file

@ -22,13 +22,7 @@
"add_to_collection": "컬렉션에 추가하세요",
"adventure": "모험",
"adventure_calendar": "모험 달력",
"adventure_create_error": "모험을 만들지 못했습니다",
"adventure_created": "모험 생성됨",
"adventure_delete_confirm": "이 모험을 삭제 하시겠습니까? 이 행동은 취소 할 수 없습니다.",
"adventure_delete_success": "모험이 성공적으로 삭제되었습니다!",
"adventure_not_found": "표시할 모험이 없습니다. 오른쪽 하단의 플러스 버튼을 사용하여 추가하거나 필터를 변경하세요!",
"adventure_update_error": "모험을 업데이트하지 못했습니다",
"adventure_updated": "모험 업데이트됨",
"all": "모두",
"archive": "보관",
"archived": "보관됨",
@ -56,16 +50,11 @@
"collection_adventures": "컬렉션 모험을 추가하세요",
"collection_archived": "이 컬렉션은 보관되었습니다.",
"collection_completed": "이 컬렉션을 완성했습니다!",
"collection_link_error": "컬렉션에 모험 연결 중 오류",
"collection_link_success": "컬렉션에 모험이 성공적으로 연결되었습니다!",
"collection_remove_error": "컬렉션에서 모험을 제거 중 오류",
"collection_remove_success": "컬렉션에서 모험이 제거되었습니다!",
"collection_stats": "컬렉션 통계",
"copied_to_clipboard": "클립 보드에 복사됨!",
"copy_failed": "복사 실패",
"copy_link": "링크 복사",
"count_txt": "검색과 일치하는 결과",
"create_adventure": "모험 생성",
"create_new": "새로 만들기...",
"date": "일자",
"date_constrain": "컬렉션 일자로 제한",
@ -74,7 +63,6 @@
"day": "일",
"days": "일",
"delete": "삭제",
"delete_adventure": "모험 삭제",
"delete_checklist": "체크리스트 삭제",
"delete_collection": "컬렉션 삭제",
"delete_collection_success": "컬렉션이 성공적으로 삭제되었습니다!",
@ -123,10 +111,7 @@
"my_collections": "내 컬렉션",
"my_images": "내 이미지",
"name": "이름",
"new_adventure": "새로운 모험",
"no_adventures_found": "모험이 없습니다",
"no_adventures_to_recommendations": "모험이 없습니다. 장소를 추천받으려면 최소 하나 이상의 모험을 등록해야 합니다.",
"no_collections_found": "이 모험을 추가할 수 있는 컬렉션이 없습니다.",
"no_description_found": "설명이 없습니다",
"no_image_found": "이미지가 없습니다",
"no_image_url": "해당 URL에 이미지가 없습니다.",
@ -135,8 +120,6 @@
"no_location": "위치를 입력하세요",
"no_location_found": "위치가 없습니다",
"no_results": "결과가 없습니다",
"not_found": "모험이 없습니다",
"not_found_desc": "당신이 찾고 있던 모험을 찾을 수 없었습니다. 다른 모험을 찾아보거나 나중에 다시 해 보세요.",
"not_visited": "방문하지 않음",
"note": "노트",
"note_delete_confirm": "이 노트를 삭제 하시겠습니까? 이 행동은 취소 할 수 없습니다.",
@ -151,7 +134,6 @@
"preview": "미리보기",
"private": "비공개",
"public": "공개",
"public_adventure": "공개 모험",
"rating": "평가",
"regions_updated": "지역이 업데이트되었습니다",
"remove": "제거",
@ -162,7 +144,6 @@
"see_adventures": "모험 보기",
"set_to_pin": "고정하기",
"share": "공유",
"share_adventure": "이 모험을 공유하세요!",
"show": "보기",
"sort": "정렬",
"sources": "출처",
@ -190,10 +171,8 @@
"visited_region_check_desc": "이것을 선택하면 서버는 방문한 모든 모험을 확인하고 그 모험의 지역을 표시하여 세계 여행에서 방문 여부를 표시합니다.",
"visits": "방문",
"warning": "경고",
"wiki_desc": "모험의 이름과 일치하는 글을 위키백과에서 가져옵니다.",
"wiki_image_error": "위키백과 이미지 가져오기 오류",
"wikipedia": "위키백과",
"will_be_marked": "모험이 저장되면 방문했다고 표시합니다.",
"checklists": "체크리스트",
"cities_updated": "도시 업데이트됨",
"clear": "초기화",
@ -246,7 +225,31 @@
"name_location": "이름, 위치",
"collection_contents": "수집 내용",
"check_in": "체크인",
"check_out": "체크 아웃"
"check_out": "체크 아웃",
"collection_link_location_error": "오류 연결 위치 컬렉션",
"collection_link_location_success": "컬렉션에 링크 된 위치!",
"collection_locations": "수집 위치를 포함합니다",
"collection_remove_location_error": "수집에서 위치를 제거하는 오류",
"collection_remove_location_success": "컬렉션에서 제거 된 위치는 성공적으로!",
"create_location": "위치를 만듭니다",
"delete_location": "위치 삭제",
"edit_location": "위치 편집",
"location_create_error": "위치를 만들지 못했습니다",
"location_created": "생성 된 위치",
"location_delete_confirm": "이 위치를 삭제 하시겠습니까? \n이 조치는 취소 할 수 없습니다.",
"location_delete_success": "위치가 성공적으로 삭제되었습니다!",
"location_not_found": "위치를 찾을 수 없습니다",
"location_not_found_desc": "당신이 찾고 있던 위치는 찾을 수 없습니다. \n다른 위치를 시도하거나 나중에 다시 확인하십시오.",
"location_update_error": "위치를 업데이트하지 못했습니다",
"location_updated": "위치 업데이트",
"new_location": "새로운 위치",
"no_collections_to_add_location": "이 위치를 추가하는 컬렉션은 없습니다.",
"no_locations_to_recommendations": "발견 된 위치는 없습니다. \n권장 사항을 얻으려면 하나 이상의 위치를 ​​추가하십시오.",
"public_location": "공개 위치",
"share_location": "이 위치를 공유하십시오!",
"visit_calendar": "캘린더를 방문하십시오",
"wiki_location_desc": "위치 이름과 일치하는 Wikipedia 기사에서 발췌 한 내용을 가져옵니다.",
"will_be_marked_location": "위치가 저장되면 방문한대로 표시됩니다."
},
"auth": {
"confirm_password": "비밀번호 확인",
@ -265,10 +268,10 @@
"registration_disabled": "현재 등록할 수 없습니다.",
"signup": "가입",
"username": "사용자 이름",
"no_public_adventures": "공개 모험이 발견되지 않았습니다",
"no_public_collections": "공개 컬렉션이 발견되지 않았습니다",
"user_adventures": "사용자 모험",
"user_collections": "사용자 수집"
"user_collections": "사용자 수집",
"no_public_locations": "공공 장소가 발견되지 않았습니다",
"user_locations": "사용자 위치"
},
"categories": {
"category_name": "카테고리 이름",
@ -277,9 +280,9 @@
"manage_categories": "카테고리 관리",
"no_categories_found": "카테고리가 없습니다.",
"select_category": "카테고리 선택",
"update_after_refresh": "페이지를 새로고침해야 모험 카드가 업데이트됩니다.",
"add_new_category": "새 카테고리를 추가하십시오",
"name_required": "카테고리 이름이 필요합니다"
"name_required": "카테고리 이름이 필요합니다",
"location_update_after_refresh": "페이지를 새로 고치면 위치 카드가 업데이트됩니다."
},
"checklist": {
"checklist_delete_error": "체크리스트 삭제 오류",
@ -381,13 +384,16 @@
"show_visited_regions": "방문한 지역 보기",
"view_details": "상세 보기",
"adventure_stats": "모험 통계",
"adventures_shown": "모험 쇼",
"completion": "완성",
"display_options": "디스플레이 옵션",
"map_controls": "맵 컨트롤",
"marker_placed_on_map": "마커가지도에 배치되었습니다",
"place_marker_desc": "지도를 클릭하여 마커를 배치하거나 위치없이 모험을 추가하십시오.",
"regions": "지역"
"regions": "지역",
"add_location": "새로운 위치를 추가하십시오",
"add_location_at_marker": "마커에 새 위치를 추가하십시오",
"location_map": "위치지도",
"locations_shown": "표시된 위치",
"place_marker_desc_location": "지도를 클릭하여 마커를 배치하십시오."
},
"navbar": {
"about": "Adventurelog 소개",
@ -448,16 +454,16 @@
"no_shared_adventures": "이 사용자는 아직 공개 모험을 공유하지 않았습니다.",
"no_shared_collections": "이 사용자는 아직 공개 컬렉션을 공유하지 않았습니다.",
"planned_trips": "계획된 여행",
"public_adventure_experiences": "공개 모험 경험",
"your_journey_at_a_glance": "당신의 모험 여행",
"travel_statistics": "여행 통계"
"travel_statistics": "여행 통계",
"public_location_experiences": "공개 위치 경험"
},
"recomendations": {
"recommendation": "추천",
"recommendations": "권장 사항",
"adventure_recommendations": "모험 추천",
"food": "음식",
"tourism": "관광 여행"
"tourism": "관광 여행",
"location_recommendations": "위치 권장 사항"
},
"search": {
"adventurelog_results": "Adventurelog 결과",
@ -694,17 +700,19 @@
"google_maps_integration_desc": "Google지도 계정을 연결하여 고품질 위치 검색 결과 및 권장 사항을 얻으십시오."
},
"calendar": {
"all_categories": "모든 카테고리",
"all_day_event": "하루 종일 이벤트",
"calendar_overview": "캘린더 개요",
"categories": "카테고리",
"day": "낮",
"events_scheduled": "예약 된 이벤트",
"filter_by_category": "카테고리 별 필터",
"filtered_results": "필터링 된 결과",
"month": "월",
"today": "오늘",
"total_events": "총 이벤트",
"week": "주"
},
"locations": {
"location": "위치",
"locations": "위치",
"my_locations": "내 위치"
}
}

View file

@ -15,7 +15,6 @@
"activities": {},
"add_to_collection": "Toevoegen aan collectie",
"adventure": "Avontuur",
"adventure_delete_confirm": "Weet je zeker dat je dit avontuur wilt verwijderen? \nDeze actie kan niet ongedaan worden gemaakt.",
"archive": "Archiveer",
"archived": "Gearchiveerd",
"archived_collection_message": "Collectie succesvol gearchiveerd!",
@ -26,10 +25,6 @@
"clear": "Leeg maken",
"collection": "Collectie",
"collection_adventures": "Inclusief collectie-avonturen",
"collection_link_error": "Fout bij het koppelen van dit avontuur aan de collectie",
"collection_link_success": "Avontuur succesvol gekoppeld aan collectie!",
"collection_remove_error": "Fout bij verwijderen van dit avontuur uit de collectie",
"collection_remove_success": "Avontuur is succesvol uit de collectie verwijderd!",
"count_txt": "resultaten die overeenkomen met uw zoekopdracht",
"create_new": "Maak nieuwe...",
"date": "Datum",
@ -46,8 +41,6 @@
"my_collections": "Mijn collecties",
"name": "Naam",
"no_image_found": "Geen afbeelding gevonden",
"not_found": "Avontuur niet gevonden",
"not_found_desc": "Het avontuur waar je naar op zoek was, kon niet worden gevonden. \nProbeer een ander avontuur of kom later nog eens terug.",
"open_details": "Details openen",
"open_filters": "Filters openen",
"order_by": "Sorteer op",
@ -64,9 +57,7 @@
"updated": "Gewijzigd",
"visit": "Bezoek",
"visits": "Bezoeken",
"adventure_delete_success": "Avontuur succesvol verwijderd!",
"dates": "Datums",
"delete_adventure": "Avontuur verwijderen",
"duration": "Duur",
"image_removed_error": "Fout bij het verwijderen van de afbeelding",
"image_removed_success": "Afbeelding succesvol verwijderd!",
@ -81,10 +72,6 @@
"activity_types": "Activiteitstypen",
"add": "Toevoegen",
"add_notes": "Voeg opmerkingen toe",
"adventure_create_error": "Kan geen avontuur aanmaken",
"adventure_created": "Avontuur aangemaakt",
"adventure_update_error": "Kan avontuur niet wijzigen",
"adventure_updated": "Avontuur gewijzigd",
"basic_information": "Basisinformatie",
"category": "Categorie",
"clear_map": "Kaart leegmaken",
@ -100,23 +87,19 @@
"location": "Locatie",
"location_information": "Informatie over de locatie",
"my_images": "Mijn afbeeldingen",
"new_adventure": "Nieuw avontuur",
"no_description_found": "Geen beschrijving gevonden",
"no_images": "Geen afbeeldingen",
"no_location": "Voer een locatie in",
"no_results": "Geen resultaten gevonden",
"public_adventure": "Openbaar avontuur",
"remove": "Verwijderen",
"save_next": "Opslaan & Volgende",
"search_for_location": "Zoek een locatie",
"search_results": "Zoekresultaten",
"see_adventures": "Zie Avonturen",
"share_adventure": "Deel dit avontuur!",
"start_date": "Startdatum",
"upload_image": "Afbeelding uploaden",
"url": "URL",
"warning": "Waarschuwing",
"wiki_desc": "Haalt een fragment uit een Wikipedia-artikel dat overeenkomt met de naam van het avontuur.",
"wikipedia": "Wikipedia",
"adventure_not_found": "Er zijn geen avonturen om weer te geven. \nVoeg er een paar toe via de plusknop rechtsonder of probeer de filters te wijzigen!",
"all": "Alle",
@ -124,7 +107,6 @@
"mark_visited": "Markeer als bezocht",
"my_adventures": "Mijn avonturen",
"no_adventures_found": "Geen avonturen gevonden",
"no_collections_found": "Er zijn geen collecties gevonden waar dit avontuur aan kan worden toegevoegd.",
"no_linkable_adventures": "Er zijn geen avonturen gevonden die aan deze collectie kunnen worden gekoppeld.",
"not_visited": "Niet bezocht",
"regions_updated": "regio's bijgewerkt",
@ -181,10 +163,7 @@
"to": "Naar",
"transportation_delete_confirm": "Weet u zeker dat u dit transport wilt verwijderen? \nDeze actie kan niet ongedaan worden gemaakt.",
"ending_airport": "Luchthaven van aankomst",
"will_be_marked": "wordt gemarkeerd als bezocht zodra het avontuur is opgeslagen.",
"cities_updated": "steden bijgewerkt",
"create_adventure": "Creëer avontuur",
"no_adventures_to_recommendations": "Geen avonturen gevonden. \nVoeg ten minste één avontuur toe om aanbevelingen te krijgen.",
"finding_recommendations": "Ontdek verborgen juweeltjes voor je volgende avontuur",
"attachment": "Bijlage",
"attachment_delete_success": "Bijlage succesvol verwijderd!",
@ -246,7 +225,31 @@
"name_location": "naam, locatie",
"collection_contents": "Verzamelingsinhoud",
"check_in": "Inchecken",
"check_out": "Uitchecken"
"check_out": "Uitchecken",
"collection_link_location_error": "Foutkoppelingslocatie naar verzameling",
"collection_link_location_success": "Locatie gekoppeld aan het succesvol verzamelen!",
"collection_locations": "Neem verzamellocaties op",
"collection_remove_location_error": "Fout het verwijderen van locatie uit het verzamelen",
"collection_remove_location_success": "Locatie verwijderd uit de collectie succesvol!",
"create_location": "Locatie maken",
"delete_location": "Verwijder locatie",
"edit_location": "Locatie bewerken",
"location_create_error": "Kan locatie niet maken",
"location_created": "Locatie gemaakt",
"location_delete_confirm": "Weet u zeker dat u deze locatie wilt verwijderen? \nDeze actie kan niet ongedaan worden gemaakt.",
"location_delete_success": "Locatie verwijderd met succes!",
"location_not_found": "Locatie niet gevonden",
"location_not_found_desc": "De locatie waarnaar u op zoek was, kon niet worden gevonden. \nProbeer een andere locatie of kom later terug.",
"location_update_error": "De locatie niet bijwerken",
"location_updated": "Locatie bijgewerkt",
"new_location": "Nieuwe locatie",
"no_collections_to_add_location": "Geen collecties gevonden om deze locatie toe te voegen aan.",
"no_locations_to_recommendations": "Geen locaties gevonden. \nVoeg minstens één locatie toe om aanbevelingen te krijgen.",
"public_location": "Openbare locatie",
"share_location": "Deel deze locatie!",
"visit_calendar": "Bezoek de agenda",
"wiki_location_desc": "Haalt fragment uit het Wikipedia -artikel dat overeenkomt met de naam van de locatie.",
"will_be_marked_location": "wordt gemarkeerd als bezocht zodra de locatie is opgeslagen."
},
"home": {
"desc_1": "Ontdek, plan en verken met gemak",
@ -317,10 +320,10 @@
"public_tooltip": "Met een openbaar profiel kunnen gebruikers collecties met u delen en uw profiel bekijken op de gebruikerspagina.",
"new_password": "Nieuw wachtwoord",
"or_3rd_party": "Of log in met een service van derden",
"no_public_adventures": "Geen openbare avonturen gevonden",
"no_public_collections": "Geen openbare collecties gevonden",
"user_adventures": "Gebruikersavonturen",
"user_collections": "Gebruikerscollecties"
"user_collections": "Gebruikerscollecties",
"no_public_locations": "Geen openbare locaties gevonden",
"user_locations": "Gebruikerslocaties"
},
"users": {
"no_users_found": "Er zijn geen gebruikers gevonden met openbare profielen."
@ -579,13 +582,16 @@
"show_visited_regions": "Toon bezochte regio's",
"view_details": "Details bekijken",
"adventure_stats": "Avontuurstatistieken",
"adventures_shown": "Avonturen getoond",
"completion": "Voltooiing",
"display_options": "Display -opties",
"map_controls": "Kaartbesturing",
"marker_placed_on_map": "Marker geplaatst op kaart",
"place_marker_desc": "Klik op de kaart om een marker te plaatsen of voeg een avontuur toe zonder locatie.",
"regions": "Gebieden"
"regions": "Gebieden",
"add_location": "Voeg een nieuwe locatie toe",
"add_location_at_marker": "Voeg een nieuwe locatie toe bij Marker",
"location_map": "Locatiekaart",
"locations_shown": "Getoonde locaties",
"place_marker_desc_location": "Klik op de kaart om een marker te plaatsen."
},
"languages": {},
"share": {
@ -611,9 +617,9 @@
"no_shared_adventures": "Deze gebruiker heeft nog geen openbare avonturen gedeeld.",
"no_shared_collections": "Deze gebruiker heeft nog geen openbare collecties gedeeld.",
"planned_trips": "Geplande reizen",
"public_adventure_experiences": "Publieke avontuurlijke ervaringen",
"travel_statistics": "Reisstatistieken",
"your_journey_at_a_glance": "Je avontuurlijke reis in één oogopslag"
"your_journey_at_a_glance": "Je avontuurlijke reis in één oogopslag",
"public_location_experiences": "Openbare locatie -ervaringen"
},
"categories": {
"category_name": "Categorienaam",
@ -622,9 +628,9 @@
"manage_categories": "Beheer categorieën",
"no_categories_found": "Geen categorieën gevonden.",
"select_category": "Selecteer een categorie",
"update_after_refresh": "De avonturenkaarten worden bijgewerkt zodra u de pagina vernieuwt.",
"add_new_category": "Voeg een nieuwe categorie toe",
"name_required": "Categorienaam is vereist"
"name_required": "Categorienaam is vereist",
"location_update_after_refresh": "De locatiekaarten worden bijgewerkt zodra u de pagina vernieuwt."
},
"dashboard": {
"add_some": "Waarom begint u niet met het plannen van uw volgende avontuur? \nJe kunt een nieuw avontuur toevoegen door op de onderstaande knop te klikken.",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "Aanbeveling",
"recommendations": "Aanbevelingen",
"adventure_recommendations": "Avontuuraanbevelingen",
"food": "Voedsel",
"tourism": "Toerisme"
"tourism": "Toerisme",
"location_recommendations": "Locatieaanbevelingen"
},
"lodging": {
"apartment": "Appartement",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "Sluit uw Google Maps-account aan om zoekresultaten en aanbevelingen van hoge kwaliteit te krijgen."
},
"calendar": {
"all_categories": "Alle categorieën",
"all_day_event": "De hele dag evenement",
"calendar_overview": "Kalenderoverzicht",
"categories": "Categorieën",
"day": "Dag",
"events_scheduled": "geplande evenementen",
"filter_by_category": "Filter per categorie",
"filtered_results": "Gefilterde resultaten",
"month": "Maand",
"today": "Vandaag",
"total_events": "Totale gebeurtenissen",
"week": "Week"
},
"locations": {
"location": "Locatie",
"locations": "Locaties",
"my_locations": "Mijn locaties"
}
}

View file

@ -64,12 +64,7 @@
"start_your_journey": "Start reisen"
},
"adventures": {
"collection_remove_success": "Eventyret ble fjernet fra samlingen!",
"collection_remove_error": "Feil ved fjerning av eventyr fra samling",
"collection_link_success": "Eventyret ble lagt til samlingen!",
"no_image_found": "Ingen bilde funnet",
"collection_link_error": "Feil ved lenking av eventyr til samling",
"adventure_delete_confirm": "Er du sikker på at du vil slette dette eventyret? Denne handlingen kan ikke angres.",
"checklist_delete_confirm": "Er du sikker på at du vil slette denne sjekklisten? Denne handlingen kan ikke angres.",
"note_delete_confirm": "Er du sikker på at du vil slette dette notatet? Denne handlingen kan ikke angres.",
"transportation_delete_confirm": "Er du sikker på at du vil slette dette transportmiddelet? Denne handlingen kan ikke angres.",
@ -83,8 +78,6 @@
"remove_from_collection": "Fjern fra samling",
"add_to_collection": "Legg til i samling",
"delete": "Slett",
"not_found": "Fant ikke eventyret",
"not_found_desc": "Eventyret du leter etter, ble ikke funnet. Vennligst prøv et annet eventyr eller kom tilbake senere.",
"homepage": "Hjemmeside",
"collection": "Samling",
"longitude": "Lengdegrad",
@ -109,7 +102,6 @@
"rating": "Vurdering",
"my_images": "Mine bilder",
"no_images": "Ingen bilder",
"share_adventure": "Del dette eventyret!",
"copy_link": "Kopier lenke",
"image": "Bilde",
"upload_image": "Last opp bilde",
@ -131,12 +123,10 @@
"clear_map": "Tøm kart",
"search_results": "Søkeresultater",
"no_results": "Ingen resultater funnet",
"wiki_desc": "Henter utdrag fra Wikipedia-artikkelen som samsvarer med navnet på eventyret.",
"attachments": "Vedlegg",
"attachment": "Vedlegg",
"images": "Bilder",
"generate_desc": "Generer beskrivelse",
"public_adventure": "Offentlig eventyr",
"location_information": "Plasseringsinformasjon",
"link": "Lenke",
"links": "Lenker",
@ -157,15 +147,12 @@
"edit_collection": "Rediger samling",
"unarchive": "Fjern fra arkiv",
"archive": "Arkiver",
"no_collections_found": "Ingen samlinger funnet for å legge dette eventyret til.",
"not_visited": "Ikke besøkt",
"archived_collection_message": "Samlingen ble arkivert!",
"unarchived_collection_message": "Samlingen ble fjernet fra arkivet!",
"delete_collection_success": "Samlingen ble slettet!",
"cancel": "Avbryt",
"delete_collection": "Slett samling",
"delete_adventure": "Slett eventyr",
"adventure_delete_success": "Eventyret ble slettet!",
"visited": "Besøkt",
"planned": "Planlagt",
"duration": "Varighet",
@ -183,17 +170,10 @@
"image_fetch_failed": "Kunne ikke hente bilde",
"no_location": "Vennligst angi et sted",
"no_description_found": "Fant ingen beskrivelse",
"adventure_created": "Eventyr opprettet",
"adventure_create_error": "Kunne ikke opprette eventyr",
"lodging": "Overnatting",
"create_adventure": "Opprett eventyr",
"adventure_updated": "Eventyr oppdatert",
"adventure_update_error": "Kunne ikke oppdatere eventyr",
"set_to_pin": "Fest",
"category_fetch_error": "Feil ved henting av kategorier",
"new_adventure": "Nytt eventyr",
"basic_information": "Grunnleggende informasjon",
"no_adventures_to_recommendations": "Ingen eventyr funnet. Legg til minst ett eventyr for å få anbefalinger.",
"display_name": "Visningsnavn",
"adventure_not_found": "Det finnes ingen eventyr å vise. Legg til noen ved å trykke på plusstegnet nederst til høyre, eller prøv å endre filtre!",
"no_adventures_found": "Ingen eventyr funnet",
@ -233,7 +213,6 @@
"no_location_found": "Ingen sted funnet",
"from": "Fra",
"to": "Til",
"will_be_marked": "vil bli markert som besøkt når eventyret er lagret.",
"start": "Start",
"end": "Slutt",
"emoji_picker": "Emoji-velger",
@ -298,7 +277,31 @@
"name_location": "Navn, plassering",
"collection_contents": "Samlingsinnhold",
"check_in": "Sjekk inn",
"check_out": "Sjekk ut"
"check_out": "Sjekk ut",
"collection_link_location_error": "Feil koblingssted til samling",
"collection_link_location_success": "Plassering knyttet til samlingen vellykket!",
"collection_locations": "Inkluderer samlingssteder",
"collection_remove_location_error": "Feil å fjerne plasseringen fra samlingen",
"collection_remove_location_success": "Plassering fjernet fra samlingen med hell!",
"create_location": "Skape sted",
"delete_location": "Slett plassering",
"edit_location": "Rediger plassering",
"location_create_error": "Kunne ikke skape sted",
"location_created": "Plassering opprettet",
"location_delete_confirm": "Er du sikker på at du vil slette dette stedet? \nDenne handlingen kan ikke angres.",
"location_delete_success": "Plassering slettet vellykket!",
"location_not_found": "Plasseringen ikke funnet",
"location_not_found_desc": "Plasseringen du lette etter ble ikke funnet. \nPrøv et annet sted eller sjekk tilbake senere.",
"location_update_error": "Kunne ikke oppdatere plasseringen",
"location_updated": "Plassering oppdatert",
"new_location": "Ny beliggenhet",
"no_collections_to_add_location": "Ingen samlinger funnet å legge dette stedet til.",
"no_locations_to_recommendations": "Ingen steder funnet. \nLegg til minst ett sted for å få anbefalinger.",
"public_location": "Offentlig beliggenhet",
"share_location": "Del dette stedet!",
"visit_calendar": "Besøk kalenderen",
"wiki_location_desc": "Trekker utdrag fra Wikipedia -artikkelen som samsvarer med navnet på stedet.",
"will_be_marked_location": "vil bli merket som besøkt når stedet er lagret."
},
"worldtravel": {
"country_list": "Liste over land",
@ -373,10 +376,10 @@
"public_tooltip": "Med en offentlig profil kan brukere dele samlinger med deg og se profilen din på brukersiden.",
"new_password": "Nytt passord (6+ tegn)",
"or_3rd_party": "Eller logg inn med en tredjepartstjeneste",
"no_public_adventures": "Ingen offentlige eventyr funnet",
"no_public_collections": "Ingen offentlige samlinger funnet",
"user_adventures": "Brukerens eventyr",
"user_collections": "Brukerens samlinger"
"user_collections": "Brukerens samlinger",
"no_public_locations": "Ingen offentlige steder funnet",
"user_locations": "Brukerplasser"
},
"users": {
"no_users_found": "Ingen brukere med offentlig profil funnet."
@ -596,13 +599,16 @@
"clear_marker": "Fjern markør",
"add_adventure": "Legg til nytt eventyr",
"adventure_stats": "Eventyrstatistikk",
"adventures_shown": "Eventyr vist",
"completion": "Fullføring",
"display_options": "Vis alternativer",
"map_controls": "Kartkontroller",
"marker_placed_on_map": "Markør plassert på kart",
"place_marker_desc": "Klikk på kartet for å plassere en markør, eller legg til et eventyr uten beliggenhet.",
"regions": "Regioner"
"regions": "Regioner",
"add_location": "Legg til nytt sted",
"add_location_at_marker": "Legg til nytt sted på markør",
"location_map": "Stedskart",
"locations_shown": "steder vist",
"place_marker_desc_location": "Klikk på kartet for å plassere en markør."
},
"share": {
"shared": "Delt",
@ -628,20 +634,20 @@
"no_shared_adventures": "Denne brukeren har ikke delt noen offentlige eventyr ennå.",
"no_shared_collections": "Denne brukeren har ikke delt noen offentlige samlinger ennå.",
"planned_trips": "Planlagte turer",
"public_adventure_experiences": "Offentlige eventyropplevelser",
"travel_statistics": "Reisestatistikk",
"your_journey_at_a_glance": "Din eventyrreise på et øyeblikk"
"your_journey_at_a_glance": "Din eventyrreise på et øyeblikk",
"public_location_experiences": "Offentlige beliggenhetsopplevelser"
},
"categories": {
"manage_categories": "Administrer kategorier",
"no_categories_found": "Ingen kategorier funnet.",
"edit_category": "Rediger kategori",
"icon": "Ikon",
"update_after_refresh": "Eventyrkortene vil oppdateres når du oppdaterer siden.",
"select_category": "Velg kategori",
"category_name": "Kategorinavn",
"add_new_category": "Legg til ny kategori",
"name_required": "Kategorinavnet er påkrevd"
"name_required": "Kategorinavnet er påkrevd",
"location_update_after_refresh": "Stedskortene vil bli oppdatert når du oppdaterer siden."
},
"dashboard": {
"welcome_back": "Velkommen tilbake",
@ -687,25 +693,27 @@
"recomendations": {
"recommendation": "Anbefaling",
"recommendations": "Anbefalinger",
"adventure_recommendations": "Eventyranbefalinger",
"food": "Mat",
"tourism": "Turisme"
"tourism": "Turisme",
"location_recommendations": "Stedsanbefalinger"
},
"google_maps": {
"google_maps_integration_desc": "Koble til Google Maps-kontoen din for å få søkeresultater og anbefalinger av høy kvalitet."
},
"calendar": {
"all_categories": "Alle kategorier",
"all_day_event": "Hele dagens arrangement",
"calendar_overview": "Kalenderoversikt",
"categories": "Kategorier",
"day": "Dag",
"events_scheduled": "hendelser planlagt",
"filter_by_category": "Filter etter kategori",
"filtered_results": "Filtrerte resultater",
"month": "Måned",
"today": "I dag",
"total_events": "Total hendelser",
"week": "Uke"
},
"locations": {
"location": "Sted",
"locations": "Lokasjoner",
"my_locations": "Mine lokasjoner"
}
}

View file

@ -64,19 +64,12 @@
"start_your_journey": "Rozpocznij swoją podróż"
},
"adventures": {
"collection_remove_success": "Podróż została pomyślnie usunięta z kolekcji!",
"collection_remove_error": "Błąd podczas usuwania podróży z kolekcji",
"collection_link_success": "Podróż została pomyślnie dodana do kolekcji!",
"no_image_found": "Nie znaleziono obrazu",
"collection_link_error": "Błąd podczas dodawania podróży do kolekcji",
"adventure_delete_confirm": "Czy na pewno chcesz usunąć tę podróż? Ta operacja jest nieodwracalna.",
"open_details": "Otwórz szczegóły",
"edit_adventure": "Edytuj podróż",
"remove_from_collection": "Usuń z kolekcji",
"add_to_collection": "Dodaj do kolekcji",
"delete": "Usuń",
"not_found": "Podróż nie znaleziona",
"not_found_desc": "Podróży, której szukasz, nie można znaleźć. Spróbuj poszukać innej podróży lub sprawdź później.",
"homepage": "Strona główna",
"collection": "Kolekcja",
"longitude": "Długość geograficzna",
@ -101,7 +94,6 @@
"rating": "Ocena",
"my_images": "Moje obrazy",
"no_images": "Brak obrazów",
"share_adventure": "Podziel się tą podróżą!",
"copy_link": "Kopiuj link",
"image": "Obraz",
"upload_image": "Prześlij obraz",
@ -122,9 +114,7 @@
"clear_map": "Wyczyść mapę",
"search_results": "Wyniki wyszukiwania",
"no_results": "Nie znaleziono wyników",
"wiki_desc": "Pobiera fragment artykułu z Wikipedii pasującego do nazwy podróży.",
"generate_desc": "Generuj opis",
"public_adventure": "Publiczna podróż",
"location_information": "Informacje o lokalizacji",
"link": "Link",
"links": "Linki",
@ -145,15 +135,12 @@
"edit_collection": "Edytuj kolekcję",
"unarchive": "Przywróć z archiwum",
"archive": "Archiwizuj",
"no_collections_found": "Nie znaleziono kolekcji, do których można dodać tę podróż.",
"not_visited": "Nie odwiedzone",
"archived_collection_message": "Kolekcja została pomyślnie zarchiwizowana!",
"unarchived_collection_message": "Kolekcja została pomyślnie przywrócona z archiwum!",
"delete_collection_success": "Kolekcja została pomyślnie usunięta!",
"cancel": "Anuluj",
"delete_collection": "Usuń kolekcję",
"delete_adventure": "Usuń wyprawę",
"adventure_delete_success": "Podróż została pomyślnie usunięta!",
"visited": "Odwiedzona",
"planned": "Planowana",
"duration": "Czas trwania",
@ -171,13 +158,8 @@
"image_fetch_failed": "Nie udało się pobrać obrazu",
"no_location": "Proszę podać lokalizację",
"no_description_found": "Nie znaleziono opisu",
"adventure_created": "Podróż została utworzona",
"adventure_create_error": "Nie udało się stworzyć podróży",
"adventure_updated": "Podróż została zaktualizowana",
"adventure_update_error": "Nie udało się zaktualizować podróży",
"set_to_pin": "Ustaw jako przypiętą",
"category_fetch_error": "Błąd podczas pobierania kategorii",
"new_adventure": "Nowa podróż",
"basic_information": "Podstawowe informacje",
"adventure_not_found": "Brak podróży do wyświetlenia. Dodaj je za pomocą przycisku plus w prawym dolnym rogu lub spróbuj zmienić filtry!",
"no_adventures_found": "Brak podróży",
@ -233,10 +215,7 @@
"starting_airport": "Początkowe lotnisko",
"to": "Do",
"transportation_delete_confirm": "Czy na pewno chcesz usunąć ten transport? \nTej akcji nie można cofnąć.",
"will_be_marked": "zostanie oznaczona jako odwiedzona po zapisaniu przygody.",
"cities_updated": "miasta zaktualizowane",
"create_adventure": "Stwórz przygodę",
"no_adventures_to_recommendations": "Nie znaleziono żadnych przygód. \nDodaj co najmniej jedną przygodę, aby uzyskać rekomendacje.",
"finding_recommendations": "Odkrywanie ukrytych klejnotów na następną przygodę",
"attachment": "Załącznik",
"attachment_delete_success": "Załącznik został pomyślnie usunięty!",
@ -298,7 +277,31 @@
"delete_collection_warning": "Czy na pewno chcesz usunąć tę kolekcję? \nTego działania nie można cofnąć.",
"collection_contents": "Zawartość kolekcji",
"check_in": "Zameldować się",
"check_out": "Wymeldować się"
"check_out": "Wymeldować się",
"collection_link_location_error": "Błąd łączący lokalizację z kolekcją",
"collection_link_location_success": "Lokalizacja powiązana z kolekcją pomyślnie!",
"collection_locations": "Obejmują lokalizacje kolekcji",
"collection_remove_location_error": "Lokalizacja usuwania błędów z kolekcji",
"collection_remove_location_success": "Lokalizacja pomyślnie usunięta z kolekcji!",
"create_location": "Utwórz lokalizację",
"delete_location": "Usuń lokalizację",
"edit_location": "Edytuj lokalizację",
"location_create_error": "Nie udało się utworzyć lokalizacji",
"location_created": "Utworzona lokalizacja",
"location_delete_confirm": "Czy na pewno chcesz usunąć tę lokalizację? \nTego działania nie można cofnąć.",
"location_delete_success": "Lokalizacja pomyślnie usunięta!",
"location_not_found": "Nie znaleziono lokalizacji",
"location_not_found_desc": "Nie można było znaleźć lokalizacji. \nWypróbuj inną lokalizację lub sprawdź później.",
"location_update_error": "Nie udało się zaktualizować lokalizacji",
"location_updated": "Zaktualizowana lokalizacja",
"new_location": "Nowa lokalizacja",
"no_collections_to_add_location": "Brak kolekcji dodawania tej lokalizacji do.",
"no_locations_to_recommendations": "Nie znaleziono żadnych lokalizacji. \nDodaj co najmniej jedną lokalizację, aby uzyskać zalecenia.",
"public_location": "Lokalizacja publiczna",
"share_location": "Udostępnij tę lokalizację!",
"visit_calendar": "Odwiedź kalendarz",
"wiki_location_desc": "Wyciąga fragment artykułu Wikipedii pasujący do nazwy lokalizacji.",
"will_be_marked_location": "zostanie oznaczone jako odwiedzone po zapisaniu lokalizacji."
},
"worldtravel": {
"country_list": "Lista krajów",
@ -373,10 +376,10 @@
"public_tooltip": "Dzięki publicznemu profilowi użytkownicy mogą dzielić się z Tobą kolekcjami i oglądać Twój profil na stronie użytkowników.",
"new_password": "Nowe hasło",
"or_3rd_party": "Lub zaloguj się za pomocą usługi strony trzeciej",
"no_public_adventures": "Nie znaleziono publicznych przygód",
"no_public_collections": "Nie znaleziono publicznych kolekcji",
"user_adventures": "Przygody użytkowników",
"user_collections": "Kolekcje użytkowników"
"user_collections": "Kolekcje użytkowników",
"no_public_locations": "Nie znaleziono żadnych lokalizacji publicznych",
"user_locations": "Lokalizacje użytkowników"
},
"users": {
"no_users_found": "Nie znaleziono użytkowników z publicznymi profilami."
@ -579,13 +582,16 @@
"clear_marker": "Usuń znacznik",
"add_adventure": "Dodaj nową podróż",
"adventure_stats": "Statystyki przygodowe",
"adventures_shown": "Pokazane przygody",
"completion": "Ukończenie",
"display_options": "Opcje wyświetlania",
"map_controls": "Sterowanie mapą",
"marker_placed_on_map": "Marker umieszczony na mapie",
"place_marker_desc": "Kliknij mapę, aby umieścić znacznik lub dodać przygodę bez lokalizacji.",
"regions": "Regiony"
"regions": "Regiony",
"add_location": "Dodaj nową lokalizację",
"add_location_at_marker": "Dodaj nową lokalizację na znaczniku",
"location_map": "Mapa lokalizacji",
"locations_shown": "Pokazane lokalizacje",
"place_marker_desc_location": "Kliknij mapę, aby umieścić znacznik."
},
"share": {
"shared": "Udostępnione",
@ -611,20 +617,20 @@
"no_shared_adventures": "Ten użytkownik nie podzielił się jeszcze żadnymi publicznymi przygodami.",
"no_shared_collections": "Ten użytkownik nie udostępnił jeszcze żadnych publicznych kolekcji.",
"planned_trips": "Planowane wycieczki",
"public_adventure_experiences": "Public Adventure Doświadczenia",
"travel_statistics": "Statystyka podróży",
"your_journey_at_a_glance": "Twoja przygodowa podróż na pierwszy rzut oka"
"your_journey_at_a_glance": "Twoja przygodowa podróż na pierwszy rzut oka",
"public_location_experiences": "Doświadczenia lokalizacji publicznej"
},
"categories": {
"manage_categories": "Zarządzaj kategoriami",
"no_categories_found": "Brak kategorii.",
"edit_category": "Edytuj kategorię",
"icon": "Ikona",
"update_after_refresh": "Karty podróży zostaną zaktualizowane po odświeżeniu strony.",
"select_category": "Wybierz kategorię",
"category_name": "Nazwa kategorii",
"add_new_category": "Dodaj nową kategorię",
"name_required": "Nazwa kategorii jest wymagana"
"name_required": "Nazwa kategorii jest wymagana",
"location_update_after_refresh": "Karty lokalizacji zostaną zaktualizowane po odświeżeniu strony."
},
"dashboard": {
"add_some": "Dlaczego nie zacząć planować kolejnej przygody? \nMożesz dodać nową przygodę, klikając przycisk poniżej.",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "Zalecenie",
"recommendations": "Zalecenia",
"adventure_recommendations": "Zalecenia przygodowe",
"food": "Żywność",
"tourism": "Turystyka"
"tourism": "Turystyka",
"location_recommendations": "Zalecenia dotyczące lokalizacji"
},
"lodging": {
"apartment": "Apartament",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "Połącz swoje konto Google Maps, aby uzyskać wysokiej jakości wyniki wyszukiwania i zalecenia dotyczące lokalizacji."
},
"calendar": {
"all_categories": "Wszystkie kategorie",
"all_day_event": "Wydarzenie przez cały dzień",
"calendar_overview": "Przegląd kalendarza",
"categories": "Kategorie",
"day": "Dzień",
"events_scheduled": "Zaplanowane wydarzenia",
"filter_by_category": "Filtr według kategorii",
"filtered_results": "Przefiltrowane wyniki",
"month": "Miesiąc",
"today": "Dzisiaj",
"total_events": "Całkowite zdarzenia",
"week": "Tydzień"
},
"locations": {
"location": "Lokalizacja",
"locations": "Lokalizacje",
"my_locations": "Moje lokalizacje"
}
}

View file

@ -64,9 +64,6 @@
"start_your_journey": "Начните свое путешествие"
},
"adventures": {
"collection_remove_success": "Приключение успешно удалено из коллекции!",
"collection_remove_error": "Ошибка удаления приключения из коллекции",
"collection_link_success": "Приключение успешно связано с коллекцией!",
"invalid_date_range": "Недопустимый диапазон дат",
"timezone": "Часовой пояс",
"no_visits": "Нет посещений",
@ -75,8 +72,6 @@
"departure_date": "Дата отправления",
"arrival_date": "Дата прибытия",
"no_image_found": "Изображение не найдено",
"collection_link_error": "Ошибка связывания приключения с коллекцией",
"adventure_delete_confirm": "Вы уверены, что хотите удалить это приключение? Это действие нельзя отменить.",
"checklist_delete_confirm": "Вы уверены, что хотите удалить этот контрольный список? Это действие нельзя отменить.",
"note_delete_confirm": "Вы уверены, что хотите удалить эту заметку? Это действие нельзя отменить.",
"transportation_delete_confirm": "Вы уверены, что хотите удалить этот транспорт? Это действие нельзя отменить.",
@ -90,8 +85,6 @@
"remove_from_collection": "Убрать из коллекции",
"add_to_collection": "Добавить в коллекцию",
"delete": "Удалить",
"not_found": "Приключение не найдено",
"not_found_desc": "Приключение, которое вы искали, не найдено. Попробуйте другое приключение или проверьте позже.",
"homepage": "Главная страница",
"collection": "Коллекция",
"longitude": "Долгота",
@ -120,7 +113,6 @@
"my_images": "Мои изображения",
"no_images": "Нет изображений",
"distance": "Расстояние",
"share_adventure": "Поделиться этим приключением!",
"copy_link": "Копировать ссылку",
"sun_times": "Время солнца",
"sunrise": "Восход",
@ -146,12 +138,10 @@
"search_results": "Результаты поиска",
"collection_no_start_end_date": "Добавление дат начала и окончания коллекции разблокирует функции планирования маршрута на странице коллекции.",
"no_results": "Результаты не найдены",
"wiki_desc": "Извлекает отрывок из статьи Википедии, соответствующей названию приключения.",
"attachments": "Вложения",
"attachment": "Вложение",
"images": "Изображения",
"generate_desc": "Сгенерировать описание",
"public_adventure": "Публичное приключение",
"location_information": "Информация о местоположении",
"link": "Ссылка",
"links": "Ссылки",
@ -172,15 +162,12 @@
"edit_collection": "Редактировать коллекцию",
"unarchive": "Разархивировать",
"archive": "Архивировать",
"no_collections_found": "Не найдено коллекций для добавления этого приключения.",
"not_visited": "Не посещено",
"archived_collection_message": "Коллекция успешно архивирована!",
"unarchived_collection_message": "Коллекция успешно разархивирована!",
"delete_collection_success": "Коллекция успешно удалена!",
"cancel": "Отмена",
"delete_collection": "Удалить коллекцию",
"delete_adventure": "Удалить приключение",
"adventure_delete_success": "Приключение успешно удалено!",
"visited": "Посещено",
"planned": "Запланировано",
"duration": "Продолжительность",
@ -198,17 +185,10 @@
"image_fetch_failed": "Не удалось получить изображение",
"no_location": "Пожалуйста, введите местоположение",
"no_description_found": "Описание не найдено",
"adventure_created": "Приключение создано",
"adventure_create_error": "Не удалось создать приключение",
"lodging": "Жильё",
"create_adventure": "Создать приключение",
"adventure_updated": "Приключение обновлено",
"adventure_update_error": "Не удалось обновить приключение",
"set_to_pin": "Установить как булавку",
"category_fetch_error": "Ошибка получения категорий",
"new_adventure": "Новое приключение",
"basic_information": "Основная информация",
"no_adventures_to_recommendations": "Приключения не найдены. Добавьте хотя бы одно приключение, чтобы получить рекомендации.",
"display_name": "Отображаемое имя",
"adventure_not_found": "Нет приключений для отображения. Добавьте их, используя кнопку плюс в правом нижнем углу, или попробуйте изменить фильтры!",
"no_adventures_found": "Приключения не найдены",
@ -250,7 +230,6 @@
"no_location_found": "Местоположение не найдено",
"from": "От",
"to": "До",
"will_be_marked": "будет отмечено как посещённое после сохранения приключения.",
"start": "Начало",
"end": "Конец",
"emoji_picker": "Выбор эмодзи",
@ -298,7 +277,31 @@
"name_location": "имя, местоположение",
"collection_contents": "Содержание коллекции",
"check_in": "Регистрироваться",
"check_out": "Проверить"
"check_out": "Проверить",
"collection_link_location_error": "Ошибка связывания местоположения с сбором",
"collection_link_location_success": "Местоположение, связанное с коллекцией успешно!",
"collection_locations": "Включите места для сбора",
"collection_remove_location_error": "Ошибка удаления местоположения из сбора",
"collection_remove_location_success": "Место удалено из коллекции успешно!",
"create_location": "Создать местоположение",
"delete_location": "Удалить местоположение",
"edit_location": "Редактировать местоположение",
"location_create_error": "Не удалось создать местоположение",
"location_created": "Место создано",
"location_delete_confirm": "Вы уверены, что хотите удалить это место? \nЭто действие не может быть отменено.",
"location_delete_success": "Место удалено успешно!",
"location_not_found": "Местоположение не найдено",
"location_not_found_desc": "Место, которое вы искали, не было найдено. \nПожалуйста, попробуйте другое место или проверьте позже.",
"location_update_error": "Не удалось обновить местоположение",
"location_updated": "Место обновлено",
"new_location": "Новое место",
"no_collections_to_add_location": "Коллекции не обнаружили, чтобы добавить это место.",
"no_locations_to_recommendations": "Никаких мест не найдено. \nДобавьте хотя бы одно место, чтобы получить рекомендации.",
"public_location": "Общественное местоположение",
"share_location": "Поделитесь этим расположением!",
"visit_calendar": "Посетите календарь",
"wiki_location_desc": "Вытягивает отрывок из статьи Википедии, соответствующей названию места.",
"will_be_marked_location": "будет отмечен по посещению после сохранения местоположения."
},
"worldtravel": {
"country_list": "Список стран",
@ -373,10 +376,10 @@
"public_tooltip": "С публичным профилем пользователи могут делиться с вами коллекциями и просматривать ваш профиль на странице пользователей.",
"new_password": "Новый пароль (6+ символов)",
"or_3rd_party": "Или войти через сторонний сервис",
"no_public_adventures": "Публичные приключения не найдены",
"no_public_collections": "Публичные коллекции не найдены",
"user_adventures": "Приключения пользователя",
"user_collections": "Коллекции пользователя"
"user_collections": "Коллекции пользователя",
"no_public_locations": "Общественных мест не найдено",
"user_locations": "Пользовательские местоположения"
},
"users": {
"no_users_found": "Пользователи с публичными профилями не найдены."
@ -596,13 +599,16 @@
"clear_marker": "Очистить маркер",
"add_adventure": "Добавить новое приключение",
"adventure_stats": "Приключенческая статистика",
"adventures_shown": "Приключения показаны",
"completion": "Завершение",
"display_options": "Параметры отображения",
"map_controls": "Карта управления",
"marker_placed_on_map": "Маркер размещен на карте",
"place_marker_desc": "Нажмите на карту, чтобы разместить маркер, или добавить приключение без местоположения.",
"regions": "Регионы"
"regions": "Регионы",
"add_location": "Добавить новое место",
"add_location_at_marker": "Добавить новое место в маркере",
"location_map": "Карта местоположения",
"locations_shown": "Места показаны",
"place_marker_desc_location": "Нажмите на карту, чтобы разместить маркер."
},
"share": {
"shared": "Поделено",
@ -628,20 +634,20 @@
"no_shared_adventures": "Этот пользователь еще не поделился публичными приключениями.",
"no_shared_collections": "Этот пользователь еще не поделился публичными коллекциями.",
"planned_trips": "Запланированные поездки",
"public_adventure_experiences": "Общественные приключения",
"travel_statistics": "Статистика путешествий",
"your_journey_at_a_glance": "Ваше приключенческое путешествие с первого взгляда"
"your_journey_at_a_glance": "Ваше приключенческое путешествие с первого взгляда",
"public_location_experiences": "Общественное местоположение"
},
"categories": {
"manage_categories": "Управление категориями",
"no_categories_found": "Категории не найдены.",
"edit_category": "Редактировать категорию",
"icon": "Иконка",
"update_after_refresh": "Карточки приключений будут обновлены после обновления страницы.",
"select_category": "Выбрать категорию",
"category_name": "Название категории",
"add_new_category": "Добавить новую категорию",
"name_required": "Требуется название категории"
"name_required": "Требуется название категории",
"location_update_after_refresh": "Карты местоположения будут обновлены после обновления страницы."
},
"dashboard": {
"welcome_back": "Добро пожаловать обратно",
@ -690,22 +696,24 @@
"recomendations": {
"recommendation": "Рекомендация",
"recommendations": "Рекомендации",
"adventure_recommendations": "Рекомендации приключений",
"food": "Еда",
"tourism": "Туризм"
"tourism": "Туризм",
"location_recommendations": "Рекомендации местоположения"
},
"calendar": {
"all_categories": "Все категории",
"all_day_event": "Событие на весь день",
"calendar_overview": "Обзор календаря",
"categories": "Категории",
"day": "День",
"events_scheduled": "События запланированы",
"filter_by_category": "Фильтр по категории",
"filtered_results": "Отфильтрованные результаты",
"month": "Месяц",
"today": "Сегодня",
"total_events": "Общее количество событий",
"week": "Неделя"
},
"locations": {
"location": "Расположение",
"locations": "Локации",
"my_locations": "Мои локации"
}
}

View file

@ -15,8 +15,6 @@
"activities": {},
"add_to_collection": "Lägg till i samlingen",
"adventure": "Äventyr",
"adventure_delete_confirm": "Är du säker på att du vill ta bort det här äventyret? \nDenna åtgärd kan inte ångras.",
"adventure_delete_success": "Äventyret har raderats!",
"archive": "Arkiv",
"archived": "Arkiverad",
"archived_collection_message": "Samlingen har arkiverats!",
@ -27,16 +25,11 @@
"clear": "Rensa",
"collection": "Samling",
"collection_adventures": "Inkludera samlingsäventyr",
"collection_link_error": "Det gick inte att länka äventyr till samling",
"collection_link_success": "Äventyr kopplat till samling framgångsrikt!",
"collection_remove_error": "Det gick inte att ta bort äventyr från samlingen",
"collection_remove_success": "Äventyret har tagits bort från samlingen!",
"count_txt": "resultat som matchar din sökning",
"create_new": "Skapa nytt...",
"date": "Datum",
"dates": "Datum",
"delete": "Radera",
"delete_adventure": "Ta bort äventyr",
"delete_collection": "Ta bort samling",
"delete_collection_success": "Samlingen har raderats!",
"descending": "Fallande",
@ -50,8 +43,6 @@
"my_collections": "Mina samlingar",
"name": "Namn",
"no_image_found": "Ingen bild hittades",
"not_found": "Äventyret hittades inte",
"not_found_desc": "Äventyret du letade efter kunde inte hittas. \nProva ett annat äventyr eller kom tillbaka senare.",
"open_details": "Öppna Detaljer",
"open_filters": "Öppna filter",
"order_by": "Sortera efter",
@ -81,10 +72,6 @@
"activity_types": "Aktivitetstyper",
"add": "Tillägga",
"add_notes": "Lägg till anteckningar",
"adventure_create_error": "Det gick inte att skapa äventyr",
"adventure_created": "Äventyr skapat",
"adventure_update_error": "Det gick inte att uppdatera äventyret",
"adventure_updated": "Äventyr uppdaterat",
"basic_information": "Grundläggande information",
"category": "Kategori",
"clear_map": "Rensa karta",
@ -100,30 +87,25 @@
"location": "Plats",
"location_information": "Platsinformation",
"my_images": "Mina bilder",
"new_adventure": "Nytt äventyr",
"no_description_found": "Ingen beskrivning hittades",
"no_images": "Inga bilder",
"no_location": "Vänligen ange en plats",
"no_results": "Inga resultat hittades",
"public_adventure": "Offentligt äventyr",
"remove": "Ta bort",
"save_next": "Spara",
"search_for_location": "Sök efter en plats",
"search_results": "Sökresultat",
"see_adventures": "Se äventyr",
"share_adventure": "Dela detta äventyr!",
"start_date": "Startdatum",
"upload_image": "Ladda upp bild",
"url": "URL",
"warning": "Varning",
"wiki_desc": "Hämtar utdrag från Wikipedia-artikeln som matchar äventyrets namn.",
"adventure_not_found": "Det finns inga äventyr att visa upp. \nLägg till några med hjälp av plusknappen längst ner till höger eller prova att byta filter!",
"all": "Alla",
"error_updating_regions": "Fel vid uppdatering av regioner",
"mark_visited": "Markera som besökt",
"my_adventures": "Mina äventyr",
"no_adventures_found": "Inga äventyr hittades",
"no_collections_found": "Inga samlingar hittades att lägga till detta äventyr till.",
"no_linkable_adventures": "Inga äventyr hittades som kan kopplas till denna samling.",
"not_visited": "Ej besökta",
"regions_updated": "regioner uppdaterade",
@ -181,10 +163,7 @@
"starting_airport": "Startar flygplats",
"to": "Till",
"transportation_delete_confirm": "Är du säker på att du vill ta bort denna transport? \nDenna åtgärd kan inte ångras.",
"will_be_marked": "kommer att markeras som besökt när äventyret har sparats.",
"cities_updated": "städer uppdaterade",
"create_adventure": "Skapa äventyr",
"no_adventures_to_recommendations": "Inga äventyr hittades. \nLägg till minst ett äventyr för att få rekommendationer.",
"finding_recommendations": "Upptäck dolda pärlor för ditt nästa äventyr",
"attachment": "Fastsättning",
"attachment_delete_success": "Bilagan har raderats!",
@ -246,7 +225,31 @@
"name_location": "namn, plats",
"collection_contents": "Insamlingsinnehåll",
"check_in": "Checka in",
"check_out": "Checka ut"
"check_out": "Checka ut",
"collection_link_location_error": "Fel som länkar plats till insamling",
"collection_link_location_success": "Plats kopplad till samling framgångsrikt!",
"collection_locations": "Inkludera insamlingsplatser",
"collection_remove_location_error": "Fel att ta bort platsen från samlingen",
"collection_remove_location_success": "Plats tas bort från samlingen framgångsrikt!",
"create_location": "Skapa plats",
"delete_location": "Radera plats",
"edit_location": "Redigera plats",
"location_create_error": "Det gick inte att skapa plats",
"location_created": "Plats skapad",
"location_delete_confirm": "Är du säker på att du vill ta bort den här platsen? \nDenna åtgärd kan inte ångras.",
"location_delete_success": "Plats raderas framgångsrikt!",
"location_not_found": "Plats hittades inte",
"location_not_found_desc": "Platsen du letade efter kunde inte hittas. \nFörsök med en annan plats eller kom tillbaka senare.",
"location_update_error": "Det gick inte att uppdatera platsen",
"location_updated": "Plats uppdaterad",
"new_location": "Ny plats",
"no_collections_to_add_location": "Inga samlingar som hittats för att lägga till den här platsen till.",
"no_locations_to_recommendations": "Inga platser hittades. \nLägg till minst en plats för att få rekommendationer.",
"public_location": "Allmän plats",
"share_location": "Dela den här platsen!",
"visit_calendar": "Besök kalendern",
"wiki_location_desc": "Drar utdrag från Wikipedia -artikeln som matchar namnet på platsen.",
"will_be_marked_location": "kommer att markeras som besöks när platsen har sparats."
},
"home": {
"desc_1": "Upptäck, planera och utforska med lätthet",
@ -373,10 +376,10 @@
"public_profile": "Offentlig profil",
"new_password": "Nytt lösenord",
"or_3rd_party": "Eller logga in med en tredjepartstjänst",
"no_public_adventures": "Inga offentliga äventyr hittades",
"no_public_collections": "Inga offentliga samlingar hittades",
"user_adventures": "Användaräventyr",
"user_collections": "Användarsamlingar"
"user_collections": "Användarsamlingar",
"no_public_locations": "Inga offentliga platser hittades",
"user_locations": "Användarplatser"
},
"users": {
"no_users_found": "Inga användare hittades med offentliga profiler."
@ -579,13 +582,16 @@
"show_visited_regions": "Visa besökta regioner",
"view_details": "Visa detaljer",
"adventure_stats": "Äventyrsstatistik",
"adventures_shown": "Äventyr visas",
"completion": "Komplettering",
"display_options": "Visningsalternativ",
"map_controls": "Kartkontroller",
"marker_placed_on_map": "Markör placerad på kartan",
"place_marker_desc": "Klicka på kartan för att placera en markör, eller lägg till ett äventyr utan plats.",
"regions": "Regioner"
"regions": "Regioner",
"add_location": "Lägg till en ny plats",
"add_location_at_marker": "Lägg till en ny plats på Marker",
"location_map": "Platskarta",
"locations_shown": "Visas",
"place_marker_desc_location": "Klicka på kartan för att placera en markör."
},
"languages": {},
"share": {
@ -611,9 +617,9 @@
"no_shared_adventures": "Den här användaren har inte delat några offentliga äventyr än.",
"no_shared_collections": "Den här användaren har inte delat några offentliga samlingar än.",
"planned_trips": "Planerade resor",
"public_adventure_experiences": "Allmänt äventyrsupplevelser",
"travel_statistics": "Resestatistik",
"your_journey_at_a_glance": "Din äventyrsresa med en överblick"
"your_journey_at_a_glance": "Din äventyrsresa med en överblick",
"public_location_experiences": "Allmän platsupplevelser"
},
"categories": {
"category_name": "Kategorinamn",
@ -622,9 +628,9 @@
"manage_categories": "Hantera kategorier",
"no_categories_found": "Inga kategorier hittades.",
"select_category": "Välj Kategori",
"update_after_refresh": "Äventyrskorten kommer att uppdateras när du uppdaterar sidan.",
"add_new_category": "Lägg till en ny kategori",
"name_required": "Kategorinamn krävs"
"name_required": "Kategorinamn krävs",
"location_update_after_refresh": "Platskorten kommer att uppdateras när du uppdaterar sidan."
},
"dashboard": {
"add_some": "Varför inte börja planera ditt nästa äventyr? \nDu kan lägga till ett nytt äventyr genom att klicka på knappen nedan.",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "Rekommendation",
"recommendations": "Rekommendationer",
"adventure_recommendations": "Äventyrsrekommendationer",
"food": "Mat",
"tourism": "Turism"
"tourism": "Turism",
"location_recommendations": "Platsrekommendationer"
},
"lodging": {
"apartment": "Lägenhet",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "Anslut ditt Google Maps-konto för att få sökresultat och rekommendationer av hög kvalitet."
},
"calendar": {
"all_categories": "Alla kategorier",
"all_day_event": "Hela dagen",
"calendar_overview": "Kalenderöversikt",
"categories": "Kategorier",
"day": "Dag",
"events_scheduled": "Händelser planerade",
"filter_by_category": "Filter efter kategori",
"filtered_results": "Filtrerade resultat",
"month": "Månad",
"today": "I dag",
"total_events": "Totala evenemang",
"week": "Vecka"
},
"locations": {
"location": "Plats",
"locations": "Plats",
"my_locations": "Mina platser"
}
}

View file

@ -64,12 +64,7 @@
"start_your_journey": "开始您的旅程"
},
"adventures": {
"collection_remove_success": "成功从合集中移除冒险!",
"collection_remove_error": "从合集中移除冒险时出错",
"collection_link_success": "成功将冒险链接到合集!",
"no_image_found": "未找到图片",
"collection_link_error": "链接冒险到合集时出错",
"adventure_delete_confirm": "您确定要删除此冒险吗?此操作无法撤销。",
"checklist_delete_confirm": "您确定要删除此检查清单吗?此操作无法撤销。",
"note_delete_confirm": "您确定要删除此笔记吗?此操作无法撤销。",
"transportation_delete_confirm": "您确定要删除此交通工具吗?此操作无法撤销。",
@ -83,8 +78,6 @@
"remove_from_collection": "从合集中移除",
"add_to_collection": "添加到合集",
"delete": "删除",
"not_found": "未找到冒险",
"not_found_desc": "未找到你要查找的冒险。请尝试其他冒险或稍后再试。",
"homepage": "主页",
"collection": "合集",
"longitude": "经度",
@ -109,7 +102,6 @@
"rating": "评分",
"my_images": "我的图片",
"no_images": "没有图片",
"share_adventure": "分享此冒险!",
"copy_link": "复制链接",
"image": "图片",
"upload_image": "上传图片",
@ -130,12 +122,10 @@
"clear_map": "清除地图",
"search_results": "搜索结果",
"no_results": "未找到结果",
"wiki_desc": "从与冒险名称匹配的维基百科文章中提取摘录。",
"attachments": "附件",
"attachment": "附件",
"images": "图片",
"generate_desc": "生成描述",
"public_adventure": "公开冒险",
"location_information": "位置信息",
"link": "链接",
"links": "链接",
@ -156,15 +146,12 @@
"edit_collection": "编辑合集",
"unarchive": "取消归档",
"archive": "归档",
"no_collections_found": "未找到可添加此冒险的合集。",
"not_visited": "未访问",
"archived_collection_message": "成功归档合集!",
"unarchived_collection_message": "成功取消归档合集!",
"delete_collection_success": "成功删除合集!",
"cancel": "取消",
"delete_collection": "删除合集",
"delete_adventure": "删除冒险",
"adventure_delete_success": "成功删除冒险!",
"visited": "已访问",
"planned": "计划中",
"duration": "持续时间",
@ -182,17 +169,10 @@
"image_fetch_failed": "获取图片失败",
"no_location": "请输入位置",
"no_description_found": "未找到描述",
"adventure_created": "冒险已创建",
"adventure_create_error": "创建冒险失败",
"lodging": "住宿",
"create_adventure": "创建冒险",
"adventure_updated": "冒险已更新",
"adventure_update_error": "更新冒险失败",
"set_to_pin": "设置为图钉",
"category_fetch_error": "获取类别时出错",
"new_adventure": "新冒险",
"basic_information": "基本信息",
"no_adventures_to_recommendations": "未找到冒险。添加至少一个冒险以获得推荐。",
"display_name": "显示名称",
"adventure_not_found": "没找到任何冒险。使用右下角的加号按钮添加一些,或尝试更改筛选条件!",
"no_adventures_found": "未找到冒险",
@ -232,7 +212,6 @@
"no_location_found": "未找到位置",
"from": "从",
"to": "到",
"will_be_marked": "将在冒险保存后标记为已访问。",
"start": "开始",
"end": "结束",
"emoji_picker": "表情符号选择器",
@ -298,7 +277,31 @@
"name_location": "名称,位置",
"collection_contents": "收集内容",
"check_in": "报到",
"check_out": "查看"
"check_out": "查看",
"collection_link_location_error": "链接位置到集合的错误",
"collection_link_location_success": "成功链接到收集的位置!",
"collection_locations": "包括收集位置",
"collection_remove_location_error": "从集合中删除位置的错误",
"collection_remove_location_success": "成功从收藏中删除的位置!",
"create_location": "创建位置",
"delete_location": "删除位置",
"edit_location": "编辑位置",
"location_create_error": "无法创建位置",
"location_created": "创建的位置",
"location_delete_confirm": "您确定要删除此位置吗?\n该动作不能撤消。",
"location_delete_success": "位置成功删除了!",
"location_not_found": "找不到位置",
"location_not_found_desc": "找不到您寻找的位置。\n请尝试其他位置或稍后再检查。",
"location_update_error": "无法更新位置",
"location_updated": "位置更新",
"new_location": "新位置",
"no_collections_to_add_location": "没有发现将此位置添加到。",
"no_locations_to_recommendations": "找不到位置。\n添加至少一个位置以获取建议。",
"public_location": "公共位置",
"share_location": "分享这个位置!",
"visit_calendar": "访问日历",
"wiki_location_desc": "从Wikipedia文章中提取摘录符合该位置的名称。",
"will_be_marked_location": "保存位置后,将被标记为访问。"
},
"auth": {
"forgot_password": "忘记密码?",
@ -317,10 +320,10 @@
"public_tooltip": "通过公开个人资料,用户可以与您共享合集,并在用户页面查看您的资料。",
"new_password": "新密码6个字符以上",
"or_3rd_party": "或使用第三方服务登录",
"no_public_adventures": "未找到公开冒险",
"no_public_collections": "未找到公开合集",
"user_adventures": "用户冒险",
"user_collections": "用户合集"
"user_collections": "用户合集",
"no_public_locations": "找不到公共场所",
"user_locations": "用户位置"
},
"worldtravel": {
"all": "全部",
@ -579,13 +582,16 @@
"show_visited_regions": "显示访问过的地区",
"view_details": "查看详情",
"adventure_stats": "冒险统计",
"adventures_shown": "展示的冒险",
"completion": "完成",
"display_options": "显示选项",
"map_controls": "地图控件",
"marker_placed_on_map": "放置在地图上的标记",
"place_marker_desc": "单击地图以放置标记,或在没有位置的情况下添加冒险。",
"regions": "地区"
"regions": "地区",
"add_location": "添加新位置",
"add_location_at_marker": "在标记处添加新位置",
"location_map": "位置图",
"locations_shown": "显示的位置",
"place_marker_desc_location": "单击地图以放置标记。"
},
"languages": {},
"share": {
@ -611,9 +617,9 @@
"no_shared_adventures": "该用户尚未分享任何公共冒险。",
"no_shared_collections": "该用户尚未共享任何公共收藏。",
"planned_trips": "计划的旅行",
"public_adventure_experiences": "公共冒险经验",
"travel_statistics": "旅行统计",
"your_journey_at_a_glance": "您一眼的冒险之旅"
"your_journey_at_a_glance": "您一眼的冒险之旅",
"public_location_experiences": "公共位置经验"
},
"categories": {
"category_name": "类别名称",
@ -622,9 +628,9 @@
"manage_categories": "管理类别",
"no_categories_found": "未找到类别。",
"select_category": "选择类别",
"update_after_refresh": "刷新页面后,冒险卡将更新。",
"add_new_category": "添加新类别",
"name_required": "需要类别名称"
"name_required": "需要类别名称",
"location_update_after_refresh": "刷新页面后,将更新位置卡。"
},
"dashboard": {
"add_some": "为什么不开始计划你的下一次冒险呢?\n您可以通过单击下面的按钮添加新的冒险。",
@ -670,9 +676,9 @@
"recomendations": {
"recommendation": "推荐",
"recommendations": "建议",
"adventure_recommendations": "冒险建议",
"food": "食物",
"tourism": "旅游"
"tourism": "旅游",
"location_recommendations": "位置建议"
},
"lodging": {
"campground": "露营地",
@ -695,17 +701,19 @@
"google_maps_integration_desc": "连接您的Google Maps帐户以获取高质量的位置搜索结果和建议。"
},
"calendar": {
"all_categories": "所有类别",
"all_day_event": "全天活动",
"calendar_overview": "日历概述",
"categories": "类别",
"day": "天",
"events_scheduled": "预定事件",
"filter_by_category": "按类别过滤",
"filtered_results": "过滤结果",
"month": "月",
"today": "今天",
"total_events": "总事件",
"week": "星期"
},
"locations": {
"location": "地点",
"locations": "位置",
"my_locations": "我的位置"
}
}

View file

@ -1,7 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL'];
import type { Adventure } from '$lib/types';
import type { Location } from '$lib/types';
import type { Actions } from '@sveltejs/kit';
import { fetchCSRFToken } from '$lib/index.server';
@ -13,7 +13,7 @@ export const load = (async (event) => {
return redirect(302, '/login');
} else {
let count = 0;
let adventures: Adventure[] = [];
let adventures: Location[] = [];
let typeString = event.url.searchParams.get('types');
@ -45,7 +45,7 @@ export const load = (async (event) => {
return redirect(302, '/login');
} else {
let res = await initialFetch.json();
let visited = res.results as Adventure[];
let visited = res.results as Location[];
count = res.count;
adventures = [...adventures, ...visited];

View file

@ -7,7 +7,7 @@
import CategoryFilterDropdown from '$lib/components/CategoryFilterDropdown.svelte';
import CategoryModal from '$lib/components/CategoryModal.svelte';
import NotFound from '$lib/components/NotFound.svelte';
import type { Adventure, Category } from '$lib/types';
import type { Location, Category } from '$lib/types';
import { t } from 'svelte-i18n';
import Plus from '~icons/mdi/plus';
@ -23,7 +23,7 @@
export let data: any;
let adventures: Adventure[] = data.props.adventures || [];
let adventures: Location[] = data.props.adventures || [];
let currentSort = {
order_by: '',
@ -41,7 +41,7 @@
let is_category_modal_open: boolean = false;
let typeString: string = '';
let adventureToEdit: Adventure | null = null;
let adventureToEdit: Location | null = null;
let isAdventureModalOpen: boolean = false;
let sidebarOpen = false;
@ -130,7 +130,7 @@
adventures = adventures.filter((adventure) => adventure.id !== event.detail);
}
function saveOrCreate(event: CustomEvent<Adventure>) {
function saveOrCreate(event: CustomEvent<Location>) {
if (adventures.find((adventure) => adventure.id === event.detail.id)) {
adventures = adventures.map((adventure) => {
if (adventure.id === event.detail.id) {
@ -144,7 +144,7 @@
isAdventureModalOpen = false;
}
function editAdventure(event: CustomEvent<Adventure>) {
function editAdventure(event: CustomEvent<Location>) {
adventureToEdit = event.detail;
isAdventureModalOpen = true;
}
@ -163,7 +163,7 @@
</script>
<svelte:head>
<title>{$t('navbar.adventures')}</title>
<title>{$t('locations.locations')}</title>
<meta name="description" content="View your completed and planned adventures." />
</svelte:head>
@ -198,11 +198,11 @@
</div>
<div>
<h1 class="text-3xl font-bold bg-clip-text text-primary">
{$t('navbar.my_adventures')}
{$t('locations.my_locations')}
</h1>
<p class="text-sm text-base-content/60">
{count}
{$t('navbar.adventures')}{getVisitedCount()}
{$t('locations.locations')}{getVisitedCount()}
{$t('adventures.visited')}{getPlannedCount()}
{$t('adventures.planned')}
</p>
@ -254,7 +254,7 @@
}}
>
<Plus class="w-5 h-5" />
{$t('adventures.create_adventure')}
{$t('adventures.create_location')}
</button>
</div>
{:else}
@ -470,7 +470,7 @@
class="checkbox checkbox-primary"
checked={currentSort.includeCollections}
/>
<span class="label-text">{$t('adventures.collection_adventures')}</span>
<span class="label-text">{$t('adventures.collection_locations')}</span>
</label>
</div>
@ -508,7 +508,7 @@
}}
>
<Compass class="w-5 h-5" />
{$t('adventures.adventure')}
{$t('locations.location')}
</button>
</ul>
</div>

View file

@ -1,6 +1,6 @@
import type { PageServerLoad } from './$types';
const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL'];
import type { AdditionalAdventure, Adventure, Collection } from '$lib/types';
import type { AdditionalLocation, Location, Collection } from '$lib/types';
const endpoint = PUBLIC_SERVER_URL || 'http://localhost:8000';
export const load = (async (event) => {
@ -19,7 +19,7 @@ export const load = (async (event) => {
}
};
} else {
let adventure = (await request.json()) as AdditionalAdventure;
let adventure = (await request.json()) as AdditionalLocation;
return {
props: {

View file

@ -1,5 +1,5 @@
<script lang="ts">
import type { AdditionalAdventure } from '$lib/types';
import type { AdditionalLocation } from '$lib/types';
import { onMount } from 'svelte';
import type { PageData } from './$types';
import { goto } from '$app/navigation';
@ -77,7 +77,7 @@
export let data: PageData;
console.log(data);
let adventure: AdditionalAdventure;
let adventure: AdditionalLocation;
let currentSlide = 0;
function goToSlide(index: number) {
@ -106,7 +106,7 @@
await getGpxFiles();
});
async function saveEdit(event: CustomEvent<AdditionalAdventure>) {
async function saveEdit(event: CustomEvent<AdditionalLocation>) {
adventure = event.detail;
isEditModalOpen = false;
geojson = null;
@ -119,8 +119,8 @@
<div class="hero-content text-center">
<div class="max-w-md">
<img src={Lost} alt="Lost" class="w-64 mx-auto mb-8 opacity-80" />
<h1 class="text-5xl font-bold text-primary mb-4">{$t('adventures.not_found')}</h1>
<p class="text-lg opacity-70 mb-8">{$t('adventures.not_found_desc')}</p>
<h1 class="text-5xl font-bold text-primary mb-4">{$t('adventures.location_not_found')}</h1>
<p class="text-lg opacity-70 mb-8">{$t('adventures.location_not_found_desc')}</p>
<button class="btn btn-primary btn-lg" on:click={() => goto('/')}>
{$t('adventures.homepage')}
</button>

View file

@ -1,4 +1,4 @@
import type { Adventure } from '$lib/types';
import type { Location } from '$lib/types';
import type { PageServerLoad } from './$types';
import { formatDateInTimezone, formatAllDayDate } from '$lib/dateUtils';
import { isAllDay } from '$lib';
@ -13,7 +13,7 @@ export const load = (async (event) => {
Cookie: `sessionid=${sessionId}`
}
});
let adventures = (await visitedFetch.json()) as Adventure[];
let adventures = (await visitedFetch.json()) as Location[];
// Get user's local timezone as fallback
const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;

View file

@ -174,7 +174,7 @@
</script>
<svelte:head>
<title>{$t('adventures.adventure_calendar')} - AdventureLog</title>
<title>{$t('adventures.visit_calendar')} - AdventureLog</title>
</svelte:head>
<div class="min-h-screen bg-gradient-to-br from-base-200 via-base-100 to-base-200">
@ -196,7 +196,7 @@
</div>
<div>
<h1 class="text-3xl font-bold text-primary bg-clip-text">
{$t('adventures.adventure_calendar')}
{$t('adventures.visit_calendar')}
</h1>
<p class="text-sm text-base-content/60">
{filteredDates.length}
@ -214,7 +214,7 @@
<div class="stat-value text-lg text-primary">{allDates.length}</div>
</div>
<div class="stat py-2 px-4">
<div class="stat-title text-xs">{$t('navbar.adventures')}</div>
<div class="stat-title text-xs">{$t('locations.locations')}</div>
<div class="stat-value text-lg text-secondary">{adventures.length}</div>
</div>
</div>
@ -298,7 +298,7 @@
<div class="grid grid-cols-2 gap-4">
<div class="stat p-0">
<div class="stat-title text-xs">{$t('navbar.adventures')}</div>
<div class="stat-title text-xs">{$t('locations.locations')}</div>
<div class="stat-value text-lg text-primary">{adventures.length}</div>
</div>
</div>

View file

@ -1,7 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL'];
import type { Adventure, Collection } from '$lib/types';
import type { Location, Collection } from '$lib/types';
import type { Actions } from '@sveltejs/kit';
import { fetchCSRFToken } from '$lib/index.server';
@ -16,7 +16,7 @@ export const load = (async (event) => {
let next = null;
let previous = null;
let count = 0;
let collections: Adventure[] = [];
let collections: Location[] = [];
let sessionId = event.cookies.get('sessionid');
// Get sorting parameters from URL
@ -38,7 +38,7 @@ export const load = (async (event) => {
return redirect(302, '/login');
} else {
let res = await initialFetch.json();
let visited = res.results as Adventure[];
let visited = res.results as Location[];
next = res.next;
previous = res.previous;
count = res.count;

View file

@ -1,7 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL'];
import type { Adventure, Collection } from '$lib/types';
import type { Location, Collection } from '$lib/types';
const endpoint = PUBLIC_SERVER_URL || 'http://localhost:8000';
export const load = (async (event) => {

View file

@ -1,5 +1,5 @@
<script lang="ts">
import type { Adventure, Checklist, Collection, Lodging, Note, Transportation } from '$lib/types';
import type { Location, Checklist, Collection, Lodging, Note, Transportation } from '$lib/types';
import { onMount, onDestroy } from 'svelte';
import type { PageData } from './$types';
import { marked } from 'marked'; // Import the markdown parser
@ -25,7 +25,7 @@
const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
import {
groupAdventuresByDate,
groupLocationsByDate,
groupNotesByDate,
groupTransportationsByDate,
groupChecklistsByDate,
@ -242,14 +242,14 @@
let currentView: string = 'itinerary';
let currentItineraryView: string = 'date';
let adventures: Adventure[] = [];
let adventures: Location[] = [];
$: lineData = createLineData(orderedItems);
// Function to create GeoJSON line data from ordered items
function createLineData(
items: Array<{
item: Adventure | Transportation | Lodging | Note | Checklist;
item: Location | Transportation | Lodging | Note | Checklist;
start: string;
end: string;
}>
@ -333,7 +333,7 @@
}
let orderedItems: Array<{
item: Adventure | Transportation | Lodging;
item: Location | Transportation | Lodging;
type: 'adventure' | 'transportation' | 'lodging';
start: string; // ISO date string
end: string; // ISO date string
@ -417,7 +417,7 @@
onMount(() => {
if (data.props.adventure) {
collection = data.props.adventure;
adventures = collection.locations as Adventure[];
adventures = collection.locations as Location[];
} else {
notFound = true;
}
@ -461,7 +461,7 @@
adventures = adventures.filter((a) => a.id !== event.detail);
}
async function addAdventure(event: CustomEvent<Adventure>) {
async function addAdventure(event: CustomEvent<Location>) {
console.log(event.detail);
if (adventures.find((a) => a.id === event.detail.id)) {
return;
@ -520,7 +520,7 @@
isAdventureModalOpen = true;
}
let adventureToEdit: Adventure | null = null;
let adventureToEdit: Location | null = null;
let transportationToEdit: Transportation | null = null;
let isShowingLodgingModal: boolean = false;
let lodgingToEdit: Lodging | null = null;
@ -531,7 +531,7 @@
let newType: string;
function editAdventure(event: CustomEvent<Adventure>) {
function editAdventure(event: CustomEvent<Location>) {
adventureToEdit = event.detail;
isAdventureModalOpen = true;
}
@ -546,7 +546,7 @@
isShowingLodgingModal = true;
}
function saveOrCreateAdventure(event: CustomEvent<Adventure>) {
function saveOrCreateAdventure(event: CustomEvent<Location>) {
if (adventures.find((adventure) => adventure.id === event.detail.id)) {
adventures = adventures.map((adventure) => {
if (adventure.id === event.detail.id) {
@ -585,7 +585,7 @@
console.log(filteredRecomendations);
console.log(selectedRecomendationTag);
}
async function getRecomendations(adventure: Adventure) {
async function getRecomendations(adventure: Location) {
recomendationsData = null;
selectedRecomendationTag = '';
loadingRecomendations = true;
@ -768,7 +768,7 @@
isShowingLinkModal = true;
}}
>
{$t('adventures.adventure')}</button
{$t('locations.location')}</button
>
{/if}
<p class="text-center font-bold text-lg">{$t('adventures.add_new')}</p>
@ -779,7 +779,7 @@
adventureToEdit = null;
}}
>
{$t('adventures.adventure')}</button
{$t('locations.location')}</button
>
<button
@ -1032,7 +1032,7 @@
{@const dateString = adjustedDate.toISOString().split('T')[0]}
{@const dayAdventures =
groupAdventuresByDate(adventures, new Date(collection.start_date), numberOfDays + 1)[
groupLocationsByDate(adventures, new Date(collection.start_date), numberOfDays + 1)[
dateString
] || []}
{@const dayTransportations =
@ -1418,7 +1418,7 @@
<div class="card bg-base-200 shadow-xl my-8 mx-auto w-10/12">
<div class="card-body">
<h2 class="card-title text-3xl justify-center mb-4">
{$t('adventures.adventure_calendar')}
{$t('adventures.visit_calendar')}
</h2>
<Calendar {plugins} {options} />
</div>
@ -1428,7 +1428,7 @@
<div class="card bg-base-200 shadow-xl my-8 mx-auto w-10/12">
<div class="card-body">
<h2 class="card-title text-3xl justify-center mb-4">
{$t('recomendations.adventure_recommendations')}
{$t('recomendations.location_recommendations')}
</h2>
{#each adventures as adventure}
{#if adventure.longitude && adventure.latitude}
@ -1439,7 +1439,7 @@
{/each}
{#if adventures.length == 0}
<div class="alert alert-info">
<p class="text-center text-lg">{$t('adventures.no_adventures_to_recommendations')}</p>
<p class="text-center text-lg">{$t('adventures.no_locations_to_recommendations')}</p>
</div>
{/if}
<div class="mt-4">
@ -1526,7 +1526,7 @@
<button
class="btn btn-neutral btn-wide btn-sm mt-4"
on:click={() => recomendationToAdventure(recomendation)}
>{$t('adventures.create_adventure')}</button
>{$t('adventures.create_location')}</button
>
</Popup>
{/if}
@ -1558,7 +1558,7 @@
class="btn btn-primary"
on:click={() => recomendationToAdventure(recomendation)}
>
{$t('adventures.create_adventure')}
{$t('adventures.create_location')}
</button>
</div>
</div>
@ -1587,8 +1587,8 @@
<div class="hero-content text-center">
<div class="max-w-md">
<img src={Lost} alt="Lost" class="w-64 mx-auto mb-8 opacity-80" />
<h1 class="text-5xl font-bold text-primary mb-4">{$t('adventures.not_found')}</h1>
<p class="text-lg opacity-70 mb-8">{$t('adventures.not_found_desc')}</p>
<h1 class="text-5xl font-bold text-primary mb-4">{$t('adventures.location_not_found')}</h1>
<p class="text-lg opacity-70 mb-8">{$t('adventures.location_not_found_desc')}</p>
<button class="btn btn-primary btn-lg" on:click={() => goto('/')}>
{$t('adventures.homepage')}
</button>

View file

@ -1,7 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL'];
import type { Adventure } from '$lib/types';
import type { Location } from '$lib/types';
const serverEndpoint = PUBLIC_SERVER_URL || 'http://localhost:8000';
@ -9,7 +9,7 @@ export const load = (async (event) => {
if (!event.locals.user) {
return redirect(302, '/login');
} else {
let adventures: Adventure[] = [];
let adventures: Location[] = [];
let initialFetch = await event.fetch(`${serverEndpoint}/api/locations/`, {
headers: {
@ -41,7 +41,7 @@ export const load = (async (event) => {
return redirect(302, '/login');
} else {
let res = await initialFetch.json();
let visited = res.results as Adventure[];
let visited = res.results as Location[];
// only get the first 3 adventures or less if there are less than 3
adventures = visited.slice(0, 3);
}

View file

@ -70,7 +70,7 @@
class="btn btn-primary btn-lg gap-2 shadow-lg hover:shadow-xl transition-all duration-300"
>
<Plus class="w-5 h-5" />
{$t('map.add_adventure')}
{$t('map.add_location')}
</a>
<a href="/worldtravel" class="btn btn-outline btn-lg gap-2">
<FlagCheckeredVariantIcon class="w-5 h-5" />
@ -212,7 +212,7 @@
class="btn btn-primary btn-lg gap-2 shadow-lg hover:shadow-xl transition-all duration-300"
>
<Plus class="w-5 h-5" />
{$t('map.add_adventure')}
{$t('map.add_location')}
</a>
<a href="/worldtravel" class="btn btn-outline btn-lg gap-2">
<FlagCheckeredVariantIcon class="w-5 h-5" />

View file

@ -1,7 +1,7 @@
import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
const PUBLIC_SERVER_URL = process.env['PUBLIC_SERVER_URL'];
import type { Adventure, VisitedRegion } from '$lib/types';
import type { Location, VisitedRegion } from '$lib/types';
const endpoint = PUBLIC_SERVER_URL || 'http://localhost:8000';
export const load = (async (event) => {
@ -22,7 +22,7 @@ export const load = (async (event) => {
});
let visitedRegions = (await visitedRegionsFetch.json()) as VisitedRegion[];
let adventures = (await visitedFetch.json()) as Adventure[];
let adventures = (await visitedFetch.json()) as Location[];
if (!visitedRegionsFetch.ok) {
console.error('Failed to fetch visited regions');

View file

@ -2,7 +2,7 @@
import AdventureModal from '$lib/components/AdventureModal.svelte';
import { DefaultMarker, MapEvents, MapLibre, Popup, Marker } from 'svelte-maplibre';
import { t } from 'svelte-i18n';
import type { Adventure, VisitedRegion } from '$lib/types.js';
import type { Location, VisitedRegion } from '$lib/types.js';
import CardCarousel from '$lib/components/CardCarousel.svelte';
import { goto } from '$app/navigation';
import { getBasemapUrl } from '$lib';
@ -17,7 +17,7 @@
import Pin from '~icons/mdi/map-marker';
import Calendar from '~icons/mdi/calendar';
import Category from '~icons/mdi/shape';
import Location from '~icons/mdi/crosshairs-gps';
import LocationIcon from '~icons/mdi/crosshairs-gps';
export let data;
@ -28,7 +28,7 @@
export let initialLatLng: { lat: number; lng: number } | null = null;
let visitedRegions: VisitedRegion[] = data.props.visitedRegions;
let adventures: Adventure[] = data.props.adventures;
let adventures: Location[] = data.props.adventures;
let filteredAdventures = adventures;
@ -123,13 +123,13 @@
</div>
<div>
<h1 class="text-3xl font-bold bg-clip-text text-primary">
{$t('map.adventure_map')}
{$t('map.location_map')}
</h1>
<p class="text-sm text-base-content/60">
{filteredAdventures.length}
{$t('worldtravel.of')}
{totalAdventures}
{$t('map.adventures_shown')}
{$t('map.locations_shown')}
</p>
</div>
</div>
@ -157,7 +157,7 @@
{#if newMarker}
<button type="button" class="btn btn-primary btn-sm gap-2" on:click={newAdventure}>
<Plus class="w-4 h-4" />
{$t('map.add_adventure_at_marker')}
{$t('map.add_location_at_marker')}
</button>
<button type="button" class="btn btn-ghost btn-sm gap-2" on:click={clearMarker}>
<Clear class="w-4 h-4" />
@ -170,7 +170,7 @@
on:click={() => (createModalOpen = true)}
>
<Plus class="w-4 h-4" />
{$t('map.add_adventure')}
{$t('map.add_location')}
</button>
{/if}
</div>
@ -262,7 +262,7 @@
target="_blank"
rel="noopener noreferrer"
>
<Location class="w-4 h-4" />
<LocationIcon class="w-4 h-4" />
{$t('adventures.open_in_maps')}
</a>
{/if}
@ -293,7 +293,7 @@
lngLat={[region.longitude, region.latitude]}
class="grid h-8 w-8 place-items-center rounded-full border border-gray-200 bg-green-300 hover:bg-green-400 text-black shadow-lg cursor-pointer transition-transform hover:scale-110"
>
<Location class="w-5 h-5 text-green-700" />
<LocationIcon class="w-5 h-5 text-green-700" />
<Popup openOn="click" offset={[0, -10]}>
<div class="space-y-2">
<div class="text-lg text-black font-bold">{region.name}</div>
@ -405,7 +405,7 @@
class="checkbox checkbox-accent checkbox-sm"
/>
<span class="label-text flex items-center gap-2">
<Location class="w-4 h-4" />
<LocationIcon class="w-4 h-4" />
{$t('map.show_visited_regions')} ({totalRegions})
</span>
</label>
@ -427,7 +427,7 @@
</div>
<button type="button" class="btn btn-primary w-full gap-2" on:click={newAdventure}>
<Plus class="w-4 h-4" />
{$t('map.add_adventure_at_marker')}
{$t('map.add_location_at_marker')}
</button>
<button type="button" class="btn btn-ghost w-full gap-2" on:click={clearMarker}>
<Clear class="w-4 h-4" />
@ -437,7 +437,7 @@
{:else}
<div class="space-y-3">
<p class="text-sm text-base-content/60">
{$t('map.place_marker_desc')}
{$t('map.place_marker_desc_location')}
</p>
<button
type="button"
@ -445,7 +445,7 @@
on:click={() => (createModalOpen = true)}
>
<Plus class="w-4 h-4" />
{$t('map.add_adventure')}
{$t('map.add_location')}
</button>
</div>
{/if}

View file

@ -2,7 +2,7 @@
export let data;
import AdventureCard from '$lib/components/AdventureCard.svelte';
import CollectionCard from '$lib/components/CollectionCard.svelte';
import type { Adventure, Collection, User } from '$lib/types.js';
import type { Location, Collection, User } from '$lib/types.js';
import { t } from 'svelte-i18n';
import { onMount } from 'svelte';
import { gsap } from 'gsap';
@ -31,7 +31,7 @@
} | null;
const user: User = data.user;
const adventures: Adventure[] = data.adventures;
const adventures: Location[] = data.adventures;
const collections: Collection[] = data.collections;
stats = data.stats || null;
@ -189,7 +189,7 @@
<div class="flex items-center justify-between">
<div>
<div class="text-primary/70 font-medium text-sm uppercase tracking-wide">
{$t('navbar.adventures')}
{$t('locations.locations')}
</div>
<div class="text-4xl font-bold text-primary">{stats.adventure_count}</div>
<div class="text-primary/60 mt-2 flex items-center gap-1">
@ -331,14 +331,14 @@
<Airplane class="w-6 h-6 text-primary" />
</div>
<div>
<h2 class="text-3xl font-bold">{$t('auth.user_adventures')}</h2>
<p class="text-base-content/60">{$t('profile.public_adventure_experiences')}</p>
<h2 class="text-3xl font-bold">{$t('auth.user_locations')}</h2>
<p class="text-base-content/60">{$t('profile.public_location_experiences')}</p>
</div>
</div>
{#if adventures && adventures.length > 0}
<div class="badge badge-primary badge-lg">
{adventures.length}
{adventures.length === 1 ? $t('adventures.adventure') : $t('navbar.adventures')}
{adventures.length === 1 ? $t('locations.location') : $t('locations.locations')}
</div>
{/if}
</div>
@ -350,7 +350,7 @@
<Airplane class="w-16 h-16 text-base-content/30" />
</div>
<h3 class="text-xl font-bold text-base-content/70 mb-2">
{$t('auth.no_public_adventures')}
{$t('auth.no_public_locations')}
</h3>
<p class="text-base-content/50">{$t('profile.no_shared_adventures')}</p>
</div>

View file

@ -9,7 +9,7 @@
import type { PageData } from './$types';
import { t } from 'svelte-i18n';
import type {
Adventure,
Location,
Collection,
User,
Country,
@ -27,7 +27,7 @@
$: query = $page.url.searchParams.get('query') ?? '';
// Assign updated results from data, so when data changes, the displayed items update:
$: adventures = data.adventures as Adventure[];
$: adventures = data.adventures as Location[];
$: collections = data.collections as Collection[];
$: users = data.users as User[];
$: countries = data.countries as Country[];