diff --git a/client/src/components/Tours/run/RunWaysCard.test.tsx b/client/src/components/Tours/run/RunWaysCard.test.tsx index 8ba5e8662..9bebd3918 100644 --- a/client/src/components/Tours/run/RunWaysCard.test.tsx +++ b/client/src/components/Tours/run/RunWaysCard.test.tsx @@ -59,7 +59,7 @@ describe('RunWaysCard (RUN-02)', () => { show({}); expect(within(screen.getByTestId('route-ways-row-surface-paved')).getByText('60 %')).toBeInTheDocument(); expect(screen.getByTestId('route-ways-row-surface-gravel')).toHaveTextContent('300 m'); - expect(screen.getByTestId('route-ways-row-grade-t1')).toHaveTextContent('T1'); + expect(screen.getByTestId('route-ways-row-grade-t1')).toHaveTextContent('T1, hiking'); expect(screen.getByTestId('route-ways-row-grade-t2')).toHaveTextContent('10 %'); expect(screen.getByTestId('route-ways-row-grade-none')).toHaveTextContent('No grade in the data'); expect(screen.getByTestId('route-ways-row-way-track')).toBeInTheDocument(); @@ -73,7 +73,8 @@ describe('RunWaysCard (RUN-02)', () => { expect(screen.getByText('40 % unpaved')).toBeInTheDocument(); const hardest = screen.getByTestId('run-ways-hardest'); expect(hardest).toHaveTextContent('T2'); - expect(hardest).toHaveTextContent(/Hardest graded path: T2/); + expect(hardest).toHaveTextContent('Hardest graded path: T2, mountain hiking'); + expect(hardest.textContent).not.toMatch(/[\u2013\u2014]/); }); it('FE-TOUR-RUNWAYS-003: a grade row points at its stretches on the map in the grade colour, and lets go', () => { diff --git a/client/src/components/Tours/run/RunWaysCard.tsx b/client/src/components/Tours/run/RunWaysCard.tsx index 0c6556e26..765705966 100644 --- a/client/src/components/Tours/run/RunWaysCard.tsx +++ b/client/src/components/Tours/run/RunWaysCard.tsx @@ -26,10 +26,10 @@ const sacOf = (edge: RouteWayEdge) => edge.sac; /** The steps from easy to hard, so the hardest one along the route is the last one found. */ const SAC_STEPS: readonly GradedClass[] = ['t1', 't2', 't3', 't4', 't5', 't6']; -/** A hiking grade in the words the hiking limit uses for it, a way without one as unknown. */ +/** A hiking grade in the card's own words, a way without one as unknown. */ function useSacLabel() { const { t } = useTranslation(); - return (key: SacClass) => (key === 'none' ? t('tours.bike.trail.none') : t(`tours.planner.difficulty.${key}`)); + return (key: SacClass) => (key === 'none' ? t('tours.bike.trail.none') : t(`tours.run.ways.sac.${key}`)); } /** The hardest graded step along the route, or null when no way on it carries a grade. */ diff --git a/shared/src/i18n/ar/tours.ts b/shared/src/i18n/ar/tours.ts index bf81fa303..077c32f3d 100644 --- a/shared/src/i18n/ar/tours.ts +++ b/shared/src/i18n/ar/tours.ts @@ -442,6 +442,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'درجات المشي كما حددها مساهمو OpenStreetMap. الطريق بلا درجة مجهول، وليس سهلًا. لا تقول شيئًا عن إمكانية الجري عليه أو مدى ملاءمته لك.', 'tours.run.ways.gradeTop': 'أصعب مسار مصنّف: {grade}', + 'tours.run.ways.sac.t1': 'T1، المشي الطويل', + 'tours.run.ways.sac.t2': 'T2، المشي الجبلي', + 'tours.run.ways.sac.t3': 'T3، المشي الجبلي الشاق', + 'tours.run.ways.sac.t4': 'T4، المشي في التضاريس الألبية', + 'tours.run.ways.sac.t5': 'T5، المشي الشاق في التضاريس الألبية', + 'tours.run.ways.sac.t6': 'T6، المشي الصعب في التضاريس الألبية', 'tours.bike.profile': 'الملف', 'tours.bike.profile.touring': 'تجوال', 'tours.bike.profile.road': 'طريق', diff --git a/shared/src/i18n/az/tours.ts b/shared/src/i18n/az/tours.ts index 702a9f2aa..0e376fec6 100644 --- a/shared/src/i18n/az/tours.ts +++ b/shared/src/i18n/az/tours.ts @@ -432,6 +432,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'OpenStreetMap xəritəçilərinin verdiyi yürüş dərəcələri. Dərəcəsi olmayan yol asan deyil, naməlumdur. Onlar yolun qaçmağa yararlı olub-olmadığı və ya sizə uyğun olub-olmadığı barədə heç nə demir.', 'tours.run.ways.gradeTop': 'Ən çətin qiymətləndirilmiş cığır: {grade}', + 'tours.run.ways.sac.t1': 'T1, yürüş', + 'tours.run.ways.sac.t2': 'T2, dağ yürüşü', + 'tours.run.ways.sac.t3': 'T3, yüksək hazırlıq tələb edən dağ yürüşü', + 'tours.run.ways.sac.t4': 'T4, alp yürüşü', + 'tours.run.ways.sac.t5': 'T5, yüksək hazırlıq tələb edən alp yürüşü', + 'tours.run.ways.sac.t6': 'T6, çətin alp yürüşü', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Turinq', 'tours.bike.profile.road': 'Yol', diff --git a/shared/src/i18n/br/tours.ts b/shared/src/i18n/br/tours.ts index 228fcb5c6..1d327aacf 100644 --- a/shared/src/i18n/br/tours.ts +++ b/shared/src/i18n/br/tours.ts @@ -438,6 +438,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Graus de caminhada como os mapeadores do OpenStreetMap os informaram. Um caminho sem grau é desconhecido, não fácil. Eles não dizem se dá para correr no caminho nem se ele combina com você.', 'tours.run.ways.gradeTop': 'Trilha classificada mais difícil: {grade}', + 'tours.run.ways.sac.t1': 'T1, caminhada', + 'tours.run.ways.sac.t2': 'T2, caminhada em montanha', + 'tours.run.ways.sac.t3': 'T3, caminhada exigente em montanha', + 'tours.run.ways.sac.t4': 'T4, caminhada alpina', + 'tours.run.ways.sac.t5': 'T5, caminhada alpina exigente', + 'tours.run.ways.sac.t6': 'T6, caminhada alpina difícil', 'tours.bike.profile': 'Perfil', 'tours.bike.profile.touring': 'Cicloturismo', 'tours.bike.profile.road': 'Estrada', diff --git a/shared/src/i18n/ca/tours.ts b/shared/src/i18n/ca/tours.ts index 49288183e..106fed626 100644 --- a/shared/src/i18n/ca/tours.ts +++ b/shared/src/i18n/ca/tours.ts @@ -439,6 +439,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Graus d’excursionisme tal com els han posat els mapejadors d’OpenStreetMap. Un camí sense grau és desconegut, no fàcil. No diuen si un camí es pot córrer ni si et convé.', 'tours.run.ways.gradeTop': 'Camí classificat més difícil: {grade}', + 'tours.run.ways.sac.t1': 'T1, senderisme', + 'tours.run.ways.sac.t2': 'T2, senderisme de muntanya', + 'tours.run.ways.sac.t3': 'T3, senderisme de muntanya exigent', + 'tours.run.ways.sac.t4': 'T4, senderisme alpí', + 'tours.run.ways.sac.t5': 'T5, senderisme alpí exigent', + 'tours.run.ways.sac.t6': 'T6, senderisme alpí difícil', 'tours.bike.profile': 'Perfil', 'tours.bike.profile.touring': 'Cicloturisme', 'tours.bike.profile.road': 'Carretera', diff --git a/shared/src/i18n/cs/tours.ts b/shared/src/i18n/cs/tours.ts index e55be8bad..92a8e7052 100644 --- a/shared/src/i18n/cs/tours.ts +++ b/shared/src/i18n/cs/tours.ts @@ -431,6 +431,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Turistické stupně, jak je zadali mapovači OpenStreetMap. Cesta bez stupně je neznámá, ne snadná. Neříkají nic o tom, zda se po cestě dá běžet nebo zda se pro tebe hodí.', 'tours.run.ways.gradeTop': 'Nejtěžší hodnocená cesta: {grade}', + 'tours.run.ways.sac.t1': 'T1, pěší turistika', + 'tours.run.ways.sac.t2': 'T2, horská turistika', + 'tours.run.ways.sac.t3': 'T3, náročná horská turistika', + 'tours.run.ways.sac.t4': 'T4, vysokohorská turistika', + 'tours.run.ways.sac.t5': 'T5, náročná vysokohorská turistika', + 'tours.run.ways.sac.t6': 'T6, obtížná vysokohorská turistika', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Treking', 'tours.bike.profile.road': 'Silnice', diff --git a/shared/src/i18n/de/tours.ts b/shared/src/i18n/de/tours.ts index 06a6da7fc..4074e6be8 100644 --- a/shared/src/i18n/de/tours.ts +++ b/shared/src/i18n/de/tours.ts @@ -441,6 +441,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Wanderskala, wie OpenStreetMap-Mapper sie vergeben haben. Ein Weg ohne Angabe ist unbekannt, nicht leicht. Sie sagt nichts darüber, ob ein Weg laufbar ist oder zu dir passt.', 'tours.run.ways.gradeTop': 'Schwierigster bewerteter Weg: {grade}', + 'tours.run.ways.sac.t1': 'T1, Wandern', + 'tours.run.ways.sac.t2': 'T2, Bergwandern', + 'tours.run.ways.sac.t3': 'T3, Anspruchsvolles Bergwandern', + 'tours.run.ways.sac.t4': 'T4, Alpinwandern', + 'tours.run.ways.sac.t5': 'T5, Anspruchsvolles Alpinwandern', + 'tours.run.ways.sac.t6': 'T6, Schwieriges Alpinwandern', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Touring', // same-as-en 'tours.bike.profile.road': 'Rennrad', diff --git a/shared/src/i18n/en/tours.ts b/shared/src/i18n/en/tours.ts index 2209f797f..c7235b182 100644 --- a/shared/src/i18n/en/tours.ts +++ b/shared/src/i18n/en/tours.ts @@ -430,6 +430,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Hiking grades as OpenStreetMap mappers gave them. A way without one is unknown, not easy. They say nothing about whether a way can be run or suits you.', 'tours.run.ways.gradeTop': 'Hardest graded path: {grade}', + 'tours.run.ways.sac.t1': 'T1, hiking', + 'tours.run.ways.sac.t2': 'T2, mountain hiking', + 'tours.run.ways.sac.t3': 'T3, demanding mountain hiking', + 'tours.run.ways.sac.t4': 'T4, alpine hiking', + 'tours.run.ways.sac.t5': 'T5, demanding alpine hiking', + 'tours.run.ways.sac.t6': 'T6, difficult alpine hiking', 'tours.bike.profile': 'Profile', 'tours.bike.profile.touring': 'Touring', 'tours.bike.profile.road': 'Road', diff --git a/shared/src/i18n/es/tours.ts b/shared/src/i18n/es/tours.ts index cf19cf678..851883ab8 100644 --- a/shared/src/i18n/es/tours.ts +++ b/shared/src/i18n/es/tours.ts @@ -438,6 +438,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Grados de senderismo tal como los asignaron los mapeadores de OpenStreetMap. Un camino sin grado es desconocido, no fácil. No dicen si un camino se puede correr ni si te conviene.', 'tours.run.ways.gradeTop': 'Camino graduado más difícil: {grade}', + 'tours.run.ways.sac.t1': 'T1, senderismo', + 'tours.run.ways.sac.t2': 'T2, senderismo de montaña', + 'tours.run.ways.sac.t3': 'T3, senderismo de montaña exigente', + 'tours.run.ways.sac.t4': 'T4, senderismo alpino', + 'tours.run.ways.sac.t5': 'T5, senderismo alpino exigente', + 'tours.run.ways.sac.t6': 'T6, senderismo alpino difícil', 'tours.bike.profile': 'Perfil', 'tours.bike.profile.touring': 'Cicloturismo', 'tours.bike.profile.road': 'Carretera', diff --git a/shared/src/i18n/et/tours.ts b/shared/src/i18n/et/tours.ts index 0dd1f1fd2..1f16fc883 100644 --- a/shared/src/i18n/et/tours.ts +++ b/shared/src/i18n/et/tours.ts @@ -433,6 +433,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Matkaraskused, nagu OpenStreetMapi kaardistajad need andsid. Ilma raskuseta tee on teadmata, mitte lihtne. Need ei ütle midagi selle kohta, kas teel saab joosta või kas see sulle sobib.', 'tours.run.ways.gradeTop': 'Raskeim hinnatud rada: {grade}', + 'tours.run.ways.sac.t1': 'T1, matkamine', + 'tours.run.ways.sac.t2': 'T2, mägimatkamine', + 'tours.run.ways.sac.t3': 'T3, nõudlik mägimatkamine', + 'tours.run.ways.sac.t4': 'T4, alpimatkamine', + 'tours.run.ways.sac.t5': 'T5, nõudlik alpimatkamine', + 'tours.run.ways.sac.t6': 'T6, raske alpimatkamine', 'tours.bike.profile': 'Profiil', 'tours.bike.profile.touring': 'Matk', 'tours.bike.profile.road': 'Maantee', diff --git a/shared/src/i18n/fr/tours.ts b/shared/src/i18n/fr/tours.ts index 52ce05793..d0559b145 100644 --- a/shared/src/i18n/fr/tours.ts +++ b/shared/src/i18n/fr/tours.ts @@ -445,6 +445,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Cotations de randonnée telles que les contributeurs OpenStreetMap les ont saisies. Un chemin sans cotation est inconnu, pas facile. Elles ne disent pas si un chemin se court ni s’il vous convient.', 'tours.run.ways.gradeTop': 'Chemin coté le plus difficile : {grade}', + 'tours.run.ways.sac.t1': 'T1, randonnée', + 'tours.run.ways.sac.t2': 'T2, randonnée en montagne', + 'tours.run.ways.sac.t3': 'T3, randonnée en montagne exigeante', + 'tours.run.ways.sac.t4': 'T4, randonnée alpine', + 'tours.run.ways.sac.t5': 'T5, randonnée alpine exigeante', + 'tours.run.ways.sac.t6': 'T6, randonnée alpine difficile', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Voyage', 'tours.bike.profile.road': 'Route', diff --git a/shared/src/i18n/gr/tours.ts b/shared/src/i18n/gr/tours.ts index 900b35d29..9c4c81cb2 100644 --- a/shared/src/i18n/gr/tours.ts +++ b/shared/src/i18n/gr/tours.ts @@ -447,6 +447,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Βαθμοί πεζοπορίας όπως τους έδωσαν οι χαρτογράφοι του OpenStreetMap. Ένας δρόμος χωρίς βαθμό είναι άγνωστος, όχι εύκολος. Δεν λένε τίποτα για το αν ένας δρόμος τρέχεται ή αν σου ταιριάζει.', 'tours.run.ways.gradeTop': 'Δυσκολότερο βαθμολογημένο μονοπάτι: {grade}', + 'tours.run.ways.sac.t1': 'T1, πεζοπορία', + 'tours.run.ways.sac.t2': 'T2, ορεινή πεζοπορία', + 'tours.run.ways.sac.t3': 'T3, απαιτητική ορεινή πεζοπορία', + 'tours.run.ways.sac.t4': 'T4, αλπική πεζοπορία', + 'tours.run.ways.sac.t5': 'T5, απαιτητική αλπική πεζοπορία', + 'tours.run.ways.sac.t6': 'T6, δύσκολη αλπική πεζοπορία', 'tours.bike.profile': 'Προφίλ', 'tours.bike.profile.touring': 'Περιήγηση', 'tours.bike.profile.road': 'Δρόμου', diff --git a/shared/src/i18n/hu/tours.ts b/shared/src/i18n/hu/tours.ts index 40230946f..80c8c62e1 100644 --- a/shared/src/i18n/hu/tours.ts +++ b/shared/src/i18n/hu/tours.ts @@ -439,6 +439,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Túranehézségi fokozatok, ahogy az OpenStreetMap térképezői megadták. A fokozat nélküli út ismeretlen, nem könnyű. Semmit sem mondanak arról, hogy egy út futható-e, vagy illik-e hozzád.', 'tours.run.ways.gradeTop': 'Legnehezebb besorolt ösvény: {grade}', + 'tours.run.ways.sac.t1': 'T1, gyalogtúra', + 'tours.run.ways.sac.t2': 'T2, hegyi túra', + 'tours.run.ways.sac.t3': 'T3, megerőltető hegyi túra', + 'tours.run.ways.sac.t4': 'T4, magashegyi túra', + 'tours.run.ways.sac.t5': 'T5, megerőltető magashegyi túra', + 'tours.run.ways.sac.t6': 'T6, nehéz magashegyi túra', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Túra', 'tours.bike.profile.road': 'Országúti', diff --git a/shared/src/i18n/id/tours.ts b/shared/src/i18n/id/tours.ts index ffaf281b0..501baf2c1 100644 --- a/shared/src/i18n/id/tours.ts +++ b/shared/src/i18n/id/tours.ts @@ -433,6 +433,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Tingkat pendakian seperti yang diberikan pemeta OpenStreetMap. Jalan tanpa tingkat tidak diketahui, bukan mudah. Tingkat ini tidak menyatakan apakah jalan bisa dilari atau cocok untukmu.', 'tours.run.ways.gradeTop': 'Jalur bertingkat tersulit: {grade}', + 'tours.run.ways.sac.t1': 'T1, pendakian', + 'tours.run.ways.sac.t2': 'T2, pendakian gunung', + 'tours.run.ways.sac.t3': 'T3, pendakian gunung menantang', + 'tours.run.ways.sac.t4': 'T4, pendakian alpin', + 'tours.run.ways.sac.t5': 'T5, pendakian alpin menantang', + 'tours.run.ways.sac.t6': 'T6, pendakian alpin sulit', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Touring', // same-as-en 'tours.bike.profile.road': 'Road', // same-as-en diff --git a/shared/src/i18n/it/tours.ts b/shared/src/i18n/it/tours.ts index afc9e44b2..ae55ba7d0 100644 --- a/shared/src/i18n/it/tours.ts +++ b/shared/src/i18n/it/tours.ts @@ -441,6 +441,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Gradi escursionistici come li hanno assegnati i mappatori di OpenStreetMap. Un sentiero senza grado è sconosciuto, non facile. Non dicono se un sentiero si può correre né se fa per te.', 'tours.run.ways.gradeTop': 'Sentiero classificato più difficile: {grade}', + 'tours.run.ways.sac.t1': 'T1, escursionismo', + 'tours.run.ways.sac.t2': 'T2, escursionismo di montagna', + 'tours.run.ways.sac.t3': 'T3, escursionismo di montagna impegnativo', + 'tours.run.ways.sac.t4': 'T4, escursionismo alpino', + 'tours.run.ways.sac.t5': 'T5, escursionismo alpino impegnativo', + 'tours.run.ways.sac.t6': 'T6, escursionismo alpino difficile', 'tours.bike.profile': 'Profilo', 'tours.bike.profile.touring': 'Turismo', 'tours.bike.profile.road': 'Strada', diff --git a/shared/src/i18n/ja/tours.ts b/shared/src/i18n/ja/tours.ts index b129d42e0..41de0c668 100644 --- a/shared/src/i18n/ja/tours.ts +++ b/shared/src/i18n/ja/tours.ts @@ -419,6 +419,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfoLabel': '道の難易度について', 'tours.run.ways.gradeInfo': 'OpenStreetMap のマッパーが付けたハイキングの難易度です。難易度のない道は簡単という意味ではなく、不明です。道を走れるかどうか、あなたに合うかどうかは示しません。', 'tours.run.ways.gradeTop': '最も難しい格付けの道: {grade}', + 'tours.run.ways.sac.t1': 'T1、ハイキング', + 'tours.run.ways.sac.t2': 'T2、山岳ハイキング', + 'tours.run.ways.sac.t3': 'T3、上級山岳ハイキング', + 'tours.run.ways.sac.t4': 'T4、アルパインハイキング', + 'tours.run.ways.sac.t5': 'T5、上級アルパインハイキング', + 'tours.run.ways.sac.t6': 'T6、難度の高いアルパインハイキング', 'tours.bike.profile': 'プロファイル', 'tours.bike.profile.touring': 'ツーリング', 'tours.bike.profile.road': 'ロード', diff --git a/shared/src/i18n/ko/tours.ts b/shared/src/i18n/ko/tours.ts index c70c7eb1b..55066ce69 100644 --- a/shared/src/i18n/ko/tours.ts +++ b/shared/src/i18n/ko/tours.ts @@ -418,6 +418,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'OpenStreetMap 매퍼가 매긴 하이킹 등급입니다. 등급이 없는 길은 쉬운 것이 아니라 알 수 없는 것입니다. 길을 달릴 수 있는지, 나에게 맞는지는 알려 주지 않습니다.', 'tours.run.ways.gradeTop': '가장 어려운 등급의 길: {grade}', + 'tours.run.ways.sac.t1': 'T1, 하이킹', + 'tours.run.ways.sac.t2': 'T2, 산악 하이킹', + 'tours.run.ways.sac.t3': 'T3, 고난도 산악 하이킹', + 'tours.run.ways.sac.t4': 'T4, 고산 하이킹', + 'tours.run.ways.sac.t5': 'T5, 고난도 고산 하이킹', + 'tours.run.ways.sac.t6': 'T6, 매우 어려운 고산 하이킹', 'tours.bike.profile': '프로필', 'tours.bike.profile.touring': '투어링', 'tours.bike.profile.road': '로드', diff --git a/shared/src/i18n/nl/tours.ts b/shared/src/i18n/nl/tours.ts index 6c9bfbcc2..d70cc56db 100644 --- a/shared/src/i18n/nl/tours.ts +++ b/shared/src/i18n/nl/tours.ts @@ -440,6 +440,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Wandelgraden zoals OpenStreetMap-mappers ze hebben ingevoerd. Een pad zonder graad is onbekend, niet makkelijk. Ze zeggen niets over of een pad te lopen is of bij je past.', 'tours.run.ways.gradeTop': 'Moeilijkste gegradeerde pad: {grade}', + 'tours.run.ways.sac.t1': 'T1, wandelen', + 'tours.run.ways.sac.t2': 'T2, bergwandelen', + 'tours.run.ways.sac.t3': 'T3, veeleisend bergwandelen', + 'tours.run.ways.sac.t4': 'T4, alpien wandelen', + 'tours.run.ways.sac.t5': 'T5, veeleisend alpien wandelen', + 'tours.run.ways.sac.t6': 'T6, moeilijk alpien wandelen', 'tours.bike.profile': 'Profiel', 'tours.bike.profile.touring': 'Toer', 'tours.bike.profile.road': 'Racefiets', diff --git a/shared/src/i18n/pl/tours.ts b/shared/src/i18n/pl/tours.ts index 87dd6a3dc..95fce61e8 100644 --- a/shared/src/i18n/pl/tours.ts +++ b/shared/src/i18n/pl/tours.ts @@ -447,6 +447,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Stopnie trudności szlaków nadane przez maperów OpenStreetMap. Droga bez stopnia jest nieznana, a nie łatwa. Nie mówią, czy da się nią biec ani czy jest dla ciebie.', 'tours.run.ways.gradeTop': 'Najtrudniejsza oceniona ścieżka: {grade}', + 'tours.run.ways.sac.t1': 'T1, turystyka piesza', + 'tours.run.ways.sac.t2': 'T2, turystyka górska', + 'tours.run.ways.sac.t3': 'T3, wymagająca turystyka górska', + 'tours.run.ways.sac.t4': 'T4, turystyka wysokogórska', + 'tours.run.ways.sac.t5': 'T5, wymagająca turystyka wysokogórska', + 'tours.run.ways.sac.t6': 'T6, trudna turystyka wysokogórska', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Turystyka', 'tours.bike.profile.road': 'Szosa', diff --git a/shared/src/i18n/ru/tours.ts b/shared/src/i18n/ru/tours.ts index 451f73552..82db905fd 100644 --- a/shared/src/i18n/ru/tours.ts +++ b/shared/src/i18n/ru/tours.ts @@ -451,6 +451,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Категории сложности троп, как их указали участники OpenStreetMap. Путь без категории неизвестен, а не прост. Они ничего не говорят о том, можно ли по пути бежать и подходит ли он вам.', 'tours.run.ways.gradeTop': 'Самая сложная оцененная тропа: {grade}', + 'tours.run.ways.sac.t1': 'T1, пеший поход', + 'tours.run.ways.sac.t2': 'T2, горный поход', + 'tours.run.ways.sac.t3': 'T3, сложный горный поход', + 'tours.run.ways.sac.t4': 'T4, высокогорный поход', + 'tours.run.ways.sac.t5': 'T5, сложный высокогорный поход', + 'tours.run.ways.sac.t6': 'T6, очень сложный высокогорный поход', 'tours.bike.profile': 'Профиль', 'tours.bike.profile.touring': 'Туризм', 'tours.bike.profile.road': 'Шоссе', diff --git a/shared/src/i18n/sk/tours.ts b/shared/src/i18n/sk/tours.ts index b45c6d637..b631a2cd7 100644 --- a/shared/src/i18n/sk/tours.ts +++ b/shared/src/i18n/sk/tours.ts @@ -432,6 +432,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Turistické stupne, ako ich zadali mapovači OpenStreetMap. Cesta bez stupňa je neznáma, nie ľahká. Nehovoria nič o tom, či sa po ceste dá bežať alebo či sa pre teba hodí.', 'tours.run.ways.gradeTop': 'Najnáročnejšia hodnotená cesta: {grade}', + 'tours.run.ways.sac.t1': 'T1, pešia turistika', + 'tours.run.ways.sac.t2': 'T2, horská turistika', + 'tours.run.ways.sac.t3': 'T3, náročná horská turistika', + 'tours.run.ways.sac.t4': 'T4, vysokohorská turistika', + 'tours.run.ways.sac.t5': 'T5, náročná vysokohorská turistika', + 'tours.run.ways.sac.t6': 'T6, veľmi náročná vysokohorská turistika', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Trekking', 'tours.bike.profile.road': 'Cestný', diff --git a/shared/src/i18n/sv/tours.ts b/shared/src/i18n/sv/tours.ts index 216587c4a..a27cfbd32 100644 --- a/shared/src/i18n/sv/tours.ts +++ b/shared/src/i18n/sv/tours.ts @@ -429,6 +429,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Vandringsgrader som OpenStreetMap-kartläggare har angett dem. En väg utan grad är okänd, inte lätt. De säger inget om huruvida en väg går att springa eller passar dig.', 'tours.run.ways.gradeTop': 'Svåraste graderade led: {grade}', + 'tours.run.ways.sac.t1': 'T1, vandring', + 'tours.run.ways.sac.t2': 'T2, bergsvandring', + 'tours.run.ways.sac.t3': 'T3, krävande bergsvandring', + 'tours.run.ways.sac.t4': 'T4, alpin vandring', + 'tours.run.ways.sac.t5': 'T5, krävande alpin vandring', + 'tours.run.ways.sac.t6': 'T6, svår alpin vandring', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Tur', 'tours.bike.profile.road': 'Landsväg', diff --git a/shared/src/i18n/th/tours.ts b/shared/src/i18n/th/tours.ts index e47baf488..2b00dc775 100644 --- a/shared/src/i18n/th/tours.ts +++ b/shared/src/i18n/th/tours.ts @@ -410,6 +410,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'ระดับการเดินป่าตามที่ผู้ทำแผนที่ OpenStreetMap ระบุไว้ ทางที่ไม่มีระดับคือไม่ทราบ ไม่ใช่ง่าย และไม่ได้บอกว่าทางนั้นวิ่งได้หรือเหมาะกับคุณหรือไม่', 'tours.run.ways.gradeTop': 'ทางที่มีระดับยากที่สุด: {grade}', + 'tours.run.ways.sac.t1': 'T1 เดินป่า', + 'tours.run.ways.sac.t2': 'T2 เดินป่าบนภูเขา', + 'tours.run.ways.sac.t3': 'T3 เดินป่าบนภูเขาระดับท้าทาย', + 'tours.run.ways.sac.t4': 'T4 เดินป่าแบบอัลไพน์', + 'tours.run.ways.sac.t5': 'T5 เดินป่าแบบอัลไพน์ระดับท้าทาย', + 'tours.run.ways.sac.t6': 'T6 เดินป่าแบบอัลไพน์ระดับยาก', 'tours.bike.profile': 'โปรไฟล์', 'tours.bike.profile.touring': 'ทัวริ่ง', 'tours.bike.profile.road': 'เสือหมอบ', diff --git a/shared/src/i18n/tours-locales.spec.ts b/shared/src/i18n/tours-locales.spec.ts index 14f81005d..badf68b86 100644 --- a/shared/src/i18n/tours-locales.spec.ts +++ b/shared/src/i18n/tours-locales.spec.ts @@ -20,7 +20,7 @@ const tokens = (value: string) => [...value.matchAll(/\{[^{}]+\}/g)].map((match) // placeholder spec; here only the general keys are. const groups = pluralGroups(Object.keys(english)); const generalKeys = (keys: string[]) => keys.filter((key) => !pluralFormOf(key, groups)); -const GENERAL_KEY_COUNT = 855; +const GENERAL_KEY_COUNT = 861; function literalKeys(source: string): string[] { const tree = ts.createSourceFile('locale.ts', source, ts.ScriptTarget.Latest, true); diff --git a/shared/src/i18n/tr/tours.ts b/shared/src/i18n/tr/tours.ts index 4998b1783..a3c320fe0 100644 --- a/shared/src/i18n/tr/tours.ts +++ b/shared/src/i18n/tr/tours.ts @@ -432,6 +432,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'OpenStreetMap haritacılarının verdiği yürüyüş dereceleri. Derecesi olmayan bir yol kolay değil, bilinmiyor demektir. Bir yolun koşulabilir olup olmadığı ya da sana uyup uymadığı hakkında bir şey söylemezler.', 'tours.run.ways.gradeTop': 'En zor derecelendirilmiş patika: {grade}', + 'tours.run.ways.sac.t1': 'T1, doğa yürüyüşü', + 'tours.run.ways.sac.t2': 'T2, dağ yürüyüşü', + 'tours.run.ways.sac.t3': 'T3, zorlu dağ yürüyüşü', + 'tours.run.ways.sac.t4': 'T4, yüksek dağ yürüyüşü', + 'tours.run.ways.sac.t5': 'T5, zorlu yüksek dağ yürüyüşü', + 'tours.run.ways.sac.t6': 'T6, çok zor yüksek dağ yürüyüşü', 'tours.bike.profile': 'Profil', 'tours.bike.profile.touring': 'Tur', 'tours.bike.profile.road': 'Yol', diff --git a/shared/src/i18n/uk/tours.ts b/shared/src/i18n/uk/tours.ts index f81ea0912..ff7bb09aa 100644 --- a/shared/src/i18n/uk/tours.ts +++ b/shared/src/i18n/uk/tours.ts @@ -446,6 +446,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Категорії складності стежок, як їх вказали учасники OpenStreetMap. Шлях без категорії невідомий, а не легкий. Вони нічого не кажуть про те, чи можна ним бігти і чи підходить він вам.', 'tours.run.ways.gradeTop': 'Найскладніша оцінена стежка: {grade}', + 'tours.run.ways.sac.t1': 'T1, піший похід', + 'tours.run.ways.sac.t2': 'T2, гірський похід', + 'tours.run.ways.sac.t3': 'T3, складний гірський похід', + 'tours.run.ways.sac.t4': 'T4, високогірний похід', + 'tours.run.ways.sac.t5': 'T5, складний високогірний похід', + 'tours.run.ways.sac.t6': 'T6, дуже складний високогірний похід', 'tours.bike.profile': 'Профіль', 'tours.bike.profile.touring': 'Туризм', 'tours.bike.profile.road': 'Шосе', diff --git a/shared/src/i18n/vi/tours.ts b/shared/src/i18n/vi/tours.ts index ab3cce2b9..392100a61 100644 --- a/shared/src/i18n/vi/tours.ts +++ b/shared/src/i18n/vi/tours.ts @@ -430,6 +430,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfo': 'Cấp độ đi bộ đường dài do người vẽ bản đồ OpenStreetMap gán. Đường không có cấp là chưa rõ, không phải dễ. Chúng không cho biết đường có chạy được hay có hợp với bạn không.', 'tours.run.ways.gradeTop': 'Đường được xếp cấp khó nhất: {grade}', + 'tours.run.ways.sac.t1': 'T1, đi bộ đường dài', + 'tours.run.ways.sac.t2': 'T2, đi bộ đường dài trên núi', + 'tours.run.ways.sac.t3': 'T3, đi bộ đường dài trên núi đòi hỏi kỹ năng cao', + 'tours.run.ways.sac.t4': 'T4, đi bộ đường dài trên núi cao', + 'tours.run.ways.sac.t5': 'T5, đi bộ đường dài trên núi cao đòi hỏi kỹ năng cao', + 'tours.run.ways.sac.t6': 'T6, đi bộ đường dài trên núi cao rất khó', 'tours.bike.profile': 'Hồ sơ', 'tours.bike.profile.touring': 'Du lịch', 'tours.bike.profile.road': 'Đường trường', diff --git a/shared/src/i18n/zh-TW/tours.ts b/shared/src/i18n/zh-TW/tours.ts index bcb7d40fe..800154e8b 100644 --- a/shared/src/i18n/zh-TW/tours.ts +++ b/shared/src/i18n/zh-TW/tours.ts @@ -390,6 +390,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfoLabel': '關於路徑難度', 'tours.run.ways.gradeInfo': 'OpenStreetMap 繪圖者標註的健行難度。沒有難度的路是未知,而不是容易。它們不說明一條路能否跑,也不說明是否適合你。', 'tours.run.ways.gradeTop': '最難的已評級路徑:{grade}', + 'tours.run.ways.sac.t1': 'T1,健行', + 'tours.run.ways.sac.t2': 'T2,山區健行', + 'tours.run.ways.sac.t3': 'T3,具挑戰性的山區健行', + 'tours.run.ways.sac.t4': 'T4,高山健行', + 'tours.run.ways.sac.t5': 'T5,具挑戰性的高山健行', + 'tours.run.ways.sac.t6': 'T6,高難度高山健行', 'tours.bike.profile': '類型', 'tours.bike.profile.touring': '旅行', 'tours.bike.profile.road': '公路', diff --git a/shared/src/i18n/zh/tours.ts b/shared/src/i18n/zh/tours.ts index df1f9f2bf..b33ee2d56 100644 --- a/shared/src/i18n/zh/tours.ts +++ b/shared/src/i18n/zh/tours.ts @@ -391,6 +391,12 @@ const tours: TranslationStrings = { 'tours.run.ways.gradeInfoLabel': '关于路径难度', 'tours.run.ways.gradeInfo': 'OpenStreetMap 绘图者标注的徒步难度。没有难度的路是未知,而不是容易。它们不说明一条路能否跑,也不说明是否适合你。', 'tours.run.ways.gradeTop': '最难的已评级路径:{grade}', + 'tours.run.ways.sac.t1': 'T1,徒步', + 'tours.run.ways.sac.t2': 'T2,山地徒步', + 'tours.run.ways.sac.t3': 'T3,挑战性山地徒步', + 'tours.run.ways.sac.t4': 'T4,高山徒步', + 'tours.run.ways.sac.t5': 'T5,挑战性高山徒步', + 'tours.run.ways.sac.t6': 'T6,高难度高山徒步', 'tours.bike.profile': '类型', 'tours.bike.profile.touring': '旅行', 'tours.bike.profile.road': '公路',