forked from Ivasoft/geovisio-website
Merge branch 'fix/android-upload-pict' into 'develop'
fix/android-upload-pict Closes #81 See merge request panoramax/server/website!142
This commit is contained in:
@@ -14,9 +14,9 @@ describe('In the login page', () => {
|
||||
})
|
||||
cy.get('.input-file').selectFile(
|
||||
[
|
||||
'/src/cypress/fixtures/images/image1.jpg',
|
||||
'/src/cypress/fixtures/images/image2.jpg',
|
||||
'/src/cypress/fixtures/images/image3.jpg'
|
||||
'cypress/fixtures/images/image1.jpg',
|
||||
'cypress/fixtures/images/image2.jpg',
|
||||
'cypress/fixtures/images/image3.jpg'
|
||||
],
|
||||
{ force: true }
|
||||
)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 166 KiB |
@@ -7,7 +7,7 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"start": "vite --mode production --port $PORT",
|
||||
"start": "node server.js",
|
||||
"build": "run-p build-only",
|
||||
"preview": "vite preview",
|
||||
"test:unit": "vitest --environment jsdom --root src/",
|
||||
@@ -25,6 +25,7 @@
|
||||
"axios": "^1.2.3",
|
||||
"bootstrap": "^5.2.3",
|
||||
"bootstrap-icons": "^1.10.3",
|
||||
"express": "4.19.2",
|
||||
"geovisio": "3.0.1",
|
||||
"moment": "^2.29.4",
|
||||
"pako": "^2.1.0",
|
||||
@@ -69,7 +70,7 @@
|
||||
"sass": "^1.62.0",
|
||||
"terser": "^5.30.4",
|
||||
"typescript": "~4.7.4",
|
||||
"vite": "^3.2.4",
|
||||
"vite": "^5.2.11",
|
||||
"vite-plugin-eslint": "^1.8.1",
|
||||
"vite-plugin-html": "^3.2.2",
|
||||
"vitest": "^0.25.3",
|
||||
|
||||
13
server.js
Normal file
13
server.js
Normal file
@@ -0,0 +1,13 @@
|
||||
const express = require('express')
|
||||
|
||||
const app = express()
|
||||
const directory = '/' + (process.env.STATIC_DIR || 'dist')
|
||||
app.use(express.static(__dirname + directory))
|
||||
|
||||
const port = process.env.PORT || 3003
|
||||
app.listen(port, function () {
|
||||
console.log('Listening on', port)
|
||||
})
|
||||
app.get('*', function (request, response) {
|
||||
response.sendFile(__dirname + '/dist/index.html')
|
||||
})
|
||||
BIN
src/assets/images/android-upload-tutorial-files.jpg
Normal file
BIN
src/assets/images/android-upload-tutorial-files.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
BIN
src/assets/images/android-upload-tutorial.jpg
Normal file
BIN
src/assets/images/android-upload-tutorial.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
BIN
src/assets/images/tutorial-upload-loc-2.jpg
Normal file
BIN
src/assets/images/tutorial-upload-loc-2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 94 KiB |
BIN
src/assets/images/tutorial-upload-loc.jpg
Normal file
BIN
src/assets/images/tutorial-upload-loc.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
@@ -82,7 +82,10 @@
|
||||
:menu-is-closed="menuIsClosed"
|
||||
@triggerToggleMenu="toggleMenu"
|
||||
/>
|
||||
<div v-else-if="!isLogged && authEnabled">
|
||||
<div
|
||||
v-else-if="!isLogged && authEnabled"
|
||||
class="button-login-responsive"
|
||||
>
|
||||
<div class="desktop" data-test="button-login-desktop">
|
||||
<Link
|
||||
type="external"
|
||||
@@ -257,5 +260,8 @@ const userName = computed((): string => {
|
||||
.responsive {
|
||||
display: flex;
|
||||
}
|
||||
.wrapper-right-entries .button-login-responsive {
|
||||
margin-right: toRem(-1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
ref="upload"
|
||||
type="file"
|
||||
multiple
|
||||
:accept="accept"
|
||||
@change="changeFile"
|
||||
@cancel="cancelUpload"
|
||||
class="input-file"
|
||||
/>
|
||||
<i class="bi bi-cloud-upload-fill"></i>
|
||||
@@ -26,19 +26,24 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
const emit = defineEmits<{ (e: 'trigger', value: FileList): void }>()
|
||||
const emit = defineEmits<{
|
||||
(e: 'trigger', value: FileList): void
|
||||
(e: 'triggerCancel'): void
|
||||
}>()
|
||||
let isDragging = ref<boolean>(false)
|
||||
|
||||
defineProps({
|
||||
text: { type: String, default: null },
|
||||
textPictureType: { type: String, default: null },
|
||||
textSecondPart: { type: String, default: null },
|
||||
accept: { type: String, default: '' }
|
||||
textSecondPart: { type: String, default: null }
|
||||
})
|
||||
|
||||
interface HTMLInputChangeEvent extends Event {
|
||||
target: HTMLInputElement & EventTarget
|
||||
}
|
||||
function cancelUpload(): void {
|
||||
if (navigator.userAgent.includes('Android')) emit('triggerCancel')
|
||||
}
|
||||
function changeFile(event: Event): void {
|
||||
const { target } = event as HTMLInputChangeEvent
|
||||
if (target && target.files) {
|
||||
@@ -59,8 +64,9 @@ function drop(event: DragEvent): void | boolean {
|
||||
event.preventDefault()
|
||||
const { dataTransfer } = event
|
||||
if (dataTransfer && dataTransfer.files) {
|
||||
if (!checkPicturesType(dataTransfer.files))
|
||||
if (!checkPicturesType(dataTransfer.files)) {
|
||||
return (isDragging.value = false)
|
||||
}
|
||||
emit('trigger', dataTransfer.files)
|
||||
isDragging.value = false
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ defineProps({
|
||||
min-width: toRem(10);
|
||||
padding-right: toRem(1);
|
||||
padding-left: toRem(1);
|
||||
z-index: 1;
|
||||
z-index: 3;
|
||||
}
|
||||
.button-close {
|
||||
position: absolute;
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
import axios from 'axios'
|
||||
import { onMounted, onUnmounted, ref, computed } from 'vue'
|
||||
import { useSequenceStore } from '@/store/sequence'
|
||||
import { useCookies } from 'vue3-cookies'
|
||||
import { Viewer, StandaloneMap, Editor } from 'geovisio'
|
||||
import { createUrlLink, manageSlashUrl, getEnv } from '@/utils'
|
||||
import { isAuth } from '../composables/auth'
|
||||
@@ -27,7 +26,6 @@ import type {
|
||||
const sequenceStore = useSequenceStore()
|
||||
const { isLogged } = isAuth()
|
||||
const { t, locale } = useI18n()
|
||||
const { cookies } = useCookies()
|
||||
let mapIsLoaded = ref<boolean>(false)
|
||||
let viewer = ref()
|
||||
const props = defineProps({
|
||||
|
||||
@@ -31,7 +31,21 @@
|
||||
@mousemove="handleMouseMove"
|
||||
@mouseup="mouseup"
|
||||
@mouseout="mouseup"
|
||||
class="cursor-img"
|
||||
class="cursor-img desktop"
|
||||
>
|
||||
<button class="arrow-img arrow-img-1" @click="clickAndMove(45)">
|
||||
<img src="@/assets/images/icon/cursor-arrow.svg" alt="" />
|
||||
</button>
|
||||
<button class="arrow-img arrow-img-2" @click="clickAndMove(-45)">
|
||||
<img src="@/assets/images/icon/cursor-arrow.svg" alt="" />
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
id="rotate"
|
||||
@touchstart="touchdown"
|
||||
@touchmove="handleTouchMove"
|
||||
@touchend="mouseup"
|
||||
class="cursor-img responsive"
|
||||
>
|
||||
<button class="arrow-img arrow-img-1" @click="clickAndMove(45)">
|
||||
<img src="@/assets/images/icon/cursor-arrow.svg" alt="" />
|
||||
@@ -77,6 +91,17 @@ onMounted(() => {
|
||||
rotate.value = document.getElementById('rotate')
|
||||
if (app) app.addEventListener('mouseup', () => (active.value = false))
|
||||
})
|
||||
function touchdown(e: TouchEvent): void {
|
||||
e.preventDefault()
|
||||
if (!rotateWrapper.value) return
|
||||
const bb = rotateWrapper.value.getBoundingClientRect()
|
||||
const { top: t, left: l, height: h, width: w } = bb
|
||||
center = { x: l + w / 2, y: t + h / 2 }
|
||||
let x = e.changedTouches[0].clientX - center.x
|
||||
let y = e.changedTouches[0].clientY - center.y
|
||||
startAngle.value = R2D * Math.atan2(y, x)
|
||||
active.value = true
|
||||
}
|
||||
function mousedown(e: MouseEvent): void {
|
||||
e.preventDefault()
|
||||
if (!rotateWrapper.value) return
|
||||
@@ -88,8 +113,16 @@ function mousedown(e: MouseEvent): void {
|
||||
startAngle.value = R2D * Math.atan2(y, x)
|
||||
active.value = true
|
||||
}
|
||||
function handleTouchMove(e: TouchEvent): void {
|
||||
if (!active.value || !rotateWrapper.value) return
|
||||
const x = e.changedTouches[0].clientX - center.x
|
||||
const y = e.changedTouches[0].clientY - center.y
|
||||
const d = R2D * Math.atan2(y, x)
|
||||
rotation.value = d - startAngle.value
|
||||
const calc = angle.value + rotation.value
|
||||
rotateWrapper.value.style.transform = `rotate(${calc}deg)`
|
||||
}
|
||||
function handleMouseMove(e: MouseEvent): void {
|
||||
e.preventDefault()
|
||||
if (!active.value || !rotateWrapper.value) return
|
||||
const x = e.clientX - center.x
|
||||
const y = e.clientY - center.y
|
||||
@@ -114,7 +147,10 @@ function mouseup(): void {
|
||||
function clickAndMove(value: number): void {
|
||||
const moduloAngle = modulo180(angle.value, Math.round(props.roadDegrees))
|
||||
if (moduloAngle % 45 === 0) {
|
||||
return emit('triggerAngle', moduloAngle + value)
|
||||
let angleToEmit = moduloAngle + value
|
||||
if (angleToEmit > 180) angleToEmit = -135
|
||||
if (angleToEmit < -180) angleToEmit = 135
|
||||
return emit('triggerAngle', angleToEmit)
|
||||
}
|
||||
let closestMultiple = Math.ceil(moduloAngle / 45) * value
|
||||
return emit('triggerAngle', closestMultiple)
|
||||
@@ -189,6 +225,12 @@ function clickAndMove(value: number): void {
|
||||
background-position: center;
|
||||
cursor: move;
|
||||
}
|
||||
.desktop {
|
||||
display: block;
|
||||
}
|
||||
.responsive {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.arrow-img {
|
||||
position: absolute;
|
||||
@@ -226,4 +268,34 @@ function clickAndMove(value: number): void {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
@media (max-width: toRem(76.8)) {
|
||||
.rotate-wrapper {
|
||||
.desktop {
|
||||
display: none;
|
||||
}
|
||||
.responsive {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
.rotate-wrapper {
|
||||
width: 75%;
|
||||
height: 75%;
|
||||
}
|
||||
.arrow-img {
|
||||
height: toRem(4);
|
||||
width: toRem(4);
|
||||
}
|
||||
.arrow-img-1 {
|
||||
right: toRem(3);
|
||||
top: toRem(4.5);
|
||||
}
|
||||
.arrow-img-2 {
|
||||
left: toRem(2.4);
|
||||
bottom: toRem(7.88);
|
||||
}
|
||||
.car-img {
|
||||
height: 40%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -43,30 +43,55 @@
|
||||
<div v-else class="loaded-block success">
|
||||
<img src="@/assets/images/success.svg" alt="" />
|
||||
<p>{{ $t('pages.upload.upload_done') }}</p>
|
||||
<span
|
||||
v-if="!uploadedSequence.picturesOnError.length && otherFilesCount > 0"
|
||||
class="other-files"
|
||||
>{{
|
||||
$t('pages.upload.upload_other_files', { count: otherFilesCount })
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="uploadedSequence && uploadedSequence.picturesOnError.length"
|
||||
class="error-wrapper"
|
||||
>
|
||||
<div v-if="uploadedSequence?.picturesOnError?.length" class="error-wrapper">
|
||||
<div class="error-corpus">
|
||||
<i class="bi bi-exclamation-triangle"></i>
|
||||
<span class="error-text">{{
|
||||
$t('pages.upload.pictures_error', {
|
||||
count: uploadedSequence.picturesOnError.length
|
||||
})
|
||||
}}</span>
|
||||
<div>
|
||||
<i class="bi bi-exclamation-triangle"></i>
|
||||
<span class="error-text">{{
|
||||
$t('pages.upload.pictures_error', {
|
||||
count: uploadedSequence.picturesOnError.length
|
||||
})
|
||||
}}</span>
|
||||
</div>
|
||||
<div v-if="userAgentAndroid" class="entry-tutorial-error-exif">
|
||||
<span class="other-files">{{
|
||||
$t('pages.sequence.sequence_tutorial_exif_text')
|
||||
}}</span>
|
||||
<img
|
||||
src="@/assets/images/tutorial-upload-loc.jpg"
|
||||
alt=""
|
||||
class="img-tutorial-error-exif"
|
||||
/>
|
||||
<img
|
||||
src="@/assets/images/tutorial-upload-loc-2.jpg"
|
||||
alt=""
|
||||
class="img-tutorial-error-exif first-tutorial-img-error"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<Button
|
||||
:text="$t('pages.upload.error_button')"
|
||||
look="button button--red"
|
||||
@trigger="$emit('triggerModal')"
|
||||
/>
|
||||
<span v-if="otherFilesCount > 0" class="other-files">{{
|
||||
$t('pages.upload.upload_other_files', { count: otherFilesCount })
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue'
|
||||
import Loader from '@/components/Loader.vue'
|
||||
import Link from '@/components/Link.vue'
|
||||
import Button from '@/components/Button.vue'
|
||||
@@ -81,8 +106,13 @@ defineProps({
|
||||
default: null
|
||||
},
|
||||
picturesCount: { type: Number, default: null },
|
||||
otherFilesCount: { type: Number, default: null },
|
||||
uploadError: { type: String, default: null }
|
||||
})
|
||||
|
||||
const userAgentAndroid = computed<boolean>(() =>
|
||||
navigator.userAgent.includes('Android')
|
||||
)
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@@ -158,8 +188,12 @@ defineProps({
|
||||
margin-bottom: toRem(1);
|
||||
}
|
||||
.error-text {
|
||||
font-weight: bold;
|
||||
margin-left: toRem(0.5);
|
||||
}
|
||||
.entry-tutorial-error-exif {
|
||||
display: none;
|
||||
}
|
||||
.loading-block,
|
||||
.loaded-block {
|
||||
height: 100%;
|
||||
@@ -174,6 +208,10 @@ defineProps({
|
||||
margin-bottom: toRem(2);
|
||||
}
|
||||
}
|
||||
.other-files {
|
||||
@include text(s-regular);
|
||||
color: var(--red-pale);
|
||||
}
|
||||
.error-block {
|
||||
display: flex;
|
||||
i {
|
||||
@@ -192,4 +230,33 @@ defineProps({
|
||||
margin-bottom: toRem(1.5);
|
||||
}
|
||||
}
|
||||
@media (max-width: toRem(76.8)) {
|
||||
.entry-tutorial-error-exif {
|
||||
display: block;
|
||||
padding-top: toRem(1);
|
||||
}
|
||||
.other-files {
|
||||
margin-top: toRem(1);
|
||||
}
|
||||
.img-tutorial-error-exif {
|
||||
width: fit-content;
|
||||
height: toRem(27);
|
||||
border-radius: toRem(1);
|
||||
margin-top: toRem(1);
|
||||
margin-bottom: toRem(1);
|
||||
}
|
||||
.first-tutorial-img-error {
|
||||
margin-right: toRem(1);
|
||||
}
|
||||
}
|
||||
@media (max-width: toRem(50)) {
|
||||
.first-tutorial-img-error {
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.img-tutorial-error-exif {
|
||||
width: 100%;
|
||||
height: initial;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,228 +1,231 @@
|
||||
{
|
||||
"general": {
|
||||
"title": "Panoramax Instance",
|
||||
"meta": {
|
||||
"title": "Panoramax Instance",
|
||||
"description": "Panoramax, the free alternative to photo-mapping territories"
|
||||
},
|
||||
"header": {
|
||||
"login_text": "Login",
|
||||
"register_text": "Register",
|
||||
"contribute_text": "Why Contribute?",
|
||||
"viewer": "Viewer",
|
||||
"my_account": "My Account",
|
||||
"upload_text": "+ Share Pictures",
|
||||
"sequences_text": "My Pictures",
|
||||
"alt_logo": "Instance logo",
|
||||
"alt_photos": "Pictures icon",
|
||||
"alt_information": "User icon",
|
||||
"alt_settings": "Settings icon",
|
||||
"alt_logout": "Logout icon",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Beta Version",
|
||||
"logout_text": "Logout",
|
||||
"my_information_text": "My details",
|
||||
"my_settings_text": "My Settings",
|
||||
"burger_menu_aria_label_open": "Show menu",
|
||||
"burger_menu_aria_label_closed": "Hide menu"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "Discover Panoramax",
|
||||
"information_gitlab": "Show source code",
|
||||
"gitlab_logo": "GitLab logo",
|
||||
"ay11_text": "Accessibility: not compliant"
|
||||
},
|
||||
"error_text": "An error occured",
|
||||
"success_text": "Update complete"
|
||||
"general": {
|
||||
"title": "Panoramax Instance",
|
||||
"meta": {
|
||||
"title": "Panoramax Instance",
|
||||
"description": "Panoramax, the free alternative to photo-mapping territories"
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_mail": "?subject=⚠️ Report on picture {picId}&body=Hello, %0D%0A%0D%0A Problem on image (keep type of problem reported): %0D%0A%0D%0A %0D%0A%0D%0A inappropriate content / lack of blurring on an element to be anonymized or blurred for security reasons / overblurring (too much blurring) %0D%0A%0D%0A Link to affected photo: {link} %0D%0A%0D%0A Details of affected elements (especially for blurring problems - what should be blurred or unblurred?):",
|
||||
"report_button_text": "Report this picture",
|
||||
"sequence_title": "See the sequence",
|
||||
"open_fullscreen": "Fullscreen mode",
|
||||
"close_fullscreen": "Normal mode"
|
||||
},
|
||||
"settings": {
|
||||
"title": "My Tokens",
|
||||
"setting_tooltip": "Show or hide token"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Published",
|
||||
"sequence_waiting": "Processing",
|
||||
"sequence_hidden": "Hidden",
|
||||
"sequence_form_title": "Edit the title",
|
||||
"hide_sequence_tooltip": "Hide this sequences",
|
||||
"back_button": "Back to my sequence list",
|
||||
"delete_sequence_tooltip": "Permanently delete this sequence",
|
||||
"hide_photo_tooltip": "Hide selected pictures",
|
||||
"delete_photo_tooltip": "Permanently delete selected pictures",
|
||||
"info_msg_maj": "Use the SHIFT key to select many pictures",
|
||||
"conf_pic_msg": "⚠️ Selected photos will be permanently deleted",
|
||||
"conf_sequence_msg": "⚠️ This sequence will be permanently deleted",
|
||||
"button_panel_photos": "Manage pictures",
|
||||
"button_panel_orientation": "Set orientation",
|
||||
"button_panel_sort": "Sort sequence",
|
||||
"orientation_panel_title": "Adjusting the orientation of all photos in the sequence",
|
||||
"orientation_panel_tooltip": "Drag the blue box in the desired direction\"",
|
||||
"orientation_input_label": "or change the angle here",
|
||||
"orientation_input_placeholder": "Value between -180 and 180",
|
||||
"orientation_input_error_value": "Value must be between -180 and 180",
|
||||
"orientation_panel_button": "Validate position",
|
||||
"orientation_updated": "Orientation updated",
|
||||
"sort_updated": "Sequence sorted",
|
||||
"sort_panel_title": "Sequence sort setting",
|
||||
"sort_panel_settings": "Sort sequence by:",
|
||||
"sort_panel_settings_order": "Order :",
|
||||
"sort_panel_settings_order_increase": "Ascending",
|
||||
"sort_panel_settings_order_decrease": "Decreasing",
|
||||
"sort_panel_check_gps": "GPS Date",
|
||||
"sort_panel_check_file": "File date",
|
||||
"sort_panel_check_name": "File name",
|
||||
"sort_panel_button": "Validate sort",
|
||||
"created": "Uploaded :",
|
||||
"taken": "Shot on :",
|
||||
"duration": "Duration :",
|
||||
"duration_begin": "Start :",
|
||||
"duration_end": "End :",
|
||||
"camera": "Camera :",
|
||||
"button_delete": "Delete the sequence",
|
||||
"button_disable": "Hide the sequence",
|
||||
"button_enable": "Show the sequence",
|
||||
"picture_selected": "{count} picture selected| {count} pictures selected",
|
||||
"hours": "{count} hour| {count} hours",
|
||||
"minutes": "{count} minute| {count} minutes",
|
||||
"seconds": "{count} second| {count} seconds",
|
||||
"select_text": "Select all",
|
||||
"unselect_text": "Deselect all",
|
||||
"select_shift_text": "Select multiple photos with shift",
|
||||
"waiting_process": "Photo in process",
|
||||
"broken": "Photo error processing",
|
||||
"no_image": "No picture in this sequence"
|
||||
},
|
||||
"sequences": {
|
||||
"title": "My sequences",
|
||||
"filter_date_upload_title": "Filter by upload date :",
|
||||
"filter_date_title": "Filter by shooting date :",
|
||||
"radio_date_placeholder": "03/01/2024",
|
||||
"radio_date": "date",
|
||||
"hide_button": "Hide",
|
||||
"show_button": "Show",
|
||||
"delete_button": "Delete",
|
||||
"filter_date_reset_button": "Reset",
|
||||
"filter_date_close_button": "Close",
|
||||
"no_sequence_found": "No sequence found",
|
||||
"sequence_name": "Name",
|
||||
"sequence_photos": "Photos",
|
||||
"sequence_date": "Shot on",
|
||||
"sequence_creation": "Upload",
|
||||
"sequence_creation_tooltip": "Filter by uploaded date",
|
||||
"sequence_date_tooltip": "Filter by shooting date",
|
||||
"reset_filter_button": "Reset the filters",
|
||||
"filter_bbox_button": "Search on this area",
|
||||
"sequence_status": "Status",
|
||||
"sequence_published": "Published",
|
||||
"sequence_waiting": "Processing",
|
||||
"sequence_hidden": "Hidden",
|
||||
"no_sequences_text": "You have no photos published yet 😢",
|
||||
"button_upload": "Upload pictures",
|
||||
"sequence_deleted": "The sequence has been deleted"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Why contribute to Panoramax?",
|
||||
"description": "Contributing to Panoramax means participating in the development of a geo-common, a sovereign, free and reusable digital resource. Each geolocalized photo published on Panoramax can be used by anyone for a variety of purposes, for example by a local authority needing to observe the status of its roads, or by a telecoms operator to prepare an intervention.\n\nEach contributor can send his or her image sequences, modify them and consult them, as well as all the views - 360° or not - contributed by the community. The compulsory blurring of faces and license plates is automated on the platform.",
|
||||
"alt_img_map": "Illustration of a woman looking at a map with her geolocated smartphone",
|
||||
"card_photo1": "Places visible from the public highway",
|
||||
"card_photo2": "Photos published in 360° format or not",
|
||||
"card_photo3": "Easily reusable photos",
|
||||
"card_photo4": "A quick and easy image contribution",
|
||||
"card_alt_photo1": "Image of a building",
|
||||
"card_alt_photo2": "Image showing 360-degree",
|
||||
"card_alt_photo3": "Image showing a map with a pointer",
|
||||
"card_alt_photo4": "Image representing a pointer",
|
||||
"card_description1": "All photos taken from the public highway are accepted, as long as they are geolocated and viewed from the ground.",
|
||||
"card_description2": "360° pictures are not mandatory: photos taken with a smartphone are all that's needed. Dates, locations and jpg format are the only prerequisites.",
|
||||
"card_description3": "All photos easily accessible and reusable without an account: via the website or a standard API (STAC standard).",
|
||||
"card_description4": "Several tools are available to facilitate contributions, including a command line and a web interface.",
|
||||
"upload_subtitle": "Simply upload your images online",
|
||||
"upload_illustration_alt": "Illustration showing online photo uploading",
|
||||
"upload_description": "Panoramax's web application lets you upload all your field photos in JPEG format at the click of a button. No programming skills are required. For larger numbers, however, we recommend using the command-line tool",
|
||||
"upload_button": "+ Upload pictures",
|
||||
"command_line_subtitle": "Command line tool",
|
||||
"comment_install": "Install the geovisio command-line tool",
|
||||
"comment_upload": "Start the image upload command on the chosen folder",
|
||||
"description_terminal": "<a href='https://gitlab.com/panoramax/clients/cli' target='_blank' style='color:black'>The CLI</a> lets you share large volumes of photos. The procedure is simple and requires <a target='_blank' href='https://www.python.org/downloads/' style='color:black'>python (version 3.8 or above)</a>.\n\nThe tool will ask for your login details before importing. Once the pictures have been uploaded, a processing time is required before publication.",
|
||||
"terminal_install": "pip install geovisio_cli",
|
||||
"terminal_text": "geovisio upload --api-url {url} <PHOTOS_FOLDER>",
|
||||
"button_copy": "Copy",
|
||||
"information_subtitle": "Here, your photos are accessible to all : ",
|
||||
"information_text1": "Automatically blurred in compliance with legislation.",
|
||||
"information_text2": "The uploaded pictures will be published under {word}",
|
||||
"information_text3": "In its original format and resolution for various reuse.",
|
||||
"information_about_title": "Need to access pictures ?",
|
||||
"information_about_description": "An API is available to retrieve all metadata and pictures. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nFind out more here</a>\nData is also displayed in the form <a href='{docTiles}' target='_blank' style='color:#0a1f69'>of vector tiles</a>",
|
||||
"doc_subtitle": "Need help contributing to Panoramax?",
|
||||
"doc_description": "Panoramax documentation is available from us, and you can access tutorials on the geo-commons forum.",
|
||||
"doc_button": "See the documentation",
|
||||
"doc_illustration_alt": "Illustration of a character with a sheet of documents"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Contribute to the Panoramax project",
|
||||
"description": "For large volumes of pictures, the command line tool is more suitable.",
|
||||
"know_more_button": "Read more",
|
||||
"input_label": "Drag your pictures here or click on ",
|
||||
"import_word": "upload",
|
||||
"import_type": "JPEG format only",
|
||||
"subtitle_import": "Picture upload",
|
||||
"title_sequence": "Sequence title",
|
||||
"description_title_sequence": "By default, the sequence title will be the date of the day. You can, if you want, edit the title here.",
|
||||
"text_import": "Upload your jpg files here. Each picture or series of pictures constitutes a \"sequence\". You can then find them in the \"my pictures\" section and choose to hide, show or delete them.",
|
||||
"subtitle_process": "Upload processing",
|
||||
"uploading_process": "Upload in progress…",
|
||||
"uploading_cancel": "Cancel sending photos",
|
||||
"cancel_message": "⚠️ Please note, the download will be interrupted if you validate and the sequence will be deleted.",
|
||||
"sequence_title": "Sequence ",
|
||||
"error_upload": "Sequence creation error",
|
||||
"import": "Uploads",
|
||||
"upload_pending": "Upload in progress…",
|
||||
"images_count_text": "Pictures uploaded",
|
||||
"no_img_text": "no picture upload so far",
|
||||
"upload_done": "Sequence upload done",
|
||||
"sequence_link": "Show this sequence",
|
||||
"edit_title": "Edit the title",
|
||||
"edit_placeholder_input": "Edit the sequence's title",
|
||||
"ok_button": "OK",
|
||||
"pictures_error": "{count} picture could not be uploaded| {count} pictures could not be uploaded",
|
||||
"sequence_loading_information": "Once uploaded, the sequence will be processed then published on Panoramax (usually within a couple of minutes).",
|
||||
"sequence_loaded_information": "The sequences has been uploaded and is under processing. It should be publicly available on Panoramax within a couple of minutes.",
|
||||
"leave_message": "⚠️ WARNING, the download will be interrupted if you leave the page before the end.",
|
||||
"error_button": "Show errors",
|
||||
"modal_error_title": "Pictures in error"
|
||||
},
|
||||
"ay11": {
|
||||
"title": "Accessibility Statement",
|
||||
"date": "Issued on September 18, 2023.",
|
||||
"introduction": "IGN aims to make its services accessible, in accordance with article 47 of Act No. 2005-102 on 11 February 2005.\nThis accessibility statement applies to Panoramax Instance IGN: https://panoramax.ign.fr",
|
||||
"subtitle_conformity": "Compliance status",
|
||||
"conformity_text": "Panoramax Instance IGN is non-compliant with the ",
|
||||
"conformity_text2": "The site has not yet been audited.",
|
||||
"subtitle_conformity2": "Content not accessible",
|
||||
"subtitle_increase": "Improvement and contact",
|
||||
"increase_text": "Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez\n contacter le responsable de Panoramax Instance IGN pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme.",
|
||||
"phone": "Telephone: +33 14 398 84 61",
|
||||
"email_text": "E-mail:",
|
||||
"email": "signalement.ign@panoramax.fr",
|
||||
"address": "Address: IGN, Saint-Mandé",
|
||||
"increase_info": "We try to respond within 5 business days.",
|
||||
"subtitle_to_do": "Voie de recours",
|
||||
"to_do_text": "Cette procédure est à utiliser dans le cas suivant : vous avez signalé au responsable du site internet un défaut d’accessibilité qui vous\n empêche d’accéder à un contenu ou à un des services du portail et vous n’avez pas obtenu de réponse satisfaisante. \n vous pouvez :",
|
||||
"write_message": "Write a message to",
|
||||
"defenseur_droits": "Defender of Rights",
|
||||
"contact": "Contact",
|
||||
"contact_text": "the delegate of the Defender of Rights in your region",
|
||||
"send_letter": "Envoyer un courrier par la poste (gratuit, ne pas mettre de\n timbre):\n Défenseur des droits\n Libre réponse 71120 75342 Paris CEDEX 07",
|
||||
"end": "Cette déclaration d’accessibilité a été créé le\n 18 septembre 2023 grâce au",
|
||||
"generator_betagouv": "BetaGouv Accessibility Statement Generator"
|
||||
}
|
||||
"header": {
|
||||
"login_text": "Login",
|
||||
"register_text": "Register",
|
||||
"contribute_text": "Why Contribute?",
|
||||
"viewer": "Viewer",
|
||||
"my_account": "My Account",
|
||||
"upload_text": "+ Share Pictures",
|
||||
"sequences_text": "My Pictures",
|
||||
"alt_logo": "Instance logo",
|
||||
"alt_photos": "Pictures icon",
|
||||
"alt_information": "User icon",
|
||||
"alt_settings": "Settings icon",
|
||||
"alt_logout": "Logout icon",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Beta Version",
|
||||
"logout_text": "Logout",
|
||||
"my_information_text": "My details",
|
||||
"my_settings_text": "My Settings",
|
||||
"burger_menu_aria_label_open": "Show menu",
|
||||
"burger_menu_aria_label_closed": "Hide menu"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "Discover Panoramax",
|
||||
"information_gitlab": "Show source code",
|
||||
"gitlab_logo": "GitLab logo",
|
||||
"ay11_text": "Accessibility: not compliant"
|
||||
},
|
||||
"error_text": "An error occured",
|
||||
"success_text": "Update complete"
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_mail": "?subject=⚠️ Report on picture {picId}&body=Hello, %0D%0A%0D%0A Problem on image (keep type of problem reported): %0D%0A%0D%0A %0D%0A%0D%0A inappropriate content / lack of blurring on an element to be anonymized or blurred for security reasons / overblurring (too much blurring) %0D%0A%0D%0A Link to affected photo: {link} %0D%0A%0D%0A Details of affected elements (especially for blurring problems - what should be blurred or unblurred?):",
|
||||
"report_button_text": "Report this picture",
|
||||
"sequence_title": "See the sequence",
|
||||
"open_fullscreen": "Fullscreen mode",
|
||||
"close_fullscreen": "Normal mode"
|
||||
},
|
||||
"settings": {
|
||||
"title": "My Tokens",
|
||||
"setting_tooltip": "Show or hide token"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Published",
|
||||
"sequence_waiting": "Processing",
|
||||
"sequence_hidden": "Hidden",
|
||||
"sequence_form_title": "Edit the title",
|
||||
"sequence_tutorial_text": "⚠ File selection has been canceled. If this was not intentional, it is possible that your smartphone does not handle sending photos correctly.\nGoing through “My Files” (see image below) to select photos might resolve this issue.",
|
||||
"sequence_tutorial_exif_text": "If the photo upload errors are related to geolocation, please make sure « Location Tags » is enabled on your phone's camera (see images below).",
|
||||
"hide_sequence_tooltip": "Hide this sequences",
|
||||
"back_button": "Back to my sequence list",
|
||||
"delete_sequence_tooltip": "Permanently delete this sequence",
|
||||
"hide_photo_tooltip": "Hide selected pictures",
|
||||
"delete_photo_tooltip": "Permanently delete selected pictures",
|
||||
"info_msg_maj": "Use the SHIFT key to select many pictures",
|
||||
"conf_pic_msg": "⚠️ Selected photos will be permanently deleted",
|
||||
"conf_sequence_msg": "⚠️ This sequence will be permanently deleted",
|
||||
"button_panel_photos": "Manage pictures",
|
||||
"button_panel_orientation": "Set orientation",
|
||||
"button_panel_sort": "Sort sequence",
|
||||
"orientation_panel_title": "Adjusting the orientation of all photos in the sequence",
|
||||
"orientation_panel_tooltip": "Drag the blue box in the desired direction\"",
|
||||
"orientation_input_label": "or change the angle here",
|
||||
"orientation_input_placeholder": "Value between -180 and 180",
|
||||
"orientation_input_error_value": "Value must be between -180 and 180",
|
||||
"orientation_panel_button": "Validate position",
|
||||
"orientation_updated": "Orientation updated",
|
||||
"sort_updated": "Sequence sorted",
|
||||
"sort_panel_title": "Sequence sort setting",
|
||||
"sort_panel_settings": "Sort sequence by:",
|
||||
"sort_panel_settings_order": "Order :",
|
||||
"sort_panel_settings_order_increase": "Ascending",
|
||||
"sort_panel_settings_order_decrease": "Decreasing",
|
||||
"sort_panel_check_gps": "GPS Date",
|
||||
"sort_panel_check_file": "File date",
|
||||
"sort_panel_check_name": "File name",
|
||||
"sort_panel_button": "Validate sort",
|
||||
"created": "Uploaded :",
|
||||
"taken": "Shot on :",
|
||||
"duration": "Duration :",
|
||||
"duration_begin": "Start :",
|
||||
"duration_end": "End :",
|
||||
"camera": "Camera :",
|
||||
"button_delete": "Delete the sequence",
|
||||
"button_disable": "Hide the sequence",
|
||||
"button_enable": "Show the sequence",
|
||||
"picture_selected": "{count} picture selected| {count} pictures selected",
|
||||
"hours": "{count} hour| {count} hours",
|
||||
"minutes": "{count} minute| {count} minutes",
|
||||
"seconds": "{count} second| {count} seconds",
|
||||
"select_text": "Select all",
|
||||
"unselect_text": "Deselect all",
|
||||
"select_shift_text": "Select multiple photos with shift",
|
||||
"waiting_process": "Photo in process",
|
||||
"broken": "Photo error processing",
|
||||
"no_image": "No picture in this sequence"
|
||||
},
|
||||
"sequences": {
|
||||
"title": "My sequences",
|
||||
"filter_date_upload_title": "Filter by upload date :",
|
||||
"filter_date_title": "Filter by shooting date :",
|
||||
"radio_date_placeholder": "03/01/2024",
|
||||
"radio_date": "date",
|
||||
"hide_button": "Hide",
|
||||
"show_button": "Show",
|
||||
"delete_button": "Delete",
|
||||
"filter_date_reset_button": "Reset",
|
||||
"filter_date_close_button": "Close",
|
||||
"no_sequence_found": "No sequence found",
|
||||
"sequence_name": "Name",
|
||||
"sequence_photos": "Photos",
|
||||
"sequence_date": "Shot on",
|
||||
"sequence_creation": "Upload",
|
||||
"sequence_creation_tooltip": "Filter by uploaded date",
|
||||
"sequence_date_tooltip": "Filter by shooting date",
|
||||
"reset_filter_button": "Reset the filters",
|
||||
"filter_bbox_button": "Search on this area",
|
||||
"sequence_status": "Status",
|
||||
"sequence_published": "Published",
|
||||
"sequence_waiting": "Processing",
|
||||
"sequence_hidden": "Hidden",
|
||||
"no_sequences_text": "You have no photos published yet 😢",
|
||||
"button_upload": "Upload pictures",
|
||||
"sequence_deleted": "The sequence has been deleted"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Why contribute to Panoramax?",
|
||||
"description": "Contributing to Panoramax means participating in the development of a geo-common, a sovereign, free and reusable digital resource. Each geolocalized photo published on Panoramax can be used by anyone for a variety of purposes, for example by a local authority needing to observe the status of its roads, or by a telecoms operator to prepare an intervention.\n\nEach contributor can send his or her image sequences, modify them and consult them, as well as all the views - 360° or not - contributed by the community. The compulsory blurring of faces and license plates is automated on the platform.",
|
||||
"alt_img_map": "Illustration of a woman looking at a map with her geolocated smartphone",
|
||||
"card_photo1": "Places visible from the public highway",
|
||||
"card_photo2": "Photos published in 360° format or not",
|
||||
"card_photo3": "Easily reusable photos",
|
||||
"card_photo4": "A quick and easy image contribution",
|
||||
"card_alt_photo1": "Image of a building",
|
||||
"card_alt_photo2": "Image showing 360-degree",
|
||||
"card_alt_photo3": "Image showing a map with a pointer",
|
||||
"card_alt_photo4": "Image representing a pointer",
|
||||
"card_description1": "All photos taken from the public highway are accepted, as long as they are geolocated and viewed from the ground.",
|
||||
"card_description2": "360° pictures are not mandatory: photos taken with a smartphone are all that's needed. Dates, locations and jpg format are the only prerequisites.",
|
||||
"card_description3": "All photos easily accessible and reusable without an account: via the website or a standard API (STAC standard).",
|
||||
"card_description4": "Several tools are available to facilitate contributions, including a command line and a web interface.",
|
||||
"upload_subtitle": "Simply upload your images online",
|
||||
"upload_illustration_alt": "Illustration showing online photo uploading",
|
||||
"upload_description": "Panoramax's web application lets you upload all your field photos in JPEG format at the click of a button. No programming skills are required. For larger numbers, however, we recommend using the command-line tool",
|
||||
"upload_button": "+ Upload pictures",
|
||||
"command_line_subtitle": "Command line tool",
|
||||
"comment_install": "Install the geovisio command-line tool",
|
||||
"comment_upload": "Start the image upload command on the chosen folder",
|
||||
"description_terminal": "<a href='https://gitlab.com/panoramax/clients/cli' target='_blank' style='color:black'>The CLI</a> lets you share large volumes of photos. The procedure is simple and requires <a target='_blank' href='https://www.python.org/downloads/' style='color:black'>python (version 3.8 or above)</a>.\n\nThe tool will ask for your login details before importing. Once the pictures have been uploaded, a processing time is required before publication.",
|
||||
"terminal_install": "pip install geovisio_cli",
|
||||
"terminal_text": "geovisio upload --api-url {url} <PHOTOS_FOLDER>",
|
||||
"button_copy": "Copy",
|
||||
"information_subtitle": "Here, your photos are accessible to all : ",
|
||||
"information_text1": "Automatically blurred in compliance with legislation.",
|
||||
"information_text2": "The uploaded pictures will be published under {word}",
|
||||
"information_text3": "In its original format and resolution for various reuse.",
|
||||
"information_about_title": "Need to access pictures ?",
|
||||
"information_about_description": "An API is available to retrieve all metadata and pictures. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nFind out more here</a>\nData is also displayed in the form <a href='{docTiles}' target='_blank' style='color:#0a1f69'>of vector tiles</a>",
|
||||
"doc_subtitle": "Need help contributing to Panoramax?",
|
||||
"doc_description": "Panoramax documentation is available from us, and you can access tutorials on the geo-commons forum.",
|
||||
"doc_button": "See the documentation",
|
||||
"doc_illustration_alt": "Illustration of a character with a sheet of documents"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Contribute to the Panoramax project",
|
||||
"description": "For large volumes of pictures, the command line tool is more suitable.",
|
||||
"know_more_button": "Read more",
|
||||
"input_label": "Drag your pictures here or click on ",
|
||||
"import_word": "upload",
|
||||
"import_type": "JPEG format only",
|
||||
"subtitle_import": "Picture upload",
|
||||
"title_sequence": "Sequence title",
|
||||
"description_title_sequence": "By default, the sequence title will be the date of the day. You can, if you want, edit the title here.",
|
||||
"text_import": "Upload your jpg files here. Each picture or series of pictures constitutes a \"sequence\". You can then find them in the \"my pictures\" section and choose to hide, show or delete them.",
|
||||
"subtitle_process": "Upload processing",
|
||||
"uploading_process": "Upload in progress…",
|
||||
"uploading_cancel": "Cancel sending photos",
|
||||
"cancel_message": "⚠️ Please note, the download will be interrupted if you validate and the sequence will be deleted.",
|
||||
"sequence_title": "Sequence ",
|
||||
"error_upload": "Sequence creation error",
|
||||
"import": "Uploads",
|
||||
"upload_pending": "Upload in progress…",
|
||||
"images_count_text": "Pictures uploaded",
|
||||
"no_img_text": "no picture upload so far",
|
||||
"upload_done": "Sequence upload done",
|
||||
"upload_other_files": "{count} photo in wrong format was removed from the list| {count} wrong format photos have been removed from the list",
|
||||
"sequence_link": "Show this sequence",
|
||||
"edit_title": "Edit the title",
|
||||
"edit_placeholder_input": "Edit the sequence's title",
|
||||
"ok_button": "OK",
|
||||
"pictures_error": "{count} picture could not be uploaded| {count} pictures could not be uploaded",
|
||||
"sequence_loading_information": "Once uploaded, the sequence will be processed then published on Panoramax (usually within a couple of minutes).",
|
||||
"sequence_loaded_information": "The sequences has been uploaded and is under processing. It should be publicly available on Panoramax within a couple of minutes.",
|
||||
"leave_message": "⚠️ WARNING, the download will be interrupted if you leave the page before the end.",
|
||||
"error_button": "Show errors",
|
||||
"modal_error_title": "Pictures in error"
|
||||
},
|
||||
"ay11": {
|
||||
"title": "Accessibility Statement",
|
||||
"date": "Issued on September 18, 2023.",
|
||||
"introduction": "IGN aims to make its services accessible, in accordance with article 47 of Act No. 2005-102 on 11 February 2005.\nThis accessibility statement applies to Panoramax Instance IGN: https://panoramax.ign.fr",
|
||||
"subtitle_conformity": "Compliance status",
|
||||
"conformity_text": "Panoramax Instance IGN is non-compliant with the ",
|
||||
"conformity_text2": "The site has not yet been audited.",
|
||||
"subtitle_conformity2": "Content not accessible",
|
||||
"subtitle_increase": "Improvement and contact",
|
||||
"increase_text": "Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez\n contacter le responsable de Panoramax Instance IGN pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme.",
|
||||
"phone": "Telephone: +33 14 398 84 61",
|
||||
"email_text": "E-mail:",
|
||||
"email": "signalement.ign@panoramax.fr",
|
||||
"address": "Address: IGN, Saint-Mandé",
|
||||
"increase_info": "We try to respond within 5 business days.",
|
||||
"subtitle_to_do": "Voie de recours",
|
||||
"to_do_text": "Cette procédure est à utiliser dans le cas suivant : vous avez signalé au responsable du site internet un défaut d’accessibilité qui vous\n empêche d’accéder à un contenu ou à un des services du portail et vous n’avez pas obtenu de réponse satisfaisante. \n vous pouvez :",
|
||||
"write_message": "Write a message to",
|
||||
"defenseur_droits": "Defender of Rights",
|
||||
"contact": "Contact",
|
||||
"contact_text": "the delegate of the Defender of Rights in your region",
|
||||
"send_letter": "Envoyer un courrier par la poste (gratuit, ne pas mettre de\n timbre):\n Défenseur des droits\n Libre réponse 71120 75342 Paris CEDEX 07",
|
||||
"end": "Cette déclaration d’accessibilité a été créé le\n 18 septembre 2023 grâce au",
|
||||
"generator_betagouv": "BetaGouv Accessibility Statement Generator"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,228 +1,231 @@
|
||||
{
|
||||
"general": {
|
||||
"title": "Instance Panoramax",
|
||||
"meta": {
|
||||
"title": "Instance Panoramax",
|
||||
"description": "Panoramax, l’alternative libre pour photo-cartographier les territoires"
|
||||
},
|
||||
"header": {
|
||||
"login_text": "Connexion",
|
||||
"register_text": "Inscription",
|
||||
"contribute_text": "Pourquoi contribuer ?",
|
||||
"viewer": "Visionneuse",
|
||||
"my_account": "Mon compte",
|
||||
"upload_text": "+ Partager des photos",
|
||||
"sequences_text": "Mes photos",
|
||||
"alt_logo": "Logo de l'instance",
|
||||
"alt_photos": "Icone représentant des photos",
|
||||
"alt_information": "Icone représentant un utilisateur",
|
||||
"alt_settings": "Icône des paramètres",
|
||||
"alt_logout": "Icone représentant un bouton de déconnexion",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Version bêta",
|
||||
"logout_text": "Déconnexion",
|
||||
"my_information_text": "Mes informations",
|
||||
"my_settings_text": "Mes paramètres",
|
||||
"burger_menu_aria_label_open": "Afficher le menu",
|
||||
"burger_menu_aria_label_closed": "Masquer le menu"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "Découvrir Panoramax",
|
||||
"information_gitlab": "Voir le code",
|
||||
"gitlab_logo": "Logo GitLab",
|
||||
"ay11_text": "Accessibilité : non conforme"
|
||||
},
|
||||
"error_text": "Une erreur est survenue",
|
||||
"success_text": "Mise à jour réussie"
|
||||
"general": {
|
||||
"title": "Instance Panoramax",
|
||||
"meta": {
|
||||
"title": "Instance Panoramax",
|
||||
"description": "Panoramax, l’alternative libre pour photo-cartographier les territoires"
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_mail": "?subject=⚠️ Signalement sur l'image {picId}&body=Bonjour, %0D%0A%0D%0A Problème sur l'image (garder le type de problème signalé) : %0D%0A%0D%0A contenu inapproprié / absence de floutage sur un élément à anonymiser ou flouter pour des raisons de sécurité /surfloutage (floutage en trop) %0D%0A%0D%0A Lien vers la photo concernée : {link} %0D%0A%0D%0A Précision sur les éléments concernés (en particulier pour les problèmes de floutage - que faut-il flouter ou déflouter ?) :",
|
||||
"report_button_text": "Signaler la photo",
|
||||
"sequence_title": "Voir la séquence",
|
||||
"open_fullscreen": "Mode plein écran",
|
||||
"close_fullscreen": "Mode normal"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Mes jetons",
|
||||
"setting_tooltip": "Afficher ou masquer le token"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Publiée",
|
||||
"sequence_waiting": "En cours de publication",
|
||||
"sequence_hidden": "Masquée",
|
||||
"sequence_form_title": "Modifier le titre",
|
||||
"hide_sequence_tooltip": "Masque la séquence sur la carte",
|
||||
"back_button": "Retourner à la liste de mes séquences",
|
||||
"delete_sequence_tooltip": "Supprime définitivement la séquence",
|
||||
"hide_photo_tooltip": "Masque les photos sur la carte",
|
||||
"delete_photo_tooltip": "Supprime définitivement les photos",
|
||||
"info_msg_maj": "Utilisez la touche MAJ pour sélectionner plusieurs photos",
|
||||
"conf_pic_msg": "⚠️ Les photos sélectionnées vont être définitivement supprimées",
|
||||
"conf_sequence_msg": "⚠️ La séquence va être définitivement supprimée",
|
||||
"button_panel_photos": "Gérer les photos",
|
||||
"button_panel_orientation": "Régler l'orientation",
|
||||
"button_panel_sort": "Trier la séquence",
|
||||
"orientation_panel_title": "Définir l'orientation de la caméra sur le véhicule",
|
||||
"orientation_panel_tooltip": "Faites glisser la zone bleu dans la direction souhaitée",
|
||||
"orientation_input_label": "ou modifiez l'angle ici",
|
||||
"orientation_input_placeholder": "Valeur entre -180 et 180",
|
||||
"orientation_input_error_value": "La valeur doit être entre -180 et 180",
|
||||
"orientation_panel_button": "Valider la position",
|
||||
"orientation_updated": "L'orientation a bien été modifiée",
|
||||
"sort_updated": "La séquence a bien triée",
|
||||
"sort_panel_title": "Réglage du tri de la séquence",
|
||||
"sort_panel_settings": "Trier la séquence par :",
|
||||
"sort_panel_settings_order": "Ordre :",
|
||||
"sort_panel_settings_order_increase": "Croissant",
|
||||
"sort_panel_settings_order_decrease": "Décroissant",
|
||||
"sort_panel_check_gps": "Date du GPS",
|
||||
"sort_panel_check_file": "Date de la caméra",
|
||||
"sort_panel_check_name": "Nom du fichier",
|
||||
"sort_panel_button": "Valider le tri",
|
||||
"created": "Versement :",
|
||||
"taken": "Prise de vue :",
|
||||
"duration": "Durée :",
|
||||
"duration_begin": "Début :",
|
||||
"duration_end": "Fin :",
|
||||
"camera": "Matériel :",
|
||||
"button_delete": "Supprimer la séquence",
|
||||
"button_disable": "Masquer la séquence",
|
||||
"button_enable": "Afficher la séquence",
|
||||
"picture_selected": "{count} photo sélectionnée| {count} photos sélectionnées",
|
||||
"hours": "{count} heure| {count} heures",
|
||||
"minutes": "{count} minute| {count} minutes",
|
||||
"seconds": "{count} seconde| {count} secondes",
|
||||
"select_text": "Tout sélectionner",
|
||||
"unselect_text": "Tout désélectionner",
|
||||
"select_shift_text": "Sélectionnez plusieurs photos avec shift",
|
||||
"waiting_process": "Photo en cours de traitement",
|
||||
"broken": "Traitement de la photo en erreur",
|
||||
"no_image": "Aucune photo dans cette séquence"
|
||||
},
|
||||
"sequences": {
|
||||
"title": "Mes séquences de photos",
|
||||
"filter_date_upload_title": "Filtrer par date de versement :",
|
||||
"filter_date_title": "Filtrer par date de prise de vue :",
|
||||
"radio_date_placeholder": "2024-01-03",
|
||||
"radio_date": "date",
|
||||
"hide_button": "Masquer",
|
||||
"show_button": "Afficher",
|
||||
"delete_button": "Supprimer",
|
||||
"filter_date_reset_button": "Réinitialiser",
|
||||
"filter_date_close_button": "Fermer",
|
||||
"no_sequence_found": "Aucune séquence trouvée",
|
||||
"sequence_name": "Nom",
|
||||
"sequence_photos": "Photos",
|
||||
"sequence_date": "Prise de vue",
|
||||
"sequence_creation": "Versement",
|
||||
"sequence_creation_tooltip": "Filtre par date de versement",
|
||||
"sequence_date_tooltip": "Filtre par date de prise de vue",
|
||||
"reset_filter_button": "Réinitialiser les filtres",
|
||||
"filter_bbox_button": "Chercher dans cette zone",
|
||||
"sequence_status": "Statut",
|
||||
"sequence_published": "Publiée",
|
||||
"sequence_waiting": "En cours de publication",
|
||||
"sequence_hidden": "Masquée",
|
||||
"no_sequences_text": "Vous n'avez pas encore de photos publiées 😢",
|
||||
"button_upload": "Partager vos photos",
|
||||
"sequence_deleted": "La séquence a bien été supprimée"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Pourquoi contribuer à la base de photographies de Panoramax ?",
|
||||
"description": "Contribuer à Panoramax, c'est participer au développement d'un géo-commun, une ressource numérique souveraine, libre et réutilisable. Chaque photo géolocalisée publiée sur Panoramax est utilisable par tous et pour des usages variés, par exemple par une collectivité territoriale qui a besoin d'observer l’état de la voirie ou par un opérateur de télécommunications pour préparer une intervention.\n\nChaque contributeur peut envoyer ses séquences d'images, les modifier et les consulter tout comme l'ensemble des vues - 360° ou non - versées par la communauté. Le floutage obligatoire des visages et plaques d'immatriculation est automatisé sur la plateforme.",
|
||||
"alt_img_map": "Illustration d'une femme qui regarde une carte avec son smartphone geolocalisé",
|
||||
"card_photo1": "Des lieux visibles depuis la voie publique",
|
||||
"card_photo2": "Des photos publiées au format 360° ou non",
|
||||
"card_photo3": "Des photos facilement réutilisables",
|
||||
"card_photo4": "Une contribution en images facile et rapide",
|
||||
"card_alt_photo1": "Image qui représente un immeuble",
|
||||
"card_alt_photo2": "Image qui représente des photos 360 degrés",
|
||||
"card_alt_photo3": "Image qui représente une carte avec un pointeur",
|
||||
"card_alt_photo4": "Image qui représente un pointeur",
|
||||
"card_description1": "Toutes les photos prises depuis la voie publique sont concernées, dès lors qu'elles sont géolocalisées et vues du sol.",
|
||||
"card_description2": "Le format 360° n'est pas obligatoire : des photos prises via un smartphone suffisent, dates, lieux et format jpg sont les seuls pre-requis.",
|
||||
"card_description3": "Toutes les photos facilement accessible et réutilisables sans compte : via le site web ou une API standard (format STAC).",
|
||||
"card_description4": "Plusieurs outils sont mis à disposition pour faciliter les contributions dont une ligne de commande et une interface web.",
|
||||
"upload_subtitle": "Chargez vos images simplement en ligne",
|
||||
"upload_illustration_alt": "Illustration qui représente l'envoie de photo en ligne",
|
||||
"upload_description": "L'application web de Panoramax vous permet de déposer toutes vos photos de terrain au format jpg d'un simple clic. Aucune notion de programmation n'est nécessaire. Pour les envois en grand nombre, il est toutefois conseillé de faire appel à l'outil en ligne de commande",
|
||||
"upload_button": "+ Partager des photos",
|
||||
"command_line_subtitle": "L'outil en ligne de commande",
|
||||
"comment_install": "Installer l’outil en ligne de commande geovisio",
|
||||
"comment_upload": "Lancez la commande de versement d’images sur le dossier choisi",
|
||||
"description_terminal": "<a href='https://gitlab.com/panoramax/clients/cli' target='_blank' style='color:black'>L'outil en ligne de commande</a> vous permet de partager de grands volumes de photos. La procédure est simple et vous devez disposer <a target='_blank' href='https://www.python.org/downloads/' style='color:black'>de python (au moins la version 3.8)</a>.\n\nL’outil demandera vos informations de connexion avant l'import. Une fois les données chargées, un temps de traitement est nécessaire pour les rendre disponibles.",
|
||||
"terminal_install": "pip install geovisio_cli",
|
||||
"terminal_text": "geovisio upload --api-url {url} <DOSSIER_PHOTOS>",
|
||||
"button_copy": "Copier",
|
||||
"information_subtitle": "Ici, vos photos sont accessibles à tous : ",
|
||||
"information_text1": "Automatiquement floutées dans le respect de la législation.",
|
||||
"information_text2": "Les données déposées seront publiées sous {word}",
|
||||
"information_text3": "Sous forme «brute» pour des réutilisations variées (ex: préparation des chantiers).",
|
||||
"information_about_title": "Besoin de récupérer les données ?",
|
||||
"information_about_description": "Une API est mise à disposition pour récupérer toutes les données. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nRetrouvez sa documentation ici</a>\nLes données sont aussi exposées sous forme <a href='{docTiles}' target='_blank' style='color:#0a1f69'>de tuiles vectorielles</a>",
|
||||
"doc_subtitle": "Besoin d'aide pour contribuer à Panoramax ?",
|
||||
"doc_description": "Nous mettons à disposition l’ensemble de la documentation relative à Panoramax et vous pouvez accéder aux tutoriels sur le forum des géo-communs.",
|
||||
"doc_button": "Voir la documentation",
|
||||
"doc_illustration_alt": "Illustration représentant un personnage avec un feuillet de documents"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Contribuez à la base de photographies de Panoramax",
|
||||
"description": "Pour le versement d'un grand volume de photographies, l'outil en ligne de commande est plus adapté.",
|
||||
"know_more_button": "En savoir plus",
|
||||
"input_label": "Glissez vos images ici ou cliquez sur ",
|
||||
"import_word": "importer",
|
||||
"import_type": "Format JPEG uniquement",
|
||||
"subtitle_import": "Dépôt des images",
|
||||
"title_sequence": "Titre de ma séquence",
|
||||
"description_title_sequence": "Le titre d'une séquence est par défaut la date du jour. Vous pouvez, si vous le souhaitez le modifier ci-dessous.",
|
||||
"text_import": "Déposez ici vos fichiers jpg. Chaque image ou série d’images constitue une « séquence ». Vous pourrez ensuite les retrouver dans la section « mes images » et choisir de les masquer, les afficher ou les supprimer.",
|
||||
"subtitle_process": "Traitements de l'import",
|
||||
"uploading_process": "Envoi en cours…",
|
||||
"uploading_cancel": "Annuler l'envoi des photos",
|
||||
"cancel_message": "⚠️ Attention, le téléchargement sera interrompu si vous validez et la séquence sera supprimée.",
|
||||
"sequence_title": "Séquence du ",
|
||||
"error_upload": "Erreur de création de la séquence",
|
||||
"import": "Imports",
|
||||
"upload_pending": "Transfert en cours…",
|
||||
"images_count_text": "Images chargées",
|
||||
"no_img_text": "aucune image chargée actuellement",
|
||||
"upload_done": "Le chargement de la séquence est terminé",
|
||||
"sequence_link": "Accéder à cette séquence",
|
||||
"edit_title": "Modifier le titre",
|
||||
"edit_placeholder_input": "Modifier le titre de la séquence",
|
||||
"ok_button": "Valider",
|
||||
"pictures_error": "{count} image n'a pas pu être chargée| {count} images n'ont pas pu être chargées",
|
||||
"sequence_loading_information": "Une fois chargée, la séquence sera en traitement et accessible sur Panoramax dans les prochaines minutes.",
|
||||
"sequence_loaded_information": "La séquence est chargée et est en cours de traitement. Elle sera accessible sur Panoramax dans quelques minutes.",
|
||||
"leave_message": "⚠️ Attention, le téléchargement sera interrompu si vous quittez la page avant la fin.",
|
||||
"error_button": "Afficher les erreurs",
|
||||
"modal_error_title": "Liste des photos non chargés"
|
||||
},
|
||||
"ay11": {
|
||||
"title": "Déclaration d’accessibilité",
|
||||
"date": "Établie le 18 septembre 2023.",
|
||||
"introduction": "IGN s’engage à rendre son service accessible, conformément à l’article 47 de la loi n° 2005-102 du 11 février 2005.\n Cette déclaration d’accessibilité s’applique à Panoramax Instance IGN : https://panoramax.ign.fr",
|
||||
"subtitle_conformity": "État de conformité",
|
||||
"conformity_text": "Panoramax Instance IGN est non conforme avec le ",
|
||||
"conformity_text2": "Le site n’a encore pas été audité.",
|
||||
"subtitle_conformity2": "Contenus non accessibles",
|
||||
"subtitle_increase": "Amélioration et contact",
|
||||
"increase_text": "Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez\n contacter le responsable de Panoramax Instance IGN pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme.",
|
||||
"phone": "Téléphone : +33 14 398 84 61",
|
||||
"email_text": "E-mail :",
|
||||
"email": "signalement.ign@panoramax.fr",
|
||||
"address": "Adresse : IGN, Saint-Mandé",
|
||||
"increase_info": "Nous essayons de répondre dans les 5 jours ouvrés.",
|
||||
"subtitle_to_do": "Voie de recours",
|
||||
"to_do_text": "Cette procédure est à utiliser dans le cas suivant : vous avez signalé au responsable du site internet un défaut d’accessibilité qui vous\n empêche d’accéder à un contenu ou à un des services du portail et vous n’avez pas obtenu de réponse satisfaisante. \n vous pouvez :",
|
||||
"write_message": "Écrire un message au",
|
||||
"defenseur_droits": "Défenseur des droits",
|
||||
"contact": "Contacter",
|
||||
"contact_text": "le délégué du Défenseur des droits dans votre région",
|
||||
"send_letter": "Envoyer un courrier par la poste (gratuit, ne pas mettre de\n timbre):\n Défenseur des droits\n Libre réponse 71120 75342 Paris CEDEX 07",
|
||||
"end": "Cette déclaration d’accessibilité a été créé le\n 18 septembre 2023 grâce au",
|
||||
"generator_betagouv": "Générateur de Déclaration d’Accessibilité de BetaGouv"
|
||||
}
|
||||
"header": {
|
||||
"login_text": "Connexion",
|
||||
"register_text": "Inscription",
|
||||
"contribute_text": "Pourquoi contribuer ?",
|
||||
"viewer": "Visionneuse",
|
||||
"my_account": "Mon compte",
|
||||
"upload_text": "+ Partager des photos",
|
||||
"sequences_text": "Mes photos",
|
||||
"alt_logo": "Logo de l'instance",
|
||||
"alt_photos": "Icone représentant des photos",
|
||||
"alt_information": "Icone représentant un utilisateur",
|
||||
"alt_settings": "Icône des paramètres",
|
||||
"alt_logout": "Icone représentant un bouton de déconnexion",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Version bêta",
|
||||
"logout_text": "Déconnexion",
|
||||
"my_information_text": "Mes informations",
|
||||
"my_settings_text": "Mes paramètres",
|
||||
"burger_menu_aria_label_open": "Afficher le menu",
|
||||
"burger_menu_aria_label_closed": "Masquer le menu"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "Découvrir Panoramax",
|
||||
"information_gitlab": "Voir le code",
|
||||
"gitlab_logo": "Logo GitLab",
|
||||
"ay11_text": "Accessibilité : non conforme"
|
||||
},
|
||||
"error_text": "Une erreur est survenue",
|
||||
"success_text": "Mise à jour réussie"
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_mail": "?subject=⚠️ Signalement sur l'image {picId}&body=Bonjour, %0D%0A%0D%0A Problème sur l'image (garder le type de problème signalé) : %0D%0A%0D%0A contenu inapproprié / absence de floutage sur un élément à anonymiser ou flouter pour des raisons de sécurité /surfloutage (floutage en trop) %0D%0A%0D%0A Lien vers la photo concernée : {link} %0D%0A%0D%0A Précision sur les éléments concernés (en particulier pour les problèmes de floutage - que faut-il flouter ou déflouter ?) :",
|
||||
"report_button_text": "Signaler la photo",
|
||||
"sequence_title": "Voir la séquence",
|
||||
"open_fullscreen": "Mode plein écran",
|
||||
"close_fullscreen": "Mode normal"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Mes jetons",
|
||||
"setting_tooltip": "Afficher ou masquer le token"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Publiée",
|
||||
"sequence_waiting": "En cours de publication",
|
||||
"sequence_hidden": "Masquée",
|
||||
"sequence_form_title": "Modifier le titre",
|
||||
"sequence_tutorial_text": "⚠ La sélection des fichiers a été annulée. Si ce n'était pas intentionnel, il est possible que votre smartphone gère mal l'envoi de photos.\nPasser par « Mes fichiers » (voir l'image ci-dessous) pour sélectionner les photos pourrait résoudre ce problème.",
|
||||
"sequence_tutorial_exif_text": "Si les erreurs de téléchargement de photos concernent la géolocalisation, veuillez vous assurer que l'option « Tags de localisation » est bien activée sur l'appareil photo de votre téléphone (voir les images ci-dessous).",
|
||||
"hide_sequence_tooltip": "Masque la séquence sur la carte",
|
||||
"back_button": "Retourner à la liste de mes séquences",
|
||||
"delete_sequence_tooltip": "Supprime définitivement la séquence",
|
||||
"hide_photo_tooltip": "Masque les photos sur la carte",
|
||||
"delete_photo_tooltip": "Supprime définitivement les photos",
|
||||
"info_msg_maj": "Utilisez la touche MAJ pour sélectionner plusieurs photos",
|
||||
"conf_pic_msg": "⚠️ Les photos sélectionnées vont être définitivement supprimées",
|
||||
"conf_sequence_msg": "⚠️ La séquence va être définitivement supprimée",
|
||||
"button_panel_photos": "Gérer les photos",
|
||||
"button_panel_orientation": "Régler l'orientation",
|
||||
"button_panel_sort": "Trier la séquence",
|
||||
"orientation_panel_title": "Définir l'orientation de la caméra sur le véhicule",
|
||||
"orientation_panel_tooltip": "Faites glisser la zone bleu dans la direction souhaitée",
|
||||
"orientation_input_label": "ou modifiez l'angle ici",
|
||||
"orientation_input_placeholder": "Valeur entre -180 et 180",
|
||||
"orientation_input_error_value": "La valeur doit être entre -180 et 180",
|
||||
"orientation_panel_button": "Valider la position",
|
||||
"orientation_updated": "L'orientation a bien été modifiée",
|
||||
"sort_updated": "La séquence a bien triée",
|
||||
"sort_panel_title": "Réglage du tri de la séquence",
|
||||
"sort_panel_settings": "Trier la séquence par :",
|
||||
"sort_panel_settings_order": "Ordre :",
|
||||
"sort_panel_settings_order_increase": "Croissant",
|
||||
"sort_panel_settings_order_decrease": "Décroissant",
|
||||
"sort_panel_check_gps": "Date du GPS",
|
||||
"sort_panel_check_file": "Date de la caméra",
|
||||
"sort_panel_check_name": "Nom du fichier",
|
||||
"sort_panel_button": "Valider le tri",
|
||||
"created": "Versement :",
|
||||
"taken": "Prise de vue :",
|
||||
"duration": "Durée :",
|
||||
"duration_begin": "Début :",
|
||||
"duration_end": "Fin :",
|
||||
"camera": "Matériel :",
|
||||
"button_delete": "Supprimer la séquence",
|
||||
"button_disable": "Masquer la séquence",
|
||||
"button_enable": "Afficher la séquence",
|
||||
"picture_selected": "{count} photo sélectionnée| {count} photos sélectionnées",
|
||||
"hours": "{count} heure| {count} heures",
|
||||
"minutes": "{count} minute| {count} minutes",
|
||||
"seconds": "{count} seconde| {count} secondes",
|
||||
"select_text": "Tout sélectionner",
|
||||
"unselect_text": "Tout désélectionner",
|
||||
"select_shift_text": "Sélectionnez plusieurs photos avec shift",
|
||||
"waiting_process": "Photo en cours de traitement",
|
||||
"broken": "Traitement de la photo en erreur",
|
||||
"no_image": "Aucune photo dans cette séquence"
|
||||
},
|
||||
"sequences": {
|
||||
"title": "Mes séquences de photos",
|
||||
"filter_date_upload_title": "Filtrer par date de versement :",
|
||||
"filter_date_title": "Filtrer par date de prise de vue :",
|
||||
"radio_date_placeholder": "2024-01-03",
|
||||
"radio_date": "date",
|
||||
"hide_button": "Masquer",
|
||||
"show_button": "Afficher",
|
||||
"delete_button": "Supprimer",
|
||||
"filter_date_reset_button": "Réinitialiser",
|
||||
"filter_date_close_button": "Fermer",
|
||||
"no_sequence_found": "Aucune séquence trouvée",
|
||||
"sequence_name": "Nom",
|
||||
"sequence_photos": "Photos",
|
||||
"sequence_date": "Prise de vue",
|
||||
"sequence_creation": "Versement",
|
||||
"sequence_creation_tooltip": "Filtre par date de versement",
|
||||
"sequence_date_tooltip": "Filtre par date de prise de vue",
|
||||
"reset_filter_button": "Réinitialiser les filtres",
|
||||
"filter_bbox_button": "Chercher dans cette zone",
|
||||
"sequence_status": "Statut",
|
||||
"sequence_published": "Publiée",
|
||||
"sequence_waiting": "En cours de publication",
|
||||
"sequence_hidden": "Masquée",
|
||||
"no_sequences_text": "Vous n'avez pas encore de photos publiées 😢",
|
||||
"button_upload": "Partager vos photos",
|
||||
"sequence_deleted": "La séquence a bien été supprimée"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Pourquoi contribuer à la base de photographies de Panoramax ?",
|
||||
"description": "Contribuer à Panoramax, c'est participer au développement d'un géo-commun, une ressource numérique souveraine, libre et réutilisable. Chaque photo géolocalisée publiée sur Panoramax est utilisable par tous et pour des usages variés, par exemple par une collectivité territoriale qui a besoin d'observer l’état de la voirie ou par un opérateur de télécommunications pour préparer une intervention.\n\nChaque contributeur peut envoyer ses séquences d'images, les modifier et les consulter tout comme l'ensemble des vues - 360° ou non - versées par la communauté. Le floutage obligatoire des visages et plaques d'immatriculation est automatisé sur la plateforme.",
|
||||
"alt_img_map": "Illustration d'une femme qui regarde une carte avec son smartphone geolocalisé",
|
||||
"card_photo1": "Des lieux visibles depuis la voie publique",
|
||||
"card_photo2": "Des photos publiées au format 360° ou non",
|
||||
"card_photo3": "Des photos facilement réutilisables",
|
||||
"card_photo4": "Une contribution en images facile et rapide",
|
||||
"card_alt_photo1": "Image qui représente un immeuble",
|
||||
"card_alt_photo2": "Image qui représente des photos 360 degrés",
|
||||
"card_alt_photo3": "Image qui représente une carte avec un pointeur",
|
||||
"card_alt_photo4": "Image qui représente un pointeur",
|
||||
"card_description1": "Toutes les photos prises depuis la voie publique sont concernées, dès lors qu'elles sont géolocalisées et vues du sol.",
|
||||
"card_description2": "Le format 360° n'est pas obligatoire : des photos prises via un smartphone suffisent, dates, lieux et format jpg sont les seuls pre-requis.",
|
||||
"card_description3": "Toutes les photos facilement accessible et réutilisables sans compte : via le site web ou une API standard (format STAC).",
|
||||
"card_description4": "Plusieurs outils sont mis à disposition pour faciliter les contributions dont une ligne de commande et une interface web.",
|
||||
"upload_subtitle": "Chargez vos images simplement en ligne",
|
||||
"upload_illustration_alt": "Illustration qui représente l'envoie de photo en ligne",
|
||||
"upload_description": "L'application web de Panoramax vous permet de déposer toutes vos photos de terrain au format jpg d'un simple clic. Aucune notion de programmation n'est nécessaire. Pour les envois en grand nombre, il est toutefois conseillé de faire appel à l'outil en ligne de commande",
|
||||
"upload_button": "+ Partager des photos",
|
||||
"command_line_subtitle": "L'outil en ligne de commande",
|
||||
"comment_install": "Installer l’outil en ligne de commande geovisio",
|
||||
"comment_upload": "Lancez la commande de versement d’images sur le dossier choisi",
|
||||
"description_terminal": "<a href='https://gitlab.com/panoramax/clients/cli' target='_blank' style='color:black'>L'outil en ligne de commande</a> vous permet de partager de grands volumes de photos. La procédure est simple et vous devez disposer <a target='_blank' href='https://www.python.org/downloads/' style='color:black'>de python (au moins la version 3.8)</a>.\n\nL’outil demandera vos informations de connexion avant l'import. Une fois les données chargées, un temps de traitement est nécessaire pour les rendre disponibles.",
|
||||
"terminal_install": "pip install geovisio_cli",
|
||||
"terminal_text": "geovisio upload --api-url {url} <DOSSIER_PHOTOS>",
|
||||
"button_copy": "Copier",
|
||||
"information_subtitle": "Ici, vos photos sont accessibles à tous : ",
|
||||
"information_text1": "Automatiquement floutées dans le respect de la législation.",
|
||||
"information_text2": "Les données déposées seront publiées sous {word}",
|
||||
"information_text3": "Sous forme «brute» pour des réutilisations variées (ex: préparation des chantiers).",
|
||||
"information_about_title": "Besoin de récupérer les données ?",
|
||||
"information_about_description": "Une API est mise à disposition pour récupérer toutes les données. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nRetrouvez sa documentation ici</a>\nLes données sont aussi exposées sous forme <a href='{docTiles}' target='_blank' style='color:#0a1f69'>de tuiles vectorielles</a>",
|
||||
"doc_subtitle": "Besoin d'aide pour contribuer à Panoramax ?",
|
||||
"doc_description": "Nous mettons à disposition l’ensemble de la documentation relative à Panoramax et vous pouvez accéder aux tutoriels sur le forum des géo-communs.",
|
||||
"doc_button": "Voir la documentation",
|
||||
"doc_illustration_alt": "Illustration représentant un personnage avec un feuillet de documents"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Contribuez à la base de photographies de Panoramax",
|
||||
"description": "Pour le versement d'un grand volume de photographies, l'outil en ligne de commande est plus adapté.",
|
||||
"know_more_button": "En savoir plus",
|
||||
"input_label": "Glissez vos images ici ou cliquez sur ",
|
||||
"import_word": "importer",
|
||||
"import_type": "Format JPEG uniquement",
|
||||
"subtitle_import": "Dépôt des images",
|
||||
"title_sequence": "Titre de ma séquence",
|
||||
"description_title_sequence": "Le titre d'une séquence est par défaut la date du jour. Vous pouvez, si vous le souhaitez le modifier ci-dessous.",
|
||||
"text_import": "Déposez ici vos fichiers jpg. Chaque image ou série d’images constitue une « séquence ». Vous pourrez ensuite les retrouver dans la section « mes images » et choisir de les masquer, les afficher ou les supprimer.",
|
||||
"subtitle_process": "Traitements de l'import",
|
||||
"uploading_process": "Envoi en cours…",
|
||||
"uploading_cancel": "Annuler l'envoi des photos",
|
||||
"cancel_message": "⚠️ Attention, le téléchargement sera interrompu si vous validez et la séquence sera supprimée.",
|
||||
"sequence_title": "Séquence du ",
|
||||
"error_upload": "Erreur de création de la séquence",
|
||||
"import": "Imports",
|
||||
"upload_pending": "Transfert en cours…",
|
||||
"images_count_text": "Images chargées",
|
||||
"no_img_text": "aucune image chargée actuellement",
|
||||
"upload_done": "Le chargement de la séquence est terminé",
|
||||
"upload_other_files": "{count} photo au mauvais format a été retirée de la liste| {count} photos au mauvais format ont été retirées de la liste",
|
||||
"sequence_link": "Accéder à cette séquence",
|
||||
"edit_title": "Modifier le titre",
|
||||
"edit_placeholder_input": "Modifier le titre de la séquence",
|
||||
"ok_button": "Valider",
|
||||
"pictures_error": "{count} photo n'a pas pu être chargée| {count} photos n'ont pas pu être chargées",
|
||||
"sequence_loading_information": "Une fois chargée, la séquence sera en traitement et accessible sur Panoramax dans les prochaines minutes.",
|
||||
"sequence_loaded_information": "La séquence est chargée et est en cours de traitement. Elle sera accessible sur Panoramax dans quelques minutes.",
|
||||
"leave_message": "⚠️ Attention, le téléchargement sera interrompu si vous quittez la page avant la fin.",
|
||||
"error_button": "Afficher les erreurs",
|
||||
"modal_error_title": "Liste des photos non chargés"
|
||||
},
|
||||
"ay11": {
|
||||
"title": "Déclaration d’accessibilité",
|
||||
"date": "Établie le 18 septembre 2023.",
|
||||
"introduction": "IGN s’engage à rendre son service accessible, conformément à l’article 47 de la loi n° 2005-102 du 11 février 2005.\n Cette déclaration d’accessibilité s’applique à Panoramax Instance IGN : https://panoramax.ign.fr",
|
||||
"subtitle_conformity": "État de conformité",
|
||||
"conformity_text": "Panoramax Instance IGN est non conforme avec le ",
|
||||
"conformity_text2": "Le site n’a encore pas été audité.",
|
||||
"subtitle_conformity2": "Contenus non accessibles",
|
||||
"subtitle_increase": "Amélioration et contact",
|
||||
"increase_text": "Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez\n contacter le responsable de Panoramax Instance IGN pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme.",
|
||||
"phone": "Téléphone : +33 14 398 84 61",
|
||||
"email_text": "E-mail :",
|
||||
"email": "signalement.ign@panoramax.fr",
|
||||
"address": "Adresse : IGN, Saint-Mandé",
|
||||
"increase_info": "Nous essayons de répondre dans les 5 jours ouvrés.",
|
||||
"subtitle_to_do": "Voie de recours",
|
||||
"to_do_text": "Cette procédure est à utiliser dans le cas suivant : vous avez signalé au responsable du site internet un défaut d’accessibilité qui vous\n empêche d’accéder à un contenu ou à un des services du portail et vous n’avez pas obtenu de réponse satisfaisante. \n vous pouvez :",
|
||||
"write_message": "Écrire un message au",
|
||||
"defenseur_droits": "Défenseur des droits",
|
||||
"contact": "Contacter",
|
||||
"contact_text": "le délégué du Défenseur des droits dans votre région",
|
||||
"send_letter": "Envoyer un courrier par la poste (gratuit, ne pas mettre de\n timbre):\n Défenseur des droits\n Libre réponse 71120 75342 Paris CEDEX 07",
|
||||
"end": "Cette déclaration d’accessibilité a été créé le\n 18 septembre 2023 grâce au",
|
||||
"generator_betagouv": "Générateur de Déclaration d’Accessibilité de BetaGouv"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,227 +1,230 @@
|
||||
{
|
||||
"general": {
|
||||
"title": "Panoramax-példány",
|
||||
"meta": {
|
||||
"title": "Panoramax-példány",
|
||||
"description": "Panoramax, szabad alternatíva a világ fotós feltérképezéséhez"
|
||||
},
|
||||
"header": {
|
||||
"login_text": "Kapcsolódás",
|
||||
"register_text": "Regisztráció",
|
||||
"contribute_text": "Miért működjön közre?",
|
||||
"viewer": "Néző",
|
||||
"my_account": "Saját fiók",
|
||||
"upload_text": "+ Fényképek megosztása",
|
||||
"sequences_text": "Saját fényképek",
|
||||
"alt_logo": "A példány logója",
|
||||
"alt_photos": "Képek ikon",
|
||||
"alt_information": "Felhasználó ikon",
|
||||
"alt_settings": "Paraméterek ikon",
|
||||
"alt_logout": "Kijelentkezés ikon",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Béta verzió",
|
||||
"logout_text": "Kijelentkezés",
|
||||
"my_information_text": "Saját adatok",
|
||||
"my_settings_text": "Saját beállítások",
|
||||
"burger_menu_aria_label_open": "A menü megjelenítése",
|
||||
"burger_menu_aria_label_closed": "A menü bezárása"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "A Panoramax felfedezése",
|
||||
"information_gitlab": "Forráskód megjelenítése",
|
||||
"gitlab_logo": "Gitlab logó",
|
||||
"ay11_text": "Akadálymentesítés: nem felel meg"
|
||||
},
|
||||
"error_text": "Hiba történt",
|
||||
"success_text": "Sikeres frissítés"
|
||||
"general": {
|
||||
"title": "Panoramax-példány",
|
||||
"meta": {
|
||||
"title": "Panoramax-példány",
|
||||
"description": "Panoramax, szabad alternatíva a világ fotós feltérképezéséhez"
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_mail": "?subject=⚠️ Report on picture {picId}&body=Hello, %0D%0A%0D%0A Problem on image (keep type of problem reported) : %0D%0A%0D%0A %0D%0A%0D%0A inappropriate content / lack of blurring on an element to be anonymized or blurred for security reasons / overblurring (too much blurring) %0D%0A%0D%0A Link to affected photo : {link} %0D%0A%0D%0A Details of affected elements (especially for blurring problems - what should be blurred or unblurred?) :",
|
||||
"report_button_text": "Fénykép jelentése",
|
||||
"sequence_title": "lásd a sorrendet",
|
||||
"open_fullscreen": "Teljes képernyős mód",
|
||||
"close_fullscreen": "Normál mód"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Saját tokenek",
|
||||
"setting_tooltip": "A token megjelenítése vagy elrejtése"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Közzétéve",
|
||||
"sequence_waiting": "Feldolgozás alatt",
|
||||
"sequence_hidden": "Rejtett",
|
||||
"sequence_form_title": "Szerkessze a címet",
|
||||
"hide_sequence_tooltip": "A sorozat elrejtése",
|
||||
"back_button": "Vissza a sorozatlistámhoz",
|
||||
"delete_sequence_tooltip": "A sorozat végleges törlése",
|
||||
"hide_photo_tooltip": "A kiválasztott fényképek elrejtése",
|
||||
"delete_photo_tooltip": "A kiválasztottt fényképek végleges törlése",
|
||||
"info_msg_maj": "Használja a SHIFT billentyűt sok kép kiválasztásához",
|
||||
"conf_pic_msg": "⚠️ A kiválasztott fényképek véglegesen elvesznek",
|
||||
"conf_sequence_msg": "⚠️ A kiválasztott sorozat véglegesen elvész",
|
||||
"button_panel_photos": "Fényképek kezelése",
|
||||
"button_panel_orientation": "Tájolás beállítása",
|
||||
"button_panel_sort": "Rendezési sorrend",
|
||||
"orientation_panel_title": "Az összes kép tájolásának beállítása a sorozatban",
|
||||
"orientation_panel_tooltip": "Húzza a kék dobozt a kívánt irányba",
|
||||
"orientation_input_label": "vagy módosítsa a szöget itt",
|
||||
"orientation_input_placeholder": "-180 és 180 közötti érték",
|
||||
"orientation_input_error_value": "Az értéknek -180 és 180 között kell lennie",
|
||||
"orientation_panel_button": "Pozíció ellenőrzése",
|
||||
"orientation_updated": "A tájolás megváltozott",
|
||||
"sort_updated": "A sorozat jól van rendezve",
|
||||
"sort_panel_title": "Szekvenciás rendezés beállítása",
|
||||
"sort_panel_settings": "Sorrend rendezése:",
|
||||
"sort_panel_settings_order": "Rendelés :",
|
||||
"sort_panel_settings_order_increase": "Növekvő",
|
||||
"sort_panel_settings_order_decrease": "Csökkenő",
|
||||
"sort_panel_check_gps": "GPS dátum",
|
||||
"sort_panel_check_file": "Fájl dátuma",
|
||||
"sort_panel_check_name": "Fájlnév",
|
||||
"created": "Feltöltés ideje:",
|
||||
"taken": "Elkészítés ideje:",
|
||||
"duration": "Hossz:",
|
||||
"duration_begin": "Kezdet:",
|
||||
"duration_end": "Vég:",
|
||||
"camera": "Kamera:",
|
||||
"button_delete": "Törlés szekvenciás",
|
||||
"button_disable": "Elrejtés szekvenciás",
|
||||
"button_enable": "Megjelenítés szekvenciás",
|
||||
"picture_selected": "{count} fénykép kiválasztva| {count} fénykép kiválasztva",
|
||||
"hours": "{count} óra| {count} óra",
|
||||
"minutes": "{count} perc| {count} perc",
|
||||
"seconds": "{count} másodperc| {count} másodperc",
|
||||
"select_text": "Kiválasztás",
|
||||
"unselect_text": "Kiválasztás törlése",
|
||||
"select_shift_text": "Több elemet a Shift segítségével választhat ki",
|
||||
"waiting_process": "A fénykép feldolgozás alatt áll",
|
||||
"broken": "Fénykép-feldolgozási hiba",
|
||||
"no_image": "Nincsenek fényképek ebben a sorozatban"
|
||||
},
|
||||
"sequences": {
|
||||
"title": "Saját fényképsorozatok",
|
||||
"filter_date_upload_title": "Szűrés feltöltés dátuma szerint :",
|
||||
"filter_date_title": "Szűrés forgatás dátuma szerint :",
|
||||
"radio_date_placeholder": "03/01/2024",
|
||||
"radio_date": "dátum",
|
||||
"hide_button": "Elrejt",
|
||||
"show_button": "Előadás",
|
||||
"delete_button": "Töröl",
|
||||
"filter_date_reset_button": "Visszaállítás",
|
||||
"filter_date_close_button": "Bezárás",
|
||||
"no_sequence_found": "Nem található felvétel",
|
||||
"sequence_name": "Név",
|
||||
"sequence_photos": "Fényképek",
|
||||
"sequence_date": "Elkészítés ideje",
|
||||
"sequence_creation": "Feltöltés ideje",
|
||||
"sequence_creation_tooltip": "Szűrés feltöltés dátuma szerint",
|
||||
"sequence_date_tooltip": "Szűrés forgatás dátuma szerint",
|
||||
"reset_filter_button": "Szűrők visszaállítása",
|
||||
"filter_bbox_button": "Keresés ezen a területen",
|
||||
"sequence_status": "Állapot",
|
||||
"sequence_published": "Közzétéve",
|
||||
"sequence_waiting": "Feldolgozás alatt",
|
||||
"sequence_hidden": "Rejtett",
|
||||
"no_sequences_text": "Még nincsenek közzétett fényképei 😢",
|
||||
"button_upload": "Fényképek feltöltése",
|
||||
"sequence_deleted": "A sorozat törlésre került"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Miért működjön közre a Panoramaxban?",
|
||||
"description": "A Panoramaxban való közreműködés azt jelenti, hogy részt vesz egy közös, független, szabad és újrafelhasználható digitális erőforrás fejlesztésében. A Panoramaxon található minden georeferált fénykép bárki által használható, számos célra, például egy önkormányzat megtekintheti az utai állapotát, vagy egy távközlési vállalat felkészülhet a beavatkozásaira.\n\nMinden közreműködő beküldheti a saját képsorozatait, módosíthatja és megnézheti azokat, ahogyan ezt teheti a közösség más tagjai által feltöltött képekkel is. Az arcok és rendszámtáblák kötelező kitakarását maga a platform automatizálja.",
|
||||
"alt_img_map": "Illusztráció egy nőről, aki egy térképet néz a földrajzi helymeghatározással rendelkező okostelefonján",
|
||||
"card_photo1": "Közútról látható helyek",
|
||||
"card_photo2": "Közzétett fényképek 360°-os vagy más formátumban",
|
||||
"card_photo3": "Könnyen újrafelhasználható fényképek",
|
||||
"card_photo4": "Képek gyors és egyszerű megosztása",
|
||||
"card_alt_photo1": "Egy épületet tartalmazó kép",
|
||||
"card_alt_photo2": "Egy 360°-ot megjelenítő kép",
|
||||
"card_alt_photo3": "Egy kép egy térképről mutatóval",
|
||||
"card_alt_photo4": "Egy mutatót ábrázoló kép",
|
||||
"card_description1": "Minden közútról készült kép elfogadható, ha az georeferált és a földről készült.",
|
||||
"card_description2": "A 360°-os képek nem kötelezők: az okostelefonnal készült képek is megfelelők. Az előfeltételek a dátum, a helyszín és a jpg formátum használata.",
|
||||
"card_description3": "Minden fénykép fiók nélkül is könnyedén elérhető és felhasználható: a weboldalon vagy egy szabványos API-n keresztül (STAC szabvány).",
|
||||
"card_description4": "Számos eszköz elérhető a közreműködések lehetővé tételéhez, köztük egy parancssoros és egy webes felület is.",
|
||||
"upload_subtitle": "Töltse fel egyszerűen a fényképeit",
|
||||
"upload_illustration_alt": "Online képfeltöltést ábrázoló illusztráció",
|
||||
"upload_description": "A Panoramax webalkalmazása lehetővé teszi, hogy egy gombnyomással feltöltse az összes fényképét JPG formátumban. Programozói készségek nem szükségesek. Sok kép esetén viszont a parancssoros eszköz használatát javasoljuk.",
|
||||
"upload_button": "+ Képek feltöltése",
|
||||
"command_line_subtitle": "Parancssoros eszköz",
|
||||
"comment_install": "A geovisio parancssoros eszköz telepítése",
|
||||
"comment_upload": "A képfeltöltési parancs indítása a kiválasztott mappán",
|
||||
"description_terminal": "<a href='https://gitlab.com/panoramax/clients/cli' target='_blank' style='color:black'>A parancssor</a> lehetővé teszi, hogy nagy számú képet osszon meg. A folyamat egyszerű, és <a target='_blank' href='https://www.python.org/downloads/' style='color:black'>Pythont (3.8-as vagy újabb verzió)</a> igényli.\n\nAz importálás előtt az eszköz bekéri a bejelentkezési adatait. Amint a képek felöltésre kerültek, azok közzététele előtt feldolgozási idő szükséges.",
|
||||
"terminal_install": "pip install geovisio_cli",
|
||||
"terminal_text": "geovisio upload --api-url {webcím} <FÉNYKÉPMAPPA>",
|
||||
"button_copy": "Másolás",
|
||||
"information_subtitle": "Itt a fényképek mindenki számára elérhetők: ",
|
||||
"information_text1": "Automatikusan kitakarva, a törvényi előírásoknak megfelelően.",
|
||||
"information_text2": "A feltöltött képek a következő alatt lesznek közzétéve: {word}",
|
||||
"information_text3": "Az eredeti formátumban és felbontásban, számos újrafeldolgozáshoz.",
|
||||
"information_about_title": "Hozzá kell férnie a fényképeihez?",
|
||||
"information_about_description": "Az API elérhető az összes metaadat és kép letöltéséhez. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nTudjon meg többet itt.</a>\nAz adatok <a href='{docTiles}' target='_blank' style='color:#0a1f69'>vektorcsempék</a> formájában is megjelennek.",
|
||||
"doc_subtitle": "Segítségre van szüksége a Panoramaxban történő közreműködéshez?",
|
||||
"doc_description": "A Panoramax dokumentációja elérhető tőlünk, oktatóanyagokat pedig a geo-commons fórumán találhat.",
|
||||
"doc_button": "A dokumentáció megtekintése",
|
||||
"doc_illustration_alt": "Illusztráció egy karakterről dokumentumokkal"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Közreműködés a Panoramax projektben",
|
||||
"description": "Nagy számú fényképhez a parancssoros eszköz jobban megfelelő.",
|
||||
"know_more_button": "További tudnivalók",
|
||||
"input_label": "Húzza ide a képeket, vagy kattintson a",
|
||||
"import_word": "feltöltésre",
|
||||
"import_type": "Csak JPEG formátum",
|
||||
"subtitle_import": "Képfeltöltés",
|
||||
"title_sequence": "Sorozat címe",
|
||||
"description_title_sequence": "Alapértelmezés szerint a sorozat cím a nap dátuma lesz. Ha akarja, itt szerkesztheti a címet.",
|
||||
"text_import": "Ide töltse fel a JPG-fájljait. Minden kép vagy képsorozat egy „sorozatot” alkot. Megtalálhatja azokat a „saját fényképek” szakaszban, és elrejtheti, megjelenítheti vagy törölheti azokat.",
|
||||
"subtitle_process": "Feltöltés feldolgozása",
|
||||
"uploading_process": "Feltöltés folyamatban…",
|
||||
"uploading_cancel": "Fényképek küldésének megszakítása",
|
||||
"cancel_message": "⚠️ Felhívjuk figyelmét, hogy a letöltés megszakad, ha érvényesíti, és a sorozat törlődik.",
|
||||
"sequence_title": "Sorozat ",
|
||||
"error_upload": "Sorozat létrehozási hiba",
|
||||
"import": "Feltöltések",
|
||||
"upload_pending": "Feltöltés folyamatban…",
|
||||
"images_count_text": "Feltöltött képek",
|
||||
"no_img_text": "még nem volt képfeltöltés",
|
||||
"upload_done": "A sorozat feltöltése elkészült",
|
||||
"sequence_link": "A sorozat megjelenítése",
|
||||
"edit_title": "A sorozat címének",
|
||||
"edit_placeholder_input": "A sorozat címének szerkesztése",
|
||||
"ok_button": "OK",
|
||||
"pictures_error": "{count} kép feltöltése nem sikerült| {count} kép feltöltése nem sikerült",
|
||||
"sequence_loading_information": "Amint feltöltötte, a sorozat feldolgozásra, majd közzétételre került a Panoramaxon (általában néhány perc múlva).",
|
||||
"sequence_loaded_information": "A sorozatok fel lettek töltve, és feldolgozás alatt vannak. Néhány perc múlva nyilvánosan elérhetőnek kellene lenniük a Panoramaxon.",
|
||||
"leave_message": "⚠️ FIGYELMEZTETÉS, a feltöltés meg fog szakadni, ha a végezte előtt hagyja el a lapot.",
|
||||
"error_button": "Hibák megjelenítése",
|
||||
"modal_error_title": "A hibában érintett képek"
|
||||
},
|
||||
"ay11": {
|
||||
"title": "Hozzáférhetőségi nyilatkozat",
|
||||
"date": "Létrehozva 2023. szeptember 18-án.",
|
||||
"introduction": "IGN s’engage à rendre son service accessible, conformément à l’article 47 de la loi n° 2005-102 du 11 février 2005.\n Cette déclaration d’accessibilité s’applique à Panoramax Instance IGN : https://panoramax.ign.fr",
|
||||
"subtitle_conformity": "État de conformité",
|
||||
"conformity_text": "Panoramax Instance IGN est non conforme avec le ",
|
||||
"conformity_text2": "Le site n’a encore pas été audité.",
|
||||
"subtitle_conformity2": "Contenus non accessibles",
|
||||
"subtitle_increase": "Amélioration et contact",
|
||||
"increase_text": "Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez\n contacter le responsable de Panoramax Instance IGN pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme.",
|
||||
"phone": "Téléphone : +33 14 398 84 61",
|
||||
"email_text": "E-mail :",
|
||||
"email": "signalement.ign@panoramax.fr",
|
||||
"address": "Adresse : IGN, Saint-Mandé",
|
||||
"increase_info": "Nous essayons de répondre dans les 5 jours ouvrés.",
|
||||
"subtitle_to_do": "Voie de recours",
|
||||
"to_do_text": "Cette procédure est à utiliser dans le cas suivant : vous avez signalé au responsable du site internet un défaut d’accessibilité qui vous\n empêche d’accéder à un contenu ou à un des services du portail et vous n’avez pas obtenu de réponse satisfaisante. \n vous pouvez :",
|
||||
"write_message": "Écrire un message au",
|
||||
"defenseur_droits": "Défenseur des droits",
|
||||
"contact": "Contacter",
|
||||
"contact_text": "le délégué du Défenseur des droits dans votre région",
|
||||
"send_letter": "Envoyer un courrier par la poste (gratuit, ne pas mettre de\n timbre):\n Défenseur des droits\n Libre réponse 71120 75342 Paris CEDEX 07",
|
||||
"end": "Cette déclaration d’accessibilité a été créé le\n 18 septembre 2023 grâce au",
|
||||
"generator_betagouv": "Générateur de Déclaration d’Accessibilité de BetaGouv"
|
||||
}
|
||||
"header": {
|
||||
"login_text": "Kapcsolódás",
|
||||
"register_text": "Regisztráció",
|
||||
"contribute_text": "Miért működjön közre?",
|
||||
"viewer": "Néző",
|
||||
"my_account": "Saját fiók",
|
||||
"upload_text": "+ Fényképek megosztása",
|
||||
"sequences_text": "Saját fényképek",
|
||||
"alt_logo": "A példány logója",
|
||||
"alt_photos": "Képek ikon",
|
||||
"alt_information": "Felhasználó ikon",
|
||||
"alt_settings": "Paraméterek ikon",
|
||||
"alt_logout": "Kijelentkezés ikon",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Béta verzió",
|
||||
"logout_text": "Kijelentkezés",
|
||||
"my_information_text": "Saját adatok",
|
||||
"my_settings_text": "Saját beállítások",
|
||||
"burger_menu_aria_label_open": "A menü megjelenítése",
|
||||
"burger_menu_aria_label_closed": "A menü bezárása"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "A Panoramax felfedezése",
|
||||
"information_gitlab": "Forráskód megjelenítése",
|
||||
"gitlab_logo": "Gitlab logó",
|
||||
"ay11_text": "Akadálymentesítés: nem felel meg"
|
||||
},
|
||||
"error_text": "Hiba történt",
|
||||
"success_text": "Sikeres frissítés"
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_mail": "?subject=⚠️ Report on picture {picId}&body=Hello, %0D%0A%0D%0A Problem on image (keep type of problem reported) : %0D%0A%0D%0A %0D%0A%0D%0A inappropriate content / lack of blurring on an element to be anonymized or blurred for security reasons / overblurring (too much blurring) %0D%0A%0D%0A Link to affected photo : {link} %0D%0A%0D%0A Details of affected elements (especially for blurring problems - what should be blurred or unblurred?) :",
|
||||
"report_button_text": "Fénykép jelentése",
|
||||
"sequence_title": "lásd a sorrendet",
|
||||
"open_fullscreen": "Teljes képernyős mód",
|
||||
"close_fullscreen": "Normál mód"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Saját tokenek",
|
||||
"setting_tooltip": "A token megjelenítése vagy elrejtése"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Közzétéve",
|
||||
"sequence_waiting": "Feldolgozás alatt",
|
||||
"sequence_hidden": "Rejtett",
|
||||
"sequence_form_title": "Szerkessze a címet",
|
||||
"sequence_tutorial_text": "⚠ A fájl kiválasztása megszakadt. Ha ez nem volt szándékos, akkor lehetséges, hogy az okostelefon nem kezeli megfelelően a fényképek küldését.\nA „Saját fájlok” (lásd az alábbi képet) segítségével kiválaszthatja a képeket, és megoldhatja ezt a problémát.",
|
||||
"sequence_tutorial_exif_text": "Ha a fotófeltöltési hibák a földrajzi helyhez kapcsolódnak, kérjük, győződjön meg arról, hogy a „Helycímkék” engedélyezve van a telefon kameráján (lásd az alábbi képeket).",
|
||||
"hide_sequence_tooltip": "A sorozat elrejtése",
|
||||
"back_button": "Vissza a sorozatlistámhoz",
|
||||
"delete_sequence_tooltip": "A sorozat végleges törlése",
|
||||
"hide_photo_tooltip": "A kiválasztott fényképek elrejtése",
|
||||
"delete_photo_tooltip": "A kiválasztottt fényképek végleges törlése",
|
||||
"info_msg_maj": "Használja a SHIFT billentyűt sok kép kiválasztásához",
|
||||
"conf_pic_msg": "⚠️ A kiválasztott fényképek véglegesen elvesznek",
|
||||
"conf_sequence_msg": "⚠️ A kiválasztott sorozat véglegesen elvész",
|
||||
"button_panel_photos": "Fényképek kezelése",
|
||||
"button_panel_orientation": "Tájolás beállítása",
|
||||
"button_panel_sort": "Rendezési sorrend",
|
||||
"orientation_panel_title": "Az összes kép tájolásának beállítása a sorozatban",
|
||||
"orientation_panel_tooltip": "Húzza a kék dobozt a kívánt irányba",
|
||||
"orientation_input_label": "vagy módosítsa a szöget itt",
|
||||
"orientation_input_placeholder": "-180 és 180 közötti érték",
|
||||
"orientation_input_error_value": "Az értéknek -180 és 180 között kell lennie",
|
||||
"orientation_panel_button": "Pozíció ellenőrzése",
|
||||
"orientation_updated": "A tájolás megváltozott",
|
||||
"sort_updated": "A sorozat jól van rendezve",
|
||||
"sort_panel_title": "Szekvenciás rendezés beállítása",
|
||||
"sort_panel_settings": "Sorrend rendezése:",
|
||||
"sort_panel_settings_order": "Rendelés :",
|
||||
"sort_panel_settings_order_increase": "Növekvő",
|
||||
"sort_panel_settings_order_decrease": "Csökkenő",
|
||||
"sort_panel_check_gps": "GPS dátum",
|
||||
"sort_panel_check_file": "Fájl dátuma",
|
||||
"sort_panel_check_name": "Fájlnév",
|
||||
"created": "Feltöltés ideje:",
|
||||
"taken": "Elkészítés ideje:",
|
||||
"duration": "Hossz:",
|
||||
"duration_begin": "Kezdet:",
|
||||
"duration_end": "Vég:",
|
||||
"camera": "Kamera:",
|
||||
"button_delete": "Törlés szekvenciás",
|
||||
"button_disable": "Elrejtés szekvenciás",
|
||||
"button_enable": "Megjelenítés szekvenciás",
|
||||
"picture_selected": "{count} fénykép kiválasztva| {count} fénykép kiválasztva",
|
||||
"hours": "{count} óra| {count} óra",
|
||||
"minutes": "{count} perc| {count} perc",
|
||||
"seconds": "{count} másodperc| {count} másodperc",
|
||||
"select_text": "Kiválasztás",
|
||||
"unselect_text": "Kiválasztás törlése",
|
||||
"select_shift_text": "Több elemet a Shift segítségével választhat ki",
|
||||
"waiting_process": "A fénykép feldolgozás alatt áll",
|
||||
"broken": "Fénykép-feldolgozási hiba",
|
||||
"no_image": "Nincsenek fényképek ebben a sorozatban"
|
||||
},
|
||||
"sequences": {
|
||||
"title": "Saját fényképsorozatok",
|
||||
"filter_date_upload_title": "Szűrés feltöltés dátuma szerint :",
|
||||
"filter_date_title": "Szűrés forgatás dátuma szerint :",
|
||||
"radio_date_placeholder": "03/01/2024",
|
||||
"radio_date": "dátum",
|
||||
"hide_button": "Elrejt",
|
||||
"show_button": "Előadás",
|
||||
"delete_button": "Töröl",
|
||||
"filter_date_reset_button": "Visszaállítás",
|
||||
"filter_date_close_button": "Bezárás",
|
||||
"no_sequence_found": "Nem található felvétel",
|
||||
"sequence_name": "Név",
|
||||
"sequence_photos": "Fényképek",
|
||||
"sequence_date": "Elkészítés ideje",
|
||||
"sequence_creation": "Feltöltés ideje",
|
||||
"sequence_creation_tooltip": "Szűrés feltöltés dátuma szerint",
|
||||
"sequence_date_tooltip": "Szűrés forgatás dátuma szerint",
|
||||
"reset_filter_button": "Szűrők visszaállítása",
|
||||
"filter_bbox_button": "Keresés ezen a területen",
|
||||
"sequence_status": "Állapot",
|
||||
"sequence_published": "Közzétéve",
|
||||
"sequence_waiting": "Feldolgozás alatt",
|
||||
"sequence_hidden": "Rejtett",
|
||||
"no_sequences_text": "Még nincsenek közzétett fényképei 😢",
|
||||
"button_upload": "Fényképek feltöltése",
|
||||
"sequence_deleted": "A sorozat törlésre került"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Miért működjön közre a Panoramaxban?",
|
||||
"description": "A Panoramaxban való közreműködés azt jelenti, hogy részt vesz egy közös, független, szabad és újrafelhasználható digitális erőforrás fejlesztésében. A Panoramaxon található minden georeferált fénykép bárki által használható, számos célra, például egy önkormányzat megtekintheti az utai állapotát, vagy egy távközlési vállalat felkészülhet a beavatkozásaira.\n\nMinden közreműködő beküldheti a saját képsorozatait, módosíthatja és megnézheti azokat, ahogyan ezt teheti a közösség más tagjai által feltöltött képekkel is. Az arcok és rendszámtáblák kötelező kitakarását maga a platform automatizálja.",
|
||||
"alt_img_map": "Illusztráció egy nőről, aki egy térképet néz a földrajzi helymeghatározással rendelkező okostelefonján",
|
||||
"card_photo1": "Közútról látható helyek",
|
||||
"card_photo2": "Közzétett fényképek 360°-os vagy más formátumban",
|
||||
"card_photo3": "Könnyen újrafelhasználható fényképek",
|
||||
"card_photo4": "Képek gyors és egyszerű megosztása",
|
||||
"card_alt_photo1": "Egy épületet tartalmazó kép",
|
||||
"card_alt_photo2": "Egy 360°-ot megjelenítő kép",
|
||||
"card_alt_photo3": "Egy kép egy térképről mutatóval",
|
||||
"card_alt_photo4": "Egy mutatót ábrázoló kép",
|
||||
"card_description1": "Minden közútról készült kép elfogadható, ha az georeferált és a földről készült.",
|
||||
"card_description2": "A 360°-os képek nem kötelezők: az okostelefonnal készült képek is megfelelők. Az előfeltételek a dátum, a helyszín és a jpg formátum használata.",
|
||||
"card_description3": "Minden fénykép fiók nélkül is könnyedén elérhető és felhasználható: a weboldalon vagy egy szabványos API-n keresztül (STAC szabvány).",
|
||||
"card_description4": "Számos eszköz elérhető a közreműködések lehetővé tételéhez, köztük egy parancssoros és egy webes felület is.",
|
||||
"upload_subtitle": "Töltse fel egyszerűen a fényképeit",
|
||||
"upload_illustration_alt": "Online képfeltöltést ábrázoló illusztráció",
|
||||
"upload_description": "A Panoramax webalkalmazása lehetővé teszi, hogy egy gombnyomással feltöltse az összes fényképét JPG formátumban. Programozói készségek nem szükségesek. Sok kép esetén viszont a parancssoros eszköz használatát javasoljuk.",
|
||||
"upload_button": "+ Képek feltöltése",
|
||||
"command_line_subtitle": "Parancssoros eszköz",
|
||||
"comment_install": "A geovisio parancssoros eszköz telepítése",
|
||||
"comment_upload": "A képfeltöltési parancs indítása a kiválasztott mappán",
|
||||
"description_terminal": "<a href='https://gitlab.com/panoramax/clients/cli' target='_blank' style='color:black'>A parancssor</a> lehetővé teszi, hogy nagy számú képet osszon meg. A folyamat egyszerű, és <a target='_blank' href='https://www.python.org/downloads/' style='color:black'>Pythont (3.8-as vagy újabb verzió)</a> igényli.\n\nAz importálás előtt az eszköz bekéri a bejelentkezési adatait. Amint a képek felöltésre kerültek, azok közzététele előtt feldolgozási idő szükséges.",
|
||||
"terminal_install": "pip install geovisio_cli",
|
||||
"terminal_text": "geovisio upload --api-url {webcím} <FÉNYKÉPMAPPA>",
|
||||
"button_copy": "Másolás",
|
||||
"information_subtitle": "Itt a fényképek mindenki számára elérhetők: ",
|
||||
"information_text1": "Automatikusan kitakarva, a törvényi előírásoknak megfelelően.",
|
||||
"information_text2": "A feltöltött képek a következő alatt lesznek közzétéve: {word}",
|
||||
"information_text3": "Az eredeti formátumban és felbontásban, számos újrafeldolgozáshoz.",
|
||||
"information_about_title": "Hozzá kell férnie a fényképeihez?",
|
||||
"information_about_description": "Az API elérhető az összes metaadat és kép letöltéséhez. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nTudjon meg többet itt.</a>\nAz adatok <a href='{docTiles}' target='_blank' style='color:#0a1f69'>vektorcsempék</a> formájában is megjelennek.",
|
||||
"doc_subtitle": "Segítségre van szüksége a Panoramaxban történő közreműködéshez?",
|
||||
"doc_description": "A Panoramax dokumentációja elérhető tőlünk, oktatóanyagokat pedig a geo-commons fórumán találhat.",
|
||||
"doc_button": "A dokumentáció megtekintése",
|
||||
"doc_illustration_alt": "Illusztráció egy karakterről dokumentumokkal"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Közreműködés a Panoramax projektben",
|
||||
"description": "Nagy számú fényképhez a parancssoros eszköz jobban megfelelő.",
|
||||
"know_more_button": "További tudnivalók",
|
||||
"input_label": "Húzza ide a képeket, vagy kattintson a",
|
||||
"import_word": "feltöltésre",
|
||||
"import_type": "Csak JPEG formátum",
|
||||
"subtitle_import": "Képfeltöltés",
|
||||
"title_sequence": "Sorozat címe",
|
||||
"description_title_sequence": "Alapértelmezés szerint a sorozat cím a nap dátuma lesz. Ha akarja, itt szerkesztheti a címet.",
|
||||
"text_import": "Ide töltse fel a JPG-fájljait. Minden kép vagy képsorozat egy „sorozatot” alkot. Megtalálhatja azokat a „saját fényképek” szakaszban, és elrejtheti, megjelenítheti vagy törölheti azokat.",
|
||||
"subtitle_process": "Feltöltés feldolgozása",
|
||||
"uploading_process": "Feltöltés folyamatban…",
|
||||
"uploading_cancel": "Fényképek küldésének megszakítása",
|
||||
"cancel_message": "⚠️ Felhívjuk figyelmét, hogy a letöltés megszakad, ha érvényesíti, és a sorozat törlődik.",
|
||||
"sequence_title": "Sorozat ",
|
||||
"error_upload": "Sorozat létrehozási hiba",
|
||||
"import": "Feltöltések",
|
||||
"upload_pending": "Feltöltés folyamatban…",
|
||||
"images_count_text": "Feltöltött képek",
|
||||
"no_img_text": "még nem volt képfeltöltés",
|
||||
"upload_done": "A sorozat feltöltése elkészült",
|
||||
"upload_other_files": "{count} rossz formátumú fényképet eltávolítottunk a listáról| {count} rossz formátumú fényképet eltávolítottunk a listáról",
|
||||
"sequence_link": "A sorozat megjelenítése",
|
||||
"edit_title": "A sorozat címének",
|
||||
"edit_placeholder_input": "A sorozat címének szerkesztése",
|
||||
"ok_button": "OK",
|
||||
"pictures_error": "{count} kép feltöltése nem sikerült| {count} kép feltöltése nem sikerült",
|
||||
"sequence_loading_information": "Amint feltöltötte, a sorozat feldolgozásra, majd közzétételre került a Panoramaxon (általában néhány perc múlva).",
|
||||
"sequence_loaded_information": "A sorozatok fel lettek töltve, és feldolgozás alatt vannak. Néhány perc múlva nyilvánosan elérhetőnek kellene lenniük a Panoramaxon.",
|
||||
"leave_message": "⚠️ FIGYELMEZTETÉS, a feltöltés meg fog szakadni, ha a végezte előtt hagyja el a lapot.",
|
||||
"error_button": "Hibák megjelenítése",
|
||||
"modal_error_title": "A hibában érintett képek"
|
||||
},
|
||||
"ay11": {
|
||||
"title": "Hozzáférhetőségi nyilatkozat",
|
||||
"date": "Létrehozva 2023. szeptember 18-án.",
|
||||
"introduction": "IGN s’engage à rendre son service accessible, conformément à l’article 47 de la loi n° 2005-102 du 11 février 2005.\n Cette déclaration d’accessibilité s’applique à Panoramax Instance IGN : https://panoramax.ign.fr",
|
||||
"subtitle_conformity": "État de conformité",
|
||||
"conformity_text": "Panoramax Instance IGN est non conforme avec le ",
|
||||
"conformity_text2": "Le site n’a encore pas été audité.",
|
||||
"subtitle_conformity2": "Contenus non accessibles",
|
||||
"subtitle_increase": "Amélioration et contact",
|
||||
"increase_text": "Si vous n’arrivez pas à accéder à un contenu ou à un service, vous pouvez\n contacter le responsable de Panoramax Instance IGN pour être orienté vers une alternative accessible ou obtenir le contenu sous une autre forme.",
|
||||
"phone": "Téléphone : +33 14 398 84 61",
|
||||
"email_text": "E-mail :",
|
||||
"email": "signalement.ign@panoramax.fr",
|
||||
"address": "Adresse : IGN, Saint-Mandé",
|
||||
"increase_info": "Nous essayons de répondre dans les 5 jours ouvrés.",
|
||||
"subtitle_to_do": "Voie de recours",
|
||||
"to_do_text": "Cette procédure est à utiliser dans le cas suivant : vous avez signalé au responsable du site internet un défaut d’accessibilité qui vous\n empêche d’accéder à un contenu ou à un des services du portail et vous n’avez pas obtenu de réponse satisfaisante. \n vous pouvez :",
|
||||
"write_message": "Écrire un message au",
|
||||
"defenseur_droits": "Défenseur des droits",
|
||||
"contact": "Contacter",
|
||||
"contact_text": "le délégué du Défenseur des droits dans votre région",
|
||||
"send_letter": "Envoyer un courrier par la poste (gratuit, ne pas mettre de\n timbre):\n Défenseur des droits\n Libre réponse 71120 75342 Paris CEDEX 07",
|
||||
"end": "Cette déclaration d’accessibilité a été créé le\n 18 septembre 2023 grâce au",
|
||||
"generator_betagouv": "Générateur de Déclaration d’Accessibilité de BetaGouv"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ describe('Template', () => {
|
||||
expect(wrapper.vm.text).toBe(null)
|
||||
expect(wrapper.vm.textPictureType).toBe(null)
|
||||
expect(wrapper.vm.textSecondPart).toBe(null)
|
||||
expect(wrapper.vm.accept).toBe('')
|
||||
})
|
||||
test('should have all the props filled', () => {
|
||||
const wrapper = shallowMount(InputUpload, {
|
||||
@@ -23,11 +22,9 @@ describe('Template', () => {
|
||||
props: {
|
||||
text: 'my text',
|
||||
textPictureType: 'my textPictureType',
|
||||
textSecondPart: 'my textSecondPart',
|
||||
accept: 'accept'
|
||||
textSecondPart: 'my textSecondPart'
|
||||
}
|
||||
})
|
||||
expect(wrapper.html()).contains('accept="accept"')
|
||||
expect(wrapper.html()).contains('my text')
|
||||
expect(wrapper.html()).contains('my textSecondPart')
|
||||
expect(wrapper.html()).contains('my textPictureType')
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { it, describe, expect, vi } from 'vitest'
|
||||
import { shallowMount, mount } from '@vue/test-utils'
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
import UploadPicturesView from '../../../views/UploadPicturesView.vue'
|
||||
import i18n from '../config'
|
||||
import InputUpload from '../../../components/InputUpload.vue'
|
||||
@@ -8,11 +9,22 @@ import * as createASequence from '@/views/utils/upload/request'
|
||||
import { formatDate } from '../../../utils/dates'
|
||||
import * as sortByName from '../../../views/utils/upload/index'
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
component: { template: '<div></div>' },
|
||||
onBeforeRouteLeave: vi.fn()
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
describe('Template', () => {
|
||||
it('should render the view with the input upload and the good wordings', () => {
|
||||
const wrapper = shallowMount(UploadPicturesView, {
|
||||
global: {
|
||||
plugins: [i18n],
|
||||
plugins: [i18n, router],
|
||||
mocks: {
|
||||
$t: (msg) => msg
|
||||
}
|
||||
@@ -28,7 +40,7 @@ describe('Template', () => {
|
||||
it('should trigger to uploadPictures', async () => {
|
||||
const wrapper = mount(UploadPicturesView, {
|
||||
global: {
|
||||
plugins: [i18n],
|
||||
plugins: [i18n, router],
|
||||
mocks: {
|
||||
$t: (msg) => msg
|
||||
},
|
||||
@@ -38,10 +50,16 @@ describe('Template', () => {
|
||||
}
|
||||
})
|
||||
const sortByNameMock = vi.spyOn(sortByName, 'sortByName')
|
||||
sortByNameMock.mockReturnValue([{}, {}])
|
||||
sortByNameMock.mockReturnValue([
|
||||
{ type: 'image/jpeg' },
|
||||
{ type: 'image/jpeg' }
|
||||
])
|
||||
const wrapperInputUpload = wrapper.findComponent(InputUpload)
|
||||
await wrapperInputUpload.trigger('trigger')
|
||||
await wrapperInputUpload.vm.$emit('trigger', [{}, {}])
|
||||
await wrapperInputUpload.vm.$emit('trigger', [
|
||||
{ type: 'image/jpeg' },
|
||||
{ type: 'image/jpeg' }
|
||||
])
|
||||
expect(wrapper.html()).contains('class="wrapper-uploading"')
|
||||
expect(wrapper.html()).contains('pages.upload.uploading_process')
|
||||
expect(wrapper.html()).contains('class="uploading-img"')
|
||||
@@ -57,7 +75,7 @@ describe('Template', () => {
|
||||
template: '<div></div>'
|
||||
}
|
||||
},
|
||||
plugins: [i18n],
|
||||
plugins: [i18n, router],
|
||||
mocks: {
|
||||
$t: (msg) => msg
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ import type {
|
||||
ResponseUserSequenceInterface
|
||||
} from './interfaces/MySequenceView'
|
||||
const { cookies } = useCookies()
|
||||
const { t, locale } = useI18n()
|
||||
const { t } = useI18n()
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const sequenceStore = useSequenceStore()
|
||||
@@ -281,7 +281,6 @@ onMounted(async () => {
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
isLoading.value = false
|
||||
})
|
||||
onUnmounted(() => {
|
||||
document.removeEventListener('keydown', (evt) => {
|
||||
@@ -846,7 +845,7 @@ async function patchOrDeleteCollectionItems(reqType: string): Promise<void> {
|
||||
top: 0;
|
||||
right: 0;
|
||||
z-index: 0;
|
||||
width: 85vw;
|
||||
width: 90vw;
|
||||
background-color: var(--white);
|
||||
border-left: toRem(0.1) solid var(--grey-pale);
|
||||
}
|
||||
@@ -865,7 +864,7 @@ async function patchOrDeleteCollectionItems(reqType: string): Promise<void> {
|
||||
width: auto;
|
||||
}
|
||||
.button-close {
|
||||
left: calc(15vw - #{toRem(3)});
|
||||
left: calc(10vw - #{toRem(3.5)});
|
||||
right: initial;
|
||||
}
|
||||
}
|
||||
@@ -878,7 +877,7 @@ async function patchOrDeleteCollectionItems(reqType: string): Promise<void> {
|
||||
.entry-panel {
|
||||
padding-right: toRem(1);
|
||||
padding-left: toRem(1);
|
||||
padding-top: toRem(0);
|
||||
padding-top: toRem(2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,19 @@
|
||||
@triggerNewText="setNewSequenceTitle"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="isUploadCanceled" class="entry-tutorial">
|
||||
<p>{{ $t('pages.sequence.sequence_tutorial_text') }}</p>
|
||||
<img
|
||||
src="@/assets/images/android-upload-tutorial.jpg"
|
||||
alt=""
|
||||
class="img-upload-tutorial first-tutorial-image"
|
||||
/>
|
||||
<img
|
||||
src="@/assets/images/android-upload-tutorial-files.jpg"
|
||||
alt=""
|
||||
class="img-upload-tutorial"
|
||||
/>
|
||||
</div>
|
||||
<form>
|
||||
<div class="wrapper-form">
|
||||
<InputUpload
|
||||
@@ -62,6 +75,7 @@
|
||||
:text-picture-type="$t('pages.upload.import_type')"
|
||||
data-displayModal="input-add-pictures"
|
||||
@trigger="addPictures"
|
||||
@triggerCancel="isUploadCanceled = true"
|
||||
/>
|
||||
<div v-else class="wrapper-uploading">
|
||||
<img
|
||||
@@ -93,6 +107,7 @@
|
||||
:upload-error="uploadError"
|
||||
:uploaded-sequence="uploadedSequence"
|
||||
:pictures-count="picturesCount"
|
||||
:other-files-count="otherFilesCount"
|
||||
@triggerModal="displayModal"
|
||||
/>
|
||||
<div v-else class="wrapper-no-img">
|
||||
@@ -148,9 +163,11 @@ import { deleteACollection } from '@/views/utils/sequence/request'
|
||||
const { authConf } = authConfig()
|
||||
const { t } = useI18n()
|
||||
let pictures = ref<File[] | []>([])
|
||||
let otherFilesCount = ref<number>(0)
|
||||
let picturesCount = ref<number>(0)
|
||||
let isLoading = ref<boolean>(false)
|
||||
let isLoaded = ref<boolean>(false)
|
||||
let isUploadCanceled = ref<boolean>(false)
|
||||
let uploadError = ref<string | undefined>(undefined)
|
||||
let informationCardDisplayed = ref<boolean>(true)
|
||||
let uploadedSequence = ref<SequenceInterface | null>(null)
|
||||
@@ -188,12 +205,13 @@ onBeforeRouteLeave((to, from, next) => {
|
||||
}
|
||||
next()
|
||||
})
|
||||
const inputIsDisplayed = computed<boolean | null>(
|
||||
() =>
|
||||
const inputIsDisplayed = computed<boolean | null>(() => {
|
||||
return (
|
||||
!isLoading.value ||
|
||||
isLoaded.value ||
|
||||
(uploadedSequence.value && !uploadedSequence.value.pictures)
|
||||
)
|
||||
)
|
||||
})
|
||||
function setNewSequenceTitle(value: string | null): void {
|
||||
newSequenceTitle.value = value
|
||||
}
|
||||
@@ -223,8 +241,12 @@ function displayModal(): void {
|
||||
if (modal.value) modal.value.show()
|
||||
}
|
||||
function addPictures(value: FileList): void {
|
||||
isUploadCanceled.value = false
|
||||
const files = sortByName([].slice.call(value))
|
||||
pictures.value = files
|
||||
const jpegFiles = files.filter((e) => e.type === 'image/jpeg')
|
||||
const otherFiles = files.filter((e) => e.type !== 'image/jpeg')
|
||||
otherFilesCount.value = otherFiles.length
|
||||
pictures.value = jpegFiles
|
||||
picturesCount.value = pictures.value.length
|
||||
picturesUploadingSize.value = 0
|
||||
picturesToUploadSize.value = 0
|
||||
@@ -242,11 +264,13 @@ async function cancelUpload(): Promise<void> {
|
||||
}
|
||||
}
|
||||
async function uploadPicture(): Promise<void> {
|
||||
if (!pictures.value || !pictures.value.length) {
|
||||
return
|
||||
}
|
||||
isLoaded.value = false
|
||||
isLoading.value = true
|
||||
if (!pictures.value || !pictures.value.length) {
|
||||
isLoaded.value = true
|
||||
isLoading.value = false
|
||||
return
|
||||
}
|
||||
picturesToUploadSizeText()
|
||||
uploadedSequence.value = null
|
||||
const picturesToUpload = [...pictures.value]
|
||||
@@ -408,6 +432,9 @@ h3 {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.entry-tutorial {
|
||||
display: none;
|
||||
}
|
||||
@media (max-width: toRem(76.8)) {
|
||||
.section {
|
||||
display: none;
|
||||
@@ -440,5 +467,22 @@ h3 {
|
||||
.uploading-img {
|
||||
height: toRem(10);
|
||||
}
|
||||
.entry-tutorial {
|
||||
display: block;
|
||||
@include text(s-regular);
|
||||
color: var(--red);
|
||||
background-color: var(--blue-pale);
|
||||
border-radius: toRem(1);
|
||||
padding: toRem(1.5);
|
||||
margin-bottom: toRem(2);
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
.img-upload-tutorial {
|
||||
width: calc(50% - #{toRem(0.5)});
|
||||
border-radius: toRem(1);
|
||||
}
|
||||
.first-tutorial-image {
|
||||
margin-right: toRem(1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -3,6 +3,7 @@ import { defineConfig, loadEnv } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import eslintPlugin from 'vite-plugin-eslint'
|
||||
import { createHtmlPlugin } from 'vite-plugin-html'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default ({ mode }) => {
|
||||
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) }
|
||||
@@ -10,14 +11,7 @@ export default ({ mode }) => {
|
||||
server: {
|
||||
host: true,
|
||||
port: 5173,
|
||||
strictPort: true,
|
||||
hmr:
|
||||
mode == 'development'
|
||||
? {
|
||||
overlay: false,
|
||||
clientPort: 5173
|
||||
}
|
||||
: false
|
||||
strictPort: true
|
||||
},
|
||||
base: '/',
|
||||
plugins: [
|
||||
|
||||
Reference in New Issue
Block a user