mirror of
https://github.com/Spythere/pojazdownik.git
synced 2026-05-03 05:18:10 +00:00
bump to 1.7.4; added new categories to number gen & showing rules
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pojazdownik",
|
"name": "pojazdownik",
|
||||||
"version": "1.7.3",
|
"version": "1.7.4",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,77 +1,102 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="number-generator tab">
|
<div class="number-generator tab">
|
||||||
<div class="tab_header">
|
<div class="tab_header">
|
||||||
<h2>{{ $t("numgen.title") }}</h2>
|
<h2>{{ $t('numgen.title') }}</h2>
|
||||||
|
<h3>{{ $t('numgen.subtitle') }}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab_content">
|
<div class="tab_content">
|
||||||
<div class="options">
|
<div class="category-select">
|
||||||
<select v-model="chosenCategory" @change="randomizeTrainNumber()">
|
<label for="category"> {{ $t('numgen.train-category') }}</label>
|
||||||
|
<select id="category" v-model="chosenCategory" @change="randomizeTrainNumber()">
|
||||||
<option :value="null" disabled>
|
<option :value="null" disabled>
|
||||||
{{ $t("numgen.train-category") }}
|
{{ $t('numgen.train-category') }}
|
||||||
</option>
|
</option>
|
||||||
<option
|
<option v-for="(_, category) in genData.categoriesRules" :key="category" :value="category">
|
||||||
v-for="(_, category) in genData.categories"
|
|
||||||
:key="category"
|
|
||||||
:value="category"
|
|
||||||
>
|
|
||||||
{{ $t(`numgen.categories.${category}`) }}
|
{{ $t(`numgen.categories.${category}`) }}
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
<select v-model="beginRegionName" @change="randomizeTrainNumber()">
|
<div class="regions-select">
|
||||||
<option :value="null" disabled>
|
<div>
|
||||||
{{ $t("numgen.start-region") }}
|
<label for="begin-region"> {{ $t('numgen.start-region') }}</label>
|
||||||
</option>
|
<select id="begin-region" v-model="beginRegionName" @change="randomizeTrainNumber()">
|
||||||
<option
|
<option :value="null" disabled>
|
||||||
v-for="(_, name) in genData.regionNumbers"
|
{{ $t('numgen.start-region') }}
|
||||||
:key="name"
|
</option>
|
||||||
:value="name"
|
<option v-for="(_, name) in genData.regionNumbers" :key="name" :value="name">
|
||||||
>
|
{{ name }}
|
||||||
{{ name }}
|
</option>
|
||||||
</option>
|
</select>
|
||||||
</select>
|
</div>
|
||||||
|
|
||||||
<select v-model="endRegionName" @change="randomizeTrainNumber()">
|
<div>
|
||||||
<option :value="null" disabled>{{ $t("numgen.end-region") }}</option>
|
<label for="end-region"> {{ $t('numgen.end-region') }}</label>
|
||||||
<option
|
<select id="end-region" v-model="endRegionName" @change="randomizeTrainNumber()">
|
||||||
v-for="(_, name) in genData.regionNumbers"
|
<option :value="null" disabled>{{ $t('numgen.end-region') }}</option>
|
||||||
:key="name"
|
<option v-for="(_, name) in genData.regionNumbers" :key="name" :value="name">
|
||||||
:value="name"
|
{{ name }}
|
||||||
>
|
</option>
|
||||||
{{ name }}
|
</select>
|
||||||
</option>
|
</div>
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="generated-number" @click="copyNumber">
|
<div class="generated-number" @click="copyNumber">
|
||||||
<span v-if="trainNumber">
|
<span v-if="trainNumber">
|
||||||
{{ $t("numgen.number-info") }}
|
{{ $t('numgen.number-info') }}
|
||||||
<b class="text--accent">{{ trainNumber }}</b>
|
<b class="text--accent">{{ trainNumber }}</b>
|
||||||
</span>
|
</span>
|
||||||
<span v-else>{{ $t("numgen.warning") }}</span>
|
<span v-else>{{ $t('numgen.warning') }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div v-if="chosenCategory">
|
<div class="category-rules" v-if="chosenCategory && categoryRules && trainNumber">
|
||||||
Current numbering rules: {{ $t(`numgen.rules.${chosenCategory}`) }};
|
<!-- First & second digit (the same regions) -->
|
||||||
|
<div v-if="beginRegionName && endRegionName && beginRegionName == endRegionName">
|
||||||
|
<b>Dwie pierwsze cyfry:</b> z puli
|
||||||
|
<b class="text--accent">{{ genData.sameRegions[beginRegionName].join(', ') }}</b>
|
||||||
|
dla obszaru {{ beginRegionName }}
|
||||||
|
</div>
|
||||||
|
|
||||||
<span v-if="beginRegionName && endRegionName">
|
<!-- First & second digit (different regions) -->
|
||||||
<span v-if="beginRegionName == endRegionName">
|
<div v-else>
|
||||||
pierwsze dwie cyfry:
|
<div>
|
||||||
{{ genData.sameRegions[beginRegionName].join(', ') }}
|
<b>
|
||||||
(numer w obrębie obszaru {{ beginRegionName }})
|
Pierwsza cyfra: <span class="text--accent">{{ trainNumber[0] }}</span>
|
||||||
</span>
|
</b>
|
||||||
|
<span v-if="beginRegionName"> dla początkowego obszaru konstrukcyjnego {{ beginRegionName }}</span>
|
||||||
|
<span v-else>wybierz początkowy obszar konstrukcyjny</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<span v-else>
|
<div>
|
||||||
pierwsza cyfra: {{ genData.regionNumbers[beginRegionName] }}; druga cyfra:
|
<b>
|
||||||
{{ genData.regionNumbers[endRegionName] }}
|
Druga cyfra: <span class="text--accent">{{ trainNumber[1] }}</span>
|
||||||
</span>
|
</b>
|
||||||
</span>
|
<span v-if="endRegionName"> dla końcowego obszaru konstrukcyjnego {{ endRegionName }}</span>
|
||||||
</div> -->
|
<span v-else>wybierz początkowy obszar konstrukcyjny</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Third digit (non-passenger only) -->
|
||||||
|
<div v-if="categoryRules[0] != null">
|
||||||
|
<b>
|
||||||
|
Trzecia cyfra: <span class="text--accent">{{ categoryRules[0] }}</span>
|
||||||
|
</b>
|
||||||
|
dla kategorii {{ chosenCategory }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<b> {{ categoryRules[1]?.length == 3 ? 'Trzy' : 'Dwie' }} ostatnie cyfry:</b>
|
||||||
|
z przedziału
|
||||||
|
<b class="text--accent">{{ categoryRules[1] }}-{{ categoryRules[2] }}</b>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
<div class="tab_links">
|
<div class="tab_links">
|
||||||
<a :href="$t('numgen.td2-wiki-link')" target="_blank">
|
<a :href="$t('numgen.td2-wiki-link')" target="_blank">
|
||||||
{{ $t("numgen.td2-wiki") }}
|
{{ $t('numgen.td2-wiki') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -79,10 +104,13 @@
|
|||||||
|
|
||||||
<div class="tab_actions">
|
<div class="tab_actions">
|
||||||
<button class="btn" @click="randomizeTrainNumber(true)">
|
<button class="btn" @click="randomizeTrainNumber(true)">
|
||||||
{{ $t("numgen.action-random-region") }}
|
{{ $t('numgen.action-random-region') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<button class="btn" @click="randomizeTrainNumber(true)">LOSUJ KATEGORIĘ</button>
|
||||||
|
|
||||||
<button class="btn" @click="randomizeTrainNumber(false)">
|
<button class="btn" @click="randomizeTrainNumber(false)">
|
||||||
{{ $t("numgen.action-random-number") }}
|
{{ $t('numgen.action-random-number') }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -90,14 +118,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Ref, ref } from "vue";
|
import { Ref, ref } from 'vue';
|
||||||
import { useI18n } from "vue-i18n";
|
import { useI18n } from 'vue-i18n';
|
||||||
|
|
||||||
import genData from "../../constants/numberGeneratorData.json";
|
import genData from '../../constants/numberGeneratorData.json';
|
||||||
|
import { computed } from 'vue';
|
||||||
|
|
||||||
const i18n = useI18n();
|
const i18n = useI18n();
|
||||||
type RegionName = keyof typeof genData.regionNumbers;
|
type RegionName = keyof typeof genData.regionNumbers;
|
||||||
type Category = keyof typeof genData.categories;
|
type Category = keyof typeof genData.categoriesRules;
|
||||||
|
|
||||||
const beginRegionName = ref(null) as Ref<RegionName | null>;
|
const beginRegionName = ref(null) as Ref<RegionName | null>;
|
||||||
const endRegionName = ref(null) as Ref<RegionName | null>;
|
const endRegionName = ref(null) as Ref<RegionName | null>;
|
||||||
@@ -108,31 +137,31 @@ const trainNumber = ref(null) as Ref<string | null>;
|
|||||||
const copyNumber = () => {
|
const copyNumber = () => {
|
||||||
if (trainNumber.value) {
|
if (trainNumber.value) {
|
||||||
navigator.clipboard.writeText(trainNumber.value);
|
navigator.clipboard.writeText(trainNumber.value);
|
||||||
alert(i18n.t("numgen.alert"));
|
alert(i18n.t('numgen.alert'));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const categoryRules = computed(() => {
|
||||||
|
if (!chosenCategory.value) return null;
|
||||||
|
|
||||||
|
return genData.categoriesRules[chosenCategory.value];
|
||||||
|
});
|
||||||
|
|
||||||
const randomizeTrainNumber = (randomizeRegions = false) => {
|
const randomizeTrainNumber = (randomizeRegions = false) => {
|
||||||
// if (categoryRules.value == null) return;
|
// if (categoryRules.value == null) return;
|
||||||
|
|
||||||
const regionKeys = Object.keys(genData.regionNumbers);
|
const regionKeys = Object.keys(genData.regionNumbers);
|
||||||
|
|
||||||
if (beginRegionName.value == null || randomizeRegions)
|
if (beginRegionName.value == null || randomizeRegions) beginRegionName.value = regionKeys[(regionKeys.length * Math.random()) << 0] as RegionName;
|
||||||
beginRegionName.value = regionKeys[
|
|
||||||
(regionKeys.length * Math.random()) << 0
|
|
||||||
] as RegionName;
|
|
||||||
|
|
||||||
if (endRegionName.value == null || randomizeRegions)
|
if (endRegionName.value == null || randomizeRegions) endRegionName.value = regionKeys[(regionKeys.length * Math.random()) << 0] as RegionName;
|
||||||
endRegionName.value = regionKeys[
|
|
||||||
(regionKeys.length * Math.random()) << 0
|
|
||||||
] as RegionName;
|
|
||||||
|
|
||||||
let number = "";
|
let number = '';
|
||||||
|
|
||||||
|
// Two first numbers (begin & end regions)
|
||||||
if (beginRegionName.value == endRegionName.value) {
|
if (beginRegionName.value == endRegionName.value) {
|
||||||
const sameRegionsNumbers = genData.sameRegions[beginRegionName.value!];
|
const sameRegionsNumbers = genData.sameRegions[beginRegionName.value!];
|
||||||
const randRegionNumber =
|
const randRegionNumber = sameRegionsNumbers[Math.floor(Math.random() * sameRegionsNumbers.length)];
|
||||||
sameRegionsNumbers[Math.floor(Math.random() * sameRegionsNumbers.length)];
|
|
||||||
number += randRegionNumber.toString();
|
number += randRegionNumber.toString();
|
||||||
} else {
|
} else {
|
||||||
const beginRegionNumber = genData.regionNumbers[beginRegionName.value!];
|
const beginRegionNumber = genData.regionNumbers[beginRegionName.value!];
|
||||||
@@ -147,49 +176,63 @@ const randomizeTrainNumber = (randomizeRegions = false) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chosenCategory.value == null) chosenCategory.value = "EI";
|
// Choose default category if it's not chosen
|
||||||
|
if (chosenCategory.value == null) chosenCategory.value = 'EI';
|
||||||
|
|
||||||
const rulesArray = genData.categories[chosenCategory.value]
|
// Get category rules
|
||||||
.split(";")
|
const [thirdNumber, minRange, maxRange] = categoryRules.value!;
|
||||||
.map((r) => ({
|
|
||||||
index: r.split(":")[0],
|
|
||||||
rule: r.split(":")[1],
|
|
||||||
nums: Number(r.split(":")[2] || "1"),
|
|
||||||
}));
|
|
||||||
|
|
||||||
rulesArray.forEach((r) => {
|
// Third number
|
||||||
const range = r.rule.split("-");
|
number += thirdNumber ?? '';
|
||||||
|
|
||||||
if (range.length == 1) number += r.rule;
|
// Remaining numbers
|
||||||
else {
|
const rangeNums = minRange!.length;
|
||||||
const [minRange, maxRange] = range;
|
const randRange = Math.floor(Math.random() * (Number(maxRange) - Number(minRange)) + Number(minRange)).toString();
|
||||||
const randRange = Math.floor(
|
const leadingZeros = new Array(Math.abs(randRange.length - rangeNums)).fill('0').join('');
|
||||||
Math.random() * (Number(maxRange) - Number(minRange)) +
|
|
||||||
Number(minRange),
|
|
||||||
).toString();
|
|
||||||
|
|
||||||
number +=
|
number += `${leadingZeros}${randRange}`;
|
||||||
new Array(Math.abs(randRange.length - r.nums)).fill("0").join("") +
|
|
||||||
randRange;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
trainNumber.value = number;
|
trainNumber.value = number;
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "../../styles/tab.scss";
|
@import '../../styles/tab.scss';
|
||||||
@import "../../styles/global.scss";
|
@import '../../styles/global.scss';
|
||||||
|
|
||||||
.options {
|
label {
|
||||||
display: grid;
|
display: block;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
font-weight: bold;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-select {
|
||||||
|
select {
|
||||||
|
width: auto;
|
||||||
|
min-width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.regions-select {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
|
|
||||||
|
div {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.generated-number {
|
.generated-number {
|
||||||
@@ -204,14 +247,19 @@ const randomizeTrainNumber = (randomizeRegions = false) => {
|
|||||||
background-color: $secondaryColor;
|
background-color: $secondaryColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.category-rules {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
.tab_actions {
|
.tab_actions {
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: repeat(3, 1fr);
|
||||||
margin: 0.5em 0;
|
margin: 0.5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab_links {
|
.tab_links {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
margin: 0.25em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: $breakpointMd) {
|
@media screen and (max-width: $breakpointMd) {
|
||||||
@@ -221,8 +269,20 @@ const randomizeTrainNumber = (randomizeRegions = false) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: $breakpointSm) {
|
@media screen and (max-width: $breakpointSm) {
|
||||||
.options select {
|
.regions-select {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.regions-select select {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.category-select select {
|
||||||
|
min-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-rules {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -470,7 +470,7 @@ export default defineComponent({
|
|||||||
ul {
|
ul {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
height: 550px;
|
max-height: 500px;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul > li {
|
ul > li {
|
||||||
|
|||||||
@@ -1,37 +1,59 @@
|
|||||||
{
|
{
|
||||||
"regionNumbers": {
|
"regionNumbers": {
|
||||||
"Warszawa": 1,
|
"Warszawa (1)": 1,
|
||||||
"Lublin": 2,
|
"Lublin (2)": 2,
|
||||||
"Kraków": 3,
|
"Kraków (3)": 3,
|
||||||
"Sosnowiec": 4,
|
"Sosnowiec (4)": 4,
|
||||||
"Gdańsk": 5,
|
"Gdańsk (5)": 5,
|
||||||
"Wrocław": 6,
|
"Wrocław (6)": 6,
|
||||||
"Poznań": 7,
|
"Poznań (7)": 7,
|
||||||
"Szczecin": 8,
|
"Szczecin (8)": 8,
|
||||||
"Rezerwa": 9
|
"Rezerwa (9)": 9
|
||||||
},
|
},
|
||||||
"sameRegions": {
|
"sameRegions": {
|
||||||
"Losowy": [
|
"Losowy": [
|
||||||
10, 11, 19, 91, 93, 97, 99, 20, 22, 29, 30, 33, 39, 40, 44, 49, 94, 50,
|
10, 11, 19, 91, 93, 97, 99, 20, 22, 29, 30, 33, 39, 40, 44, 49, 94, 50, 55, 59, 90, 95, 96, 66, 60, 69, 77, 70, 79, 88, 80, 89, 92, 98
|
||||||
55, 59, 90, 95, 96, 66, 60, 69, 77, 70, 79, 88, 80, 89, 92, 98
|
|
||||||
],
|
],
|
||||||
"Warszawa": [10, 11, 19, 91, 93, 97, 99],
|
"Warszawa (1)": [10, 11, 19, 91, 93, 97, 99],
|
||||||
"Lublin": [20, 22, 29],
|
"Lublin (2)": [20, 22, 29],
|
||||||
"Kraków": [30, 33, 39],
|
"Kraków (3)": [30, 33, 39],
|
||||||
"Sosnowiec": [40, 44, 49, 94],
|
"Sosnowiec (4)": [40, 44, 49, 94],
|
||||||
"Gdańsk": [50, 55, 59, 90, 95, 96],
|
"Gdańsk (5)": [50, 55, 59, 90, 95, 96],
|
||||||
"Wrocław": [66, 60, 69],
|
"Wrocław (6)": [66, 60, 69],
|
||||||
"Poznań": [77, 70, 79],
|
"Poznań (7)": [77, 70, 79],
|
||||||
"Szczecin": [88, 80],
|
"Szczecin (8)": [88, 80],
|
||||||
"Rezerwa": [89, 92, 98]
|
"Rezerwa (9)": [89, 92, 98]
|
||||||
},
|
},
|
||||||
"categories": {
|
"categoriesRules": {
|
||||||
"EI": "2:00-99:2",
|
"EI": [null, "00", "99"],
|
||||||
"MP/RP": "2:050-169:3",
|
"EC": [null, "001", "049"],
|
||||||
"RO": "2:200-999:3",
|
"EN": [null, "001", "049"],
|
||||||
"PW": "2:6;3:0-899:3",
|
|
||||||
"TM": "2:4;3:0-899:3",
|
"RO": [null, "200", "999"],
|
||||||
"TK": "2:3;3:0-899:3",
|
"RP": [null, "050", "169"],
|
||||||
"LT": "2:5;3:0-899:3"
|
"RM": [null, "200", "999"],
|
||||||
|
"RA": [null, "200", "999"],
|
||||||
|
|
||||||
|
"MO": [null, "200", "999"],
|
||||||
|
"MP": [null, "050", "169"],
|
||||||
|
"MM": [null, "001", "049"],
|
||||||
|
"MH": [null, "170", "199"],
|
||||||
|
|
||||||
|
"PW": ["6", "000", "899"],
|
||||||
|
"PX": ["6", "000", "899"],
|
||||||
|
|
||||||
|
"TC": ["0", "000", "899"],
|
||||||
|
"TG": ["1", "000", "899"],
|
||||||
|
"TR": ["1", "000", "899"],
|
||||||
|
"TD": ["2", "000", "899"],
|
||||||
|
"TK": ["3", "000", "899"],
|
||||||
|
"TN": ["3", "000", "899"],
|
||||||
|
"TM": ["4", "000", "899"],
|
||||||
|
"TS": ["5", "000", "999"],
|
||||||
|
|
||||||
|
"LT": ["5", "000", "899"],
|
||||||
|
"LP": ["6", "000", "899"],
|
||||||
|
|
||||||
|
"ZN": ["9", "000", "899"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+31
-16
@@ -92,6 +92,7 @@
|
|||||||
},
|
},
|
||||||
"numgen": {
|
"numgen": {
|
||||||
"title": "TRAIN NUMBER GENERATOR",
|
"title": "TRAIN NUMBER GENERATOR",
|
||||||
|
"subtitle": "Generates real train number based on Polish railway instruction Ir-11",
|
||||||
"alert": "The number has been copied to your clipboard!",
|
"alert": "The number has been copied to your clipboard!",
|
||||||
"start-region": "Beginning construction region",
|
"start-region": "Beginning construction region",
|
||||||
"end-region": "Terminating construction region",
|
"end-region": "Terminating construction region",
|
||||||
@@ -103,22 +104,36 @@
|
|||||||
"action-random-region": "DRAW REGIONS",
|
"action-random-region": "DRAW REGIONS",
|
||||||
"action-random-number": "DRAW A NUMBER",
|
"action-random-number": "DRAW A NUMBER",
|
||||||
"categories": {
|
"categories": {
|
||||||
"EI": "domestic express (EI)",
|
"EI": "EI - domestic express",
|
||||||
"MP/RP": "(inter)voivodeship bullet (MP/RP)",
|
"EC": "EC - international express",
|
||||||
"RO": "regional passenger (RO)",
|
"EN": "EN - domestic night express",
|
||||||
"PW": "empty passenger (PW)",
|
|
||||||
"TM": "mass transport freight (TM)",
|
"MP": "MP - intervoivodeship bullet",
|
||||||
"TK": "non-mass transport freight (TK)",
|
"RP": "RP - voivodeship bullet",
|
||||||
"LT": "locomotive alone (LT)"
|
"MO": "MO - intervoivodeship regio",
|
||||||
},
|
"RO": "RO - voivodeship regio",
|
||||||
"rules": {
|
|
||||||
"EI": "4 digits - ends within the range of 00-99",
|
"MM": "MM - international bullet",
|
||||||
"MP/RP": "5 digits - ends within the range of 050-169",
|
"MH": "MH - intervoivodeship bullet (night / )",
|
||||||
"RO": "5 digits - ends within the range of 200-999",
|
"RM": "RM - voivodeship osobowy international",
|
||||||
"PW": "6 digits - '6' on the 3rd place; ends within the range of 000-899",
|
"RA": "RA - voivodeship osobowy algomeracyjny",
|
||||||
"TM": "6 digits - '4' on the 3rd place; ends within the range of 000-899",
|
|
||||||
"TK": "6 digits - '3' on the 3rd place; ends within the range of 000-899",
|
"PW": "PW - empty passenger",
|
||||||
"LT": "6 digits - '5' on the 3rd place; ends within the range of 000-899"
|
"PX": "PX - empty test drive",
|
||||||
|
|
||||||
|
"TC": "TC - international freight (intermodal)",
|
||||||
|
"TG": "TG - international freight (cargo)",
|
||||||
|
"TR": "TR - international freight (no cargo)",
|
||||||
|
"TD": "TD - domestic freight (intermodal)",
|
||||||
|
"TM": "TM - domestic freight (cargo)",
|
||||||
|
"TN": "TN - domestic freight (no cargo)",
|
||||||
|
"TK": "TK - freight (stations & sidings service)",
|
||||||
|
"TS": "TS - empty freight test drive",
|
||||||
|
|
||||||
|
"LT": "LT - freight locomotive only",
|
||||||
|
"LP": "LP - passenger locomotive only",
|
||||||
|
|
||||||
|
"ZN": "ZN - inspection / diagnostic"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wiki": {
|
"wiki": {
|
||||||
|
|||||||
+31
-16
@@ -92,6 +92,7 @@
|
|||||||
},
|
},
|
||||||
"numgen": {
|
"numgen": {
|
||||||
"title": "GENERATOR NUMERU POCIĄGU",
|
"title": "GENERATOR NUMERU POCIĄGU",
|
||||||
|
"subtitle": "Generuje realny numer pociągu na podstawie instrukcji Ir-11",
|
||||||
"alert": "Numer został skopiowany do twojego schowka!",
|
"alert": "Numer został skopiowany do twojego schowka!",
|
||||||
"start-region": "Początkowy obszar konstrukcyjny",
|
"start-region": "Początkowy obszar konstrukcyjny",
|
||||||
"end-region": "Końcowy obszar konstrukcyjny",
|
"end-region": "Końcowy obszar konstrukcyjny",
|
||||||
@@ -103,22 +104,36 @@
|
|||||||
"action-random-region": "LOSUJ OBSZARY",
|
"action-random-region": "LOSUJ OBSZARY",
|
||||||
"action-random-number": "LOSUJ NUMER",
|
"action-random-number": "LOSUJ NUMER",
|
||||||
"categories": {
|
"categories": {
|
||||||
"EI": "ekspres krajowy (EI)",
|
"EI": "EI - ekspres krajowy",
|
||||||
"MP/RP": "(między)wojewódzki pośpieszny (MP/RP)",
|
"EC": "EC - ekspres międzynarodowy",
|
||||||
"RO": "wojewódzki osobowy (RO)",
|
"EN": "EN - ekspres krajowy nocny",
|
||||||
"PW": "próżny \"służbowy\" (PW)",
|
|
||||||
"TM": "towarowy do przewozów masowych (TM)",
|
"MP": "MP - międzywojewódzki pośpieszny",
|
||||||
"TK": "towarowy do obsługi stacji (TK)",
|
"RP": "RP - wojewódzki pośpieszny",
|
||||||
"LT": "lokomotywa luzem (LT)"
|
"MO": "MO - międzywojewódzki osobowy",
|
||||||
},
|
"RO": "RO - wojewódzki osobowy",
|
||||||
"rules": {
|
|
||||||
"EI": "4 cyfry - końcówka z przedziału 00-99",
|
"MM": "MM - międzynarodowy pośpieszny",
|
||||||
"MP/RP": "5 cyfr - końcówka z przedziału 050-169",
|
"MH": "MH - międzywoj. pośpieszny nocny / hotelowy",
|
||||||
"RO": "5 cyfr - końcówka z przedziału 200-999",
|
"RM": "RM - wojewódzki osobowy międzynarodowy",
|
||||||
"PW": "6 cyfr - '6' na 3. miejscu; końcówka z przedziału 000-899",
|
"RA": "RA - wojewódzki osobowy algomeracyjny",
|
||||||
"TM": "6 cyfr - '4' na 3. miejscu; końcówka z przedziału 000-899",
|
|
||||||
"TK": "6 cyfr - '3' na 3. miejscu; końcówka z przedziału 000-899",
|
"PW": "PW - próżny \"służbowy\"",
|
||||||
"LT": "6 cyfr - '5' na 3. miejscu; końcówka z przedziału 000-899"
|
"PX": "PX - próżny próbny",
|
||||||
|
|
||||||
|
"TC": "TC - towarowy międzynarodowy intermodalny",
|
||||||
|
"TG": "TG - towarowy międzynarodowy masowy",
|
||||||
|
"TR": "TR - towarowy międzynarodowy niemasowy",
|
||||||
|
"TD": "TD - towarowy krajowy intermodalny",
|
||||||
|
"TM": "TM - towarowy krajowy masowy",
|
||||||
|
"TN": "TN - towarowy krajowy niemasowy",
|
||||||
|
"TK": "TK - towarowy do obsługi stacji i bocznic",
|
||||||
|
"TS": "TS - próżny próbny skład towarowy",
|
||||||
|
|
||||||
|
"LT": "LT - lokomotywa towarowa luzem",
|
||||||
|
"LP": "LP -lokomotywa pasażerska luzem",
|
||||||
|
|
||||||
|
"ZN": "ZN - inspekcyjny / diagnostyczny"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wiki": {
|
"wiki": {
|
||||||
|
|||||||
+7
-1
@@ -8,12 +8,18 @@
|
|||||||
padding: 0.5em 1em;
|
padding: 0.5em 1em;
|
||||||
|
|
||||||
background-color: $secondaryColor;
|
background-color: $secondaryColor;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
color: white;
|
color: white;
|
||||||
font-size: 1.35em;
|
font-size: 1.35em;
|
||||||
text-align: center;
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
margin: 0.5em 0 0 0;
|
||||||
|
font-size: 1.15em;
|
||||||
|
color: #aaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
|
|||||||
Reference in New Issue
Block a user