tłumaczenia; fix losowania generatora numeru

This commit is contained in:
2023-08-24 00:01:19 +02:00
parent d7c1f8c5b4
commit a699c9851f
3 changed files with 55 additions and 17 deletions
+35 -15
View File
@@ -6,6 +6,13 @@
<div class="tab_content">
<div class="options">
<select v-model="chosenCategory" @change="randomizeTrainNumber()">
<option :value="null" disabled>{{ $t('numgen.train-category') }}</option>
<option v-for="(_, category) in genData.categories" :value="category">
{{ $t(`numgen.categories.${category}`) }}
</option>
</select>
<select v-model="beginRegionName" @change="randomizeTrainNumber()">
<option :value="null" disabled>{{ $t('numgen.start-region') }}</option>
<option v-for="(_, name) in genData.regionNumbers" :value="name">{{ name }}</option>
@@ -15,13 +22,6 @@
<option :value="null" disabled>{{ $t('numgen.end-region') }}</option>
<option v-for="(_, name) in genData.regionNumbers" :value="name">{{ name }}</option>
</select>
<select v-model="categoryRules" @change="randomizeTrainNumber()">
<option :value="null" disabled>{{ $t('numgen.train-category') }}</option>
<option v-for="(rules, category) in genData.categories" :value="rules">
{{ $t(`numgen.categories.${category}`) }}
</option>
</select>
</div>
<div class="generated-number" @click="copyNumber">
@@ -31,6 +31,23 @@
<span v-else>{{ $t('numgen.warning') }}</span>
</div>
<!-- <div v-if="chosenCategory">
Current numbering rules: {{ $t(`numgen.rules.${chosenCategory}`) }};
<span v-if="beginRegionName && endRegionName">
<span v-if="beginRegionName == endRegionName">
pierwsze dwie cyfry:
{{ genData.sameRegions[beginRegionName].join(', ') }}
(numer w obrębie obszaru {{ beginRegionName }})
</span>
<span v-else>
pierwsza cyfra: {{ genData.regionNumbers[beginRegionName] }}; druga cyfra:
{{ genData.regionNumbers[endRegionName] }}
</span>
</span>
</div> -->
<div class="tab_links">
<a :href="$t('numgen.td2-wiki-link')" target="_blank">
{{ $t('numgen.td2-wiki') }}
@@ -55,10 +72,11 @@ import genData from '../../constants/numberGeneratorData.json';
const i18n = useI18n();
type RegionName = keyof typeof genData.regionNumbers;
type Category = keyof typeof genData.categories;
const beginRegionName = ref(null) as Ref<RegionName | null>;
const endRegionName = ref(null) as Ref<RegionName | null>;
const categoryRules = ref(null) as Ref<string | null>;
const chosenCategory = ref(null) as Ref<Category | null>;
const trainNumber = ref(null) as Ref<string | null>;
@@ -70,7 +88,7 @@ const copyNumber = () => {
};
const randomizeTrainNumber = (randomizeRegions = false) => {
if (categoryRules.value == null) return;
// if (categoryRules.value == null) return;
const regionKeys = Object.keys(genData.regionNumbers);
@@ -93,13 +111,15 @@ const randomizeTrainNumber = (randomizeRegions = false) => {
number += `${beginRegionNumber}${endRegionNumber}`;
}
// Do not roll the rest of number again if only randomize regions
if (randomizeRegions) {
// Do not roll the rest of number again if only randomize regions and category rules are already selected
if (randomizeRegions && chosenCategory.value != null) {
trainNumber.value = number + trainNumber.value?.substring(2);
return;
}
const rulesArray = categoryRules.value.split(';').map((r) => ({
if (chosenCategory.value == null) chosenCategory.value = 'EI';
const rulesArray = genData.categories[chosenCategory.value].split(';').map((r) => ({
index: r.split(':')[0],
rule: r.split(':')[1],
nums: Number(r.split(':')[2] || '1'),
@@ -126,12 +146,12 @@ const randomizeTrainNumber = (randomizeRegions = false) => {
@import '../../styles/global.scss';
.options {
display: flex;
flex-wrap: wrap;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 0.5em;
select {
width: calc(50% - 0.5em);
width: 100%;
}
}
+10 -1
View File
@@ -96,7 +96,7 @@
"end-region": "Terminating construction region",
"train-category": "Train category",
"number-info": "Generated train number:",
"warning": "Choose category and construction regions (optionally)",
"warning": "Choose category and (optionally) construction regions",
"td2-wiki": "> Polish rules of train numbering (TD2 wiki)",
"td2-wiki-link": "https://wiki.td2.info.pl/index.php?title=Zasady_numeracji_poci%C4%85g%C3%B3w/en",
"action-random-region": "DRAW REGIONS",
@@ -109,6 +109,15 @@
"TM": "mass transport freight (TM)",
"TK": "non-mass transport freight (TK)",
"LT": "locomotive alone (LT)"
},
"rules": {
"EI": "4 digits - ends within the range of 00-99",
"MP/RP": "5 digits - ends within the range of 050-169",
"RO": "5 digits - ends within the range of 200-999",
"PW": "6 digits - '6' on the 3rd place; ends within the range of 000-899",
"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",
"LT": "6 digits - '5' on the 3rd place; ends within the range of 000-899"
}
},
"wiki": {
+10 -1
View File
@@ -96,7 +96,7 @@
"end-region": "Końcowy obszar konstrukcyjny",
"train-category": "Kategoria pociągu",
"number-info": "Wygenerowany numer pociągu:",
"warning": "Wybierz kategorię oraz obszary konstrukcyjne (opcjonalnie)",
"warning": "Wybierz kategorię oraz (opcjonalnie) obszary konstrukcyjne",
"td2-wiki": "> Szczegółowe zasady numeracji (wikipedia TD2)",
"td2-wiki-link": "https://wiki.td2.info.pl/index.php?title=Zasady_numeracji_poci%C4%85g%C3%B3w",
"action-random-region": "LOSUJ OBSZARY",
@@ -109,6 +109,15 @@
"TM": "towarowy do przewozów masowych (TM)",
"TK": "towarowy do obsługi stacji (TK)",
"LT": "lokomotywa luzem (LT)"
},
"rules": {
"EI": "4 cyfry - końcówka z przedziału 00-99",
"MP/RP": "5 cyfr - końcówka z przedziału 050-169",
"RO": "5 cyfr - końcówka z przedziału 200-999",
"PW": "6 cyfr - '6' na 3. miejscu; końcówka z przedziału 000-899",
"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",
"LT": "6 cyfr - '5' na 3. miejscu; końcówka z przedziału 000-899"
}
},
"wiki": {