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="tab_content">
<div class="options"> <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()"> <select v-model="beginRegionName" @change="randomizeTrainNumber()">
<option :value="null" disabled>{{ $t('numgen.start-region') }}</option> <option :value="null" disabled>{{ $t('numgen.start-region') }}</option>
<option v-for="(_, name) in genData.regionNumbers" :value="name">{{ name }}</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 :value="null" disabled>{{ $t('numgen.end-region') }}</option>
<option v-for="(_, name) in genData.regionNumbers" :value="name">{{ name }}</option> <option v-for="(_, name) in genData.regionNumbers" :value="name">{{ name }}</option>
</select> </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>
<div class="generated-number" @click="copyNumber"> <div class="generated-number" @click="copyNumber">
@@ -31,6 +31,23 @@
<span v-else>{{ $t('numgen.warning') }}</span> <span v-else>{{ $t('numgen.warning') }}</span>
</div> </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"> <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') }}
@@ -55,10 +72,11 @@ import genData from '../../constants/numberGeneratorData.json';
const i18n = useI18n(); const i18n = useI18n();
type RegionName = keyof typeof genData.regionNumbers; type RegionName = keyof typeof genData.regionNumbers;
type Category = keyof typeof genData.categories;
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>;
const categoryRules = ref(null) as Ref<string | null>; const chosenCategory = ref(null) as Ref<Category | null>;
const trainNumber = ref(null) as Ref<string | null>; const trainNumber = ref(null) as Ref<string | null>;
@@ -70,7 +88,7 @@ const copyNumber = () => {
}; };
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);
@@ -93,13 +111,15 @@ const randomizeTrainNumber = (randomizeRegions = false) => {
number += `${beginRegionNumber}${endRegionNumber}`; number += `${beginRegionNumber}${endRegionNumber}`;
} }
// Do not roll the rest of number again if only randomize regions // Do not roll the rest of number again if only randomize regions and category rules are already selected
if (randomizeRegions) { if (randomizeRegions && chosenCategory.value != null) {
trainNumber.value = number + trainNumber.value?.substring(2); trainNumber.value = number + trainNumber.value?.substring(2);
return; 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], index: r.split(':')[0],
rule: r.split(':')[1], rule: r.split(':')[1],
nums: Number(r.split(':')[2] || '1'), nums: Number(r.split(':')[2] || '1'),
@@ -126,12 +146,12 @@ const randomizeTrainNumber = (randomizeRegions = false) => {
@import '../../styles/global.scss'; @import '../../styles/global.scss';
.options { .options {
display: flex; display: grid;
flex-wrap: wrap; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 0.5em; gap: 0.5em;
select { select {
width: calc(50% - 0.5em); width: 100%;
} }
} }
+10 -1
View File
@@ -96,7 +96,7 @@
"end-region": "Terminating construction region", "end-region": "Terminating construction region",
"train-category": "Train category", "train-category": "Train category",
"number-info": "Generated train number:", "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": "> 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", "td2-wiki-link": "https://wiki.td2.info.pl/index.php?title=Zasady_numeracji_poci%C4%85g%C3%B3w/en",
"action-random-region": "DRAW REGIONS", "action-random-region": "DRAW REGIONS",
@@ -109,6 +109,15 @@
"TM": "mass transport freight (TM)", "TM": "mass transport freight (TM)",
"TK": "non-mass transport freight (TK)", "TK": "non-mass transport freight (TK)",
"LT": "locomotive alone (LT)" "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": { "wiki": {
+10 -1
View File
@@ -96,7 +96,7 @@
"end-region": "Końcowy obszar konstrukcyjny", "end-region": "Końcowy obszar konstrukcyjny",
"train-category": "Kategoria pociągu", "train-category": "Kategoria pociągu",
"number-info": "Wygenerowany numer 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": "> Szczegółowe zasady numeracji (wikipedia TD2)",
"td2-wiki-link": "https://wiki.td2.info.pl/index.php?title=Zasady_numeracji_poci%C4%85g%C3%B3w", "td2-wiki-link": "https://wiki.td2.info.pl/index.php?title=Zasady_numeracji_poci%C4%85g%C3%B3w",
"action-random-region": "LOSUJ OBSZARY", "action-random-region": "LOSUJ OBSZARY",
@@ -109,6 +109,15 @@
"TM": "towarowy do przewozów masowych (TM)", "TM": "towarowy do przewozów masowych (TM)",
"TK": "towarowy do obsługi stacji (TK)", "TK": "towarowy do obsługi stacji (TK)",
"LT": "lokomotywa luzem (LT)" "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": { "wiki": {