mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
fix(i18n): the corridor's truncation note takes a singular, and three plurals were wrong anyway
`mobileTrip.rtTruncated` interpolated a count into a sentence naming the stretch once, so at one truncated area it read "1 stretches". Two keys now, picked by the count, the shape this codebase already uses where a number changes its noun. Writing the singular turned up three plurals that were wrong at counts the old one-form key could never reach. Polish and Czech both had the genitive plural with a singular verb, which is right at five and wrong at two; Arabic had the 3 to 10 form, wrong at two and again from eleven. All three now put the count after a colon, where no form has to agree with it. Russian and Ukrainian were already correct at both, since their phrase leads with a locative, and were left alone. The eight languages that keep the singular noun after a numeral differ only in the numeral, which is what they should do.
This commit is contained in:
@@ -64,6 +64,7 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'من بداية المرحلة',
|
||||
'mobileTrip.rtNoneAhead': 'لا شيء على الطريق أمامك. جرّب المرحلة كاملة.',
|
||||
'mobileTrip.rtNoneOnStage': 'لا شيء من هذا النوع على طول هذه المرحلة.',
|
||||
'mobileTrip.rtTruncated': '{count} مقاطع فيها أكثر مما يتسع في إجابة واحدة. اختر أنواعًا أقل لرؤية الباقي.',
|
||||
'mobileTrip.rtTruncated.one': 'مقطع واحد فيه أكثر مما يتسع في إجابة واحدة. اختر أنواعًا أقل لرؤية الباقي.',
|
||||
'mobileTrip.rtTruncated.other': 'مقاطع فيها أكثر مما يتسع في إجابة واحدة: {count}. اختر أنواعًا أقل لرؤية الباقي.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'A partir do início da etapa',
|
||||
'mobileTrip.rtNoneAhead': 'Nada na estrada à frente. Tente a etapa inteira.',
|
||||
'mobileTrip.rtNoneOnStage': 'Nada desse tipo ao longo desta etapa.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 trecho tinha mais do que cabe em uma resposta. Escolha menos tipos para ver o resto.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} trechos tinham mais do que cabe em uma resposta. Escolha menos tipos para ver o resto.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,8 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Des de l’inici de l’etapa',
|
||||
'mobileTrip.rtNoneAhead': 'No hi ha res a la carretera que tens al davant. Prova tota l’etapa.',
|
||||
'mobileTrip.rtNoneOnStage': 'No hi ha res d’aquest tipus al llarg d’aquesta etapa.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one': '1 tram tenia més del que cap en una resposta. Tria menys tipus per veure la resta.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} trams tenien més del que cap en una resposta. Tria menys tipus per veure la resta.',
|
||||
};
|
||||
|
||||
|
||||
@@ -66,7 +66,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Od začátku etapy',
|
||||
'mobileTrip.rtNoneAhead': 'Na cestě před vámi nic není. Zkuste celou etapu.',
|
||||
'mobileTrip.rtNoneOnStage': 'Nic takového podél této etapy není.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'{count} úseků mělo víc, než se vejde do jedné odpovědi. Vyberte méně druhů, ať uvidíte zbytek.',
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 úsek měl víc, než se vejde do jedné odpovědi. Vyberte méně druhů, ať uvidíte zbytek.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'Úseky, kde bylo víc, než se vejde do jedné odpovědi: {count}. Vyberte méně druhů, ať uvidíte zbytek.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -66,7 +66,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Ab dem Anfang der Etappe',
|
||||
'mobileTrip.rtNoneAhead': 'Auf der Strecke voraus ist nichts. Versuch die ganze Etappe.',
|
||||
'mobileTrip.rtNoneOnStage': 'Auf dieser Etappe gibt es davon nichts.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 Abschnitt hatte mehr, als in eine Antwort passt. Wähl weniger Arten, um den Rest zu sehen.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} Abschnitte hatten mehr, als in eine Antwort passt. Wähl weniger Arten, um den Rest zu sehen.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -65,7 +65,8 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'From the start of the stage',
|
||||
'mobileTrip.rtNoneAhead': 'Nothing on the road ahead. Try the whole stage.',
|
||||
'mobileTrip.rtNoneOnStage': 'Nothing of that kind along this stage.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one': '1 stretch had more than fits in one answer. Pick fewer kinds to see the rest.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} stretches had more than fits in one answer. Pick fewer kinds to see the rest.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Desde el inicio de la etapa',
|
||||
'mobileTrip.rtNoneAhead': 'No hay nada en la carretera que tienes por delante. Prueba con toda la etapa.',
|
||||
'mobileTrip.rtNoneOnStage': 'No hay nada de eso a lo largo de esta etapa.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 tramo tenía más de lo que cabe en una respuesta. Elige menos tipos para ver el resto.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} tramos tenían más de lo que cabe en una respuesta. Elige menos tipos para ver el resto.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Depuis le début de l’étape',
|
||||
'mobileTrip.rtNoneAhead': 'Rien sur la route devant vous. Essayez toute l’étape.',
|
||||
'mobileTrip.rtNoneOnStage': 'Rien de ce genre le long de cette étape.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 tronçon avait plus que ce qui tient dans une réponse. Choisissez moins de types pour voir le reste.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} tronçons avaient plus que ce qui tient dans une réponse. Choisissez moins de types pour voir le reste.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Από την αρχή του σκέλους',
|
||||
'mobileTrip.rtNoneAhead': 'Τίποτα στον δρόμο μπροστά σας. Δοκιμάστε όλο το σκέλος.',
|
||||
'mobileTrip.rtNoneOnStage': 'Τίποτα τέτοιο κατά μήκος αυτού του σκέλους.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 τμήμα είχε περισσότερα από όσα χωρούν σε μία απάντηση. Διαλέξτε λιγότερα είδη για να δείτε τα υπόλοιπα.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} τμήματα είχαν περισσότερα από όσα χωρούν σε μία απάντηση. Διαλέξτε λιγότερα είδη για να δείτε τα υπόλοιπα.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'A szakasz elejétől',
|
||||
'mobileTrip.rtNoneAhead': 'Az előtted lévő úton nincs semmi. Próbáld az egész szakaszt.',
|
||||
'mobileTrip.rtNoneOnStage': 'Ezen a szakaszon nincs ilyesmi.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 szakaszon több volt, mint ami egy válaszba fér. Válassz kevesebb fajtát, hogy lásd a többit.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} szakaszon több volt, mint ami egy válaszba fér. Válassz kevesebb fajtát, hogy lásd a többit.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Dari awal etape',
|
||||
'mobileTrip.rtNoneAhead': 'Tidak ada apa-apa di jalan di depan. Coba seluruh etape.',
|
||||
'mobileTrip.rtNoneOnStage': 'Tidak ada yang seperti itu di sepanjang etape ini.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 ruas punya lebih banyak daripada yang muat dalam satu jawaban. Pilih lebih sedikit jenis untuk melihat sisanya.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} ruas punya lebih banyak daripada yang muat dalam satu jawaban. Pilih lebih sedikit jenis untuk melihat sisanya.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Dall’inizio della tappa',
|
||||
'mobileTrip.rtNoneAhead': 'Niente sulla strada davanti a te. Prova con tutta la tappa.',
|
||||
'mobileTrip.rtNoneOnStage': 'Niente del genere lungo questa tappa.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 tratto aveva più di quanto stia in una risposta. Scegli meno tipi per vedere il resto.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} tratti avevano più di quanto stia in una risposta. Scegli meno tipi per vedere il resto.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -64,6 +64,7 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': '区間の始まりから',
|
||||
'mobileTrip.rtNoneAhead': 'この先の道沿いには何もありません。区間全体で試してください。',
|
||||
'mobileTrip.rtNoneOnStage': 'この区間沿いにはそうした場所はありません。',
|
||||
'mobileTrip.rtTruncated': '{count} 区間は1回の答えに収まりきりませんでした。種類を減らすと残りも見られます。',
|
||||
'mobileTrip.rtTruncated.one': '1 区間は1回の答えに収まりきりませんでした。種類を減らすと残りも見られます。',
|
||||
'mobileTrip.rtTruncated.other': '{count} 区間は1回の答えに収まりきりませんでした。種類を減らすと残りも見られます。',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -64,6 +64,8 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': '구간 시작부터',
|
||||
'mobileTrip.rtNoneAhead': '앞쪽 도로에는 아무것도 없습니다. 구간 전체로 찾아보세요.',
|
||||
'mobileTrip.rtNoneOnStage': '이 구간에는 그런 곳이 없습니다.',
|
||||
'mobileTrip.rtTruncated': '{count}개 구간은 한 번의 답에 담기지 않았습니다. 종류를 줄이면 나머지도 볼 수 있습니다.',
|
||||
'mobileTrip.rtTruncated.one': '1개 구간은 한 번의 답에 담기지 않았습니다. 종류를 줄이면 나머지도 볼 수 있습니다.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count}개 구간은 한 번의 답에 담기지 않았습니다. 종류를 줄이면 나머지도 볼 수 있습니다.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -65,7 +65,8 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Vanaf het begin van de etappe',
|
||||
'mobileTrip.rtNoneAhead': 'Niets op de weg die voor je ligt. Probeer de hele etappe.',
|
||||
'mobileTrip.rtNoneOnStage': 'Niets van dat soort langs deze etappe.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one': '1 stuk had meer dan in één antwoord past. Kies minder soorten om de rest te zien.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} stukken hadden meer dan in één antwoord past. Kies minder soorten om de rest te zien.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -66,7 +66,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Od początku etapu',
|
||||
'mobileTrip.rtNoneAhead': 'Na drodze przed tobą nic nie ma. Spróbuj całego etapu.',
|
||||
'mobileTrip.rtNoneOnStage': 'Na tym etapie nie ma nic takiego.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'{count} odcinków miało więcej, niż mieści się w jednej odpowiedzi. Wybierz mniej rodzajów, by zobaczyć resztę.',
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 odcinek miał więcej, niż mieści się w jednej odpowiedzi. Wybierz mniej rodzajów, by zobaczyć resztę.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'Odcinki, na których było więcej, niż mieści się w jednej odpowiedzi: {count}. Wybierz mniej rodzajów, by zobaczyć resztę.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'От начала этапа',
|
||||
'mobileTrip.rtNoneAhead': 'На дороге впереди ничего нет. Попробуйте весь этап.',
|
||||
'mobileTrip.rtNoneOnStage': 'На этом этапе ничего такого нет.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'На 1 участке нашлось больше, чем помещается в один ответ. Выберите меньше видов, чтобы увидеть остальное.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'На {count} участках нашлось больше, чем помещается в один ответ. Выберите меньше видов, чтобы увидеть остальное.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -65,7 +65,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Från etappens början',
|
||||
'mobileTrip.rtNoneAhead': 'Inget på vägen framför dig. Prova hela etappen.',
|
||||
'mobileTrip.rtNoneOnStage': 'Inget sådant längs den här etappen.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 sträcka hade mer än vad som får plats i ett svar. Välj färre sorter för att se resten.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} sträckor hade mer än vad som får plats i ett svar. Välj färre sorter för att se resten.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -65,7 +65,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Etabın başından itibaren',
|
||||
'mobileTrip.rtNoneAhead': 'İleride yol üzerinde bir şey yok. Tüm etabı deneyin.',
|
||||
'mobileTrip.rtNoneOnStage': 'Bu etap boyunca bu türden bir şey yok.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 kesimde tek bir yanıta sığandan fazlası vardı. Geri kalanı görmek için daha az tür seçin.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} kesimde tek bir yanıta sığandan fazlası vardı. Geri kalanı görmek için daha az tür seçin.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Від початку етапу',
|
||||
'mobileTrip.rtNoneAhead': 'На дорозі попереду нічого немає. Спробуйте весь етап.',
|
||||
'mobileTrip.rtNoneOnStage': 'На цьому етапі нічого такого немає.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'На 1 ділянці знайшлося більше, ніж уміщується в одну відповідь. Виберіть менше видів, щоб побачити решту.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'На {count} ділянках знайшлося більше, ніж уміщується в одну відповідь. Виберіть менше видів, щоб побачити решту.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -67,7 +67,9 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': 'Từ đầu chặng',
|
||||
'mobileTrip.rtNoneAhead': 'Không có gì trên đường phía trước. Thử cả chặng xem sao.',
|
||||
'mobileTrip.rtNoneOnStage': 'Không có gì thuộc loại đó dọc chặng này.',
|
||||
'mobileTrip.rtTruncated':
|
||||
'mobileTrip.rtTruncated.one':
|
||||
'1 đoạn có nhiều hơn mức vừa trong một câu trả lời. Chọn ít loại hơn để xem phần còn lại.',
|
||||
'mobileTrip.rtTruncated.other':
|
||||
'{count} đoạn có nhiều hơn mức vừa trong một câu trả lời. Chọn ít loại hơn để xem phần còn lại.',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -63,6 +63,7 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': '從本段起點起',
|
||||
'mobileTrip.rtNoneAhead': '前方路上沒有找到。試試整段。',
|
||||
'mobileTrip.rtNoneOnStage': '本段沿途沒有這類地點。',
|
||||
'mobileTrip.rtTruncated': '{count} 段路的結果超出一次回答能容納的量。少選幾類就能看到其餘的。',
|
||||
'mobileTrip.rtTruncated.one': '1 段路的結果超出一次回答能容納的量。少選幾類就能看到其餘的。',
|
||||
'mobileTrip.rtTruncated.other': '{count} 段路的結果超出一次回答能容納的量。少選幾類就能看到其餘的。',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
@@ -63,6 +63,7 @@ const mobileTrip: TranslationStrings = {
|
||||
'mobileTrip.rtFromStart': '从本段起点起',
|
||||
'mobileTrip.rtNoneAhead': '前方路上没有找到。试试整段。',
|
||||
'mobileTrip.rtNoneOnStage': '本段沿途没有这类地点。',
|
||||
'mobileTrip.rtTruncated': '{count} 段路的结果超出一次回答能装下的量。少选几类就能看到其余的。',
|
||||
'mobileTrip.rtTruncated.one': '1 段路的结果超出一次回答能装下的量。少选几类就能看到其余的。',
|
||||
'mobileTrip.rtTruncated.other': '{count} 段路的结果超出一次回答能装下的量。少选几类就能看到其余的。',
|
||||
};
|
||||
export default mobileTrip;
|
||||
|
||||
Reference in New Issue
Block a user