diff --git a/code/datums/components/pet_commands/pet_commands_basic.dm b/code/datums/components/pet_commands/pet_commands_basic.dm
index df2373c71c243..21d771bd3e318 100644
--- a/code/datums/components/pet_commands/pet_commands_basic.dm
+++ b/code/datums/components/pet_commands/pet_commands_basic.dm
@@ -8,7 +8,7 @@
command_name = "Stay"
command_desc = "Command your pet to stay idle in this location."
radial_icon_state = "halt"
- speech_commands = list("sit", "stay", "stop")
+ speech_commands = list("sit", "stay", "stop", "сидеть", "лежать", "место", "фу", "стоп", "стой", "стоять")
command_feedback = "sits"
/datum/pet_command/idle/execute_action(datum/ai_controller/controller)
@@ -25,7 +25,7 @@
command_name = "Loose"
command_desc = "Allow your pet to resume its natural behaviours."
radial_icon_state = "free"
- speech_commands = list("free", "loose")
+ speech_commands = list("free", "loose", "гулять", "вон", "свобод", "брысь")
command_feedback = "relaxes"
/datum/pet_command/free/execute_action(datum/ai_controller/controller)
@@ -43,7 +43,7 @@
command_name = "Follow"
command_desc = "Command your pet to accompany you."
radial_icon_state = "follow"
- speech_commands = list("heel", "follow")
+ speech_commands = list("heel", "follow", "за мной", "след", "охран", "к ноге", "ко мне")
callout_type = /datum/callout_option/move
///the behavior we use to follow
var/follow_behavior = /datum/ai_behavior/pet_follow_friend
@@ -67,7 +67,7 @@
command_name = "Play Dead"
command_desc = "Play a macabre trick."
radial_icon_state = "play_dead"
- speech_commands = list("play dead") // Don't get too creative here, people talk about dying pretty often
+ speech_commands = list("play dead", "притворись мертвым", "умри") // Don't get too creative here, people talk about dying pretty often
/datum/pet_command/play_dead/execute_action(datum/ai_controller/controller)
controller.queue_behavior(/datum/ai_behavior/play_dead)
@@ -180,7 +180,7 @@
command_desc = "Command your pet to attempt to breed with a partner."
requires_pointing = TRUE
radial_icon_state = "breed"
- speech_commands = list("breed", "consummate")
+ speech_commands = list("breed", "consummate", "размножайся")
///the behavior we use to make babies
var/datum/ai_behavior/reproduce_behavior = /datum/ai_behavior/make_babies
@@ -217,7 +217,7 @@
radial_icon = 'icons/mob/actions/actions_spells.dmi'
radial_icon_state = "projectile"
requires_pointing = TRUE
- speech_commands = list("shoot", "blast", "cast")
+ speech_commands = list("shoot", "blast", "cast", "стреля", "выстрел", "пиу", "паф", "каст")
command_feedback = "growl"
pointed_reaction = "and growls"
/// Blackboard key where a reference to some kind of mob ability is stored
diff --git a/code/datums/elements/slapcrafting.dm b/code/datums/elements/slapcrafting.dm
index 2f5dee3c7f414..df95087b165c8 100644
--- a/code/datums/elements/slapcrafting.dm
+++ b/code/datums/elements/slapcrafting.dm
@@ -134,7 +134,7 @@
for(var/datum/crafting_recipe/recipe as anything in slapcraft_recipes)
var/atom/result = initial(recipe.result)
- examine_list += "See Recipe For [initial(result.name)]"
+ examine_list += "Узнать рецепт для [declent_ru_initial(result::name, GENITIVE, result::name)]"
/datum/element/slapcrafting/proc/topic_handler(atom/source, user, href_list)
SIGNAL_HANDLER
@@ -179,7 +179,7 @@
// If we did find ingredients then add them onto the list.
if(length(string_ingredient_list))
- to_chat(user, span_boldnotice("Extra Ingredients:"))
+ to_chat(user, span_boldnotice("Дополнительные ингредиенты:"))
to_chat(user, boxed_message(span_notice(string_ingredient_list)))
var/list/tool_list = ""
@@ -193,7 +193,7 @@
tool_list += "[string]\n"
if(length(tool_list))
- to_chat(user, span_boldnotice("Required Tools:"))
+ to_chat(user, span_boldnotice("Необходимые инструменты:"))
to_chat(user, boxed_message(span_notice(tool_list)))
qdel(cur_recipe)
diff --git a/code/datums/elements/weapon_description.dm b/code/datums/elements/weapon_description.dm
index f69af9139279c..88d1379c9e8e8 100644
--- a/code/datums/elements/weapon_description.dm
+++ b/code/datums/elements/weapon_description.dm
@@ -39,7 +39,7 @@
SIGNAL_HANDLER
if(item.force >= 5 || item.throwforce >= 5 || item.override_notes || item.offensive_notes || attached_proc) /// Only show this tag for items that could feasibly be weapons, shields, or those that have special notes
- examine_texts += span_notice("See combat information.")
+ examine_texts += span_notice("Боевые характеристики.")
/**
*
diff --git a/code/datums/mood.dm b/code/datums/mood.dm
index c23422a8a639a..0645675553219 100644
--- a/code/datums/mood.dm
+++ b/code/datums/mood.dm
@@ -388,7 +388,7 @@
if(MOOD_HAPPY2 to INFINITY)
msg += span_boldnicegreen(event.description + "\n")
else
- msg += "[span_grey("I don't have much of a reaction to anything right now.")]\n"
+ msg += "[span_grey("Сейчас у меня нет особой реакции на что-либо.")]\n"
to_chat(user, boxed_message(msg))
/// Updates the mob's moodies, if the area provides a mood bonus
diff --git a/code/modules/admin/antag_panel.dm b/code/modules/admin/antag_panel.dm
index 33d12f9be22bc..8532f5880ecf9 100644
--- a/code/modules/admin/antag_panel.dm
+++ b/code/modules/admin/antag_panel.dm
@@ -99,7 +99,7 @@ GLOBAL_VAR(antag_prototypes)
var/out = "[name][(current && (current.real_name != name))?" (as [current.real_name])":""]
"
out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]
"
- out += "Assigned role: [assigned_role.title]. Edit
"
+ out += "Assigned role: [job_title_ru(assigned_role.title)]. Edit
"
out += "Faction and special role: [special_role]
"
out += "Show Teams
"
diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm
index f2e813d09b4ff..fc7ba89a0acd3 100644
--- a/code/modules/admin/verbs/secrets.dm
+++ b/code/modules/admin/verbs/secrets.dm
@@ -347,7 +347,7 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w
if(SSeconomy.full_ancap)
priority_announce("Принцип неагрессивности действует в полную силу. Любое проявление агрессии запрещено.", null, SSstation.announcer.get_rand_report_sound())
else
- priority_announce("The NAP has been revoked.", null, SSstation.announcer.get_rand_report_sound())
+ priority_announce("Принцип неагрессивности отменен.", null, SSstation.announcer.get_rand_report_sound())
if("send_shuttle_back")
if (!is_funmin)
return
@@ -355,7 +355,7 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w
to_chat(usr, span_warning("Emergency shuttle not currently in transit!"), confidential = TRUE)
return
var/make_announcement = tgui_alert(usr, "Make a CentCom announcement?", "Emergency shuttle return", list("Yes", "Custom Text", "No")) || "No"
- var/announcement_text = "Emergency shuttle trajectory overriden, rerouting course back to [station_name()]."
+ var/announcement_text = "Траектория эвакуационного шаттла изменена, перенаправление курса обратно на [station_name()]."
if (make_announcement == "Custom Text")
announcement_text = tgui_input_text(usr, "Custom CentCom announcement", "Emergency shuttle return", multiline = TRUE) || announcement_text
var/new_timer = tgui_input_number(usr, "How long should the shuttle remain in transit?", "When are we droppin' boys?", 180, 600)
@@ -366,9 +366,9 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w
if (make_announcement != "No")
priority_announce(
text = announcement_text,
- title = "Shuttle Trajectory Override",
+ title = "Принудительное изменение траектории шаттла",
sound = 'sound/announcer/announcement/announce_dig.ogg',
- sender_override = "Emergency Shuttle Uplink Alert",
+ sender_override = "Система оповещения эвакуационного шаттла",
color_override = "grey",
)
SSshuttle.emergency.timer = INFINITY
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 6ae49a80ef50b..8f5b4dbf5a912 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -351,7 +351,7 @@
. += how_cool_are_your_threads.Join()
if(get_armor().has_any_armor() || (flags_cover & (HEADCOVERSMOUTH|PEPPERPROOF)) || (clothing_flags & STOPSPRESSUREDAMAGE) || (visor_flags & STOPSPRESSUREDAMAGE))
- . += span_notice("It has a tag listing its protection classes.")
+ . += span_notice("Имеется бирка, указывающая классы защиты.")
/obj/item/clothing/examine_tags(mob/user)
. = ..()
diff --git a/code/modules/food_and_drinks/machinery/processor.dm b/code/modules/food_and_drinks/machinery/processor.dm
index 9ebbc59ee780f..41e029a7a4f52 100644
--- a/code/modules/food_and_drinks/machinery/processor.dm
+++ b/code/modules/food_and_drinks/machinery/processor.dm
@@ -143,9 +143,9 @@
if(!LAZYLEN(processor_contents))
to_chat(user, span_warning("Внутри [declent_ru(GENITIVE)] пусто!"))
return TRUE
- user.visible_message(span_notice("[user] turns on [src]."), \
- span_notice("You turn on [src]."), \
- span_hear("You hear a food processor."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] включает [declent_ru(ACCUSATIVE)]."), \
+ span_notice("Вы включаете [declent_ru(ACCUSATIVE)]."), \
+ span_hear("Вы слышите кухонный комбайн."))
processing()
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index ecd4cd9953b98..9bbd910d144ba 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -425,9 +425,9 @@
visible_message(span_notice("[capitalize(declent_ru(NOMINATIVE))] осматривает себя."), \
span_notice("Вы проверяете себя на наличие осколков."))
if(I.is_embed_harmless())
- to_chat(src, "\t There is \a [I] stuck to your [LB.name]!")
+ to_chat(src, "\t [capitalize(I.declent_ru(NOMINATIVE))] застревает у вас на [LB.declent_ru(PREPOSITIONAL)]!")
else
- to_chat(src, "\t There is \a [I] embedded in your [LB.name]!")
+ to_chat(src, "\t [capitalize(I.declent_ru(NOMINATIVE))] впивается у вас в [LB.declent_ru(PREPOSITIONAL)]!")
return embeds
@@ -663,7 +663,7 @@
return FALSE
if (run_armor_check(attack_flag = BIO, silent = TRUE) >= 100)
- to_chat(src, span_warning("Your armor shields you from [scramble_source]!"))
+ to_chat(src, span_warning("Ваша броня поглощает воздействие от [scramble_source]!"))
return FALSE
if (!length(GLOB.bioscrambler_valid_organs) || !length(GLOB.bioscrambler_valid_parts))
diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm
index 2b8ea6d6a6e9d..d4d6c8d449f9f 100644
--- a/code/modules/mob/living/carbon/examine.dm
+++ b/code/modules/mob/living/carbon/examine.dm
@@ -455,8 +455,8 @@
if(wear_id && !(wear_id.item_flags & EXAMINE_SKIP))
var/obj/item/card/id/id = wear_id.GetID()
if(id && get_dist(user, src) <= ID_EXAMINE_DISTANCE)
- var/id_href = "[wear_id.examine_title(user)]"
- . += "[t_He] [t_is] wearing [id_href]."
+ var/id_href = "[wear_id.examine_title(user, declent = ACCUSATIVE)]"
+ . += "[t_He] носит [id_href]."
else
. += "[t_He] носит [wear_id.examine_title(user, declent = ACCUSATIVE)]."
@@ -494,8 +494,8 @@
if(perpname && (HAS_TRAIT(user, TRAIT_SECURITY_HUD) || HAS_TRAIT(user, TRAIT_MEDICAL_HUD)) && (user.stat == CONSCIOUS || isobserver(user)) && user != src)
var/datum/record/crew/target_record = find_record(perpname)
if(target_record)
- . += "Rank: [target_record.rank]"
- . += "\[Front photo\]\[Side photo\]"
+ . += "Должность: [target_record.rank]"
+ . += "\[Фото спереди\]\[Фото сбоку\]"
if(HAS_TRAIT(user, TRAIT_MEDICAL_HUD) && HAS_TRAIT(user, TRAIT_SECURITY_HUD))
title = separator_hr("Медицинский и безопасности анализы")
. += get_medhud_examine_info(user, target_record)
@@ -529,10 +529,10 @@
. += "\[[target_record.physical_status]\]"
. += "\[[target_record.mental_status]\]"
else
- . += "\[Record Missing\]"
- . += "\[Record Missing\]"
- . += "\[Medical evaluation\]"
- . += "\[See quirks\]"
+ . += "\[Запись отсутствует\]"
+ . += "\[Запись отсутствует\]"
+ . += "\[Медицинское обследование\]"
+ . += "\[Показать черты\]"
/// Collects information displayed about src when examined by a user with a security HUD.
/mob/living/carbon/proc/get_sechud_examine_info(mob/living/user, datum/record/crew/target_record)
@@ -546,15 +546,15 @@
if(target_record.security_note)
security_note = target_record.security_note
if(ishuman(user))
- . += "Criminal status: \[[wanted_status]\]"
+ . += "Криминальный статус: \[[wanted_status]\]"
else
- . += "Criminal status: [wanted_status]"
- . += "Important Notes: [security_note]"
- . += "Security record: \[View\]"
+ . += "Криминальный статус: [wanted_status]"
+ . += "Важные заметки: [security_note]"
+ . += "Записи охраны: \[Показать\]"
if(ishuman(user))
- . += "\[Add citation\]\
- \[Add crime\]\
- \[Add note\]"
+ . += "\[Добавить штраф\]\
+ \[Добавить преступление\]\
+ \[Добавить примечание\]"
/mob/living/carbon/human/examine_more(mob/user)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 3037a44d5aa2c..44080f95f0052 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -315,9 +315,9 @@
sec_record_message += span_notice("\n-- РЕДАКТИРОВАНО --")
continue
- sec_record_message += "\nCrime: [crime.name]"
- sec_record_message += "\nDetails: [crime.details]"
- sec_record_message += "\nAdded by [crime.author] at [crime.time]"
+ sec_record_message += "\nПреступление: [crime.name]"
+ sec_record_message += "\nОписание: [crime.details]"
+ sec_record_message += "\n[crime.author] добавляет в [crime.time]"
to_chat(human_or_ghost_user, boxed_message(sec_record_message))
return
if(ishuman(human_or_ghost_user))
diff --git a/code/modules/mob/living/navigation.dm b/code/modules/mob/living/navigation.dm
index 245d594665c71..82c60315e9465 100644
--- a/code/modules/mob/living/navigation.dm
+++ b/code/modules/mob/living/navigation.dm
@@ -37,15 +37,15 @@
destination_list[destination_name] = destination
if(can_go_down)
- destination_list["Nearest Way Down"] = DOWN
+ destination_list["Близлежащий путь вниз"] = DOWN
if(can_go_up)
- destination_list["Nearest Way Up"] = UP
+ destination_list["Близлежащий путь вверх"] = UP
if(!length(destination_list))
balloon_alert(src, "нет сигнала для навигации!")
return
- var/platform_code = tgui_input_list(src, "Select a location", "Navigate", sort_list(destination_list))
+ var/platform_code = tgui_input_list(src, "Выберите локацию", "Навигация", sort_list(destination_list))
var/atom/navigate_target = destination_list[platform_code]
if(isnull(navigate_target) || incapacitated)
@@ -58,12 +58,12 @@
// lowering the cooldown to 5 seconds if we're navigating to a ladder or staircase instead of a proper destination
// (so we can decide to move to another destination right off the bat, rather than needing to wait)
COOLDOWN_START(src, navigate_cooldown, 5 SECONDS)
- var/direction_name = isatom(navigate_target) ? "there" : (navigate_target == UP ? "up" : "down")
+ var/direction_name = isatom(navigate_target) ? "туда" : (navigate_target == UP ? "вверх" : "вниз")
var/nav_dir = isatom(navigate_target) ? (get_dir_multiz(src, navigate_target) & (UP|DOWN)) : navigate_target
var/atom/new_target = find_nearest_stair_or_ladder(nav_dir)
if(!new_target)
- balloon_alert(src, "can't find ladder or staircase going [direction_name]!")
+ balloon_alert(src, "не удалось найти ступеньки или лестницу ведущую [direction_name]!")
return
navigate_target = new_target
@@ -104,7 +104,7 @@
RegisterSignal(src, COMSIG_LIVING_DEATH, PROC_REF(cut_navigation))
if(finding_zchange)
RegisterSignal(src, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(cut_navigation))
- balloon_alert(src, "navigation path created")
+ balloon_alert(src, "путь к месту назначания построен")
/mob/living/proc/shine_navigation()
for(var/i in 1 to length(client.navigation_images))
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 85d2dad5bfc65..fb3e98d510149 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -531,7 +531,7 @@
if(examine_time && (world.time - examine_time < EXAMINE_MORE_WINDOW))
var/list/result = examinify.examine_more(src)
if(!length(result))
- result += span_notice("You examine [examinify] closer, but find nothing of interest...")
+ result += span_notice("Вы осматриваете [examinify.declent_ru(ACCUSATIVE)] подробнее, но не находите ничего интересного...")
result_combined = boxed_message(jointext(result, "
"))
else
diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm
index 66bab973ed49e..35a2dd7783767 100644
--- a/code/modules/surgery/bodyparts/_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/_bodyparts.dm
@@ -362,8 +362,8 @@
check_list += "\t [span_boldwarning("Ваша [declent_ru(NOMINATIVE)] страдает от: [LOWER_TEXT(wound.name)]!!!")]"
for(var/obj/item/embedded_thing in embedded_objects)
- var/stuck_word = embedded_thing.is_embed_harmless() ? "stuck" : "embedded"
- check_list += "\t There is \a [embedded_thing] [stuck_word] in your [name]!"
+ var/stuck_word = embedded_thing.is_embed_harmless() ? "прилип" : "застрял"
+ check_list += "\t [capitalize(embedded_thing.declent_ru(NOMINATIVE))] [stuck_word] [stuck_word == "застрял" ? "в" : "к"] вашей [declent_ru(DATIVE)]!"
/obj/item/bodypart/blob_act()
receive_damage(max_damage, wound_bonus = CANT_WOUND)