From e7a50587755899dfb9fb2a96f958aa914e27a885 Mon Sep 17 00:00:00 2001 From: MpakobecEx Date: Wed, 21 Oct 2026 00:06:50 +0500 Subject: [PATCH] Confirm translation terms: yo letter, boosted unit, retire Added the yo letter (porazhyon), renamed boosted unit to 'usilennaya karta', confirmed 'unichtozhit' for retire. Refined the forbidden-term check to allow 'usilennaya' while still catching 'usilen'/'usilennyy'. --- content/translations/ru.yaml | 20 ++++++++-------- docs/translation-rules.md | 23 ++++++++++--------- .../Translations/TranslationService.cs | 4 +++- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/content/translations/ru.yaml b/content/translations/ru.yaml index 19dfd35..285b401 100644 --- a/content/translations/ru.yaml +++ b/content/translations/ru.yaml @@ -30,7 +30,7 @@ cards: nameEn: "Battle Sister, Chocolat" template: |- {cont}:{sentinel} (You may only have up to four cards with "{cont}:{sentinel}" in a deck.){auto}:[Choose a {clan:oracle-think-tank} from your hand, and discard it] When this unit is placed on {gc}, you may pay the cost. If you do, choose one of your {clan:oracle-think-tank} that is being attacked, and that unit cannot be hit until end of that battle. - textRu: "{cont}:{sentinel} (В колоде может быть не более четырёх карт с «{cont}:{sentinel}».){auto}:[Выберите {clan:oracle-think-tank} из руки и сбросьте её] Когда эта карта помещается в {gc}, вы можете оплатить стоимость. Если вы это сделали, выберите одного из ваших {clan:oracle-think-tank}, который подвергается атаке. Он не может быть поражен до конца этого боя." + textRu: "{cont}:{sentinel} (В колоде может быть не более четырёх карт с «{cont}:{sentinel}».){auto}:[Выберите {clan:oracle-think-tank} из руки и сбросьте её] Когда эта карта помещается в {gc}, вы можете оплатить стоимость. Если вы это сделали, выберите одного из ваших {clan:oracle-think-tank}, который подвергается атаке. Он не может быть поражён до конца этого боя." - nameId: battle-sister-cocoa nameEn: "Battle Sister, Cocoa" template: |- @@ -46,7 +46,7 @@ cards: template: |- {auto}:When another {clan:nova-grappler} rides this unit, you may call this card to {rc}. {auto}{rc}:When this unit boosts, the boosted unit gets {power} +3000 until end of that battle, and at the begininng of the end phase of that turn, return this unit to your deck, and shuffle your deck. - textRu: "{auto}:Когда другой {clan:nova-grappler} сменяет эту карту, вы можете призвать её в {rc}.\n{auto}{rc}:Когда эта карта поддерживает, атакующий получает {power} +3000 до конца этого боя, и в начале конечной фазы этого хода верните эту карту в колоду и перемешайте её." + textRu: "{auto}:Когда другой {clan:nova-grappler} сменяет эту карту, вы можете призвать её в {rc}.\n{auto}{rc}:Когда эта карта поддерживает, усиленная карта получает {power} +3000 до конца этого боя, и в начале конечной фазы этого хода верните эту карту в колоду и перемешайте её." - nameId: berserk-dragon nameEn: "Berserk Dragon" template: |- @@ -196,7 +196,7 @@ cards: template: |- {cont}:{sentinel} (You may only have up to four cards with "{cont}:{sentinel}" in a deck.) {auto}:[Choose a {clan:royal-paladin} from your hand, and discard it] When this unit is placed on {gc}, you may pay the cost. If you do, choose one of your {clan:royal-paladin} that is being attacked, and that unit cannot be hit until end of that battle. - textRu: "{cont}:{sentinel} (В колоде может быть не более четырёх карт с «{cont}:{sentinel}».)\n{auto}:[Выберите {clan:royal-paladin} из руки и сбросьте её] Когда эта карта помещается в {gc}, вы можете оплатить стоимость. Если вы это сделали, выберите одного из ваших {clan:royal-paladin}, который подвергается атаке. Он не может быть поражен до конца этого боя." + textRu: "{cont}:{sentinel} (В колоде может быть не более четырёх карт с «{cont}:{sentinel}».)\n{auto}:[Выберите {clan:royal-paladin} из руки и сбросьте её] Когда эта карта помещается в {gc}, вы можете оплатить стоимость. Если вы это сделали, выберите одного из ваших {clan:royal-paladin}, который подвергается атаке. Он не может быть поражён до конца этого боя." - nameId: flogal nameEn: "Flogal" template: "" @@ -322,7 +322,7 @@ cards: textRu: |- (В колоде может быть не более четырёх карт с {heal}.) {auto}:Когда другой {clan:oracle-think-tank} сменяет эту карту, вы можете призвать её в {rc}. - {auto}{rc}:Когда эта карта поддерживает, атакующий получает {power} +3000 до конца этого боя, и в начале конечной фазы этого хода верните эту карту в колоду и перемешайте её. + {auto}{rc}:Когда эта карта поддерживает, усиленная карта получает {power} +3000 до конца этого боя, и в начале конечной фазы этого хода верните эту карту в колоду и перемешайте её. - nameId: lucky-girl nameEn: "Lucky Girl" template: "" @@ -359,7 +359,7 @@ cards: template: |- {auto}{rc}:When this unit boosts a unit named "Blue Dust", the boosted unit gets {power} +4000 until end of that battle. textRu: |- - {auto}{rc}:Когда эта карта поддерживает карту с именем "Blue Dust", атакующий получает {power} +4000 до конца этого боя. + {auto}{rc}:Когда эта карта поддерживает карту с именем "Blue Dust", усиленная карта получает {power} +4000 до конца этого боя. - nameId: oracle-guardian-apollon nameEn: "Oracle Guardian, Apollon" template: |- @@ -385,7 +385,7 @@ cards: template: |- {auto}{rc}:When this unit boosts a unit named "King of Sword", the boosted unit gets {power} +4000 until end of that battle. textRu: |- - {auto}{rc}:Когда эта карта поддерживает карту с именем "King of Sword", атакующий получает {power} +4000 до конца этого боя. + {auto}{rc}:Когда эта карта поддерживает карту с именем "King of Sword", усиленная карта получает {power} +4000 до конца этого боя. - nameId: redshoe-milly nameEn: "Redshoe, Milly" template: |- @@ -490,13 +490,13 @@ cards: template: |- {auto}{rc}:When this unit boosts an {clan:oracle-think-tank} vanguard, if the number of cards in your hand is four or greater, the boosted unit gets {power} +4000 until end of that battle. textRu: |- - {auto}{rc}:Когда эта карта поддерживает Авангард {clan:oracle-think-tank}, если в вашей руке четыре или больше карт, атакующий получает {power} +4000 до конца этого боя. + {auto}{rc}:Когда эта карта поддерживает Авангард {clan:oracle-think-tank}, если в вашей руке четыре или больше карт, усиленная карта получает {power} +4000 до конца этого боя. - nameId: wingal nameEn: "Wingal" template: |- {auto}{rc}:When this unit boosts a card named "Blaster Blade", the boosted unit gets {power} +4000 until end of that battle. textRu: |- - {auto}{rc}:Когда эта карта поддерживает карту с именем "Blaster Blade", атакующий получает {power} +4000 до конца этого боя. + {auto}{rc}:Когда эта карта поддерживает карту с именем "Blaster Blade", усиленная карта получает {power} +4000 до конца этого боя. - nameId: wonder-boy nameEn: "Wonder Boy" template: "" @@ -507,13 +507,13 @@ cards: {cont}:{sentinel} (You may only have up to four cards with "{cont}:{sentinel}" in a deck.){auto}:[Choose a {clan:kagero} from your hand, and discard it] When this unit is placed on {gc}, you may pay the cost. If you do, choose one of your {clan:kagero} that is being attacked, and that unit cannot be hit until end of that battle. textRu: |- {cont}:{sentinel} (В колоде может быть не более четырёх карт с «{cont}:{sentinel}».) - {auto}:[Выберите {clan:kagero} из руки и сбросьте её] Когда эта карта помещается в {gc}, вы можете оплатить стоимость. Если вы это сделали, выберите одного из ваших {clan:kagero}, который подвергается атаке. Он не может быть поражен до конца этого боя. + {auto}:[Выберите {clan:kagero} из руки и сбросьте её] Когда эта карта помещается в {gc}, вы можете оплатить стоимость. Если вы это сделали, выберите одного из ваших {clan:kagero}, который подвергается атаке. Он не может быть поражён до конца этого боя. - nameId: wyvern-strike-jarran nameEn: "Wyvern Strike, Jarran" template: |- {auto}{rc}:When this unit boosts a card named "Wyvern Strike, Tejas", the boosted unit gets {power} +4000 until end of that battle. textRu: |- - {auto}{rc}:Когда эта карта поддерживает карту с именем "Wyvern Strike, Tejas", атакующий получает {power} +4000 до конца этого боя. + {auto}{rc}:Когда эта карта поддерживает карту с именем "Wyvern Strike, Tejas", усиленная карта получает {power} +4000 до конца этого боя. - nameId: wyvern-strike-tejas nameEn: "Wyvern Strike, Tejas" template: |- diff --git a/docs/translation-rules.md b/docs/translation-rules.md index a62d407..2f40adb 100644 --- a/docs/translation-rules.md +++ b/docs/translation-rules.md @@ -1,6 +1,6 @@ # Правила перевода текстов карт -Версия 0.3 — учтены две партии правок заказчика. +Версия 0.4 — учтены три партии правок заказчика. Правки в этом файле делаются только после подтверждения на реальных картах. --- @@ -35,7 +35,7 @@ | all of your units | **все ваши карты** | | | vanguard | **Авангард** | с заглавной в любом месте предложения | | rear-guard | **Арьергард** | с заглавной в любом месте предложения | -| boosted unit | **атакующий** | тот, кого поддержали | +| boosted unit | **усиленная карта** | не «атакующий» | | deck | колода | | | hand | рука | | | soul | душа | «в душу», «из души» | @@ -104,8 +104,9 @@ - **Авангард** и **Арьергард** — всегда с заглавной, даже в середине предложения. Остальные термины — со строчной. - Предлог направления: **из** зоны, а не «с». «С верха колоды» — исключение. +- Буква **ё** используется: «поражён», «четырёх», «всё». - Длинный хвост через «, и …» разбивается на отдельное предложение: - `…который подвергается атаке. Он не может быть поражен до конца этого боя.` + `…который подвергается атаке. Он не может быть поражён до конца этого боя.` - Повтор «эта карта» в соседних фразах заменяется местоимением: «призвать **её**», «верните **её** в колоду». @@ -114,15 +115,14 @@ 1. **`stand phase`** → «фаза стойки». Альтернатива: «фаза восстановления». 2. **`close step`** → «шаг завершения». Альтернатива: «шаг закрытия». 3. **`end phase`** → «конечная фаза». Альтернатива: «фаза завершения». -4. **`retire`** → «уничтожить». Альтернатива: «отправить в зону сброса». -5. **`call`** → «призвать». Альтернатива: «вызвать». -6. **Буква «ё»**: вы пишете «поражен», но оставляете «четырёх». Зафиксировать - единый вариант или оставить как есть? -7. **`boosted unit`** → «атакующий». Альтернатива: «усиленная карта». -8. **Обращение к игроку** — «вы» или безличное «необходимо». -9. **Названия зон в подсказках** — «Круг Авангарда» / «Круг Арьергарда»; +4. **`call`** → «призвать». Альтернатива: «вызвать». +5. **Обращение к игроку** — «вы» или безличное «необходимо». +6. **Названия зон в подсказках** — «Круг Авангарда» / «Круг Арьергарда»; подтвердить, что так и надо. +Подтверждено и вынесено из спорных: `retire` → «уничтожить», `boosted unit` → +«усиленная карта», буква «ё» разрешена. + ## 7. Как править 1. Правьте `textRu` в `content/translations/ru.yaml`. @@ -136,7 +136,7 @@ Проверка `translations check` уже ловит нарушения стиля: запрещённые термины (`юнит`, `размещается на`, `райд`, `попадает`, `драйвек`, `усиливает`, `HEAL`, -`Restraint`, `рир-гард`, `вэнгард`, `грейд`) и расхождения по токенам. +`Restraint`, `рир-гард`, `вэнгард`, `грейд`, `поражен`) и расхождения по токенам. Дальше по вашим правкам: 1. Сравниваю вашу версию с текущей и выписываю расхождения по категориям. @@ -147,6 +147,7 @@ | Версия | Что изменилось | |---|---| +| 0.4 | Подтверждено: `retire` → «уничтожить», `boosted unit` → «усиленная карта», буква «ё» разрешена («поражён», «четырёх»). Заменено во всех текстах. | | 0.3 | `unit` → **карта** (и «эта карта», «выбранная карта», «все ваши карты»); `place on` → «помещается **в**»; `ride` → **смена**; `boost` → **поддерживать**, `boosted unit` → «атакующий»; `attack hits` → «атака проходит»; `drive check` → «проверка»; `Restraint` → «Сдерживание»; `{heal} HEAL` → `{heal}`; длинные хвосты через «, и» разбиваются на предложения; «призвать эту карту» → «призвать её». Применено ко всем 66 текстам. | | 0.2 | `vanguard` → Авангард, `rear-guard` → Арьергард (с заглавной), `grade` → ранг, `from (RC/GC)` → «из». | | 0.1 | Первый проход по 66 текстам, терминология-черновик. | diff --git a/server/src/Vanguard.Content/Translations/TranslationService.cs b/server/src/Vanguard.Content/Translations/TranslationService.cs index 14d38ae..fd86066 100644 --- a/server/src/Vanguard.Content/Translations/TranslationService.cs +++ b/server/src/Vanguard.Content/Translations/TranslationService.cs @@ -106,13 +106,15 @@ public static class TranslationService /// Термины, которые не должны появляться в переведённом тексте. private static readonly (string Term, string Hint)[] ForbiddenTerms = { + ("поражен", "используйте «поражён» (буква ё)"), ("юнит", "используйте «карта»"), ("размещается на", "используйте «помещается в»"), ("райд", "используйте «смена»"), ("попадает", "используйте «проходит»"), ("драйвек", "используйте «проверка»"), ("усилива", "используйте «поддерживает»"), - ("усилен", "используйте «поддерживает»"), + ("усиленный", "используйте «поддерживает»"), + ("усилен ", "используйте «поддерживает»"), ("рир-гард", "используйте «Арьергард»"), ("вэнгард", "используйте «Авангард»"), ("грейд", "используйте «ранг»"),