mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-23 14:59:36 +02:00
Refactor localization strings and add missing translations
This commit is contained in:
parent
fcd2d27221
commit
05076a6732
15 changed files with 1245 additions and 441 deletions
|
@ -1,5 +1,6 @@
|
|||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
export let activities: string[] | undefined | null;
|
||||
|
||||
|
@ -53,7 +54,7 @@
|
|||
<input
|
||||
type="text"
|
||||
class="input input-bordered w-full"
|
||||
placeholder="Add an activity"
|
||||
placeholder={$t('adventures.add_an_activity')}
|
||||
bind:value={inputVal}
|
||||
on:keydown={(e) => {
|
||||
if (e.key === 'Enter') {
|
||||
|
@ -62,7 +63,9 @@
|
|||
}
|
||||
}}
|
||||
/>
|
||||
<button type="button" class="btn btn-neutral" on:click={addActivity}>Add</button>
|
||||
<button type="button" class="btn btn-neutral" on:click={addActivity}
|
||||
>{$t('adventures.add')}</button
|
||||
>
|
||||
</div>
|
||||
{#if inputVal && filteredItems.length > 0}
|
||||
<ul class="absolute z-10 w-full bg-base-100 shadow-lg max-h-60 overflow-auto">
|
||||
|
@ -95,7 +98,7 @@
|
|||
class="btn btn-sm btn-error"
|
||||
on:click={() => removeActivity(activity)}
|
||||
>
|
||||
Remove
|
||||
{$t('adventures.remove')}
|
||||
</button>
|
||||
</li>
|
||||
{/each}
|
||||
|
|
|
@ -166,7 +166,7 @@
|
|||
let res = await fetch(`/api/generate/img/?name=${imageSearch}`);
|
||||
let data = await res.json();
|
||||
if (!res.ok) {
|
||||
wikiImageError = 'Failed to fetch image';
|
||||
wikiImageError = $t('adventures.image_fetch_failed');
|
||||
return;
|
||||
}
|
||||
if (data.source) {
|
||||
|
@ -200,7 +200,7 @@
|
|||
e.preventDefault();
|
||||
}
|
||||
if (!query) {
|
||||
alert('Please enter a location');
|
||||
alert($t('adventures.no_location'));
|
||||
return;
|
||||
}
|
||||
let res = await fetch(`https://nominatim.openstreetmap.org/search?q=${query}&format=jsonv2`, {
|
||||
|
@ -229,12 +229,8 @@
|
|||
addToast('error', $t('adventures.start_before_end_error'));
|
||||
return;
|
||||
}
|
||||
if (new_start_date === '' || new_end_date === '') {
|
||||
addToast('error', 'Please enter a start and end date');
|
||||
return;
|
||||
}
|
||||
if (new_end_date && !new_start_date) {
|
||||
addToast('error', 'Please enter a start date');
|
||||
addToast('error', $t('adventures.no_start_date'));
|
||||
return;
|
||||
}
|
||||
adventure.visits = [
|
||||
|
@ -307,7 +303,7 @@
|
|||
adventure.description = data.extract;
|
||||
wikiError = '';
|
||||
} else {
|
||||
wikiError = 'No description found';
|
||||
wikiError = $t('adventures.no_description_found');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -331,12 +327,12 @@
|
|||
if (result.data.id && result.data.image) {
|
||||
adventure.images = [...adventure.images, result.data];
|
||||
images = [...images, result.data];
|
||||
addToast('success', 'Image uploaded');
|
||||
addToast('success', $t('adventures.image_upload_success'));
|
||||
|
||||
fileInput.value = '';
|
||||
console.log(adventure);
|
||||
} else {
|
||||
addToast('error', result.data.error || 'Failed to upload image');
|
||||
addToast('error', result.data.error || $t('adventures.image_upload_error'));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -358,10 +354,10 @@
|
|||
adventure = data as Adventure;
|
||||
isDetails = false;
|
||||
warningMessage = '';
|
||||
addToast('success', 'Adventure created');
|
||||
addToast('success', $t('adventures.adventure_created'));
|
||||
} else {
|
||||
warningMessage = Object.values(data)[0] as string;
|
||||
addToast('error', 'Failed to create adventure');
|
||||
addToast('error', $t('adventures.adventure_create_error'));
|
||||
}
|
||||
} else {
|
||||
let res = await fetch(`/api/adventures/${adventure.id}`, {
|
||||
|
@ -376,10 +372,10 @@
|
|||
adventure = data as Adventure;
|
||||
isDetails = false;
|
||||
warningMessage = '';
|
||||
addToast('success', 'Adventure updated');
|
||||
addToast('success', $t('adventures.adventure_updated'));
|
||||
} else {
|
||||
warningMessage = Object.values(data)[0] as string;
|
||||
addToast('error', 'Failed to update adventure');
|
||||
addToast('error', $t('adventures.adventure_update_error'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -391,7 +387,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 ? 'Edit Adventure' : 'New Adventure'}
|
||||
{adventureToEdit ? $t('adventures.edit_adventure') : $t('adventures.new_adventure')}
|
||||
</h3>
|
||||
{#if adventure.id === '' || isDetails}
|
||||
<div class="modal-action items-center">
|
||||
|
@ -400,10 +396,12 @@
|
|||
<!-- <div class="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3"> -->
|
||||
<div class="collapse collapse-plus bg-base-200 mb-4">
|
||||
<input type="checkbox" checked />
|
||||
<div class="collapse-title text-xl font-medium">Basic Information</div>
|
||||
<div class="collapse-title text-xl font-medium">
|
||||
{$t('adventures.basic_information')}
|
||||
</div>
|
||||
<div class="collapse-content">
|
||||
<div>
|
||||
<label for="name">Name</label><br />
|
||||
<label for="name">{$t('adventures.name')}</label><br />
|
||||
<input
|
||||
type="text"
|
||||
id="name"
|
||||
|
@ -414,16 +412,16 @@
|
|||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="link">Category</label><br />
|
||||
<label for="link">{$t('adventures.category')}</label><br />
|
||||
<select class="select select-bordered w-full max-w-xs" bind:value={adventure.type}>
|
||||
<option disabled selected>Select Adventure Type</option>
|
||||
<option disabled selected>{$t('adventures.select_adventure_category')}</option>
|
||||
{#each ADVENTURE_TYPES as type}
|
||||
<option value={type.type}>{type.label}</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label for="rating">Rating</label><br />
|
||||
<label for="rating">{$t('adventures.rating')}</label><br />
|
||||
<input
|
||||
type="number"
|
||||
min="0"
|
||||
|
@ -482,14 +480,14 @@
|
|||
class="btn btn-sm btn-error ml-2"
|
||||
on:click={() => (adventure.rating = NaN)}
|
||||
>
|
||||
Remove
|
||||
{$t('adventures.remove')}
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<label for="link">Link</label><br />
|
||||
<label for="link">{$t('adventures.link')}</label><br />
|
||||
<input
|
||||
type="text"
|
||||
id="link"
|
||||
|
@ -500,7 +498,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="description">Description</label><br />
|
||||
<label for="description">{$t('adventures.description')}</label><br />
|
||||
<textarea
|
||||
id="description"
|
||||
name="description"
|
||||
|
@ -508,12 +506,9 @@
|
|||
class="textarea textarea-bordered w-full h-32"
|
||||
></textarea>
|
||||
<div class="mt-2">
|
||||
<div
|
||||
class="tooltip tooltip-right"
|
||||
data-tip="Pulls excerpt from Wikipedia article matching the name of the adventure."
|
||||
>
|
||||
<div class="tooltip tooltip-right" data-tip={$t('adventures.wiki_desc')}>
|
||||
<button type="button" class="btn btn-neutral" on:click={generateDesc}
|
||||
>Generate Description</button
|
||||
>{$t('adventures.generate_desc')}</button
|
||||
>
|
||||
</div>
|
||||
<p class="text-red-500">{wikiError}</p>
|
||||
|
@ -523,7 +518,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">Public Adventure</span>
|
||||
<span class="label-text">{$t('adventures.public_adventure')}</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
class="toggle toggle-primary"
|
||||
|
@ -540,11 +535,13 @@
|
|||
|
||||
<div class="collapse collapse-plus bg-base-200 mb-4">
|
||||
<input type="checkbox" />
|
||||
<div class="collapse-title text-xl font-medium">Location Information</div>
|
||||
<div class="collapse-title text-xl font-medium">
|
||||
{$t('adventures.location_information')}
|
||||
</div>
|
||||
<div class="collapse-content">
|
||||
<!-- <div class="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3"> -->
|
||||
<div>
|
||||
<label for="latitude">Location</label><br />
|
||||
<label for="latitude">{$t('adventures.location')}</label><br />
|
||||
<input
|
||||
type="text"
|
||||
id="location"
|
||||
|
@ -557,21 +554,21 @@
|
|||
<form on:submit={geocode} class="mt-2">
|
||||
<input
|
||||
type="text"
|
||||
placeholder="Seach for a location"
|
||||
placeholder={$t('adventures.search_for_location')}
|
||||
class="input input-bordered w-full max-w-xs mb-2"
|
||||
id="search"
|
||||
name="search"
|
||||
bind:value={query}
|
||||
/>
|
||||
<button class="btn btn-neutral -mt-1" type="submit">Search</button>
|
||||
<button class="btn btn-neutral -mt-1" type="submit">{$t('navbar.search')}</button>
|
||||
<button class="btn btn-neutral -mt-1" type="button" on:click={clearMap}
|
||||
>Clear Map</button
|
||||
>{$t('adventures.clear_map')}</button
|
||||
>
|
||||
</form>
|
||||
</div>
|
||||
{#if places.length > 0}
|
||||
<div class="mt-4 max-w-full">
|
||||
<h3 class="font-bold text-lg mb-4">Search Results</h3>
|
||||
<h3 class="font-bold text-lg mb-4">{$t('adventures.search_results')}</h3>
|
||||
|
||||
<div class="flex flex-wrap">
|
||||
{#each places as place}
|
||||
|
@ -595,7 +592,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{:else if noPlaces}
|
||||
<p class="text-error text-lg">No results found</p>
|
||||
<p class="text-error text-lg">{$t('adventures.no_results')}</p>
|
||||
{/if}
|
||||
<!-- </div> -->
|
||||
<div>
|
||||
|
@ -620,7 +617,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
<div class="collapse collapse-plus bg-base-200 mb-4 overflow-visible">
|
||||
<input type="checkbox" />
|
||||
<div class="collapse-title text-xl font-medium">
|
||||
Activity Types ({adventure.activity_types?.length || 0})
|
||||
{$t('adventures.activity_types')} ({adventure.activity_types?.length || 0})
|
||||
</div>
|
||||
<div class="collapse-content">
|
||||
<input
|
||||
|
@ -638,12 +635,12 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
<div class="collapse collapse-plus bg-base-200 mb-4">
|
||||
<input type="checkbox" />
|
||||
<div class="collapse-title text-xl font-medium">
|
||||
Visits ({adventure.visits.length})
|
||||
{$t('adventures.visits')} ({adventure.visits.length})
|
||||
</div>
|
||||
<div class="collapse-content">
|
||||
<label class="label cursor-pointer flex items-start space-x-2">
|
||||
{#if adventure.collection && collection && collection.start_date && collection.end_date}
|
||||
<span class="label-text">Constrain to collection dates</span>
|
||||
<span class="label-text">{$t('adventures.date_constrain')}</span>
|
||||
<input
|
||||
type="checkbox"
|
||||
class="toggle toggle-primary"
|
||||
|
@ -670,7 +667,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
<input
|
||||
type="date"
|
||||
class="input input-bordered w-full"
|
||||
placeholder="End Date"
|
||||
placeholder={$t('adventures.end_date')}
|
||||
bind:value={new_end_date}
|
||||
on:keydown={(e) => {
|
||||
if (e.key === 'Enter') {
|
||||
|
@ -683,7 +680,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
<input
|
||||
type="date"
|
||||
class="input input-bordered w-full"
|
||||
placeholder="Start Date"
|
||||
placeholder={$t('adventures.start_date')}
|
||||
min={collection?.start_date}
|
||||
max={collection?.end_date}
|
||||
bind:value={new_start_date}
|
||||
|
@ -697,7 +694,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
<input
|
||||
type="date"
|
||||
class="input input-bordered w-full"
|
||||
placeholder="End Date"
|
||||
placeholder={$t('adventures.end_date')}
|
||||
bind:value={new_end_date}
|
||||
min={collection?.start_date}
|
||||
max={collection?.end_date}
|
||||
|
@ -714,7 +711,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
<!-- textarea for notes -->
|
||||
<textarea
|
||||
class="textarea textarea-bordered w-full"
|
||||
placeholder="Add notes"
|
||||
placeholder={$t('adventures.add_notes')}
|
||||
bind:value={new_notes}
|
||||
on:keydown={(e) => {
|
||||
if (e.key === 'Enter') {
|
||||
|
@ -726,11 +723,13 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
</div>
|
||||
|
||||
<div class="flex gap-2">
|
||||
<button type="button" class="btn btn-neutral" on:click={addNewVisit}>Add</button>
|
||||
<button type="button" class="btn btn-neutral" on:click={addNewVisit}
|
||||
>{$t('adventures.add')}</button
|
||||
>
|
||||
</div>
|
||||
|
||||
{#if adventure.visits.length > 0}
|
||||
<h2 class=" font-bold text-xl mt-2">My Visits</h2>
|
||||
<h2 class=" font-bold text-xl mt-2">{$t('adventures.my_visits')}</h2>
|
||||
{#each adventure.visits as visit}
|
||||
<div class="flex flex-col gap-2">
|
||||
<div class="flex gap-2">
|
||||
|
@ -755,7 +754,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
adventure.visits = adventure.visits.filter((v) => v !== visit);
|
||||
}}
|
||||
>
|
||||
Remove
|
||||
{$t('adventures.remove')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -783,20 +782,20 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
|
||||
/>
|
||||
</svg>
|
||||
<span>Warning: {warningMessage}</span>
|
||||
<span>{$t('adventures.warning')}: {warningMessage}</span>
|
||||
</div>
|
||||
{/if}
|
||||
<button type="submit" class="btn btn-primary">Save & Next</button>
|
||||
<button type="button" class="btn" on:click={close}>Close</button>
|
||||
<button type="submit" class="btn btn-primary">{$t('adventures.save_next')}</button>
|
||||
<button type="button" class="btn" on:click={close}>{$t('about.close')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{:else}
|
||||
<p>Upload images here</p>
|
||||
<p>{$t('adventures.upload_images_here')}</p>
|
||||
<!-- <p>{adventureToEdit.id}</p> -->
|
||||
<div class="mb-2">
|
||||
<label for="image">Image </label><br />
|
||||
<label for="image">{$t('adventures.image')} </label><br />
|
||||
<div class="flex">
|
||||
<form
|
||||
method="POST"
|
||||
|
@ -813,11 +812,13 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
id="image"
|
||||
/>
|
||||
<input type="hidden" name="adventure" value={adventure.id} id="adventure" />
|
||||
<button class="btn btn-neutral mt-2 mb-2" type="submit">Upload Image</button>
|
||||
<button class="btn btn-neutral mt-2 mb-2" type="submit"
|
||||
>{$t('adventures.upload_image')}</button
|
||||
>
|
||||
</form>
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<label for="url">URL</label><br />
|
||||
<label for="url">{$t('adventures.url')}</label><br />
|
||||
<input
|
||||
type="text"
|
||||
id="url"
|
||||
|
@ -826,11 +827,11 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
class="input input-bordered w-full"
|
||||
/>
|
||||
<button class="btn btn-neutral mt-2" type="button" on:click={fetchImage}
|
||||
>Fetch Image</button
|
||||
>{$t('adventures.fetch_image')}</button
|
||||
>
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<label for="name">Wikipedia</label><br />
|
||||
<label for="name">{$t('adventures.wikipedia')}</label><br />
|
||||
<input
|
||||
type="text"
|
||||
id="name"
|
||||
|
@ -839,14 +840,14 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
class="input input-bordered w-full"
|
||||
/>
|
||||
<button class="btn btn-neutral mt-2" type="button" on:click={fetchWikiImage}
|
||||
>Fetch Image</button
|
||||
>{$t('adventures.fetch_image')}</button
|
||||
>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
{#if images.length > 0}
|
||||
<h1 class="font-semibold text-xl">My Images</h1>
|
||||
<h1 class="font-semibold text-xl">{$t('adventures.my_images')}</h1>
|
||||
{:else}
|
||||
<h1 class="font-semibold text-xl">No Images</h1>
|
||||
<h1 class="font-semibold text-xl">{$t('adventures.no_images')}</h1>
|
||||
{/if}
|
||||
<div class="flex flex-wrap gap-2 mt-2">
|
||||
{#each images as image}
|
||||
|
@ -864,12 +865,14 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
</div>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<button type="button" class="btn btn-primary" on:click={saveAndClose}>Close</button>
|
||||
<button type="button" class="btn btn-primary" on:click={saveAndClose}
|
||||
>{$t('about.close')}</button
|
||||
>
|
||||
</div>
|
||||
{/if}
|
||||
{#if adventure.is_public && adventure.id}
|
||||
<div class="bg-neutral p-4 mt-2 rounded-md shadow-sm">
|
||||
<p class=" font-semibold">Share this Adventure!</p>
|
||||
<p class=" font-semibold">{$t('adventures.share_adventure')}</p>
|
||||
<div class="flex items-center justify-between">
|
||||
<p class="text-card-foreground font-mono">
|
||||
{window.location.origin}/adventures/{adventure.id}
|
||||
|
@ -881,7 +884,7 @@ it would also work to just use on:click on the MapLibre component itself. -->
|
|||
}}
|
||||
class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 h-10 px-4 py-2"
|
||||
>
|
||||
Copy Link
|
||||
{$t('adventures.copy_link')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -98,12 +98,12 @@
|
|||
{#if !data.user}
|
||||
<li>
|
||||
<button class="btn btn-primary" on:click={() => goto('/login')}
|
||||
>{$t('navbar.login')}</button
|
||||
>{$t('auth.login')}</button
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<button class="btn btn-primary" on:click={() => goto('/signup')}
|
||||
>{$t('navbar.signup')}</button
|
||||
>{$t('auth.signup')}</button
|
||||
>
|
||||
</li>
|
||||
{/if}
|
||||
|
@ -165,13 +165,12 @@
|
|||
|
||||
{#if !data.user}
|
||||
<li>
|
||||
<button class="btn btn-primary" on:click={() => goto('/login')}
|
||||
>{$t('navbar.login')}</button
|
||||
<button class="btn btn-primary" on:click={() => goto('/login')}>{$t('auth.login')}</button
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<button class="btn btn-primary" on:click={() => goto('/signup')}
|
||||
>{$t('navbar.signup')}</button
|
||||
>{$t('auth.signup')}</button
|
||||
>
|
||||
</li>
|
||||
{/if}
|
||||
|
|
|
@ -45,7 +45,111 @@
|
|||
"edit_adventure": "Abenteuer bearbeiten",
|
||||
"no_image_found": "Kein Bild gefunden",
|
||||
"open_details": "Details öffnen",
|
||||
"remove_from_collection": "Aus der Sammlung entfernen"
|
||||
"remove_from_collection": "Aus der Sammlung entfernen",
|
||||
"adventure": "Abenteuer",
|
||||
"adventure_delete_success": "Abenteuer erfolgreich gelöscht!",
|
||||
"adventure_details": "Abenteuerdetails",
|
||||
"adventure_type": "Abenteuertyp",
|
||||
"archive": "Archiv",
|
||||
"archived": "Archiviert",
|
||||
"archived_collection_message": "Sammlung erfolgreich archiviert!",
|
||||
"archived_collections": "Archivierte Sammlungen",
|
||||
"ascending": "Aufsteigend",
|
||||
"cancel": "Stornieren",
|
||||
"category_filter": "Kategoriefilter",
|
||||
"clear": "Klar",
|
||||
"close_filters": "Filter schließen",
|
||||
"collection": "Sammlung",
|
||||
"collection_adventures": "Schließen Sie Sammlungsabenteuer ein",
|
||||
"count_txt": "Ergebnisse, die Ihrer Suche entsprechen",
|
||||
"date": "Datum",
|
||||
"dates": "Termine",
|
||||
"delete_adventure": "Abenteuer löschen",
|
||||
"delete_collection": "Sammlung löschen",
|
||||
"delete_collection_success": "Sammlung erfolgreich gelöscht!",
|
||||
"delete_collection_warning": "Sind Sie sicher, dass Sie diese Sammlung löschen möchten? \nDadurch werden auch alle verknüpften Abenteuer gelöscht. \nDiese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"descending": "Absteigend",
|
||||
"duration": "Dauer",
|
||||
"edit_collection": "Sammlung bearbeiten",
|
||||
"filter": "Filter",
|
||||
"homepage": "Homepage",
|
||||
"image_removed_error": "Fehler beim Entfernen des Bildes",
|
||||
"image_removed_success": "Bild erfolgreich entfernt!",
|
||||
"image_upload_error": "Fehler beim Hochladen des Bildes",
|
||||
"image_upload_success": "Bild erfolgreich hochgeladen!",
|
||||
"latitude": "Breite",
|
||||
"longitude": "Länge",
|
||||
"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 probieren Sie ein anderes Abenteuer aus oder schauen Sie später noch einmal vorbei.",
|
||||
"open_filters": "Öffnen Sie Filter",
|
||||
"order_by": "Bestellen nach",
|
||||
"order_direction": "Bestellrichtung",
|
||||
"planned": "Geplant",
|
||||
"private": "Privat",
|
||||
"public": "Öffentlich",
|
||||
"rating": "Bewertung",
|
||||
"share": "Aktie",
|
||||
"sort": "Sortieren",
|
||||
"sources": "Quellen",
|
||||
"start_before_end_error": "Das Startdatum muss vor dem Enddatum liegen",
|
||||
"unarchive": "Dearchivieren",
|
||||
"unarchived_collection_message": "Sammlung erfolgreich dearchiviert!",
|
||||
"updated": "Aktualisiert",
|
||||
"visit": "Besuchen",
|
||||
"visited": "Besucht",
|
||||
"visits": "Besuche",
|
||||
"wiki_image_error": "Fehler beim Abrufen des Bildes aus Wikipedia",
|
||||
"actions": "Aktionen",
|
||||
"activity": "Aktivität",
|
||||
"activity_types": "Aktivitätstypen",
|
||||
"add": "Hinzufügen",
|
||||
"add_an_activity": "Fügen Sie eine Aktivität hinzu",
|
||||
"add_notes": "Notizen hinzufügen",
|
||||
"adventure_create_error": "Das Abenteuer konnte nicht erstellt werden",
|
||||
"adventure_created": "Abenteuer geschaffen",
|
||||
"adventure_update_error": "Das Abenteuer konnte nicht aktualisiert werden",
|
||||
"adventure_updated": "Abenteuer aktualisiert",
|
||||
"basic_information": "Grundlegende Informationen",
|
||||
"category": "Kategorie",
|
||||
"clear_map": "Klare Karte",
|
||||
"copy_link": "Link kopieren",
|
||||
"create_new": "Neu erstellen...",
|
||||
"date_constrain": "Auf Abholtermine beschränken",
|
||||
"description": "Beschreibung",
|
||||
"end_date": "Enddatum",
|
||||
"fetch_image": "Bild abrufen",
|
||||
"generate_desc": "Beschreibung generieren",
|
||||
"image": "Bild",
|
||||
"image_fetch_failed": "Bild konnte nicht abgerufen werden",
|
||||
"link": "Link",
|
||||
"location": "Standort",
|
||||
"location_information": "Standortinformationen",
|
||||
"my_images": "Meine Bilder",
|
||||
"my_visits": "Meine Besuche",
|
||||
"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",
|
||||
"no_start_date": "Bitte geben Sie ein Startdatum ein",
|
||||
"public_adventure": "Öffentliches Abenteuer",
|
||||
"remove": "Entfernen",
|
||||
"save_next": "Speichern",
|
||||
"search_for_location": "Suchen Sie nach einem Ort",
|
||||
"search_results": "Suchergebnisse",
|
||||
"see_adventures": "Siehe Abenteuer",
|
||||
"select_adventure_category": "Wählen Sie die Abenteuerkategorie",
|
||||
"share_adventure": "Teilen Sie dieses Abenteuer!",
|
||||
"start_date": "Startdatum",
|
||||
"upload_image": "Bild hochladen",
|
||||
"upload_images_here": "Laden Sie hier Bilder hoch",
|
||||
"url": "URL",
|
||||
"warning": "Warnung",
|
||||
"wiki_desc": "Ruft einen Auszug aus einem Wikipedia-Artikel ab, der zum Namen des Abenteuers passt.",
|
||||
"wikipedia": "Wikipedia"
|
||||
},
|
||||
"home": {
|
||||
"desc_1": "Entdecken, planen und erkunden Sie mit Leichtigkeit",
|
||||
|
@ -58,7 +162,8 @@
|
|||
"go_to": "Gehen Sie zu AdventureLog",
|
||||
"hero_1": "Entdecken Sie die aufregendsten Abenteuer der Welt",
|
||||
"hero_2": "Entdecken und planen Sie Ihr nächstes Abenteuer mit AdventureLog. \nEntdecken Sie atemberaubende Reiseziele, erstellen Sie individuelle Reiserouten und bleiben Sie unterwegs in Verbindung.",
|
||||
"key_features": "Hauptmerkmale"
|
||||
"key_features": "Hauptmerkmale",
|
||||
"feature_2_desc": "Erstellen Sie ganz einfach individuelle Reiserouten und erhalten Sie eine tagesaktuelle Aufschlüsselung Ihrer Reise."
|
||||
},
|
||||
"navbar": {
|
||||
"about": "Über AdventureLog",
|
||||
|
@ -67,7 +172,6 @@
|
|||
"discord": "Zwietracht",
|
||||
"documentation": "Dokumentation",
|
||||
"greeting": "Hallo",
|
||||
"login": "Login",
|
||||
"logout": "Abmelden",
|
||||
"map": "Karte",
|
||||
"my_activities": "Meine Aktivitäten",
|
||||
|
@ -76,7 +180,6 @@
|
|||
"search": "Suchen",
|
||||
"settings": "Einstellungen",
|
||||
"shared_with_me": "Mit mir geteilt",
|
||||
"signup": "Melden Sie sich an",
|
||||
"theme_selection": "Themenauswahl",
|
||||
"themes": {
|
||||
"aestetic-dark": "Ästhetisches Dunkel",
|
||||
|
@ -89,5 +192,47 @@
|
|||
},
|
||||
"users": "Benutzer",
|
||||
"worldtravel": "Weltreisen"
|
||||
},
|
||||
"auth": {
|
||||
"confirm_password": "Passwort bestätigen",
|
||||
"email": "E-Mail",
|
||||
"first_name": "Vorname",
|
||||
"forgot_password": "Passwort vergessen?",
|
||||
"last_name": "Nachname",
|
||||
"login": "Login",
|
||||
"login_error": "Anmeldung mit den angegebenen Anmeldeinformationen nicht möglich.",
|
||||
"password": "Passwort",
|
||||
"registration_disabled": "Die Registrierung ist derzeit deaktiviert.",
|
||||
"signup": "Melden Sie sich an",
|
||||
"username": "Benutzername",
|
||||
"profile_picture": "Profilbild",
|
||||
"public_profile": "Öffentliches Profil"
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "Keine Benutzer mit öffentlichen Profilen gefunden."
|
||||
},
|
||||
"worldtravel": {
|
||||
"all": "Alle",
|
||||
"all_subregions": "Alle Unterregionen",
|
||||
"clear_search": "Suche löschen",
|
||||
"completely_visited": "Vollständig besucht",
|
||||
"country_list": "Länderliste",
|
||||
"no_countries_found": "Keine Länder gefunden",
|
||||
"not_visited": "Nicht besucht",
|
||||
"num_countries": "Länder gefunden",
|
||||
"partially_visited": "Teilweise besucht"
|
||||
},
|
||||
"settings": {
|
||||
"account_settings": "Benutzerkontoeinstellungen",
|
||||
"current_email": "Aktuelle E-Mail",
|
||||
"email_change": "E-Mail ändern",
|
||||
"new_email": "Neue E-Mail",
|
||||
"new_password": "Neues Passwort",
|
||||
"no_email_set": "Keine E-Mail-Adresse festgelegt",
|
||||
"password_change": "Kennwort ändern",
|
||||
"settings_page": "Einstellungsseite",
|
||||
"update": "Aktualisieren",
|
||||
"update_error": "Fehler beim Aktualisieren der Einstellungen",
|
||||
"update_success": "Einstellungen erfolgreich aktualisiert!"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
"worldtravel": "World Travel",
|
||||
"map": "Map",
|
||||
"users": "Users",
|
||||
"login": "Login",
|
||||
"signup": "Signup",
|
||||
"search": "Search",
|
||||
"profile": "Profile",
|
||||
"greeting": "Hi",
|
||||
|
@ -87,11 +85,45 @@
|
|||
"updated": "Updated",
|
||||
"name": "Name",
|
||||
"date": "Date",
|
||||
"activity_types": "Activity Types",
|
||||
"date_constrain": "Constrain to collection dates",
|
||||
"rating": "Rating",
|
||||
"my_images": "My Images",
|
||||
"add_an_activity": "Add an activity",
|
||||
"no_images": "No Images",
|
||||
"upload_images_here": "Upload images here",
|
||||
"share_adventure": "Share this Adventure!",
|
||||
"copy_link": "Copy Link",
|
||||
"image": "Image",
|
||||
"upload_image": "Upload Image",
|
||||
"url": "URL",
|
||||
"fetch_image": "Fetch Image",
|
||||
"wikipedia": "Wikipedia",
|
||||
"add_notes": "Add notes",
|
||||
"warning": "Warning",
|
||||
"add": "Add",
|
||||
"save_next": "Save & Next",
|
||||
"end_date": "End Date",
|
||||
"my_visits": "My Visits",
|
||||
"start_date": "Start Date",
|
||||
"remove": "Remove",
|
||||
"location": "Location",
|
||||
"search_for_location": "Search for a location",
|
||||
"clear_map": "Clear map",
|
||||
"search_results": "Searh results",
|
||||
"no_results": "No results found",
|
||||
"wiki_desc": "Pulls excerpt from Wikipedia article matching the name of the adventure.",
|
||||
"generate_desc": "Generate Description",
|
||||
"public_adventure": "Public Adventure",
|
||||
"location_information": "Location Information",
|
||||
"link": "Link",
|
||||
"description": "Description",
|
||||
"sources": "Sources",
|
||||
"collection_adventures": "Include Collection Adventures",
|
||||
"filter": "Filter",
|
||||
"category_filter": "Category Filter",
|
||||
"category": "Category",
|
||||
"select_adventure_category": "Select Adventure Category",
|
||||
"clear": "Clear",
|
||||
"my_collections": "My Collections",
|
||||
"open_filters": "Open Filters",
|
||||
|
@ -123,6 +155,19 @@
|
|||
"dates": "Dates",
|
||||
"wiki_image_error": "Error fetching image from Wikipedia",
|
||||
"start_before_end_error": "Start date must be before end date",
|
||||
"activity": "Activity",
|
||||
"actions": "Actions",
|
||||
"see_adventures": "See Adventures",
|
||||
"image_fetch_failed": "Failed to fetch image",
|
||||
"no_location": "Please enter a location",
|
||||
"no_start_date": "Please enter a start date",
|
||||
"no_description_found": "No description found",
|
||||
"adventure_created": "Adventure created",
|
||||
"adventure_create_error": "Failed to create adventure",
|
||||
"adventure_updated": "Adventure updated",
|
||||
"adventure_update_error": "Failed to update adventure",
|
||||
"new_adventure": "New Adventure",
|
||||
"basic_information": "Basic Information",
|
||||
"activities": {
|
||||
"general": "General 🌍",
|
||||
"outdoor": "Outdoor 🏞️",
|
||||
|
@ -165,6 +210,31 @@
|
|||
"forgot_password": "Forgot Password?",
|
||||
"signup": "Signup",
|
||||
"login_error": "Unable to login with the provided credentials.",
|
||||
"login": "Login"
|
||||
"login": "Login",
|
||||
"email": "Email",
|
||||
"first_name": "First Name",
|
||||
"last_name": "Last Name",
|
||||
"confirm_password": "Confirm Password",
|
||||
"registration_disabled": "Registration is currently disabled.",
|
||||
"profile_picture": "Profile Picture",
|
||||
"public_profile": "Public Profile",
|
||||
"public_tooltip": "With a public profile, users can share collections with you and view your profile on the users page."
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "No users found with public profiles."
|
||||
},
|
||||
"settings": {
|
||||
"update_error": "Error updating settings",
|
||||
"update_success": "Settings updated successfully!",
|
||||
"settings_page": "Settings Page",
|
||||
"account_settings": "User Account Settings",
|
||||
"update": "Update",
|
||||
"password_change": "Change Password",
|
||||
"new_password": "New Password",
|
||||
"confirm_new_password": "Confirm New Password",
|
||||
"email_change": "Change Email",
|
||||
"current_email": "Current Email",
|
||||
"no_email_set": "No email set",
|
||||
"new_email": "New Email"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
"worldtravel": "Viajar por el Mundo",
|
||||
"map": "Mapa",
|
||||
"users": "Usuarios",
|
||||
"login": "Iniciar Sesión",
|
||||
"signup": "Registrarse",
|
||||
"search": "Buscar",
|
||||
"profile": "Perfil",
|
||||
"greeting": "Hola",
|
||||
|
@ -146,7 +144,54 @@
|
|||
"image_upload_success": "¡Imagen cargada exitosamente!",
|
||||
"no_image_url": "No se encontró ninguna imagen en esa URL.",
|
||||
"start_before_end_error": "La fecha de inicio debe ser anterior a la fecha de finalización.",
|
||||
"wiki_image_error": "Error al obtener la imagen de Wikipedia"
|
||||
"wiki_image_error": "Error al obtener la imagen de Wikipedia",
|
||||
"actions": "Comportamiento",
|
||||
"activity": "Actividad",
|
||||
"see_adventures": "Ver Aventuras",
|
||||
"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": "Borrar mapa",
|
||||
"copy_link": "Copiar enlace",
|
||||
"date_constrain": "Restringir a las fechas de recolección",
|
||||
"description": "Descripción",
|
||||
"end_date": "Fecha de finalización",
|
||||
"fetch_image": "Obtener imagen",
|
||||
"generate_desc": "Generar descripción",
|
||||
"image": "Imagen",
|
||||
"image_fetch_failed": "No se pudo recuperar la imagen",
|
||||
"link": "Enlace",
|
||||
"location": "Ubicación",
|
||||
"location_information": "Información de ubicación",
|
||||
"my_images": "Mis imágenes",
|
||||
"my_visits": "Mis visitas",
|
||||
"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",
|
||||
"no_start_date": "Por favor ingrese una fecha de inicio",
|
||||
"public_adventure": "Aventura pública",
|
||||
"remove": "Eliminar",
|
||||
"save_next": "Ahorrar",
|
||||
"search_for_location": "Buscar una ubicación",
|
||||
"search_results": "Resultados de búsqueda",
|
||||
"select_adventure_category": "Seleccionar categoría de aventura",
|
||||
"share_adventure": "¡Comparte esta aventura!",
|
||||
"start_date": "Fecha de inicio",
|
||||
"upload_image": "Subir imagen",
|
||||
"upload_images_here": "Sube imágenes aquí",
|
||||
"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",
|
||||
"add_an_activity": "Agregar una actividad"
|
||||
},
|
||||
"worldtravel": {
|
||||
"all": "Todo",
|
||||
|
@ -165,6 +210,31 @@
|
|||
"login_error": "No se puede iniciar sesión con las credenciales proporcionadas.",
|
||||
"password": "Contraseña",
|
||||
"signup": "Inscribirse",
|
||||
"username": "Nombre de usuario"
|
||||
"username": "Nombre de usuario",
|
||||
"confirm_password": "confirmar Contraseña",
|
||||
"email": "Correo electrónico",
|
||||
"first_name": "Nombre de pila",
|
||||
"last_name": "Apellido",
|
||||
"registration_disabled": "El registro está actualmente deshabilitado.",
|
||||
"profile_picture": "Foto de perfil",
|
||||
"public_profile": "Perfil público",
|
||||
"public_tooltip": "Con un perfil público, los usuarios pueden compartir colecciones con usted y ver su perfil en la página de usuarios."
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "No se encontraron usuarios con perfiles públicos."
|
||||
},
|
||||
"settings": {
|
||||
"account_settings": "Configuración de cuenta de usuario",
|
||||
"confirm_new_password": "Confirmar nueva contraseña",
|
||||
"current_email": "Correo electrónico actual",
|
||||
"email_change": "Cambiar correo electrónico",
|
||||
"new_email": "Nuevo correo electrónico",
|
||||
"new_password": "Nueva contraseña",
|
||||
"no_email_set": "No hay correo electrónico configurado",
|
||||
"password_change": "Cambiar la contraseña",
|
||||
"settings_page": "Página de configuración",
|
||||
"update": "Actualizar",
|
||||
"update_error": "Error al actualizar la configuración",
|
||||
"update_success": "¡La configuración se actualizó correctamente!"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,7 +45,111 @@
|
|||
"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"
|
||||
"remove_from_collection": "Supprimer de la collection",
|
||||
"adventure": "Aventure",
|
||||
"adventure_delete_success": "Aventure supprimée avec succès !",
|
||||
"adventure_details": "Détails de l'aventure",
|
||||
"adventure_type": "Type d'aventure",
|
||||
"archive": "Archive",
|
||||
"archived": "Archivé",
|
||||
"archived_collection_message": "Collection archivée avec succès !",
|
||||
"archived_collections": "Collections archivées",
|
||||
"ascending": "Ascendant",
|
||||
"cancel": "Annuler",
|
||||
"category_filter": "Filtre de catégorie",
|
||||
"clear": "Clair",
|
||||
"close_filters": "Fermer les filtres",
|
||||
"collection": "Collection",
|
||||
"collection_adventures": "Inclure les aventures de collection",
|
||||
"count_txt": "résultats correspondant à votre recherche",
|
||||
"create_new": "Créer un nouveau...",
|
||||
"date": "Date",
|
||||
"dates": "Dates",
|
||||
"delete_adventure": "Supprimer l'aventure",
|
||||
"delete_collection": "Supprimer la collection",
|
||||
"delete_collection_success": "Collection supprimée avec succès !",
|
||||
"delete_collection_warning": "Etes-vous sûr de vouloir supprimer cette collection ? \nCela supprimera également toutes les aventures liées. \nCette action ne peut pas être annulée.",
|
||||
"descending": "Descendant",
|
||||
"duration": "Durée",
|
||||
"edit_collection": "Modifier la collection",
|
||||
"filter": "Filtre",
|
||||
"homepage": "Page d'accueil",
|
||||
"image_removed_error": "Erreur lors de la suppression de l'image",
|
||||
"image_removed_success": "Image supprimée avec succès !",
|
||||
"image_upload_error": "Erreur lors du téléchargement de l'image",
|
||||
"image_upload_success": "Image téléchargée avec succès !",
|
||||
"latitude": "Latitude",
|
||||
"longitude": "Longitude",
|
||||
"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 cherchiez est introuvable. \nVeuillez essayer une autre aventure ou revenez plus tard.",
|
||||
"open_filters": "Ouvrir les filtres",
|
||||
"order_by": "Commander par",
|
||||
"order_direction": "Direction de la commande",
|
||||
"planned": "Prévu",
|
||||
"private": "Privé",
|
||||
"public": "Publique",
|
||||
"rating": "Notation",
|
||||
"share": "Partager",
|
||||
"sort": "Trier",
|
||||
"sources": "Sources",
|
||||
"start_before_end_error": "La date de début doit être antérieure à la date de fin",
|
||||
"unarchive": "Désarchiver",
|
||||
"unarchived_collection_message": "Collection désarchivée avec succès !",
|
||||
"updated": "Mis à jour",
|
||||
"visit": "Visite",
|
||||
"visited": "Visité",
|
||||
"visits": "Visites",
|
||||
"wiki_image_error": "Erreur lors de la récupération de l'image depuis Wikipédia",
|
||||
"actions": "Actes",
|
||||
"activity": "Activité",
|
||||
"activity_types": "Types d'activités",
|
||||
"add": "Ajouter",
|
||||
"add_an_activity": "Ajouter une activité",
|
||||
"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",
|
||||
"copy_link": "Copier le lien",
|
||||
"date_constrain": "Contraindre aux dates de collecte",
|
||||
"description": "Description",
|
||||
"end_date": "Date de fin",
|
||||
"fetch_image": "Récupérer une image",
|
||||
"generate_desc": "Générer une description",
|
||||
"image": "Image",
|
||||
"image_fetch_failed": "Échec de la récupération de l'image",
|
||||
"link": "Lien",
|
||||
"location": "Emplacement",
|
||||
"location_information": "Informations de localisation",
|
||||
"my_images": "Mes images",
|
||||
"my_visits": "Mes visites",
|
||||
"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é",
|
||||
"no_start_date": "Veuillez entrer une date de début",
|
||||
"public_adventure": "Aventure publique",
|
||||
"remove": "Retirer",
|
||||
"save_next": "Sauvegarder",
|
||||
"search_for_location": "Rechercher un emplacement",
|
||||
"search_results": "Résultats de la recherche",
|
||||
"see_adventures": "Voir les aventures",
|
||||
"select_adventure_category": "Sélectionnez la catégorie d'aventure",
|
||||
"share_adventure": "Partagez cette aventure !",
|
||||
"start_date": "Date de début",
|
||||
"upload_image": "Télécharger une image",
|
||||
"upload_images_here": "Téléchargez des images ici",
|
||||
"url": "URL",
|
||||
"warning": "Avertissement",
|
||||
"wiki_desc": "Extrait un extrait de l'article Wikipédia correspondant au nom de l'aventure.",
|
||||
"wikipedia": "Wikipédia"
|
||||
},
|
||||
"home": {
|
||||
"desc_1": "Découvrez, planifiez et explorez en toute simplicité",
|
||||
|
@ -68,7 +172,6 @@
|
|||
"discord": "Discorde",
|
||||
"documentation": "Documentation",
|
||||
"greeting": "Salut",
|
||||
"login": "Se connecter",
|
||||
"logout": "Déconnexion",
|
||||
"map": "Carte",
|
||||
"my_activities": "Mes activités",
|
||||
|
@ -77,14 +180,61 @@
|
|||
"search": "Recherche",
|
||||
"settings": "Paramètres",
|
||||
"shared_with_me": "Partagé avec moi",
|
||||
"signup": "S'inscrire",
|
||||
"theme_selection": "Sélection de thèmes",
|
||||
"themes": {
|
||||
"forest": "Forêt",
|
||||
"light": "Lumière",
|
||||
"night": "Nuit"
|
||||
"night": "Nuit",
|
||||
"aestetic-dark": "Esthétique sombre",
|
||||
"aestetic-light": "Lumière esthétique",
|
||||
"aqua": "Aqua",
|
||||
"dark": "Sombre"
|
||||
},
|
||||
"users": "Utilisateurs",
|
||||
"worldtravel": "Voyage dans le monde"
|
||||
},
|
||||
"auth": {
|
||||
"confirm_password": "Confirmez le mot de passe",
|
||||
"email": "E-mail",
|
||||
"first_name": "Prénom",
|
||||
"forgot_password": "Mot de passe oublié ?",
|
||||
"last_name": "Nom de famille",
|
||||
"login": "Se connecter",
|
||||
"login_error": "Impossible de se connecter avec les identifiants fournis.",
|
||||
"password": "Mot de passe",
|
||||
"registration_disabled": "L'inscription est actuellement désactivée.",
|
||||
"signup": "S'inscrire",
|
||||
"username": "Nom d'utilisateur",
|
||||
"profile_picture": "Photo de profil",
|
||||
"public_profile": "Profil public",
|
||||
"public_tooltip": "Avec un profil public, les utilisateurs peuvent partager des collections avec vous et afficher votre profil sur la page des utilisateurs."
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "Aucun utilisateur trouvé avec des profils publics."
|
||||
},
|
||||
"worldtravel": {
|
||||
"all": "Tous",
|
||||
"all_subregions": "Toutes les sous-régions",
|
||||
"clear_search": "Effacer la recherche",
|
||||
"completely_visited": "Entièrement visité",
|
||||
"country_list": "Liste des pays",
|
||||
"no_countries_found": "Aucun pays trouvé",
|
||||
"not_visited": "Non visité",
|
||||
"num_countries": "pays trouvés",
|
||||
"partially_visited": "Partiellement visité"
|
||||
},
|
||||
"settings": {
|
||||
"account_settings": "Paramètres du compte utilisateur",
|
||||
"confirm_new_password": "Confirmer le nouveau mot de passe",
|
||||
"current_email": "Courriel actuel",
|
||||
"email_change": "Changer l'e-mail",
|
||||
"new_email": "Nouvel e-mail",
|
||||
"new_password": "Nouveau mot de passe",
|
||||
"no_email_set": "Aucune adresse e-mail définie",
|
||||
"password_change": "Changer le mot de passe",
|
||||
"settings_page": "Page Paramètres",
|
||||
"update": "Mise à jour",
|
||||
"update_error": "Erreur lors de la mise à jour des paramètres",
|
||||
"update_success": "Paramètres mis à jour avec succès !"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,7 +87,69 @@
|
|||
"unarchived_collection_message": "Raccolta annullata con successo!",
|
||||
"updated": "Aggiornato",
|
||||
"visit": "Visita",
|
||||
"visits": "Visite"
|
||||
"visits": "Visite",
|
||||
"adventure_delete_success": "Avventura eliminata con successo!",
|
||||
"collection_adventures": "Includi avventure di raccolta",
|
||||
"collection_link_success": "Avventura collegata alla raccolta 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!",
|
||||
"image_upload_error": "Errore durante il caricamento dell'immagine",
|
||||
"image_upload_success": "Immagine caricata con successo!",
|
||||
"no_image_url": "Nessuna immagine trovata a quell'URL.",
|
||||
"planned": "Pianificato",
|
||||
"start_before_end_error": "La data di inizio deve essere antecedente alla data di fine",
|
||||
"visited": "Visitato",
|
||||
"actions": "Azioni",
|
||||
"activity": "Attività",
|
||||
"activity_types": "Tipi di attività",
|
||||
"add": "Aggiungere",
|
||||
"add_an_activity": "Aggiungi un'attività",
|
||||
"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": "Mappa chiara",
|
||||
"copy_link": "Copia collegamento",
|
||||
"date_constrain": "Vincolare alle date di raccolta",
|
||||
"description": "Descrizione",
|
||||
"end_date": "Data di fine",
|
||||
"fetch_image": "Recupera immagine",
|
||||
"generate_desc": "Genera descrizione",
|
||||
"image": "Immagine",
|
||||
"image_fetch_failed": "Impossibile recuperare l'immagine",
|
||||
"link": "Collegamento",
|
||||
"location": "Posizione",
|
||||
"location_information": "Informazioni sulla posizione",
|
||||
"my_images": "Le mie immagini",
|
||||
"my_visits": "Le mie visite",
|
||||
"new_adventure": "Nuova avventura",
|
||||
"no_description_found": "Nessuna descrizione trovata",
|
||||
"no_images": "Nessuna immagine",
|
||||
"no_location": "Inserisci una località",
|
||||
"no_results": "Nessun risultato trovato",
|
||||
"no_start_date": "Inserisci una data di inizio",
|
||||
"public_adventure": "Avventura pubblica",
|
||||
"remove": "Rimuovere",
|
||||
"save_next": "Salva",
|
||||
"search_for_location": "Cerca una posizione",
|
||||
"search_results": "Risultati della ricerca",
|
||||
"see_adventures": "Vedi Avventure",
|
||||
"select_adventure_category": "Seleziona la categoria Avventura",
|
||||
"share_adventure": "Condividi questa avventura!",
|
||||
"start_date": "Data di inizio",
|
||||
"upload_image": "Carica immagine",
|
||||
"upload_images_here": "Carica le immagini qui",
|
||||
"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"
|
||||
},
|
||||
"home": {
|
||||
"desc_1": "Scopri, pianifica ed esplora con facilità",
|
||||
|
@ -110,7 +172,6 @@
|
|||
"discord": "Discordia",
|
||||
"documentation": "Documentazione",
|
||||
"greeting": "CIAO",
|
||||
"login": "Login",
|
||||
"logout": "Esci",
|
||||
"map": "Mappa",
|
||||
"my_activities": "Le mie attività",
|
||||
|
@ -119,7 +180,6 @@
|
|||
"search": "Ricerca",
|
||||
"settings": "Impostazioni",
|
||||
"shared_with_me": "Condiviso con me",
|
||||
"signup": "Iscrizione",
|
||||
"theme_selection": "Selezione del tema",
|
||||
"themes": {
|
||||
"aestetic-dark": "Oscuro estetico",
|
||||
|
@ -132,5 +192,49 @@
|
|||
},
|
||||
"users": "Utenti",
|
||||
"worldtravel": "Viaggio nel mondo"
|
||||
},
|
||||
"auth": {
|
||||
"confirm_password": "Conferma password",
|
||||
"email": "E-mail",
|
||||
"first_name": "Nome di battesimo",
|
||||
"forgot_password": "Ha dimenticato la password?",
|
||||
"last_name": "Cognome",
|
||||
"login": "Login",
|
||||
"login_error": "Impossibile accedere con le credenziali fornite.",
|
||||
"password": "Password",
|
||||
"registration_disabled": "La registrazione è attualmente disabilitata.",
|
||||
"signup": "Iscrizione",
|
||||
"username": "Nome utente",
|
||||
"profile_picture": "Immagine del profilo",
|
||||
"public_profile": "Profilo pubblico",
|
||||
"public_tooltip": "Con un profilo pubblico, gli utenti possono condividere raccolte con te e visualizzare il tuo profilo nella pagina degli utenti."
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "Nessun utente trovato con profili pubblici."
|
||||
},
|
||||
"worldtravel": {
|
||||
"all": "Tutto",
|
||||
"all_subregions": "Tutte le sottoregioni",
|
||||
"clear_search": "Cancella ricerca",
|
||||
"completely_visited": "Completamente visitato",
|
||||
"country_list": "Elenco dei paesi",
|
||||
"no_countries_found": "Nessun paese trovato",
|
||||
"not_visited": "Non visitato",
|
||||
"num_countries": "paesi trovati",
|
||||
"partially_visited": "Parzialmente visitato"
|
||||
},
|
||||
"settings": {
|
||||
"account_settings": "Impostazioni dell'account utente",
|
||||
"confirm_new_password": "Conferma nuova password",
|
||||
"current_email": "E-mail corrente",
|
||||
"email_change": "Cambia e-mail",
|
||||
"new_email": "Nuova e-mail",
|
||||
"new_password": "Nuova parola d'ordine",
|
||||
"no_email_set": "Nessuna e-mail impostata",
|
||||
"password_change": "Cambiare la password",
|
||||
"settings_page": "Pagina Impostazioni",
|
||||
"update": "Aggiornamento",
|
||||
"update_error": "Errore durante l'aggiornamento delle impostazioni",
|
||||
"update_success": "Impostazioni aggiornate con successo!"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,7 +89,67 @@
|
|||
"unarchived_collection_message": "Collectie is succesvol gedearchiveerd!",
|
||||
"updated": "Bijgewerkt",
|
||||
"visit": "Bezoek",
|
||||
"visits": "Bezoeken"
|
||||
"visits": "Bezoeken",
|
||||
"adventure_delete_success": "Avontuur succesvol verwijderd!",
|
||||
"dates": "Datums",
|
||||
"delete_adventure": "Avontuur verwijderen",
|
||||
"duration": "Duur",
|
||||
"image_removed_error": "Fout bij verwijderen van afbeelding",
|
||||
"image_removed_success": "Afbeelding succesvol verwijderd!",
|
||||
"image_upload_error": "Fout bij het uploaden van afbeelding",
|
||||
"image_upload_success": "Afbeelding succesvol geüpload!",
|
||||
"no_image_url": "Er is geen afbeelding gevonden op die URL.",
|
||||
"planned": "Gepland",
|
||||
"start_before_end_error": "De startdatum moet vóór de einddatum liggen",
|
||||
"visited": "Bezocht",
|
||||
"wiki_image_error": "Fout bij het ophalen van afbeelding van Wikipedia",
|
||||
"actions": "Acties",
|
||||
"activity": "Activiteit",
|
||||
"activity_types": "Activiteitstypen",
|
||||
"add": "Toevoegen",
|
||||
"add_an_activity": "Voeg een activiteit toe",
|
||||
"add_notes": "Voeg notities toe",
|
||||
"adventure_create_error": "Kan geen avontuur creëren",
|
||||
"adventure_created": "Avontuur gecreëerd",
|
||||
"adventure_update_error": "Kan avontuur niet updaten",
|
||||
"adventure_updated": "Avontuur bijgewerkt",
|
||||
"basic_information": "Basisinformatie",
|
||||
"category": "Categorie",
|
||||
"clear_map": "Duidelijke kaart",
|
||||
"copy_link": "Kopieer link",
|
||||
"date_constrain": "Beperk u tot ophaaldata",
|
||||
"description": "Beschrijving",
|
||||
"end_date": "Einddatum",
|
||||
"fetch_image": "Afbeelding ophalen",
|
||||
"generate_desc": "Beschrijving genereren",
|
||||
"image": "Afbeelding",
|
||||
"image_fetch_failed": "Kan afbeelding niet ophalen",
|
||||
"link": "Link",
|
||||
"location": "Locatie",
|
||||
"location_information": "Locatie-informatie",
|
||||
"my_images": "Mijn afbeeldingen",
|
||||
"my_visits": "Mijn bezoeken",
|
||||
"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",
|
||||
"no_start_date": "Voer een startdatum in",
|
||||
"public_adventure": "Openbaar avontuur",
|
||||
"remove": "Verwijderen",
|
||||
"save_next": "Redden",
|
||||
"search_for_location": "Zoek een locatie",
|
||||
"search_results": "Zoekresultaten",
|
||||
"see_adventures": "Zie Avonturen",
|
||||
"select_adventure_category": "Selecteer Avontuurcategorie",
|
||||
"share_adventure": "Deel dit avontuur!",
|
||||
"start_date": "Startdatum",
|
||||
"upload_image": "Afbeelding uploaden",
|
||||
"upload_images_here": "Upload hier afbeeldingen",
|
||||
"url": "URL",
|
||||
"warning": "Waarschuwing",
|
||||
"wiki_desc": "Haalt een fragment uit een Wikipedia-artikel dat overeenkomt met de naam van het avontuur.",
|
||||
"wikipedia": "Wikipedia"
|
||||
},
|
||||
"home": {
|
||||
"desc_1": "Ontdek, plan en verken met gemak",
|
||||
|
@ -101,7 +161,9 @@
|
|||
"feature_3": "Reiskaart",
|
||||
"feature_3_desc": "Bekijk uw reizen over de hele wereld met een interactieve kaart en ontdek nieuwe bestemmingen.",
|
||||
"go_to": "Ga naar AdventureLog",
|
||||
"hero_2": "Ontdek en plan je volgende avontuur met AdventureLog. \nOntdek adembenemende bestemmingen, maak aangepaste reisroutes en blijf onderweg verbonden."
|
||||
"hero_2": "Ontdek en plan je volgende avontuur met AdventureLog. \nOntdek adembenemende bestemmingen, maak aangepaste reisroutes en blijf onderweg verbonden.",
|
||||
"hero_1": "Ontdek 's werelds meest opwindende avonturen",
|
||||
"key_features": "Belangrijkste kenmerken"
|
||||
},
|
||||
"navbar": {
|
||||
"about": "Over AdventureLog",
|
||||
|
@ -110,7 +172,6 @@
|
|||
"discord": "Meningsverschil",
|
||||
"documentation": "Documentatie",
|
||||
"greeting": "Hoi",
|
||||
"login": "Login",
|
||||
"logout": "Uitloggen",
|
||||
"map": "Kaart",
|
||||
"my_activities": "Mijn activiteiten",
|
||||
|
@ -119,7 +180,6 @@
|
|||
"search": "Zoekopdracht",
|
||||
"settings": "Instellingen",
|
||||
"shared_with_me": "Gedeeld met mij",
|
||||
"signup": "Aanmelden",
|
||||
"theme_selection": "Thema Selectie",
|
||||
"themes": {
|
||||
"aestetic-dark": "Esthetisch donker",
|
||||
|
@ -132,5 +192,49 @@
|
|||
},
|
||||
"users": "Gebruikers",
|
||||
"worldtravel": "Wereldreizen"
|
||||
},
|
||||
"auth": {
|
||||
"confirm_password": "Bevestig wachtwoord",
|
||||
"email": "E-mail",
|
||||
"first_name": "Voornaam",
|
||||
"forgot_password": "Wachtwoord vergeten?",
|
||||
"last_name": "Achternaam",
|
||||
"login": "Login",
|
||||
"login_error": "Kan niet inloggen met de opgegeven inloggegevens.",
|
||||
"password": "Wachtwoord",
|
||||
"registration_disabled": "Registratie is momenteel uitgeschakeld.",
|
||||
"signup": "Aanmelden",
|
||||
"username": "Gebruikersnaam",
|
||||
"profile_picture": "Profielfoto",
|
||||
"public_profile": "Openbaar profiel",
|
||||
"public_tooltip": "Met een openbaar profiel kunnen gebruikers collecties met u delen en uw profiel bekijken op de gebruikerspagina."
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "Er zijn geen gebruikers gevonden met openbare profielen."
|
||||
},
|
||||
"worldtravel": {
|
||||
"all": "Alle",
|
||||
"all_subregions": "Alle subregio's",
|
||||
"clear_search": "Zoekopdracht wissen",
|
||||
"completely_visited": "Volledig bezocht",
|
||||
"country_list": "Landenlijst",
|
||||
"no_countries_found": "Geen landen gevonden",
|
||||
"not_visited": "Niet bezocht",
|
||||
"num_countries": "landen gevonden",
|
||||
"partially_visited": "Gedeeltelijk bezocht"
|
||||
},
|
||||
"settings": {
|
||||
"account_settings": "Gebruikersaccountinstellingen",
|
||||
"confirm_new_password": "Bevestig nieuw wachtwoord",
|
||||
"current_email": "Huidige e-mail",
|
||||
"email_change": "Wijzig e-mailadres",
|
||||
"new_email": "Nieuwe e-mail",
|
||||
"new_password": "Nieuw wachtwoord",
|
||||
"no_email_set": "Geen e-mailadres ingesteld",
|
||||
"password_change": "Wachtwoord wijzigen",
|
||||
"settings_page": "Instellingenpagina",
|
||||
"update": "Update",
|
||||
"update_error": "Fout bij updaten van instellingen",
|
||||
"update_success": "Instellingen succesvol bijgewerkt!"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,7 +94,61 @@
|
|||
"unarchived_collection_message": "Samlingen har tagits bort från arkivet!",
|
||||
"visit": "Besök",
|
||||
"visited": "Besökte",
|
||||
"visits": "Besök"
|
||||
"visits": "Besök",
|
||||
"image_removed_error": "Det gick inte att ta bort bilden",
|
||||
"image_removed_success": "Bilden har tagits bort!",
|
||||
"image_upload_error": "Det gick inte att ladda upp bilden",
|
||||
"image_upload_success": "Bilden har laddats upp!",
|
||||
"no_image_url": "Ingen bild hittades på den webbadressen.",
|
||||
"start_before_end_error": "Startdatumet måste vara före slutdatumet",
|
||||
"updated": "Uppdaterad",
|
||||
"wiki_image_error": "Det gick inte att hämta bilden från Wikipedia",
|
||||
"actions": "Åtgärder",
|
||||
"activity": "Aktivitet",
|
||||
"activity_types": "Aktivitetstyper",
|
||||
"add": "Tillägga",
|
||||
"add_an_activity": "Lägg till en aktivitet",
|
||||
"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",
|
||||
"copy_link": "Kopiera länk",
|
||||
"date_constrain": "Begränsa till insamlingsdatum",
|
||||
"description": "Beskrivning",
|
||||
"end_date": "Slutdatum",
|
||||
"fetch_image": "Hämta bild",
|
||||
"generate_desc": "Skapa beskrivning",
|
||||
"image": "Bild",
|
||||
"image_fetch_failed": "Det gick inte att hämta bilden",
|
||||
"link": "Länk",
|
||||
"location": "Plats",
|
||||
"location_information": "Platsinformation",
|
||||
"my_images": "Mina bilder",
|
||||
"my_visits": "Mina besök",
|
||||
"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",
|
||||
"no_start_date": "Ange ett startdatum",
|
||||
"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",
|
||||
"select_adventure_category": "Välj äventyrskategori",
|
||||
"share_adventure": "Dela detta äventyr!",
|
||||
"start_date": "Startdatum",
|
||||
"upload_image": "Ladda upp bild",
|
||||
"upload_images_here": "Ladda upp bilder här",
|
||||
"url": "URL",
|
||||
"warning": "Varning",
|
||||
"wiki_desc": "Hämtar utdrag från Wikipedia-artikeln som matchar äventyrets namn."
|
||||
},
|
||||
"home": {
|
||||
"desc_1": "Upptäck, planera och utforska med lätthet",
|
||||
|
@ -117,7 +171,6 @@
|
|||
"discord": "Disharmoni",
|
||||
"documentation": "Dokumentation",
|
||||
"greeting": "Hej",
|
||||
"login": "Inloggning",
|
||||
"logout": "Utloggning",
|
||||
"map": "Karta",
|
||||
"my_activities": "Mina aktiviteter",
|
||||
|
@ -126,7 +179,6 @@
|
|||
"search": "Söka",
|
||||
"settings": "Inställningar",
|
||||
"shared_with_me": "Delade med mig",
|
||||
"signup": "Registrera dig",
|
||||
"theme_selection": "Temaval",
|
||||
"themes": {
|
||||
"aestetic-dark": "Estetisk mörk",
|
||||
|
@ -150,5 +202,36 @@
|
|||
"not_visited": "Ej besökt",
|
||||
"num_countries": "hittade länder",
|
||||
"partially_visited": "Delvis besökt"
|
||||
},
|
||||
"auth": {
|
||||
"confirm_password": "Bekräfta lösenord",
|
||||
"email": "E-post",
|
||||
"first_name": "Förnamn",
|
||||
"forgot_password": "Glömt lösenordet?",
|
||||
"last_name": "Efternamn",
|
||||
"login": "Inloggning",
|
||||
"login_error": "Det går inte att logga in med de angivna uppgifterna.",
|
||||
"password": "Lösenord",
|
||||
"registration_disabled": "Registreringen är för närvarande inaktiverad.",
|
||||
"signup": "Registrera dig",
|
||||
"username": "Användarnamn",
|
||||
"public_tooltip": "Med en offentlig profil kan användare dela samlingar med dig och se din profil på användarsidan."
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "Inga användare hittades med offentliga profiler."
|
||||
},
|
||||
"settings": {
|
||||
"account_settings": "Användarkontoinställningar",
|
||||
"confirm_new_password": "Bekräfta nytt lösenord",
|
||||
"current_email": "Aktuell e-post",
|
||||
"email_change": "Ändra e-post",
|
||||
"new_email": "Ny e-post",
|
||||
"new_password": "Nytt lösenord",
|
||||
"no_email_set": "Ingen e-post inställd",
|
||||
"password_change": "Ändra lösenord",
|
||||
"settings_page": "Inställningssida",
|
||||
"update": "Uppdatera",
|
||||
"update_error": "Fel vid uppdatering av inställningar",
|
||||
"update_success": "Inställningarna har uppdaterats!"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,7 +102,54 @@
|
|||
"planned": "计划",
|
||||
"start_before_end_error": "开始日期必须早于结束日期",
|
||||
"visited": "访问过",
|
||||
"wiki_image_error": "从维基百科获取图像时出错"
|
||||
"wiki_image_error": "从维基百科获取图像时出错",
|
||||
"actions": "行动",
|
||||
"activity": "活动",
|
||||
"activity_types": "活动类型",
|
||||
"add": "添加",
|
||||
"add_an_activity": "添加活动",
|
||||
"add_notes": "添加注释",
|
||||
"adventure_create_error": "未能创造冒险",
|
||||
"adventure_created": "冒险已创造",
|
||||
"adventure_update_error": "冒险更新失败",
|
||||
"adventure_updated": "冒险已更新",
|
||||
"basic_information": "基本信息",
|
||||
"category": "类别",
|
||||
"clear_map": "清晰的地图",
|
||||
"copy_link": "复制链接",
|
||||
"date_constrain": "限制收集日期",
|
||||
"description": "描述",
|
||||
"end_date": "结束日期",
|
||||
"fetch_image": "获取图像",
|
||||
"generate_desc": "生成描述",
|
||||
"image": "图像",
|
||||
"image_fetch_failed": "获取图像失败",
|
||||
"link": "关联",
|
||||
"location": "地点",
|
||||
"location_information": "位置信息",
|
||||
"my_images": "我的图片",
|
||||
"my_visits": "我的访问",
|
||||
"new_adventure": "新冒险",
|
||||
"no_description_found": "没有找到描述",
|
||||
"no_images": "没有图片",
|
||||
"no_location": "请输入地点",
|
||||
"no_results": "没有找到结果",
|
||||
"no_start_date": "请输入开始日期",
|
||||
"public_adventure": "公共冒险",
|
||||
"remove": "消除",
|
||||
"save_next": "节省",
|
||||
"search_for_location": "搜索地点",
|
||||
"search_results": "搜索结果",
|
||||
"see_adventures": "查看冒险",
|
||||
"select_adventure_category": "选择冒险类别",
|
||||
"share_adventure": "分享这个冒险!",
|
||||
"start_date": "开始日期",
|
||||
"upload_image": "上传图片",
|
||||
"upload_images_here": "在这里上传图片",
|
||||
"url": "网址",
|
||||
"warning": "警告",
|
||||
"wiki_desc": "从维基百科文章中提取与冒险名称匹配的摘录。",
|
||||
"wikipedia": "维基百科"
|
||||
},
|
||||
"home": {
|
||||
"desc_1": "轻松发现、规划和探索",
|
||||
|
@ -125,7 +172,6 @@
|
|||
"discord": "不和谐",
|
||||
"documentation": "文档",
|
||||
"greeting": "你好",
|
||||
"login": "登录",
|
||||
"logout": "退出",
|
||||
"map": "地图",
|
||||
"my_activities": "我的活动",
|
||||
|
@ -134,7 +180,6 @@
|
|||
"search": "搜索",
|
||||
"settings": "设置",
|
||||
"shared_with_me": "与我分享",
|
||||
"signup": "报名",
|
||||
"theme_selection": "主题选择",
|
||||
"themes": {
|
||||
"aestetic-dark": "审美黑暗",
|
||||
|
@ -154,7 +199,15 @@
|
|||
"login_error": "无法使用提供的凭据登录。",
|
||||
"password": "密码",
|
||||
"signup": "报名",
|
||||
"username": "用户名"
|
||||
"username": "用户名",
|
||||
"confirm_password": "确认密码",
|
||||
"email": "电子邮件",
|
||||
"first_name": "名",
|
||||
"last_name": "姓",
|
||||
"registration_disabled": "目前已禁用注册。",
|
||||
"profile_picture": "个人资料图片",
|
||||
"public_profile": "公开资料",
|
||||
"public_tooltip": "通过公开个人资料,用户可以与您共享收藏并在用户页面上查看您的个人资料。"
|
||||
},
|
||||
"worldtravel": {
|
||||
"all": "全部",
|
||||
|
@ -166,5 +219,22 @@
|
|||
"not_visited": "未访问过",
|
||||
"num_countries": "找到的国家",
|
||||
"partially_visited": "部分访问"
|
||||
},
|
||||
"users": {
|
||||
"no_users_found": "未找到具有公开个人资料的用户。"
|
||||
},
|
||||
"settings": {
|
||||
"account_settings": "用户帐户设置",
|
||||
"confirm_new_password": "确认新密码",
|
||||
"current_email": "当前电子邮件",
|
||||
"email_change": "更改电子邮件",
|
||||
"new_email": "新电子邮件",
|
||||
"new_password": "新密码",
|
||||
"no_email_set": "没有设置电子邮件",
|
||||
"password_change": "更改密码",
|
||||
"settings_page": "设置页面",
|
||||
"update": "更新",
|
||||
"update_error": "更新设置时出错",
|
||||
"update_success": "设置更新成功!"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<script lang="ts">
|
||||
import { goto } from '$app/navigation';
|
||||
import type { PageData } from './$types';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
export let data: PageData;
|
||||
|
||||
|
@ -11,8 +12,8 @@
|
|||
<table class="table table-compact">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Activity</th>
|
||||
<th>Actions</th>
|
||||
<th>{$t('adventures.activity')}</th>
|
||||
<th>{$t('adventures.actions')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -23,7 +24,7 @@
|
|||
<button
|
||||
class="btn btn-sm btn-primary"
|
||||
on:click={() => goto(`/search?query=${activity}&property=activity_types`)}
|
||||
>See Adventures</button
|
||||
>{$t('adventures.see_adventures')}</button
|
||||
>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
<script lang="ts">
|
||||
import { enhance } from '$app/forms';
|
||||
import { goto, invalidateAll } from '$app/navigation';
|
||||
import { page } from '$app/stores';
|
||||
import { addToast } from '$lib/toasts';
|
||||
import type { Adventure, Collection, User } from '$lib/types.js';
|
||||
import type { User } from '$lib/types.js';
|
||||
import { onMount } from 'svelte';
|
||||
import { browser } from '$app/environment';
|
||||
import { exportData } from '$lib';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
export let data;
|
||||
let user: User;
|
||||
|
@ -20,7 +19,7 @@
|
|||
const pageParam = queryParams.get('page');
|
||||
|
||||
if (pageParam === 'success') {
|
||||
addToast('success', 'Settings updated successfully!');
|
||||
addToast('success', $t('settings.update_success'));
|
||||
console.log('Settings updated successfully!');
|
||||
}
|
||||
}
|
||||
|
@ -31,39 +30,39 @@
|
|||
window.location.href = '/settings?page=success';
|
||||
}
|
||||
if (browser && $page.form?.error) {
|
||||
addToast('error', 'Error updating settings');
|
||||
addToast('error', $t('settings.update_error'));
|
||||
}
|
||||
}
|
||||
|
||||
async function exportAdventures() {
|
||||
const url = await exportData();
|
||||
// async function exportAdventures() {
|
||||
// const url = await exportData();
|
||||
|
||||
const a = document.createElement('a');
|
||||
a.href = url;
|
||||
a.download = 'adventure-log-export.json';
|
||||
a.click();
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
// const a = document.createElement('a');
|
||||
// a.href = url;
|
||||
// a.download = 'adventure-log-export.json';
|
||||
// a.click();
|
||||
// URL.revokeObjectURL(url);
|
||||
// }
|
||||
|
||||
async function checkVisitedRegions() {
|
||||
let res = await fetch('/api/countries/region_check_all_adventures/', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
});
|
||||
let data = await res.json();
|
||||
if (res.ok) {
|
||||
addToast('success', `${data.regions_visited} regions updated`);
|
||||
} else {
|
||||
addToast('error', 'Error updating visited regions');
|
||||
}
|
||||
}
|
||||
// async function checkVisitedRegions() {
|
||||
// let res = await fetch('/api/countries/region_check_all_adventures/', {
|
||||
// method: 'POST',
|
||||
// headers: {
|
||||
// 'Content-Type': 'application/json'
|
||||
// }
|
||||
// });
|
||||
// let data = await res.json();
|
||||
// if (res.ok) {
|
||||
// addToast('success', `${data.regions_visited} regions updated`);
|
||||
// } else {
|
||||
// addToast('error', 'Error updating visited regions');
|
||||
// }
|
||||
// }
|
||||
</script>
|
||||
|
||||
<h1 class="text-center font-extrabold text-4xl mb-6">Settings Page</h1>
|
||||
<h1 class="text-center font-extrabold text-4xl mb-6">{$t('settings.settings_page')}</h1>
|
||||
|
||||
<h1 class="text-center font-extrabold text-xl">User Account Settings</h1>
|
||||
<h1 class="text-center font-extrabold text-xl">{$t('settings.account_settings')}</h1>
|
||||
<div class="flex justify-center">
|
||||
<form
|
||||
method="post"
|
||||
|
@ -72,14 +71,14 @@
|
|||
class="w-full max-w-xs"
|
||||
enctype="multipart/form-data"
|
||||
>
|
||||
<label for="username">Username</label>
|
||||
<label for="username">{$t('auth.username')}</label>
|
||||
<input
|
||||
bind:value={user.username}
|
||||
name="username"
|
||||
id="username"
|
||||
class="block mb-2 input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
<label for="first_name">First Name</label>
|
||||
<label for="first_name">{$t('auth.first_name')}</label>
|
||||
<input
|
||||
type="text"
|
||||
bind:value={user.first_name}
|
||||
|
@ -88,7 +87,7 @@
|
|||
class="block mb-2 input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
|
||||
<label for="last_name">Last Name</label>
|
||||
<label for="last_name">{$t('auth.last_name')}</label>
|
||||
<input
|
||||
type="text"
|
||||
bind:value={user.last_name}
|
||||
|
@ -104,7 +103,7 @@
|
|||
id="email"
|
||||
class="block mb-2 input input-bordered w-full max-w-xs"
|
||||
/><br /> -->
|
||||
<label for="profilePicture">Profile Picture</label>
|
||||
<label for="profilePicture">{$t('auth.profile_picture')}</label>
|
||||
<input
|
||||
type="file"
|
||||
name="profile_pic"
|
||||
|
@ -112,12 +111,9 @@
|
|||
class="file-input file-input-bordered w-full max-w-xs mb-2"
|
||||
/><br />
|
||||
<div class="form-control">
|
||||
<div
|
||||
class="tooltip tooltip-info"
|
||||
data-tip="With a public profile, users can share collections with you and view your profile on the users page."
|
||||
>
|
||||
<div class="tooltip tooltip-info" data-tip={$t('auth.public_tooltip')}>
|
||||
<label class="label cursor-pointer">
|
||||
<span class="label-text">Public Profile</span>
|
||||
<span class="label-text">{$t('auth.public_profile')}</span>
|
||||
|
||||
<input
|
||||
id="public_profile"
|
||||
|
@ -129,7 +125,7 @@
|
|||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<button class="py-2 mt-2 px-4 btn btn-primary">Update</button>
|
||||
<button class="py-2 mt-2 px-4 btn btn-primary">{$t('settings.update')}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
@ -139,13 +135,13 @@
|
|||
</div>
|
||||
{/if}
|
||||
|
||||
<h1 class="text-center font-extrabold text-xl mt-4 mb-2">Password Change</h1>
|
||||
<h1 class="text-center font-extrabold text-xl mt-4 mb-2">{$t('settings.password_change')}</h1>
|
||||
<div class="flex justify-center">
|
||||
<form action="?/changePassword" method="post" class="w-full max-w-xs">
|
||||
<input
|
||||
type="password"
|
||||
name="password1"
|
||||
placeholder="New Password"
|
||||
placeholder={$t('settings.new_password')}
|
||||
id="password1"
|
||||
class="block mb-2 input input-bordered w-full max-w-xs"
|
||||
/>
|
||||
|
@ -154,22 +150,22 @@
|
|||
type="password"
|
||||
name="password2"
|
||||
id="password2"
|
||||
placeholder="Confirm New Password"
|
||||
placeholder={$t('settings.confirm_new_password')}
|
||||
class="block mb-2 input input-bordered w-full max-w-xs"
|
||||
/>
|
||||
<button class="py-2 px-4 btn btn-primary mt-2">Change Password</button>
|
||||
<button class="py-2 px-4 btn btn-primary mt-2">{$t('settings.password_change')}</button>
|
||||
<br />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<h1 class="text-center font-extrabold text-xl mt-4 mb-2">Email Change</h1>
|
||||
<h1 class="text-center font-extrabold text-xl mt-4 mb-2">{$t('settings.email_change')}</h1>
|
||||
<div class="flex justify-center">
|
||||
<form action="?/changeEmail" method="post" class="w-full max-w-xs">
|
||||
<label for="current_email">Current Email</label>
|
||||
<label for="current_email">{$t('settings.current_email')}</label>
|
||||
<input
|
||||
type="email"
|
||||
name="current_email"
|
||||
placeholder={user.email || 'No Email Set'}
|
||||
placeholder={user.email || $t('settings.no_email_set')}
|
||||
id="current_email"
|
||||
readonly
|
||||
class="block mb-2 input input-bordered w-full max-w-xs"
|
||||
|
@ -178,11 +174,11 @@
|
|||
<input
|
||||
type="email"
|
||||
name="new_email"
|
||||
placeholder="New Email"
|
||||
placeholder={$t('settings.new_email')}
|
||||
id="new_email"
|
||||
class="block mb-2 input input-bordered w-full max-w-xs"
|
||||
/>
|
||||
<button class="py-2 px-4 btn btn-primary mt-2">Change Email</button>
|
||||
<button class="py-2 px-4 btn btn-primary mt-2">{$t('settings.email_change')}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<script lang="ts">
|
||||
import { enhance } from '$app/forms';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
export let data;
|
||||
console.log(data);
|
||||
|
@ -34,46 +35,46 @@
|
|||
{#if !is_disabled}
|
||||
<h3 class="text-center">AdventureLog</h3>
|
||||
<article class="text-center text-4xl mb-4 font-extrabold">
|
||||
<h1>Signup</h1>
|
||||
<h1>{$t('auth.signup')}</h1>
|
||||
</article>
|
||||
|
||||
<div class="flex justify-center">
|
||||
<form method="post" use:enhance class="w-full max-w-xs">
|
||||
<label for="username">Username</label>
|
||||
<label for="username">{$t('auth.username')}</label>
|
||||
<input
|
||||
name="username"
|
||||
id="username"
|
||||
class="block input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
<label for="email">Email</label>
|
||||
<label for="email">{$t('auth.email')}</label>
|
||||
<input
|
||||
name="email"
|
||||
id="email"
|
||||
type="email"
|
||||
class="block input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
<label for="first_name">First Name</label>
|
||||
<label for="first_name">{$t('auth.first_name')}</label>
|
||||
<input
|
||||
name="first_name"
|
||||
id="first_name"
|
||||
type="text"
|
||||
class="block input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
<label for="last_name">Last Name</label>
|
||||
<label for="last_name">{$t('auth.last_name')}</label>
|
||||
<input
|
||||
name="last_name"
|
||||
id="last_name"
|
||||
type="text"
|
||||
class="block input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
<label for="password">Password</label>
|
||||
<label for="password">{$t('auth.password')}</label>
|
||||
<input
|
||||
type="password"
|
||||
name="password1"
|
||||
id="password"
|
||||
class="block input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
<label for="password">Confirm Password</label>
|
||||
<label for="password">{$t('auth.confirm_password')}</label>
|
||||
<input
|
||||
type="password"
|
||||
name="password2"
|
||||
|
@ -81,11 +82,15 @@
|
|||
class="block input input-bordered w-full max-w-xs"
|
||||
/><br />
|
||||
|
||||
<button class="py-2 px-4 btn btn-primary mr-2">Signup</button>
|
||||
<button class="py-2 px-4 btn btn-primary mr-2">{$t('auth.signup')}</button>
|
||||
|
||||
<div class="flex justify-between mt-4">
|
||||
<p><a href="/login" class="underline">Login</a></p>
|
||||
<p><a href="/settings/forgot-password" class="underline">Forgot Password</a></p>
|
||||
<p><a href="/login" class="underline">{$t('auth.login')}</a></p>
|
||||
<p>
|
||||
<a href="/settings/forgot-password" class="underline"
|
||||
>{$t('auth.forgot_password')}</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -96,7 +101,7 @@
|
|||
{:else}
|
||||
<div class="flex justify-center">
|
||||
<div class="text-center mb-4">
|
||||
<h1 class="text-4xl font-extrabold">Registration is Disabled</h1>
|
||||
<h1 class="text-4xl font-extrabold">{$t('auth.registration_disabled')}</h1>
|
||||
<p class="text-lg mt-4">{is_disabled_message}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -2,13 +2,14 @@
|
|||
import UserCard from '$lib/components/UserCard.svelte';
|
||||
import type { User } from '$lib/types';
|
||||
import type { PageData } from './$types';
|
||||
import { t } from 'svelte-i18n';
|
||||
|
||||
export let data: PageData;
|
||||
let users: User[] = data.props.users;
|
||||
console.log(users);
|
||||
</script>
|
||||
|
||||
<h1 class="text-center font-bold text-4xl mb-4">AdventureLog Users</h1>
|
||||
<h1 class="text-center font-bold text-4xl mb-4">AdventureLog {$t('navbar.users')}</h1>
|
||||
<div class="flex flex-wrap gap-4 mr-4 justify-center content-center">
|
||||
{#each users as user (user.uuid)}
|
||||
<UserCard {user} />
|
||||
|
@ -16,7 +17,7 @@
|
|||
</div>
|
||||
|
||||
{#if users.length === 0}
|
||||
<p class="text-center">No users found with public profiles.</p>
|
||||
<p class="text-center">{$t('users.no_users_found')}</p>
|
||||
{/if}
|
||||
|
||||
<svelte:head>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue