From 127f8cffe6e04d7215a08a0039bd8defed95a9e3 Mon Sep 17 00:00:00 2001 From: xiaat <133262510+xiaat@users.noreply.github.com> Date: Mon, 8 Jan 2024 14:39:51 +0300 Subject: [PATCH 1/5] Update translations.cljs --- src/cljs/nr/translations.cljs | 435 ++++++++++++++++++++++++++++++++++ 1 file changed, 435 insertions(+) diff --git a/src/cljs/nr/translations.cljs b/src/cljs/nr/translations.cljs index fe8f407f7b..a8ccdc1374 100644 --- a/src/cljs/nr/translations.cljs +++ b/src/cljs/nr/translations.cljs @@ -3379,6 +3379,441 @@ :win-points (fn [[turn]] (str "計画ポイントによる勝利 " turn " ターン")) :win-other (fn [[turn reason]] (str "wins by " reason " on turn " turn))} } + + :ru + {:missing ":ru missing text" + :side + {:corp "Корпорация" + :runner "Бегущий" + :any-side "Любая сторона" + :all "Все"} + :faction + {:all "Все" + :any-faction "Все фракции" + :anarch "Анарх" + :criminal "Криминал" + :shaper "Шейпер" + :adam "Адам" + :apex "Апекс" + :sunny-lebeau "Санни Лебо" + :jinteki "Джинтеки" + :haas-bioroid "Хаас-Биороид" + :nbn "NBN" + :weyland-consortium "Консорциум Вейланда" + :neutral "Нейтральные"} + :format + {:all "Все" + :any-format "Любой формат" + :standard "Стандарт" + :eternal "Вечный" + :core-experience "Core Experience" + :snapshot "Snapshot" + :snapshot-plus "Snapshot Plus" + :socr "SOCR" + :sunset "Закат" + :neo "Нео" + :classic "Классический" + :casual "Свободный" + :system-gateway "Врата Системы" + :startup "Стартап"} + :card-type + {:all "Все" + :identity "Роль" + :agenda "Проект" + :asset "Актив" + :upgrade "Улучшение" + :operation "Операция" + :ice "Лёд" + :event "Событие" + :hardware "Устройство" + :resource "Ресурс" + :program "Программа"} + :pronouns + {:none "Не указаны" + :any "Любые" + :myodb "Не хочу указывать" + :blank "[пусто]" + :they "Они/их" + :she "Она/её" + :shethey "Она/их" + :he "Он/его" + :hethey "Он/их" + :it "Оно" + :ne "Ne/nem" + :ve "Ve/ver" + :ey "Ey/em" + :zehir "Ze/hir" + :zezir "Ze/zir" + :xe "Xe/xem"} + :chat + {:title "Играть в Netrunner в браузере" + :channels "Каналы" + :send "Отправить" + :placeholder "Напишите что-нибудь..." + :delete "Удалить сообщение" + :delete-all "Удалить все сообщения пользователя" + :block "Заблокировать пользователя" + :cancel "Отмена"} + :nav + {:chat "Чат" + :cards "Карты" + :deck-builder "Колодостроение" + :play "Играть" + :help "Помощь" + :settings "Настройки" + :stats "Статистика" + :about "О нас" + :tournaments "Турниры" + :admin "Администратор" + :users "Пользователи" + :features "Возможности" + :game-count (fn [[cnt]] (str cnt " Game" (when (not= cnt 1) "s")))} + :menu + {:settings :en.nav/settings + :logout "Отключиться" + :admin :en.nav/admin + :moderator "Модератор" + :donor "Спонсор"} + :card-browser + {:search-hint "Искать карты" + :sort "Сортировать по" + :format "Формат" + :set "Набор" + :side "Сторона" + :faction "Фракция" + :type "Тип" + :clear "Сбросить" + :select-art "Выбрать изображение" + :selected-art "Выбранное изображение" + :update-success "Изображение обновлено" + :update-failure "Ошибка обновления изображения" + :memory "Память" + :cost "Цена" + :trash-cost "Цена сноса" + :strength "Сила" + :advancement "Требование к продвижению" + :agenda-points "Победные очки" + :min-deck "Минимальный размер колоды" + :inf-limit "Предел влияния" + :influence "Влияние" + :sort-by {:faction "Фракция" + :name "Название" + :type "Тип" + :influence "Влияние" + :cost "Цена" + :set-number "Номер в наборе"} + } + :deck-builder + {:loading-msg "Загрузка коллекции колод..." + :new-corp "Новая колода Корпорации" + :new-runner "Новая колода Бегущего" + :import-button "Импорт колоды" + :reset "Сброс" + :import-title "Введите ID общедоступной колоды с NRDB или ссылку" + :import "Импортировать" + :cancel "Отмена" + :import-placeholder "ID с NRDB" + :deck-count (fn [[cnt]] (str cnt (if (= 1 cnt) " Deck" " Decks"))) + :filtered "(filtered)" + :save "Сохранить" + :confirm-delete "Подтвердить удаление" + :edit "Редактировать" + :delete "Удалить" + :copy "Скопировать" + :deck-copy-suffix "копия" + :clear-stats "Сбросить статистику" + :create-game "Создать игру" + :deck-name "Название колоды" + :format "Формат" + :identity "Роль" + :deck-notes "Примечания" + :decklist "Список карт" + :decklist-inst "(Напишите или вставьте список карт, он будет распознан)" + :notes "Примечания" + :add-to-deck "Добавить в колоду" + :add-cards "Добавить карты" + :card-name "Название карты" + :no-decks "Нет колод" + :cards "карты" + :min "минимум" + :max "максимум" + :influence "Влияние" + :agenda-points "Победные очки" + :deck-points "Очки колоды" + :hash "Турнирный хеш" + :why "Почему?" + :legal ": легальна" + :illegal ": нелегальна" + :games "Игр" + :completed "Завершено" + :won "Побед" + :lost "Поражений"} + :lobby + {:no-games "Нет игр" + :tournament "Турнирные" + :competitive "Соревновательные" + :casual "Обычные" + :new-game "Новая игра" + :reload "Перезагрузить список" + :load-replay "Загрузить повтор" + :start-replay "Начать повтор" + :save-replay "Сохранить повтор" + :replay-link-error "Ссылка на повтор недействительна." + :replay-invalid-file "Выберите подходящий файл повтора." + :create "Создать" + :cancel "Отмена" + :title "Название" + :side "Сторона" + :format "Формат" + :options "Параметры" + :spectators "Допустить зрителей" + :hidden "Раскрыть зрителям скрытую информацию" + :password-protected "Защитить паролем" + :password "Пароль" + :start "Начать" + :leave "Выйти" + :swap "Изменить стороны" + :waiting "Игроки выбирают колоды" + :players "Игроки" + :deck-selected "Колода выбрана" + :select-deck "Выбрать колоду" + :chat "Чат" + :select-title "Выберите вашу колоду" + :spectator-count (fn [[cnt]] (str cnt " Spectator" (when (not= cnt 1) "s"))) + :closed-msg "Лобби закрыто из-за отсутствия активности" + :title-error "Пожалуйста, введите название игры." + :password-error "Пожалуйста, введите пароль." + :too-little-data "Слишком мало данных" + :completion-rate "Процент завершённых игр" + :watch "Смотреть" + :join "Войти" + :rejoin "Перезайти" + :as-corp "За Корпорацию" + :as-runner "За Бегущего" + :private "ЧАСТНОЕ" + :reset "Сбросить название игры" + :delete "Удалить игру" + :password-for "Пароль для" + :invalid-password "Неправильный пароль" + :not-allowed "Не разрешено" + :aborted "Соединение разорвано" + :lobby.api-access "Разрешить доступ к данным игры через API" + :lobby.api-requires-key "(Требуется ключ API в Настройках)" + :game-count (fn [[cnt]] (str cnt (if (= 1 cnt) " Game" " Games"))) + :filtered "(filtered)"} + :settings + {:invalid-password "Неправильный логин или пароль" + :invalid-email "Учётной записи с таким адресом электронной почты не существует" + :updated "Профиль обновлён. Пожалуйста, обновите страницу браузера" + :updating "Обновление профиля..." + :get-log-width "Записать текущую ширину журнала" + :get-log-top "Записать текущую высоту журнала" + :email-title "Изменить адрес электронной почты" + :current-email "Текущий адрес" + :desired-email "Новый адрес" + :email-placeholder "Адрес электронной почты" + :enter-valid "Пожалуйста, введите корректный адрес электронной почты" + :update "Обновить" + :cancel "Отмена" + :email "Электронная почта" + :change-email "Изменить адрес электронной почты" + :avatar "Аватар" + :change-avatar "Изменить на gravatar.com" + :pronouns "Местоимения" + :language "Язык" + :sounds "Звуки" + :enable-lobby-sounds "Включить звуки в лобби" + :enable-game-sounds "Включить звуки в игре" + :volume "Громкость" + :layout-options "Настройки расположения" + :stacked-cards "Складывать вместе одинаковые карты (по умолчанию включено)" + :runner-layout "Раскладка Бегущего при игре за Корпорацию" + :runner-classic "Классическая раскладка Бегущего (Сверху вниз: Программы, Устройства, Ресурсы)" + :runner-reverse "Обратная раскладка Бегущего (Сверху вниз: Ресурсы, Устройства, Программы)" + :background "Фон игрового поля" + :card-backs "Рубашки карт" + :game-stats "Учёт статистики побед/поражений" + :deck-stats "Учёт статистики колод" + :always "Всегда" + :comp-only "Только в соревновательном лобби" + :none "Не учитывать" + :alt-art "Альтернативные изображения карт" + :show-alt "Показывать альтернативные изображения карт" + :high-res "Включить загрузку изображений высокого разрешения" + :card-images "Изображения карт" + :set-all "Изменить все карты на" + :set "Изменить" + :reset "Сбросить до официальных изображений" + :blocked "Заблокированные пользователи" + :user-name "Имя пользователя" + :block "Заблокировать пользователя" + :update-profile "Обновить профиль" + :nisei "NISEI" + :nsg "NSG" + :ffg "FFG" + :api-keys "Ключи API" + :delete-api-key "Удалить" + :create-api-key "Создать ключ API"} + :stats + {:game-stats "Игровая статистика" + :corp-stats "Статистика за Корпорацию" + :runner-stats "Статистика за Бегущего" + :clear-stats "Очистить статистику" + :no-log "Журнал недоступен" + :view-log "Смотреть журнал" + :winner "Победитель" + :no-games "Нет игр" + :all-games "Показать все игры" + :shared-games "Показать игры со ссылками на повторы" + :started "Начато" + :ended "Закончено" + :completed "Завершено" + :not-completed "Не завершено" + :won "Выиграно" + :lost "Проиграно" + :turn-count (fn [[cnt]] (str cnt " turn" (when (not= cnt 1) "s"))) + :lobby "Лобби" + :format "Формат" + :win-method "Способ победы" + :view-games "Вернуться к статистике" + :share "Share replay" + :launch "Launch Replay" + :download "Download replay" + :unavailable "Replay unavailable" + :filtered "(filtered)" + :log-count (fn [[cnt]] (str cnt " Log" (when (not= cnt 1) "s"))) + :clicks-gained "Clicks Gained" + :credits-gained "Credits Gained" + :credits-spent "Credits Spent" + :credits-click "Credits by Click" + :cards-drawn "Cards Drawn" + :cards-click "Cards Drawn by Click" + :damage-done "Damage Done" + :cards-rezzed "Cards Rezzed" + :tags-gained "Tags Gained" + :runs-made "Runs Made" + :cards-accessed "Cards Accessed"} + :log + {:game-log "Game Log" + :annotating "Annotating" + :shared "Shared Annotations"} + :annotations + {:remote-annotations-fail "Could not get remote annotations." + :turn-placeholder "Notes for this turn" + :click-placeholder "Notes for this click" + :available-annotations "Available annotations" + :annotations-no-published-annotations "No published annotations." + :annotations.available-annotations "Available annotations" + :notes.publish "Publish" + :notes.clear-annotations "Clear local annotations" + :import-local "Import local annotation file" + :load-local "Load" + :save-local "Save" + :clear "Clear"} + :game + {:keep "Keep" + :mulligan "Mulligan" + :close "Close" + :start "Start Game" + :remove-tag "Remove Tag" + :run "Run" + :purge "Purge" + :trash-resource "Trash Resource" + :draw "Draw" + :gain-credit "Gain Credit" + :game-start "Game start" + :start-turn "Start Turn" + :end-turn "End Turn" + :mandatory-draw "Mandatory Draw" + :take-clicks "Take Clicks" + :hq "HQ" + :grip "Grip" + :rfg "Removed from the game" + :play-area "Play Area" + :current "Current" + :scored-area "Scored Area" + :archives "Archives" + :max-hand "Max hand size" + :brain-damage "Core Damage" + :tag-count (fn [[base additional total]] + (str base (when (pos? additional) (str " + " additional)) " Tag" (if (not= total 1) "s" ""))) + :agenda-count (fn [[agenda-point]] (str agenda-point " Agenda Point" (when (not= agenda-point 1) "s"))) + :link-strength "Link Strength" + :credit-count (fn [[credit run-credit]] (str credit " Credit" (if (not= credit 1) "s" "") + (when (pos? run-credit) + (str " (" run-credit " for run)")))) + :click-count (fn [[click]] (str click " Click" (if (not= click 1) "s" ""))) + :bad-pub-count (fn [[base additional]] (str base (when (pos? additional) (str " + " additional)) " Bad Publicity")) + :mu-count (fn [[unused available]] (str unused " of " available " MU unused")) + :special-mu-count (fn [[unused available mu-type]] (str unused " of " available " " mu-type " MU unused")) + :indicate-action "Indicate action" + :spec-count (fn [[c]] (str c " Spectator" (when (> c 1) "s"))) + :spec-view "Spectator View" + :runner-view "Runner View" + :corp-view "Corp View" + :leave-replay "Leave Replay" + :leave "Leave Game" + :rig-irl "Rig layout: IRL" + :rig-jnet "Rig layout: jnet" + :unstack-cards "Unstack cards" + :stack-cards "Stack cards" + :unmute "Unmute spectators" + :mute "Mute spectators" + :concede "Concede" + :inactivity "Game closed due to inactivity" + :server "Server" + :unimplemented "Unimplemented" + :abilities "Abilities" + :let-subs-fire "Let unbroken subroutines fire" + :subs "Subroutines" + :actions "Actions" + :fire-unbroken "Fire unbroken subroutines" + :stack "Stack" + :r&d "R&D" + :shuffle "Shuffle" + :show "Show" + :close-shuffle "Close & Shuffle" + :heap "Heap" + :card-count (fn [[size]] (str size " card" (when (not= 1 size) "s") ".")) + :face-down-count (fn [[total face-up]] (str total " cards, " (- total face-up) " face-down.")) + :up-down-count (fn [[total face-up]] (str face-up "↑ " (- total face-up) "↓")) + :initiation "Initiation" + :approach-ice "Approach ice" + :encounter-ice "Encounter ice" + :pass-ice "Pass ice" + :movement "Movement" + :approach-server "Approach server" + :corp-phase-43 "Corp phase 4.3" + :access-server "Access server" + :breach-server "Breach server" + :success "Success" + :end-of-run "End of run" + :run-ends "Run ends" + :no-current-run "No current run" + :current-phase "Current phase" + :unknown-phase "Unknown phase" + :rez "Rez" + :action-access "Action before access" + :no-further "No further actions" + :continue "Continue" + :continue-to "Continue to" + :stop-auto-pass "Stop auto-passing priority" + :auto-pass "Auto-pass priority" + :jack-out "Jack Out" + :undo-click "Undo Click" + :pass-continue "Pass ice and continue" + :pass-jack "Pass ice and jack out" + :trace "Trace" + :credits "credits" + :card "Card" + :time-taken (fn [[t]] (str "Time taken: " t " minutes")) + :win-decked (fn [[turn]] (str "wins due to the Corp being decked on turn " turn)) + :win-flatlined (fn [[turn]] (str "wins by flatline on turn " turn)) + :win-conceded (fn [[turn]] (str "wins by concession on turn " turn)) + :win-claimed (fn [[turn]] (str "wins by claim on turn " turn)) + :win-points (fn [[turn]] (str "wins by scoring agenda points on turn " turn)) + :win-other (fn [[turn reason]] (str "wins by " reason " on turn " turn))} + } }) (defn opts [] {:dict translation-dictionary}) From 49e5fa730cb24ae84adbf9760341e9d6039d6fe2 Mon Sep 17 00:00:00 2001 From: xiaat <133262510+xiaat@users.noreply.github.com> Date: Tue, 9 Jan 2024 01:26:11 +0300 Subject: [PATCH 2/5] Update translations.cljs --- src/cljs/nr/translations.cljs | 122 +++++++++++++++++----------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/src/cljs/nr/translations.cljs b/src/cljs/nr/translations.cljs index a8ccdc1374..980023e5df 100644 --- a/src/cljs/nr/translations.cljs +++ b/src/cljs/nr/translations.cljs @@ -3467,7 +3467,7 @@ :admin "Администратор" :users "Пользователи" :features "Возможности" - :game-count (fn [[cnt]] (str cnt " Game" (when (not= cnt 1) "s")))} + :game-count (fn [[cnt]] (str cnt (if (= 1 cnt) " игра" " игр")))} :menu {:settings :en.nav/settings :logout "Отключиться" @@ -3513,7 +3513,7 @@ :import "Импортировать" :cancel "Отмена" :import-placeholder "ID с NRDB" - :deck-count (fn [[cnt]] (str cnt (if (= 1 cnt) " Deck" " Decks"))) + :deck-count (fn [[cnt]] (str cnt (if (= 1 cnt) " колода" " колод"))) :filtered "(filtered)" :save "Сохранить" :confirm-delete "Подтвердить удаление" @@ -3579,7 +3579,7 @@ :select-deck "Выбрать колоду" :chat "Чат" :select-title "Выберите вашу колоду" - :spectator-count (fn [[cnt]] (str cnt " Spectator" (when (not= cnt 1) "s"))) + :spectator-count (fn [[cnt]] (if (= 1 cnt) " зритель" " зрителей"))) :closed-msg "Лобби закрыто из-за отсутствия активности" :title-error "Пожалуйста, введите название игры." :password-error "Пожалуйста, введите пароль." @@ -3599,7 +3599,7 @@ :aborted "Соединение разорвано" :lobby.api-access "Разрешить доступ к данным игры через API" :lobby.api-requires-key "(Требуется ключ API в Настройках)" - :game-count (fn [[cnt]] (str cnt (if (= 1 cnt) " Game" " Games"))) + :game-count (fn [[cnt]] (str cnt (if (= 1 cnt) " игра" " игр"))) :filtered "(filtered)"} :settings {:invalid-password "Неправильный логин или пароль" @@ -3664,77 +3664,77 @@ :winner "Победитель" :no-games "Нет игр" :all-games "Показать все игры" - :shared-games "Показать игры со ссылками на повторы" + :shared-games "Показать игры с публичными повторами" :started "Начато" :ended "Закончено" :completed "Завершено" :not-completed "Не завершено" :won "Выиграно" :lost "Проиграно" - :turn-count (fn [[cnt]] (str cnt " turn" (when (not= cnt 1) "s"))) + :turn-count (fn [[cnt]] (str cnt " ход" (when (not= cnt 1) "ов"))) :lobby "Лобби" :format "Формат" :win-method "Способ победы" :view-games "Вернуться к статистике" - :share "Share replay" - :launch "Launch Replay" - :download "Download replay" - :unavailable "Replay unavailable" - :filtered "(filtered)" - :log-count (fn [[cnt]] (str cnt " Log" (when (not= cnt 1) "s"))) - :clicks-gained "Clicks Gained" - :credits-gained "Credits Gained" - :credits-spent "Credits Spent" - :credits-click "Credits by Click" - :cards-drawn "Cards Drawn" - :cards-click "Cards Drawn by Click" - :damage-done "Damage Done" - :cards-rezzed "Cards Rezzed" - :tags-gained "Tags Gained" - :runs-made "Runs Made" - :cards-accessed "Cards Accessed"} + :share "Поделиться повтором" + :launch "Запустить повтор" + :download "Скачать повтор" + :unavailable "Повтор недоступен" + :filtered "(отфильтровано)" + :log-count (fn [[cnt]] (str cnt " журнал" (when (not= cnt 1) "ов"))) + :clicks-gained "Получено кликов" + :credits-gained "Получено кредитов" + :credits-spent "Потрачено кредитов" + :credits-click "Получено кредитов за клики" + :cards-drawn "Взято карт" + :cards-click "Взято карт за клики" + :damage-done "Нанесено урона" + :cards-rezzed "Развёрнуто карт" + :tags-gained "Получено меток" + :runs-made "Совершено забегов" + :cards-accessed "Карт в доступе"} :log - {:game-log "Game Log" - :annotating "Annotating" - :shared "Shared Annotations"} + {:game-log "Журнал игры" + :annotating "Аннотации" + :shared "Опубликованные аннотации"} :annotations - {:remote-annotations-fail "Could not get remote annotations." - :turn-placeholder "Notes for this turn" - :click-placeholder "Notes for this click" - :available-annotations "Available annotations" - :annotations-no-published-annotations "No published annotations." - :annotations.available-annotations "Available annotations" - :notes.publish "Publish" - :notes.clear-annotations "Clear local annotations" - :import-local "Import local annotation file" - :load-local "Load" - :save-local "Save" - :clear "Clear"} + {:remote-annotations-fail "Не удалось загрузить аннотации." + :turn-placeholder "Заметки к этому ходу" + :click-placeholder "Заметки к этому клику" + :available-annotations "Доступные аннотации" + :annotations-no-published-annotations "Нет опубликованных аннотаций." + :annotations.available-annotations "Доступные аннотации" + :notes.publish "Опубликовать" + :notes.clear-annotations "Очистить локальные аннотации" + :import-local "Импортировать файл с аннотациями" + :load-local "Загрузить" + :save-local "Сохранить" + :clear "Очистить"} :game - {:keep "Keep" - :mulligan "Mulligan" - :close "Close" - :start "Start Game" - :remove-tag "Remove Tag" - :run "Run" - :purge "Purge" - :trash-resource "Trash Resource" - :draw "Draw" - :gain-credit "Gain Credit" - :game-start "Game start" - :start-turn "Start Turn" - :end-turn "End Turn" - :mandatory-draw "Mandatory Draw" - :take-clicks "Take Clicks" + {:keep "Оставить" + :mulligan "Пересдать" + :close "Закрыть" + :start "Начать игру" + :remove-tag "Снять метку" + :run "Начать забег" + :purge "Сбросить вирусы" + :trash-resource "Снести ресурс" + :draw "Взять карту" + :gain-credit "Получить кредит" + :game-start "Начало игры" + :start-turn "Начать ход" + :end-turn "Закончить ход" + :mandatory-draw "Карта за начало хода" + :take-clicks "Получить клики" :hq "HQ" - :grip "Grip" - :rfg "Removed from the game" - :play-area "Play Area" - :current "Current" - :scored-area "Scored Area" - :archives "Archives" - :max-hand "Max hand size" - :brain-damage "Core Damage" + :grip "Рука" + :rfg "Удалены из игры" + :play-area "Игровая зона" + :current "Течение" + :scored-area "Зона зачёта" + :archives "Архивы" + :max-hand "Макс. размер руки" + :brain-damage "Критический урон" :tag-count (fn [[base additional total]] (str base (when (pos? additional) (str " + " additional)) " Tag" (if (not= total 1) "s" ""))) :agenda-count (fn [[agenda-point]] (str agenda-point " Agenda Point" (when (not= agenda-point 1) "s"))) From 02df7ba57b60d238b0d040eb975561dd0b6b43db Mon Sep 17 00:00:00 2001 From: xiaat <133262510+xiaat@users.noreply.github.com> Date: Wed, 10 Jan 2024 01:27:47 +0300 Subject: [PATCH 3/5] Update translations.cljs --- src/cljs/nr/translations.cljs | 126 +++++++++++++++++----------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/src/cljs/nr/translations.cljs b/src/cljs/nr/translations.cljs index 980023e5df..0d6909fca3 100644 --- a/src/cljs/nr/translations.cljs +++ b/src/cljs/nr/translations.cljs @@ -3738,7 +3738,7 @@ :tag-count (fn [[base additional total]] (str base (when (pos? additional) (str " + " additional)) " Tag" (if (not= total 1) "s" ""))) :agenda-count (fn [[agenda-point]] (str agenda-point " Agenda Point" (when (not= agenda-point 1) "s"))) - :link-strength "Link Strength" + :link-strength "Мощность канала" :credit-count (fn [[credit run-credit]] (str credit " Credit" (if (not= credit 1) "s" "") (when (pos? run-credit) (str " (" run-credit " for run)")))) @@ -3746,73 +3746,73 @@ :bad-pub-count (fn [[base additional]] (str base (when (pos? additional) (str " + " additional)) " Bad Publicity")) :mu-count (fn [[unused available]] (str unused " of " available " MU unused")) :special-mu-count (fn [[unused available mu-type]] (str unused " of " available " " mu-type " MU unused")) - :indicate-action "Indicate action" + :indicate-action "Обозначить действие" :spec-count (fn [[c]] (str c " Spectator" (when (> c 1) "s"))) - :spec-view "Spectator View" - :runner-view "Runner View" - :corp-view "Corp View" - :leave-replay "Leave Replay" - :leave "Leave Game" - :rig-irl "Rig layout: IRL" - :rig-jnet "Rig layout: jnet" - :unstack-cards "Unstack cards" - :stack-cards "Stack cards" - :unmute "Unmute spectators" - :mute "Mute spectators" - :concede "Concede" - :inactivity "Game closed due to inactivity" - :server "Server" - :unimplemented "Unimplemented" - :abilities "Abilities" - :let-subs-fire "Let unbroken subroutines fire" - :subs "Subroutines" - :actions "Actions" - :fire-unbroken "Fire unbroken subroutines" - :stack "Stack" + :spec-view "Перспектива зрителя" + :runner-view "Перспектива Бегущего" + :corp-view "Перспектива Корпорации" + :leave-replay "Выйти из повтора" + :leave "Выйти из игры" + :rig-irl "Раскладка рига: настольная" + :rig-jnet "Раскладка рига: jnet" + :unstack-cards "Не складывать карты стопкой" + :stack-cards "Складывать карты стопкой" + :unmute "Включить сообщения зрителей" + :mute "Выключить сообщения зрителей" + :concede "Сдаться" + :inactivity "Игра закрыта из-за отсутствия активности" + :server "Сервер" + :unimplemented "Не реализовано" + :abilities "Способности" + :let-subs-fire "Разрешить выполнение не сломанных подпрограмм" + :subs "Подпрограммы" + :actions "Действия" + :fire-unbroken "Выполнить не сломанные подпрограммы" + :stack "Стек" :r&d "R&D" - :shuffle "Shuffle" - :show "Show" - :close-shuffle "Close & Shuffle" - :heap "Heap" + :shuffle "Перемешать" + :show "Показать" + :close-shuffle "Закрыть и перемешать" + :heap "Куча" :card-count (fn [[size]] (str size " card" (when (not= 1 size) "s") ".")) :face-down-count (fn [[total face-up]] (str total " cards, " (- total face-up) " face-down.")) :up-down-count (fn [[total face-up]] (str face-up "↑ " (- total face-up) "↓")) - :initiation "Initiation" - :approach-ice "Approach ice" - :encounter-ice "Encounter ice" - :pass-ice "Pass ice" - :movement "Movement" - :approach-server "Approach server" - :corp-phase-43 "Corp phase 4.3" - :access-server "Access server" - :breach-server "Breach server" - :success "Success" - :end-of-run "End of run" - :run-ends "Run ends" - :no-current-run "No current run" - :current-phase "Current phase" - :unknown-phase "Unknown phase" - :rez "Rez" - :action-access "Action before access" - :no-further "No further actions" - :continue "Continue" - :continue-to "Continue to" - :stop-auto-pass "Stop auto-passing priority" - :auto-pass "Auto-pass priority" - :jack-out "Jack Out" - :undo-click "Undo Click" - :pass-continue "Pass ice and continue" - :pass-jack "Pass ice and jack out" - :trace "Trace" - :credits "credits" - :card "Card" - :time-taken (fn [[t]] (str "Time taken: " t " minutes")) - :win-decked (fn [[turn]] (str "wins due to the Corp being decked on turn " turn)) - :win-flatlined (fn [[turn]] (str "wins by flatline on turn " turn)) - :win-conceded (fn [[turn]] (str "wins by concession on turn " turn)) - :win-claimed (fn [[turn]] (str "wins by claim on turn " turn)) - :win-points (fn [[turn]] (str "wins by scoring agenda points on turn " turn)) - :win-other (fn [[turn reason]] (str "wins by " reason " on turn " turn))} + :initiation "Инициация" + :approach-ice "Приблизиться ко льду" + :encounter-ice "Встретиться со льдом" + :pass-ice "Пройти лёд" + :movement "Движение" + :approach-server "Приблизиться к серверу" + :corp-phase-43 "Фаза Корпорации 4.3" + :access-server "Получить доступ к серверу" + :breach-server "Взломать сервер" + :success "Успех" + :end-of-run "Конец забега" + :run-ends "Забег завершается" + :no-current-run "Нет активного забега" + :current-phase "Текущая фаза" + :unknown-phase "Неизвестная фаза" + :rez "Развернуть" + :action-access "Действие перед доступом" + :no-further "Нет дальнейших действий" + :continue "Продолжить" + :continue-to "Продолжить к" + :stop-auto-pass "Прекратить автопередачу приоритета" + :auto-pass "Автопередача приоритета" + :jack-out "Отключиться" + :undo-click "Отменить клик" + :pass-continue "Пройти лёд и продолжить" + :pass-jack "Пройти лёд и отключиться" + :trace "Отследить" + :credits "кредитов" + :card "Карта" + :time-taken (fn [[t]] (str "Затраченное время: " t " минут")) + :win-decked (fn [[turn]] (str "побеждает. Соперник не смог взять карту из R&D на " turn " ходу")) + :win-flatlined (fn [[turn]] (str "побеждает. Соперник получил флетлайн на " turn " ходу")) + :win-conceded (fn [[turn]] (str "побеждает. Соперник сдался на " turn " ходу")) + :win-claimed (fn [[turn]] (str "wins by claim on turn " turn " ходу")) + :win-points (fn [[turn]] (str "побеждает, засчитав победные очки на " turn " ходу")) + :win-other (fn [[turn reason]] (str "побеждает из-за " reason " на " turn " ходу"))} } }) From 48c66c119501eaa452420eab590b22a24288814e Mon Sep 17 00:00:00 2001 From: xiaat <133262510+xiaat@users.noreply.github.com> Date: Wed, 10 Jan 2024 01:28:58 +0300 Subject: [PATCH 4/5] Update account.cljs --- src/cljs/nr/account.cljs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cljs/nr/account.cljs b/src/cljs/nr/account.cljs index 626db94808..99844ca79d 100644 --- a/src/cljs/nr/account.cljs +++ b/src/cljs/nr/account.cljs @@ -298,7 +298,8 @@ {:name "한국어" :ref "ko"} {:name "Polski" :ref "pl"} {:name "Igpay Atinlay" :ref "la-pig"} - {:name "Português" :ref "pt"}]] + {:name "Português" :ref "pt"} + {:name "Русский" :ref "ru"}]] [:option {:value (:ref option) :key (:ref option)} (:name option)]))]] [:section [:h3 (tr [:settings.sounds "Sounds"])] From 528c7a92f215b8e2b28aef122ee7c6ab65272baf Mon Sep 17 00:00:00 2001 From: xiaat <133262510+xiaat@users.noreply.github.com> Date: Mon, 19 Feb 2024 00:11:52 +0300 Subject: [PATCH 5/5] Update translations.cljs --- src/cljs/nr/translations.cljs | 47 +++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/src/cljs/nr/translations.cljs b/src/cljs/nr/translations.cljs index 0d6909fca3..dcbe553399 100644 --- a/src/cljs/nr/translations.cljs +++ b/src/cljs/nr/translations.cljs @@ -3381,6 +3381,15 @@ } :ru + (defn ru-quant [group1 group2 group3] + (fn [[cnt]] + (let [group (if (contains? #{5 6 7 8 9 10 11 12 13 14} (rem cnt 100)) + group1 + (condp contains? (rem cnt 10) + #{0 5 6 7 8 9} group1 + #{1} group2 + #{2 3 4} group3))] + (str cnt " " group)))) {:missing ":ru missing text" :side {:corp "Корпорация" @@ -3467,7 +3476,7 @@ :admin "Администратор" :users "Пользователи" :features "Возможности" - :game-count (fn [[cnt]] (str cnt (if (= 1 cnt) " игра" " игр")))} + :game-count (ru-quant "игр" "игра" "игры")} :menu {:settings :en.nav/settings :logout "Отключиться" @@ -3513,7 +3522,7 @@ :import "Импортировать" :cancel "Отмена" :import-placeholder "ID с NRDB" - :deck-count (fn [[cnt]] (str cnt (if (= 1 cnt) " колода" " колод"))) + :deck-count (ru-quant "колод" "колода" "колоды") :filtered "(filtered)" :save "Сохранить" :confirm-delete "Подтвердить удаление" @@ -3579,7 +3588,7 @@ :select-deck "Выбрать колоду" :chat "Чат" :select-title "Выберите вашу колоду" - :spectator-count (fn [[cnt]] (if (= 1 cnt) " зритель" " зрителей"))) + :spectator-count (ru-quant "зрителей" "зритель" "зрителя") :closed-msg "Лобби закрыто из-за отсутствия активности" :title-error "Пожалуйста, введите название игры." :password-error "Пожалуйста, введите пароль." @@ -3599,8 +3608,8 @@ :aborted "Соединение разорвано" :lobby.api-access "Разрешить доступ к данным игры через API" :lobby.api-requires-key "(Требуется ключ API в Настройках)" - :game-count (fn [[cnt]] (str cnt (if (= 1 cnt) " игра" " игр"))) - :filtered "(filtered)"} + :game-count (ru-quant "игр" "игра" "игры") + :filtered "(с фильтром)"} :settings {:invalid-password "Неправильный логин или пароль" :invalid-email "Учётной записи с таким адресом электронной почты не существует" @@ -3671,7 +3680,7 @@ :not-completed "Не завершено" :won "Выиграно" :lost "Проиграно" - :turn-count (fn [[cnt]] (str cnt " ход" (when (not= cnt 1) "ов"))) + :turn-count (ru-quant "ходов" "ход" "хода") :lobby "Лобби" :format "Формат" :win-method "Способ победы" @@ -3681,7 +3690,7 @@ :download "Скачать повтор" :unavailable "Повтор недоступен" :filtered "(отфильтровано)" - :log-count (fn [[cnt]] (str cnt " журнал" (when (not= cnt 1) "ов"))) + :log-count (ru-quant "журналов" "журнал" "журнала") :clicks-gained "Получено кликов" :credits-gained "Получено кредитов" :credits-spent "Потрачено кредитов" @@ -3736,18 +3745,18 @@ :max-hand "Макс. размер руки" :brain-damage "Критический урон" :tag-count (fn [[base additional total]] - (str base (when (pos? additional) (str " + " additional)) " Tag" (if (not= total 1) "s" ""))) - :agenda-count (fn [[agenda-point]] (str agenda-point " Agenda Point" (when (not= agenda-point 1) "s"))) + (str base (when (pos? additional) (str " + " additional)) (ru-quant "меток" "метка" "метки"))) + :agenda-count (fn [[agenda-point]] (str agenda-point (ru-quant "победных очков" "победное очко" "победных очка"))) :link-strength "Мощность канала" - :credit-count (fn [[credit run-credit]] (str credit " Credit" (if (not= credit 1) "s" "") + :credit-count (fn [[credit run-credit]] (str credit (ru-quant "кредитов" "кредит" "кредита")) (when (pos? run-credit) - (str " (" run-credit " for run)")))) - :click-count (fn [[click]] (str click " Click" (if (not= click 1) "s" ""))) - :bad-pub-count (fn [[base additional]] (str base (when (pos? additional) (str " + " additional)) " Bad Publicity")) - :mu-count (fn [[unused available]] (str unused " of " available " MU unused")) - :special-mu-count (fn [[unused available mu-type]] (str unused " of " available " " mu-type " MU unused")) + (str " (" run-credit " для забега)")))) + :click-count (fn [[click]] (str click (ru-quant "кликов" "клик" "клика"))) + :bad-pub-count (fn [[base additional]] (str base (when (pos? additional) (str " + " additional)) (ru-quant "плохих репутаций" "плохая репутация" "плохих репутации"))) + :mu-count (fn [[unused available]] (str unused " из " available " свободных ЯП")) + :special-mu-count (fn [[unused available mu-type]] (str unused " из " available " " mu-type " свободных ЯП")) :indicate-action "Обозначить действие" - :spec-count (fn [[c]] (str c " Spectator" (when (> c 1) "s"))) + :spec-count (fn [[c]] (str c (ru-quant "зрителей" "зритель" "зрителя"))) :spec-view "Перспектива зрителя" :runner-view "Перспектива Бегущего" :corp-view "Перспектива Корпорации" @@ -3774,8 +3783,8 @@ :show "Показать" :close-shuffle "Закрыть и перемешать" :heap "Куча" - :card-count (fn [[size]] (str size " card" (when (not= 1 size) "s") ".")) - :face-down-count (fn [[total face-up]] (str total " cards, " (- total face-up) " face-down.")) + :card-count (fn [[size]] (str size (ru-quant "карт" "карта" "карты") ".")) + :face-down-count (fn [[total face-up]] (str total (ru-quant "карт" "карта" "карты") ", " (- total face-up) " лицом вниз.")) :up-down-count (fn [[total face-up]] (str face-up "↑ " (- total face-up) "↓")) :initiation "Инициация" :approach-ice "Приблизиться ко льду" @@ -3810,7 +3819,7 @@ :win-decked (fn [[turn]] (str "побеждает. Соперник не смог взять карту из R&D на " turn " ходу")) :win-flatlined (fn [[turn]] (str "побеждает. Соперник получил флетлайн на " turn " ходу")) :win-conceded (fn [[turn]] (str "побеждает. Соперник сдался на " turn " ходу")) - :win-claimed (fn [[turn]] (str "wins by claim on turn " turn " ходу")) + :win-claimed (fn [[turn]] (str "объявляет победу на " turn " ходу")) :win-points (fn [[turn]] (str "побеждает, засчитав победные очки на " turn " ходу")) :win-other (fn [[turn reason]] (str "побеждает из-за " reason " на " turn " ходу"))} }