Static localization helper for the Russian UI. Walks the panel tree and translates Label text and TextEntry placeholders through a phrase dictionary and regex patterns, tracking per-control source and rendered state and refreshing the dictionary after a hotload.
using Sandbox;
using Sandbox.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text.RegularExpressions;
namespace Socer;
// English remains the source text. The panel pass localizes both literal Razor labels and
// changing match labels without storing translated text in careers or simulation state.
public static class UiRussian
{
sealed class TextState { public string Source="",Rendered="",Language=""; public int DictionaryRevision; }
static readonly ConditionalWeakTable<Label,TextState> Labels=new();
static readonly ConditionalWeakTable<TextEntry,TextState> Entries=new();
static string WordSource;
static int DictionaryRevision;
static readonly Dictionary<string,string> Words=Build();
static Dictionary<string,string> Build()
{
var result=new Dictionary<string,string>(StringComparer.Ordinal);
WordSource=Pairs+"\n"+MorePairs;
foreach(var line in WordSource.Split('\n',StringSplitOptions.RemoveEmptyEntries))
{
int separator=line.IndexOf('|');
if(separator>0)result[line[..separator].Trim()]=line[(separator+1)..].Trim();
}
return result;
}
static void RefreshDictionary()
{
// Hotload preserves static fields; refresh translations without restarting the playtest.
if(WordSource==Pairs+"\n"+MorePairs)return;
var replacement=Build();Words.Clear();
foreach(var pair in replacement)Words[pair.Key]=pair.Value;
DictionaryRevision++;
}
public static void Apply(Panel root)
{
if(root==null)return;
RefreshDictionary();
Visit(root);
}
static void Visit(Panel panel)
{
// These panels resolve their language in Razor. Never overwrite their text later.
if(panel.HasClass("settings-hud") || panel.HasClass("localized-text"))return;
if(panel is Label label)
{
var state=Labels.GetOrCreateValue(label);
Update(state,label.Text,value=>label.Text=value);
}
if(panel is TextEntry entry)
{
var state=Entries.GetOrCreateValue(entry);
Update(state,entry.Placeholder,value=>entry.Placeholder=value);
}
foreach(var child in panel.Children.ToArray())Visit(child);
}
static void Update(TextState state,string current,Action<string> set)
{
if(string.IsNullOrEmpty(current))return;
if(current==state.Rendered && state.Language==GamePreferences.Language && state.DictionaryRevision==DictionaryRevision)return;
if(current!=state.Rendered)state.Source=current;
string target=GamePreferences.Russian?Translate(state.Source):state.Source;
if(current!=target)set(target);
state.Rendered=target;
state.Language=GamePreferences.Language;
state.DictionaryRevision=DictionaryRevision;
}
public static string Translate(string value)
{
if(string.IsNullOrWhiteSpace(value))return value;
RefreshDictionary();
if(Words.TryGetValue(value,out var exact))return exact;
if(Regex.IsMatch(value,@"^Champions Cup won! \+(\d+) coins$"))
return Regex.Replace(value,@"^Champions Cup won! \+(\d+) coins$","Кубок чемпионов выигран! +$1 монет");
if(Regex.IsMatch(value,@"^league finish: place (\d+), \+(\d+) coins$"))
return Regex.Replace(value,@"^league finish: place (\d+), \+(\d+) coins$","Итог лиги: $1-е место, +$2 монет");
var cupAmount=Regex.Match(value,@"^([+-]?\d+) cup tokens$");
if(cupAmount.Success && int.TryParse(cupAmount.Groups[1].Value,out var cupValue))
{
long amount=Math.Abs((long)cupValue);
string noun=amount%100 is >=11 and <=14?"кубков":amount%10==1?"кубок":amount%10 is >=2 and <=4?"кубка":"кубков";
return cupAmount.Groups[1].Value+" "+noun;
}
if(Regex.IsMatch(value,@"^Age (\d+)$"))return Regex.Replace(value,@"^Age (\d+)$","Возраст: $1");
if(Regex.IsMatch(value,@"^OVR (\d+) / POTENTIAL (\d+)$"))return Regex.Replace(value,@"^OVR (\d+) / POTENTIAL (\d+)$","Рейтинг $1 / потенциал $2");
if(Regex.IsMatch(value,@"^WEAK FOOT (\d+) ★$"))return Regex.Replace(value,@"^WEAK FOOT (\d+) ★$","Слабая нога $1 ★");
if(Regex.IsMatch(value,@"^SKILL MOVES (\d+) ★$"))return Regex.Replace(value,@"^SKILL MOVES (\d+) ★$","Финты $1 ★");
if(Regex.IsMatch(value,@"^Pass → ([A-E])$"))return Regex.Replace(value,@"^Pass → ([A-E])$","Пас → $1");
if(value=="Defence: Low block ↻")return "Защита: низкий блок ↻";
if(value=="Defence: Balanced ↻")return "Защита: сбалансированная ↻";
if(value=="Defence: High press ↻")return "Защита: высокий прессинг ↻";
if(value=="← Back to lineup")return "← Вернуться к составу";
if(Regex.IsMatch(value,@"^LATEST RESULT · ROUND (\d+)$"))return Regex.Replace(value,@"^LATEST RESULT · ROUND (\d+)$","ПОСЛЕДНИЙ РЕЗУЛЬТАТ · ТУР $1");
if(Regex.IsMatch(value,@"^SEASON (\d+) · DIVISION (\d+) OF 5$"))return Regex.Replace(value,@"^SEASON (\d+) · DIVISION (\d+) OF 5$","СЕЗОН $1 · ДИВИЗИОН $2 ИЗ 5");
if(value=="Last place is relegated.")return "Последнее место — вылет.";
if(value.StartsWith("MATCHDAY / "))return value.Replace("MATCHDAY / ","МАТЧ / ").Replace(" VS "," ПРОТИВ ");
if(Regex.IsMatch(value,@"^(\d+) rewards ready$"))return Regex.Replace(value,@"^(\d+) rewards ready$","Наград доступно: $1");
if(Regex.IsMatch(value,@"^Complete (\d+) league matches to unlock$"))return Regex.Replace(value,@"^Complete (\d+) league matches to unlock$","Сыграйте $1 матчей в лиге");
if(Regex.IsMatch(value,@"^Round win \+(\d+) ◈ · Trophy \+(\d+) ◈$"))return Regex.Replace(value,@"^Round win \+(\d+) ◈ · Trophy \+(\d+) ◈$","Победа в раунде +$1 ◈ · Кубок +$2 ◈");
if(value=="Bronze training" || value=="Bronze upgrade")return "Бронзовая карточка улучшений";
if(value=="Silver training" || value=="Silver upgrade")return "Серебряная карточка улучшений";
if(value=="Gold training" || value=="Gold upgrade")return "Золотая карточка улучшений";
if(value=="DIRECTING PLAYER")return "НАПРАВЛЕНИЕ ИГРОКА";
if(value=="FREE CAMERA")return "СВОБОДНАЯ КАМЕРА";
if(Regex.IsMatch(value,@"^ADDED \+(\d+) MIN$"))return Regex.Replace(value,@"^ADDED \+(\d+) MIN$","ДОБАВЛЕНО +$1 МИН");
if(value.StartsWith("● ",StringComparison.Ordinal))return "● "+Translate(value[2..]);
string trimmed=value.Trim();
if(Words.TryGetValue(trimmed,out exact))return value.Replace(trimmed,exact);
if(value.EndsWith(" drill",StringComparison.Ordinal))return Translate(value[..^6]);
if(value.StartsWith("REWARD ",StringComparison.Ordinal))return value.Replace("REWARD ","НАГРАДА ");
foreach(var arrow in new[]{" →"," ↗"," ›"," ✓"," ✕"})
if(value.EndsWith(arrow,StringComparison.Ordinal) && Words.TryGetValue(value[..^arrow.Length],out exact))return exact+arrow;
if(value.Contains(" · "))
{
var parts=value.Split(" · ");
string translated=string.Join(" · ",parts.Select(TranslatePart));
if(translated!=value)return translated;
}
if(Regex.IsMatch(value,@"^Buy (\d+)$"))return Regex.Replace(value,@"^Buy (\d+)$","Купить $1");
if(Regex.IsMatch(value,@"^(\d+) owned$"))return Regex.Replace(value,@"^(\d+) owned$","В клубе: $1");
if(Regex.IsMatch(value,@"^(\d+) players$"))return Regex.Replace(value,@"^(\d+) players$","Игроков: $1");
if(Regex.IsMatch(value,@"^5 items · (\d+) players$"))return Regex.Replace(value,@"^5 items · (\d+) players$","5 предметов · $1 игрока");
if(Regex.IsMatch(value,@"^(\d+)/(\d+) matches$"))return Regex.Replace(value,@"^(\d+)/(\d+) matches$","$1/$2 матчей");
if(Regex.IsMatch(value,@"^(\d+)/(\d+) · rating (\d+) / 99$"))return Regex.Replace(value,@"^(\d+)/(\d+) · rating (\d+) / 99$","$1/$2 · сила $3 / 99");
if(Regex.IsMatch(value,@"^(\d+) trophies this season$"))return Regex.Replace(value,@"^(\d+) trophies this season$","Трофеев в сезоне: $1");
if(value.StartsWith("Reach ") && value.EndsWith(" to unlock"))return "Достигните лиги «"+Translate(value[6..^10])+"», чтобы открыть";
if(Regex.IsMatch(value,@"^Earn (\d+) points by round (\d+)$"))return Regex.Replace(value,@"^Earn (\d+) points by round (\d+)$","Наберите $1 очков к $2-му туру");
if(Regex.IsMatch(value,@"^(\d+) rounds$"))return Regex.Replace(value,@"^(\d+) rounds$","$1 туров");
if(value.EndsWith(" / DRESSING ROOM"))return value[..^16]+" / РАЗДЕВАЛКА";
if(value.EndsWith(" / PLAYER DOSSIER"))return value[..^17]+" / КАРТОЧКА ИГРОКА";
if(value.StartsWith("MATCH PAUSED · "))return value.Replace("MATCH PAUSED · ","МАТЧ НА ПАУЗЕ · ");
if(value.StartsWith("Season ") && value.Contains("Division "))
return Regex.Replace(value,@"Season (\d+) · Division (\d+) · Squad rating (\d+)/99", "Сезон $1 · Дивизион $2 · Рейтинг состава $3/99");
if(Regex.IsMatch(value,@"^SEASON (\d+)$"))return Regex.Replace(value,@"^SEASON (\d+)$","СЕЗОН $1");
if(value.StartsWith("Complete league round "))return Regex.Replace(value,@"^Complete league round (\d+)$","Завершите $1-й тур лиги");
if(value.StartsWith("Finish ") && value.EndsWith(": final or elimination"))return "Завершите "+Translate(value[7..^22])+": финал или вылет";
if(value.StartsWith("Win a round +"))return value.Replace("Win a round +","Победа в раунде +").Replace("lift the cup +","Кубок +");
if(value.StartsWith("lift the cup +"))return value.Replace("lift the cup +","Кубок +");
if(value.StartsWith("After round "))return value.Replace("After round ","После тура ");
if(value.StartsWith("Play ") && value.EndsWith(" →"))return "Играть: "+Translate(value[5..^2])+" →";
if(value.StartsWith("SEASON "))return Regex.Replace(value,@"SEASON (\d+)\s*[/·]\s*(?:DIVISION (\d+) OF 5|LEAGUE)",m=>m.Groups[2].Success?$"СЕЗОН {m.Groups[1].Value} · ДИВИЗИОН {m.Groups[2].Value} ИЗ 5":$"СЕЗОН {m.Groups[1].Value} / ЛИГА");
if(value.StartsWith("Wins "))return Regex.Replace(value,@"Wins (\d+) · Cups (\d+)","Побед $1 · Кубков $2");
if(value.StartsWith("Round "))return Regex.Replace(value,@"^Round (\d+)","Тур $1");
if(value.StartsWith("Phase "))return Regex.Replace(value,@"^Phase (\d+)","Фаза $1");
if(value.StartsWith("Rating "))return Regex.Replace(value,@"Rating (\d+) · formation (.+)","Рейтинг $1 · схема $2");
if(value.StartsWith("rating "))return Regex.Replace(value,@"rating (\d+) / 99","рейтинг $1 / 99");
if(value.StartsWith("fit "))return value.Replace("fit ","соответствие ");
if(value.StartsWith("level "))return Regex.Replace(value,@"level (\d+)","уровень $1");
if(value.StartsWith("+1 level"))return value.Replace("+1 level","+1 уровень");
if(value.StartsWith("PLAYER PROFILE / "))return value.Replace("PLAYER PROFILE / ","КАРТОЧКА ИГРОКА / ");
if(value.Contains(" / ") && value.Contains("Striker"))return value.Replace("Striker","Нападающий");
if(value.Contains(" vs "))return value.Replace(" vs "," против ");
if(Regex.IsMatch(value,@"^\d+ players ready to train$"))return Regex.Replace(value,@"^(\d+) players ready to train$","$1 игроков готовы к тренировке");
if(Regex.IsMatch(value,@"^\d+ active in matches$"))return Regex.Replace(value,@"^(\d+) active in matches$","$1 действуют в матче");
if(Regex.IsMatch(value,@"^\d+ players · rating \d+ / 99$"))return Regex.Replace(value,@"^(\d+) players · rating (\d+) / 99$","$1 игроков · рейтинг $2 / 99");
if(Regex.IsMatch(value,@"^\d+ players · \d+ in your club · \d+ discovered$"))return Regex.Replace(value,@"^(\d+) players · (\d+) in your club · (\d+) discovered$","$1 игроков · $2 в клубе · $3 открыто");
if(Regex.IsMatch(value,@"^\d+ updates?$",RegexOptions.IgnoreCase))return Regex.Replace(value,@"updates?","событий",RegexOptions.IgnoreCase);
if(value.StartsWith("Page "))return Regex.Replace(value,@"^Page (\d+) / (\d+)$","Страница $1 / $2");
if(value.StartsWith("Reserve spaces: "))return value.Replace("Reserve spaces: ","Мест на скамейке: ");
if(value.StartsWith("Local career · "))return Regex.Replace(value,@"Local career · (\d+) unique players","Локальная карьера · $1 уникальных игроков");
if(value.StartsWith("Unlocks in Division "))return value.Replace("Unlocks in Division ","Откроется в дивизионе ");
if(value.StartsWith("Apply to "))return value.Replace("Apply to ","Применить к ").Replace("each card grants XP and +1 focused attribute","каждая карточка даёт опыт и +1 к выбранному навыку");
if(value.EndsWith(" owned"))return value.Replace(" owned"," в коллекции");
if(value.StartsWith("DIVISION "))return value.Replace("DIVISION ","ДИВИЗИОН ");
if(value.EndsWith(" XP for one player"))return value.Replace(" XP for one player"," опыта одному игроку");
if(value.EndsWith(" coins"))return value.Replace(" coins"," монет");
if(value.StartsWith("+1 place · "))return value.Replace("+1 place · ","+1 место · ");
if(value.EndsWith(" players ready to train"))return value.Replace(" players ready to train"," игроков готовы к тренировке");
if(value.StartsWith("Skill moves "))return value.Replace("Skill moves ","Финты ");
if(value.StartsWith("Reserves: +"))return value.Replace("Reserves: +","Запасные: +").Replace(" XP each"," опыта каждому");
if(value.EndsWith(" IN TABLE"))return value.Replace(" IN TABLE"," МЕСТО В ТАБЛИЦЕ");
if(value.StartsWith("vs "))return value.Replace("vs ","против ");
if(value.StartsWith("at "))return value.Replace("at ","в гостях у ");
if(value.StartsWith("The final whistle. "))return value.Replace("The final whistle. ","Финальный свисток. ");
if(value.StartsWith("Live text coverage continues at "))return value.Replace("Live text coverage continues at ","Текстовая трансляция продолжается с ");
if(value.StartsWith("Injury: "))return value.Replace("Injury: ","Травма: ").Replace(" cannot continue. Medical staff bring the stretcher."," не может продолжить матч. Медики выносят носилки.");
if(value.StartsWith("Substitution: "))return value.Replace("Substitution: ","Замена: ").Replace(" replaces injured "," вместо травмированного ");
if(value.StartsWith("No substitute: "))return value.Replace("No substitute: ","Замены нет: ").Replace(" leaves the match. "," покидает матч. ").Replace(" continue with fewer players."," продолжают в меньшинстве.").Replace(" have fewer than seven players: match abandoned."," осталось менее семи игроков: матч прекращён.");
if(value.StartsWith("GOAL! "))return Regex.Replace(value,@"^GOAL! (.+) scores for (.+)\. (.+)$","ГОЛ! $1 забивает за $2. $3");
if(value.EndsWith(" take aim! The attack reaches a shooting position."))return value.Replace(" take aim! The attack reaches a shooting position."," бьют по воротам! Опасная атака.");
if(value.StartsWith("A sharp stop by the "))return value.Replace("A sharp stop by the ","Вратарь ").Replace(" goalkeeper keeps it out."," отражает опасный удар.");
if(value.EndsWith(" win a corner. Players crowd the penalty area."))return value.Replace(" win a corner. Players crowd the penalty area."," зарабатывают угловой. Игроки входят в штрафную.");
if(value.EndsWith(" is booked. The referee reaches for a yellow card."))return value.Replace(" is booked. The referee reaches for a yellow card."," получает предупреждение. Судья показывает жёлтую карточку.");
if(value.Contains(" is sent off! "))return value.Replace(" is sent off! "," удалён! ").Replace(" must play with fewer players."," остаются в меньшинстве.");
if(value.Contains(" recycle possession and look for a route forward."))return value.Replace(" recycle possession and look for a route forward."," сохраняют мяч и ищут путь вперёд.");
if(value.StartsWith("The tempo rises as "))return value.Replace("The tempo rises as ","Темп растёт: ").Replace(" push into the opposition half."," идут на чужую половину.");
if(value.StartsWith("A spell of midfield play. "))return value.Replace("A spell of midfield play. ","Борьба в центре поля. ").Replace(" keep the ball moving."," продолжают владеть мячом.");
if(value.Contains(" probe down the flank, but the defence holds its shape."))return value.Replace(" probe down the flank, but the defence holds its shape."," атакуют через фланг, но защита держит строй.");
if(value.StartsWith("The first half ends with "))return value.Replace("The first half ends with ","Первый тайм завершён. ");
if(value.StartsWith("Goalkeeper",StringComparison.Ordinal))return value.Replace("Goalkeeper","Вратарь");
if(value.StartsWith("Ball: #"))return value.Replace("Ball: #","Мяч у №");
if(Regex.IsMatch(value,@"^Number (\d+)!$"))return Regex.Replace(value,@"^Number (\d+)!$","Номер $1!");
if(value.StartsWith("Coach command ready in "))return value.Replace("Coach command ready in ","Команда тренера через ");
if(value.StartsWith("Substitutions "))return value.Replace("Substitutions ","Замены ");
if(value.StartsWith("Level "))return value.Replace("Level ","Уровень ");
if(value.StartsWith("XP "))return value.Replace("XP ","Опыт ");
if(value.EndsWith(" XP"))return value.Replace(" XP"," опыта");
if(value.StartsWith("Skills "))return value.Replace("Skills ","Финты ");
if(value.StartsWith("Weak foot "))return value.Replace("Weak foot ","Слабая нога ");
if(value.StartsWith("Selected slot "))return value.Replace("Selected slot ","Выбранная позиция ").Replace(" · fit "," · соответствие ");
if(value.StartsWith("Open spaces: "))return value.Replace("Open spaces: ","Свободных мест: ");
if(value.EndsWith(" shown"))return value.Replace(" shown"," показано");
if(value.EndsWith(" places · choose a replacement"))return value.Replace(" places · choose a replacement"," мест · выберите замену");
if(value.EndsWith(" PLAYED"))return value.Replace(" PLAYED"," СЫГРАНО");
if(value.EndsWith(" PTS"))return value.Replace(" PTS"," ОЧКОВ");
if(value.EndsWith(" PHASES"))return value.Replace(" PHASES"," ФАЗ");
if(value.EndsWith(" saved"))return value.Replace(" saved"," сохранено");
if(Regex.IsMatch(value,@"^\d+ / \d+ used$"))return value.Replace(" used"," использовано");
if(Regex.IsMatch(value,@"^\d+ available$"))return value.Replace(" available"," доступно");
if(value.EndsWith("% energy"))return value.Replace("% energy","% энергии");
foreach(var country in Countries)
value=Regex.Replace(value,$@"(?<![\p{{L}}]){Regex.Escape(country.Key)}(?![\p{{L}}])",country.Value);
return value;
}
static string TranslatePart(string value)=>Translate(value);
static readonly (string Key,string Value)[] Countries={
("Argentina","Аргентина"),("Belgium","Бельгия"),("Brazil","Бразилия"),("Canada","Канада"),
("Egypt","Египет"),("England","Англия"),("France","Франция"),("Germany","Германия"),
("Italy","Италия"),("Japan","Япония"),("Morocco","Марокко"),("Netherlands","Нидерланды"),
("Norway","Норвегия"),("Poland","Польша"),("Portugal","Португалия"),("Russia","Россия"),
("South Korea","Южная Корея"),("Spain","Испания")};
const string Pairs="""
Home|Главная
YOUR TEAM|ВАША КОМАНДА
TEAM|КОМАНДА
STARTING PLAYER|ИГРОК ОСНОВЫ
Age unavailable|Возраст неизвестен
Height unavailable|Рост неизвестен
Level|Уровень
level|уровень
Goalkeeper|Вратарь
Striker|Нападающий
Left back|Левый защитник
Centre back|Центральный защитник
Right back|Правый защитник
Defensive midfielder|Опорный полузащитник
Central midfielder|Центральный полузащитник
Attacking midfielder|Атакующий полузащитник
Left winger|Левый вингер
Right winger|Правый вингер
Left midfielder|Левый полузащитник
Right midfielder|Правый полузащитник
Left wing-back|Левый латераль
Right wing-back|Правый латераль
MID|ПЗ
ATT|НАП
01 / CHOOSE A FOCUS|01 / ВЫБЕРИТЕ НАПРАВЛЕНИЕ
02 / TRAINING PREVIEW|02 / РЕЗУЛЬТАТ ТРЕНИРОВКИ
03 / YOUR PLAYERS|03 / ВАШИ ИГРОКИ
Role focus|Профильная
Earn XP in competitive matches.|Получайте опыт в соревновательных матчах.
+2 to every skill|+2 ко всем навыкам
+5 pace · +2 stamina|+5 к скорости · +2 к выносливости
+5 shooting · +2 passing|+5 к ударам · +2 к пасам
+5 passing · +2 stamina|+5 к пасам · +2 к выносливости
+5 defending · +2 stamina|+5 к защите · +2 к выносливости
+5 keeping · +2 passing|+5 к игре в воротах · +2 к пасам
Train player|Тренировать игрока
Player ready. Choose a programme and train.|Игрок готов. Выберите программу тренировки.
Choose your silver discovery.|Выберите серебряное открытие.
One pack. One unique player.|Один пак. Один уникальный игрок.
Cards are bought with coins earned in matches|Карточки покупаются за монеты, заработанные в матчах
1 unique player|1 уникальный игрок
1 player|1 игрок
Odds reflect the players still available in your catalog.|Шансы зависят от игроков, которые ещё не открыты в картотеке.
SILVER PACK|СЕРЕБРЯНЫЙ ПАК
GOLD PACK|ЗОЛОТОЙ ПАК
DIAMOND PACK|АЛМАЗНЫЙ ПАК
SILVER PACK ODDS|ШАНСЫ СЕРЕБРЯНОГО ПАКА
GOLD PACK ODDS|ШАНСЫ ЗОЛОТОГО ПАКА
DIAMOND PACK ODDS|ШАНСЫ АЛМАЗНОГО ПАКА
PLAYER PROFILE|КАРТОЧКА ИГРОКА
Acceleration|Ускорение
Awareness|Видение поля
Physical|Физические данные
Sprint speed|Скорость рывка
Positioning|Выбор позиции
Finishing|Завершение
Shot power|Сила удара
Long shots|Дальние удары
Volleys|Удары с лёта
Penalties|Пенальти
Crossing|Навесы
Free kick accuracy|Точность штрафных
Short pass|Короткий пас
Long pass|Длинный пас
Curve|Подкрутка
Dribbling|Дриблинг
Ball control|Контроль мяча
Agility|Ловкость
Balance|Баланс
Reactions|Реакция
Interceptions|Перехваты
Heading accuracy|Точность ударов головой
Defensive awareness|Чтение игры в защите
Standing tackle|Отбор стоя
Sliding tackle|Подкат
Jumping|Прыжок
Strength|Сила
Aggression|Агрессия
GK diving|Прыжки вратаря
GK handling|Ловля мяча
GK kicking|Удары вратаря
GK positioning|Позиция вратаря
GK reflexes|Рефлексы вратаря
QUARTERFINAL|ЧЕТВЕРТЬФИНАЛ
SEMIFINAL|ПОЛУФИНАЛ
FINAL|ФИНАЛ
NEXT|ДАЛЕЕ
VS|ПРОТИВ
Season goal · finish in the top two|Цель сезона · войти в двойку лучших
Season goal · win the title|Цель сезона · выиграть чемпионат
Finish in the top two for promotion.|Войдите в двойку лучших для повышения.
Win the title to rule the league.|Выиграйте титул, чтобы возглавить лигу.
set your lineup and take the field|соберите состав и выходите на поле
Scout opponent|Изучить соперника
11 players|11 игроков
01 · Match|01 · Матч
02 · Rewards|02 · Награды
Awarded, including competition bonuses|Начислено с учётом бонусов турнира
Match in progress|Матч идёт
Kick-off|Стартовый свисток
Teams greet the crowd|Команды приветствуют болельщиков
Ready for kick-off|Готовы к началу матча
PAUSED|ПАУЗА
AUTO MODE|АВТОРЕЖИМ
MANUAL MODE|РУЧНОЙ РЕЖИМ
CAMERA: BROADCAST|КАМЕРА: ТРАНСЛЯЦИЯ
CAMERA: FULL PITCH|КАМЕРА: ВСЁ ПОЛЕ
FIRST HALF · LIVE|ПЕРВЫЙ ТАЙМ · ПРЯМОЙ ЭФИР
SECOND HALF · LIVE|ВТОРОЙ ТАЙМ · ПРЯМОЙ ЭФИР
REPLAY|ПОВТОР
SLOW MOTION|ЗАМЕДЛЕНИЕ
FAST FORWARD|УСКОРЕНИЕ
Calling to teammate|Зовёт партнёра
My team|Моя команда
Opponent|Соперник
Free play|Свободная игра
Select your player and give an instruction|Выберите игрока и отдайте команду
Overlap|Забегание
Auto: up to 1.5× · smooth slow motion|Авто: до 1,5× · плавное замедление
The whistle sounds. We are under way!|Судья дал стартовый свисток. Матч начался!
The teams return. Forty-five minutes remain.|Команды вернулись на поле. Впереди второй тайм.
We are back with live text coverage of the remaining minutes.|Возвращаемся к текстовой трансляции оставшихся минут.
"""
;
const string MorePairs="""
CURVE COMET|КРУЧЁНАЯ КОМЕТА
PHANTOM CUT|ПРИЗРАЧНЫЙ ФИНТ
STEEL PRESS|СТАЛЬНОЙ ПРЕССИНГ
COUNTERSTEP|КОНТРФИНТ
REFLEX WALL|СТЕНА РЕАКЦИИ
AERIAL GUARDIAN|ХОЗЯИН ВОЗДУХА
Team|Команда
League|Лига
Cup|Кубок
Cups|Кубки
Over here!|Сюда!
Close him down!|Прессингуй его!
Stay with him!|Не отпускай его!
Hold your positions!|Держите позиции!
Go! Take the shot!|Вперёд! Бей!
Make the run!|Открывайся!
Move there!|Двигайся туда!
Play it to him!|Дай ему пас!
Back to your position!|Вернись на позицию!
Yes! That's it!|Да! Вот так!
Come on! Keep your focus!|Ну же! Соберитесь!
Good work! Keep going!|Молодцы! Продолжайте!
Open Cup|Открытый кубок
County Cup|Региональный кубок
League Cup|Кубок лиги
Champions Cup|Кубок чемпионов
Champions Cup unlocked: the final challenge of your career.|Кубок чемпионов открыт: последнее испытание карьеры.
Career complete: Champions Cup winners! Your club has reached the top.|Вы победили в игре! Кубок чемпионов ваш — клуб достиг вершины.
SOCER / KNOCKOUT FOOTBALL|SOCER / ФУТБОЛ НА ВЫЛЕТ
Cup competitions|Кубковые турниры
Cups unlock during the league season. Play one tournament at a time.|Кубки открываются по ходу сезона лиги. Проходите турниры по очереди.
LOCKED|ЗАКРЫТ
AVAILABLE|ДОСТУПЕН
IN PROGRESS|В ПРОЦЕССЕ
CHAMPIONS|ЧЕМПИОНЫ
ELIMINATED|ВЫЛЕТ
8 CLUBS / 3 ROUNDS|8 КЛУБОВ / 3 РАУНДА
ROUND WIN|ПОБЕДА В РАУНДЕ
TROPHY BONUS|БОНУС ЗА КУБОК
HOW TO UNLOCK|КАК ОТКРЫТЬ
Finish your current match|Завершите текущий матч
CUP RESULT|ИТОГ КУБКА
YOUR CUP RUN|ВАШ ПРОГРЕСС
Review results|Посмотреть результаты
Continue cup|Продолжить кубок
Open tournament|Открыть турнир
← All cups|← Все кубки
ONE CUP AT A TIME|ОДИН КУБОК ЗА РАЗ
League matches resume after the final or elimination. Packs, transfers and training are locked during a cup run.|После финала или вылета возобновится лига. Во время кубка паки, трансферы и улучшения недоступны.
CUP WINDOW|КУБКОВОЕ ОКНО
View bracket|Турнирная сетка
Play every round or exit on elimination. Packs, transfers and training resume after the cup.|Проходите раунды до финала или вылета. Паки, трансферы и улучшения снова доступны после кубка.
League fixtures resume after the final or elimination.|Матчи лиги продолжатся после финала или вылета.
Play cup match|Играть матч кубка
Resume match|Вернуться в матч
EIGHT CLUB KNOCKOUT|8 КЛУБОВ НА ВЫЛЕТ
Quarterfinal|Четвертьфинал
Semifinal|Полуфинал
Final|Финал
Cup match|Матч кубка
QUARTERFINALS|ЧЕТВЕРТЬФИНАЛЫ
SEMIFINALS|ПОЛУФИНАЛЫ
TROPHY WON|КУБОК ВЫИГРАН
CAMPAIGN ENDED|ТУРНИР ЗАВЕРШЁН
Winners advance here|Здесь будут победители
ELIMINATION ENDS THE WINDOW|ВЫЛЕТ ЗАВЕРШАЕТ КУБОК
LEAGUE MATCHES RESUME AFTER YOUR CUP RUN|ПОСЛЕ КУБКА ВОЗОБНОВЛЯЕТСЯ ЛИГА
OWNED PLAYERS CAN BE REARRANGED · STORE LOCKED|СВОИХ ИГРОКОВ МОЖНО ПЕРЕСТАВЛЯТЬ · МАГАЗИН ЗАКРЫТ
Rearrange your owned players between cup matches. Packs, transfers and training resume after the cup.|Между матчами кубка можно менять состав из своих карточек. Паки, трансферы и улучшения будут доступны после кубка.
The match has started. Use in-match substitutions to change players.|Матч уже начался. Чтобы сменить игроков, откройте замены во время матча.
Formation changes resume after full time.|Схему можно будет изменить после завершения матча.
uninterrupted knockout|турнир на вылет без перерывов
Scout|Поиск игроков
Catalog|Картотека
Friendly|Товарищеский матч
Return to match|Вернуться к матчу
Watch match|Смотреть матч
SOCER / FOOTBALL CLUB|SOCER / ФУТБОЛЬНЫЙ КЛУБ
CLUB BUDGET|БЮДЖЕТ КЛУБА
CLUB|КЛУБ
MATCHDAY|МАТЧЕВЫЙ ДЕНЬ
PLAY MATCH|ИГРАТЬ МАТЧ
Play match|Играть матч
Your starting eleven|Стартовый состав
Choose a formation and drag players into position. Then choose how to follow the match.|Выберите схему и расставьте игроков перетаскиванием. Затем выберите режим матча.
CONTINUE TO MATCH|ПРОДОЛЖИТЬ К МАТЧУ
How will you follow the match?|Как вы хотите следить за матчем?
Your chosen lineup plays either way. The same result and rewards apply.|Состав играет в обоих режимах. Результат и награды одинаковы.
Watch on the pitch|Смотреть на поле
See the action and coach your team live.|Наблюдайте за игрой и руководите командой.
PLAY LIVE|ИГРАТЬ ВЖИВУЮ
Live text commentary|Текстовая трансляция
Follow every key moment in a fast broadcast.|Следите за ключевыми моментами в быстрой трансляции.
AUTO MATCH|АВТОМАТЧ
Back to lineup|Назад к составу
Back|Назад
Cancel|Отмена
Close|Закрыть
Save|Сохранить
Done|Готово
NEXT MATCHDAY|СЛЕДУЮЩИЙ ТУР
NEXT MATCH|СЛЕДУЮЩИЙ МАТЧ
MATCH IN PROGRESS|МАТЧ ИДЁТ
CUP MATCH IN PROGRESS|ИДЁТ МАТЧ КУБКА
LEAGUE SEASON COMPLETE|СЕЗОН ЛИГИ ЗАВЕРШЁН
Finish this match to return to the league.|Завершите матч, чтобы вернуться в лигу.
Simulate remaining|Доиграть автоматически
Resume cup match|Продолжить матч кубка
Resume current match|Продолжить матч
Play cup match|Играть матч кубка
Start next season|Начать новый сезон
Next season|Следующий сезон
Starting a new season resets the unfinished cup bracket.|Новый сезон сбросит незавершённый кубок.
Standings|Турнирная таблица
Standings and fixtures|Таблица и календарь
Fixtures & results|Календарь и результаты
THE RACE|БОРЬБА ЗА МЕСТА
YOUR CAMPAIGN|ВАШ СЕЗОН
SCOUT REPORT|ОТЧЁТ О СОПЕРНИКЕ
RECENT RESULTS|ПОСЛЕДНИЕ РЕЗУЛЬТАТЫ
3 points for a win · 1 for a draw|3 очка за победу · 1 за ничью
10 rounds|10 туров
Third League|Третья лига
Second League|Вторая лига
First League|Первая лига
National League|Национальная лига
Premier League|Премьер-лига
CURRENT LEAGUE|ТЕКУЩАЯ ЛИГА
PROMOTION PATH|ПУТЬ К ПОВЫШЕНИЮ
COMPLETED TIER|ПРОЙДЕННАЯ ЛИГА
YOUR LEAGUE|ВАША ЛИГА
PROMOTION REQUIRED|НУЖНО ПОВЫШЕНИЕ
BELOW YOUR LEAGUE|ПРОЙДЕННАЯ ЛИГА
WIN|ПОБЕДА
DRAW|НИЧЬЯ
LOSS|ПОРАЖЕНИЕ
DEFEAT|ПОРАЖЕНИЕ
NORTH WIN|ПОБЕДА NORTH
NORTH LOSE|ПОРАЖЕНИЕ NORTH
place|место
points|очки
matches|матчи
P|И
W|В
D|Н
L|П
GD|РМ
PTS|ОЧКИ
CLUB|КЛУБ
BENCH|СКАМЕЙКА
STARTING ELEVEN|СТАРТОВЫЙ СОСТАВ
Squad and formation|Состав и схема
Player training|Улучшения
Upgrades|Улучшения
Upgrade card|Карточка улучшений
Upgrade card applied.|Карточка улучшений применена.
Choose a player and an upgrade card between matches.|Выберите игрока и карточку улучшений между матчами.
Team training|Тренировка команды
Tactics lab|Редактор тактик
Drag cards between the pitch and bench, or between positions.|Перетаскивайте карточки между полем, скамейкой и позициями.
No reserves match these filters.|На скамейке нет игроков по этим фильтрам.
No available players match the filter.|Нет подходящих игроков.
Bench fully expanded|Скамейка максимально расширена
Search reserves|Поиск на скамейке
All|Все
Owned only|Только свои
All tiers|Все редкости
All countries|Все страны
All positions|Все позиции
Bronze|Бронза
Silver|Серебро
Gold|Золото
Elite|Элита
Legendary|Легендарный
BRONZE|БРОНЗА
SILVER|СЕРЕБРО
GOLD|ЗОЛОТО
ELITE|ЭЛИТА
LEGENDARY|ЛЕГЕНДАРНЫЙ
EMPTY|ПУСТО
PLAYER XP|ОПЫТ ИГРОКА
TRAINING CENTRE|ТРЕНИРОВОЧНЫЙ ЦЕНТР
Choose a player to develop|Выберите игрока для развития
Choose a play|Выберите комбинацию
Move over a player to target|Наведите курсор на игрока, чтобы выбрать его
drag your player to move|перетащите своего игрока для перемещения
click or hold an opponent to mark|нажмите на соперника или удерживайте кнопку для опеки
click goal to attack, three clicks to force a shot|нажмите на ворота для атаки, трижды — для удара
Choose a player on the pitch and an available substitute.|Выберите игрока на поле и доступную замену.
Choose an action, then draw its direction on the pitch.|Выберите действие и укажите направление на поле.
Every skill caps at 99|Все навыки ограничены 99
Find the next star.|Найдите новую звезду.
FIND REINFORCEMENTS|ПОИСК УСИЛЕНИЯ
Discover new possibilities.|Откройте новые возможности.
The scout finds a player for one of six positions. Learn their strengths and make them part of your game.|Скаут найдёт игрока для одной из шести позиций. Изучите его и добавьте в команду.
Unique appearance|Уникальная внешность
Every player has a portrait and personality|У каждого игрока свой портрет и характер
Potential up to 99|Потенциал до 99
Develop new players at the training centre|Развивайте игроков в тренировочном центре
RESERVE SPACES|МЕСТА НА СКАМЕЙКЕ
Manage|Управлять
Open pack|Открыть пак
Reveal now|Показать сейчас
To squad|В состав
Train|Тренировать
Card catalog|Картотека карточек
Each copy has its own skills. Upgrade cards let you change them.|У каждой копии свои скиллы. Их можно менять карточками улучшений.
Search player or country|Поиск по игроку или стране
Overview|Обзор
Attributes|Характеристики
Tactics|Тактика
Pace|Скорость
Shooting|Удары
Passing|Пасы
Defending|Защита
Stamina|Выносливость
Goalkeeping|Игра в воротах
Aggression|Агрессия
Composure|Самообладание
Right foot|Правая нога
Left foot|Левая нога
Weak foot|Слабая нога
Skills|Финты
NEW PLAYER PROFILE|НОВАЯ КАРТОЧКА
SCOUTING|ПОИСК ИГРОКОВ
SCOUTING / 01|ПОИСК ИГРОКОВ / 01
NORTH / SCOUTING DEPARTMENT|NORTH / ОТДЕЛ СКАУТИНГА
EIGHT CLUB CUP|КУБОК ВОСЬМИ КЛУБОВ
Single elimination. A draw goes to penalties. Win: 400 ◈; trophy: another 1,000 ◈.|Матчи на выбывание. При ничьей — пенальти. Победа: 400 ◈; трофей: ещё 1 000 ◈.
Winners of the previous round|Победители предыдущего раунда
CUP WINNER|ПОБЕДИТЕЛЬ КУБКА
ROAD TO THE TOP|ПУТЬ НАВЕРХ
Your club story begins at the first whistle.|История вашего клуба начнётся с первого свистка.
All fixtures are complete. Review the season.|Все матчи сыграны. Посмотрите итоги сезона.
Grow with every match.|Растите с каждым матчем.
The next level.|Следующий уровень.
Build your style.|Создайте свой стиль.
Play together instinctively.|Играйте как единая команда.
SOCER / PLAYER DATABASE|SOCER / БАЗА ИГРОКОВ
SOCER / TACTICS LAB|SOCER / РЕДАКТОР ТАКТИК
YOUR PLAYS|ВАШИ КОМБИНАЦИИ
CONTINUE EDITING|ПРОДОЛЖИТЬ РЕДАКТИРОВАНИЕ
EXAMPLE PLAY|ПРИМЕР КОМБИНАЦИИ
Start with an empty board|Начать с пустой схемы
Select a saved play or draw a new one.|Выберите сохранённую комбинацию или создайте новую.
New play|Новая комбинация
Wing overlap and cutback|Фланговый забег и прострел
← All plays|← Все комбинации
← Previous|← Назад
Next|Далее
Next phase|Следующая фаза
+ Add phase|+ Добавить фазу
Delete this phase|Удалить эту фазу
Delete|Удалить
Remove phase action|Удалить действие фазы
Remove phases after shot|Удалить фазы после удара
Remove player route|Удалить маршрут игрока
Draw route|Нарисовать маршрут
Sprint route|Рывок по маршруту
Draw pass to open space|Передача в свободную зону
Focus ball|Мяч в центре
Ground|Низом
Through|Вразрез
Lofted|Верхом
Driven|Сильный пас
Choose backup receiver|Выбрать запасного адресата
Walking dummies · switch to active|Манекены · включить защитников
Active defenders · switch to dummies|Активная защита · включить манекенов
Remove|Убрать
Restore|Вернуть
To start|В начало
Play loaded. Select a player to edit their actions.|Комбинация загружена. Выберите игрока, чтобы изменить его действия.
New trial against walking dummies.|Новая попытка против манекенов.
New trial against active defence.|Новая попытка против активной защиты.
Pass|Пас
Shot|Удар
First time|В касание
On the run|На ходу
Carry|Вести мяч
Run to point|Бежать к точке
Press player|Прессинговать игрока
Mark player|Опекать игрока
Guard zone|Закрыть зону
Clear order|Сбросить команду
Let player decide|Игрок решит сам
Set goal corner|Указать угол ворот
Right drag · pan / wheel · zoom|Правая кнопка · перемещение / колесо · масштаб
▶ Test|▶ Проверить
Run 20 trials|Провести 20 попыток
TRAINING OPPOSITION|ТРЕНИРОВОЧНЫЕ СОПЕРНИКИ
PLAYER CONTROL|УПРАВЛЕНИЕ ИГРОКОМ
MOVEMENT|ДВИЖЕНИЕ
PASS TYPE|ТИП ПЕРЕДАЧИ
SHOT STYLE|ТИП УДАРА
Set pieces: manual|Стандарты: вручную
Set pieces: auto|Стандарты: автоматически
Claim rewards before starting the next season.|Заберите награды перед началом следующего сезона.
My club|Мой клуб
Pause|Пауза
Resume|Продолжить
Resume camera|Вернуть камеру
Auto|Авто
Camera|Камера
Vision|Обзор
Speech|Речь
Counterattack|Контратака
Balanced|Сбалансировано
High press|Высокий прессинг
Press|Прессинг
Attack|Атака
Conserve energy|Беречь силы
COMBINATIONS|КОМБИНАЦИИ
Run play|Выполнить комбинацию
Auto plays: ON|Автокомбинации: ВКЛ
Auto plays: OFF|Автокомбинации: ВЫКЛ
COACH COMMANDS|КОМАНДЫ ТРЕНЕРА
MATCH OVERVIEW|ОБЗОР МАТЧА
Ball in play|Мяч в игре
MATCH PAUSED · NORTH|МАТЧ НА ПАУЗЕ · NORTH
Substitutions|Замены
BENCH · SELECT IN|СКАМЕЙКА · ВЫБЕРИТЕ ИГРОКА
ON THE PITCH · SELECT OUT|НА ПОЛЕ · ВЫБЕРИТЕ ИГРОКА
Confirm substitution|Подтвердить замену
Back to match|Вернуться к матчу
Calm player|Успокоить игрока
Exit to career|Выйти в клуб
Rematch|Реванш
New match|Новый матч
Skip|Пропустить
GOAL REPLAY|ПОВТОР ГОЛА
SOCER / FULL TIME|SOCER / МАТЧ ЗАВЕРШЁН
MATCH STATISTICS|СТАТИСТИКА МАТЧА
Match|Матч
Rewards|Награды
Possession|Владение
Shots|Удары
Shots on target|Удары в створ
Shots off target|Удары мимо
On target|В створ
Passes|Пасы
Pass accuracy|Точность передач
Through balls|Пасы вразрез
Wall passes|Игра в стенку
Third-man combinations|Передачи третьему
Coordinated runs|Согласованные рывки
Dribbles won|Удачные обводки
Possessions lost|Потери владения
Corners|Угловые
Set-piece shots|Удары со стандартов
Set-piece crosses|Навесы со стандартов
Short set pieces|Короткие розыгрыши
Penalties awarded|Назначенные пенальти
Tackles|Отборы
Saves|Сейвы
Fouls|Фолы
Offsides|Офсайды
Yellow cards|Жёлтые карточки
Red cards|Красные карточки
CLUB BUDGET|БЮДЖЕТ КЛУБА
XP FOR EACH STARTER|ОПЫТ КАЖДОМУ ИГРОКУ ОСНОВЫ
Go straight to club|Сразу в клуб
To rewards|К наградам
To club|В клуб
SOCER / LIVE TEXT|SOCER / ТЕКСТОВАЯ ТРАНСЛЯЦИЯ
LIVE TEXT|ТЕКСТОВАЯ ТРАНСЛЯЦИЯ
FAST BROADCAST|БЫСТРАЯ ТРАНСЛЯЦИЯ
LEAGUE MATCH|МАТЧ ЛИГИ
CUP MATCH|МАТЧ КУБКА
FRIENDLY MATCH|ТОВАРИЩЕСКИЙ МАТЧ
LIVE COMMENTARY|ТЕКСТОВАЯ ТРАНСЛЯЦИЯ
AT A GLANCE|КРАТКАЯ СТАТИСТИКА
FIRST HALF|ПЕРВЫЙ ТАЙМ
SECOND HALF|ВТОРОЙ ТАЙМ
FULL TIME|МАТЧ ЗАВЕРШЁН
FINAL WHISTLE|ФИНАЛЬНЫЙ СВИСТОК
MATCH COMPLETE|МАТЧ ЗАВЕРШЁН
KICK OFF|СТАРТОВЫЙ СВИСТОК
HALF TIME|ПЕРЕРЫВ
ON THE PITCH|НА ПОЛЕ
CHANCE|ОПАСНЫЙ МОМЕНТ
SAVE|СЕЙВ
CORNER|УГЛОВОЙ
GOAL|ГОЛ
YELLOW CARD|ЖЁЛТАЯ КАРТОЧКА
RED CARD|КРАСНАЯ КАРТОЧКА
INJURY|ТРАВМА
SUBSTITUTION|ЗАМЕНА
The match is playing. Key moments pause the feed.|Матч идёт. На важных моментах лента ненадолго останавливается.
Preview · no career rewards|Предпросмотр · без наград карьеры
Friendly match · no career rewards|Товарищеский матч · без наград карьеры
Match report & rewards|Отчёт о матче и награды
Settings|Настройки
Language|Язык
Sound volume|Громкость звука
English|Английский
Russian|Русский
Test sound|Проверить звук
Close settings|Закрыть настройки
Kits & balls|Форма и мячи
NORTH / DRESSING ROOM|NORTH / РАЗДЕВАЛКА
Your match look.|Облик вашей команды.
Preview your player and ball in 3D, then save the equipment your club owns.|Посмотрите на игрока и мяч в 3D, затем сохраните экипировку клуба.
Purchases and equipment changes are available after the current match.|Покупки и смена экипировки доступны после текущего матча.
Save match look|Сохранить облик
Rotating 3D preview · match equipment updates when you save|Вращающаяся 3D-модель · экипировка обновится после сохранения
01 / FOOTBALL KITS|01 / ФУТБОЛЬНАЯ ФОРМА
02 / MATCH BALLS|02 / ИГРОВЫЕ МЯЧИ
EQUIPPED|НАДЕТО
OWNED|В КОЛЛЕКЦИИ
Buy|Купить
TRAINING CARDS|ТРЕНИРОВОЧНЫЕ КАРТОЧКИ
USE ON PLAYER|ПРИМЕНИТЬ К ИГРОКУ
Upgrade cards can be found in every pack.|Карточки улучшений встречаются в каждом паке.
Five discoveries for your club|Пять новых предметов для клуба
Five items · players, training and equipment|Пять предметов: игроки, тренировки и экипировка
Sealing broken · five items incoming|Пак открыт · скоро появятся пять предметов
PACK CONTENTS / 05|СОДЕРЖИМОЕ ПАКА / 05
All five items were added to your club|Все пять предметов добавлены в клуб
Two or three players|Два или три игрока
Every player has a unique identity and a place in your reserves|Каждый игрок уникален и занимает место среди запасных
Upgrades and equipment|Улучшения и экипировка
Upgrade cards grant skills; kits and balls change your match look|Карточки улучшений дают скиллы, а форма и мячи меняют облик команды
Club kit|Форма клуба
Match ball|Игровой мяч
Club funds|Бюджет клуба
Open another pack|Открыть ещё пак
SILVER PACK / OPENING|СЕРЕБРЯНЫЙ ПАК / ОТКРЫТИЕ
GOLD PACK / OPENING|ЗОЛОТОЙ ПАК / ОТКРЫТИЕ
DIAMOND PACK / OPENING|АЛМАЗНЫЙ ПАК / ОТКРЫТИЕ
The first card is coming.|Сейчас появится первая карточка.
One card at a time.|Карточки открываются по очереди.
Your five discoveries.|Ваши пять наград.
Your discoveries.|Ваши награды.
Cards reveal from lowest value to highest value.|Награды открываются от менее ценной к самой ценной.
REVEALING|ОТКРЫТИЕ
COMPLETE|ГОТОВО
BEST REWARD|ЛУЧШАЯ НАГРАДА
UNKNOWN|НЕИЗВЕСТНО
All five rewards are already safe in your club.|Все пять наград уже находятся в вашем клубе.
All rewards are already safe in your club.|Все награды уже находятся в вашем клубе.
Preview only · your career is unchanged.|Предпросмотр · карьера не изменена.
Reveal next|Следующая награда
Reveal all|Показать всё
Back to packs|Назад к пакам
Team inventory|Инвентарь команды
BOOST|УСИЛЕНИЕ
FOCUS|НАВЫК
TYPE|ТИП
STYLE|СТИЛЬ
BALL|МЯЧ
COINS|МОНЕТЫ
TRAINING|ТРЕНИРОВКА
KIT|ФОРМА
02 / DETAILED RATINGS|02 / ПОДРОБНЫЕ ХАРАКТЕРИСТИКИ
FINISHING|ЗАВЕРШЕНИЕ
PASSING|ПЕРЕДАЧИ
DEFENDING|ЗАЩИТА
BALL CONTROL|КОНТРОЛЬ МЯЧА
PHYSICAL|ФИЗИКА
GOALKEEPER|ВРАТАРЬ
ACTIVE IN MATCHES|ДЕЙСТВУЕТ В МАТЧЕ
NOT ON THIS CARD|НЕТ НА КАРТОЧКЕ
Power Shot|Сильный удар
Finesse Shot|Кручёный удар
Chip Shot|Удар перебросом
Incisive Pass|Обостряющий пас
Tiki Taka|Тики-така
Long Ball Pass|Длинная передача
Intercept|Перехват
Block|Блок
First Touch|Первое касание
Technical|Техника
Quick Step|Быстрый старт
Aerial|Игра в воздухе
Far Reach|Дальний прыжок
Faster power shots and a greater chance to select one.|Сильные удары летят быстрее, а игрок чаще выбирает такой удар.
More curl shots with tighter aim.|Игрок чаще бьёт с подкруткой и точнее целится.
More chip attempts when the goalkeeper leaves the line.|Игрок чаще перебрасывает вышедшего из ворот вратаря.
Prefers forward passes and places them more accurately.|Игрок охотнее и точнее отдаёт обостряющие передачи.
More accurate short ground passes.|Короткие передачи низом становятся точнее.
More accurate long passes and more lofts over blocked lanes.|Длинные передачи точнее, а мяч чаще перелетает перекрытую линию паса.
Reads passing lanes earlier and reaches more interceptions.|Игрок раньше замечает передачу и чаще успевает на перехват.
Controls slow deflections instead of leaving a loose ball.|Игрок чаще сохраняет мяч после слабого рикошета.
Fewer heavy receptions and faster control.|Игрок реже отпускает мяч далеко при приёме и быстрее его контролирует.
Tries skill moves more often and exits them more reliably.|Игрок чаще выполняет финты и успешнее выходит из них.
Accelerates faster over the first steps.|Игрок быстрее разгоняется на первых шагах.
Wins more aerial contacts and aims headers better.|Игрок чаще выигрывает верховые мячи и точнее бьёт головой.
Can reach more shots while diving.|Вратарь дотягивается до большего числа ударов в прыжке.
SEASON PATH|ПУТЬ СЕЗОНА
Milestones & cup windows|Цели сезона и кубки
Targets are set before the season|Цели известны с начала сезона
no hidden match boosts|Без скрытых усилений соперника
Opening form|Удачный старт
Halfway push|Рывок в середине
Final stretch|Финиш сезона
EARNED|ПОЛУЧЕНО
MISSED|УПУЩЕНО
Drag to change the lineup|Перетаскивайте игроков для смены состава
click a card to inspect every attribute|Нажмите карточку для подробной статистики
Drop the card on a position to swap players.|Отпустите карточку над позицией для замены игрока.
Drop a card on another player or position to swap.|Перетащите карточку на другого игрока или пустую позицию.
Only goalkeepers can take the goalkeeper position.|Место вратаря может занять только вратарь.
The match has started. Use in-match substitutions to change players.|Матч уже начался. Меняйте игроков через окно замен в трансляции.
DRESSING ROOM|РАЗДЕВАЛКА
PLAYER DOSSIER|КАРТОЧКА ИГРОКА
YOUR CLUB WINS|ПОБЕДА ВАШЕГО КЛУБА
My Club|Мой клуб
Store|Магазин
Overview|Обзор
CLUB STORE|МАГАЗИН КЛУБА
Packs|Паки
QUANTITY|КОЛИЧЕСТВО
SQUAD RATING|СИЛА СОСТАВА
STARTING XI|СТАРТОВЫЙ СОСТАВ
TROPHIES|ТРОФЕИ
Manage squad|Управление составом
Complete your starting XI|Укомплектовать состав
Fill all 11 positions before starting a match.|Заполните все 11 позиций перед началом матча.
View opponent|Посмотреть соперника
Missions|Миссии
Season missions|Миссии сезона
Cup milestones|Кубковые цели
CLAIM REWARD|ЗАБРАТЬ НАГРАДУ
CLAIMED|ПОЛУЧЕНО
IN PROGRESS|В ПРОЦЕССЕ
OPPONENT LINEUP|СОСТАВ СОПЕРНИКА
TROPHY WON|КУБОК ВЫИГРАН
CUP AVAILABLE|КУБОК ДОСТУПЕН
ELIMINATED|ВЫБЫЛИ
EMPTY|ПУСТО
The store reopens after your cup run.|Магазин откроется после завершения кубка.
Finish your current match to use the store.|Завершите текущий матч, чтобы открыть магазин.
Packs added to your club.|Паки добавлены в клуб.
Open pack|Открыть пак
Silver pack|Серебряный пак
Gold pack|Золотой пак
Diamond pack|Алмазный пак
Cup tokens|Кубки
Cup pack|Кубковый пак
Cup pack · Third League|Кубковый пак · Третья лига
Cup pack · Second League|Кубковый пак · Вторая лига
Cup pack · First League|Кубковый пак · Первая лига
Cup pack · National League|Кубковый пак · Национальная лига
Cup pack · Premier League|Кубковый пак · Премьер-лига
Not enough cup tokens.|Недостаточно кубков.
No cup packs yet|Кубковых паков пока нет
5 items|5 предметов
DIAMOND|АЛМАЗ
Nigeria|Нигерия
Poland|Польша
South Korea|Южная Корея
Scotland|Шотландия
Slovenia|Словения
Sweden|Швеция
Uruguay|Уругвай
Right FOOT|Правая нога
Left FOOT|Левая нога
CARD CATALOG / PLAYER DOSSIER|КАРТОТЕКА / КАРТОЧКА ИГРОКА
KEY ATTRIBUTES|ГЛАВНЫЕ АТРИБУТЫ
DETAILED RATINGS|ПОДРОБНЫЕ ХАРАКТЕРИСТИКИ
All ratings out of 99|Максимум: 99
PACE|ТЕМП
SHOOTING|УДАРЫ
PASSING|ПЕРЕДАЧИ
DRIBBLING|ДРИБЛИНГ
DEFENDING|ЗАЩИТА
PHYSICAL|ФИЗИКА
GOALKEEPING|ВРАТАРЬ
DIVING|ПРЫЖКИ
HANDLING|ЛОВЛЯ
KICKING|ВВОД МЯЧА
REFLEXES|РЕФЛЕКСЫ
SPEED|СКОРОСТЬ
POSITIONING|ПОЗИЦИЯ
""";
}