adds remark icons, some style fixes
This commit is contained in:
parent
aa99247fbb
commit
31362d166c
@ -1,14 +1,17 @@
|
||||
<template>
|
||||
<div class="navbar">
|
||||
<div class="locale-changer">
|
||||
<select v-model="$i18n.locale">
|
||||
<option v-for="locale in $i18n.availableLocales" :key="`locale-${locale}`" :value="locale">{{ locale }}</option>
|
||||
</select>
|
||||
<div>
|
||||
<div class="locale-changer">
|
||||
<v-select v-model="$i18n.locale" :items="$i18n.availableLocales" dense></v-select>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<v-tabs>
|
||||
<v-tab to="/search">Search</v-tab>
|
||||
</v-tabs>
|
||||
</div>
|
||||
<nav>
|
||||
<RouterLink to="/search">Search</RouterLink>
|
||||
</nav>
|
||||
</div>
|
||||
<hr/>
|
||||
<main>
|
||||
<RouterView />
|
||||
</main>
|
||||
@ -35,13 +38,23 @@ export default {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-align: center;
|
||||
color: #2c3e50;
|
||||
margin-top: 60px;
|
||||
}
|
||||
.navbar {
|
||||
display:inline-flex;
|
||||
background-color:grey;
|
||||
width:100%;
|
||||
}
|
||||
.navbar>* {
|
||||
padding:10px;
|
||||
margin-left:10px;
|
||||
position:relative;
|
||||
height:80px;
|
||||
width:100px;
|
||||
}
|
||||
.navbar>*>.locale-changer {
|
||||
position:absolute;
|
||||
bottom:0px;
|
||||
}
|
||||
.navbar>*>.v-tabs {
|
||||
position:absolute;
|
||||
bottom:22px;
|
||||
}
|
||||
</style>
|
||||
|
||||
122
front/bahnui-front/src/assets/icons/boarding-ramp.svg
Normal file
122
front/bahnui-front/src/assets/icons/boarding-ramp.svg
Normal file
@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
sodipodi:docname="boarding-ramp.svg"
|
||||
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="true"
|
||||
inkscape:zoom="12.583333"
|
||||
inkscape:cx="27.97351"
|
||||
inkscape:cy="21.695364"
|
||||
inkscape:window-width="1368"
|
||||
inkscape:window-height="842"
|
||||
inkscape:window-x="-6"
|
||||
inkscape:window-y="1073"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
id="grid1"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="1"
|
||||
spacingy="1"
|
||||
empcolor="#3f3fff"
|
||||
empopacity="0.25098039"
|
||||
color="#3f3fff"
|
||||
opacity="0.1254902"
|
||||
empspacing="4"
|
||||
dotted="false"
|
||||
gridanglex="30"
|
||||
gridanglez="30"
|
||||
visible="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<rect
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.5;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5"
|
||||
width="42"
|
||||
height="42"
|
||||
x="3"
|
||||
y="3"
|
||||
rx="5"
|
||||
ry="5" />
|
||||
<g
|
||||
id="g9"
|
||||
transform="translate(4,-3.666296)">
|
||||
<circle
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1"
|
||||
cx="16"
|
||||
cy="28"
|
||||
r="6.6662965" />
|
||||
<path
|
||||
id="circle6"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5"
|
||||
d="m 28,33 h -3 v -5 c 0,-4.970563 -4.029437,-9 -9,-9 H 13 V 9.6662965 h -3"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 13,19 v 3"
|
||||
id="path6" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 25,27 H 22.666296"
|
||||
id="path7"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 28,35.666296 H 8"
|
||||
id="path11"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 32,3 V 45"
|
||||
id="path8" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 3,40 h 25 v 5"
|
||||
id="path9"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<rect
|
||||
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect10"
|
||||
width="9"
|
||||
height="16"
|
||||
x="36"
|
||||
y="12" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 36,3 v 4 h 9"
|
||||
id="path10" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 28,32 4,4"
|
||||
id="path2" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
119
front/bahnui-front/src/assets/icons/no-bicycle-conveyance.svg
Normal file
119
front/bahnui-front/src/assets/icons/no-bicycle-conveyance.svg
Normal file
@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
sodipodi:docname="no-bicycle-conveyance.svg"
|
||||
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="true"
|
||||
inkscape:zoom="6.2916665"
|
||||
inkscape:cx="-4.6092716"
|
||||
inkscape:cy="38.304637"
|
||||
inkscape:window-width="1368"
|
||||
inkscape:window-height="842"
|
||||
inkscape:window-x="-6"
|
||||
inkscape:window-y="1073"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
id="grid1"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="1"
|
||||
spacingy="1"
|
||||
empcolor="#3f3fff"
|
||||
empopacity="0.25098039"
|
||||
color="#3f3fff"
|
||||
opacity="0.1254902"
|
||||
empspacing="4"
|
||||
dotted="false"
|
||||
gridanglex="30"
|
||||
gridanglez="30"
|
||||
visible="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g5"
|
||||
transform="matrix(1.3332593,0,0,1.3332593,-0.66529661,-17.998334)"
|
||||
style="stroke-width:1.12506247;stroke-dasharray:none">
|
||||
<circle
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.12506247;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path1"
|
||||
cx="10"
|
||||
cy="35"
|
||||
r="5" />
|
||||
<circle
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.12506247;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="circle1"
|
||||
cx="27"
|
||||
cy="35"
|
||||
r="5" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 10,35 6,-12 h 1"
|
||||
id="path2"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 14,27 5,8 h 8 l -5,-8"
|
||||
id="path3"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 19,35 23,25"
|
||||
id="path4" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 21,25 h 3"
|
||||
id="path5" />
|
||||
</g>
|
||||
<rect
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.5;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="rect5"
|
||||
width="42"
|
||||
height="42"
|
||||
x="3"
|
||||
y="3"
|
||||
rx="5"
|
||||
ry="5" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 3,41 41,3.0000001"
|
||||
id="path57"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 7,45 45,7"
|
||||
id="path58"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 4,44 44,4.0000001"
|
||||
id="path59"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@ -5,24 +5,26 @@
|
||||
<div class="leg" v-for="leg in connection.legs" :key="connection.legs.indexOf(leg)" :class="leg.walking ? 'walking' : null" :style="{backgroundColor:getTimeColor(leg.arrival), background:getGradient(leg.departure, leg.arrival)}" >
|
||||
<div class="linename" >
|
||||
<div class="linenameinner" :style="{backgroundColor:getLineColors(leg)[1], color:getLineColors(leg)[0]}">{{ getRouteNumber(leg) }}</div>
|
||||
<div class="linenameinner" :style="{backgroundColor:getLineColors(leg)[1], color:getLineColors(leg)[0]}">{{ leg.direction }}</div>
|
||||
<div class="linenameinner" v-if="isLarge" :style="{backgroundColor:getLineColors(leg)[1], color:getLineColors(leg)[0]}">{{ leg.direction }}</div>
|
||||
</div>
|
||||
<div class="lineinfo">
|
||||
<div class="station" >{{ leg.origin.name }}<br/>{{ timeWithDelay(leg.departure, leg.departureDelay) }}<p v-if="leg.departurePlatform"> Gleis {{ leg.departurePlatform }} </p></div>
|
||||
<div class="line">
|
||||
<div class="line" v-if="isLarge">
|
||||
<p class="zugnummer">{{ leg.line?.fahrtNr }}</p>
|
||||
<p class="operator" v-if="!getOperatorLogo(leg.line?.operator)">{{ leg.line?.operator?.name }}</p>
|
||||
<img class="operator-logo" :src="getOperatorLogo(leg.line?.operator)" v-if="getOperatorLogo(leg.line?.operator)">
|
||||
</div>
|
||||
<div class="station">{{ leg.destination.name }}<br/>{{ timeWithDelay(leg.arrival, leg.arrivalDelay) }} <p v-if="leg.arrivalPlatform">Gleis {{ leg.arrivalPlatform }}</p></div>
|
||||
</div>
|
||||
<div class="displaywide">
|
||||
<div class="displaywide" v-if="isLarge">
|
||||
<div v-for="remark in leg.remarks" :key="leg.remarks.indexOf(remark)">
|
||||
<img class="remark-icon" :src="getIconForRemark(remark)" v-if="getIconForRemark(remark)" :title="$t('routing.remarks.'+remark.code)">
|
||||
</div>
|
||||
</div>
|
||||
<div v-for="remark in leg.remarks" :key="leg.remarks.indexOf(remark)">
|
||||
<p v-if="!getIconForRemark(remark)">{{remark.text}}</p>
|
||||
<div v-if="isLarge">
|
||||
<div v-for="remark in leg.remarks" :key="leg.remarks.indexOf(remark)">
|
||||
<p v-if="!getIconForRemark(remark)">{{remark.text}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
</div>
|
||||
@ -48,6 +50,7 @@
|
||||
return {
|
||||
from: {name:"", id:null},
|
||||
to: {name:"", id:null},
|
||||
isLarge: true,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -101,6 +104,7 @@
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
flex: 1;
|
||||
min-width: 500px;
|
||||
}
|
||||
.journey > div{
|
||||
margin: 40px;
|
||||
@ -108,7 +112,7 @@
|
||||
.station {
|
||||
margin: 4px;
|
||||
display: inline-block;
|
||||
width:150px;
|
||||
width:130px;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
.line {
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
class="inputTextField"
|
||||
></v-select>
|
||||
<v-text-field
|
||||
v-model="date.value"
|
||||
:active="date.menu"
|
||||
v-model="formattedDate"
|
||||
:label="$t('search.fields.date')"
|
||||
prepend-icon="mdi mdi-calendar-month"
|
||||
readonly
|
||||
@ -73,7 +73,7 @@
|
||||
transition="scale-transition"
|
||||
>
|
||||
<div v-if="from.menu">
|
||||
<div v-for="choice in from.choices" :key="from.choices.indexOf(choice)" @click="chooseFrom(choice)">
|
||||
<div class="selectItem" v-for="choice in from.choices" :key="from.choices.indexOf(choice)" @click="chooseFrom(choice)">
|
||||
{{ choice.name }}
|
||||
</div>
|
||||
</div>
|
||||
@ -94,13 +94,13 @@
|
||||
transition="scale-transition"
|
||||
>
|
||||
<div v-if="to.menu">
|
||||
<div v-for="choice in to.choices" :key="to.choices.indexOf(choice)" @click="chooseTo(choice)">
|
||||
<div class="selectItem" v-for="choice in to.choices" :key="to.choices.indexOf(choice)" @click="chooseTo(choice)">
|
||||
{{ choice.name }}
|
||||
</div>
|
||||
</div>
|
||||
</v-menu>
|
||||
</v-text-field>
|
||||
<v-btn @click="searchConnection()">find connection</v-btn>
|
||||
<v-btn @click="searchConnection()">{{$t("search.buttons.searchConnection")}}</v-btn>
|
||||
</div>
|
||||
<routing v-if="showRouting" :connections="connections" :isMobile="isMobile"></routing>
|
||||
</template>
|
||||
@ -137,7 +137,7 @@
|
||||
toName : "",
|
||||
connections: [],
|
||||
showRouting: false,
|
||||
time: {value:new Date().toLocaleTimeString("de"), menu:false},
|
||||
time: {value:new Date().toLocaleTimeString("de", {hour: '2-digit', minute:'2-digit'}), menu:false},
|
||||
date: {value:new Date(), menu:false},
|
||||
services: services,
|
||||
selectedService: services[0].id,
|
||||
@ -149,10 +149,10 @@
|
||||
return this.isMobile ? "displaytall" : "displaywide";
|
||||
},
|
||||
searchStationFrom() {
|
||||
client.get("/searchStation", {params: {text: this.fromName, service:this.selectedService}}).then(res => this.from = {name: res.data.name, id: res.data.id});
|
||||
client.get("/searchStation", {params: {text: this.fromName, service:this.selectedService}}).then(res => this.chooseFrom(res.data));
|
||||
},
|
||||
searchStationTo() {
|
||||
client.get("/searchStation", {params: {text: this.toName, service:this.selectedService}}).then(res => this.to = {name: res.data.name, id: res.data.id});
|
||||
client.get("/searchStation", {params: {text: this.toName, service:this.selectedService}}).then(res => this.chooseTo(res.data));
|
||||
},
|
||||
searchConnection() {
|
||||
if (this.from.id && this.to.id){
|
||||
@ -173,12 +173,9 @@
|
||||
if (this.from.menu){
|
||||
let time = Date.now()
|
||||
this.from.update = time;
|
||||
console.log("timeLoadChoicesFrom")
|
||||
let timer = setInterval(() => {
|
||||
if (time == this.from.update){
|
||||
this.loadChoicesFrom();
|
||||
} else {
|
||||
console.log("nicht laden")
|
||||
}
|
||||
clearInterval(timer);
|
||||
}, 500);
|
||||
@ -192,8 +189,6 @@
|
||||
let timer = setInterval(() => {
|
||||
if (time == this.to.update){
|
||||
this.loadChoicesTo();
|
||||
} else {
|
||||
console.log("nicht laden")
|
||||
}
|
||||
clearInterval(timer);
|
||||
}, 500);
|
||||
@ -219,6 +214,11 @@
|
||||
alert("testAlert")
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
formattedDate() {
|
||||
return this.date.value.toLocaleDateString("de");
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
fromName: function() {
|
||||
this.timeLoadChoicesFrom();
|
||||
@ -226,6 +226,11 @@
|
||||
toName: function() {
|
||||
this.timeLoadChoicesTo();
|
||||
},
|
||||
selectedService: function() {
|
||||
this.searchStationFrom();
|
||||
this.searchStationTo();
|
||||
},
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@ -257,6 +262,11 @@
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.selectItem{
|
||||
margin-top:10px;
|
||||
background-color:white;
|
||||
cursor: pointer;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Raveo-display-bold";
|
||||
src: url("../assets/Raveo Display Bold.woff2") format("opentype");
|
||||
|
||||
@ -4,11 +4,11 @@ let remarkfunctions = {
|
||||
return (null);
|
||||
} else if (remark.code === "55"){
|
||||
return new URL('../assets/icons/55.svg', import.meta.url);
|
||||
} else if (remark.code === "wifi"){
|
||||
} else if (remark.code === "wifi" || remark.code === "WF"){
|
||||
return new URL('../assets/icons/wifi.svg', import.meta.url);
|
||||
} else if (remark.code === "air-conditioned"){
|
||||
return new URL('../assets/icons/air-conditioned.svg', import.meta.url);
|
||||
} else if (remark.code === "barrier-free-vehicle"){
|
||||
} else if (remark.code === "barrier-free-vehicle" || remark.code === "EA" || remark.code === "RZ" || remark.code === "OB"){
|
||||
return new URL('../assets/icons/barrier-free-vehicle.svg', import.meta.url);
|
||||
} else if (remark.code === "compulsory-reservation"){
|
||||
return new URL('../assets/icons/compulsory-reservation.svg', import.meta.url);
|
||||
@ -16,14 +16,18 @@ let remarkfunctions = {
|
||||
return new URL('../assets/icons/on-board-restaurant.svg', import.meta.url);
|
||||
} else if (remark.code === "power-sockets"){
|
||||
return new URL('../assets/icons/power-sockets.svg', import.meta.url);
|
||||
} else if (remark.code === "wheelchair-space"){
|
||||
} else if (remark.code === 'wheelchairs-space' || remark.code === "RO"){
|
||||
return new URL('../assets/icons/wheelchair-space.svg', import.meta.url);
|
||||
} else if (remark.code === "bicycle-conveyance"){
|
||||
} else if (remark.code === "bicycle-conveyance" || remark.code === "FK"){
|
||||
return new URL('../assets/icons/bicycle-conveyance.svg', import.meta.url);
|
||||
} else if (remark.code === "bicycle-conveyance-reservation"){
|
||||
} else if (remark.code === "bicycle-conveyance-reservation" || remark.code === "FR"){
|
||||
return new URL('../assets/icons/bicycle-conveyance-reservation.svg', import.meta.url);
|
||||
} else if (remark.code === "2nd-class-only"){
|
||||
} else if (remark.code === "2nd-class-only" || remark.code === "J2" || remark.code === "K2"){
|
||||
return new URL('../assets/icons/2nd-class-only.svg', import.meta.url);
|
||||
} else if (remark.code === "boarding-ramp" || remark.code === "EF"){
|
||||
return new URL('../assets/icons/boarding-ramp.svg', import.meta.url);
|
||||
} else if (remark.code === "no-bicycle-conveyance"){
|
||||
return new URL('../assets/icons/no-bicycle-conveyance.svg', import.meta.url);
|
||||
|
||||
} else {
|
||||
return null;
|
||||
|
||||
@ -17,6 +17,9 @@
|
||||
}
|
||||
},
|
||||
"routing":{
|
||||
"text":{
|
||||
"track":"Gleis"
|
||||
},
|
||||
"remarks":{
|
||||
"bicycle-conveyance":"Fahrradmitnahme möglich",
|
||||
"bicycle-conveyance-reservation":"Fahrradmitnahme reservierungspflichtig",
|
||||
@ -29,7 +32,23 @@
|
||||
"compulsary-reservation":"Reservierungspflicht",
|
||||
"2nd-class-only":"Nur 2. Klasse",
|
||||
"RZ":"Rollstuhlgerechter Einstieg",
|
||||
"on-board-restaurant":"Boardrestaurant vorhanden"
|
||||
"on-board-restaurant":"Boardrestaurant vorhanden",
|
||||
"EA":"Behindertengerechte Ausstattung",
|
||||
"FM": "Fahrkartenautomat im Fahrzeug",
|
||||
"boarding-ramp": "Einstieghilfe im Fahrzeug",
|
||||
"no-bicycle-conveyance": "Einstieghilfe im Fahrzeug",
|
||||
"OB": "Niederflurfahrzeug",
|
||||
"RO": "Rollstuhlstellplatz",
|
||||
"OA": "Rollstuhlstellplatz, Voranmeldung unter +43 5 1717",
|
||||
"EF": "Fahrzeuggebundene Einstieghilfe",
|
||||
"OC": "Rollstuhltaugliches WC",
|
||||
"FK": "Fahrradmitnahme möglich",
|
||||
"K2": "Nur 2. Klasse",
|
||||
"J2": "in Sitzwagen nur 2. Klasse",
|
||||
"SB": "Zustieg nur mit gültiger Fahrkarte",
|
||||
"WV": "WLAN verfügbar",
|
||||
"fC": "Kleinbus, Fahrtanmeldung bei Gruppen ab 10 Personen unter gruppen.vmobil.at",
|
||||
"FR":"Fahrradmitnahme reservierungspflichtig"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -17,6 +17,9 @@
|
||||
}
|
||||
},
|
||||
"routing":{
|
||||
"text":{
|
||||
"track":"Track"
|
||||
},
|
||||
"remarks":{
|
||||
"bicycle-conveyance":"bicycles allowed",
|
||||
"bicycle-conveyance-reservation":"bicycles need reservation",
|
||||
|
||||
54
front/bahnui-front/src/locales/fr.json
Normal file
54
front/bahnui-front/src/locales/fr.json
Normal file
@ -0,0 +1,54 @@
|
||||
{
|
||||
"global":{
|
||||
"option":{
|
||||
"mobile": "mobile"
|
||||
}
|
||||
},
|
||||
"search":{
|
||||
"fields":{
|
||||
"service":"service",
|
||||
"date":"date",
|
||||
"time":"heure",
|
||||
"from":"de",
|
||||
"to":"à"
|
||||
},
|
||||
"buttons":{
|
||||
"searchConnection":"rechercher"
|
||||
}
|
||||
},
|
||||
"routing":{
|
||||
"text":{
|
||||
"track":"voie"
|
||||
},
|
||||
"remarks":{
|
||||
"bicycle-conveyance":"Fahrradmitnahme möglich",
|
||||
"bicycle-conveyance-reservation":"Fahrradmitnahme reservierungspflichtig",
|
||||
"power-sockets":"Steckdosen für Laptops vorhanden",
|
||||
"barrier-free-vehicle":"Behindertengerechtes Fahrzeug",
|
||||
"wheelchairs-space":"Rollstuhlplatz vorhanden",
|
||||
"air-conditioned":"klimatisiertes Fahrzeug",
|
||||
"55":"Rauchen verboten",
|
||||
"wifi":"WLAN vorhanden",
|
||||
"compulsary-reservation":"Reservierungspflicht",
|
||||
"2nd-class-only":"Nur 2. Klasse",
|
||||
"RZ":"Rollstuhlgerechter Einstieg",
|
||||
"on-board-restaurant":"Boardrestaurant vorhanden",
|
||||
"EA":"Behindertengerechte Ausstattung",
|
||||
"FM": "Fahrkartenautomat im Fahrzeug",
|
||||
"boarding-ramp": "Einstieghilfe im Fahrzeug",
|
||||
"no-bicycle-conveyance": "Einstieghilfe im Fahrzeug",
|
||||
"OB": "Niederflurfahrzeug",
|
||||
"RO": "Rollstuhlstellplatz",
|
||||
"OA": "Rollstuhlstellplatz, Voranmeldung unter +43 5 1717",
|
||||
"EF": "Fahrzeuggebundene Einstieghilfe",
|
||||
"OC": "Rollstuhltaugliches WC",
|
||||
"FK": "Fahrradmitnahme möglich",
|
||||
"K2": "Nur 2. Klasse",
|
||||
"J2": "in Sitzwagen nur 2. Klasse",
|
||||
"SB": "Zustieg nur mit gültiger Fahrkarte",
|
||||
"WV": "WLAN verfügbar",
|
||||
"fC": "Kleinbus, Fahrtanmeldung bei Gruppen ab 10 Personen unter gruppen.vmobil.at",
|
||||
"FR":"Fahrradmitnahme reservierungspflichtig"
|
||||
}
|
||||
}
|
||||
}
|
||||
54
front/bahnui-front/src/locales/ua.json
Normal file
54
front/bahnui-front/src/locales/ua.json
Normal file
@ -0,0 +1,54 @@
|
||||
{
|
||||
"global":{
|
||||
"option":{
|
||||
"mobile": "mobile"
|
||||
}
|
||||
},
|
||||
"search":{
|
||||
"fields":{
|
||||
"service":"service",
|
||||
"date":"дата",
|
||||
"time":"час",
|
||||
"from":"від",
|
||||
"to":"в"
|
||||
},
|
||||
"buttons":{
|
||||
"searchConnection":"rechercher"
|
||||
}
|
||||
},
|
||||
"routing":{
|
||||
"text":{
|
||||
"track":"Gleis"
|
||||
},
|
||||
"remarks":{
|
||||
"bicycle-conveyance":"Fahrradmitnahme möglich",
|
||||
"bicycle-conveyance-reservation":"Fahrradmitnahme reservierungspflichtig",
|
||||
"power-sockets":"Steckdosen für Laptops vorhanden",
|
||||
"barrier-free-vehicle":"Behindertengerechtes Fahrzeug",
|
||||
"wheelchairs-space":"Rollstuhlplatz vorhanden",
|
||||
"air-conditioned":"klimatisiertes Fahrzeug",
|
||||
"55":"Rauchen verboten",
|
||||
"wifi":"WLAN vorhanden",
|
||||
"compulsary-reservation":"Reservierungspflicht",
|
||||
"2nd-class-only":"Nur 2. Klasse",
|
||||
"RZ":"Rollstuhlgerechter Einstieg",
|
||||
"on-board-restaurant":"Boardrestaurant vorhanden",
|
||||
"EA":"Behindertengerechte Ausstattung",
|
||||
"FM": "Fahrkartenautomat im Fahrzeug",
|
||||
"boarding-ramp": "Einstieghilfe im Fahrzeug",
|
||||
"no-bicycle-conveyance": "Einstieghilfe im Fahrzeug",
|
||||
"OB": "Niederflurfahrzeug",
|
||||
"RO": "Rollstuhlstellplatz",
|
||||
"OA": "Rollstuhlstellplatz, Voranmeldung unter +43 5 1717",
|
||||
"EF": "Fahrzeuggebundene Einstieghilfe",
|
||||
"OC": "Rollstuhltaugliches WC",
|
||||
"FK": "Fahrradmitnahme möglich",
|
||||
"K2": "Nur 2. Klasse",
|
||||
"J2": "in Sitzwagen nur 2. Klasse",
|
||||
"SB": "Zustieg nur mit gültiger Fahrkarte",
|
||||
"WV": "WLAN verfügbar",
|
||||
"fC": "Kleinbus, Fahrtanmeldung bei Gruppen ab 10 Personen unter gruppen.vmobil.at",
|
||||
"FR":"Fahrradmitnahme reservierungspflichtig"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -12,6 +12,8 @@ import SearchBahn from './components/search.vue'
|
||||
import { createI18n } from 'vue-i18n'
|
||||
import de from "./locales/de.json";
|
||||
import en from "./locales/en.json";
|
||||
import fr from "./locales/fr.json";
|
||||
import ua from "./locales/ua.json";
|
||||
|
||||
const app = createApp(App)
|
||||
|
||||
@ -31,7 +33,7 @@ const vuetify = createVuetify({
|
||||
const i18n = createI18n({
|
||||
locale: "en",
|
||||
fallbackLocale: "en",
|
||||
messages: { de, en },
|
||||
messages: { de, en, fr, ua },
|
||||
})
|
||||
|
||||
app.use(vuetify).use(router).use(i18n).mount('#app')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user