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