diff --git a/code/datums/components/bakeable.dm b/code/datums/components/bakeable.dm
index 93e96f65d58fc..ee0cc0310b299 100644
--- a/code/datums/components/bakeable.dm
+++ b/code/datums/components/bakeable.dm
@@ -97,15 +97,15 @@
if(positive_result)
used_oven.visible_message(
- span_notice("You smell something great coming from [used_oven]."),
- blind_message = span_notice("You smell something great..."),
+ span_notice("Вы чувствуете, как [used_oven.declent_ru(NOMINATIVE)] источает приятный запах."),
+ blind_message = span_notice("Вы чувствуете приятный запах..."),
ignored_mobs = asomnia_hadders,
)
BLACKBOX_LOG_FOOD_MADE(baked_result.type)
else
used_oven.visible_message(
- span_warning("You smell a burnt smell coming from [used_oven]."),
- blind_message = span_warning("You smell a burnt smell..."),
+ span_warning("Вы чувствуете, как [used_oven.declent_ru(NOMINATIVE)] испускает горелое зловоние."),
+ blind_message = span_warning("Вы чувствуете запах горелого..."),
ignored_mobs = asomnia_hadders,
)
SEND_SIGNAL(parent, COMSIG_ITEM_BAKED, baked_result)
@@ -118,15 +118,15 @@
if(!current_bake_time) //Not baked yet
if(positive_result)
if(initial(bake_result.gender) == PLURAL)
- examine_list += span_notice("[parent] can be [span_bold("baked")] into some [initial(bake_result.name)].")
+ examine_list += span_notice("[capitalize(parent.declent_ru(NOMINATIVE))] [span_bold("запекается")] в [initial(bake_result.ru_name_accusative) || initial(bake_result.name)].")
else
- examine_list += span_notice("[parent] can be [span_bold("baked")] into \a [initial(bake_result.name)].")
+ examine_list += span_notice("[capitalize(parent.declent_ru(NOMINATIVE))] [span_bold("запекается")] в [initial(bake_result.ru_name_accusative) || initial(bake_result.name)].")
return
if(positive_result)
if(current_bake_time <= required_bake_time * 0.75)
- examine_list += span_notice("[parent] probably needs to be baked a bit longer!")
+ examine_list += span_notice("Наверное, [parent.declent_ru(ACCUSATIVE)] нужно выпекать немного дольше!")
else if(current_bake_time <= required_bake_time)
- examine_list += span_notice("[parent] seems to be almost finished baking!")
+ examine_list += span_notice("Кажется, что [parent.declent_ru(NOMINATIVE)] вот-вот запечется!")
else
- examine_list += span_danger("[parent] should probably not be put in the oven.")
+ examine_list += span_danger("[capitalize(parent.declent_ru(NOMINATIVE))] не стоит засовывать в духовку.")
diff --git a/code/modules/food_and_drinks/machinery/coffeemaker.dm b/code/modules/food_and_drinks/machinery/coffeemaker.dm
index 15d30d24d4ffe..d730625a3ff9d 100644
--- a/code/modules/food_and_drinks/machinery/coffeemaker.dm
+++ b/code/modules/food_and_drinks/machinery/coffeemaker.dm
@@ -3,7 +3,7 @@
/obj/machinery/coffeemaker
name = "coffeemaker"
RU_NAMES_LIST_INIT("coffeemaker", "кофемашина", "кофемашины", "кофемашине", "кофемашину", "кофемашиной", "кофемашине")
- desc = "A Modello 3 Coffeemaker that brews coffee and holds it at the perfect temperature of 176 fahrenheit. Made by Piccionaia Home Appliances."
+ desc = "Кофеварка Modello 3, которая варит кофе и поддерживает его идеальную температуру 80 градусов по Цельсию. Произведено компанией Piccionaia Home Appliances."
icon = 'icons/obj/medical/chemical.dmi'
icon_state = "coffeemaker_nopot_nocart"
base_icon_state = "coffeemaker"
@@ -73,56 +73,56 @@
/obj/machinery/coffeemaker/examine(mob/user)
. = ..()
if(!in_range(user, src) && !issilicon(user) && !isobserver(user))
- . += span_warning("You're too far away to examine [src]'s contents and display!")
+ . += span_warning("Вы слишком далеко, чтобы изучить содержимое и дисплей [declent_ru(GENITIVE)]!")
return
if(brewing)
- . += span_warning("\The [src] is brewing.")
+ . += span_warning("[capitalize(declent_ru(NOMINATIVE))] варит.")
return
if(panel_open)
- . += span_notice("[src]'s maintenance hatch is open!")
+ . += span_notice("Панель для обслуживания [declent_ru(GENITIVE)] открыта!")
return
if(coffeepot || cartridge)
- . += span_notice("\The [src] contains:")
+ . += span_notice("[capitalize(declent_ru(NOMINATIVE))] содержит:")
if(coffeepot)
- . += span_notice("- \A [coffeepot].")
+ . += span_notice("- [coffeepot.declent_ru(ACCUSATIVE)].")
if(cartridge)
- . += span_notice("- \A [cartridge].")
+ . += span_notice("- [cartridge.declent_ru(ACCUSATIVE)].")
return
if(!(machine_stat & (NOPOWER|BROKEN)))
- . += "[span_notice("The status display reads:")]\n"+\
- span_notice("- Brewing coffee at [speed*100]%.")
+ . += "[span_notice("На дисплее состояния отображается:")]\n"+\
+ span_notice("- Заваривает кофе на [speed*100]%.")
if(coffeepot)
for(var/datum/reagent/consumable/cawfee as anything in coffeepot.reagents.reagent_list)
- . += span_notice("- [cawfee.volume] units of coffee in pot.")
+ . += span_notice("- [cawfee.volume] юнитов кофе в кофейнике.")
if(cartridge)
if(cartridge.charges < 1)
- . += span_notice("- grounds cartridge is empty.")
+ . += span_notice("- кофейный картридж пуст.")
else
- . += span_notice("- grounds cartridge has [cartridge.charges] charges remaining.")
+ . += span_notice("- порций в кофейном картридже: [cartridge.charges].")
if (coffee_cups >= 1)
- . += span_notice("There [coffee_cups == 1 ? "is" : "are"] [coffee_cups] coffee cup[coffee_cups != 1 && "s"] left.")
+ . += span_notice("[declension_ru(coffee_cups,"Осталась","Остались","Осталось")] [coffee_cups] [declension_ru(coffee_cups,"кофейная чашка","кофейные чашки","кофейных чашек")].")
else
- . += span_notice("There are no cups left.")
+ . += span_notice("Чашек больше нет.")
if (sugar_packs >= 1)
- . += span_notice("There [sugar_packs == 1 ? "is" : "are"] [sugar_packs] packet[sugar_packs != 1 && "s"] of sugar left.")
+ . += span_notice("[declension_ru(sugar_packs,"Осталась","Остались","Осталось")] [sugar_packs] [declension_ru(sugar_packs,"пачка сахара","пачки сахара","пачек сахара")].")
else
- . += span_notice("There is no sugar left.")
+ . += span_notice("Сахара больше нет.")
if (sweetener_packs >= 1)
- . += span_notice("There [sweetener_packs == 1 ? "is" : "are"] [sweetener_packs] packet[sweetener_packs != 1 && "s"] of sweetener left.")
+ . += span_notice("[declension_ru(sweetener_packs,"Осталась","Остались","Осталось")] [sweetener_packs] [declension_ru(sweetener_packs,"пачка подсластителя","пачки подсластителя","пачек подсластителя")].")
else
- . += span_notice("There is no sweetener left.")
+ . += span_notice("Подсластителя больше нет.")
if (creamer_packs > 1)
- . += span_notice("There [creamer_packs == 1 ? "is" : "are"] [creamer_packs] packet[creamer_packs != 1 && "s"] of creamer left.")
+ . += span_notice("[declension_ru(creamer_packs,"Осталась","Остались","Осталось")] [creamer_packs] [declension_ru(creamer_packs,"пачка сливок","пачки сливок","пачек сливок")].")
else
- . += span_notice("There is no creamer left.")
+ . += span_notice("Сливок больше нет.")
/obj/machinery/coffeemaker/attack_hand_secondary(mob/user, list/modifiers)
. = ..()
@@ -160,7 +160,7 @@
try_put_in_hand(coffeepot, user)
if(new_coffeepot)
coffeepot = new_coffeepot
- balloon_alert(user, "replaced pot")
+ balloon_alert(user, "кофейник заменен")
update_appearance(UPDATE_OVERLAYS)
return TRUE
@@ -202,10 +202,10 @@
if (istype(attack_item, /obj/item/reagent_containers/cup/glass/coffee_cup) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container())
var/obj/item/reagent_containers/cup/glass/coffee_cup/new_cup = attack_item
if(new_cup.reagents.total_volume > 0)
- balloon_alert(user, "the cup must be empty!")
+ balloon_alert(user, "чашка должна быть пустой!")
return
if(coffee_cups >= max_coffee_cups)
- balloon_alert(user, "the cup holder is full!")
+ balloon_alert(user, "отделение для чашек заполнено!")
return
if(!user.transferItemToLoc(attack_item, src))
return
@@ -216,10 +216,10 @@
if (istype(attack_item, /obj/item/reagent_containers/condiment/pack/sugar))
var/obj/item/reagent_containers/condiment/pack/sugar/new_pack = attack_item
if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume)
- balloon_alert(user, "the pack must be full!")
+ balloon_alert(user, "пачка должна быть полной!")
return
if(sugar_packs >= max_sugar_packs)
- balloon_alert(user, "the sugar compartment is full!")
+ balloon_alert(user, "отделение для сахара заполнено!")
return
if(!user.transferItemToLoc(attack_item, src))
return
@@ -230,10 +230,10 @@
if (istype(attack_item, /obj/item/reagent_containers/condiment/creamer))
var/obj/item/reagent_containers/condiment/creamer/new_pack = attack_item
if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume)
- balloon_alert(user, "the pack must be full!")
+ balloon_alert(user, "пачка должна быть полной!")
return
if(creamer_packs >= max_creamer_packs)
- balloon_alert(user, "the creamer compartment is full!")
+ balloon_alert(user, "отделение для сливок заполнено!")
return
if(!user.transferItemToLoc(attack_item, src))
return
@@ -244,10 +244,10 @@
if (istype(attack_item, /obj/item/reagent_containers/condiment/pack/astrotame))
var/obj/item/reagent_containers/condiment/pack/astrotame/new_pack = attack_item
if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume)
- balloon_alert(user, "the pack must be full!")
+ balloon_alert(user, "пачка должна быть полной!")
return
else if(sweetener_packs >= max_sweetener_packs)
- balloon_alert(user, "the sweetener compartment is full!")
+ balloon_alert(user, "отделение для подсластителя заполнено!")
return
else if(!user.transferItemToLoc(attack_item, src))
return
@@ -260,25 +260,25 @@
if(!user.transferItemToLoc(new_cartridge, src))
return
replace_cartridge(user, new_cartridge)
- balloon_alert(user, "added cartridge")
+ balloon_alert(user, "картридж вставлен")
update_appearance(UPDATE_OVERLAYS)
return TRUE //no afterattack
/obj/machinery/coffeemaker/proc/try_brew()
if(!cartridge)
- balloon_alert(usr, "no coffee cartidge inserted!")
+ balloon_alert(usr, "не вставлен картридж для кофе!")
return FALSE
if(cartridge.charges < 1)
- balloon_alert(usr, "coffee cartidge empty!")
+ balloon_alert(usr, "кофейный картридж пуст!")
return FALSE
if(!coffeepot)
- balloon_alert(usr, "no coffeepot inside!")
+ balloon_alert(usr, "нет кофейника внутри!")
return FALSE
if(machine_stat & (NOPOWER|BROKEN))
- balloon_alert(usr, "machine unpowered!")
+ balloon_alert(usr, "кофеварка обесточена!")
return FALSE
if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume)
- balloon_alert(usr, "the coffeepot is already full!")
+ balloon_alert(usr, "кофейник уже полон!")
return FALSE
return TRUE
@@ -356,7 +356,7 @@
/obj/machinery/coffeemaker/proc/take_cup(mob/user)
if(!coffee_cups) //shouldn't happen, but we all know how stuff manages to break
- balloon_alert(user, "no cups left!")
+ balloon_alert(user, "нет чашек!")
return
var/obj/item/reagent_containers/cup/glass/coffee_cup/new_cup = new(get_turf(src))
user.put_in_hands(new_cup)
@@ -365,7 +365,7 @@
/obj/machinery/coffeemaker/proc/take_sugar(mob/user)
if(!sugar_packs)
- balloon_alert(user, "no sugar left!")
+ balloon_alert(user, "сахар закончился!")
return
var/obj/item/reagent_containers/condiment/pack/sugar/new_pack = new(get_turf(src))
user.put_in_hands(new_pack)
@@ -374,7 +374,7 @@
/obj/machinery/coffeemaker/proc/take_sweetener(mob/user)
if(!sweetener_packs)
- balloon_alert(user, "no sweetener left!")
+ balloon_alert(user, "подсластитель закончился!")
return
var/obj/item/reagent_containers/condiment/pack/astrotame/new_pack = new(get_turf(src))
user.put_in_hands(new_pack)
@@ -383,7 +383,7 @@
/obj/machinery/coffeemaker/proc/take_creamer(mob/user)
if(!creamer_packs)
- balloon_alert(user, "no creamer left!")
+ balloon_alert(user, "сливки закончились!")
return
var/obj/item/reagent_containers/condiment/creamer/new_pack = new(drop_location())
user.put_in_hands(new_pack)
@@ -421,7 +421,7 @@
/obj/item/coffee_cartridge
name = "coffeemaker cartridge- Caffè Generico"
RU_NAMES_LIST_INIT("coffeemaker cartridge- Caffè Generico", "картридж кофеварки - Caffè Generico", "картриджа кофеварки - Caffè Generico", "картриджу кофеварки - Caffè Generico", "картридж кофеварки - Caffè Generico", "картриджем кофеварки - Caffè Generico", "картридже кофеварки - Caffè Generico")
- desc = "A coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system."
+ desc = "Кофейный картридж производства Piccionaia Coffee, предназначенный для использования с системой Modello 3."
icon = 'icons/obj/food/cartridges.dmi'
icon_state = "cartridge_basic"
var/charges = 4
@@ -430,14 +430,14 @@
/obj/item/coffee_cartridge/examine(mob/user)
. = ..()
if(charges)
- . += span_warning("The cartridge has [charges] portions of grounds remaining.")
+ . += span_warning("Осталось порций в картридже: [charges].")
else
- . += span_warning("The cartridge has no unspent grounds remaining.")
+ . += span_warning("В картридже ничего не осталось")
/obj/item/coffee_cartridge/fancy
name = "coffeemaker cartridge - Caffè Fantasioso"
RU_NAMES_LIST_INIT("coffeemaker cartridge - Caffè Fantasioso", "картридж кофеварки - Caffè Fantasioso", "картриджа кофеварки - Caffè Fantasioso", "картриджу кофеварки - Caffè Fantasioso", "картридж кофеварки - Caffè Fantasioso", "картриджем кофеварки - Caffè Fantasioso", "картридже кофеварки - Caffè Fantasioso")
- desc = "A fancy coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system."
+ desc = "Изысканный кофейный картридж производства Piccionaia Coffee, предназначенный для использования с системой Modello 3."
icon_state = "cartridge_blend"
//Here's the joke before I get 50 issue reports: they're all the same, and that's intentional
@@ -461,21 +461,21 @@
/obj/item/coffee_cartridge/decaf
name = "coffeemaker cartridge - Caffè Decaffeinato"
RU_NAMES_LIST_INIT("coffeemaker cartridge - Caffè Decaffeinato", "картридж кофеварки - Caffè Decaffeinato", "картриджа кофеварки - Caffè Decaffeinato", "картриджу кофеварки - Caffè Decaffeinato", "картридж кофеварки - Caffè Decaffeinato", "картриджем кофеварки - Caffè Decaffeinato", "картридже кофеварки - Caffè Decaffeinato")
- desc = "A decaf coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system."
+ desc = "Картридж для кофе без кофеина, произведенный компанией Piccionaia Coffee, предназначенный для использования с системой Modello 3."
icon_state = "cartridge_decaf"
// no you can't just squeeze the juice bag into a glass!
/obj/item/coffee_cartridge/bootleg
name = "coffeemaker cartridge - Botany Blend"
RU_NAMES_LIST_INIT("coffeemaker cartridge - Botany Blend", "картридж кофеварки - Botany Blend", "картриджа кофеварки - Botany Blend", "картриджу кофеварки - Botany Blend", "картридж кофеварки - Botany Blend", "картриджем кофеварки - Botany Blend", "картридже кофеварки - Botany Blend")
- desc = "A jury-rigged coffee cartridge. Should work with a Modello 3 system, though it might void the warranty."
+ desc = "Картридж для приготовления кофе. Должен работать с системой Modello 3, хотя это может привести к потере гарантии."
icon_state = "cartridge_bootleg"
// blank cartridge for crafting's sake, can be made at the service lathe
/obj/item/blank_coffee_cartridge
name = "blank coffee cartridge"
RU_NAMES_LIST_INIT("blank coffee cartridge", "пустой кофе-картридж", "пустого кофе-картриджа", "пустому кофе-картриджу", "пустой кофе-картридж", "пустым кофе-картриджем", "пустом кофе-картридже")
- desc = "A blank coffee cartridge, ready to be filled with coffee paste."
+ desc = "Пустой кофейный картридж, готовый к заполнению кофейным помолом."
icon = 'icons/obj/food/cartridges.dmi'
icon_state = "cartridge_blank"
@@ -483,7 +483,7 @@
/obj/item/storage/fancy/coffee_cart_rack
name = "coffeemaker cartridge rack"
RU_NAMES_LIST_INIT("coffeemaker", "стойка для кофе-картриджей", "стойки для кофе-картриджей", "стойке для кофе-картриджей", "стойку для кофе-картриджей", "стойкой для кофе-картриджей", "стойке для кофе-картриджей")
- desc = "A small rack for storing coffeemaker cartridges."
+ desc = "Небольшая подставка для хранения картриджей кофемашины."
icon = 'icons/obj/food/containers.dmi'
icon_state = "coffee_cartrack4"
base_icon_state = "coffee_cartrack"
@@ -505,7 +505,7 @@
/obj/machinery/coffeemaker/impressa
name = "impressa coffeemaker"
RU_NAMES_LIST_INIT("impressa coffeemaker", "кофемашина Impressa", "кофемашины Impressa", "кофемашине Impressa", "кофемашину Impressa", "кофемашиной Impressa", "кофемашине Impressa")
- desc = "An industry-grade Impressa Modello 5 Coffeemaker of the Piccionaia Home Appliances premium coffeemakers product line. Makes coffee from fresh dried whole beans."
+ desc = "Кофеварка Impressa Modello 5 промышленного класса из линейки премиальных кофеварок Piccionaia Home Appliances. Готовит кофе из свежих сушеных цельных зерен."
icon = 'icons/obj/machines/coffeemaker.dmi'
icon_state = "coffeemaker_impressa"
circuit = /obj/item/circuitboard/machine/coffeemaker/impressa
@@ -532,7 +532,7 @@
/obj/machinery/coffeemaker/impressa/examine(mob/user)
. = ..()
if(coffee)
- . += span_notice("The internal grinder contains [coffee.len] scoop\s of coffee beans")
+ . += span_notice("Внутренняя кофемолка содержит [coffee.len] [declension_ru(coffee.len,"порцию","порции","порций")] кофейных зерен")
/obj/machinery/coffeemaker/impressa/update_overlays()
. = ..()
@@ -574,16 +574,16 @@
/obj/machinery/coffeemaker/impressa/try_brew()
if(coffee_amount <= 0)
- balloon_alert_to_viewers("no coffee beans added!")
+ balloon_alert_to_viewers("нет кофейных зерен!")
return FALSE
if(!coffeepot)
- balloon_alert_to_viewers("no coffeepot inside!")
+ balloon_alert_to_viewers("нет [coffeepot.declent_ru(GENITIVE)] внутри!")
return FALSE
if(machine_stat & (NOPOWER|BROKEN) )
- balloon_alert_to_viewers("machine unpowered!")
+ balloon_alert_to_viewers("[declent_ru(NOMINATIVE)] без питания!")
return FALSE
if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume)
- balloon_alert_to_viewers("the coffeepot is already full!")
+ balloon_alert_to_viewers("[coffeepot.declent_ru(NOMINATIVE)] уже полон!")
return FALSE
return TRUE
@@ -609,10 +609,10 @@
if (istype(attack_item, /obj/item/reagent_containers/cup/glass/coffee) && !(attack_item.item_flags & ABSTRACT) && attack_item.is_open_container())
var/obj/item/reagent_containers/cup/glass/coffee/new_cup = attack_item //different type of cup
if(new_cup.reagents.total_volume > 0 )
- balloon_alert(user, "the cup must be empty!")
+ balloon_alert(user, "чашка должна быть пуста!")
return
if(coffee_cups >= max_coffee_cups)
- balloon_alert(user, "the cup holder is full!")
+ balloon_alert(user, "чашка полная!")
return
if(!user.transferItemToLoc(attack_item, src))
return
@@ -623,10 +623,10 @@
if (istype(attack_item, /obj/item/reagent_containers/condiment/pack/sugar))
var/obj/item/reagent_containers/condiment/pack/sugar/new_pack = attack_item
if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume)
- balloon_alert(user, "the pack must be full!")
+ balloon_alert(user, "пачка должна быть полной!")
return
if(sugar_packs >= max_sugar_packs)
- balloon_alert(user, "the sugar compartment is full!")
+ balloon_alert(user, "отделение для сахара заполнено!")
return
if(!user.transferItemToLoc(attack_item, src))
return
@@ -637,10 +637,10 @@
if (istype(attack_item, /obj/item/reagent_containers/condiment/creamer))
var/obj/item/reagent_containers/condiment/creamer/new_pack = attack_item
if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume)
- balloon_alert(user, "the pack must be full!")
+ balloon_alert(user, "пачка должна быть полной!")
return
if(creamer_packs >= max_creamer_packs)
- balloon_alert(user, "the creamer compartment is full!")
+ balloon_alert(user, "отделение для сливок заполнено!")
return
if(!user.transferItemToLoc(attack_item, src))
return
@@ -651,10 +651,10 @@
if (istype(attack_item, /obj/item/reagent_containers/condiment/pack/astrotame))
var/obj/item/reagent_containers/condiment/pack/astrotame/new_pack = attack_item
if(new_pack.reagents.total_volume < new_pack.reagents.maximum_volume)
- balloon_alert(user, "the pack must be full!")
+ balloon_alert(user, "пачка должна быть полной!")
return
if(sweetener_packs >= max_sweetener_packs)
- balloon_alert(user, "the sweetener compartment is full!")
+ balloon_alert(user, "отделение для подсластителя заполнено!")
return
if(!user.transferItemToLoc(attack_item, src))
return
@@ -664,22 +664,22 @@
if (istype(attack_item, /obj/item/food/grown/coffee) && !(attack_item.item_flags & ABSTRACT))
if(coffee_amount >= BEAN_CAPACITY)
- balloon_alert(user, "the coffee container is full!")
+ balloon_alert(user, "емкость для кофе заполнена!")
return
if(!HAS_TRAIT(attack_item, TRAIT_DRIED))
- balloon_alert(user, "coffee beans must be dry!")
+ balloon_alert(user, "кофейные зерна должны быть сухими!")
return
var/obj/item/food/grown/coffee/new_coffee = attack_item
if(!user.transferItemToLoc(new_coffee, src))
return
coffee += new_coffee
coffee_amount++
- balloon_alert(user, "added coffee")
+ balloon_alert(user, "добавлено кофе")
if (istype(attack_item, /obj/item/storage/box/coffeepack))
if(coffee_amount >= BEAN_CAPACITY)
- balloon_alert(user, "the coffee container is full!")
+ balloon_alert(user, "емкость для кофе заполнена!")
return
var/obj/item/storage/box/coffeepack/new_coffee_pack = attack_item
for(var/obj/item/food/grown/coffee/new_coffee in new_coffee_pack.contents)
@@ -689,14 +689,14 @@
coffee += new_coffee
coffee_amount++
new_coffee.forceMove(src)
- balloon_alert(user, "added coffee")
+ balloon_alert(user, "добавлено кофе")
update_appearance(UPDATE_OVERLAYS)
else
return
else
return
else
- balloon_alert(user, "non-dried beans inside of coffee pack!")
+ balloon_alert(user, "не высушенные зерна в упаковке с кофе!")
return
update_appearance(UPDATE_OVERLAYS)
@@ -704,9 +704,9 @@
/obj/machinery/coffeemaker/impressa/take_cup(mob/user)
if(!coffee_cups) //shouldn't happen, but we all know how stuff manages to break
- balloon_alert(user, "no cups left!")
+ balloon_alert(user, "чашек не осталось!")
return
- balloon_alert_to_viewers("took cup")
+ balloon_alert_to_viewers("чашка взята!")
var/obj/item/reagent_containers/cup/glass/coffee/no_lid/new_cup = new(get_turf(src))
user.put_in_hands(new_cup)
coffee_cups--
diff --git a/code/modules/food_and_drinks/machinery/deep_fryer.dm b/code/modules/food_and_drinks/machinery/deep_fryer.dm
index 209a8a9995838..d114afffa5ee1 100644
--- a/code/modules/food_and_drinks/machinery/deep_fryer.dm
+++ b/code/modules/food_and_drinks/machinery/deep_fryer.dm
@@ -18,7 +18,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
/obj/machinery/deepfryer
name = "deep fryer"
RU_NAMES_LIST_INIT("deep fryer", "фритюрница", "фритюрницы", "фритюрнице", "фритюрницу", "фритюрницей", "фритюрнице")
- desc = "Deep fried everything."
+ desc = "Жарит всё."
icon = 'icons/obj/machines/kitchen.dmi'
icon_state = "fryer_off"
density = TRUE
@@ -93,9 +93,9 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
/obj/machinery/deepfryer/examine(mob/user)
. = ..()
if(frying)
- . += "You can make out \a [frying] in the oil."
+ . += "Вы разглядываете [frying.declent_ru(ACCUSATIVE)] в масле."
if(in_range(user, src) || isobserver(user))
- . += span_notice("The status display reads: Frying at [fry_speed*100]% speed.
Using [oil_use] units of oil per second.")
+ . += span_notice("На дисплее состояния отображается: Скорость жарки - [fry_speed*100]%.
Используется [oil_use] [declension_ru(oil_use,"юнит","юнита","юнитов")] масла в секунду.")
/obj/machinery/deepfryer/wrench_act(mob/living/user, obj/item/tool)
. = ..()
@@ -106,23 +106,23 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
// Dissolving pills into the frier
if(istype(weapon, /obj/item/reagent_containers/pill))
if(!reagents.total_volume)
- to_chat(user, span_warning("There's nothing to dissolve [weapon] in!"))
+ to_chat(user, span_warning("Не в чем растворять [weapon.declent_ru(ACCUSATIVE)]!"))
return
- user.visible_message(span_notice("[user] drops [weapon] into [src]."), span_notice("You dissolve [weapon] in [src]."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] бросает [weapon.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."), span_notice("Вы растворяете [weapon.declent_ru(ACCUSATIVE)] в [declent_ru(PREPOSITIONAL)]."))
weapon.reagents.trans_to(src, weapon.reagents.total_volume, transferred_by = user)
qdel(weapon)
return
// Make sure we have cooking oil
if(!reagents.has_reagent(/datum/reagent/consumable/nutriment/fat, check_subtypes = TRUE))
- to_chat(user, span_warning("[src] has no fat or oil to fry with!"))
+ to_chat(user, span_warning("[capitalize(declent_ru(NOMINATIVE))] не имеет жира или масла для жарки!"))
return
// Don't deep fry indestructible things, for sanity reasons
if(weapon.resistance_flags & INDESTRUCTIBLE)
- to_chat(user, span_warning("You don't feel it would be wise to fry [weapon]..."))
+ to_chat(user, span_warning("Вы полагате, что жарить [weapon.declent_ru(ACCUSATIVE)] может плохо кончиться..."))
return
// No fractal frying
if(HAS_TRAIT(weapon, TRAIT_FOOD_FRIED))
- to_chat(user, span_userdanger("Your cooking skills are not up to the legendary Doublefry technique."))
+ to_chat(user, span_userdanger("Ваши кулинарные способности не дотягивают до легендарной техники Двойножарки."))
return
// Handle opening up the fryer with tools
if(default_deconstruction_screwdriver(user, "fryer_off", "fryer_off", weapon)) //where's the open maint panel icon?!
@@ -161,14 +161,14 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
if(cook_time >= DEEPFRYER_COOKTIME && !frying_fried)
frying_fried = TRUE //frying... frying... fried
playsound(src.loc, 'sound/machines/ding.ogg', 50, TRUE)
- audible_message(span_notice("[src] dings!"))
+ audible_message(span_notice("[capitalize(declent_ru(NOMINATIVE))] звенит!"))
else if (cook_time >= DEEPFRYER_BURNTIME && !frying_burnt)
frying_burnt = TRUE
var/list/asomnia_hadders = list()
for(var/mob/smeller in get_hearers_in_view(DEFAULT_MESSAGE_RANGE, src))
if(HAS_TRAIT(smeller, TRAIT_ANOSMIA))
asomnia_hadders += smeller
- visible_message(span_warning("[src] emits an acrid smell!"), ignored_mobs = asomnia_hadders)
+ visible_message(span_warning("[capitalize(declent_ru(NOMINATIVE))] источает едкий запах!"), ignored_mobs = asomnia_hadders)
use_energy(active_power_usage)
@@ -191,10 +191,10 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
update_appearance(UPDATE_OVERLAYS)
/obj/machinery/deepfryer/proc/start_fry(obj/item/frying_item, mob/user)
- to_chat(user, span_notice("You put [frying_item] into [src]."))
+ to_chat(user, span_notice("Вы помещаете [frying_item.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."))
if(istype(frying_item, /obj/item/freeze_cube))
log_bomber(user, "put a freeze cube in a", src)
- visible_message(span_userdanger("[src] starts glowing... Oh no..."))
+ visible_message(span_userdanger("[capitalize(declent_ru(NOMINATIVE))] начинает светиться... О нет..."))
playsound(src, 'sound/effects/pray_chaplain.ogg', 100)
add_filter("entropic_ray", 10, list("type" = "rays", "size" = 35, "color" = COLOR_VIVID_YELLOW))
addtimer(CALLBACK(src, PROC_REF(blow_up)), 5 SECONDS)
@@ -212,7 +212,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
fry_loop.start()
/obj/machinery/deepfryer/proc/blow_up()
- visible_message(span_userdanger("[src] blows up from the entropic reaction!"))
+ visible_message(span_userdanger("[capitalize(declent_ru(NOMINATIVE))] взрывается в результате энтропийной реакции!"))
explosion(src, devastation_range = 1, heavy_impact_range = 3, light_impact_range = 5, flame_range = 7)
deconstruct(FALSE)
@@ -221,7 +221,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
/obj/machinery/deepfryer/attack_hand(mob/living/user, list/modifiers)
if(frying)
- to_chat(user, span_notice("You eject [frying] from [src]."))
+ to_chat(user, span_notice("Вы вытаскиваете [frying.declent_ru(ACCUSATIVE)] из [declent_ru(GENITIVE)]]."))
frying.forceMove(drop_location())
if(Adjacent(user) && !issilicon(user))
user.put_in_hands(frying)
@@ -229,17 +229,17 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
else if(user.pulling && iscarbon(user.pulling) && reagents.total_volume)
if(user.grab_state < GRAB_AGGRESSIVE)
- to_chat(user, span_warning("You need a better grip to do that!"))
+ to_chat(user, span_warning("Для этого нужно усилить захват!"))
return
var/mob/living/carbon/dunking_target = user.pulling
log_combat(user, dunking_target, "dunked", null, "into [src]")
- user.visible_message(span_danger("[user] dunks [dunking_target]'s face in [src]!"))
+ user.visible_message(span_danger("[capitalize(user.declent_ru(NOMINATIVE))] макает лицо [dunking_target.declent_ru(GENITIVE)] в [declent_ru(ACCUSATIVE)]!"))
reagents.expose(dunking_target, TOUCH)
var/bio_multiplier = dunking_target.getarmor(BODY_ZONE_HEAD, BIO) * 0.01
var/target_temp = dunking_target.bodytemperature
var/cold_multiplier = 1
if(target_temp < TCMB + 10) // a tiny bit of leeway
- dunking_target.visible_message(span_userdanger("[dunking_target] explodes from the entropic difference! Holy fuck!"))
+ dunking_target.visible_message(span_userdanger("[capitalize(dunking_target.declent_ru(NOMINATIVE))] взрывается от энтропийной разницы! Блять!"))
dunking_target.investigate_log("has been gibbed by entropic difference (being dunked into [src]).", INVESTIGATE_DEATHS)
dunking_target.gib(DROP_ALL_REMAINS)
log_combat(user, dunking_target, "blew up", null, "by dunking them into [src]")
diff --git a/code/modules/food_and_drinks/machinery/food_cart.dm b/code/modules/food_and_drinks/machinery/food_cart.dm
index 3c10714cbe5f8..d68bcd12cb1c0 100644
--- a/code/modules/food_and_drinks/machinery/food_cart.dm
+++ b/code/modules/food_and_drinks/machinery/food_cart.dm
@@ -2,7 +2,7 @@
/obj/machinery/food_cart
name = "food cart"
RU_NAMES_LIST_INIT("food cart", "тележка с едой", "тележки с едой", "тележке с едой", "тележку с едой", "тележкой с едой", "тележке с едой")
- desc = "A compact unpackable mobile cooking stand. Wow! When unpacked, it reminds you of those greasy gamer setups some people on NTNet have."
+ desc = "Компактная мобильная стойка для кулинарных работ с возможностью распаковки. Вот это да! В распакованном виде она напоминает те жирные геймерские установки, которые есть у некоторых людей в NTNet."
icon = 'icons/obj/service/kitchen.dmi'
icon_state = "foodcart"
density = TRUE
@@ -45,16 +45,16 @@
. = ..()
if(!(machine_stat & BROKEN))
if(cart_griddle.machine_stat & BROKEN)
- . += span_warning("The stand's griddle is completely broken!")
+ . += span_warning("Гриль стойки сломан!")
else
- . += span_notice("The stand's griddle is intact.")
- . += span_notice("The stand's fridge seems fine.") //weirdly enough, these fridges don't break
- . += span_notice("The stand's table seems fine.")
+ . += span_notice("Гриль стойки целый.")
+ . += span_notice("Холодильник стойки целый.") //weirdly enough, these fridges don't break
+ . += span_notice("Стол стойки целый.")
/obj/machinery/food_cart/proc/pack_up()
if(!unpacked)
return
- visible_message(span_notice("[src] retracts all of it's unpacked components."))
+ visible_message(span_notice("[capitalize(declent_ru(NOMINATIVE))] втягивает все свои распакованные части."))
for(var/o in packed_things)
var/obj/object = o
UnregisterSignal(object, COMSIG_MOVABLE_MOVED)
@@ -66,9 +66,9 @@
if(unpacked)
return
if(!check_setup_place())
- to_chat(user, span_warning("There isn't enough room to unpack here! Bad spaces were marked in red."))
+ to_chat(user, span_warning("Здесь не хватит места, чтобы все распаковать! Плохие места отмечены красным цветом."))
return
- visible_message(span_notice("[src] expands into a full stand."))
+ visible_message(span_notice("[capitalize(declent_ru(NOMINATIVE))] расширяется, превращаясь в полноценную стойку."))
set_anchored(TRUE)
var/iteration = 1
var/turf/grabbed_turf = get_step(get_turf(src), EAST)
@@ -83,15 +83,15 @@
/obj/machinery/food_cart/attack_hand(mob/living/user, list/modifiers)
. = ..()
if(machine_stat & BROKEN)
- to_chat(user, span_warning("[src] is completely busted."))
+ to_chat(user, span_warning("[capitalize(declent_ru(NOMINATIVE))] полностью разрушена."))
return
var/obj/item/card/id/id_card = user.get_idcard(hand_first = TRUE)
if(!check_access(id_card))
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE)
return
- to_chat(user, span_notice("You attempt to [unpacked ? "pack up" :"unpack"] [src]..."))
+ to_chat(user, span_notice("Вы пытаетесь [unpacked ? "распаковать" :"разобрать"] [declent_ru(ACCUSATIVE)]..."))
if(!do_after(user, 5 SECONDS, src))
- to_chat(user, span_warning("Your [unpacked ? "" :"un"]packing of [src] was interrupted!"))
+ to_chat(user, span_warning("Ваша [unpacked ? "распаковка" :"разборка"] [declent_ru(GENITIVE)] была прервана!"))
return
if(unpacked)
pack_up()
@@ -135,7 +135,7 @@
/obj/effect/food_cart_stand
name = "food cart tent"
RU_NAMES_LIST_INIT("food cart tent", "палатка для тележки с едой", "палатки для тележки с едой", "палатке для тележки с едой", "палатку для тележки с едой", "палаткой для тележки с едой", "палатке для тележки с едой")
- desc = "Something to battle the sun, for there are no breaks for the burger flippers."
+ desc = "Что-то для борьбы с солнцем, ведь перерывов у работников бургерной нет."
icon = 'icons/obj/fluff/3x3.dmi'
icon_state = "stand"
layer = ABOVE_MOB_LAYER//big mobs will still go over the tent, this is fine and cool
diff --git a/code/modules/food_and_drinks/machinery/gibber.dm b/code/modules/food_and_drinks/machinery/gibber.dm
index d186b4fdc9fc6..33d7597ad5f25 100644
--- a/code/modules/food_and_drinks/machinery/gibber.dm
+++ b/code/modules/food_and_drinks/machinery/gibber.dm
@@ -1,7 +1,7 @@
/obj/machinery/gibber
name = "gibber"
RU_NAMES_LIST_INIT("gibber", "мясорубка", "мясорубки", "мясорубке", "мясорубку", "мясорубкой", "мясорубке")
- desc = "The name isn't descriptive enough?"
+ desc = "Название недостаточно информативное?"
icon = 'icons/obj/machines/kitchen.dmi'
icon_state = "grinder"
density = TRUE
@@ -21,10 +21,10 @@
if(prob(5))
name = "meat grinder"
RU_NAMES_LIST_INIT("meat grinder", "мясорубка", "мясорубки", "мясорубке", "мясорубку", "мясорубкой", "мясорубке")
- desc = "Okay, if I... if I chop you up in a meat grinder, and the only thing that comes out, that's left of you, is your eyeball, \
- you'r- you're PROBABLY DEAD! You're probably going to - not you, I'm just sayin', like, if you- if somebody were to, like, \
- push you into a meat grinder, and, like, your- one of your finger bones is still intact, they're not gonna pick it up and go, \
- Well see, yeah it wasn't deadly, it wasn't an instant kill move! You still got, like, this part of your finger left!"
+ desc = "Ладно, если я... если я измельчу тебя в мясорубке, и единственное, что от тебя останется, - это глазное яблоко, \
+ то ты... ты ТОЧНО УМРЕШЬ! Ты, наверное, - не ты, я просто говорю, что если бы ты... если бы кто-то, типа, \
+ если тебя заталкивают в мясорубку, и, к примеру, одна из косточек твоего пальца все еще цела, они не станут ее поднимать и уходить, \
+ видите ли, да, это не было смертельно опасно, это не было мгновенным убийством! У тебя еще осталась часть пальца!"
dirty = TRUE
update_appearance(UPDATE_OVERLAYS)
@@ -42,10 +42,10 @@
/obj/machinery/gibber/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += span_notice("The status display reads: Outputting [meat_produced] meat slab(s) after [gibtime*0.1] seconds of processing.")
+ . += span_notice("На дисплее состояния отображается: Вывод [meat_produced] мясных кусков через [gibtime*0.1] секунд работы.")
for(var/datum/stock_part/servo/servo in component_parts)
if(servo.tier >= 2)
- . += span_notice("[src] has been upgraded to process inorganic materials.")
+ . += span_notice("Машина была модернизирована для обработки неорганических материалов.")
/obj/machinery/gibber/update_overlays()
. = ..()
@@ -84,36 +84,36 @@
if(machine_stat & (NOPOWER|BROKEN))
return
if(operating)
- to_chat(user, span_danger("It's locked and running."))
+ to_chat(user, span_danger("Машина работает, потому доступ заблокирован."))
return
if(!anchored)
- to_chat(user, span_warning("[src] cannot be used unless bolted to the ground!"))
+ to_chat(user, span_warning("Нельзя использовать [declent_ru(ACCUSATIVE)], пока [ru_p_they()] не прикручена к полу!"))
return
if(user.pulling && isliving(user.pulling))
var/mob/living/L = user.pulling
if(!iscarbon(L))
- to_chat(user, span_warning("This item is not suitable for [src]!"))
+ to_chat(user, span_warning("Этот предмет не подходит для [declent_ru(GENITIVE)]!"))
return
var/mob/living/carbon/C = L
if(C.buckled || C.has_buckled_mobs())
- to_chat(user, span_warning("[C] is attached to something!"))
+ to_chat(user, span_warning("Тело [C.declent_ru(GENITIVE)] к чему-то пристегнуто!"))
return
if(!ignore_clothing)
for(var/obj/item/I in C.held_items + C.get_equipped_items())
if(!HAS_TRAIT(I, TRAIT_NODROP))
- to_chat(user, span_warning("Subject may not have abiotic items on!"))
+ to_chat(user, span_warning("На объекте не должно быть абиотических предметов!"))
return
- user.visible_message(span_danger("[user] starts to put [C] into [src]!"))
+ user.visible_message(span_danger("[capitalize(user.declent_ru(NOMINATIVE))] начинает запихивать [C.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]!"))
add_fingerprint(user)
if(do_after(user, gibtime, target = src))
if(C && user.pulling == C && !C.buckled && !C.has_buckled_mobs() && !occupant)
- user.visible_message(span_danger("[user] stuffs [C] into [src]!"))
+ user.visible_message(span_danger("[capitalize(user.declent_ru(NOMINATIVE))] запихивает [C.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]!"))
C.forceMove(src)
set_occupant(C)
update_appearance()
@@ -157,17 +157,17 @@
if(operating)
return
if(!occupant)
- audible_message(span_hear("You hear a loud metallic grinding sound."))
+ audible_message(span_hear("Вы слышите громкий металлический скрежет."))
return
if(occupant.flags_1 & HOLOGRAM_1)
- audible_message(span_hear("You hear a very short metallic grinding sound."))
+ audible_message(span_hear("Вы слышите очень короткий металлический скрежет."))
playsound(loc, 'sound/machines/hiss.ogg', 20, TRUE)
qdel(occupant)
set_occupant(null)
return
use_energy(active_power_usage)
- audible_message(span_hear("You hear a loud squelchy grinding sound."))
+ audible_message(span_hear("Вы слышите громкий хлюпающий скрежещущий звук."))
playsound(loc, 'sound/machines/juicer.ogg', 50, TRUE)
operating = TRUE
update_appearance()
diff --git a/code/modules/food_and_drinks/machinery/griddle.dm b/code/modules/food_and_drinks/machinery/griddle.dm
index 97ebae791c49d..d1c8196bda618 100644
--- a/code/modules/food_and_drinks/machinery/griddle.dm
+++ b/code/modules/food_and_drinks/machinery/griddle.dm
@@ -1,7 +1,7 @@
/obj/machinery/griddle
name = "griddle"
RU_NAMES_LIST_INIT("griddle", "гридль", "гридля", "гридлю", "гридль", "гридлем", "гридле")
- desc = "Because using pans is for pansies."
+ desc = "Сковородки для слабаков."
icon = 'icons/obj/machines/kitchen.dmi'
icon_state = "griddle1_off"
density = TRUE
@@ -55,7 +55,7 @@
AddToGrill(new_pancake)
if(griddled_objects.len >= max_items)
break
- visible_message(span_notice("[exposing_reagent] begins to cook on [src]."))
+ visible_message(span_notice("[capitalize(exposing_reagent.declent_ru(NOMINATIVE))] начинает жариться на [declent_ru(PREPOSITIONAL)]."))
return NONE
/obj/machinery/griddle/crowbar_act(mob/living/user, obj/item/I)
@@ -66,7 +66,7 @@
/obj/machinery/griddle/attackby(obj/item/I, mob/user, params)
if(griddled_objects.len >= max_items)
- to_chat(user, span_notice("[src] can't fit more items!"))
+ to_chat(user, span_notice("[capitalize(declent_ru(NOMINATIVE))] не может уместить больше предметов!"))
return
var/list/modifiers = params2list(params)
//Center the icon where the user clicked.
@@ -76,7 +76,7 @@
//Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
I.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(ICON_SIZE_X/2), ICON_SIZE_X/2)
I.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(ICON_SIZE_Y/2), ICON_SIZE_Y/2)
- to_chat(user, span_notice("You place [I] on [src]."))
+ to_chat(user, span_notice("Вы помещаете [I.declent_ru(ACCUSATIVE)] на [declent_ru(ACCUSATIVE)]."))
AddToGrill(I, user)
else
return ..()
@@ -94,12 +94,12 @@
return NONE
if(length(contents) >= max_items)
- balloon_alert(user, "it's full!")
+ balloon_alert(user, "заполнено!")
return ITEM_INTERACT_BLOCKING
if(!istype(item, /obj/item/storage/bag/tray))
// Non-tray dumping requires a do_after
- to_chat(user, span_notice("You start dumping out the contents of [item] into [src]..."))
+ to_chat(user, span_notice("Вы начинаете вываливать содержимое [item.declent_ru(GENITIVE)] на [declent_ru(ACCUSATIVE)]..."))
if(!do_after(user, 2 SECONDS, target = item))
return ITEM_INTERACT_BLOCKING
@@ -113,7 +113,7 @@
loaded++
AddToGrill(tray_item, user)
if(loaded)
- to_chat(user, span_notice("You insert [loaded] item\s into [src]."))
+ to_chat(user, span_notice("Вы вываливаете [loaded] [declension_ru(loaded,"предмет","предмета","предметов")] на [declent_ru(ACCUSATIVE)]."))
update_appearance()
return ITEM_INTERACT_SUCCESS
return ITEM_INTERACT_BLOCKING
@@ -202,7 +202,7 @@
to_dump.pixel_y = to_dump.base_pixel_y + rand(-5, 5)
AddToGrill(to_dump, user)
- to_chat(user, span_notice("You dump out [storage.parent] onto [src]."))
+ to_chat(user, span_notice("Вы перемещаете содержимое из [storage.parent.declent_ru(GENITIVE)] на [declent_ru(ACCUSATIVE)]."))
return STORAGE_DUMP_HANDLED
/obj/machinery/griddle/process(seconds_per_tick)
@@ -211,7 +211,7 @@
continue
griddled_item.fire_act(1000) //Hot hot hot!
if(prob(10))
- visible_message(span_danger("[griddled_item] doesn't seem to be doing too great on the [src]!"))
+ visible_message(span_danger("Кажется, [griddled_item.declent_ru(NOMINATIVE)] не очень удачно готовится на [declent_ru(PREPOSITIONAL)]!"))
use_energy(active_power_usage)
@@ -226,7 +226,7 @@
/obj/machinery/griddle/stand
name = "griddle stand"
RU_NAMES_LIST_INIT("griddle stand", "столик гридля", "столика гридля", "столику гридля", "столик гридля", "столиком гридля", "столике гридля")
- desc = "A more commercialized version of your traditional griddle. What happened to the good old days where people griddled with passion?"
+ desc = "Более коммерческая версия традиционного гридля. Что случилось со старыми добрыми временами, когда люди жарили на гридле со страстью?"
variant = "stand"
/obj/machinery/griddle/stand/update_overlays()
diff --git a/code/modules/food_and_drinks/machinery/grill.dm b/code/modules/food_and_drinks/machinery/grill.dm
index c342e63ba9fd1..05a39fe1d7638 100644
--- a/code/modules/food_and_drinks/machinery/grill.dm
+++ b/code/modules/food_and_drinks/machinery/grill.dm
@@ -6,7 +6,7 @@
/obj/machinery/grill
name = "Barbeque grill"
RU_NAMES_LIST_INIT("Barbeque grill", "грилль для барбекю", "грилля для барбекю", "гриллю для барбекю", "грилль для барбекю", "гриллем для барбекю", "грилле для барбекю")
- desc = "Just like the old days. Smokes items over a light heat"
+ desc = "Как в старые добрые времена. Копченые продукты на легком огне."
icon = 'icons/obj/machines/kitchen.dmi'
icon_state = "grill_open"
density = TRUE
@@ -53,34 +53,34 @@
return
if(istype(held_item, /obj/item/stack/sheet/mineral/coal) || istype(held_item, /obj/item/stack/sheet/mineral/wood))
- context[SCREENTIP_CONTEXT_LMB] = "Add fuel"
+ context[SCREENTIP_CONTEXT_LMB] = "Добавить топливо"
return CONTEXTUAL_SCREENTIP_SET
else if(is_reagent_container(held_item) && held_item.is_open_container() && held_item.reagents.total_volume)
- context[SCREENTIP_CONTEXT_LMB] = "Add fuel"
+ context[SCREENTIP_CONTEXT_LMB] = "Добавить топливо"
return CONTEXTUAL_SCREENTIP_SET
else if(IS_EDIBLE(held_item) && !HAS_TRAIT(held_item, TRAIT_NODROP))
- context[SCREENTIP_CONTEXT_LMB] = "Add item"
+ context[SCREENTIP_CONTEXT_LMB] = "Добавить предмет"
return CONTEXTUAL_SCREENTIP_SET
else if(held_item.tool_behaviour == TOOL_WRENCH)
- context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Un" : ""]anchor"
+ context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "От" : "При"]крутить"
return CONTEXTUAL_SCREENTIP_SET
else if(!anchored && held_item.tool_behaviour == TOOL_CROWBAR)
- context[SCREENTIP_CONTEXT_LMB] = "Deconstruct"
+ context[SCREENTIP_CONTEXT_LMB] = "Разобрать"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/grill/examine(mob/user)
. = ..()
- . += span_notice("Add fuel via wood/coal stacks or any open container having a good fuel source")
- . += span_notice("Monkey energy > Oil > Welding fuel > Ethanol. Others cause bad effects")
- . += span_notice("Place any food item on top via hand to start grilling")
+ . += span_notice("Добавляйте топливо, такое как дрова или уголь, или открытый контейнер с подходящим видом топлива.")
+ . += span_notice("Monkey energy > Oil > Welding fuel > Ethanol. Другие виды топлива вызывают плохие последствия")
+ . += span_notice("Поместите любую еду на верхнюю часть с помощью руки, чтобы начать жарить.")
if(!anchored)
- . += span_notice("It can be [EXAMINE_HINT("pried")] apart.")
+ . += span_notice("Машина может быть [EXAMINE_HINT("разобрана")] ломом.")
if(anchored)
- . += span_notice("Its [EXAMINE_HINT("anchored")] in place.")
+ . += span_notice("Машина [EXAMINE_HINT("прикручена")] к полу.")
else
- . += span_warning("It needs to be [EXAMINE_HINT("anchored")] to work.")
+ . += span_warning("Машина должна быть [EXAMINE_HINT("прикручена")] к полу для работы.")
/obj/machinery/grill/update_icon_state()
if(!QDELETED(grilled_item))
@@ -101,7 +101,7 @@
/obj/machinery/grill/attack_hand(mob/living/user, list/modifiers)
if(!QDELETED(grilled_item))
- balloon_alert(user, "item removed")
+ balloon_alert(user, "предмет убран")
grilled_item.forceMove(drop_location())
update_appearance(UPDATE_ICON_STATE)
return TRUE
@@ -134,7 +134,7 @@
if(!QDELETED(grilled_item))
return NONE
if(!anchored)
- balloon_alert(user, "anchor it first!")
+ balloon_alert(user, "нужно прикрутить к полу!")
return ITEM_INTERACT_BLOCKING
//required for amount subtypes
@@ -151,7 +151,7 @@
if(!istype(stored, target_type))
continue
if(stored.amount == MAX_STACK_SIZE)
- balloon_alert(user, "no space!")
+ balloon_alert(user, "заполнено!")
return ITEM_INTERACT_BLOCKING
target.merge(stored)
merged = TRUE
@@ -159,7 +159,7 @@
if(!merged)
weapon.forceMove(src)
- to_chat(user, span_notice("You add [src] to the fuel stack."))
+ to_chat(user, span_notice("Вы добавляете [weapon.declent_ru(ACCUSATIVE)] в топку."))
if(!grill_fuel)
burn_stack()
begin_processing()
@@ -170,7 +170,7 @@
if(!QDELETED(grilled_item))
return NONE
if(!anchored)
- balloon_alert(user, "anchor it first!")
+ balloon_alert(user, "нужно прикрутить к полу!")
return ITEM_INTERACT_BLOCKING
var/transfered_amount = weapon.reagents.trans_to(src, container.amount_per_transfer_from_this)
@@ -203,27 +203,27 @@
update_appearance(UPDATE_ICON_STATE)
//feedback
- to_chat(user, span_notice("You transfer [transfered_amount]u to the fuel source."))
+ to_chat(user, span_notice("Вы наливаете [transfered_amount] [declension_ru(transfered_amount,"юнит","юнита","юнитов")] в топку."))
return ITEM_INTERACT_SUCCESS
- balloon_alert(user, "no fuel transfered!")
+ balloon_alert(user, "топливо не добавлено!")
return ITEM_INTERACT_BLOCKING
if(IS_EDIBLE(weapon))
//sanity checks
if(!anchored)
- balloon_alert(user, "anchor first!")
+ balloon_alert(user, "нужно прикрутить к полу!")
return ITEM_INTERACT_BLOCKING
if(HAS_TRAIT(weapon, TRAIT_NODROP))
return ..()
if(!QDELETED(grilled_item))
- balloon_alert(user, "remove item first!")
+ balloon_alert(user, "уберите предмет!")
return ITEM_INTERACT_BLOCKING
if(grill_fuel <= 0)
- balloon_alert(user, "no fuel!")
+ balloon_alert(user, "нет топлива!")
return ITEM_INTERACT_BLOCKING
if(!user.transferItemToLoc(weapon, src))
- balloon_alert(user, "[weapon] is stuck in your hand!")
+ balloon_alert(user, "[weapon.declent_ru(NOMINATIVE)] застревает на руке!")
return ITEM_INTERACT_BLOCKING
//add the item on the grill
@@ -232,7 +232,7 @@
var/datum/component/sizzle/sizzle = grilled_item.GetComponent(/datum/component/sizzle)
if(!isnull(sizzle))
grill_time = sizzle.time_elapsed()
- to_chat(user, span_notice("You put the [grilled_item] on [src]."))
+ to_chat(user, span_notice("Вы положили [grilled_item.declent_ru(ACCUSATIVE)] на [declent_ru(ACCUSATIVE)]."))
update_appearance(UPDATE_ICON_STATE)
grill_loop.start()
return ITEM_INTERACT_SUCCESS
@@ -253,7 +253,7 @@
. = ITEM_INTERACT_BLOCKING
if(anchored)
- balloon_alert(user, "unanchor first!")
+ balloon_alert(user, "нужно открутить от пола!")
return
if(default_deconstruction_crowbar(tool, ignore_panel = TRUE))
diff --git a/code/modules/food_and_drinks/machinery/icecream_vat.dm b/code/modules/food_and_drinks/machinery/icecream_vat.dm
index e9b93de612ce6..b85930fba42ac 100644
--- a/code/modules/food_and_drinks/machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/machinery/icecream_vat.dm
@@ -2,14 +2,14 @@
#define CONE_REAGENT_NEEDED 1
///The vat is set to dispense ice cream.
-#define VAT_MODE_ICECREAM "ice cream"
+#define VAT_MODE_ICECREAM "мороженное"
///The vat is set to dispense cones.
-#define VAT_MODE_CONES "cones"
+#define VAT_MODE_CONES "рожок"
/obj/machinery/icecream_vat
name = "ice cream vat"
RU_NAMES_LIST_INIT("ice cream vat", "машина для мороженного", "машины для мороженного", "машине для мороженного", "машину для мороженного", "машиной для мороженного", "машине для мороженного")
- desc = "Ding-aling ding dong. Get your Nanotrasen-approved ice cream!"
+ desc = "Смотря на машину, вы вспоминаете мелодию вашего любимого кафе с мороженным. Теперь таким кафе стало Нанотрейзен!"
icon = 'icons/obj/service/kitchen.dmi'
icon_state = "icecream_vat"
density = TRUE
@@ -94,26 +94,26 @@
/obj/machinery/icecream_vat/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
if(held_item)
if(is_reagent_container(held_item))
- context[SCREENTIP_CONTEXT_LMB] = "Insert beaker"
- context[SCREENTIP_CONTEXT_RMB] = "Transfer beaker reagents"
+ context[SCREENTIP_CONTEXT_LMB] = "Вставить мензурку"
+ context[SCREENTIP_CONTEXT_RMB] = "Передать реагенты мензурки"
else if(istype(held_item, /obj/item/food/icecream))
- context[SCREENTIP_CONTEXT_LMB] = "Take scoop of [selected_flavour] ice cream"
+ context[SCREENTIP_CONTEXT_LMB] = "Взять шарик [selected_flavour] мороженного"
else if(istype(held_item, /obj/item/kitchen/spoon) || istype(held_item, /obj/item/kitchen/spoon/soup_ladle))
- context[SCREENTIP_CONTEXT_RMB] = "Spill reagent"
+ context[SCREENTIP_CONTEXT_RMB] = "Разлить реагент"
return CONTEXTUAL_SCREENTIP_SET
switch(vat_mode)
if(VAT_MODE_ICECREAM)
- context[SCREENTIP_CONTEXT_LMB] = "Select flavor"
- context[SCREENTIP_CONTEXT_RMB] = "Change mode to cones"
+ context[SCREENTIP_CONTEXT_LMB] = "Выбрать вкус"
+ context[SCREENTIP_CONTEXT_RMB] = "Переключить режим на рожки"
if(VAT_MODE_CONES)
- context[SCREENTIP_CONTEXT_LMB] = "Make cone"
- context[SCREENTIP_CONTEXT_RMB] = "Change mode to flavors"
+ context[SCREENTIP_CONTEXT_LMB] = "Сделать рожок"
+ context[SCREENTIP_CONTEXT_RMB] = "Переключить режим на вкусы"
return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/icecream_vat/examine(mob/user)
. = ..()
- . += "You can use a [EXAMINE_HINT("spoon")] or [EXAMINE_HINT("soup ladle")] to spill reagents."
+ . += "Вы можете использовать [EXAMINE_HINT("ложку")] или [EXAMINE_HINT("половник")] для разлива содержимого."
/obj/machinery/icecream_vat/attackby(obj/item/weapon, mob/user, params)
. = ..()
@@ -131,14 +131,14 @@
if(custom_ice_cream_beaker)
if(user.transferItemToLoc(beaker, src))
try_put_in_hand(custom_ice_cream_beaker, user)
- balloon_alert(user, "beakers swapped")
+ balloon_alert(user, "мензурки заменены")
custom_ice_cream_beaker = beaker
else
- balloon_alert(user, "beaker slot full!")
+ balloon_alert(user, "уже имеется мензурка!")
return
if(!user.transferItemToLoc(beaker, src))
return
- balloon_alert(user, "beaker inserted")
+ balloon_alert(user, "мензурка вставлена")
custom_ice_cream_beaker = beaker
/obj/machinery/icecream_vat/attackby_secondary(obj/item/reagent_containers/beaker, mob/user, params)
@@ -154,10 +154,10 @@
beaker.reagents.trans_to(src, beaker_reagents.volume, target_id = beaker_reagents.type)
if(added_reagents)
- balloon_alert(user, "refilling reagents")
+ balloon_alert(user, "перезарядка реагентов")
playsound(src, 'sound/items/drink.ogg', 25, TRUE)
else
- balloon_alert(user, "no reagents to transfer!")
+ balloon_alert(user, "нет реагентов для передачи!")
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
/obj/machinery/icecream_vat/attack_hand_secondary(mob/user, list/modifiers)
@@ -173,7 +173,7 @@
/obj/machinery/icecream_vat/click_alt(mob/user)
if(!custom_ice_cream_beaker)
return CLICK_ACTION_BLOCKING
- balloon_alert(user, "removed beaker")
+ balloon_alert(user, "мензурка убрана")
try_put_in_hand(custom_ice_cream_beaker, user)
return CLICK_ACTION_SUCCESS
@@ -214,7 +214,7 @@
var/datum/ice_cream_flavour/flavor = GLOB.ice_cream_flavours[choice]
if(flavor)
selected_flavour = flavor.name
- balloon_alert(user, "making [selected_flavour]")
+ balloon_alert(user, "делается [selected_flavour]")
var/obj/item/food/icecream/cone = cone_prototypes[choice]
if(cone)
make_cone(user, choice, cone.ingredients)
@@ -224,7 +224,7 @@
var/datum/reagent/reagent_to_remove = tgui_input_list(user, "Select a reagent to purge from the vat.", "Remove reagent", reagents.reagent_list, ui_state = GLOB.conscious_state)
if(isnull(reagent_to_remove) || !user.can_perform_action(src, action_bitflags = ALLOW_RESTING))
return
- balloon_alert(user, "spilled [reagent_to_remove.name]")
+ balloon_alert(user, "[reagent_to_remove.name] разливается")
reagents.remove_reagent(reagent_to_remove.type, reagent_to_remove.volume)
/obj/machinery/icecream_vat/proc/make_ice_cream_color(datum/ice_cream_flavour/flavor)
@@ -244,7 +244,7 @@
/obj/machinery/icecream_vat/proc/make_cone(mob/user, make_type, list/ingredients)
for(var/reagents_needed in ingredients)
if(!reagents.has_reagent(reagents_needed, CONE_REAGENT_NEEDED))
- balloon_alert(user, "not enough ingredients!")
+ balloon_alert(user, "не хватает ингредиентов!")
return
var/cone_type = cone_prototypes[make_type].type
if(!cone_type)
@@ -253,7 +253,7 @@
for(var/reagents_used in ingredients)
reagents.remove_reagent(reagents_used, CONE_REAGENT_NEEDED)
- balloon_alert_to_viewers("cooks up [cone.name]", "cooks up [cone.name]")
+ balloon_alert_to_viewers("делается [cone.declent_ru(NOMINATIVE)]", "делается [cone.declent_ru(NOMINATIVE)]")
try_put_in_hand(cone, user)
///Makes ice cream if it can, then puts it in the ice cream cone we're being attacked with.
@@ -264,14 +264,14 @@
for(var/reagents_needed in flavor.ingredients)
if(!reagents.has_reagent(reagents_needed, CONE_REAGENT_NEEDED))
- balloon_alert(user, "not enough ingredients!")
+ balloon_alert(user, "не хватает ингредиентов!")
return
var/should_use_custom_ingredients = (flavor.takes_custom_ingredients && custom_ice_cream_beaker && custom_ice_cream_beaker.reagents.total_volume)
if(flavor.add_flavour(source, should_use_custom_ingredients ? custom_ice_cream_beaker.reagents : null))
for(var/reagents_used in flavor.ingredients)
reagents.remove_reagent(reagents_used, CONE_REAGENT_NEEDED)
- balloon_alert_to_viewers("scoops [selected_flavour]", "scoops [selected_flavour]")
+ balloon_alert_to_viewers("набирает шарик с [selected_flavour]", "набирает шарик с [selected_flavour]")
if(istype(cone))
if(isnull(cone.crafted_food_buff))
@@ -288,7 +288,7 @@
vat_mode = VAT_MODE_CONES
if(VAT_MODE_CONES)
vat_mode = VAT_MODE_ICECREAM
- balloon_alert(user, "dispensing [vat_mode]")
+ balloon_alert(user, "выдается [vat_mode]")
return TRUE
///Allows any user to see what reagents are in the ice cream vat regardless of special gear.
diff --git a/code/modules/food_and_drinks/machinery/microwave.dm b/code/modules/food_and_drinks/machinery/microwave.dm
index 8e2c961bdd0a4..edf478759c882 100644
--- a/code/modules/food_and_drinks/machinery/microwave.dm
+++ b/code/modules/food_and_drinks/machinery/microwave.dm
@@ -20,7 +20,7 @@
/obj/machinery/microwave
name = "microwave oven"
RU_NAMES_LIST_INIT("microwave oven", "микроволновка", "микроволновки", "микроволновке", "микроволновку", "микроволновкой", "микроволновке")
- desc = "Cooks and boils stuff."
+ desc = "Нагревает всякие штуки."
icon = 'icons/obj/machines/microwave.dmi'
base_icon_state = ""
icon_state = "mw_complete"
@@ -123,30 +123,30 @@
. = ..()
if(cell_powered)
if(!isnull(cell))
- context[SCREENTIP_CONTEXT_CTRL_LMB] = "Remove cell"
+ context[SCREENTIP_CONTEXT_CTRL_LMB] = "Убрать батарейку"
else if(held_item && istype(held_item, /obj/item/stock_parts/power_store/cell))
- context[SCREENTIP_CONTEXT_CTRL_LMB] = "Insert cell"
+ context[SCREENTIP_CONTEXT_CTRL_LMB] = "Вставить батарейку"
if(held_item?.tool_behaviour == TOOL_WRENCH)
- context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Unsecure" : "Install/Secure"]"
+ context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "От" : "При"]крутить"
return CONTEXTUAL_SCREENTIP_SET
if(broken > NOT_BROKEN)
if(broken == REALLY_BROKEN && held_item?.tool_behaviour == TOOL_WIRECUTTER)
- context[SCREENTIP_CONTEXT_LMB] = "Repair"
+ context[SCREENTIP_CONTEXT_LMB] = "Ремонтировать"
return CONTEXTUAL_SCREENTIP_SET
else if(broken == KINDA_BROKEN && held_item?.tool_behaviour == TOOL_WELDER)
- context[SCREENTIP_CONTEXT_LMB] = "Repair"
+ context[SCREENTIP_CONTEXT_LMB] = "Ремонтировать"
return CONTEXTUAL_SCREENTIP_SET
- context[SCREENTIP_CONTEXT_LMB] = "Show menu"
+ context[SCREENTIP_CONTEXT_LMB] = "Показать настройки"
if(vampire_charging_capable)
- context[SCREENTIP_CONTEXT_ALT_LMB] = "Change to [vampire_charging_enabled ? "cook" : "charge"]"
+ context[SCREENTIP_CONTEXT_ALT_LMB] = "Изменить на [vampire_charging_enabled ? "зарядку" : "готовку"]"
if(length(ingredients) != 0)
- context[SCREENTIP_CONTEXT_RMB] = "Start [vampire_charging_enabled ? "charging" : "cooking"]"
+ context[SCREENTIP_CONTEXT_RMB] = "Начать [vampire_charging_enabled ? "зарядку" : "готовку"]"
return CONTEXTUAL_SCREENTIP_SET
@@ -162,36 +162,36 @@
for(var/datum/stock_part/capacitor/capacitor in component_parts)
if(capacitor.tier >= 2)
vampire_charging_capable = TRUE
- visible_message(span_notice("The [EXAMINE_HINT("Charge Ready")] light on \the [src] flickers to life."))
+ visible_message(span_notice("Индикатор [EXAMINE_HINT("\"заряд готов\"")] на [declent_ru(PREPOSITIONAL)] загорается."))
break
/obj/machinery/microwave/examine(mob/user)
. = ..()
if(vampire_charging_capable)
- . += span_info("This model features Wave™: a Nanotrasen exclusive. Our latest and greatest, Wave™ allows your PDA to be charged wirelessly through microwave frequencies! You can Wave-charge your device by placing it inside and selecting the charge mode.")
- . += span_info("Because nothing says 'future' like charging your PDA while overcooking your leftovers. Nanotrasen Wave™ - Multitasking, redefined.")
+ . += span_info("Эта модель оснащена функцией Wave™: эксклюзив от Нанотрейзен. Наша новейшая разработка Wave™ позволяет заряжать КПК без проводов с помощью микроволновых частот! Вы можете зарядить свое устройство, поместив его внутрь и выбрав режим зарядки.")
+ . += span_info("Ведь ничто так не говорит 'будущее', как зарядка КПК во время переваривания остатков пищи. Нанотрейзен Wave™ - многозадачность в новом понимании.")
if(cell_powered)
- . += span_notice("This model is wireless, powered by portable cells. [isnull(cell) ? "The cell slot is empty." : "[EXAMINE_HINT("Ctrl-click")] to remove the power cell."]")
+ . += span_notice("Эта модель беспроводная и питается от портативных батареек. [isnull(cell) ? "Слот для батарейки пуст." : "[EXAMINE_HINT("Ктрл-Клик")] для извлечения батарейки."]")
if(!operating)
if(!operating && vampire_charging_capable)
- . += span_notice("[EXAMINE_HINT("Alt-click")] to change default mode.")
+ . += span_notice("[EXAMINE_HINT("Альт-Клик")] для изменения режима по-умолчанию.")
- . += span_notice("[EXAMINE_HINT("Right-click")] to start [vampire_charging_enabled ? "charging" : "cooking"] cycle.")
+ . += span_notice("[EXAMINE_HINT("ПКМ")] для начала цикла [vampire_charging_enabled ? "зарядки" : "готовки"].")
if(!in_range(user, src) && !issilicon(user) && !isobserver(user))
- . += span_warning("You're too far away to examine [src]'s contents and display!")
+ . += span_warning("Вы слишком далеко, чтобы рассмотреть содержимое [declent_ru(GENITIVE)] и его дисплей!")
return
if(operating)
- . += span_notice("\The [src] is operating.")
+ . += span_notice("[capitalize(declent_ru(NOMINATIVE))] работает.")
return
if(length(ingredients))
if(issilicon(user))
- . += span_notice("\The [src] camera shows:")
+ . += span_notice("На камере [declent_ru(GENITIVE)] видно:")
else
- . += span_notice("\The [src] contains:")
+ . += span_notice("[capitalize(declent_ru(NOMINATIVE))] содержит:")
var/list/items_counts = new
for(var/i in ingredients)
if(isstack(i))
@@ -203,16 +203,16 @@
for(var/item in items_counts)
. += span_notice("- [items_counts[item]]x [item].")
else
- . += span_notice("\The [src] is empty.")
+ . += span_notice("Внутри [declent_ru(GENITIVE)] пусто.")
if(!(machine_stat & (NOPOWER|BROKEN)))
- . += "[span_notice("The status display reads:")]\n"+\
- "[span_notice("- Mode: [vampire_charging_enabled ? "Charge" : "Cook"].")]\n"+\
- "[span_notice("- Capacity: [max_n_of_items] items.")]\n"+\
- span_notice("- Power: [efficiency * TIER_1_CELL_CHARGE_RATE]W.")
+ . += "[span_notice("На дисплее состояния отображается:")]"+\
+ "[span_notice("- Режим: [vampire_charging_enabled ? "Зарядка" : "Готовка"].")]"+\
+ "[span_notice("- Вместимость: [max_n_of_items] предметов.")]"+\
+ span_notice("- Мощность: [efficiency * TIER_1_CELL_CHARGE_RATE]W.")
if(cell_powered)
- . += span_notice("- Charge: [isnull(cell) ? "INSERT CELL" : "[round(cell.percent())]%"].")
+ . += span_notice("- Заряд: [isnull(cell) ? "УСТАНОВИТЕ БАТАРЕЙКУ" : "[round(cell.percent())]%"].")
#define MICROWAVE_INGREDIENT_OVERLAY_SIZE 24
@@ -331,16 +331,16 @@
return NONE
user.visible_message(
- span_notice("[user] starts to fix part of [src]."),
- span_notice("You start to fix part of [src]..."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] начинает ремонтировать [declent_ru(ACCUSATIVE)]."),
+ span_notice("Вы начинаете ремонтировать [declent_ru(ACCUSATIVE)]."),
)
if(!tool.use_tool(src, user, 2 SECONDS, volume = 50))
return ITEM_INTERACT_BLOCKING
user.visible_message(
- span_notice("[user] fixes part of [src]."),
- span_notice("You fix part of [src]."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] заканчивает ремонтировать [declent_ru(ACCUSATIVE)]."),
+ span_notice("Вы заканчиваете ремонтировать [declent_ru(ACCUSATIVE)]."),
)
broken = KINDA_BROKEN // Fix it a bit
update_appearance()
@@ -351,16 +351,16 @@
return NONE
user.visible_message(
- span_notice("[user] starts to fix part of [src]."),
- span_notice("You start to fix part of [src]..."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] начинает ремонтировать [declent_ru(ACCUSATIVE)]."),
+ span_notice("Вы начинаете ремонтировать [declent_ru(ACCUSATIVE)]."),
)
if(!tool.use_tool(src, user, 2 SECONDS, amount = 1, volume = 50))
return ITEM_INTERACT_BLOCKING
user.visible_message(
- span_notice("[user] fixes [src]."),
- span_notice("You fix [src]."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] заканчивает ремонтировать [declent_ru(ACCUSATIVE)]."),
+ span_notice("Вы заканчиваете ремонтировать [declent_ru(ACCUSATIVE)]."),
)
broken = NOT_BROKEN
update_appearance()
@@ -387,13 +387,13 @@
if(dirty >= MAX_MICROWAVE_DIRTINESS) // The microwave is all dirty so can't be used!
if(IS_EDIBLE(item))
- balloon_alert(user, "it's too dirty!")
+ balloon_alert(user, "слишком грязно!")
return ITEM_INTERACT_BLOCKING
return NONE
if(broken > NOT_BROKEN)
if(IS_EDIBLE(item))
- balloon_alert(user, "it's broken!")
+ balloon_alert(user, "сломано!")
return ITEM_INTERACT_BLOCKING
return NONE
@@ -409,31 +409,31 @@
update_appearance()
return ITEM_INTERACT_BLOCKING
cell = item
- balloon_alert(user, "[swapped ? "swapped" : "inserted"] cell")
+ balloon_alert(user, "батарейка [swapped ? "заменена" : "вставлена"]")
update_appearance()
return ITEM_INTERACT_SUCCESS
if(!anchored)
if(IS_EDIBLE(item))
- balloon_alert(user, "not secured!")
+ balloon_alert(user, "нужно прикрутить!")
return ITEM_INTERACT_BLOCKING
return NONE
if(vampire_charging_capable && istype(item, /obj/item/modular_computer) && ingredients.len > 0)
- balloon_alert(user, "max 1 device!")
+ balloon_alert(user, "максимум 1 устройство!")
return ITEM_INTERACT_BLOCKING
if(item.w_class <= WEIGHT_CLASS_NORMAL && !user.combat_mode && isnull(item.atom_storage))
if(ingredients.len >= max_n_of_items)
- balloon_alert(user, "it's full!")
+ balloon_alert(user, "заполнено!")
return ITEM_INTERACT_BLOCKING
if(!user.transferItemToLoc(item, src))
- balloon_alert(user, "it's stuck to your hand!")
+ balloon_alert(user, "прилипло к руке!")
return ITEM_INTERACT_BLOCKING
ingredients += item
open(autoclose = 0.6 SECONDS)
- user.visible_message(span_notice("[user] adds \a [item] to \the [src]."), span_notice("You add [item] to \the [src]."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] добавляет [item.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."), span_notice("Вы добавляете [item.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]..."))
update_appearance()
return ITEM_INTERACT_SUCCESS
@@ -450,7 +450,7 @@
var/loaded = 0
if(!istype(tool, /obj/item/storage/bag/tray))
// Non-tray dumping requires a do_after
- to_chat(user, span_notice("You start dumping out the contents of [tool] into [src]..."))
+ to_chat(user, span_notice("Вы начинаете перемещать содержимое [tool.declent_ru(GENITIVE)] в [declent_ru(ACCUSATIVE)]..."))
if(!do_after(user, 2 SECONDS, target = tool))
return
@@ -458,7 +458,7 @@
if(!IS_EDIBLE(tray_item))
continue
if(ingredients.len >= max_n_of_items)
- balloon_alert(user, "it's full!")
+ balloon_alert(user, "заполнено!")
return
if(tool.atom_storage.attempt_remove(tray_item, src))
loaded++
@@ -466,7 +466,7 @@
if(loaded)
open(autoclose = 0.6 SECONDS)
- to_chat(user, span_notice("You insert [loaded] items into \the [src]."))
+ to_chat(user, span_notice("Вы вставляете [loaded] [declension_ru(loaded,"предмет","предмета","предметов")] в [declent_ru(ACCUSATIVE)]."))
update_appearance()
/obj/machinery/microwave/mouse_drop_receive(obj/item/tool, mob/user, params)
@@ -477,7 +477,7 @@
/obj/machinery/microwave/attack_hand_secondary(mob/user, list/modifiers)
if(user.can_perform_action(src, ALLOW_SILICON_REACH))
if(!length(ingredients))
- balloon_alert(user, "it's empty!")
+ balloon_alert(user, "пусто!")
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
start_cycle(user)
@@ -489,10 +489,10 @@
return NONE
vampire_charging_enabled = !vampire_charging_enabled
- balloon_alert(user, "set to [vampire_charging_enabled ? "charge" : "cook"]")
+ balloon_alert(user, "режим изменен на [vampire_charging_enabled ? "зарядку" : "готовку"]")
playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, FALSE)
if(HAS_SILICON_ACCESS(user))
- visible_message(span_notice("[user] sets \the [src] to [vampire_charging_enabled ? "charge" : "cook"]."), blind_message = span_notice("You hear \the [src] make an informative beep!"))
+ visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] ставит [declent_ru(ACCUSATIVE)] на режим [vampire_charging_enabled ? "зарядки" : "готовки"]."), blind_message = span_notice("[capitalize(declent_ru(NOMINATIVE))] издает звук уведомления!"))
return CLICK_ACTION_SUCCESS
/obj/machinery/microwave/click_ctrl(mob/user)
@@ -501,7 +501,7 @@
if(cell_powered && !isnull(cell))
user.put_in_hands(cell)
- balloon_alert(user, "removed cell")
+ balloon_alert(user, "батарейка убрана")
cell = null
update_appearance()
return CLICK_ACTION_SUCCESS
@@ -512,7 +512,7 @@
. = ..()
if(!anchored)
- balloon_alert(user, "not secured!")
+ balloon_alert(user, "нужно прикрутить!")
return
if(operating || panel_open || !user.can_perform_action(src, ALLOW_SILICON_REACH))
return
@@ -523,7 +523,7 @@
if(HAS_AI_ACCESS(user))
examine(user)
else
- balloon_alert(user, "it's empty!")
+ balloon_alert(user, "пусто!")
return
var/choice = show_radial_menu(user, src, HAS_AI_ACCESS(user) ? ai_radial_options : radial_options, require_near = !HAS_SILICON_ACCESS(user))
@@ -588,13 +588,13 @@
return
if(wire_disabled)
- audible_message("[src] buzzes.")
+ audible_message("[capitalize(declent_ru(NOMINATIVE))] жужжит.")
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE)
return
if(cell_powered && cell?.charge < TIER_1_CELL_CHARGE_RATE * efficiency)
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE)
- balloon_alert(cooker, "no power draw!")
+ balloon_alert(cooker, "нет питания!")
return
if(cooker && HAS_TRAIT(cooker, TRAIT_CURSED) && prob(7))
@@ -613,7 +613,7 @@
if(istype(potential_fooditem, /obj/item/modular_computer) && prob(75))
pda_failure = TRUE
notify_ghosts(
- "[cooker] has overheated their PDA!",
+ "[capitalize(cooker.declent_ru(NOMINATIVE))] перегревает свой КПК!",
source = src,
notify_flags = NOTIFY_CATEGORY_NOFLASH,
header = "Hunger Games: Catching Fire",
@@ -632,14 +632,14 @@
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE)
return
- visible_message(span_notice("\The [src] turns on."), null, span_hear("You hear a microwave humming."))
+ visible_message(span_notice("[capitalize(declent_ru(NOMINATIVE))] включается!"), null, span_hear("Вы слышите гудение микроволновки."))
operating = TRUE
set_light(l_range = 1.5, l_power = 1.2, l_on = TRUE)
soundloop.start()
update_appearance()
/obj/machinery/microwave/proc/spark()
- visible_message(span_warning("Sparks fly around [src]!"))
+ visible_message(span_warning("Искры разлетаются вокруг [declent_ru(GENITIVE)]!"))
var/datum/effect_system/spark_spread/sparks = new
sparks.set_up(2, 1, src)
sparks.start()
@@ -707,7 +707,7 @@
for(var/mob/smeller in get_hearers_in_view(DEFAULT_MESSAGE_RANGE, src))
if(HAS_TRAIT(smeller, TRAIT_ANOSMIA))
cant_smell += smeller
- visible_message(span_danger("You smell a burnt smell coming from [src]!"), ignored_mobs = cant_smell)
+ visible_message(span_danger("Вы чуете запах гари из [declent_ru(GENITIVE)]!"), ignored_mobs = cant_smell)
particles = new /particles/smoke()
addtimer(CALLBACK(src, PROC_REF(remove_smoke)), 10 SECONDS)
Shake(duration = 1 SECONDS)
@@ -777,7 +777,7 @@
cook_loop(type = MICROWAVE_NORMAL, cycles = 10, cooker = cooker)
/obj/machinery/microwave/proc/muck_finish()
- visible_message(span_warning("\The [src] gets covered in muck!"))
+ visible_message(span_warning("[capitalize(declent_ru(NOMINATIVE))] покрывается грязью!"))
dirty = MAX_MICROWAVE_DIRTINESS
dirty_anim_playing = FALSE
@@ -825,7 +825,7 @@
/obj/machinery/microwave/proc/charge(mob/cooker)
if(!vampire_charging_capable)
- balloon_alert(cooker, "needs upgrade!")
+ balloon_alert(cooker, "нужны улучшения!")
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE)
return
@@ -833,14 +833,14 @@
return
if(wire_disabled)
- audible_message("[src] buzzes.")
+ audible_message("[capitalize(declent_ru(NOMINATIVE))] жужжит.")
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE)
return
// We should only be charging PDAs
for(var/atom/movable/potential_item as anything in ingredients)
if(!istype(potential_item, /obj/item/modular_computer))
- balloon_alert(cooker, "pda only!")
+ balloon_alert(cooker, "только КПК!")
playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE)
eject()
return
@@ -905,7 +905,7 @@
/// Type of microwave that automatically turns it self on erratically. Probably don't use this outside of the holodeck program "Microwave Paradise".
/// You could also live your life with a microwave that will continously run in the background of everything while also not having any power draw. I think the former makes more sense.
/obj/machinery/microwave/hell
- desc = "Cooks and boils stuff. This one appears to be a bit... off."
+ desc = "Нагревает всякие штуки. Выглядит немного... странно."
use_power = NO_POWER_USE
idle_power_usage = 0
active_power_usage = 0
@@ -920,7 +920,7 @@
/obj/machinery/microwave/engineering
name = "wireless microwave oven"
RU_NAMES_LIST_INIT("wireless microwave oven", "беспроводная микроволновка", "беспроводной микроволновки", "беспроводной микроволновке", "беспроводную микроволновку", "беспроводной микроволновкой", "беспроводной микроволновке")
- desc = "For the hard-working tradesperson who's in the middle of nowhere and just wants to warm up their pastry-based savoury item from an overpriced vending machine."
+ desc = "Для трудолюбивого работника, который находится в глуши и просто хочет разогреть кондитерское изделие из вендомата с завышенной ценой."
base_icon_state = "engi_"
icon_state = "engi_mw_complete"
circuit = /obj/item/circuitboard/machine/microwave/engineering
diff --git a/code/modules/food_and_drinks/machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/machinery/monkeyrecycler.dm
index a6f7c5ddc552c..0d387d4383f91 100644
--- a/code/modules/food_and_drinks/machinery/monkeyrecycler.dm
+++ b/code/modules/food_and_drinks/machinery/monkeyrecycler.dm
@@ -3,7 +3,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
/obj/machinery/monkey_recycler
name = "monkey recycler"
RU_NAMES_LIST_INIT("monkey recycler", "переработчик обезьян", "переработчика обезьян", "переработчику обезьян", "переработчик обезьян", "переработчиком обезьян", "переработчике обезьян")
- desc = "A machine used for recycling dead monkeys into monkey cubes."
+ desc = "Машина для переработки мертвых обезьян в кубы обезьян."
icon = 'icons/obj/machines/kitchen.dmi'
icon_state = "grinder"
layer = BELOW_OBJ_LAYER
@@ -39,7 +39,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
/obj/machinery/monkey_recycler/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += span_notice("The status display reads: Producing [cube_production] cubes for every monkey inserted.")
+ . += span_notice("На дисплее состояния отображается: Производит [cube_production] [declension_ru(cube_production,"кубик","кубика","кубиков")] за каждую вставленную обезьяну.")
/obj/machinery/monkey_recycler/wrench_act(mob/living/user, obj/item/tool)
. = ..()
@@ -72,35 +72,35 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
if(!istype(target))
return
if(target.stat == CONSCIOUS)
- to_chat(user, span_warning("The monkey is struggling far too much to put it in the recycler."))
+ to_chat(user, span_warning("Обезьяна слишком сильно сопротивляется, чтобы поместить её в утилизатор."))
return
if(target.buckled || target.has_buckled_mobs())
- to_chat(user, span_warning("The monkey is attached to something."))
+ to_chat(user, span_warning("Тело обезьяны к чему-то пристегнуто."))
return
qdel(target)
- to_chat(user, span_notice("You stuff the monkey into the machine."))
+ to_chat(user, span_notice("Вы засовываете обезьяну в машину."))
playsound(src.loc, 'sound/machines/juicer.ogg', 50, TRUE)
var/offset = prob(50) ? -2 : 2
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
use_energy(active_power_usage)
stored_matter += cube_production
addtimer(VARSET_CALLBACK(src, pixel_x, base_pixel_x))
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), user, span_notice("The machine now has [stored_matter] monkey\s worth of material stored.")))
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), user, span_notice("Теперь машина имеет материалов для обезьян: [stored_matter].")))
/obj/machinery/monkey_recycler/interact(mob/user)
if(stored_matter >= 1)
- to_chat(user, span_notice("The machine hisses loudly as it condenses the ground monkey meat. After a moment, it dispenses a brand new monkey cube."))
+ to_chat(user, span_notice("Машина громко шипит, сжимая измельченное обезьянье мясо. Через мгновение она выдает совершенно новый обезьяний кубик."))
playsound(src.loc, 'sound/machines/hiss.ogg', 50, TRUE)
for(var/i in 1 to FLOOR(stored_matter, 1))
new /obj/item/food/monkeycube(src.loc)
stored_matter--
- to_chat(user, span_notice("The machine's display flashes that it has [stored_matter] monkeys worth of material left."))
+ to_chat(user, span_notice("На дисплее машины мигает сообщение о том, что материалов осталось на [stored_matter] обезьян."))
else
- to_chat(user, span_danger("The machine needs at least 1 monkey worth of material to produce a monkey cube. It currently has [stored_matter]."))
+ to_chat(user, span_danger("Чтобы изготовить кубик обезьяны, машине требуется материал стоимостью не менее 1 обезьяны. В настоящее время у нее есть [stored_matter]."))
/obj/machinery/monkey_recycler/multitool_act(mob/living/user, obj/item/multitool/I)
. = ..()
if(istype(I))
I.set_buffer(src)
- balloon_alert(user, "saved to multitool buffer")
+ balloon_alert(user, "сохранено в буфер multitool")
return TRUE
diff --git a/code/modules/food_and_drinks/machinery/oven.dm b/code/modules/food_and_drinks/machinery/oven.dm
index cf6dad9f87722..e224824c080f0 100644
--- a/code/modules/food_and_drinks/machinery/oven.dm
+++ b/code/modules/food_and_drinks/machinery/oven.dm
@@ -11,7 +11,7 @@
/obj/machinery/oven
name = "oven"
RU_NAMES_LIST_INIT("oven", "духовка", "духовки", "духовке", "духовку", "духовкой", "духовке")
- desc = "Why do they call it oven when you of in the cold food of out hot eat the food?"
+ desc = "Иногда туда залезает повар, если инженеры не починили шлюз морозильной камеры..."
icon = 'icons/obj/machines/kitchen.dmi'
icon_state = "oven_off"
base_icon_state = "oven"
@@ -95,7 +95,7 @@
for(var/mob/smeller in get_hearers_in_view(DEFAULT_MESSAGE_RANGE, src))
if(HAS_TRAIT(smeller, TRAIT_ANOSMIA))
asomnia_hadders += smeller
- visible_message(span_danger("You smell a burnt smell coming from [src]!"), ignored_mobs = asomnia_hadders)
+ visible_message(span_danger("[capitalize(declent_ru(NOMINATIVE))] источает запах гари!"), ignored_mobs = asomnia_hadders)
set_smoke_state(worst_cooked_food_state)
update_appearance()
use_energy(active_power_usage)
@@ -105,7 +105,7 @@
return ..()
if(user.transferItemToLoc(item, src, silent = FALSE))
- to_chat(user, span_notice("You put [item] in [src]."))
+ to_chat(user, span_notice("Вы помещаете [item.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."))
add_tray_to_oven(item, user)
/obj/machinery/oven/item_interaction(mob/living/user, obj/item/item, list/modifiers)
@@ -155,13 +155,13 @@
if(open)
playsound(src, 'sound/machines/oven/oven_open.ogg', 75, TRUE)
set_smoke_state(OVEN_SMOKE_STATE_NONE)
- to_chat(user, span_notice("You open [src]."))
+ to_chat(user, span_notice("Вы открываете [declent_ru(ACCUSATIVE)]."))
end_processing()
if(used_tray)
used_tray.vis_flags &= ~VIS_HIDE
else
playsound(src, 'sound/machines/oven/oven_close.ogg', 75, TRUE)
- to_chat(user, span_notice("You close [src]."))
+ to_chat(user, span_notice("Вы закрываете [declent_ru(ACCUSATIVE)]."))
if(used_tray)
begin_processing()
used_tray.vis_flags |= VIS_HIDE
@@ -180,13 +180,13 @@
if(open)
playsound(src, 'sound/machines/oven/oven_open.ogg', 75, TRUE)
set_smoke_state(OVEN_SMOKE_STATE_NONE)
- to_chat(user, span_notice("You open [src]."))
+ to_chat(user, span_notice("Вы открываете [declent_ru(ACCUSATIVE)]."))
end_processing()
if(used_tray)
used_tray.vis_flags &= ~VIS_HIDE
else
playsound(src, 'sound/machines/oven/oven_close.ogg', 75, TRUE)
- to_chat(user, span_notice("You close [src]."))
+ to_chat(user, span_notice("Вы закрываете [declent_ru(ACCUSATIVE)]."))
if(used_tray)
begin_processing()
used_tray.vis_flags |= VIS_HIDE
@@ -232,7 +232,7 @@
/obj/machinery/oven/range
name = "range"
RU_NAMES_LIST_INIT("range", "духовка", "духовки", "духовке", "духовку", "духовкой", "духовке")
- desc = "And Oven AND a Stove? I guess that's why it's got range!"
+ desc = "Плита с духовкой?! Здесь должен был быть каламбур, но вы приготовьте его сами!"
icon_state = "range_off"
base_icon_state = "range"
pass_flags_self = PASSMACHINE|PASSTABLE|LETPASSTHROW // Like the griddle, short
@@ -250,7 +250,7 @@
/obj/item/plate/oven_tray
name = "oven tray"
RU_NAMES_LIST_INIT("oven tray", "протевень", "протевеня", "протевеню", "протевень", "протевенем", "протевене")
- desc = "Time to bake cookies!"
+ desc = "Время печь печенье!"
icon_state = "oven_tray"
max_items = 6
biggest_w_class = WEIGHT_CLASS_BULKY
@@ -268,12 +268,12 @@
return NONE
if(length(contents) >= max_items)
- balloon_alert(user, "it's full!")
+ balloon_alert(user, "заполнено!")
return ITEM_INTERACT_BLOCKING
if(!istype(item, /obj/item/storage/bag/tray))
// Non-tray dumping requires a do_after
- to_chat(user, span_notice("You start dumping out the contents of [item] into [src]..."))
+ to_chat(user, span_notice("Вы помещаете содержимое из [item.declent_ru(GENITIVE)] на [declent_ru(ACCUSATIVE)]..."))
if(!do_after(user, 2 SECONDS, target = item))
return ITEM_INTERACT_BLOCKING
@@ -287,7 +287,7 @@
loaded++
AddToPlate(tray_item, user)
if(loaded)
- to_chat(user, span_notice("You insert [loaded] item\s into [src]."))
+ to_chat(user, span_notice("Вы помещете [loaded] [declension_ru(loaded,"предмет","предмета","предметов")] в [declent_ru(ACCUSATIVE)]."))
update_appearance()
return ITEM_INTERACT_SUCCESS
return ITEM_INTERACT_BLOCKING
diff --git a/code/modules/food_and_drinks/machinery/processor.dm b/code/modules/food_and_drinks/machinery/processor.dm
index 2a453d7ed3a5b..a085b0d988f4c 100644
--- a/code/modules/food_and_drinks/machinery/processor.dm
+++ b/code/modules/food_and_drinks/machinery/processor.dm
@@ -3,7 +3,7 @@
/obj/machinery/processor
name = "food processor"
RU_NAMES_LIST_INIT("food processor", "комбайн", "комбайна", "комбайну", "комбайн", "комбайном", "комбайне")
- desc = "An industrial grinder used to process meat and other foods. Keep hands clear of intake area while operating."
+ desc = "Промышленный комбайн, используемый для обработки мяса и других продуктов. Во время работы держите руки подальше от зоны приема."
icon = 'icons/obj/machines/kitchen.dmi'
base_icon_state = "processor"
icon_state = "processor"
@@ -55,7 +55,7 @@
/obj/machinery/processor/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += span_notice("The status display reads: Outputting [rating_amount] item(s) at [rating_speed*100]% speed.")
+ . += span_notice("На дисплее состояния отображается: Вывод [rating_amount] предметов с скоростью - [rating_speed*100]%.")
/obj/machinery/processor/Exited(atom/movable/gone, direction)
..()
@@ -91,7 +91,7 @@
/obj/machinery/processor/attackby(obj/item/attacking_item, mob/living/user, params)
if(processing)
- to_chat(user, span_warning("[src] is in the process of processing!"))
+ to_chat(user, span_warning("[capitalize(declent_ru(NOMINATIVE))] находится в работе!"))
return TRUE
if(default_deconstruction_screwdriver(user, base_icon_state + "_open", base_icon_state, attacking_item) || default_pry_open(attacking_item, close_after_pry = TRUE) || default_deconstruction_crowbar(attacking_item))
return
@@ -109,45 +109,45 @@
loaded++
if(loaded)
- to_chat(user, span_notice("You insert [loaded] items into [src]."))
+ to_chat(user, span_notice("Вы помещаете [loaded] [declension_ru(loaded,"предмет","предмета","предметов")] в [declent_ru(ACCUSATIVE)].."))
return
var/datum/food_processor_process/recipe = PROCESSOR_SELECT_RECIPE(attacking_item)
if(recipe)
user.visible_message(
- span_notice("[user] put [attacking_item] into [src]."),
- span_notice("You put [attacking_item] into [src]."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] помещает [attacking_item.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."),
+ span_notice("Вы помещаете [attacking_item.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."),
)
user.transferItemToLoc(attacking_item, src, TRUE)
LAZYADD(processor_contents, attacking_item)
return TRUE
else if(!user.combat_mode)
- to_chat(user, span_warning("That probably won't blend!"))
+ to_chat(user, span_warning("Это, вероятно, не будет смешиваться!"))
return TRUE
else
return ..()
/obj/machinery/processor/interact(mob/user)
if(processing)
- to_chat(user, span_warning("[src] is in the process of processing!"))
+ to_chat(user, span_warning("[capitalize(declent_ru(NOMINATIVE))] находится в работе!"))
return TRUE
if(ismob(user.pulling) && PROCESSOR_SELECT_RECIPE(user.pulling))
if(user.grab_state < GRAB_AGGRESSIVE)
- to_chat(user, span_warning("You need a better grip to do that!"))
+ to_chat(user, span_warning("Для этого вам нужен захват получше!"))
return
var/mob/living/pushed_mob = user.pulling
- visible_message(span_warning("[user] stuffs [pushed_mob] into [src]!"))
+ visible_message(span_warning("[capitalize(user.declent_ru(NOMINATIVE))] помещает [pushed_mob.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]!"))
pushed_mob.forceMove(src)
LAZYADD(processor_contents, pushed_mob)
user.stop_pulling()
return
if(!LAZYLEN(processor_contents))
- to_chat(user, span_warning("[src] is empty!"))
+ to_chat(user, span_warning("Внутри [declent_ru(GENITIVE)] пусто!"))
return TRUE
processing = 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("Вы слышите кухонный комбайн."))
playsound(src.loc, 'sound/machines/blender.ogg', 50, TRUE)
use_energy(active_power_usage)
var/total_time = 0
@@ -170,7 +170,7 @@
continue
process_food(recipe, content_item)
processing = FALSE
- visible_message(span_notice("\The [src] finishes processing."))
+ visible_message(span_notice("[capitalize(declent_ru(NOMINATIVE))] заканчивает обработку."))
/obj/machinery/processor/verb/eject()
set category = "Object"
@@ -189,14 +189,14 @@
/obj/machinery/processor/container_resist_act(mob/living/user)
user.forceMove(drop_location())
- user.visible_message(span_notice("[user] crawls free of the processor!"))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] выбирается из [declent_ru(GENITIVE)]!"))
/obj/machinery/processor/slime
name = "slime processor"
RU_NAMES_LIST_INIT("slime processor", "переработчик слаймов", "переработчика слаймов", "переработчику слаймов", "переработчик слаймов", "переработчиком слаймов", "переработчике слаймов")
base_icon_state = "processor_slime"
icon_state = "processor_slime"
- desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating."
+ desc = "Промышленный комбайн с наклейкой о том, что он предназначен для научного отдела. Во время работы держите руки подальше от зоны приема."
circuit = /obj/item/circuitboard/machine/processor/slime
/obj/machinery/processor/slime/adjust_item_drop_location(atom/movable/atom_to_drop)
@@ -229,7 +229,7 @@
if (!recipe)
return
- visible_message(span_notice("[picked_slime] is sucked into [src]."))
+ visible_message(span_notice("[capitalize(picked_slime.declent_ru(NOMINATIVE))] засасывается в [declent_ru(ACCUSATIVE)]]."))
LAZYADD(processor_contents, picked_slime)
picked_slime.forceMove(src)
@@ -240,7 +240,7 @@
if(processed_slime.stat != DEAD)
processed_slime.forceMove(drop_location())
- processed_slime.balloon_alert_to_viewers("crawls free")
+ processed_slime.balloon_alert_to_viewers("выползает")
return
var/core_count = processed_slime.cores
diff --git a/code/modules/food_and_drinks/machinery/smartfridge.dm b/code/modules/food_and_drinks/machinery/smartfridge.dm
index 598a5a484b188..1d9f5c4fe82f6 100644
--- a/code/modules/food_and_drinks/machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/machinery/smartfridge.dm
@@ -4,7 +4,7 @@
/obj/machinery/smartfridge
name = "smartfridge"
RU_NAMES_LIST_INIT("smartfridge", "умный холодильник", "умного холодильника", "умному холодильнику", "умный холодильник", "умным холодильником", "умном холодильнике")
- desc = "Keeps cold things cold and hot things cold."
+ desc = "Сохраняет холодные вещи холодными, а горячие - холодными."
icon = 'icons/obj/machines/smartfridge.dmi'
icon_state = "smartfridge-icon"
base_icon_state = "smartfridge"
@@ -65,56 +65,56 @@
return ITEM_INTERACT_BLOCKING
user.visible_message(
- span_notice("[user.name] starts to cut the [name] free from the floor."),
- span_notice("You start to cut [src] free from the floor..."),
- span_hear("You hear welding."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] начинает отваривать [declent_ru(ACCUSATIVE)] от пола."),
+ span_notice("Вы начинаете отваривать [declent_ru(ACCUSATIVE)] от пола..."),
+ span_hear("Вы слышите звук сварки."),
)
if(!tool.use_tool(src, user, delay=100, volume=100))
return ITEM_INTERACT_BLOCKING
welded_down = FALSE
- to_chat(user, span_notice("You cut [src] free from the floor."))
+ to_chat(user, span_notice("Вы отварили [declent_ru(ACCUSATIVE)] от пола."))
return ITEM_INTERACT_SUCCESS
if(!anchored)
- balloon_alert(user, "wrench it first!")
+ balloon_alert(user, "не прикручено!")
return ITEM_INTERACT_BLOCKING
if(!tool.tool_start_check(user, amount=2))
return ITEM_INTERACT_BLOCKING
user.visible_message(
- span_notice("[user.name] starts to weld the [name] to the floor."),
- span_notice("You start to weld [src] to the floor..."),
- span_hear("You hear welding."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] начинает приваривать [declent_ru(ACCUSATIVE)] к полу."),
+ span_notice("Вы начинаете приваривать [declent_ru(ACCUSATIVE)] к полу..."),
+ span_hear("Вы слышите звук сварки."),
)
if(!tool.use_tool(src, user, delay = 100, volume = 100))
return ITEM_INTERACT_BLOCKING
welded_down = TRUE
- to_chat(user, span_notice("You weld [src] to the floor."))
+ to_chat(user, span_notice("Вы приварили [declent_ru(ACCUSATIVE)] к полу."))
return ITEM_INTERACT_SUCCESS
/obj/machinery/smartfridge/welder_act_secondary(mob/living/user, obj/item/tool)
if(!(machine_stat & BROKEN))
- balloon_alert(user, "no repair needed!")
+ balloon_alert(user, "ремонт не требуется!")
return ITEM_INTERACT_BLOCKING
if(!tool.tool_start_check(user, amount=1))
return ITEM_INTERACT_BLOCKING
user.visible_message(
- span_notice("[user] is repairing [src]."),
- span_notice("You begin repairing [src]..."),
- span_hear("You hear welding."),
+ span_notice("[capitalize(user.declent_ru(NOMINATIVE))] начинает ремонтировать [declent_ru(ACCUSATIVE)]."),
+ span_notice("Вы начинаете ремонтировать [declent_ru(ACCUSATIVE)]..."),
+ span_hear("Вы слышите звук сварки."),
)
if(tool.use_tool(src, user, delay = 40, volume = 50))
if(!(machine_stat & BROKEN))
return ITEM_INTERACT_BLOCKING
- to_chat(user, span_notice("You repair [src]"))
+ to_chat(user, span_notice("Вы отремонтировали [declent_ru(ACCUSATIVE)]"))
atom_integrity = max_integrity
set_machine_stat(machine_stat & ~BROKEN)
update_icon()
@@ -132,7 +132,7 @@
/obj/machinery/smartfridge/can_be_unfasten_wrench(mob/user, silent)
if(welded_down)
- balloon_alert(user, "unweld first!")
+ balloon_alert(user, "нужно отварить!")
return FAILED_UNFASTEN
return ..()
@@ -153,7 +153,7 @@
return ITEM_INTERACT_SUCCESS
if(welded_down)
- balloon_alert(user, "unweld first!")
+ balloon_alert(user, "нужно отварить!")
else
default_deconstruction_crowbar(tool)
return ITEM_INTERACT_SUCCESS
@@ -165,26 +165,26 @@
var/tool_tip_set = FALSE
if(held_item.tool_behaviour == TOOL_WELDER)
if(welded_down)
- context[SCREENTIP_CONTEXT_LMB] = "Unweld"
+ context[SCREENTIP_CONTEXT_LMB] = "Отварить"
tool_tip_set = TRUE
else if (!welded_down && anchored && can_be_welded_down)
- context[SCREENTIP_CONTEXT_LMB] = "Weld down"
+ context[SCREENTIP_CONTEXT_LMB] = "Приварить"
tool_tip_set = TRUE
if(machine_stat & BROKEN)
- context[SCREENTIP_CONTEXT_RMB] = "Repair"
+ context[SCREENTIP_CONTEXT_RMB] = "Отремонтировать"
tool_tip_set = TRUE
else if(held_item.tool_behaviour == TOOL_SCREWDRIVER)
- context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "close" : "open"] panel"
+ context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Закрыть" : "Открыть"] панель"
tool_tip_set = TRUE
else if(held_item.tool_behaviour == TOOL_CROWBAR)
if(panel_open)
- context[SCREENTIP_CONTEXT_LMB] = "Deconstruct"
+ context[SCREENTIP_CONTEXT_LMB] = "Разобрать"
tool_tip_set = TRUE
else if(held_item.tool_behaviour == TOOL_WRENCH)
- context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Una" : "A"]nchor"
+ context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "От" : "При"]крутить"
tool_tip_set = TRUE
return tool_tip_set ? CONTEXTUAL_SCREENTIP_SET : NONE
@@ -198,7 +198,7 @@
. = ..()
if(in_range(user, src) || isobserver(user))
- . += span_notice("The status display reads: This unit can hold a maximum of [max_n_of_items] items.")
+ . += span_notice("На дисплее состояния отображается: Это устройство может вмещать максимум [max_n_of_items] предметов.")
. += structure_examine()
@@ -207,14 +207,14 @@
. = list()
if(welded_down)
- . += span_info("It's moorings are firmly [EXAMINE_HINT("welded")] to the floor.")
+ . += span_info("Крепежи накрепко [EXAMINE_HINT("приварены")] к полу.")
else if (can_be_welded_down)
- . += span_info("It's moorings are loose and can be [EXAMINE_HINT("welded")] down.")
+ . += span_info("Крепежи свободны и могут быть [EXAMINE_HINT("приварены")].")
if(anchored)
- . += span_info("It is [EXAMINE_HINT("wrenched")] down on the floor.")
+ . += span_info("Машина [EXAMINE_HINT("прикручена")] к полу.")
else
- . += span_info("It could be [EXAMINE_HINT("wrenched")] down.")
+ . += span_info("Можно [EXAMINE_HINT("прикрутить")] к полу.")
/obj/machinery/smartfridge/update_appearance(updates=ALL)
. = ..()
@@ -266,7 +266,7 @@
if(!machine_stat)
var/shown_contents_length = visible_items()
if(shown_contents_length >= max_n_of_items)
- balloon_alert(user, "no space!")
+ balloon_alert(user, "нет места!")
return FALSE
if(!(weapon.item_flags & ABSTRACT) && \
@@ -274,7 +274,7 @@
accept_check(weapon) \
)
load(weapon, user)
- user.visible_message(span_notice("[user] adds \the [weapon] to \the [src]."), span_notice("You add \the [weapon] to \the [src]."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] перемещает [weapon.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."), span_notice("Вы переместили [weapon.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]."))
SStgui.update_uis(src)
if(visible_contents)
update_appearance()
@@ -296,26 +296,26 @@
if(loaded)
if(shown_contents_length >= max_n_of_items)
- user.visible_message(span_notice("[user] loads \the [src] with \the [weapon]."), \
- span_notice("You fill \the [src] with \the [weapon]."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] перекладывает предметы из [weapon.declent_ru(GENITIVE)] в [declent_ru(ACCUSATIVE)]."), \
+ span_notice("Вы перемещаете содержимое из [weapon.declent_ru(GENITIVE)] в [declent_ru(ACCUSATIVE)]."))
else
- user.visible_message(span_notice("[user] loads \the [src] with \the [weapon]."), \
- span_notice("You load \the [src] with \the [weapon]."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] перекладывает предметы из [weapon.declent_ru(GENITIVE)] в [declent_ru(ACCUSATIVE)]."), \
+ span_notice("Вы перемещаете содержимое из [weapon.declent_ru(GENITIVE)] в [declent_ru(ACCUSATIVE)]."))
if(weapon.contents.len)
- to_chat(user, span_warning("Some items are refused."))
+ to_chat(user, span_warning("Некоторые предметы не влазят."))
if (visible_contents)
update_appearance()
return TRUE
else
- to_chat(user, span_warning("There is nothing in [weapon] to put in [src]!"))
+ to_chat(user, span_warning("В [weapon.declent_ru(PREPOSITIONAL)] нет ничего, что можно положить в [declent_ru(ACCUSATIVE)]!"))
return FALSE
if(!powered())
- to_chat(user, span_warning("\The [src]'s magnetic door won't open without power!"))
+ to_chat(user, span_warning("Магнитные двери [declent_ru(GENITIVE)] не откроются без энергии!"))
return FALSE
if(!user.combat_mode || (weapon.item_flags & NOBLUDGEON))
- to_chat(user, span_warning("\The [src] smartly refuses [weapon]."))
+ to_chat(user, span_warning("[capitalize(declent_ru(NOMINATIVE))] отказывается принимать [weapon.declent_ru(ACCUSATIVE)]."))
return FALSE
else
@@ -344,7 +344,7 @@
if(ismob(weapon.loc))
var/mob/owner = weapon.loc
if(!owner.transferItemToLoc(weapon, src))
- to_chat(owner, span_warning("\the [weapon] is stuck to your hand, you cannot put it in \the [src]!"))
+ to_chat(owner, span_warning("[capitalize(weapon.declent_ru(NOMINATIVE))] застревает на вашей руке - нельзя переместить [weapon.declent_ru(ACCUSATIVE)] в [declent_ru(ACCUSATIVE)]!"))
return FALSE
return TRUE
else
@@ -407,7 +407,7 @@
var/dispensed_amount = 0
if(isAI(living_mob))
- to_chat(living_mob, span_warning("[src] does not respect your authority!"))
+ to_chat(living_mob, span_warning("[capitalize(declent_ru(NOMINATIVE))] вне зоны вашего контроля!"))
return TRUE
for(var/obj/item/dispensed_item in contents)
@@ -439,7 +439,7 @@
/obj/machinery/smartfridge/drying
name = "dehydrator"
RU_NAMES_LIST_INIT("dehydrator", "иссушатель", "иссушателя", "иссушателю", "иссушатель", "иссушателем", "иссушателе")
- desc = "A machine meant to remove moisture from various food."
+ desc = "Механизм, используемый для обезвоживания различных продуктов."
icon_state = "dehydrator-icon"
base_icon_state = "dehydrator"
contents_overlay_icon = "contents"
@@ -547,7 +547,7 @@
/obj/machinery/smartfridge/drying/rack
name = "drying rack"
RU_NAMES_LIST_INIT("drying rack", "сушилка", "сушилки", "сушилке", "сушилку", "сушилкой", "сушилке")
- desc = "A wooden contraption, used to dry plant products, food and hide."
+ desc = "Машина, предназначенная для удаления влаги из различных продуктов питания."
icon_state = "drying-rack"
base_icon_state = "drying-rack"
resistance_flags = FLAMMABLE
@@ -570,10 +570,10 @@
var/tool_tip_set = FALSE
if(held_item.tool_behaviour == TOOL_CROWBAR)
- context[SCREENTIP_CONTEXT_LMB] = "Deconstruct"
+ context[SCREENTIP_CONTEXT_LMB] = "Разобрать"
tool_tip_set = TRUE
else if(held_item.tool_behaviour == TOOL_WRENCH)
- context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Un" : ""]anchore"
+ context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "От" : "За"]крутить"
tool_tip_set = TRUE
return tool_tip_set ? CONTEXTUAL_SCREENTIP_SET : NONE
@@ -608,7 +608,7 @@
/obj/machinery/smartfridge/drinks
name = "drink showcase"
RU_NAMES_LIST_INIT("drink showcase", "витрина дла напитков", "витрины дла напитков", "витрине дла напитков", "витрину дла напитков", "витриной дла напитков", "витрине дла напитков")
- desc = "A refrigerated storage unit for tasty tasty alcohol."
+ desc = "Холодильник для хранения вкусного-вкусного алкоголя."
base_build_path = /obj/machinery/smartfridge/drinks
contents_overlay_icon = "drink"
@@ -628,7 +628,7 @@
// Food smartfridge
// ----------------------------
/obj/machinery/smartfridge/food
- desc = "A refrigerated storage unit for food."
+ desc = "Холодильник для хранения продуктов."
base_build_path = /obj/machinery/smartfridge/food
contents_overlay_icon = "food"
@@ -647,7 +647,7 @@
/obj/machinery/smartfridge/extract
name = "smart slime extract storage"
RU_NAMES_LIST_INIT("smart slime extract storage", "умное хранилище экстрактов слаймов", "умного хранилища экстрактов слаймов", "умному хранилищу экстрактов слаймов", "умное хранилище экстрактов слаймов", "умным хранилищем экстрактов слаймов", "умном хранилище экстрактов слаймов")
- desc = "A refrigerated storage unit for slime extracts."
+ desc = "Холодильник для хранения экстракта слаймов."
base_build_path = /obj/machinery/smartfridge/extract
contents_overlay_icon = "slime"
@@ -663,7 +663,7 @@
/obj/machinery/smartfridge/petri
name = "smart petri dish storage"
RU_NAMES_LIST_INIT("smart petri dish storage", "умное хранилище чашек Петри", "умного хранилища чашек Петри", "умному хранилищу чашек Петри", "умное хранилище чашек Петри", "умным хранилищем чашек Петри", "умном хранилище чашек Петри")
- desc = "A refrigerated storage unit for petri dishes."
+ desc = "Холодильник для хранения чашек Петри."
base_build_path = /obj/machinery/smartfridge/petri
contents_overlay_icon = "petri"
@@ -679,7 +679,7 @@
/obj/machinery/smartfridge/organ
name = "smart organ storage"
RU_NAMES_LIST_INIT("smart organ storage", "умное хранилище органов", "умного хранилища органов", "умному хранилищу органов", "умное хранилище органов", "умным хранилищем органов", "умном хранилище органов")
- desc = "A refrigerated storage unit for organ storage."
+ desc = "Холодильник для хранения органов."
max_n_of_items = 20 //vastly lower to prevent processing too long
base_build_path = /obj/machinery/smartfridge/organ
contents_overlay_icon = "organ"
@@ -734,7 +734,7 @@
/obj/machinery/smartfridge/chemistry
name = "smart chemical storage"
RU_NAMES_LIST_INIT("smart chemical storage", "умное хранилище химикатов", "умного хранилища химикатов", "умному хранилищу химикатов", "умное хранилище химикатов", "умным хранилищем химикатов", "умном хранилище химикатов")
- desc = "A refrigerated storage unit for medicine storage."
+ desc = "Холодильник для хранения лекарств."
base_build_path = /obj/machinery/smartfridge/chemistry
contents_overlay_icon = "chem"
default_list_view = TRUE
@@ -786,7 +786,7 @@
/obj/machinery/smartfridge/chemistry/virology
name = "smart virus storage"
RU_NAMES_LIST_INIT("smart virus storage", "умное хранилище вирусов", "умного хранилища вирусов", "умному хранилищу вирусов", "умное хранилище вирусов", "умным хранилищем вирусов", "умном хранилище вирусов")
- desc = "A refrigerated storage unit for volatile sample storage."
+ desc = "Холодильник для хранения летучих образцов."
base_build_path = /obj/machinery/smartfridge/chemistry/virology
contents_overlay_icon = "viro"
default_list_view = TRUE
@@ -809,7 +809,7 @@
/obj/machinery/smartfridge/disks
name = "disk compartmentalizer"
RU_NAMES_LIST_INIT("disk compartmentalizer", "сортировщик дисков", "сортировщика дисков", "сортировщику дисков", "сортировщик дисков", "сортировщиком дисков", "сортировщике дисков")
- desc = "A machine capable of storing a variety of disks. Denoted by most as the DSU (disk storage unit)."
+ desc = "Машина, способная хранить множество дисков. В большинстве случаев обозначается как DSU (disk storage unit)."
icon_state = "disktoaster"
base_icon_state = "disktoaster"
has_emissive = TRUE
diff --git a/code/modules/food_and_drinks/machinery/stove.dm b/code/modules/food_and_drinks/machinery/stove.dm
index 3bd88140d331e..4d520a925299e 100644
--- a/code/modules/food_and_drinks/machinery/stove.dm
+++ b/code/modules/food_and_drinks/machinery/stove.dm
@@ -1,7 +1,7 @@
/obj/machinery/stove
name = "stove"
RU_NAMES_LIST_INIT("stove", "плита", "плиты", "плите", "плиту", "плитой", "плите")
- desc = "You'd think this thing would be more useful in here."
+ desc = "Можно подумать, что здесь эта штука была бы полезнее."
icon = 'icons/obj/machines/kitchen_stove.dmi'
icon_state = "stove"
base_icon_state = "stove"
@@ -29,7 +29,7 @@
/obj/item/reagent_containers/cup/soup_pot
name = "soup pot"
RU_NAMES_LIST_INIT("soup pot", "кастрюля", "кастрюли", "кастрюле", "кастрюлю", "кастрюлей", "кастрюле")
- desc = "A tall soup designed to mix and cook all kinds of soup."
+ desc = "Высокая кастрюля предназначенная для смешивания и приготовления всех видов супов."
icon = 'icons/obj/service/kitchen.dmi'
icon_state = "pot"
base_icon_state = "pot"
@@ -55,19 +55,19 @@
/obj/item/reagent_containers/cup/soup_pot/add_context(atom/source, list/context, obj/item/held_item, mob/user)
if(isnull(held_item))
- context[SCREENTIP_CONTEXT_RMB] = "Remove ingredient"
+ context[SCREENTIP_CONTEXT_RMB] = "Убрать ингредиент"
return CONTEXTUAL_SCREENTIP_SET
else if(can_add_ingredient(held_item))
- context[SCREENTIP_CONTEXT_LMB] = "Add ingredient"
+ context[SCREENTIP_CONTEXT_LMB] = "Добавить ингредиент"
return CONTEXTUAL_SCREENTIP_SET
return NONE
/obj/item/reagent_containers/cup/soup_pot/examine(mob/user)
. = ..()
- . += span_notice("There's room for [max_ingredients - LAZYLEN(added_ingredients)] more ingredients \
- or [reagents.maximum_volume - reagents.total_volume] more units of reagents in there.")
+ . += span_notice("Есть место для еще [max_ingredients - LAZYLEN(added_ingredients)] ингредиентов \
+ или [reagents.maximum_volume - reagents.total_volume] [declension_ru((reagents.maximum_volume - reagents.total_volume),"юнит","юнита","юнитов")] реагентов.")
/**
* Override standard reagent examine with something a bit more sensible for the soup pot,
@@ -76,7 +76,7 @@
/obj/item/reagent_containers/cup/soup_pot/proc/reagent_special_examine(datum/source, mob/user, list/examine_list, can_see_insides = FALSE)
SIGNAL_HANDLER
- examine_list += "Inside, you can see:"
+ examine_list += "Внутри вы можете увидеть:"
if(LAZYLEN(added_ingredients) || reagents.total_volume > 0)
var/list/ingredient_amounts = list()
@@ -84,7 +84,7 @@
ingredient_amounts[ingredient.type] += 1
for(var/obj/item/ingredient_type as anything in ingredient_amounts)
- examine_list += "• [ingredient_amounts[ingredient_type]] [initial(ingredient_type.name)]\s"
+ examine_list += "• [ingredient_amounts[ingredient_type]] единиц [declension_ru(ingredient_amounts[ingredient_type], "у", "ы", "")] [initial(ingredient_type.ru_name_genitive) || initial(ingredient_type.name)]"
var/unknown_volume = 0
for(var/datum/reagent/current_reagent as anything in reagents.reagent_list)
@@ -92,24 +92,24 @@
|| istype(current_reagent, /datum/reagent/water) \
|| istype(current_reagent, /datum/reagent/consumable) \
)
- examine_list += "• [round(current_reagent.volume, 0.01)] units of [current_reagent.name]"
+ examine_list += "• [round(current_reagent.volume, 0.01)] [declension_ru(round(unknown_volume, 0.01),"юнит","юнита","юнитов")] [current_reagent.name]"
else
unknown_volume += current_reagent.volume
if(unknown_volume > 0)
- examine_list += "• [round(unknown_volume, 0.01)] units of unknown reagents"
+ examine_list += "• [round(unknown_volume, 0.01)] [declension_ru(round(unknown_volume, 0.01),"юнит","юнита","юнитов")] неизвестного реагента"
if(reagents.total_volume > 0)
if(can_see_insides)
- examine_list += span_notice("The contents of [src] have a temperature of [reagents.chem_temp]K.")
+ examine_list += span_notice("Содержимое [declent_ru(GENITIVE)] имеет температуру в [reagents.chem_temp]K.")
else if(reagents.chem_temp > WATER_BOILING_POINT) // boiling point
- examine_list += span_notice("The contents of [src] are boiling.")
+ examine_list += span_notice("Содержимое [declent_ru(GENITIVE)] кипит.")
else
- examine_list += "Nothing."
+ examine_list += "Ничего."
if(reagents.is_reacting)
- examine_list += span_warning("It is currently mixing!")
+ examine_list += span_warning("Прямо сейчас смешиваются!")
return STOP_GENERIC_REAGENT_EXAMINE
@@ -135,13 +135,13 @@
if(!can_add_ingredient(tray_item))
continue
if(LAZYLEN(added_ingredients) >= max_ingredients)
- balloon_alert(user, "it's full!")
+ balloon_alert(user, "заполнено!")
return TRUE
if(tray.atom_storage.attempt_remove(tray_item, src))
loaded++
LAZYADD(added_ingredients, tray_item)
if(loaded)
- to_chat(user, span_notice("You insert [loaded] items into \the [src]."))
+ to_chat(user, span_notice("Вы перемещаете [loaded] [declension_ru(loaded,"предмет","предмета","предметов")] в [declent_ru(ACCUSATIVE)]."))
update_appearance(UPDATE_OVERLAYS)
return TRUE
@@ -155,15 +155,15 @@
// Too many ingredients
if(LAZYLEN(added_ingredients) >= max_ingredients)
- balloon_alert(user, "too many ingredients!")
+ balloon_alert(user, "слишком много ингредиентов!")
return TRUE
if(!user.transferItemToLoc(attacking_item, src))
- balloon_alert(user, "can't add that!")
+ balloon_alert(user, "нельзя это добавить!")
return TRUE
// Ensures that faceatom works correctly, since we can can often be in another atom's loc (a stove)
var/atom/movable/balloon_loc = ismovable(loc) ? loc : src
- balloon_loc.balloon_alert(user, "ingredient added")
+ balloon_loc.balloon_alert(user, "ингредиент добавлен")
user.face_atom(balloon_loc)
LAZYADD(added_ingredients, attacking_item)
@@ -186,7 +186,7 @@
// Ensures that faceatom works correctly, since we can can often be in another atom's loc (a stove)
var/atom/movable/balloon_loc = ismovable(loc) ? loc : src
- balloon_loc.balloon_alert(user, "ingredient removed")
+ balloon_loc.balloon_alert(user, "ингредиент убран")
user.face_atom(balloon_loc)
update_appearance(UPDATE_OVERLAYS)
diff --git a/code/modules/food_and_drinks/machinery/stove_component.dm b/code/modules/food_and_drinks/machinery/stove_component.dm
index 76f52345c8c35..525f91c350d7d 100644
--- a/code/modules/food_and_drinks/machinery/stove_component.dm
+++ b/code/modules/food_and_drinks/machinery/stove_component.dm
@@ -124,13 +124,13 @@
turn_off()
else if(real_parent.machine_stat & (BROKEN|NOPOWER))
- real_parent.balloon_alert_to_viewers("no power!")
+ real_parent.balloon_alert_to_viewers("нет питания!")
return
else
turn_on()
- real_parent.balloon_alert_to_viewers("burners [on ? "on" : "off"]")
+ real_parent.balloon_alert_to_viewers("прожиг [on ? "включен" : "отключен"]")
playsound(real_parent, 'sound/machines/click.ogg', 30, TRUE)
playsound(real_parent, on ? 'sound/items/tools/welderactivate.ogg' : 'sound/items/tools/welderdeactivate.ogg', 15, TRUE)
@@ -148,13 +148,13 @@
if(!attacking_item.is_open_container())
return
if(!isnull(container))
- to_chat(user, span_warning("You wouldn't dare try to cook two things on the same stove simultaneously. \
- What if it cross contaminates?"))
+ to_chat(user, span_warning("Вы не посмеете приготовить два разных блюда в одной печи. \
+ Что если их содержимое пересечется?"))
return COMPONENT_NO_AFTERATTACK
if(user.transferItemToLoc(attacking_item, parent))
add_container(attacking_item, user)
- to_chat(user, span_notice("You put [attacking_item] onto [parent]."))
+ to_chat(user, span_notice("Вы перемещаете [attacking_item.declent_ru(ACCUSATIVE)] на [parent.declent_ru(ACCUSATIVE)]."))
return COMPONENT_NO_AFTERATTACK
/datum/component/stove/proc/on_exited(obj/machinery/source, atom/movable/gone, direction)
@@ -194,17 +194,17 @@
SIGNAL_HANDLER
if(isnull(held_item))
- context[SCREENTIP_CONTEXT_RMB] = "Turn [on ? "off":"on"] burner"
+ context[SCREENTIP_CONTEXT_RMB] = "[on ? "Выключить":"включить"] прожиг"
return CONTEXTUAL_SCREENTIP_SET
if(held_item.is_open_container())
- context[SCREENTIP_CONTEXT_LMB] = "Place container"
+ context[SCREENTIP_CONTEXT_LMB] = "Положить контейнер"
return CONTEXTUAL_SCREENTIP_SET
/datum/component/stove/proc/on_examine(obj/machinery/source, mob/user, list/examine_list)
SIGNAL_HANDLER
- examine_list += span_notice("You can turn the stovetop burners [on ? "off" : "on"] with right click.")
+ examine_list += span_notice("Вы можете [on ? "выключить" : "включить"] прожиг с помощью ПКМ.")
/datum/component/stove/proc/on_refresh_parts(obj/machinery/source)
SIGNAL_HANDLER
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 87ba535a149c6..4ac4e5a263684 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -2,7 +2,7 @@
/obj/machinery/chem_master
name = "ChemMaster 3000"
- desc = "Used to separate chemicals and distribute them in a variety of forms."
+ desc = "Используется для выведения и разделения химикатов и их различных форм."
icon = 'icons/obj/medical/chemical.dmi'
icon_state = "chemmaster"
base_icon_state = "chemmaster"
@@ -533,7 +533,7 @@
/obj/machinery/chem_master/condimaster
name = "CondiMaster 3000"
- desc = "Used to create condiments and other cooking supplies."
+ desc = "Используется для создания приправ."
icon_state = "condimaster"
/obj/machinery/chem_master/condimaster/load_printable_containers()
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 141fb7c4e6fb0..5497c3debfc7c 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -1,7 +1,7 @@
/obj/machinery/reagentgrinder
name = "\improper All-In-One Grinder"
- desc = "From BlenderTech. Will It Blend? Let's test it out!"
+ desc = "От БлендерТех. Сблендерит ли? Проверим!"
icon = 'icons/obj/machines/kitchen.dmi'
icon_state = "juicer"
base_icon_state = "juicer"
@@ -93,30 +93,30 @@
to_process["[target.name]"] += 1
total_weight += target.w_class
if(to_process.len)
- . += span_notice("Currently holding.")
+ . += span_notice("Сейчас содержит.")
for(var/target_name as anything in to_process)
. += span_notice("[to_process[target_name]] [target_name]")
- . += span_notice("Filled to [round((total_weight / maximum_weight) * 100)]% capacity.")
+ . += span_notice("Наполнен на [round((total_weight / maximum_weight) * 100)]% вместимости.")
if(!QDELETED(beaker))
- . += span_notice("A beaker of [beaker.reagents.maximum_volume]u capacity is present. Contains:")
+ . += span_notice("Мензурка размером в [beaker.reagents.maximum_volume]u [declension_ru(beaker.reagents.maximum_volume,"юнит","юнита","юнитов")] вставлена. Содержимое:")
if(beaker.reagents.total_volume)
for(var/datum/reagent/reg as anything in beaker.reagents.reagent_list)
- . += span_notice("[round(reg.volume, CHEMICAL_VOLUME_ROUNDING)]u of [reg.name]")
+ . += span_notice("[round(reg.volume, CHEMICAL_VOLUME_ROUNDING)] [declension_ru(round(reg.volume, CHEMICAL_VOLUME_ROUNDING),"юнит","юнита","юнитов")] [reg.name]")
else
- . += span_notice("Nothing.")
- . += span_notice("[EXAMINE_HINT("Right click")] with empty hand to remove beaker.")
+ . += span_notice("Ничего.")
+ . += span_notice("[EXAMINE_HINT("ПКМ")] пустой рукой для снятия мензурки.")
else
- . += span_warning("It's missing a beaker.")
+ . += span_warning("Нет мензурки.")
- . += span_notice("You can drag a storage item to dump its contents in the grinder.")
+ . += span_notice("Вы можете перетащить хранилище на [declent_ru(ACCUSATIVE)], чтобы перемести всё содержимое.")
if(anchored)
- . += span_notice("It can be [EXAMINE_HINT("wrenched")] loose.")
+ . += span_notice("Машина может быть [EXAMINE_HINT("откручена")].")
else
- . += span_warning("Needs to be [EXAMINE_HINT("wrenched")] in place to work.")
- . += span_notice("Its maintainence panel can be [EXAMINE_HINT("screwed")] [panel_open ? "closed" : "open"].")
+ . += span_warning("Машина должна быть [EXAMINE_HINT("прикручена")] к полу для работы.")
+ . += span_notice("Панель обслуживания может быть [EXAMINE_HINT(panel_open ? "привинчина" : "отвинчина")].")
if(panel_open)
- . += span_notice("It can be [EXAMINE_HINT("pried")] apart.")
+ . += span_notice("Машина может быть [EXAMINE_HINT("разобрана")] при помощи лома.")
/obj/machinery/reagentgrinder/update_overlays()
. = ..()
diff --git a/code/modules/reagents/reagent_containers/condiment.dm b/code/modules/reagents/reagent_containers/condiment.dm
index f9c109518a219..cb800e26a45ec 100644
--- a/code/modules/reagents/reagent_containers/condiment.dm
+++ b/code/modules/reagents/reagent_containers/condiment.dm
@@ -7,7 +7,7 @@
//Food items that aren't eaten normally and leave an empty container behind.
/obj/item/reagent_containers/condiment
name = "condiment bottle"
- desc = "Just your average condiment bottle."
+ desc = "Просто обычная бутылка со специями."
icon = 'icons/obj/food/containers.dmi'
icon_state = "bottle"
inhand_icon_state = "beer" //Generic held-item sprite until unique ones are made.
@@ -37,30 +37,30 @@
return ..()
/obj/item/reagent_containers/condiment/suicide_act(mob/living/carbon/user)
- user.visible_message(span_suicide("[user] is trying to eat the entire [src]! It looks like [user.p_they()] forgot how food works!"))
+ user.visible_message(span_suicide("[capitalize(user.declent_ru(NOMINATIVE))] пытается проглотить [declent_ru(ACCUSATIVE)] целиком! Кажется, [ru_p_they()] не знает, как работает еда!"))
return OXYLOSS
/obj/item/reagent_containers/condiment/attack(mob/M, mob/user, def_zone)
if(!reagents || !reagents.total_volume)
- to_chat(user, span_warning("None of [src] left, oh no!"))
+ to_chat(user, span_warning("Внутри [declent_ru(GENITIVE)] пусто, о нет!"))
return FALSE
if(!canconsume(M, user))
return FALSE
if(M == user)
- user.visible_message(span_notice("[user] swallows some of the contents of \the [src]."), \
- span_notice("You swallow some of the contents of \the [src]."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] проглатывает немного содержимого [declent_ru(GENITIVE)]."), \
+ span_notice("Вы проглотили немного содержимого [declent_ru(GENITIVE)]."))
else
- M.visible_message(span_warning("[user] attempts to feed [M] from [src]."), \
- span_warning("[user] attempts to feed you from [src]."))
+ M.visible_message(span_warning("[capitalize(user.declent_ru(NOMINATIVE))] пытается накормить [M.declent_ru(ACCUSATIVE)] c помощью [declent_ru(GENITIVE)]."), \
+ span_warning("[capitalize(user.declent_ru(NOMINATIVE))] пытается накормить вас [declent_ru(INSTRUMENTAL)]."))
if(!do_after(user, 3 SECONDS, M))
return
if(!reagents || !reagents.total_volume)
return // The condiment might be empty after the delay.
- M.visible_message(span_warning("[user] fed [M] from [src]."), \
- span_warning("[user] fed you from [src]."))
+ M.visible_message(span_warning("[capitalize(user.declent_ru(NOMINATIVE))] кормит [M.declent_ru(ACCUSATIVE)] с помощью [declent_ru(GENITIVE)]."), \
+ span_warning("[capitalize(user.declent_ru(NOMINATIVE))] кормит вас [declent_ru(INSTRUMENTAL)]"))
log_combat(user, M, "fed", reagents.get_reagent_log_string())
reagents.trans_to(M, 10, transferred_by = user, methods = INGEST)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE)
@@ -69,34 +69,34 @@
/obj/item/reagent_containers/condiment/interact_with_atom(atom/target, mob/living/user, list/modifiers)
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
- to_chat(user, span_warning("[target] is empty!"))
+ to_chat(user, span_warning("Внутри [target.declent_ru(GENITIVE)] пусто!"))
return ITEM_INTERACT_BLOCKING
if(reagents.total_volume >= reagents.maximum_volume)
- to_chat(user, span_warning("[src] is full!"))
+ to_chat(user, span_warning("Внутри [declent_ru(GENITIVE)] нет места!"))
return ITEM_INTERACT_BLOCKING
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, transferred_by = user)
- to_chat(user, span_notice("You fill [src] with [trans] units of the contents of [target]."))
+ to_chat(user, span_notice("Вы наполняете [declent_ru(ACCUSATIVE)] на [trans] [declension_ru(trans,"юнит","юнита","юнитов")] из [target.declent_ru(GENITIVE)]."))
return ITEM_INTERACT_SUCCESS
//Something like a glass or a food item. Player probably wants to transfer TO it.
else if(target.is_drainable() || IS_EDIBLE(target))
if(!reagents.total_volume)
- to_chat(user, span_warning("[src] is empty!"))
+ to_chat(user, span_warning("Внутри [declent_ru(GENITIVE)] пусто!"))
return ITEM_INTERACT_BLOCKING
if(target.reagents.total_volume >= target.reagents.maximum_volume)
- to_chat(user, span_warning("you can't add anymore to [target]!"))
+ to_chat(user, span_warning("Внутри [target.declent_ru(GENITIVE)] недостаточно места!"))
return ITEM_INTERACT_BLOCKING
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this, transferred_by = user)
- to_chat(user, span_notice("You transfer [trans] units of the condiment to [target]."))
+ to_chat(user, span_notice("Вы передаете [trans] [declension_ru(trans,"юнит","юнита","юнитов")] в [target.declent_ru(ACCUSATIVE)]."))
return ITEM_INTERACT_SUCCESS
return NONE
/obj/item/reagent_containers/condiment/enzyme
name = "universal enzyme"
- desc = "Used in cooking various dishes."
+ desc = "Используется в приготовлении различных блюд."
icon_state = "enzyme"
list_reagents = list(/datum/reagent/consumable/enzyme = 50)
fill_icon_thresholds = null
@@ -106,12 +106,12 @@
var/datum/chemical_reaction/recipe = GLOB.chemical_reactions_list[/datum/chemical_reaction/food/cheesewheel]
var/milk_required = recipe.required_reagents[/datum/reagent/consumable/milk]
var/enzyme_required = recipe.required_catalysts[/datum/reagent/consumable/enzyme]
- . += span_notice("[milk_required] milk, [enzyme_required] enzyme and you got cheese.")
- . += span_warning("Remember, the enzyme isn't used up, so return it to the bottle, dingus!")
+ . += span_notice("[milk_required] [declension_ru(milk_required,"юнит","юнита","юнитов")] молока, [enzyme_required] [declension_ru(enzyme_required,"юнит","юнита","юнитов")] энзима, и вы получите сыр.")
+ . += span_warning("Помните, что энзим лишь катализатор, не забудьте вернуть его в бутылку!")
/obj/item/reagent_containers/condiment/sugar
name = "sugar sack"
- desc = "Tasty spacey sugar!"
+ desc = "Сладкий космический сахар!"
icon_state = "sugar"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
@@ -125,11 +125,11 @@
var/flour_required = recipe.required_reagents[/datum/reagent/consumable/flour]
var/eggyolk_required = recipe.required_reagents[/datum/reagent/consumable/eggyolk]
var/sugar_required = recipe.required_reagents[/datum/reagent/consumable/sugar]
- . += span_notice("[flour_required] flour, [eggyolk_required] egg yolk (or soy milk), [sugar_required] sugar makes cake dough. You can make pie dough from it.")
+ . += span_notice("[flour_required] [declension_ru(flour_required,"юнит","юнита","юнитов")] муки, [eggyolk_required] [declension_ru(eggyolk_required,"юнит","юнита","юнитов")] яичного желтка (или соевого молока), [sugar_required] [declension_ru(sugar_required,"юнит","юнита","юнитов")] сахара, чтобы сделать слоенное тесто. Из него выйдет отличное тесто для пирога!")
/obj/item/reagent_containers/condiment/saltshaker //Separate from above since it's a small shaker rather then
name = "salt shaker" // a large one.
- desc = "Salt. From space oceans, presumably."
+ desc = "Соль. Скорее всего из космического океана."
icon_state = "saltshakersmall"
icon_empty = "emptyshaker"
inhand_icon_state = ""
@@ -140,12 +140,12 @@
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/saltshaker/suicide_act(mob/living/user)
- user.visible_message(span_suicide("[user] begins to swap forms with the salt shaker! Кажется, [user.ru_p_they()] пытается совершить самоубийство!"))
+ user.visible_message(span_suicide("[capitalize(user.declent_ru(NOMINATIVE))] начинает меняться формами с солонкой! Кажется, [user.ru_p_they()] пытается совершить самоубийство!"))
var/newname = "[name]"
name = "[user.name]"
user.name = newname
user.real_name = newname
- desc = "Salt. From dead crew, presumably."
+ desc = "Соль. Скорее всего из мертвого члена экипажа."
return TOXLOSS
/obj/item/reagent_containers/condiment/saltshaker/interact_with_atom(atom/target, mob/living/user, list/modifiers)
@@ -154,9 +154,9 @@
return .
if(isturf(target))
if(!reagents.has_reagent(/datum/reagent/consumable/salt, 2))
- to_chat(user, span_warning("You don't have enough salt to make a pile!"))
+ to_chat(user, span_warning("У вас недостаточно соли, чтобы сделать горсть!"))
return
- user.visible_message(span_notice("[user] shakes some salt onto [target]."), span_notice("You shake some salt onto [target]."))
+ user.visible_message(span_notice("[capitalize(user.declent_ru(NOMINATIVE))] посыпает солью [target.declent_ru(ACCUSATIVE)]."), span_notice("Вы посыпаете солью [target.declent_ru(ACCUSATIVE)]."))
reagents.remove_reagent(/datum/reagent/consumable/salt, 2)
new/obj/effect/decal/cleanable/food/salt(target)
return ITEM_INTERACT_SUCCESS
@@ -164,7 +164,7 @@
/obj/item/reagent_containers/condiment/peppermill
name = "pepper mill"
- desc = "Often used to flavor food or make people sneeze."
+ desc = "Часто используется для придания особого вкуса. Или чтобы заставить людей чихать."
icon_state = "peppermillsmall"
icon_empty = "emptyshaker"
inhand_icon_state = ""
@@ -176,7 +176,7 @@
/obj/item/reagent_containers/condiment/milk
name = "space milk"
- desc = "It's milk. White and nutritious goodness!"
+ desc = "Это молоко. Белое и питательное божество!"
icon_state = "milk"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
@@ -189,12 +189,12 @@
var/datum/chemical_reaction/recipe = GLOB.chemical_reactions_list[/datum/chemical_reaction/food/cheesewheel]
var/milk_required = recipe.required_reagents[/datum/reagent/consumable/milk]
var/enzyme_required = recipe.required_catalysts[/datum/reagent/consumable/enzyme]
- . += span_notice("[milk_required] milk, [enzyme_required] enzyme and you got cheese.")
- . += span_warning("Remember, the enzyme isn't used up, so return it to the bottle, dingus!")
+ . += span_notice("[milk_required] [declension_ru(milk_required,"юнит","юнита","юнитов")] молока, [enzyme_required] [declension_ru(enzyme_required,"юнит","юнита","юнитов")] энзима, и вы получите сыр.")
+ . += span_warning("Помните, что энзим лишь катализатор, поэтому верни его обратно в бутылку после использования, глупыш!")
/obj/item/reagent_containers/condiment/flour
name = "flour sack"
- desc = "A big bag of flour. Good for baking!"
+ desc = "Крупная упаковка с мукой. Прекрасный выбор для выпечки!"
icon_state = "flour"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
@@ -211,13 +211,13 @@
var/cakebatter_flour_required = recipe_cakebatter.required_reagents[/datum/reagent/consumable/flour]
var/cakebatter_eggyolk_required = recipe_cakebatter.required_reagents[/datum/reagent/consumable/eggyolk]
var/cakebatter_sugar_required = recipe_cakebatter.required_reagents[/datum/reagent/consumable/sugar]
- . += "You retreat inward and recall the teachings of... Making Dough..."
- . += span_notice("[dough_flour_required] flour, [dough_water_required] water makes normal dough. You can make flat dough from it.")
- . += span_notice("[cakebatter_flour_required] flour, [cakebatter_eggyolk_required] egg yolk (or soy milk), [cakebatter_sugar_required] sugar makes cake dough. You can make pie dough from it.")
+ . += "Вы копаетесь в своих мыслях и вспоминаете рецепт... теста..."
+ . += span_notice("[dough_flour_required] [declension_ru(dough_flour_required,"юнит","юнита","юнитов")] муки, [dough_water_required] [declension_ru(dough_water_required,"юнит","юнита","юнитов")] воды подойдет для обычного кусочка теста. Его можно потом раскатать в плоскую лепешку.")
+ . += span_notice("Нужно [cakebatter_flour_required] [declension_ru(cakebatter_flour_required,"юнит","юнита","юнитов")] муки, [cakebatter_eggyolk_required] [declension_ru(cakebatter_eggyolk_required,"юнит","юнита","юнитов")] яичного желтка (или соевого молока), [cakebatter_sugar_required] [declension_ru(cakebatter_sugar_required,"юнит","юнита","юнитов")] сахара, чтобы сделать слоенное тесто. Из него выйдет отличное тесто для пирога!")
/obj/item/reagent_containers/condiment/soymilk
name = "soy milk"
- desc = "It's soy milk. White and nutritious goodness!"
+ desc = "Соевое молоко. Божество прозрачное, но все еще питательное!"
icon_state = "soymilk"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
@@ -227,7 +227,7 @@
/obj/item/reagent_containers/condiment/rice
name = "rice sack"
- desc = "A big bag of rice. Good for cooking!"
+ desc = "Крупная упаковка с рисом. Идеальна для приготовления блюд!"
icon_state = "rice"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
@@ -237,7 +237,7 @@
/obj/item/reagent_containers/condiment/cornmeal
name = "cornmeal box"
- desc = "A big box of cornmeal. Great for southern style cooking."
+ desc = "Крупная коробка с кукурузной мукой. Отличный выбор для приготовления южных блюд."
icon_state = "cornmeal"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
@@ -247,69 +247,69 @@
/obj/item/reagent_containers/condiment/bbqsauce
name = "bbq sauce"
- desc = "Hand wipes not included."
+ desc = "Салфетки в набор не входят."
icon_state = "bbqsauce"
list_reagents = list(/datum/reagent/consumable/bbqsauce = 50)
/obj/item/reagent_containers/condiment/soysauce
name = "soy sauce"
- desc = "A salty soy-based flavoring."
+ desc = "Соленоватый соус на основе сои."
icon_state = "soysauce"
list_reagents = list(/datum/reagent/consumable/soysauce = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/mayonnaise
name = "mayonnaise"
- desc = "An oily condiment made from egg yolks."
+ desc = "Маслянистая приправа из яичного желтка."
icon_state = "mayonnaise"
list_reagents = list(/datum/reagent/consumable/mayonnaise = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/vinegar
name = "vinegar"
- desc = "Perfect for chips, if you're feeling Space British."
+ desc = "Превосходно подходит для чипсов, если вы сегодня хотите побыть космическим англичанином."
icon_state = "vinegar"
list_reagents = list(/datum/reagent/consumable/vinegar = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/vegetable_oil
name = "cooking oil"
- desc = "For all your deep-frying needs."
+ desc = "Для особо глубокого фритюра."
icon_state = "cooking_oil"
list_reagents = list(/datum/reagent/consumable/nutriment/fat/oil = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/olive_oil
name = "quality oil"
- desc = "For the fancy chef inside everyone."
+ desc = "Для утонченных шеф-поваров, что скрываются в каждом из нас."
icon_state = "oliveoil"
list_reagents = list(/datum/reagent/consumable/nutriment/fat/oil/olive = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/yoghurt
name = "yoghurt carton"
- desc = "Creamy and smooth."
+ desc = "Кремовый и мягкий."
icon_state = "yoghurt"
list_reagents = list(/datum/reagent/consumable/yoghurt = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/peanut_butter
name = "peanut butter"
- desc = "Tasty, fattening processed peanuts in a jar."
+ desc = "Вкусное, тянущееся арахисовое масло в банке."
icon_state = "peanutbutter"
list_reagents = list(/datum/reagent/consumable/peanut_butter = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/cherryjelly
name = "cherry jelly"
- desc = "A jar of super-sweet cherry jelly."
+ desc = "Баночка с супер-сладким вишневым желе."
icon_state = "cherryjelly"
list_reagents = list(/datum/reagent/consumable/cherryjelly = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/honey
name = "honey"
- desc = "A jar of sweet and viscous honey."
+ desc = "Баночка приятного и тягучего меда."
icon_state = "honey"
list_reagents = list(/datum/reagent/consumable/honey = 50)
fill_icon_thresholds = null
@@ -318,42 +318,42 @@
name = "ketchup"
// At time of writing, "ketchup" mechanically, is just ground tomatoes,
// rather than // tomatoes plus vinegar plus sugar.
- desc = "A tomato slurry in a tall plastic bottle. Somehow still vaguely American."
+ desc = "Выжатые томаты, что скрываются в пластиковой бутылке. Смутно напоминают Америку."
icon_state = "ketchup"
list_reagents = list(/datum/reagent/consumable/ketchup = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/worcestershire
name = "worcestershire sauce"
- desc = "A fermented sauce of legend from old England. Makes almost anything better."
+ desc = "Ферментированный легендарный соус со Старой Англии. Делает почти всё вкуснее."
icon_state = "worcestershire"
list_reagents = list(/datum/reagent/consumable/worcestershire = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/red_bay
name = "\improper Red Bay seasoning"
- desc = "Mars' favourite seasoning."
+ desc = "Прямо с Марса!"
icon_state = "red_bay"
list_reagents = list(/datum/reagent/consumable/red_bay = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/curry_powder
name = "curry powder"
- desc = "It's this yellow magic that makes curry taste like curry."
+ desc = "В нем заключена особая магия, что придает карри вкус карри."
icon_state = "curry_powder"
list_reagents = list(/datum/reagent/consumable/curry_powder = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/dashi_concentrate
name = "dashi concentrate"
- desc = "A bottle of Amagi brand dashi concentrate. Simmer with water in a 1:8 ratio for a perfect dashi broth."
+ desc = "Бутылка концентрата даси марки Amagi. Варите на медленном огне воду в соотношении 1:8, чтобы получить идеальный бульон даси."
icon_state = "dashi_concentrate"
list_reagents = list(/datum/reagent/consumable/dashi_concentrate = 50)
fill_icon_thresholds = null
/obj/item/reagent_containers/condiment/coconut_milk
name = "coconut milk"
- desc = "It's coconut milk. Toasty!"
+ desc = "Это кокосовое молоко. Потрясно!"
icon_state = "coconut_milk"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
@@ -363,7 +363,7 @@
/obj/item/reagent_containers/condiment/grounding_solution
name = "grounding solution"
- desc = "A food-safe ionic solution designed to neutralise the enigmatic \"liquid electricity\" that is common to food from Sprout, forming harmless salt on contact."
+ desc = "Безопасный для пищевых продуктов ионный раствор, предназначенный для нейтрализации загадочного «жидкого электричества», свойственного продуктам Sprout, образуя при контакте безвредную соль."
icon_state = "grounding_solution"
list_reagents = list(/datum/reagent/consumable/grounding_solution = 50)
fill_icon_thresholds = null
@@ -379,7 +379,7 @@
/obj/item/reagent_containers/condiment/creamer
name = "coffee creamer pack"
- desc = "Better not think about what they're making this from."
+ desc = "Лучше не думать о том, из чего это сделано."
icon_state = "condi_creamer"
volume = 5
list_reagents = list(/datum/reagent/consumable/creamer = 5)
@@ -387,20 +387,20 @@
/obj/item/reagent_containers/condiment/chocolate
name = "chocolate sprinkle pack"
- desc= "The amount of sugar thats already there wasn't enough for you?"
+ desc= "Вам недостаточно сахара, который уже там есть?"
icon_state = "condi_chocolate"
list_reagents = list(/datum/reagent/consumable/choccyshake = 10)
/obj/item/reagent_containers/condiment/hotsauce
name = "hotsauce bottle"
- desc= "You can almost TASTE the stomach ulcers!"
+ desc= "Вы можете уже ЧУВСТВОВАТЬ вкус язвы желудка!"
icon_state = "hotsauce"
list_reagents = list(/datum/reagent/consumable/capsaicin = 50)
/obj/item/reagent_containers/condiment/coldsauce
name = "coldsauce bottle"
- desc= "Leaves the tongue numb from its passage."
+ desc= "Оставляет язык онемевшим после пробы."
icon_state = "coldsauce"
list_reagents = list(/datum/reagent/consumable/frostoil = 50)
@@ -408,7 +408,7 @@
/obj/item/reagent_containers/condiment/pack
name = "condiment pack"
- desc = "A small plastic pack with condiments to put on your food."
+ desc = "Небольшой пластиковый пакет с приправами для вашей еды."
icon_state = "condi_empty"
volume = 10
amount_per_transfer_from_this = 10
@@ -418,19 +418,19 @@
* Since all of them differs only in color should probably be replaced with usual reagentfillings instead
*/
var/list/possible_states = list(
- /datum/reagent/consumable/ketchup = list("condi_ketchup", "Ketchup", "You feel more American already."),
- /datum/reagent/consumable/capsaicin = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"),
- /datum/reagent/consumable/soysauce = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"),
- /datum/reagent/consumable/frostoil = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in its passage"),
- /datum/reagent/consumable/salt = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"),
- /datum/reagent/consumable/blackpepper = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"),
- /datum/reagent/consumable/nutriment/fat/oil = list("condi_cornoil", "Vegetable Oil", "A delicious oil used in cooking."),
- /datum/reagent/consumable/sugar = list("condi_sugar", "Sugar", "Tasty spacey sugar!"),
- /datum/reagent/consumable/astrotame = list("condi_astrotame", "Astrotame", "The sweetness of a thousand sugars but none of the calories."),
- /datum/reagent/consumable/bbqsauce = list("condi_bbq", "BBQ sauce", "Hand wipes not included."),
- /datum/reagent/consumable/peanut_butter = list("condi_peanutbutter", "Peanut Butter", "A creamy paste made from ground peanuts."),
- /datum/reagent/consumable/cherryjelly = list("condi_cherryjelly", "Cherry Jelly", "A jar of super-sweet cherry jelly."),
- /datum/reagent/consumable/mayonnaise = list("condi_mayo", "Mayonnaise", "Not an instrument."),
+ /datum/reagent/consumable/ketchup = list("condi_ketchup", "Кетчуп", "Вы уже чувствуете себя более по-американски."),
+ /datum/reagent/consumable/capsaicin = list("condi_hotsauce", "Острый соус", "Вы можете уже ЧУВСТВОВАТЬ вкус язвы желудка!"),
+ /datum/reagent/consumable/soysauce = list("condi_soysauce", "Соевый соус", "Соленоватый соус на основе сои."),
+ /datum/reagent/consumable/frostoil = list("condi_frostoil", "Холодный соус", "Оставляет язык онемевшим после пробы."),
+ /datum/reagent/consumable/salt = list("condi_salt", "Солонка", "Соль. Скорее всего из космического океана."),
+ /datum/reagent/consumable/blackpepper = list("condi_pepper", "Перечница", "Часто используется для придания особого вкуса. Или чтобы заставить людей чихать."),
+ /datum/reagent/consumable/nutriment/fat/oil = list("condi_cornoil", "Растительное масло", "Вкусное масло, используемое в кулинарии."),
+ /datum/reagent/consumable/sugar = list("condi_sugar", "Сахар", "Сладкий космический сахар!"),
+ /datum/reagent/consumable/astrotame = list("condi_astrotame", "Астротейм", "Сладость тысячи сахаров, но без калорий."),
+ /datum/reagent/consumable/bbqsauce = list("condi_bbq", "BBQ соус", "Салфетки в набор не включены."),
+ /datum/reagent/consumable/peanut_butter = list("condi_peanutbutter", "Арахисовое масло", "Вкусное, тянущееся арахисовое масло в банке."),
+ /datum/reagent/consumable/cherryjelly = list("condi_cherryjelly", "Вишневое желе", "Баночка с супер-сладким вишневым желе."),
+ /datum/reagent/consumable/mayonnaise = list("condi_mayo", "Майонез", "Маслянистая приправа из яичного желтка."),
)
/// Can't use initial(name) for this. This stores the name set by condimasters.
var/originalname = "condiment"
@@ -451,14 +451,14 @@
//You can tear the bag open above food to put the condiments on it, obviously.
if(IS_EDIBLE(target))
if(!reagents.total_volume)
- to_chat(user, span_warning("You tear open [src], but there's nothing in it."))
+ to_chat(user, span_warning("Вы вскрываете [declent_ru(ACCUSATIVE)], но внутри пусто."))
qdel(src)
return ITEM_INTERACT_BLOCKING
if(target.reagents.total_volume >= target.reagents.maximum_volume)
- to_chat(user, span_warning("You tear open [src], but [target] is stacked so high that it just drips off!") )
+ to_chat(user, span_warning("Вы вскрываете [declent_ru(ACCUSATIVE)], но [target.declent_ru(NOMINATIVE)] заполнен настолько, что всё просто стекает!"))
qdel(src)
return ITEM_INTERACT_BLOCKING
- to_chat(user, span_notice("You tear open [src] above [target] and the condiments drip onto it."))
+ to_chat(user, span_notice("Вы вскрываете [declent_ru(ACCUSATIVE)] над [target.declent_ru(INSTRUMENTAL)] и добавляете содержимое в блюдо."))
src.reagents.trans_to(target, amount_per_transfer_from_this, transferred_by = user)
qdel(src)
return ITEM_INTERACT_SUCCESS
@@ -477,13 +477,13 @@
desc = temp_list[3]
else
icon_state = "condi_mixed"
- desc = "A small condiment pack. The label says it contains [originalname]"
+ desc = "Небольшой пакетик с приправами. На этикетке написано, что внутри [originalname]"
/// Handles reagents getting removed from the condiment pack.
/obj/item/reagent_containers/condiment/pack/proc/on_reagent_del(datum/reagents/reagents)
SIGNAL_HANDLER
icon_state = "condi_empty"
- desc = "A small condiment pack. It is empty."
+ desc = "Небольшой пакетик с приправами, и он пуст."
//Ketchup
/obj/item/reagent_containers/condiment/pack/ketchup