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

Enhance image navigation and localization support in modal components

This commit is contained in:
Sean Morley 2025-06-25 21:26:41 -04:00
parent 19465077c0
commit 1f94b39b27
16 changed files with 1059 additions and 892 deletions

View file

@ -33,146 +33,201 @@
}
</script>
<dialog id="about_modal" class="modal backdrop-blur-md bg-opacity-70">
<dialog id="about_modal" class="modal backdrop-blur-sm">
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
<div
class="modal-box rounded-xl shadow-lg backdrop-blur-lg bg-white/80 dark:bg-gray-900/80 transition-transform duration-300 ease-out transform scale-100"
class="modal-box w-11/12 max-w-2xl bg-gradient-to-br from-base-100 via-base-100 to-base-200 border border-base-300 shadow-2xl"
role="dialog"
on:keydown={handleKeydown}
tabindex="0"
>
<!-- Branding -->
<div class="text-center">
<h3
class="text-2xl font-extrabold text-gray-800 dark:text-white flex items-center justify-center"
>
<!-- Header -->
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="p-2 bg-primary/10 rounded-lg">
<img src="/favicon.png" alt="AdventureLog" class="w-12 h-12" />
</div>
<div>
<h1 class="text-2xl font-bold text-primary">
{$t('about.about')} AdventureLog
<img src="/favicon.png" alt="Map Logo" class="w-12 h-12 ml-3 inline-block" />
</h3>
<p class="mt-2 text-gray-500 dark:text-gray-300 text-sm">
AdventureLog
</h1>
</div>
</div>
<button class="btn btn-ghost btn-sm btn-square" on:click={close}>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M6 18L18 6M6 6l12 12"
/>
</svg>
</button>
</div>
<!-- Content -->
<div class="space-y-4">
<!-- Version & Developer Info -->
<div class="card bg-base-200/30 border border-base-300">
<div class="card-body p-4">
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<div class="text-sm text-base-content/60">{$t('about.version')}</div>
<div class="text-lg font-bold text-primary">{appVersion}</div>
<a
href={versionChangelog}
target="_blank"
rel="noopener noreferrer"
class="text-primary hover:underline"
class="text-sm link link-primary"
>
{appVersion}
{$t('about.view_changelog')}
</a>
</p>
</div>
<div>
<div class="text-sm text-base-content/60">{$t('about.developer')}</div>
<a
href="https://seanmorley.com"
target="_blank"
rel="noopener noreferrer"
class="text-lg font-semibold link link-primary"
>
Sean Morley
</a>
<div class="text-sm text-base-content/60">{$t('about.message')}</div>
</div>
</div>
</div>
</div>
<!-- Links and Details -->
<div class="mt-4 text-center">
<p class="text-sm text-gray-600 dark:text-gray-400">
<!-- Map Services -->
<div class="card bg-base-200/30 border border-base-300">
<div class="card-body p-4">
<h3 class="font-bold text-primary mb-3 flex items-center gap-2">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
/>
</svg>
{$t('about.attributions')}
</h3>
{#if integrations && integrations?.google_maps}
<div class="flex items-center gap-2">
<span class="text-sm text-base-content/60">{$t('about.nominatim_1')}</span>
<a
href="https://developers.google.com/maps/terms"
target="_blank"
rel="noopener noreferrer"
class="link link-primary font-semibold"
>
Google Maps Platform
</a>
</div>
{:else if integrations && !integrations?.google_maps}
<div class="flex items-center gap-2">
<span class="text-sm text-base-content/60">{$t('about.nominatim_1')}</span>
<a
href="https://operations.osmfoundation.org/policies/nominatim/"
target="_blank"
rel="noopener noreferrer"
class="link link-primary font-semibold"
>
OpenStreetMap Nominatim
</a>
</div>
{:else}
<div class="text-sm text-base-content/60">{$t('about.generic_attributions')}</div>
{/if}
<p class="text-sm text-base-content/60">{$t('about.other_attributions')}</p>
</div>
</div>
<!-- Liscense info -->
<div class="card bg-base-200/30 border border-base-300">
<div class="card-body p-4">
<h3 class="font-bold text-primary mb-3 flex items-center gap-2">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
/>
</svg>
{$t('about.license_info')}
</h3>
<p class="text-sm text-base-content/60 mb-2">
© {copyrightYear}
<a
href="https://seanmorley.com"
target="_blank"
rel="noopener noreferrer"
class="text-primary hover:underline"
class="link link-primary"
>
Sean Morley
</a>
</p>
<p class="text-sm text-gray-600 dark:text-gray-400">{$t('about.license')}</p>
<p class="text-sm text-gray-600 dark:text-gray-400">
<p class="text-sm text-base-content/60">
{$t('about.license')}
</p>
<a
href="https://github.com/seanmorley15/AdventureLog/blob/main/LICENSE"
target="_blank"
rel="noopener noreferrer"
class="link link-primary mt-2"
>
{$t('about.view_license')}
</a>
</div>
</div>
<!-- Links -->
<div class="card bg-base-200/30 border border-base-300">
<div class="card-body p-4">
<div class="flex flex-wrap gap-3">
<a
href="https://github.com/seanmorley15/AdventureLog"
target="_blank"
rel="noopener noreferrer"
class="text-primary hover:underline"
class="btn btn-outline btn-sm"
>
{$t('about.source_code')}
GitHub →
</a>
</p>
<p class="text-sm text-gray-600 dark:text-gray-400">{$t('about.message')}</p>
</div>
<!-- Divider -->
<div class="my-6 border-t border-gray-200 dark:border-gray-700"></div>
<!-- OSS Acknowledgments -->
<div class="text-left">
<h3 class="text-lg font-semibold text-gray-800 dark:text-white">
{$t('about.oss_attributions')}
</h3>
{#if integrations && integrations?.google_maps}
<p class="mt-2 text-sm text-gray-600 dark:text-gray-400">
{$t('about.nominatim_1')}
<a
href="https://developers.google.com/maps/terms"
href="https://seanmorley.com/sponsor"
target="_blank"
rel="noopener noreferrer"
class="text-primary hover:underline"
class="btn btn-outline btn-sm"
>
Google Maps
{$t('about.sponsor')}
</a>
.
</p>
{:else if integrations && !integrations?.google_maps}
<p class="mt-2 text-sm text-gray-600 dark:text-gray-400">
{$t('about.nominatim_1')}
<!-- documentation -->
<a
href="https://operations.osmfoundation.org/policies/nominatim/"
href="https://adventurelog.app"
target="_blank"
rel="noopener noreferrer"
class="text-primary hover:underline"
class="btn btn-outline btn-sm"
>
OpenStreetMap
{$t('navbar.documentation')}
</a>
. {$t('about.nominatim_2')}
</p>
{:else}
<p class="mt-2 text-sm text-gray-600 dark:text-gray-400">
{$t('about.generic_attributions')}
</p>
{/if}
<p class="mt-1 text-sm text-gray-600 dark:text-gray-400">{$t('about.other_attributions')}</p>
</div>
</div>
</div>
</div>
<!-- Close Button -->
<div class="flex justify-center mt-6">
<button
class="px-6 py-2 text-sm font-medium text-white bg-primary rounded-full shadow-md hover:shadow-lg hover:scale-105 transform transition"
on:click={close}
>
<!-- Footer -->
<div class="flex items-center justify-between mt-6 pt-4 border-t border-base-300">
<div class="text-sm text-base-content/60">
{$t('about.thank_you')}
</div>
<button class="btn btn-primary btn-sm" on:click={close}>
{$t('about.close')}
</button>
</div>
</div>
</dialog>
<style>
.modal {
display: grid;
place-items: center;
background: rgba(0, 0, 0, 0.5);
animation: fadeIn 0.3s ease-in-out;
}
.modal-box {
max-width: 600px;
padding: 2rem;
animation: slideUp 0.4s ease-out;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes slideUp {
from {
transform: translateY(20%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
</style>

View file

@ -81,13 +81,13 @@
/>
<!-- Overlay indicator for multiple images -->
{#if adventure_images.length > 1}
<!-- {#if adventure_images.length > 1}
<div
class="absolute top-3 right-3 bg-black/60 text-white px-2 py-1 rounded-lg text-xs font-medium"
>
{currentSlide + 1} / {adventure_images.length}
</div>
{/if}
{/if} -->
<!-- Click to expand hint -->
<!-- <div
@ -118,7 +118,7 @@
{#if currentSlide > 0}
<button
on:click|stopPropagation={() => changeSlide('prev')}
class="btn btn-circle btn-sm ml-2 pointer-events-auto bg-white/80 border-none hover:bg-white text-gray-800 shadow-lg"
class="btn btn-circle btn-sm mr-2 pointer-events-auto bg-neutral border-none text-neutral-content shadow-lg"
aria-label="Previous image"
>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@ -137,7 +137,7 @@
{#if currentSlide < adventure_images.length - 1}
<button
on:click|stopPropagation={() => changeSlide('next')}
class="btn btn-circle btn-sm mr-2 pointer-events-auto bg-white/80 border-none hover:bg-white text-gray-800 shadow-lg"
class="btn btn-circle btn-sm mr-2 pointer-events-auto bg-neutral border-none text-neutral-content shadow-lg"
aria-label="Next image"
>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@ -155,7 +155,7 @@
</div>
<!-- Dot indicators at bottom -->
{#if adventure_images.length > 1}
<!-- {#if adventure_images.length > 1}
<div class="absolute bottom-3 left-1/2 -translate-x-1/2 flex gap-2">
{#each adventure_images as _, index}
<button
@ -168,7 +168,7 @@
/>
{/each}
</div>
{/if}
{/if} -->
{/if}
</div>
</div>

View file

@ -7,6 +7,7 @@
export let images: { image: string; adventure: Location | null }[] = [];
export let initialIndex: number = 0;
import { t } from 'svelte-i18n';
let currentIndex = initialIndex;
let currentImage = images[currentIndex]?.image || '';
@ -113,7 +114,8 @@
</h1>
{#if images.length > 1}
<p class="text-sm text-base-content/60">
{currentIndex + 1} of {images.length} images
{currentIndex + 1} of {images.length}
{$t('adventures.images')}
</p>
{/if}
</div>
@ -247,7 +249,9 @@
</div>
<div class="flex items-center gap-3">
{#if images.length > 1}
<div class="text-sm text-base-content/60">Use arrow keys or click to navigate</div>
<div class="text-sm text-base-content/60">
{$t('adventures.image_modal_navigate')}
</div>
{/if}
<button class="btn btn-primary gap-2" on:click={close}>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@ -258,7 +262,7 @@
d="M6 18L18 6M6 6l12 12"
/>
</svg>
Close
{$t('about.close')}
</button>
</div>
</div>

View file

@ -273,7 +273,7 @@
{#if type != 'link'}
<div class="flex justify-between items-center">
<button
class="btn btn-neutral btn-sm flex-1 mr-2"
class="btn btn-base-300 btn-sm flex-1 mr-2"
on:click={() => goto(`/locations/${adventure.id}`)}
>
<Launch class="w-4 h-4" />

View file

@ -9,7 +9,15 @@
"oss_attributions": "Open Source Quellenangaben",
"other_attributions": "Weitere Hinweise finden Sie in der README-Datei.",
"source_code": "Quellcode",
"generic_attributions": "Melden Sie sich bei Adventurelog an, um Zuschreibungen für aktivierte Integrationen und Dienste anzuzeigen."
"generic_attributions": "Melden Sie sich bei Adventurelog an, um Zuschreibungen für aktivierte Integrationen und Dienste anzuzeigen.",
"attributions": "Zuschreibungen",
"developer": "Entwickler",
"license_info": "Lizenz",
"sponsor": "Sponsor",
"thank_you": "Vielen Dank, dass Sie Adventurelog verwendet haben!",
"version": "Version",
"view_changelog": "ChangeLog anzeigen",
"view_license": "Lizenz anzeigen"
},
"adventures": {
"activities": {},
@ -250,7 +258,8 @@
"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.",
"no_locations_found": "Keine Standorte gefunden"
"no_locations_found": "Keine Standorte gefunden",
"image_modal_navigate": "Verwenden Sie Pfeiltasten oder klicken Sie, um zu navigieren"
},
"home": {
"desc_1": "Entdecken, planen und erkunden Sie mühelos",

View file

@ -43,7 +43,15 @@
"nominatim_2": "Their data is liscensed under the ODbL license.",
"other_attributions": "Additional attributions can be found in the README file.",
"generic_attributions": "Login to AdventureLog to view attributions for enabled integrations and services.",
"close": "Close"
"close": "Close",
"thank_you": "Thank you for using AdventureLog!",
"version": "Version",
"view_changelog": "View Changelog",
"developer": "Developer",
"attributions": "Attributions",
"license_info": "License",
"view_license": "View License",
"sponsor": "Sponsor"
},
"home": {
"hero_1": "Discover the World's Most Thrilling Adventures",
@ -154,6 +162,7 @@
"attachments": "Attachments",
"attachment": "Attachment",
"images": "Images",
"image_modal_navigate": "Use arrow keys or click to navigate",
"generate_desc": "Generate Description",
"public_location": "Public Location",
"location_information": "Location Information",

View file

@ -43,7 +43,15 @@
"nominatim_2": "Sus datos están licenciados bajo la licencia ODbL.",
"other_attributions": "Atribuciones adicionales se pueden encontrar en el archivo README.",
"close": "Cerrar",
"generic_attributions": "Inicie sesión en AdventureLog para ver las atribuciones para integraciones y servicios habilitados."
"generic_attributions": "Inicie sesión en AdventureLog para ver las atribuciones para integraciones y servicios habilitados.",
"attributions": "Atribuciones",
"developer": "Revelador",
"license_info": "Licencia",
"sponsor": "Patrocinador",
"thank_you": "¡Gracias por usar Adventurelog!",
"version": "Versión",
"view_changelog": "Ver ChangeLog",
"view_license": "Ver licencia"
},
"home": {
"hero_1": "Descubre las Aventuras Más Emocionantes del Mundo",
@ -302,7 +310,8 @@
"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.",
"no_locations_found": "No se encontraron ubicaciones"
"no_locations_found": "No se encontraron ubicaciones",
"image_modal_navigate": "Use teclas de flecha o haga clic para navegar"
},
"worldtravel": {
"all": "Todo",

View file

@ -9,7 +9,15 @@
"oss_attributions": "Attributions Open Source",
"other_attributions": "Des attributions supplémentaires peuvent être trouvées dans le fichier README.",
"source_code": "Code source",
"generic_attributions": "Connectez-vous à AdventureLog pour afficher les attributions pour les intégrations et services activés."
"generic_attributions": "Connectez-vous à AdventureLog pour afficher les attributions pour les intégrations et services activés.",
"attributions": "Attributions",
"developer": "Promoteur",
"license_info": "Licence",
"sponsor": "Parrainer",
"thank_you": "Merci d'utiliser AdventureLog!",
"version": "Version",
"view_changelog": "Voir Changelog",
"view_license": "Afficher la licence"
},
"adventures": {
"activities": {},
@ -250,7 +258,8 @@
"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é.",
"no_locations_found": "Aucun emplacement trouvé"
"no_locations_found": "Aucun emplacement trouvé",
"image_modal_navigate": "Utilisez des touches flèches ou cliquez pour naviguer"
},
"home": {
"desc_1": "Découvrez, planifiez et explorez en toute simplicité",

View file

@ -9,7 +9,15 @@
"oss_attributions": "Attribuzioni Open Source",
"other_attributions": "Ulteriori attribuzioni possono essere trovate nel file README.",
"source_code": "Codice sorgente",
"generic_attributions": "Accedi a AdventureLog per visualizzare le attribuzioni per integrazioni e servizi abilitati."
"generic_attributions": "Accedi a AdventureLog per visualizzare le attribuzioni per integrazioni e servizi abilitati.",
"attributions": "Attribuzioni",
"developer": "Sviluppatore",
"license_info": "Licenza",
"sponsor": "Sponsor",
"thank_you": "Grazie per aver usato AdventureLog!",
"version": "Versione",
"view_changelog": "Visualizza Changelog",
"view_license": "Visualizza la licenza"
},
"adventures": {
"activities": {},
@ -250,7 +258,8 @@
"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.",
"no_locations_found": "Nessuna posizione trovata"
"no_locations_found": "Nessuna posizione trovata",
"image_modal_navigate": "Usa i tasti freccia o fai clic per navigare"
},
"home": {
"desc_1": "Scopri, pianifica ed esplora con facilità",

View file

@ -9,7 +9,15 @@
"oss_attributions": "오픈 소스 속성",
"other_attributions": "추가 속성은 README 파일에서 찾을 수 있습니다.",
"source_code": "소스 코드",
"generic_attributions": "Adventurelog에 로그인하여 활성화 된 통합 및 서비스에 대한 속성을보십시오."
"generic_attributions": "Adventurelog에 로그인하여 활성화 된 통합 및 서비스에 대한 속성을보십시오.",
"attributions": "속성",
"developer": "개발자",
"license_info": "특허",
"sponsor": "스폰서",
"thank_you": "Adventurelog를 사용해 주셔서 감사합니다!",
"version": "버전",
"view_changelog": "changelog를 봅니다",
"view_license": "라이센스보기"
},
"adventures": {
"actions": "행동",
@ -250,7 +258,8 @@
"visit_calendar": "캘린더를 방문하십시오",
"wiki_location_desc": "위치 이름과 일치하는 Wikipedia 기사에서 발췌 한 내용을 가져옵니다.",
"will_be_marked_location": "위치가 저장되면 방문한대로 표시됩니다.",
"no_locations_found": "발견 된 위치는 없습니다"
"no_locations_found": "발견 된 위치는 없습니다",
"image_modal_navigate": "화살표 키를 사용하거나 클릭하여 탐색하십시오"
},
"auth": {
"confirm_password": "비밀번호 확인",

View file

@ -9,7 +9,15 @@
"oss_attributions": "Open source gebruik",
"other_attributions": "Aanvullende vermeldingen zijn te vinden in het README-bestand.",
"source_code": "Broncode",
"generic_attributions": "Log in op AdventUrelog om attributies te bekijken voor ingeschakelde integraties en services."
"generic_attributions": "Log in op AdventUrelog om attributies te bekijken voor ingeschakelde integraties en services.",
"attributions": "Attributies",
"developer": "Ontwikkelaar",
"license_info": "Licentie",
"sponsor": "Sponsor",
"thank_you": "Bedankt voor het gebruik van AdventUrelog!",
"version": "Versie",
"view_changelog": "Bekijk Changelog",
"view_license": "Bekijk licentie"
},
"adventures": {
"activities": {},
@ -250,7 +258,8 @@
"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.",
"no_locations_found": "Geen locaties gevonden"
"no_locations_found": "Geen locaties gevonden",
"image_modal_navigate": "Gebruik pijltoetsen of klik om te navigeren"
},
"home": {
"desc_1": "Ontdek, plan en verken met gemak",

View file

@ -43,7 +43,15 @@
"nominatim_2": "Deres data er lisensiert under ODbL-lisensen.",
"other_attributions": "Ytterligere attribusjoner finnes i README-filen.",
"close": "Lukk",
"generic_attributions": "Logg inn på Adventurelog for å se attribusjoner for aktiverte integrasjoner og tjenester."
"generic_attributions": "Logg inn på Adventurelog for å se attribusjoner for aktiverte integrasjoner og tjenester.",
"attributions": "Attribusjoner",
"developer": "Utvikler",
"license_info": "Tillatelse",
"sponsor": "Sponsor",
"thank_you": "Takk for at du bruker Adventurelog!",
"version": "Versjon",
"view_changelog": "Se Changelog",
"view_license": "Vis lisens"
},
"home": {
"hero_1": "Oppdag verdens mest spennende eventyr",
@ -302,7 +310,8 @@
"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.",
"no_locations_found": "Ingen steder funnet"
"no_locations_found": "Ingen steder funnet",
"image_modal_navigate": "Bruk piltastene eller klikk for å navigere"
},
"worldtravel": {
"country_list": "Liste over land",

View file

@ -43,7 +43,15 @@
"nominatim_2": "Ich dane są licencjonowane na licencji ODbL.",
"other_attributions": "Dodatkowe atrybucje można znaleźć w pliku README.",
"close": "Zamknij",
"generic_attributions": "Zaloguj się do Adventurelog, aby wyświetlić atrybucje dla włączonych integracji i usług."
"generic_attributions": "Zaloguj się do Adventurelog, aby wyświetlić atrybucje dla włączonych integracji i usług.",
"attributions": "Przypisania",
"developer": "Wywoływacz",
"license_info": "Licencja",
"sponsor": "Sponsor",
"thank_you": "Dziękujemy za korzystanie z Adventurelog!",
"version": "Wersja",
"view_changelog": "Zobacz Changelog",
"view_license": "Wyświetl licencję"
},
"home": {
"hero_1": "Odkryj najbardziej ekscytujące podróże na świecie",
@ -302,7 +310,8 @@
"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.",
"no_locations_found": "Nie znaleziono żadnych lokalizacji"
"no_locations_found": "Nie znaleziono żadnych lokalizacji",
"image_modal_navigate": "Użyj klawiszy strzałek lub kliknij, aby nawigować"
},
"worldtravel": {
"country_list": "Lista krajów",

View file

@ -43,7 +43,15 @@
"nominatim_2": "Их данные лицензированы под лицензией ODbL.",
"other_attributions": "Дополнительные атрибуции можно найти в файле README.",
"generic_attributions": "Войдите в AdventureLog, чтобы просмотреть атрибуции для включённых интеграций и сервисов.",
"close": "Закрыть"
"close": "Закрыть",
"attributions": "Атрибуты",
"developer": "Разработчик",
"license_info": "Лицензия",
"sponsor": "Спонсор",
"thank_you": "Спасибо за использование AdventureLog!",
"version": "Версия",
"view_changelog": "Посмотреть изменение изменений",
"view_license": "Просмотреть лицензию"
},
"home": {
"hero_1": "Откройте для себя самые захватывающие приключения мира",
@ -302,7 +310,8 @@
"visit_calendar": "Посетите календарь",
"wiki_location_desc": "Вытягивает отрывок из статьи Википедии, соответствующей названию места.",
"will_be_marked_location": "будет отмечен по посещению после сохранения местоположения.",
"no_locations_found": "Никаких мест не найдено"
"no_locations_found": "Никаких мест не найдено",
"image_modal_navigate": "Используйте клавиши со стрелками или нажмите, чтобы перемещаться"
},
"worldtravel": {
"country_list": "Список стран",

View file

@ -9,7 +9,15 @@
"oss_attributions": "Tillskrivningar med öppen källkod",
"other_attributions": "Ytterligare attributioner finns i README-filen.",
"source_code": "Källkod",
"generic_attributions": "Logga in på AdventureLog för att visa attribut för aktiverade integrationer och tjänster."
"generic_attributions": "Logga in på AdventureLog för att visa attribut för aktiverade integrationer och tjänster.",
"attributions": "Tillskrivningar",
"developer": "Framkallare",
"license_info": "Licens",
"sponsor": "Sponsor",
"thank_you": "Tack för att du använder AdventureLog!",
"version": "Version",
"view_changelog": "Visa Changelog",
"view_license": "Visa licens"
},
"adventures": {
"activities": {},
@ -250,7 +258,8 @@
"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.",
"no_locations_found": "Inga platser hittades"
"no_locations_found": "Inga platser hittades",
"image_modal_navigate": "Använd pilnycklar eller klicka för att navigera"
},
"home": {
"desc_1": "Upptäck, planera och utforska med lätthet",

View file

@ -43,7 +43,15 @@
"other_attributions": "其他声明可以在 README 文件中找到。",
"source_code": "源代码",
"close": "关闭",
"generic_attributions": "登录到AdventureLog以查看启用集成和服务的归因。"
"generic_attributions": "登录到AdventureLog以查看启用集成和服务的归因。",
"attributions": "归因",
"developer": "开发人员",
"license_info": "执照",
"sponsor": "赞助",
"thank_you": "感谢您使用冒险!",
"version": "版本",
"view_changelog": "查看ChangElog",
"view_license": "查看许可证"
},
"home": {
"desc_1": "轻松发现、规划和探索",
@ -302,7 +310,8 @@
"visit_calendar": "访问日历",
"wiki_location_desc": "从Wikipedia文章中提取摘录符合该位置的名称。",
"will_be_marked_location": "保存位置后,将被标记为访问。",
"no_locations_found": "找不到位置"
"no_locations_found": "找不到位置",
"image_modal_navigate": "使用箭头键或单击以导航"
},
"auth": {
"forgot_password": "忘记密码?",