diff --git a/code/datums/components/bakeable.dm b/code/datums/components/bakeable.dm index 93e96f65d58fc..8a1ecafaf2d25 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] источает приятный запах."), + 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.name] испускает горелое зловоние."), + blind_message = span_warning("Вы чувствуете запах горелого..."), ignored_mobs = asomnia_hadders, ) SEND_SIGNAL(parent, COMSIG_ITEM_BAKED, baked_result) @@ -115,18 +115,19 @@ /datum/component/bakeable/proc/on_examine(atom/source, mob/user, list/examine_list) SIGNAL_HANDLER + var/obj/sourceobj = parent 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("Это [sourceobj.name]. [initial(bake_result.name)] могут [span_bold("готовиться")] из нее.") else - examine_list += span_notice("[parent] can be [span_bold("baked")] into \a [initial(bake_result.name)].") + examine_list += span_notice("Это [sourceobj.name]. [span_bold("Готовится")] в [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("Наверное, [sourceobj.name] нужно выпекать немного дольше!") else if(current_bake_time <= required_bake_time) - examine_list += span_notice("[parent] seems to be almost finished baking!") + examine_list += span_notice("Кажется, что [sourceobj.name] почти готов!") else - examine_list += span_danger("[parent] should probably not be put in the oven.") + examine_list += span_danger("[sourceobj.name] не стоит засовывать в духовку.") diff --git a/code/modules/food_and_drinks/machinery/coffeemaker.dm b/code/modules/food_and_drinks/machinery/coffeemaker.dm index bb532b3162483..8304c2bcd2d20 100644 --- a/code/modules/food_and_drinks/machinery/coffeemaker.dm +++ b/code/modules/food_and_drinks/machinery/coffeemaker.dm @@ -1,8 +1,8 @@ #define BEAN_CAPACITY 10 //amount of coffee beans that can fit inside the impressa coffeemaker /obj/machinery/coffeemaker - name = "coffeemaker" - desc = "A Modello 3 Coffeemaker that brews coffee and holds it at the perfect temperature of 176 fahrenheit. Made by Piccionaia Home Appliances." + name = "кофеварка" + desc = "Кофеварка Modello 3, которая варит кофе и поддерживает его идеальную температуру 80 градусов по Цельсию. Произведено компанией Piccionaia Home Appliances." icon = 'icons/obj/medical/chemical.dmi' icon_state = "coffeemaker_nopot_nocart" base_icon_state = "coffeemaker" @@ -72,56 +72,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("Вы слишком далеко чтобы изучить содержимое и дисплей [src]!") return if(brewing) - . += span_warning("\The [src] is brewing.") + . += span_warning("[src] варит.") return if(panel_open) - . += span_notice("[src]'s maintenance hatch is open!") + . += span_notice("Панель [src] для обслуживания открыта!") return if(coffeepot || cartridge) - . += span_notice("\The [src] contains:") + . += span_notice("[src] содержит:") if(coffeepot) - . += span_notice("- \A [coffeepot].") + . += span_notice("- [coffeepot].") if(cartridge) - . += span_notice("- \A [cartridge].") + . += span_notice("- [cartridge].") 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("Осталось [coffee_cups] [coffee_cups == 1 ? "кофейная чашка" : "кофейных чашек"].") 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("Осталось пачек сахара: [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("Осталось пачек подсластителя: [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("Осталось пачек сливок: [creamer_packs].") else - . += span_notice("There is no creamer left.") + . += span_notice("Сливок больше нет.") /obj/machinery/coffeemaker/attack_hand_secondary(mob/user, list/modifiers) . = ..() @@ -159,7 +159,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 @@ -201,10 +201,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 @@ -215,10 +215,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 @@ -229,10 +229,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 @@ -243,10 +243,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 @@ -259,25 +259,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 @@ -355,7 +355,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) @@ -364,7 +364,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) @@ -373,7 +373,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) @@ -382,7 +382,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) @@ -418,8 +418,8 @@ //Coffee Cartridges: like toner, but for your coffee! /obj/item/coffee_cartridge - name = "coffeemaker cartridge- Caffè Generico" - desc = "A coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." + name = "картридж для кофеварки - Caffè Generico" + desc = "Кофейный картридж производства Piccionaia Coffee, предназначенный для использования с системой Modello 3." icon = 'icons/obj/food/cartridges.dmi' icon_state = "cartridge_basic" var/charges = 4 @@ -428,13 +428,13 @@ /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" - desc = "A fancy coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." + name = "картридж для кофеварки - Caffè Fantasioso" + 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 @@ -443,40 +443,40 @@ var/coffee_type = pick("blend", "blue_mountain", "kilimanjaro", "mocha") switch(coffee_type) if("blend") - name = "coffeemaker cartridge - Miscela di Piccione" + name = "картридж для кофеварки - Miscela di Piccione" icon_state = "cartridge_blend" if("blue_mountain") - name = "coffeemaker cartridge - Montagna Blu" + name = "картридж для кофеварки - Montagna Blu" icon_state = "cartridge_blue_mtn" if("kilimanjaro") - name = "coffeemaker cartridge - Kilimangiaro" + name = "картридж для кофеварки - Kilimangiaro" icon_state = "cartridge_kilimanjaro" if("mocha") - name = "coffeemaker cartridge - Moka Arabica" + name = "картридж для кофеварки - Moka Arabica" icon_state = "cartridge_mocha" /obj/item/coffee_cartridge/decaf - name = "coffeemaker cartridge - Caffè Decaffeinato" - desc = "A decaf coffee cartridge manufactured by Piccionaia Coffee, for use with the Modello 3 system." + name = "картридж для кофеварки - Caffè Decaffeinato" + 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" - desc = "A jury-rigged coffee cartridge. Should work with a Modello 3 system, though it might void the warranty." + name = "картридж для кофеварки - Botany Blend" + 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" - desc = "A blank coffee cartridge, ready to be filled with coffee paste." + name = "пустой кофейный картридж" + desc = "Пустой кофейный картридж, готовый к заполнению кофейным помолом." icon = 'icons/obj/food/cartridges.dmi' icon_state = "cartridge_blank" //now, how do you store coffee carts? well, in a rack, of course! /obj/item/storage/fancy/coffee_cart_rack - name = "coffeemaker cartridge rack" - desc = "A small rack for storing coffeemaker cartridges." + name = "Подставка для картриджей кофеварки" + desc = "Небольшая подставка для хранения картриджей кофемашины." icon = 'icons/obj/food/containers.dmi' icon_state = "coffee_cartrack4" base_icon_state = "coffee_cartrack" @@ -496,8 +496,8 @@ */ /obj/machinery/coffeemaker/impressa - name = "impressa coffeemaker" - desc = "An industry-grade Impressa Modello 5 Coffeemaker of the Piccionaia Home Appliances premium coffeemakers product line. Makes coffee from fresh dried whole beans." + name = "кофеварка impressa" + desc = "Кофеварка Impressa Modello 5 промышленного класса из линейки премиальных кофеварок Piccionaia Home Appliances. Готовит кофе из свежих сушеных цельных зерен." icon = 'icons/obj/machines/coffeemaker.dmi' icon_state = "coffeemaker_impressa" circuit = /obj/item/circuitboard/machine/coffeemaker/impressa @@ -524,7 +524,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] порций кофейных зерен") /obj/machinery/coffeemaker/impressa/update_overlays() . = ..() @@ -566,16 +566,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("нет кофейника внутри!") return FALSE if(machine_stat & (NOPOWER|BROKEN) ) - balloon_alert_to_viewers("machine unpowered!") + balloon_alert_to_viewers("кофеварка без питания!") return FALSE if(coffeepot.reagents.total_volume >= coffeepot.reagents.maximum_volume) - balloon_alert_to_viewers("the coffeepot is already full!") + balloon_alert_to_viewers("кофейник уже полон!") return FALSE return TRUE @@ -601,10 +601,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 @@ -615,10 +615,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 @@ -629,10 +629,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 @@ -643,10 +643,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 @@ -656,22 +656,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) @@ -681,14 +681,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) @@ -696,9 +696,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 322c0a42c5557..ec4f74dc58316 100644 --- a/code/modules/food_and_drinks/machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/machinery/deep_fryer.dm @@ -16,8 +16,8 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( ))) /obj/machinery/deepfryer - name = "deep fryer" - desc = "Deep fried everything." + name = "фритюрница" + desc = "Жарит всё." icon = 'icons/obj/machines/kitchen.dmi' icon_state = "fryer_off" density = TRUE @@ -90,9 +90,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.name] в масле." 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] юнитов масла в секунду.") /obj/machinery/deepfryer/wrench_act(mob/living/user, obj/item/tool) . = ..() @@ -103,23 +103,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.name]!")) return - user.visible_message(span_notice("[user] drops [weapon] into [src]."), span_notice("You dissolve [weapon] in [src].")) + user.visible_message(span_notice("[user] бросает [weapon.name] в [src.name]."), span_notice("Ты растворяешь [weapon.name] в [src.name].")) 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("В [src.name] нет жира или масла для жарки!")) 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.name]...")) 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?! @@ -158,14 +158,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(src.name)] звенит!")) 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(src.name)] источает едкий запах!"), ignored_mobs = asomnia_hadders) use_energy(active_power_usage) @@ -188,10 +188,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.name] в [src.name].")) 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(src.name)] начинает пылать... О нет...")) 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) @@ -209,7 +209,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(src.name)] взрывается в результате энтропийной реакции!")) explosion(src, devastation_range = 1, heavy_impact_range = 3, light_impact_range = 5, flame_range = 7) deconstruct(FALSE) @@ -218,7 +218,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.name] из [src.name].")) frying.forceMove(drop_location()) if(Adjacent(user) && !issilicon(user)) user.put_in_hands(frying) @@ -226,17 +226,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]!")) + log_combat(user, dunking_target, "dunked", null, "into [src.name]") + user.visible_message(span_danger("[user] макает лицо [dunking_target.name] в [src.name]!")) 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.name)] взрывается от энтропийной разницы! Блять!")) 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 a14ea3593c51a..893aceb6260e2 100644 --- a/code/modules/food_and_drinks/machinery/food_cart.dm +++ b/code/modules/food_and_drinks/machinery/food_cart.dm @@ -1,7 +1,7 @@ /obj/machinery/food_cart - name = "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." + name = "тележка с едой" + desc = "Компактная мобильная стойка для кулинарных работ с возможностью распаковки. Вот это да! В распакованном виде она напоминает те жирные геймерские установки, которые есть у некоторых людей в NTNet." icon = 'icons/obj/service/kitchen.dmi' icon_state = "foodcart" density = TRUE @@ -44,16 +44,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(src.name)] втягивает все свои распакованные части.")) for(var/o in packed_things) var/obj/object = o UnregisterSignal(object, COMSIG_MOVABLE_MOVED) @@ -65,9 +65,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("[src.name] расширяется, превращаясь в полноценную стойку.")) set_anchored(TRUE) var/iteration = 1 var/turf/grabbed_turf = get_step(get_turf(src), EAST) @@ -82,15 +82,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("[src.name] полностью разрушена.")) return var/obj/item/card/id/id_card = user.get_idcard(hand_first = TRUE) if(!check_access(id_card)) playsound(src, 'sound/machines/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 ? "распаковать" :"разобрать"] [src.name]...")) 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 ? "распаковка" :"разборка"] [src.name] была прервана!")) return if(unpacked) pack_up() @@ -132,8 +132,8 @@ QDEL_NULL(cart_tent) /obj/effect/food_cart_stand - name = "food cart tent" - desc = "Something to battle the sun, for there are no breaks for the burger flippers." + name = "палатка тележки с едой" + 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 cd50f29ffe478..4957cb69cdd27 100644 --- a/code/modules/food_and_drinks/machinery/gibber.dm +++ b/code/modules/food_and_drinks/machinery/gibber.dm @@ -1,6 +1,6 @@ /obj/machinery/gibber - name = "gibber" - desc = "The name isn't descriptive enough?" + name = "мясорубка" + desc = "Название недостаточно информативное?" icon = 'icons/obj/machines/kitchen.dmi' icon_state = "grinder" density = TRUE @@ -18,11 +18,11 @@ . = ..() RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_cleaned)) if(prob(5)) - name = "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!" + name = "мясорубка" + desc = "Ладно, если я... если я измельчу тебя в мясорубке, и единственное, что от тебя останется, - это глазное яблоко, \ + то ты... ты ТОЧНО УМРЕШЬ! Ты, наверное, - не ты, я просто говорю, что если бы ты... если бы кто-то, типа, \ + если тебя заталкивают в мясорубку, и, к примеру, одна из косточек твоего пальца все еще цела, они не станут ее поднимать и уходить, \ + видите ли, да, это не было смертельно опасно, это не было мгновенным убийством! У тебя еще осталась часть пальца!" dirty = TRUE update_appearance(UPDATE_OVERLAYS) @@ -40,10 +40,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("[src.name] была модернизирована для обработки неорганических материалов.") /obj/machinery/gibber/update_overlays() . = ..() @@ -82,36 +82,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("нельзя использовать мясорубку, пока она не прикручена к полу!")) 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("этот предмет не подходит для [src.name]!")) 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.name] к чему-то прикреплен!")) 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("[user] начинает засовывать [C.name] в мясорубку!")) 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("[user] набивает [C.name] в [src.name]!")) C.forceMove(src) set_occupant(C) update_appearance() @@ -155,17 +155,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() @@ -222,7 +222,7 @@ skin = new typeofskin log_combat(user, occupant, "gibbed") - mob_occupant.investigate_log("has been gibbed by [src].", INVESTIGATE_DEATHS) + mob_occupant.investigate_log("has been gibbed by [src.name].", INVESTIGATE_DEATHS) mob_occupant.death(TRUE) mob_occupant.ghostize() set_occupant(null) diff --git a/code/modules/food_and_drinks/machinery/griddle.dm b/code/modules/food_and_drinks/machinery/griddle.dm index e0c45e6c9af10..e340636a60b80 100644 --- a/code/modules/food_and_drinks/machinery/griddle.dm +++ b/code/modules/food_and_drinks/machinery/griddle.dm @@ -1,6 +1,6 @@ /obj/machinery/griddle - name = "griddle" - desc = "Because using pans is for pansies." + name = "гридль" + desc = "Сковородки для слабаков" icon = 'icons/obj/machines/kitchen.dmi' icon_state = "griddle1_off" density = TRUE @@ -54,7 +54,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("[exposing_reagent.name] начинает жарится на гридле.")) return NONE /obj/machinery/griddle/crowbar_act(mob/living/user, obj/item/I) @@ -65,7 +65,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("[src.name] не может уместить больше предметов!")) return var/list/modifiers = params2list(params) //Center the icon where the user clicked. @@ -75,7 +75,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, -(world.icon_size/2), world.icon_size/2) I.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) - to_chat(user, span_notice("You place [I] on [src].")) + to_chat(user, span_notice("Ты кладешь [I.name] на [src.name].")) AddToGrill(I, user) else return ..() @@ -93,12 +93,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.name] на [src.name]...")) if(!do_after(user, 2 SECONDS, target = item)) return ITEM_INTERACT_BLOCKING @@ -112,7 +112,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] вываливается прямо на [src.name].")) update_appearance() return ITEM_INTERACT_SUCCESS return ITEM_INTERACT_BLOCKING @@ -201,7 +201,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.name] на [src.name].")) return STORAGE_DUMP_HANDLED /obj/machinery/griddle/process(seconds_per_tick) @@ -210,7 +210,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.name] не выглядит хорошей идеей для готовки на гридле!")) use_energy(active_power_usage) @@ -223,8 +223,8 @@ return ..() /obj/machinery/griddle/stand - name = "griddle stand" - desc = "A more commercialized version of your traditional griddle. What happened to the good old days where people griddled with passion?" + name = "стойка гридля" + 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 a52749280dd6d..0bb831eb5aedc 100644 --- a/code/modules/food_and_drinks/machinery/grill.dm +++ b/code/modules/food_and_drinks/machinery/grill.dm @@ -4,8 +4,8 @@ #define GRILL_FUELUSAGE_ACTIVE 5 /obj/machinery/grill - name = "Barbeque grill" - desc = "Just like the old days. Smokes items over a light heat" + name = "Гриль для барбекю" + desc = "Как в старые добрые времена. Копченые продукты на легком огне" icon = 'icons/obj/machines/kitchen.dmi' icon_state = "grill_open" density = TRUE @@ -52,34 +52,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)) @@ -100,7 +100,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 @@ -133,7 +133,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 @@ -150,7 +150,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 @@ -158,7 +158,7 @@ if(!merged) weapon.forceMove(src) - to_chat(user, span_notice("You add [src] to the fuel stack.")) + to_chat(user, span_notice("Вы добавили [src.name] в топку.")) if(!grill_fuel) burn_stack() begin_processing() @@ -169,7 +169,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) @@ -202,27 +202,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] юнитов в топку.")) 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] у тебя в руках!") return ITEM_INTERACT_BLOCKING //add the item on the grill @@ -231,7 +231,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.name] на [src.name].")) update_appearance(UPDATE_ICON_STATE) grill_loop.start() return ITEM_INTERACT_SUCCESS @@ -252,7 +252,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 b58af21331eab..90a5919851c1b 100644 --- a/code/modules/food_and_drinks/machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/machinery/icecream_vat.dm @@ -7,8 +7,8 @@ #define VAT_MODE_CONES "cones" /obj/machinery/icecream_vat - name = "ice cream vat" - desc = "Ding-aling ding dong. Get your Nanotrasen-approved ice cream!" + name = "машина для мороженного" + desc = "Смотря на машину вы вспоминаете мелодию вашего любимого кафе с мороженным. Теперь таким кафе стало Нанотрейзен!" icon = 'icons/obj/service/kitchen.dmi' icon_state = "icecream_vat" density = TRUE @@ -63,7 +63,7 @@ if(cone.ingredients) cone_prototypes[cone_path] = cone else - stack_trace("Ice cream cone [cone] (TYPE: [cone_path]) has been found without ingredients, please make a bug report about this.") + stack_trace("Рожок [cone.name] (TYPE: [cone_path]) оказался без ингридиентов, сделайте баг-репорт об этом.") qdel(cone) if(!ice_cream_icons) ice_cream_icons = list() @@ -93,26 +93,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) . = ..() @@ -130,14 +130,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) @@ -153,10 +153,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) @@ -172,7 +172,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 @@ -213,7 +213,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) @@ -243,7 +243,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) @@ -252,7 +252,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.name]", "делает [cone.name]") 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. @@ -263,14 +263,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)) @@ -287,7 +287,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 4fa586401ff56..bdbdd3bd22c92 100644 --- a/code/modules/food_and_drinks/machinery/microwave.dm +++ b/code/modules/food_and_drinks/machinery/microwave.dm @@ -18,8 +18,8 @@ #define TIER_1_CELL_CHARGE_RATE (0.25 * STANDARD_CELL_CHARGE) /obj/machinery/microwave - name = "microwave oven" - desc = "Cooks and boils stuff." + name = "Микроволновка" + desc = "Нагревает всякие штуки." icon = 'icons/obj/machines/microwave.dmi' base_icon_state = "" icon_state = "mw_complete" @@ -161,36 +161,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("заряд готов")] горит.")) 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™ позволяет заряжать КПК без проводов с помощью микроволновых частот! Вы можете зарядить свое устройство с помощью 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("Ctrl-click")] чтобы извлечь элемент питания."]") if(!operating) if(!operating && vampire_charging_capable) - . += span_notice("[EXAMINE_HINT("Alt-click")] to change default mode.") + . += span_notice("[EXAMINE_HINT("Alt-click")] чтобы изменить режим по умолчанию.") - . += span_notice("[EXAMINE_HINT("Right-click")] to start [vampire_charging_enabled ? "charging" : "cooking"] cycle.") + . += span_notice("[EXAMINE_HINT("Right-click")] что бы начать [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("Вы слишком далеко, чтобы рассмотреть содержимое [src.name] и его дисплей!") return if(operating) - . += span_notice("\The [src] is operating.") + . += span_notice("[src] работает.") return if(length(ingredients)) if(issilicon(user)) - . += span_notice("\The [src] camera shows:") + . += span_notice("[src.name] имеет камеру, что показывает:") else - . += span_notice("\The [src] contains:") + . += span_notice("[src.name] содержит:") var/list/items_counts = new for(var/i in ingredients) if(isstack(i)) @@ -202,16 +202,16 @@ for(var/item in items_counts) . += span_notice("- [items_counts[item]]x [item].") else - . += span_notice("\The [src] is empty.") + . += span_notice("[src] пустая.") 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) ? "INSERT CELL" : "[round(cell.percent())]%"].") #define MICROWAVE_INGREDIENT_OVERLAY_SIZE 24 @@ -330,16 +330,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("[user] начинает ремонт, [src.name] скоро снова заработает!"), + span_notice("Вы начинаете ремона, [src.name] скоро снова заработает!"), ) 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("[user] заканчивает ремонт, [src.name] снова работает."), + span_notice("Вы заканчиваете ремонт, [src.name] снова работает."), ) broken = KINDA_BROKEN // Fix it a bit update_appearance() @@ -350,16 +350,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("[user] начинает ремонт, [src.name] скоро снова заработает!"), + span_notice("ВВы начинаете ремона, [src.name] скоро снова заработает!"), ) 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("[user] заканчивает ремонт, [src.name] снова работает."), + span_notice("Вы заканчиваете ремонт, [src.name] снова работает."), ) broken = NOT_BROKEN update_appearance() @@ -385,7 +385,7 @@ return NONE if(broken > NOT_BROKEN) - balloon_alert(user, "it's broken!") + balloon_alert(user, "он сломан!") return ITEM_INTERACT_BLOCKING if(istype(item, /obj/item/stock_parts/power_store/cell) && cell_powered) @@ -400,33 +400,33 @@ 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) - balloon_alert(user, "not secured!") + balloon_alert(user, "не прикручено!") return ITEM_INTERACT_BLOCKING if(dirty >= MAX_MICROWAVE_DIRTINESS) // The microwave is all dirty so can't be used! - balloon_alert(user, "it's too dirty!") - return ITEM_INTERACT_BLOCKING + balloon_alert(user, "cлишком грязно!") + return TRUE 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("[user] добавляет [item] к [src]."), span_notice("[item] выгружается прямо в [src]...")) update_appearance() return ITEM_INTERACT_SUCCESS @@ -443,7 +443,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] в [src]...")) if(!do_after(user, 2 SECONDS, target = tool)) return @@ -451,7 +451,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++ @@ -459,7 +459,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] в [src].")) update_appearance() /obj/machinery/microwave/mouse_drop_receive(obj/item/tool, mob/user, params) @@ -470,7 +470,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) @@ -482,10 +482,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/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("[user] поставил [src] на [vampire_charging_enabled ? "зарядку" : "готовку"]."), blind_message = span_notice("[src] издает информативный звук!")) return CLICK_ACTION_SUCCESS /obj/machinery/microwave/click_ctrl(mob/user) @@ -494,7 +494,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 @@ -505,7 +505,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 @@ -516,7 +516,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)) @@ -581,13 +581,13 @@ return if(wire_disabled) - audible_message("[src] buzzes.") + audible_message("[src] жужжит.") playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) return if(cell_powered && cell?.charge < TIER_1_CELL_CHARGE_RATE * efficiency) playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) - balloon_alert(cooker, "no power draw!") + balloon_alert(cooker, "отсутствует потребление энергии!") return if(cooker && HAS_TRAIT(cooker, TRAIT_CURSED) && prob(7)) @@ -606,7 +606,7 @@ if(istype(potential_fooditem, /obj/item/modular_computer) && prob(75)) pda_failure = TRUE notify_ghosts( - "[cooker] has overheated their PDA!", + "[cooker] перегрел свой КПК!", source = src, notify_flags = NOTIFY_CATEGORY_NOFLASH, header = "Hunger Games: Catching Fire", @@ -625,14 +625,14 @@ playsound(src, 'sound/machines/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("[src.name] включилась."), 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("Искры разлетаются вокруг [src.name]!")) var/datum/effect_system/spark_spread/sparks = new sparks.set_up(2, 1, src) sparks.start() @@ -700,7 +700,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("You smell a burnt smell coming from [src.name]!"), ignored_mobs = cant_smell) particles = new /particles/smoke() addtimer(CALLBACK(src, PROC_REF(remove_smoke)), 10 SECONDS) Shake(duration = 1 SECONDS) @@ -770,7 +770,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("[src.name] покрывается грязью!")) dirty = MAX_MICROWAVE_DIRTINESS dirty_anim_playing = FALSE @@ -818,7 +818,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-sigh.ogg', 50, FALSE) return @@ -826,14 +826,14 @@ return if(wire_disabled) - audible_message("[src] buzzes.") + audible_message("[src] жужжит.") playsound(src, 'sound/machines/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-sigh.ogg', 50, FALSE) eject() return @@ -898,7 +898,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 @@ -911,8 +911,8 @@ addtimer(CALLBACK(src, PROC_REF(wzhzhzh)), rand(0.5 SECONDS, 3 SECONDS)) /obj/machinery/microwave/engineering - name = "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." + name = "беспроводная микроволновка" + 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 ca8f6bcafc632..e27c70aa5fca0 100644 --- a/code/modules/food_and_drinks/machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/machinery/monkeyrecycler.dm @@ -1,8 +1,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) /obj/machinery/monkey_recycler - name = "monkey recycler" - desc = "A machine used for recycling dead monkeys into monkey cubes." + name = "переработчик обезьян" + desc = "Машина используемая для переработки мертвых обезьян в кубы обезьян." icon = 'icons/obj/machines/kitchen.dmi' icon_state = "grinder" layer = BELOW_OBJ_LAYER @@ -38,7 +38,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] кубиков за каждую обезьяну.") /obj/machinery/monkey_recycler/wrench_act(mob/living/user, obj/item/tool) . = ..() @@ -71,35 +71,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 c997f34924145..9791b2475796e 100644 --- a/code/modules/food_and_drinks/machinery/oven.dm +++ b/code/modules/food_and_drinks/machinery/oven.dm @@ -9,8 +9,8 @@ #define OVEN_TRAY_X_OFFSET -2 /obj/machinery/oven - name = "oven" - desc = "Why do they call it oven when you of in the cold food of out hot eat the food?" + name = "духовка" + desc = "Иногда туда залезает повар, если инженеры не починили шлюз морозильной камеры..." icon = 'icons/obj/machines/kitchen.dmi' icon_state = "oven_off" base_icon_state = "oven" @@ -94,7 +94,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("[src.name] источает запах гари!"), ignored_mobs = asomnia_hadders) set_smoke_state(worst_cooked_food_state) update_appearance() use_energy(active_power_usage) @@ -104,7 +104,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] в [src].")) add_tray_to_oven(item, user) /obj/machinery/oven/item_interaction(mob/living/user, obj/item/item, list/modifiers) @@ -154,13 +154,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("Вы открыли [src].")) 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("Вы закрыли [src].")) if(used_tray) begin_processing() used_tray.vis_flags |= VIS_HIDE @@ -179,13 +179,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("Вы открыли [src].")) 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("Вы закрыли [src].")) if(used_tray) begin_processing() used_tray.vis_flags |= VIS_HIDE @@ -229,8 +229,8 @@ return ITEM_INTERACT_SUCCESS /obj/machinery/oven/range - name = "range" - desc = "And Oven AND a Stove? I guess that's why it's got range!" + name = "плита с духовкой" + desc = "Плита с духовкой?!" icon_state = "range_off" base_icon_state = "range" pass_flags_self = PASSMACHINE|PASSTABLE|LETPASSTHROW // Like the griddle, short @@ -246,8 +246,8 @@ AddComponent(/datum/component/stove, container_x = -6, container_y = 14, spawn_container = mapload_container) /obj/item/plate/oven_tray - name = "oven tray" - desc = "Time to bake cookies!" + name = "противень духовки" + desc = "Время печь печенье!" icon_state = "oven_tray" max_items = 6 biggest_w_class = WEIGHT_CLASS_BULKY @@ -265,12 +265,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.name] выгружается прямо на [src.name]...")) if(!do_after(user, 2 SECONDS, target = item)) return ITEM_INTERACT_BLOCKING @@ -284,7 +284,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] вставлен. Цель - [src.name].")) 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 383a7c34e2756..b3cd5c8368b2d 100644 --- a/code/modules/food_and_drinks/machinery/processor.dm +++ b/code/modules/food_and_drinks/machinery/processor.dm @@ -1,8 +1,8 @@ #define PROCESSOR_SELECT_RECIPE(movable_input) LAZYACCESS(processor_inputs[type], movable_input.type) /obj/machinery/processor - name = "food processor" - desc = "An industrial grinder used to process meat and other foods. Keep hands clear of intake area while operating." + name = "кухонный комбайн" + desc = "Промышленный комбайн, используемый для обработки мяса и других продуктов. Во время работы держите руки подальше от зоны приема." icon = 'icons/obj/machines/kitchen.dmi' base_icon_state = "processor" icon_state = "processor" @@ -54,7 +54,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) ..() @@ -90,7 +90,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("[src.name] находится в процессе обработки!")) 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 @@ -108,45 +108,45 @@ loaded++ if(loaded) - to_chat(user, span_notice("You insert [loaded] items into [src].")) + to_chat(user, span_notice("[loaded] вставлен. Цель - [src.name]..")) 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("[user] засунул [attacking_item.name] в [src.name]."), + span_notice("Вы засунули [attacking_item.name] в [src.name]."), ) 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("[src.name] находится в процессе обработки!")) 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("[user] пихает [pushed_mob.name]. [src.name] на пути!")) 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("[src] пустой!")) 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("[user] включил [src]."), \ + span_notice("Вы включили [src]."), \ + span_hear("Вы слышите кухонный комбайн.")) playsound(src.loc, 'sound/machines/blender.ogg', 50, TRUE) use_energy(active_power_usage) var/total_time = 0 @@ -169,11 +169,11 @@ continue process_food(recipe, content_item) processing = FALSE - visible_message(span_notice("\The [src] finishes processing.")) + visible_message(span_notice(" [src] заканчивает обработку.")) /obj/machinery/processor/verb/eject() set category = "Object" - set name = "Eject Contents" + set name = "Извлечь содержимое" set src in oview(1) if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED)) return @@ -188,13 +188,13 @@ /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("[user] выползает из кухонного комбайна!")) /obj/machinery/processor/slime - name = "slime processor" + name = "переработчик слаймов" 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) @@ -227,7 +227,7 @@ if (!recipe) return - visible_message(span_notice("[picked_slime] is sucked into [src].")) + visible_message(span_notice("[picked_slime.name] засасывается в [src.name].")) LAZYADD(processor_contents, picked_slime) picked_slime.forceMove(src) @@ -238,7 +238,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 1dca29b950422..139cf916e508f 100644 --- a/code/modules/food_and_drinks/machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/machinery/smartfridge.dm @@ -2,8 +2,8 @@ // SmartFridge. Much todo // ------------------------- /obj/machinery/smartfridge - name = "smartfridge" - desc = "Keeps cold things cold and hot things cold." + name = "смарт-холодильник" + desc = "Сохраняет холодные вещи холодными, а горячие - горячими." icon = 'icons/obj/machines/smartfridge.dmi' icon_state = "smartfridge-icon" base_icon_state = "smartfridge" @@ -64,56 +64,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("[user] начинает срезать [name] от пола."), + span_notice("Вы начинаете срезать [src.name] от пола..."), + 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("Вы отрезали [src.name] от пола.")) 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("[user.name] начинает приваривать [name] к полу."), + span_notice("Вы начинаете приваривать [src.name] к полу..."), + 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("Вы приварили [src.name] к полу.")) 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("[user] чинит [src.name]."), + span_notice("Вы начинаете чинить [src.name]..."), + 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("Вы починили [src.name]")) atom_integrity = max_integrity set_machine_stat(machine_stat & ~BROKEN) update_icon() @@ -131,7 +131,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 ..() @@ -152,7 +152,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 @@ -164,26 +164,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 @@ -197,7 +197,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() @@ -206,14 +206,15 @@ . = "" 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) . = ..() @@ -265,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) && \ @@ -273,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("[user] кладет [weapon.name] в [src.name]."), span_notice("Вы положили [weapon.name] в [src.name].")) SStgui.update_uis(src) if(visible_contents) update_appearance() @@ -295,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("[user] перекладывает предметы из [weapon.name] в [src.name]."), \ + span_notice("Вы заполняете [src.name] предметами из [weapon.name].")) 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("[user] перекладывает предметы из [weapon.name] в [src.name]."), \ + span_notice("Вы загружаете [src.name] предметами из [weapon.name].")) 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.name] нет ничего, что можно положить в [src.name]!")) return FALSE if(!powered()) - to_chat(user, span_warning("\The [src]'s magnetic door won't open without power!")) + to_chat(user, span_warning("\The [src.name]'s magnetic door won't open without power!")) return FALSE if(!user.combat_mode) - to_chat(user, span_warning("\The [src] smartly refuses [weapon].")) + to_chat(user, span_warning("[src.name] умно отказывает в [weapon.name].")) return FALSE else @@ -343,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("[weapon] прилип к вашей руке. Нельзя положить [weapon] в [src]!")) return FALSE return TRUE else @@ -406,8 +407,8 @@ var/dispensed_amount = 0 if(isAI(living_mob)) - to_chat(living_mob, span_warning("[src] does not respect your authority!")) - return TRUE + to_chat(living_mob, span_warning("[src] вне зоны вашего контроля!")) + return for(var/obj/item/dispensed_item in contents) if(amount <= 0) @@ -436,14 +437,14 @@ // Drying 'smartfridge' // ---------------------------- /obj/machinery/smartfridge/drying - name = "dehydrator" - desc = "A machine meant to remove moisture from various food." + name = "сушилка" + desc = "Механизм, используемый для сушки растительных продуктов, еды и шкур." icon_state = "dehydrator-icon" base_icon_state = "dehydrator" contents_overlay_icon = "contents" + base_build_path = /obj/machinery/smartfridge/drying //should really be seeing this without admin fuckery. circuit = /obj/item/circuitboard/machine/dehydrator light_power = 0.5 - base_build_path = /obj/machinery/smartfridge/drying //should really be seeing this without admin fuckery. has_emissive = FALSE can_atmos_pass = ATMOS_PASS_YES can_be_welded_down = FALSE @@ -603,8 +604,8 @@ // Bar drink smartfridge // ---------------------------- /obj/machinery/smartfridge/drinks - name = "drink showcase" - desc = "A refrigerated storage unit for tasty tasty alcohol." + name = "витрина напитков" + desc = "Холодильник для хранения вкусного алкоголя." base_build_path = /obj/machinery/smartfridge/drinks contents_overlay_icon = "drink" @@ -624,7 +625,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" @@ -641,8 +642,8 @@ // Xenobiology Slime-Extract Smartfridge // ------------------------------------- /obj/machinery/smartfridge/extract - name = "smart slime extract storage" - desc = "A refrigerated storage unit for slime extracts." + name = "умное хранилище экстракта слаймов" + desc = "Холодильник для хранения экстракта слаймов." base_build_path = /obj/machinery/smartfridge/extract contents_overlay_icon = "slime" @@ -656,8 +657,8 @@ // Cytology Petri Dish Smartfridge // ------------------------------------- /obj/machinery/smartfridge/petri - name = "smart petri dish storage" - desc = "A refrigerated storage unit for petri dishes." + name = "умное хранилище чашек Петри" + desc = "Холодильник для хранения чашек Петри." base_build_path = /obj/machinery/smartfridge/petri contents_overlay_icon = "petri" @@ -671,8 +672,8 @@ // Organ Surgery Smartfridge // ------------------------- /obj/machinery/smartfridge/organ - name = "smart organ storage" - desc = "A refrigerated storage unit for organ storage." + name = "умное хранилище органов" + desc = "Холодильник для хранения органов." max_n_of_items = 20 //vastly lower to prevent processing too long base_build_path = /obj/machinery/smartfridge/organ contents_overlay_icon = "organ" @@ -725,8 +726,8 @@ // Chemistry Medical Smartfridge // ----------------------------- /obj/machinery/smartfridge/chemistry - name = "smart chemical storage" - desc = "A refrigerated storage unit for medicine storage." + name = "умное хранилище химикатов" + desc = "Холодильник для хранения лекарств." base_build_path = /obj/machinery/smartfridge/chemistry contents_overlay_icon = "chem" default_list_view = TRUE @@ -776,8 +777,8 @@ // Virology Medical Smartfridge // ---------------------------- /obj/machinery/smartfridge/chemistry/virology - name = "smart virus storage" - desc = "A refrigerated storage unit for volatile sample storage." + name = "умное хранилище вирусов" + desc = "Холодильник для хранения летучих образцов." base_build_path = /obj/machinery/smartfridge/chemistry/virology contents_overlay_icon = "viro" default_list_view = TRUE @@ -798,8 +799,8 @@ // Disk """fridge""" // ---------------------------- /obj/machinery/smartfridge/disks - name = "disk compartmentalizer" - desc = "A machine capable of storing a variety of disks. Denoted by most as the DSU (disk storage unit)." + name = "устройство для сортировки дисков" + 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 6cc0ec527894f..6b5ab54e49174 100644 --- a/code/modules/food_and_drinks/machinery/stove.dm +++ b/code/modules/food_and_drinks/machinery/stove.dm @@ -1,6 +1,6 @@ /obj/machinery/stove - name = "stove" - desc = "You'd think this thing would be more useful in here." + name = "плита" + desc = "Можно подумать, что здесь эта штука будет полезнее." icon = 'icons/obj/machines/kitchen_stove.dmi' icon_state = "stove" base_icon_state = "stove" @@ -26,8 +26,8 @@ // - Thermostat you can stick in the pot to see in examine the temperature // - Tasting the pot to learn its exact contents w/o sci goggles (chef skillchip?) /obj/item/reagent_containers/cup/soup_pot - name = "soup pot" - desc = "A tall soup designed to mix and cook all kinds of soup." + name = "кастрюля" + desc = "Высокая кастрюля предназначенная для смешивания и приготовления всех видов супов." icon = 'icons/obj/service/kitchen.dmi' icon_state = "pot" base_icon_state = "pot" @@ -53,19 +53,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] юнитов ингредиентов.") /** * Override standard reagent examine with something a bit more sensible for the soup pot, @@ -74,7 +74,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() @@ -90,24 +90,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)] юнитов [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)] юнитов неизвестного ингредиента" 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("Содержимое [src] имеет температуру в [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("Содержимое [src] кипит.") 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 @@ -133,13 +133,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] в [src.name].")) update_appearance(UPDATE_OVERLAYS) return TRUE @@ -153,15 +153,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) @@ -184,7 +184,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 fcbabafc2d12c..ae4859aeb02d8 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/welderactivate.ogg' : 'sound/items/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.name] оказалась на [parent] благодаря вам.")) 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 237dcb862af50..e90c4c7145802 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -1,8 +1,8 @@ #define MAX_CONTAINER_PRINT_AMOUNT 50 /obj/machinery/chem_master - name = "ChemMaster 3000" - desc = "Used to separate chemicals and distribute them in a variety of forms." + name = "ХимМастер 3000" + desc = "Используется для выведения и разделения химикатов и их различных форм." icon = 'icons/obj/medical/chemical.dmi' icon_state = "chemmaster" base_icon_state = "chemmaster" @@ -530,8 +530,8 @@ update_appearance(UPDATE_OVERLAYS) /obj/machinery/chem_master/condimaster - name = "CondiMaster 3000" - desc = "Used to create condiments and other cooking supplies." + name = "ПриправМастер 3000" + 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 3b0272240b0df..4d143e05a1c98 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!" + name = "\improper Гриндер Все-в-одном" + 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 вставлен. Содержимое:") 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]") else - . += span_notice("Nothing.") - . += span_notice("[EXAMINE_HINT("Right click")] with empty hand to remove beaker.") + . += span_notice("Нет.") + . += span_notice("[EXAMINE_HINT("Right click")] пустой рукой, чтобы убрать контейнер.") 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("Вы можете перетащить предмет-хранилище на гриндер, чтобы поместить в него содержимое.") 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 c8652afda8f0e..ae82bac1aa8ef 100644 --- a/code/modules/reagents/reagent_containers/condiment.dm +++ b/code/modules/reagents/reagent_containers/condiment.dm @@ -6,8 +6,8 @@ //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." + name = "бутылка специй" + 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("[user] пытается проглоить содержимое [src.name]! Еда работает не так!")) 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("[src.name] оказывается без наполнения, о нет!")) 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("[user] проглатывает немного содержимого [src.name]."), \ + span_notice("Вы проглотили немного содержимого [src].")) 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("[user] пытается накормить [M]. Похоже это [src.name]."), \ + span_warning("[user] пытается накормить вас. Похоже это [src].")) 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("[user] кормит [M]. Похоже это [src.name]."), \ + span_warning("[user] кормит вас. Похоже это[src.name].")) 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.name] без ничего!")) return ITEM_INTERACT_BLOCKING if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, span_warning("[src] is full!")) + to_chat(user, span_warning("[src.name] уже не вмещает больше!")) 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("[src.name] наполняется [trans] юнитами. Используется [target.name].")) 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("[src] без ничего!")) 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] не может вместить себя больше ингридиентов!")) 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] заполняет содержимое [target.name].")) 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] молока, [enzyme_required] энзима и вы получите сыр.") + . += span_warning("Помните, что энзим лишь катализатор, не забудьте вернуть его в бутылку!") /obj/item/reagent_containers/condiment/sugar - name = "sugar sack" - desc = "Tasty spacey sugar!" + name = "мешок сахара" + 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] муки, [eggyolk_required] яий или соевого молока, [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." + name = "солонка" // a large one. + 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! It looks like [user.p_theyre()] trying to commit suicide!")) + user.visible_message(span_suicide("[user] начинает поглощать содержимое солонки! Это похоже на какой-то акт самоубийства!")) 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,17 +154,17 @@ 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("[target.name] наполняется солью благодаря [user]."), span_notice("[target.name] наполняется солью.")) reagents.remove_reagent(/datum/reagent/consumable/salt, 2) new/obj/effect/decal/cleanable/food/salt(target) return ITEM_INTERACT_SUCCESS return . /obj/item/reagent_containers/condiment/peppermill - name = "pepper mill" - desc = "Often used to flavor food or make people sneeze." + name = "перечница" + desc = "Часто используется для придания особого вкуса. Или чтобы заставить людей чихать." icon_state = "peppermillsmall" icon_empty = "emptyshaker" inhand_icon_state = "" @@ -175,8 +175,8 @@ fill_icon_thresholds = null /obj/item/reagent_containers/condiment/milk - name = "space milk" - desc = "It's milk. White and nutritious goodness!" + name = "космическое молоко" + 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] молока, [enzyme_required] энзима, и вы получите сыр.") + . += span_warning("Помните, что энзим лишь катализатор, поэтому верните его потом на место!") /obj/item/reagent_containers/condiment/flour - name = "flour sack" - desc = "A big bag of flour. Good for baking!" + name = "упаковка муки" + 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] муки, [dough_water_required] воды подойдет для обычного кусочка теста. Его можно потом раскатать в плоскую лепешку.") + . += span_notice("[cakebatter_flour_required] муки, [cakebatter_eggyolk_required] яичного желтка (или соевого молока), [cakebatter_sugar_required] сахара, чтобы сделать слоенное тесто. Из него выйдет отличный пирог!") /obj/item/reagent_containers/condiment/soymilk - name = "soy milk" - desc = "It's soy milk. White and nutritious goodness!" + name = "соевое молоко" + desc = "соя, божество прозрачное, но все еще питательное!" icon_state = "soymilk" inhand_icon_state = "carton" lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' @@ -226,8 +226,8 @@ fill_icon_thresholds = null /obj/item/reagent_containers/condiment/rice - name = "rice sack" - desc = "A big bag of rice. Good for cooking!" + name = "пачка риса" + desc = "Крупная упаковка с рисом. Идеальна для приготовления блюд!" icon_state = "rice" inhand_icon_state = "carton" lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' @@ -236,8 +236,8 @@ fill_icon_thresholds = null /obj/item/reagent_containers/condiment/cornmeal - name = "cornmeal box" - desc = "A big box of cornmeal. Great for southern style cooking." + name = "коробка кукурузной муки" + desc = "Крупная коробка с кукрзной мукой. Отличный выбор для приготовления южных блюд." icon_state = "cornmeal" inhand_icon_state = "carton" lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' @@ -246,114 +246,114 @@ fill_icon_thresholds = null /obj/item/reagent_containers/condiment/bbqsauce - name = "bbq sauce" - desc = "Hand wipes not included." + name = "соус барбекью" + 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." + name = "соевый соус" + 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." + name = "майонез" + 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." + name = "уксус" + 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." + name = "растительное масло" + 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." + name = "качественное масло" + 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." + name = "упаковка йогурта" + 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." + name = "ореховое масло" + 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." + name = "вишневое желе" + 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." + name = "мед" + desc = "Баночка приятного и тягучего меда." icon_state = "honey" list_reagents = list(/datum/reagent/consumable/honey = 50) fill_icon_thresholds = null /obj/item/reagent_containers/condiment/ketchup - name = "ketchup" + name = "кетчуп" // 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." + name = "вустерширский соус" + 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." + name = "\improper Приправа Рэд Бей" + 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." + name = "порошо карри" + 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." + name = "конценрат даси" + 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!" + name = "кокосовое молочко" + desc = "Это кокосовое молоко. Потрясно!" icon_state = "coconut_milk" inhand_icon_state = "carton" lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' @@ -362,8 +362,8 @@ fill_icon_thresholds = null /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." + name = "раствор заземления" + desc = "Безопасный для пищевых продуктов ионный раствор, предназначенный для нейтрализации загадочного «жидкого электричества», свойственного продуктам Sprout, образуя при контакте безвредную соль." icon_state = "grounding_solution" list_reagents = list(/datum/reagent/consumable/grounding_solution = 50) fill_icon_thresholds = null @@ -378,37 +378,36 @@ //technically condiment packs but they are non transparent /obj/item/reagent_containers/condiment/creamer - name = "coffee creamer pack" - desc = "Better not think about what they're making this from." + name = "пакетик сливок для кофе" + desc = "Лучше не думать о том, из чего это сделано." icon_state = "condi_creamer" volume = 5 list_reagents = list(/datum/reagent/consumable/creamer = 5) fill_icon_thresholds = null /obj/item/reagent_containers/condiment/chocolate - name = "chocolate sprinkle pack" - desc= "The amount of sugar thats already there wasn't enough for you?" + name = "пакетик шоколадной посыпки" + 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!" + name = "бутылка острого соуса" + 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." + name = "бутылка холодного соуса" + desc= "Оставляет язык онемевшим после пробы." icon_state = "coldsauce" list_reagents = list(/datum/reagent/consumable/frostoil = 50) //Food packs. To easily apply deadly toxi... delicious sauces to your food! /obj/item/reagent_containers/condiment/pack - name = "condiment pack" - desc = "A small plastic pack with condiments to put on your food." + name = "набор приправ" + desc = "Небольшой пластиковый пакет с приправами для вашей еды." icon_state = "condi_empty" volume = 10 amount_per_transfer_from_this = 10 @@ -418,19 +417,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" @@ -448,17 +447,17 @@ return /obj/item/reagent_containers/condiment/pack/interact_with_atom(atom/target, mob/living/user, list/modifiers) - //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("[src.name] открыли, но внутри пусто.")) 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("[src.name] вскрыли, но [target.name] уже не вмещает больше, и все просто стекает!")) 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("[src.name] открыли, и [target.name] наполняется.")) src.reagents.trans_to(target, amount_per_transfer_from_this, transferred_by = user) qdel(src) return ITEM_INTERACT_SUCCESS @@ -477,57 +476,57 @@ 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 - name = "ketchup pack" + name = "упаковка кетчупа" originalname = "ketchup" list_reagents = list(/datum/reagent/consumable/ketchup = 10) //Hot sauce /obj/item/reagent_containers/condiment/pack/hotsauce - name = "hotsauce pack" + name = "упаковска острого соуса" originalname = "hotsauce" list_reagents = list(/datum/reagent/consumable/capsaicin = 10) /obj/item/reagent_containers/condiment/pack/astrotame - name = "astrotame pack" + name = "пакетик астротейма" originalname = "astrotame" volume = 5 list_reagents = list(/datum/reagent/consumable/astrotame = 5) /obj/item/reagent_containers/condiment/pack/bbqsauce - name = "bbq sauce pack" + name = "пакетик BBQ соуса" originalname = "bbq sauce" list_reagents = list(/datum/reagent/consumable/bbqsauce = 10) /obj/item/reagent_containers/condiment/pack/creamer - name = "creamer pack" + name = "пакетик сливок" originalname = "creamer" volume = 5 list_reagents = list(/datum/reagent/consumable/cream = 5) /obj/item/reagent_containers/condiment/pack/sugar - name = "sugar pack" + name = "пакетик сахара" originalname = "sugar" volume = 5 list_reagents = list(/datum/reagent/consumable/sugar = 5) /obj/item/reagent_containers/condiment/pack/soysauce - name = "soy sauce pack" + name = "пакетик соевого соуса" originalname = "soy sauce" volume = 5 list_reagents = list(/datum/reagent/consumable/soysauce = 5) /obj/item/reagent_containers/condiment/pack/mayonnaise - name = "mayonnaise pack" + name = "пакетик майонеза" originalname = "mayonnaise" volume = 5 list_reagents = list(/datum/reagent/consumable/mayonnaise = 5)