├── po_ver.txt ├── .gitignore ├── anim ├── mods_button.zip └── text_sparkle.zip ├── images ├── inf_btn.tex ├── rlp_icon.tex ├── rus_group.tex ├── rus_wendy.tex ├── rus_wes.tex ├── rus_wiki.tex ├── text_bg.tex ├── vk_group.tex ├── rus_locked.tex ├── rus_mapgen.tex ├── rus_random.tex ├── rus_waxwell.tex ├── rus_webber.tex ├── rus_willow.tex ├── rus_wilson.tex ├── rus_woodie.tex ├── discord_button.tex ├── frontscreen_ru.tex ├── rlp_icon_beta.tex ├── rus_names_wes.tex ├── rus_names_wurt.tex ├── rus_names_wx78.tex ├── rus_wathgrithr.tex ├── rus_wolfgang.tex ├── tradescreen_ru.tex ├── warning_text.tex ├── rus_button_icon.tex ├── rus_names_random.tex ├── rus_names_walter.tex ├── rus_names_wanda.tex ├── rus_names_warly.tex ├── rus_names_webber.tex ├── rus_names_wendy.tex ├── rus_names_willow.tex ├── rus_names_wilson.tex ├── rus_names_winona.tex ├── rus_names_wonkey.tex ├── rus_names_woodie.tex ├── rus_names_wortox.tex ├── rus_wickerbottom.tex ├── rus_names_gold_wes.tex ├── rus_names_gold_wurt.tex ├── rus_names_gold_wx78.tex ├── rus_names_waxwell.tex ├── rus_names_wolfgang.tex ├── rus_names_wormwood.tex ├── rus_names_gold_random.tex ├── rus_names_gold_walter.tex ├── rus_names_gold_wanda.tex ├── rus_names_gold_warly.tex ├── rus_names_gold_webber.tex ├── rus_names_gold_wendy.tex ├── rus_names_gold_willow.tex ├── rus_names_gold_wilson.tex ├── rus_names_gold_winona.tex ├── rus_names_gold_wonkey.tex ├── rus_names_gold_woodie.tex ├── rus_names_gold_wortox.tex ├── rus_names_wathgrithr.tex ├── rus_names_gold_waxwell.tex ├── rus_names_gold_wolfgang.tex ├── rus_names_gold_wormwood.tex ├── rus_names_wickerbottom.tex ├── tradescreen_overflow_ru.tex ├── rus_names_gold_wathgrithr.tex ├── rus_names_gold_wickerbottom.tex ├── rus_locked.xml ├── rus_random.xml ├── rus_wes.xml ├── rus_webber.xml ├── rus_wendy.xml ├── rus_willow.xml ├── rus_wilson.xml ├── rus_woodie.xml ├── rus_waxwell.xml ├── inf_btn.xml ├── rus_group.xml ├── rus_wiki.xml ├── rus_wolfgang.xml ├── text_bg.xml ├── vk_group.xml ├── rus_wathgrithr.xml ├── rus_wickerbottom.xml ├── rus_names_wes.xml ├── rus_names_wurt.xml ├── rus_names_wx78.xml ├── warning_text.xml ├── rus_names_random.xml ├── rus_names_walter.xml ├── rus_names_wanda.xml ├── rus_names_warly.xml ├── rus_names_webber.xml ├── rus_names_wendy.xml ├── rus_names_willow.xml ├── rus_names_wilson.xml ├── rus_names_winona.xml ├── rus_names_wonkey.xml ├── rus_names_woodie.xml ├── rus_names_wortox.xml ├── rlp_icon.xml ├── rus_names_gold_wes.xml ├── rus_names_gold_wurt.xml ├── rus_names_gold_wx78.xml ├── rus_names_waxwell.xml ├── rus_names_gold_random.xml ├── rus_names_gold_walter.xml ├── rus_names_gold_wanda.xml ├── rus_names_gold_warly.xml ├── rus_names_gold_webber.xml ├── rus_names_gold_wendy.xml ├── rus_names_gold_willow.xml ├── rus_names_gold_wilson.xml ├── rus_names_gold_winona.xml ├── rus_names_gold_wonkey.xml ├── rus_names_gold_woodie.xml ├── rus_names_gold_wortox.xml ├── rus_names_wolfgang.xml ├── rus_names_wormwood.xml ├── discord_button.xml ├── rus_names_gold_waxwell.xml ├── rus_names_wathgrithr.xml ├── rus_names_gold_wolfgang.xml ├── rus_names_gold_wormwood.xml ├── rus_names_wickerbottom.xml ├── rus_button_icon.xml ├── rus_names_gold_wathgrithr.xml ├── rus_names_gold_wickerbottom.xml ├── rlp_icon_beta.xml ├── tradescreen_ru.xml ├── tradescreen_overflow_ru.xml ├── frontscreen_ru.xml └── rus_mapgen.xml ├── fonts ├── bellefair50__ru.zip ├── buttonfont__ru.zip ├── opensans50__ru.zip ├── spirequal__ru.zip ├── stint-ucr20__ru.zip ├── stint-ucr50__ru.zip ├── talkingfont__ru.zip ├── hammerhead50__ru.zip ├── belisaplumilla50__ru.zip ├── old_bellefair50__ru.zip ├── spirequal_small__ru.zip ├── belisaplumilla100__ru.zip ├── spirequal_outline__ru.zip ├── talkingfont_hermit__ru.zip ├── bellefair_outline50__ru.zip ├── talkingfont_wormwood__ru.zip ├── old_bellefair_outline50__ru.zip └── spirequal_outline_small__ru.zip ├── raw_exported ├── modicon.psd ├── rlp_icon.png ├── rlp_icon_beta.png ├── mods_button │ ├── d │ │ ├── D-0.png │ │ └── D-1.png │ ├── m │ │ ├── M-0.png │ │ └── M-1.png │ ├── o │ │ ├── O-0.png │ │ └── O-1.png │ └── bg │ │ └── BG-0.png └── text_sparkle │ ├── sparkle │ └── sparkle-0.png │ └── text_sparkle.scml ├── scripts ├── prefabs │ ├── rlp_fonts.lua │ └── russian_assets.lua ├── ver_checker.lua ├── widgets │ ├── vk_button.lua │ ├── wiki_button.lua │ ├── group_button.lua │ ├── discord_btn.lua │ ├── rlp_button.lua │ ├── update_checker.lua │ └── mod_settings_button.lua ├── rlp_debug.lua ├── screens │ └── update_screen.lua ├── po_updater.lua ├── mod_rusification │ ├── mods │ │ ├── beefalo_milk.lua │ │ ├── archery_mod.lua │ │ ├── too_many_items.lua │ │ ├── structures_and_more.lua │ │ ├── steampunk.lua │ │ ├── waiter_101.lua │ │ ├── defaults_item_pack.lua │ │ └── pickle_it.lua │ └── transl │ │ ├── hawaiian.lua │ │ └── loving_evil.lua ├── rlp_pugna_speech.lua ├── rlp_fonts.lua ├── rlp_mod_support.lua ├── mod_translator.lua ├── history.txt ├── rlp_settings.lua └── rlp_speech.lua ├── modinfo.lua └── modmain.lua /po_ver.txt: -------------------------------------------------------------------------------- 1 | 3.6.6 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | rlp_names.txt 2 | exported/** 3 | -------------------------------------------------------------------------------- /anim/mods_button.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/anim/mods_button.zip -------------------------------------------------------------------------------- /images/inf_btn.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/inf_btn.tex -------------------------------------------------------------------------------- /images/rlp_icon.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rlp_icon.tex -------------------------------------------------------------------------------- /images/rus_group.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_group.tex -------------------------------------------------------------------------------- /images/rus_wendy.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_wendy.tex -------------------------------------------------------------------------------- /images/rus_wes.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_wes.tex -------------------------------------------------------------------------------- /images/rus_wiki.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_wiki.tex -------------------------------------------------------------------------------- /images/text_bg.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/text_bg.tex -------------------------------------------------------------------------------- /images/vk_group.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/vk_group.tex -------------------------------------------------------------------------------- /anim/text_sparkle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/anim/text_sparkle.zip -------------------------------------------------------------------------------- /images/rus_locked.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_locked.tex -------------------------------------------------------------------------------- /images/rus_mapgen.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_mapgen.tex -------------------------------------------------------------------------------- /images/rus_random.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_random.tex -------------------------------------------------------------------------------- /images/rus_waxwell.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_waxwell.tex -------------------------------------------------------------------------------- /images/rus_webber.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_webber.tex -------------------------------------------------------------------------------- /images/rus_willow.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_willow.tex -------------------------------------------------------------------------------- /images/rus_wilson.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_wilson.tex -------------------------------------------------------------------------------- /images/rus_woodie.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_woodie.tex -------------------------------------------------------------------------------- /fonts/bellefair50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/bellefair50__ru.zip -------------------------------------------------------------------------------- /fonts/buttonfont__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/buttonfont__ru.zip -------------------------------------------------------------------------------- /fonts/opensans50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/opensans50__ru.zip -------------------------------------------------------------------------------- /fonts/spirequal__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/spirequal__ru.zip -------------------------------------------------------------------------------- /fonts/stint-ucr20__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/stint-ucr20__ru.zip -------------------------------------------------------------------------------- /fonts/stint-ucr50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/stint-ucr50__ru.zip -------------------------------------------------------------------------------- /fonts/talkingfont__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/talkingfont__ru.zip -------------------------------------------------------------------------------- /images/discord_button.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/discord_button.tex -------------------------------------------------------------------------------- /images/frontscreen_ru.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/frontscreen_ru.tex -------------------------------------------------------------------------------- /images/rlp_icon_beta.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rlp_icon_beta.tex -------------------------------------------------------------------------------- /images/rus_names_wes.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wes.tex -------------------------------------------------------------------------------- /images/rus_names_wurt.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wurt.tex -------------------------------------------------------------------------------- /images/rus_names_wx78.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wx78.tex -------------------------------------------------------------------------------- /images/rus_wathgrithr.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_wathgrithr.tex -------------------------------------------------------------------------------- /images/rus_wolfgang.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_wolfgang.tex -------------------------------------------------------------------------------- /images/tradescreen_ru.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/tradescreen_ru.tex -------------------------------------------------------------------------------- /images/warning_text.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/warning_text.tex -------------------------------------------------------------------------------- /raw_exported/modicon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/modicon.psd -------------------------------------------------------------------------------- /raw_exported/rlp_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/rlp_icon.png -------------------------------------------------------------------------------- /fonts/hammerhead50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/hammerhead50__ru.zip -------------------------------------------------------------------------------- /images/rus_button_icon.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_button_icon.tex -------------------------------------------------------------------------------- /images/rus_names_random.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_random.tex -------------------------------------------------------------------------------- /images/rus_names_walter.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_walter.tex -------------------------------------------------------------------------------- /images/rus_names_wanda.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wanda.tex -------------------------------------------------------------------------------- /images/rus_names_warly.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_warly.tex -------------------------------------------------------------------------------- /images/rus_names_webber.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_webber.tex -------------------------------------------------------------------------------- /images/rus_names_wendy.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wendy.tex -------------------------------------------------------------------------------- /images/rus_names_willow.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_willow.tex -------------------------------------------------------------------------------- /images/rus_names_wilson.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wilson.tex -------------------------------------------------------------------------------- /images/rus_names_winona.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_winona.tex -------------------------------------------------------------------------------- /images/rus_names_wonkey.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wonkey.tex -------------------------------------------------------------------------------- /images/rus_names_woodie.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_woodie.tex -------------------------------------------------------------------------------- /images/rus_names_wortox.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wortox.tex -------------------------------------------------------------------------------- /images/rus_wickerbottom.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_wickerbottom.tex -------------------------------------------------------------------------------- /fonts/belisaplumilla50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/belisaplumilla50__ru.zip -------------------------------------------------------------------------------- /fonts/old_bellefair50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/old_bellefair50__ru.zip -------------------------------------------------------------------------------- /fonts/spirequal_small__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/spirequal_small__ru.zip -------------------------------------------------------------------------------- /images/rus_names_gold_wes.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wes.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wurt.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wurt.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wx78.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wx78.tex -------------------------------------------------------------------------------- /images/rus_names_waxwell.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_waxwell.tex -------------------------------------------------------------------------------- /images/rus_names_wolfgang.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wolfgang.tex -------------------------------------------------------------------------------- /images/rus_names_wormwood.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wormwood.tex -------------------------------------------------------------------------------- /raw_exported/rlp_icon_beta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/rlp_icon_beta.png -------------------------------------------------------------------------------- /fonts/belisaplumilla100__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/belisaplumilla100__ru.zip -------------------------------------------------------------------------------- /fonts/spirequal_outline__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/spirequal_outline__ru.zip -------------------------------------------------------------------------------- /fonts/talkingfont_hermit__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/talkingfont_hermit__ru.zip -------------------------------------------------------------------------------- /images/rus_names_gold_random.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_random.tex -------------------------------------------------------------------------------- /images/rus_names_gold_walter.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_walter.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wanda.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wanda.tex -------------------------------------------------------------------------------- /images/rus_names_gold_warly.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_warly.tex -------------------------------------------------------------------------------- /images/rus_names_gold_webber.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_webber.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wendy.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wendy.tex -------------------------------------------------------------------------------- /images/rus_names_gold_willow.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_willow.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wilson.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wilson.tex -------------------------------------------------------------------------------- /images/rus_names_gold_winona.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_winona.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wonkey.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wonkey.tex -------------------------------------------------------------------------------- /images/rus_names_gold_woodie.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_woodie.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wortox.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wortox.tex -------------------------------------------------------------------------------- /images/rus_names_wathgrithr.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wathgrithr.tex -------------------------------------------------------------------------------- /fonts/bellefair_outline50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/bellefair_outline50__ru.zip -------------------------------------------------------------------------------- /fonts/talkingfont_wormwood__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/talkingfont_wormwood__ru.zip -------------------------------------------------------------------------------- /images/rus_names_gold_waxwell.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_waxwell.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wolfgang.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wolfgang.tex -------------------------------------------------------------------------------- /images/rus_names_gold_wormwood.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wormwood.tex -------------------------------------------------------------------------------- /images/rus_names_wickerbottom.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_wickerbottom.tex -------------------------------------------------------------------------------- /images/tradescreen_overflow_ru.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/tradescreen_overflow_ru.tex -------------------------------------------------------------------------------- /raw_exported/mods_button/d/D-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/mods_button/d/D-0.png -------------------------------------------------------------------------------- /raw_exported/mods_button/d/D-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/mods_button/d/D-1.png -------------------------------------------------------------------------------- /raw_exported/mods_button/m/M-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/mods_button/m/M-0.png -------------------------------------------------------------------------------- /raw_exported/mods_button/m/M-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/mods_button/m/M-1.png -------------------------------------------------------------------------------- /raw_exported/mods_button/o/O-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/mods_button/o/O-0.png -------------------------------------------------------------------------------- /raw_exported/mods_button/o/O-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/mods_button/o/O-1.png -------------------------------------------------------------------------------- /fonts/old_bellefair_outline50__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/old_bellefair_outline50__ru.zip -------------------------------------------------------------------------------- /fonts/spirequal_outline_small__ru.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/fonts/spirequal_outline_small__ru.zip -------------------------------------------------------------------------------- /images/rus_names_gold_wathgrithr.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wathgrithr.tex -------------------------------------------------------------------------------- /raw_exported/mods_button/bg/BG-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/mods_button/bg/BG-0.png -------------------------------------------------------------------------------- /images/rus_names_gold_wickerbottom.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/images/rus_names_gold_wickerbottom.tex -------------------------------------------------------------------------------- /scripts/prefabs/rlp_fonts.lua: -------------------------------------------------------------------------------- 1 | return function(assets) 2 | return Prefab("RLP_fonts", function() return CreateEntity() end, assets) 3 | end 4 | -------------------------------------------------------------------------------- /raw_exported/text_sparkle/sparkle/sparkle-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CunningFox146/RLP/HEAD/raw_exported/text_sparkle/sparkle/sparkle-0.png -------------------------------------------------------------------------------- /images/rus_locked.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_random.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_wes.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_webber.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_wendy.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_willow.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_wilson.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_woodie.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_waxwell.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/inf_btn.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_group.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_wiki.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_wolfgang.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/text_bg.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/vk_group.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_wathgrithr.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_wickerbottom.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wes.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wurt.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wx78.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/warning_text.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_random.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_walter.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wanda.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_warly.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_webber.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wendy.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_willow.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wilson.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_winona.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wonkey.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_woodie.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wortox.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rlp_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/rus_names_gold_wes.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wurt.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wx78.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_waxwell.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_random.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_walter.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wanda.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_warly.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_webber.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wendy.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_willow.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wilson.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_winona.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wonkey.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_woodie.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wortox.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wolfgang.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wormwood.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/discord_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/rus_names_gold_waxwell.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wathgrithr.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wolfgang.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wormwood.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_wickerbottom.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_button_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/rus_names_gold_wathgrithr.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rus_names_gold_wickerbottom.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/rlp_icon_beta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /images/tradescreen_ru.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /images/tradescreen_overflow_ru.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /images/frontscreen_ru.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /images/rus_mapgen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /scripts/ver_checker.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | local VerChecker = { 3 | URL = "https://raw.githubusercontent.com/CunningFox146/RLP/"..(t.IsBeta and "wip" or "master").."/modinfo.lua", 4 | } 5 | 6 | -- local VerChecker = require("ver_checker") VerChecker:GetVersion(function(data) print(data) end) 7 | function VerChecker:LoadVersion(fn) 8 | print("[RLP VerChecker] Downloading mod version") 9 | TheSim:QueryServer(self.URL, function (result, isSuccessful, resultCode) 10 | if resultCode ~= 200 or not isSuccessful or #result < 1 then 11 | print("[RLP VerChecker]: Server Error", resultCode, isSuccessful) 12 | return 13 | end 14 | 15 | local anim = (result:match("version = [%S]+")) 16 | self.data = anim and (anim:gsub("version = ", "")):sub(2, -2) 17 | 18 | if fn then 19 | fn(self.data) 20 | end 21 | print("[RLP VerChecker] Done!") 22 | end, "GET") 23 | end 24 | 25 | function VerChecker:GetVersion(fn) 26 | if self.data then 27 | fn(self.data) 28 | end 29 | 30 | -- Продолжаем проверку. Вдруг мы обновились за это время? 31 | self:LoadVersion(not self.data and fn) 32 | end 33 | 34 | return VerChecker 35 | -------------------------------------------------------------------------------- /scripts/widgets/vk_button.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | 3 | local Widget = require "widgets/widget" 4 | local ImageButton = require "widgets/imagebutton" 5 | 6 | local VKButton = Class(Widget, function(self) 7 | Widget._ctor(self, "RLPVKButton") 8 | 9 | self.btn = self:AddChild(ImageButton("images/vk_group.xml", "vk_group.tex", nil, nil, nil, nil, {1,1}, {0,0})) 10 | self.btn.image:SetPosition(-12, 0) 11 | 12 | self.btn.highlight = self.btn:AddChild(Image("images/frontend.xml", "button_square_highlight.tex")) 13 | self.btn.highlight:SetScale(1.5) 14 | self.btn.highlight:SetClickable(false) 15 | self.btn.highlight:Hide() 16 | 17 | self.btn:SetText("Группа\nВКонтакте") 18 | self.btn:SetTextSize(25) 19 | self.btn.text:SetPosition(-12, -80) 20 | self.btn:SetFont(CHATFONT) 21 | self.btn:SetTextColour({.7,.7,.7,1}) 22 | self.btn:SetTextFocusColour({1,1,1,1}) 23 | self.btn.scale_on_focus = false 24 | 25 | self.btn:SetOnClick(function() 26 | VisitURL("https://vk.com/kleientertainment") 27 | end) 28 | 29 | self.btn:SetOnGainFocus(function() 30 | if self.btn:IsEnabled() and not self.btn:IsSelected() and TheFrontEnd:GetFadeLevel() <= 0 then 31 | self.btn.highlight:Show() 32 | end 33 | end) 34 | 35 | self.btn:SetOnLoseFocus(function() 36 | self.btn.highlight:Hide() 37 | end) 38 | end) 39 | 40 | return VKButton 41 | -------------------------------------------------------------------------------- /scripts/widgets/wiki_button.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | 3 | local Widget = require "widgets/widget" 4 | local ImageButton = require "widgets/imagebutton" 5 | 6 | local WikiButton = Class(Widget, function(self) 7 | Widget._ctor(self, "RLPWikiButton") 8 | 9 | self.btn = self:AddChild(ImageButton("images/rus_wiki.xml", "rus_wiki.tex", nil, nil, nil, nil, {1,1}, {0,0})) 10 | self.btn.image:SetPosition(-12, 0) 11 | 12 | self.btn.highlight = self.btn:AddChild(Image("images/frontend.xml", "button_square_highlight.tex")) 13 | self.btn.highlight:SetScale(1.5) 14 | self.btn.highlight:SetClickable(false) 15 | self.btn.highlight:Hide() 16 | 17 | self.btn:SetText("Don't Starve\nВики") 18 | self.btn:SetTextSize(25) 19 | self.btn.text:SetPosition(-12, -80) 20 | self.btn:SetFont(CHATFONT) 21 | self.btn:SetTextColour({.7,.7,.7,1}) 22 | self.btn:SetTextFocusColour({1,1,1,1}) 23 | self.btn.scale_on_focus = false 24 | 25 | self.btn:SetOnClick(function() 26 | VisitURL("http://ru.dont-starve.wikia.com") 27 | end) 28 | 29 | self.btn:SetOnGainFocus(function() 30 | if self.btn:IsEnabled() and not self.btn:IsSelected() and TheFrontEnd:GetFadeLevel() <= 0 then 31 | self.btn.highlight:Show() 32 | end 33 | end) 34 | 35 | self.btn:SetOnLoseFocus(function() 36 | self.btn.highlight:Hide() 37 | end) 38 | end) 39 | 40 | return WikiButton 41 | -------------------------------------------------------------------------------- /scripts/widgets/group_button.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | 3 | local Widget = require "widgets/widget" 4 | local ImageButton = require "widgets/imagebutton" 5 | 6 | local GroupButton = Class(Widget, function(self) 7 | Widget._ctor(self, "RLPGroupButton") 8 | 9 | self.btn = self:AddChild(ImageButton("images/rus_group.xml", "rus_group.tex", nil, nil, nil, nil, {1,1}, {0,0})) 10 | self.btn.image:SetPosition(-12, 0) 11 | 12 | self.btn.highlight = self.btn:AddChild(Image("images/frontend.xml", "button_square_highlight.tex")) 13 | self.btn.highlight:SetScale(1.5) 14 | self.btn.highlight:SetClickable(false) 15 | self.btn.highlight:Hide() 16 | 17 | self.btn:SetText("Группа\nSteam") 18 | self.btn:SetTextSize(25) 19 | self.btn.text:SetPosition(-12, -80) 20 | self.btn:SetFont(CHATFONT) 21 | self.btn:SetTextColour({.7,.7,.7,1}) 22 | self.btn:SetTextFocusColour({1,1,1,1}) 23 | self.btn.scale_on_focus = false 24 | 25 | self.btn:SetOnClick(function() 26 | VisitURL("http://steamcommunity.com/groups/DSTRUS") 27 | end) 28 | 29 | self.btn:SetOnGainFocus(function() 30 | if self.btn:IsEnabled() and not self.btn:IsSelected() and TheFrontEnd:GetFadeLevel() <= 0 then 31 | self.btn.highlight:Show() 32 | end 33 | end) 34 | 35 | self.btn:SetOnLoseFocus(function() 36 | self.btn.highlight:Hide() 37 | end) 38 | end) 39 | 40 | return GroupButton 41 | -------------------------------------------------------------------------------- /scripts/widgets/discord_btn.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | 3 | local Widget = require "widgets/widget" 4 | local ImageButton = require "widgets/imagebutton" 5 | local UpdateScreen = require "screens/update_screen" 6 | 7 | local EyeButton = Class(Widget, function(self) 8 | Widget._ctor(self, "RLPEyeButton") 9 | 10 | self.btn = self:AddChild(ImageButton("images/discord_button.xml", "discord_button.tex", nil, nil, nil, nil, {1,1}, {0,0})) 11 | self.btn.image:SetPosition(-12, 0) 12 | 13 | self.btn.highlight = self.btn:AddChild(Image("images/frontend.xml", "button_square_highlight.tex")) 14 | self.btn.highlight:SetScale(1.5) 15 | self.btn.highlight:SetClickable(false) 16 | self.btn.highlight:Hide() 17 | 18 | self.btn:SetText("Наш\nDiscord сервер") 19 | self.btn:SetTextSize(25) 20 | self.btn.text:SetPosition(-12, -80) 21 | self.btn:SetFont(CHATFONT) 22 | self.btn:SetTextColour({.7,.7,.7,1}) 23 | self.btn:SetTextFocusColour({1,1,1,1}) 24 | self.btn.scale_on_focus = false 25 | 26 | self.btn:SetOnClick(function() 27 | VisitURL("https://discord.gg/eHEgH3xSF8") 28 | end) 29 | 30 | self.btn:SetOnGainFocus(function() 31 | if self.btn:IsEnabled() and not self.btn:IsSelected() and TheFrontEnd:GetFadeLevel() <= 0 then 32 | self.btn.highlight:Show() 33 | end 34 | end) 35 | 36 | self.btn:SetOnLoseFocus(function() 37 | self.btn.highlight:Hide() 38 | end) 39 | end) 40 | 41 | return EyeButton 42 | -------------------------------------------------------------------------------- /scripts/rlp_debug.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | local rebuildname = t.rebuildname 3 | 4 | function testname(name, key, rtrn) 5 | local str = "" 6 | local function add(txt) str = str .. txt .. "\n" end 7 | if name and (not key) and type(name)=="string" and rawget(STRINGS.NAMES, name:upper()) then key=name:upper() name=STRINGS.NAMES[key] end 8 | 9 | add("Идти к "..rebuildname(name,"WALKTO", key)) 10 | add("Осмотреть "..rebuildname(name,"DEFAULTACTION", key)) 11 | if key then 12 | add("Был убит "..rebuildname(name,"KILL",key)) 13 | end 14 | add("Сменить скин у "..rebuildname(name,"reskin", key)) 15 | 16 | if rtrn then 17 | return str 18 | end 19 | print(str) 20 | end 21 | 22 | --Сохраняет в файле fn все имена с действием, указанным в параметре action) 23 | function debugnames(name, mode) 24 | local filename = t.StorePath..(name or "rlp_names")..".txt" 25 | local str1,str2 26 | local names={} 27 | local f=assert(io.open(filename, "w")) 28 | for k, v in pairs(STRINGS.NAMES) do 29 | if type(v) == "table" and not v[1] then 30 | print("skipped", k) 31 | else 32 | f:write(string.format((mode and "#. STRINGS.NAMES.%s\n" or "\n*********************************\nПеревод %s (%s)\n"), mode and k:upper() or k, type(v) == "table" and v[1] or v)) 33 | f:write(testname(k, nil, true)) 34 | end 35 | end 36 | f:close() 37 | end 38 | 39 | function DumpModPhrases() printwrap("t.mod_phrases", t.mod_phrases) end -------------------------------------------------------------------------------- /scripts/widgets/rlp_button.lua: -------------------------------------------------------------------------------- 1 | local Widget = require "widgets/widget" 2 | local ImageButton = require "widgets/imagebutton" 3 | 4 | local LanguageOptions = require "screens/LanguageOptions" 5 | 6 | local OFFSET = -5.5 7 | 8 | local RLPButton = Class(Widget, function(self) 9 | Widget._ctor(self, "RLPButton") 10 | 11 | self.btn = self:AddChild(ImageButton("images/global_redux.xml", 12 | "button_carny_square_normal.tex", 13 | "button_carny_square_hover.tex", 14 | "button_carny_square_disabled.tex", 15 | "button_carny_square_down.tex")) 16 | 17 | self.btn:SetFocusScale(1.05, 1.05, 1.05) 18 | self.btn:SetNormalScale(.7, .7, 1) 19 | 20 | self.btn.icon = self.btn:AddChild(Image("images/button_icons.xml", "mods.tex", "mods.tex")) 21 | self.btn.icon:SetPosition(-5,4) 22 | self.btn.icon:SetScale(.16) 23 | self.btn.icon:SetClickable(false) 24 | 25 | self.btn:SetTextSize(25) 26 | self.btn:SetText("Настроить\nрусификатор.", true) 27 | self.btn.text:SetPosition(-3, -34 + OFFSET) 28 | self.btn.text_shadow:SetPosition(-5, -36 + OFFSET) 29 | self.btn:SetFont(NEWFONT_OUTLINE) 30 | self.btn:SetTextColour(UICOLOURS.GOLD) 31 | self.btn:SetTextFocusColour(UICOLOURS.GOLD) 32 | 33 | self.btn:SetOnClick(function() 34 | TheFrontEnd:GetSound():KillSound("FEMusic") 35 | TheFrontEnd:GetSound():KillSound("FEPortalSFX") 36 | TheFrontEnd:GetSound():PlaySound("dontstarve/music/gramaphone_ragtime", "rlp_ragtime") 37 | 38 | TheFrontEnd:FadeToScreen(TheFrontEnd:GetActiveScreen(), function() return LanguageOptions() end) 39 | end) 40 | end) 41 | 42 | return RLPButton 43 | -------------------------------------------------------------------------------- /modinfo.lua: -------------------------------------------------------------------------------- 1 | name = "Russification Pack for DST" 2 | version = "3.6.6" 3 | 4 | local desc = { 5 | en = "\nThe best russian localization at the moment. Source code was taken from the Russian Language Pack. Special thanks to Some1 and Alevastor!\n\nVersion: "..version, 6 | ru = "\nЛучший русификатор на данный момент. Код для базы был взят из мода Russian Language Pack. Огромное спасибо Some1'у и Alevastor'у за проделанную работу!\n\nНовый логотип был сделан Globalastick'ом.\n\t\nВерсия: "..version 7 | } 8 | 9 | language = language or "en" 10 | description = desc[language] or desc["en"] 11 | 12 | name = language == "ru" and "Русификатор для DST" or "Russification Pack for DST" 13 | 14 | folder_name = folder_name or "workshop-" 15 | is_beta = version:find("beta") 16 | git_build = not folder_name:find("workshop-") 17 | 18 | if is_beta then 19 | name = (language == "ru" and "[Бета]" or "[Beta]") .. name 20 | end 21 | 22 | if git_build then 23 | name = name.." (GitHub "..(language == "ru" and "Версия" or "Version")..")" 24 | description = description.."\n\n" .. (language == "ru" and "Не забывайте обновлять мод вручную!" or "Don't forget to update RLP manually!") 25 | end 26 | 27 | author = "Cunning fox, 何も, FruitShake, stew, F0xAn, MrM" --Макс. 67 символов 28 | 29 | forumthread = "" 30 | 31 | api_version = 10 32 | 33 | local icon_name = is_beta and "rlp_icon_beta" or "rlp_icon" 34 | icon_atlas = "images/"..icon_name..".xml" 35 | icon = icon_name..".tex" 36 | 37 | priority = 2023 38 | 39 | dont_starve_compatible = false 40 | dst_compatible = true 41 | 42 | client_only_mod = true 43 | 44 | forge_compatible = true 45 | gorge_compatible = true 46 | -------------------------------------------------------------------------------- /scripts/widgets/update_checker.lua: -------------------------------------------------------------------------------- 1 | local Widget = require "widgets/widget" 2 | local Text = require "widgets/text" 3 | local TEMPLATES = require "widgets/redux/templates" 4 | local ModsScreen = require "screens/redux/modsscreen" 5 | 6 | local t = mods.RussianLanguagePack 7 | 8 | local COLOUR_RED = {255/255, 25/255, 0, 1} 9 | 10 | local UpdateChecker = Class(Widget, function(self) 11 | Widget._ctor(self, "UpdateChecker") 12 | 13 | self.bg = self:AddChild(TEMPLATES.RectangleWindow(175, 250, "Внимание!", 14 | { 15 | { text = "Обновить!", cb = function() 16 | if not t.IsLive then 17 | VisitURL(t.Repository) 18 | else 19 | TheFrontEnd:FadeToScreen(TheFrontEnd:GetActiveScreen(), function() return ModsScreen() end) 20 | end 21 | end}, 22 | }, 23 | nil, "Вам нужно обновить русификатор! Последняя версия:")) 24 | 25 | local r, g, b = unpack(UICOLOURS.BROWN_DARK) 26 | self.bg:SetBackgroundTint(r, g, b, 1) 27 | 28 | if self.bg.actions then 29 | self.bg.actions:SetPosition(0, 35) 30 | end 31 | 32 | if self.bg.body then 33 | self.bg.body:SetPosition(0, 25) 34 | end 35 | 36 | self.last_ver_text = self.bg:AddChild(Text(HEADERFONT, 50)) 37 | self.last_ver_text:SetRegionSize(185, 200) 38 | self.last_ver_text:SetPosition(0, -60) 39 | 40 | self:Hide() 41 | 42 | self:SyncVersion() 43 | end) 44 | 45 | function UpdateChecker:SyncVersion() 46 | t.VerChecker:GetVersion(function(ver) 47 | if ver and t.modinfo.version ~= ver then 48 | self.last_ver_text:SetString(t.IsBeta and ver:gsub("_beta", "") or ver) 49 | self.last_ver_text:SetColour(COLOUR_RED) 50 | 51 | self:Show() 52 | self.bg:MoveTo(Vector3(500, 0, 0), Vector3(0, 0, 0), .5) 53 | end 54 | end) 55 | end 56 | 57 | 58 | return UpdateChecker -------------------------------------------------------------------------------- /modmain.lua: -------------------------------------------------------------------------------- 1 | env._G = GLOBAL 2 | 3 | mods = _G.rawget(_G, "mods") 4 | if not mods then 5 | mods = {} 6 | _G.rawset(_G, "mods", mods) 7 | end 8 | _G.mods = mods 9 | 10 | PrefabFiles = { 11 | "russian_assets" 12 | } 13 | 14 | local IsBeta = modinfo.is_beta 15 | local IsLive = MODROOT:find("workshop-") ~= nil 16 | local SteamID = IsBeta and "2286791724" or "1240565842" 17 | 18 | mods.RussianLanguagePack = { 19 | modinfo = modinfo, 20 | 21 | StorePath = MODROOT, 22 | 23 | mod_phrases = {}, 24 | mod_announce = {}, 25 | 26 | debug = nil, 27 | print = function(...) if mods.RussianLanguagePack.debug then print("[RLP_DEBUG]", ...) end end, 28 | 29 | UpdateLogFileName = "updatelog.txt", 30 | MainPOfilename = "DST.po", 31 | ModsPOfilename = "MODS.po", 32 | TranslationTypes = {Full = "1", FontsOnly = "0"}, 33 | ModTranslationTypes = {Enabled = "1", Disabled = "0"}, 34 | CurrentTranslationType = nil, 35 | IsModTranslEnabled = nil, 36 | SteamID = SteamID, 37 | Repository = "https://github.com/CunningFox146/RLP/tree/"..(IsBeta and "wip" or "master"), 38 | SteamURL = "http://steamcommunity.com/sharedfiles/filedetails/?id="..SteamID, 39 | DiscordURL = "https://discord.gg/eHEgH3xSF8", 40 | SelectedLanguage = "ru", 41 | 42 | --Склонения 43 | AdjectiveCaseTags = { 44 | nominative = "nom", --Именительный Кто/что 45 | accusative = "acc", --Винительный Кого/что 46 | dative = "dat", --Дательный Кому/чему 47 | ablative = "abl", --Творительный Кем/чем 48 | genitive = "gen", --Родительный Кого/чего 49 | vocative = "voc", --Звательный 50 | locative = "loc", --Предложный О ком/о чём 51 | instrumental = "ins"--unused 52 | }, 53 | DefaultActionCase = "accusative", 54 | 55 | IsBeta = IsBeta, 56 | IsLive = IsLive, 57 | } 58 | 59 | print("About to load RLP ver. ", modinfo.version) 60 | 61 | modimport("scripts/rlp_main.lua") 62 | -------------------------------------------------------------------------------- /raw_exported/text_sparkle/text_sparkle.scml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /scripts/screens/update_screen.lua: -------------------------------------------------------------------------------- 1 | local GenericWaitingPopup = require "screens/redux/genericwaitingpopup" 2 | local PopupDialogScreen = require "screens/redux/popupdialog" 3 | 4 | local UpdateScreen = Class(GenericWaitingPopup, function(self) 5 | GenericWaitingPopup._ctor(self, "UpdateScreen", "Скачивание обновления") 6 | 7 | if POUpdater:IsDisabled() then 8 | self.inst:DoTaskInTime(0, function() 9 | TheFrontEnd:PopScreen(self) 10 | TheFrontEnd:PushScreen(PopupDialogScreen("Обновление невозможно", 11 | "Вы находитесь на GitHub версии. Пожалуйста, обновите мод вручную, или используйте версию из воркшопа.", 12 | { 13 | {text="Понятно", cb = function() 14 | TheFrontEnd:PopScreen() 15 | end}, 16 | } 17 | )) 18 | end) 19 | else 20 | self.dialog.title:SetString("Проверка версии") 21 | 22 | POUpdater:ShouldUpdate(function(val) 23 | if val then 24 | self.dialog.title:SetString("Скачивание обновления") 25 | 26 | local function OnUpdateDone(_, updated) 27 | self.inst:RemoveEventCallback("rlp_updated", OnUpdateDone, TheGlobalInstance) 28 | 29 | TheFrontEnd:PopScreen(self) 30 | TheFrontEnd:PushScreen(PopupDialogScreen("Обновление завершено", updated and 31 | "Перевод успешно загружен. Для того, чтобы изменения вступили в силу, необходимо перезапустить игру." or 32 | "Не удалось обновить перевод. Перезапустите игру и попробуйте еще раз.", 33 | { 34 | {text="Продолжить", cb = function() 35 | if updated then 36 | SimReset() 37 | end 38 | TheFrontEnd:PopScreen() 39 | end}, 40 | } 41 | )) 42 | end 43 | 44 | self.inst:ListenForEvent("rlp_updated", OnUpdateDone, TheGlobalInstance) 45 | POUpdater:StartUpdating(true) 46 | else 47 | TheFrontEnd:PopScreen(self) 48 | TheFrontEnd:PushScreen(PopupDialogScreen("Перевод уже обновлен", 49 | "У вас уже и так установлена последняя версия перевода", 50 | { 51 | {text="Ура!", cb = function() 52 | TheFrontEnd:PopScreen() 53 | end}, 54 | } 55 | )) 56 | end 57 | end) 58 | 59 | POUpdater:StartUpdating() 60 | end 61 | end) 62 | 63 | function UpdateScreen:OnCancel() 64 | self:Disable() 65 | POUpdater:CancelDownloading() 66 | TheFrontEnd:PopScreen() 67 | end 68 | 69 | return UpdateScreen 70 | -------------------------------------------------------------------------------- /scripts/po_updater.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | local LINK = "https://raw.githubusercontent.com/CunningFox146/RLP/".. (t.IsBeta and "wip" or "master") .. "/" 3 | local POUpdater = { 4 | VER_URL = LINK.."po_ver.txt", 5 | URL = LINK.."DST.po", 6 | 7 | git_ver = "0.0", 8 | 9 | disabled = true, 10 | } 11 | 12 | function POUpdater:StartUpdating(auto) 13 | if self.disabled then 14 | print("[PO Updater] Disabling updating. We're on git branch") 15 | return 16 | end 17 | 18 | POUpdater.iscanceled = nil 19 | TheSim:QueryServer(POUpdater.URL, function (result, isSuccessful, resultCode) 20 | if resultCode ~= 200 or not isSuccessful or #result < 1 or POUpdater.iscanceled then 21 | TheGlobalInstance:PushEvent("rlp_updated", false) 22 | return 23 | end 24 | 25 | local f = io.open(t.StorePath..t.MainPOfilename, "w") 26 | if f then 27 | f:write(result) 28 | f:close() 29 | print("[PO Updater] PO file was updated") 30 | else 31 | print("[PO Updater] Failed to write PO file") 32 | end 33 | 34 | local ver_f = io.open(t.StorePath.."po_ver.txt", "w") 35 | if ver_f then 36 | ver_f:write(self.git_ver) 37 | ver_f:close() 38 | else 39 | print("[PO Updater]: Error: failed to save PO version") 40 | end 41 | 42 | TheGlobalInstance:PushEvent("rlp_updated", f ~= nil) 43 | end, "GET") 44 | end 45 | 46 | function POUpdater:GetGitVer(fn) 47 | TheSim:QueryServer(self.VER_URL, function (result, isSuccessful, resultCode) 48 | if resultCode ~= 200 or not isSuccessful or #result < 1 then 49 | print("[PO Updater] Failed to get PO version") 50 | fn() 51 | return 52 | end 53 | 54 | fn(result) 55 | 56 | print("[PO Updater] Got PO version", result) 57 | end, "GET") 58 | end 59 | 60 | function POUpdater:ShouldUpdate(fn) 61 | self:GetGitVer(function(ver) 62 | local f = io.open(t.StorePath.."po_ver.txt", "r") 63 | if f then 64 | local curr_ver = f:read("*all") 65 | f:close() 66 | if ver and curr_ver and ver ~= curr_ver then 67 | self.git_ver = ver 68 | fn(true) 69 | else 70 | fn(false) 71 | end 72 | else 73 | print("[PO Updater] Failed to open version file") 74 | fn(false) 75 | end 76 | end) 77 | end 78 | 79 | function POUpdater:CancelDownloading() 80 | self.iscanceled = true 81 | end 82 | 83 | function POUpdater:IsDisabled() 84 | return self.disabled 85 | end 86 | 87 | return POUpdater -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/beefalo_milk.lua: -------------------------------------------------------------------------------- 1 | RenameAction("MILK","Доить") 2 | 3 | pp("Ow! It kicked me!", "Ай! Она лягнула меня!") 4 | 5 | ch_nm("RAWMILK","Парное молоко","it") 6 | ch_nm("COOKEDMILK","Топлёное молоко","it") 7 | nm.CHEESE = "Сыр" 8 | ch_nm("BERRYSHAKE","Молочно-фруктовый коктейль",1,"Молочно-фруктовому коктейлю",1) 9 | 10 | pp("I can't drink it just like this.","Сначала надо прокипятить.") 11 | pp("Thank you beefalo.", "Спасибо, бифало, за свежее молочко.") 12 | pp("Was worth waiting for it.", "Не зря пришлось так долго ждать.") 13 | pp("Still cold to the touch.","Всё ещё холодный.") 14 | 15 | 16 | STRINGS.CHARACTERS.WENDY.DESCRIBE.BERRYSHAKE = "Освежающий и холодный, как я." 17 | STRINGS.CHARACTERS.WICKERBOTTOM.DESCRIBE.BERRYSHAKE = "Прекрасная награда за жаркий день." 18 | STRINGS.CHARACTERS.WILLOW.DESCRIBE.BERRYSHAKE = "Он холодный, и поэтому мне не нравится." 19 | STRINGS.CHARACTERS.WOLFGANG.DESCRIBE.BERRYSHAKE = "Может удалить жажду Вольфганга." 20 | STRINGS.CHARACTERS.WX78.DESCRIBE.BERRYSHAKE = "ОСТУЖАЕТ ОРГАНИЗМ." 21 | STRINGS.CHARACTERS.WAXWELL.DESCRIBE.BERRYSHAKE = "Вкусно до последней капли." 22 | STRINGS.CHARACTERS.WOODIE.DESCRIBE.BERRYSHAKE = "Люси всегда любила коктейли. Незнаю, почему." 23 | 24 | STRINGS.CHARACTERS.WENDY.DESCRIBE.RAWMILK = "Детёнышам ничего не осталось." 25 | STRINGS.CHARACTERS.WICKERBOTTOM.DESCRIBE.RAWMILK = "Кишит бактериями." 26 | STRINGS.CHARACTERS.WILLOW.DESCRIBE.RAWMILK = "Полезно, только в жару." 27 | STRINGS.CHARACTERS.WOLFGANG.DESCRIBE.RAWMILK = "Там плавает волос." 28 | STRINGS.CHARACTERS.WX78.DESCRIBE.RAWMILK = "ПОЛУЧЕНО МНОЮ ОТ ПРИРОДЫ." 29 | STRINGS.CHARACTERS.WAXWELL.DESCRIBE.RAWMILK = "Противно." 30 | STRINGS.CHARACTERS.WOODIE.DESCRIBE.RAWMILK = "Этому бифало не понравилось, ведь так?" 31 | 32 | 33 | STRINGS.CHARACTERS.WENDY.DESCRIBE.COOKEDMILK = "Природное богатство." 34 | STRINGS.CHARACTERS.WICKERBOTTOM.DESCRIBE.COOKEDMILK = "Теперь более съедобно." 35 | STRINGS.CHARACTERS.WILLOW.DESCRIBE.COOKEDMILK = "Свежее и горячее." 36 | STRINGS.CHARACTERS.WOLFGANG.DESCRIBE.COOKEDMILK = "Укрепит мои кости." 37 | STRINGS.CHARACTERS.WX78.DESCRIBE.COOKEDMILK = "ПРИРОДНОЕ ТОПЛИВО." 38 | STRINGS.CHARACTERS.WAXWELL.DESCRIBE.COOKEDMILK = "Выбирать не приходится." 39 | STRINGS.CHARACTERS.WOODIE.DESCRIBE.COOKEDMILK = "Раньше я начинал с этого каждое утро." 40 | 41 | STRINGS.CHARACTERS.WENDY.DESCRIBE.CHEESE = "Время сделало его только лучше." 42 | STRINGS.CHARACTERS.WICKERBOTTOM.DESCRIBE.CHEESE = "Вкусно, но запах мне не нравится." 43 | STRINGS.CHARACTERS.WILLOW.DESCRIBE.CHEESE = "Огонь + время = ГОТОВО!" 44 | STRINGS.CHARACTERS.WOLFGANG.DESCRIBE.CHEESE = "Хотелось бы мне больше." 45 | STRINGS.CHARACTERS.WX78.DESCRIBE.CHEESE = "ЗАПАХ МЕНЯЕТСЯ С КАЖДЫМ ДНЕМ." 46 | STRINGS.CHARACTERS.WAXWELL.DESCRIBE.CHEESE = "Золотистый цвет. Мне нравится." 47 | STRINGS.CHARACTERS.WOODIE.DESCRIBE.CHEESE = "Вот это блюдо!" 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /scripts/mod_rusification/transl/hawaiian.lua: -------------------------------------------------------------------------------- 1 | ------ Переводы от Hawaiian ------ 2 | 3 | local function LoadModTranslation(file) 4 | modimport("scripts/mod_rusification/mods/"..file) 5 | end 6 | 7 | -------------------------------------------------Steampunk DST 8 | --http://steamcommunity.com/sharedfiles/filedetails/?id=418604101 9 | if FindName("Steampunk DST") then 10 | LoadModTranslation "steampunk.lua" 11 | end 12 | 13 | -------------------------------------------------'s item pack (DST) 14 | --http://steamcommunity.com/sharedfiles/filedetails/?id=436897772 15 | if FindName("'s item pack") then 16 | LoadModTranslation "defaults_item_pack.lua" 17 | end 18 | -------------------------------------------------Structures and More... 19 | --http://steamcommunity.com/sharedfiles/filedetails/?id=580851939 20 | if FindName("Structures and More") then 21 | RegisterTranslation(function() 22 | LoadModTranslation "structures_and_more.lua" 23 | end) 24 | end 25 | 26 | -------------------------------------------------DST In Wilson's House 27 | --http://steamcommunity.com/sharedfiles/filedetails/?id=346968521 28 | if FindName("DST Wilson's House") then 29 | mk("WILSON_HOUSE","Жилище",4,"Жилищу",1,false) 30 | --оставил в modmain.lua 31 | RegisterTranslation(function() 32 | rec.WILSON_HOUSE = "Дом, милый дом!!" 33 | pp(gendesc.WILSON_HOUSE, "Уютный домишко!") 34 | end) 35 | end 36 | 37 | -------------------------------------------------Portable cookpot 38 | --http://steamcommunity.com/sharedfiles/filedetails/?id=614931358 39 | if FindName("Portable cookpot") then 40 | mk("PORTABLECOOKPOT","Походный котелок",1,"Походному котелку",1,false) 41 | mk("PORTABLECOOKPOT_ITEM","Походный котелок",1,"Походному котелку",1,false) 42 | RegisterTranslation(function() 43 | rec.PORTABLECOOKPOT_ITEM = "Удобный походный котелок" 44 | pp(gendesc.PORTABLECOOKPOT_ITEM, "Я могу носить его с собой!") 45 | end) 46 | end 47 | 48 | --------------------------Deluxe Campfires 2.11 49 | --http://steamcommunity.com/sharedfiles/filedetails/?id=444235588 50 | if FindName("Deluxe Campfires") then 51 | RegisterReplacedTranslation(function() --с подменой!!! 52 | LoadModTranslation "deluxe_campfires.lua" 53 | end) 54 | end 55 | 56 | --------------------------Too many items 57 | --http://steamcommunity.com/sharedfiles/filedetails/?id=551338671 58 | if FindName("[DST]Too Many Items") then 59 | RegisterTranslation(function() --без подмены 60 | LoadModTranslation "too_many_items.lua" 61 | end) 62 | end 63 | 64 | ------------------------Craftable gears 65 | --Тонны модов делают это, поэтому нет смысла указывать какой-то конкретный. 66 | rec.GEARS = "Полезное механическое... барахло." 67 | -----------------------Configurable Craftable Living Logs 68 | --Аналогично. 69 | rec.LIVINGLOG = "Возможно, оно и говорить умеет?" 70 | 71 | ----------------------------------------------DST Survival Gear 72 | --http://steamcommunity.com/sharedfiles/filedetails/?id=393441469 73 | --кое-как получилось вписать в игру (в modmain.lua) 74 | mk("CAVE_ARMOR","Пальто из шерсти Бифало",4,1,1,false,1) 75 | rec.CAVE_ARMOR = "В нем очень тепло!" 76 | gendesc.CAVE_ARMOR = "Стоит поблагодарить Бифало!" 77 | --p.s. там еще две деревянных биты, но они очень так себе нарисованы. и я их из мода удалил и не стал переводить. 78 | 79 | -------------------------------------------------------------------------------- /scripts/prefabs/russian_assets.lua: -------------------------------------------------------------------------------- 1 | local mods = rawget(_G, "mods") or {} 2 | local t = mods.RussianLanguagePack 3 | 4 | --Это подгружаем всегда 5 | local assets = 6 | { 7 | Asset("ANIM", "anim/text_sparkle.zip"), 8 | Asset("ANIM", "anim/mods_button.zip"), 9 | 10 | Asset("ATLAS", "images/rus_button_icon.xml" ), 11 | 12 | Asset("ATLAS","images/rus_group.xml"), 13 | 14 | Asset("ATLAS","images/rus_wiki.xml"), 15 | 16 | Asset("ATLAS","images/vk_group.xml"), 17 | 18 | Asset("ATLAS","images/discord_button.xml"), 19 | 20 | Asset("ATLAS","images/text_bg.xml"), 21 | 22 | Asset("ATLAS","images/inf_btn.xml"), 23 | } 24 | 25 | table.insert(assets, Asset("ATLAS", "images/rlp_icon"..(t.IsBeta and "_beta.xml" or ".xml"))) 26 | 27 | if t.CurrentTranslationType == t.TranslationTypes.Full then --Всё остальное 28 | local ass = { 29 | Asset("ATLAS","images/rus_mapgen.xml"), --Русифицированные пиктограммы в окне генерирования нового мира 30 | --Персонажи 31 | Asset("ATLAS","images/rus_locked.xml"), 32 | Asset("ATLAS","images/rus_wickerbottom.xml"), 33 | Asset("ATLAS","images/rus_waxwell.xml"), 34 | Asset("ATLAS","images/rus_willow.xml"), 35 | Asset("ATLAS","images/rus_wilson.xml"), 36 | Asset("ATLAS","images/rus_woodie.xml"), 37 | Asset("ATLAS","images/rus_wes.xml"), 38 | Asset("ATLAS","images/rus_wolfgang.xml"), 39 | Asset("ATLAS","images/rus_wendy.xml"), 40 | Asset("ATLAS","images/rus_wathgrithr.xml"), 41 | Asset("ATLAS","images/rus_webber.xml"), 42 | Asset("ATLAS","images/rus_random.xml"), 43 | --Серый 44 | Asset("ATLAS","images/rus_names_wickerbottom.xml"), 45 | Asset("ATLAS","images/rus_names_willow.xml"), 46 | Asset("ATLAS","images/rus_names_wilson.xml"), 47 | Asset("ATLAS","images/rus_names_woodie.xml"), 48 | Asset("ATLAS","images/rus_names_wes.xml"), 49 | Asset("ATLAS","images/rus_names_wolfgang.xml"), 50 | Asset("ATLAS","images/rus_names_wendy.xml"), 51 | Asset("ATLAS","images/rus_names_wathgrithr.xml"), 52 | Asset("ATLAS","images/rus_names_webber.xml"), 53 | Asset("ATLAS","images/rus_names_waxwell.xml"), 54 | Asset("ATLAS","images/rus_names_random.xml"), 55 | Asset("ATLAS","images/rus_names_wx78.xml"), 56 | Asset("ATLAS","images/rus_names_winona.xml"), 57 | Asset("ATLAS","images/rus_names_wortox.xml"), 58 | Asset("ATLAS","images/rus_names_wormwood.xml"), 59 | Asset("ATLAS","images/rus_names_warly.xml"), 60 | Asset("ATLAS","images/rus_names_wonkey.xml"), 61 | Asset("ATLAS","images/rus_names_wanda.xml"), 62 | Asset("ATLAS","images/rus_names_wurt.xml"), 63 | Asset("ATLAS","images/rus_names_walter.xml"), 64 | --Золото 65 | Asset("ATLAS","images/rus_names_gold_wickerbottom.xml"), 66 | Asset("ATLAS","images/rus_names_gold_willow.xml"), 67 | Asset("ATLAS","images/rus_names_gold_wilson.xml"), 68 | Asset("ATLAS","images/rus_names_gold_woodie.xml"), 69 | Asset("ATLAS","images/rus_names_gold_wes.xml"), 70 | Asset("ATLAS","images/rus_names_gold_wolfgang.xml"), 71 | Asset("ATLAS","images/rus_names_gold_wendy.xml"), 72 | Asset("ATLAS","images/rus_names_gold_wathgrithr.xml"), 73 | Asset("ATLAS","images/rus_names_gold_webber.xml"), 74 | Asset("ATLAS","images/rus_names_gold_waxwell.xml"), 75 | Asset("ATLAS","images/rus_names_gold_random.xml"), 76 | Asset("ATLAS","images/rus_names_gold_wx78.xml"), 77 | Asset("ATLAS","images/rus_names_gold_winona.xml"), 78 | Asset("ATLAS","images/rus_names_gold_wortox.xml"), 79 | Asset("ATLAS","images/rus_names_gold_wormwood.xml"), 80 | Asset("ATLAS","images/rus_names_gold_warly.xml"), 81 | Asset("ATLAS","images/rus_names_gold_wonkey.xml"), 82 | Asset("ATLAS","images/rus_names_gold_wanda.xml"), 83 | Asset("ATLAS","images/rus_names_gold_wurt.xml"), 84 | Asset("ATLAS","images/rus_names_gold_walter.xml"), 85 | 86 | 87 | Asset("ATLAS", "images/frontscreen_ru.xml" ), 88 | Asset("ATLAS", "images/tradescreen_overflow_ru.xml" ), 89 | Asset("ATLAS", "images/tradescreen_ru.xml" ), 90 | } 91 | 92 | for _, v in ipairs(ass) do 93 | table.insert(assets, v) 94 | end 95 | end 96 | 97 | 98 | return Prefab("russian_assets", function() return CreateEntity() end, assets) 99 | -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/archery_mod.lua: -------------------------------------------------------------------------------- 1 | mk("BOW","Деревянный лук") 2 | rec.BOW = "Полезно, если вы умеете целиться." 3 | pp("I used to be a good archer... then I took an arrow in the knee.","Раньше я был хорошим лучником...") 4 | 5 | mk("QUIVER","Колчан") 6 | rec.QUIVER = "Храни здесь свои стрелы!" 7 | pp("With this stuff, I will look like a serious archer.","С этой штукой я буду смотреться, как серьезный лучник.") 8 | 9 | mk("ARROW","Простая стрела",3,0,0,nil,"Простой стрелой") 10 | rec.ARROW = "Не бросай её голыми руками." 11 | pp("Probably best used with a bow...","Наверное, лучше использовать с луком...") 12 | 13 | mk("GOLDARROW","Золотая стрела",3) 14 | rec.GOLDARROW = "Охота со стилем." 15 | pp("I'm sure I could have found a better use this...","Уверен, с этой стрелой выйдет больше толка...") 16 | 17 | mk("MOONSTONEARROW","Лунная стрела",3) 18 | rec.MOONSTONEARROW = "Дорогая, но эффективная." 19 | pp("Sharp and shiny!","Острая и сверкающая!") --Осторожно! Общая фраза!.. 20 | 21 | mk("FIREARROW","Огненная стрела",3) 22 | rec.FIREARROW = "Лучше быть осторожным с этим." 23 | pp("I should probably avoid using it in the middle of my camp...","Мне не следует использовать её в центре моей базы...") 24 | 25 | mk("ICEARROW","Ледяная стрела",3) 26 | rec.ICEARROW = "Оставайся холодной." 27 | pp("Should I keep it in the fridge?","Следует ли мне хранить её в холодильнике?") 28 | 29 | mk("THUNDERARROW","Громовая стрела",3) --jj: Надо уточнить рецепт... 30 | rec.THUNDERARROW = "Шторм приближается." 31 | pp( "The red wire on the plus...","Красный провод на плюс ...") 32 | mk("DISCHARGEDTHUNDERARROW","Разряженная громовая стрела",3) 33 | pp("It looks like it is not active anymore.","Похоже, что она больще не активна.") 34 | 35 | mk("CROSSBOW","Арбалет") 36 | rec.CROSSBOW = "Тяжелый и мощный." 37 | pp("This stuff is bigger than me.","Эта штука больше, чем я.") --!!! Общая фраза. 38 | 39 | mk("BOLT","Простой болт") 40 | rec.BOLT = "Не зубочистка." 41 | pp("Small projectile for such a big weapon...","Такой маленький снаряд для такого большого оружия...") 42 | 43 | mk("POISONBOLT","Ядовитый болт") 44 | rec.POISONBOLT = "С мышьяком." 45 | pp("Did it have to be so ugly?","Разве это должно быть так некрасиво?") 46 | 47 | mk("EXPLOSIVEBOLT","Разрывной болт") 48 | rec.EXPLOSIVEBOLT = "Не используйте в упор." 49 | pp("Is it really a good idea?","Действительно ли это хорошая идея?") 50 | 51 | mk("MAGICBOW","Магический лук") 52 | rec.MAGICBOW = "Так же, как и в сказках." 53 | pp("I expect a rainbow farting unicorns anytime soon.","Надеюсь на единорогов, пукающих радугой, в скором времени.") 54 | 55 | mk("MUSKET","Мушкет") 56 | rec.MUSKET = "Это громко. Вы предупреждены." 57 | pp("Am I the fifth musketeer?","Я - пятый мушкетер?") 58 | 59 | mk("MUSKET_BULLET","Мушкетный патрон") 60 | rec.MUSKET_BULLET = "Пора на охоту." 61 | pp("It looks like marbles","Это похоже на мрамор") 62 | 63 | mk("Z_FIREFLIESBALL","Шар светлячков") 64 | rec.Z_FIREFLIESBALL = "Не съедобно" 65 | pp("It's probably useful for something. Don't ask me what.","Возможно, это полезно для чего-то.\nНе спрашивайте меня, для чего.") 66 | 67 | mk("Z_BLUEGOOP","Синее вещество",4) 68 | rec.Z_BLUEGOOP = "Не стреляйте в ваших противников." 69 | pp("It looks gross.","Это сильно раздуто.") --jj. брутто валовой грубый большой крупный плотный макроскопический толстый грязный вульгарный 70 | 71 | ------------------ Дополнение от Hawaiian ---------------- 72 | 73 | --добавляет recipenew tab archery (Стрельба), но я потерял, где эта строчка 74 | STRINGS.TABS["Archery"] = "Стрельба" 75 | 76 | pp("I should first get a quiver!", "Для начала мне нужен колчан!") 77 | pp("My quiver is empty!", "Мой колчан пуст!") 78 | pp("This won't fit it my current weapon...","Эти боеприпасы не подойдут...") 79 | pp("It's too late now...","Слишком поздно...") 80 | pp("There's no potential target on sight.","Здесь не во что стрелять.") 81 | pp("It looks like this stuff ran out of juice.","Кажется, у нас протечка.") 82 | 83 | --5 повторов 84 | 85 | --далее 86 | pp("I do not have anything to put in...", "Кажется, закончились боеприпасы...") 87 | pp("If I pull even more on this stuff it will break...","Боеприпасов итак полно...") 88 | pp("It is probably not a good idea to pile it up...","Возможно, это не лучшая идея, итак полно...") 89 | 90 | --еще 5+5+3 = 13 повторов 91 | 92 | -----------------------------ВСЁ 93 | -------------------------------------------------------------------------------- /scripts/widgets/mod_settings_button.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | 3 | local Widget = require "widgets/widget" 4 | local UIAnim = require "widgets/uianim" 5 | local UIAnimButton = require "widgets/uianimbutton" 6 | local Text = require "widgets/text" 7 | local ImageButton = require "widgets/imagebutton" 8 | 9 | local RLPModButton = Class(Widget, function(self) 10 | Widget._ctor(self, "RLPModButton") 11 | 12 | local transtype = Profile:GetModTranslationEnabled() 13 | 14 | --Добавим инфу о модах 15 | self.info = self:AddChild(ImageButton("images/ui.xml", "button_small.tex", "button_small.tex", "button_small.tex", "button_small.tex", "button_small.tex", {1,1}, {0,0})) 16 | self.info:SetPosition(-74,0,1) 17 | self.info.image:SetScale(1.4, 1.075, 1) 18 | self.info.image:SetRotation(90) 19 | 20 | self.info.icon = self.info:AddChild(Image("images/inf_btn.xml", "inf_btn.tex", "inf_btn.tex")) 21 | self.info.icon:SetScale(.45) 22 | self.info.icon:SetClickable(false) 23 | 24 | self.info.highlight = self.info:AddChild(Image("images/frontend.xml", "button_square_highlight.tex")) 25 | self.info.highlight:SetPosition(6,-6,1) 26 | self.info.highlight:SetScale(1, 1.4, 1) 27 | self.info.highlight:SetClickable(false) 28 | self.info.highlight:Hide() 29 | 30 | self.status = transtype == t.ModTranslationTypes.Enabled and "enabled" or "disabled" --сохраняем то значение, которое у нас при входе в это окно 31 | 32 | self.btn = self:AddChild(UIAnimButton("mods_button", "mods_button", nil, nil, nil, nil, nil))--bank, build, idle_anim, focus_anim, disabled_anim, down_anim, selected_anim 33 | 34 | local function AntiSpam(time) 35 | if self.task then 36 | self.task:Cancel() 37 | self.task = nil 38 | end 39 | 40 | self.btn:SetClickable(false) 41 | self.task = self.inst:DoTaskInTime(time, function() self.btn:SetClickable(true) end) 42 | end 43 | 44 | self.btn:SetScale(.9, .9, 1) 45 | self.btn.animstate:PlayAnimation("pre_"..self.status) 46 | self.btn.animstate:PushAnimation("idle_"..self.status) 47 | AntiSpam(.8) 48 | 49 | self.btn:SetText("") 50 | self.btn:SetTextSize(35) 51 | self.btn.text:SetPosition(165, 0) 52 | self.btn.text:SetFont(CHATFONT) 53 | self.btn.text:SetHAlign(ANCHOR_LEFT) 54 | self.btn:SetTextColour({.8,.8,.8,1}) 55 | self.btn:SetTextFocusColour({1,1,1,1}) 56 | 57 | self:UpdateText() 58 | 59 | self.btn:SetOnClick(function() 60 | if self.status == "enabled" then 61 | self.btn.animstate:PlayAnimation("onclick_enabled") 62 | self.btn:SetLoop("idle_disabled", false) 63 | self.btn.animstate:PushAnimation("idle_disabled") 64 | 65 | AntiSpam(.6) 66 | 67 | self.status = "disabled" 68 | Profile:SetLocalizaitonValue("mod_translation_type", t.ModTranslationTypes.Disabled) 69 | 70 | self:UpdateText() 71 | else 72 | self.btn.animstate:PlayAnimation("onclick_disabled") 73 | self.btn:SetLoop("idle_enabled", false) 74 | self.btn.animstate:PushAnimation("idle_enabled") 75 | 76 | AntiSpam(.6) 77 | 78 | self.status = "enabled" 79 | Profile:SetLocalizaitonValue("mod_translation_type", t.ModTranslationTypes.Enabled) 80 | 81 | self:UpdateText() 82 | end 83 | end) 84 | 85 | self.info:SetOnClick(function() 86 | VisitURL("http://steamcommunity.com/workshop/filedetails/?id=556346855") 87 | end) 88 | 89 | self.info:SetOnGainFocus(function() 90 | if self.info:IsEnabled() and not self.info:IsSelected() and TheFrontEnd:GetFadeLevel() <= 0 then 91 | self.info.highlight:Show() 92 | end 93 | 94 | self.info.image:SetScale(1.4, 1.075, 1) 95 | end) 96 | 97 | self.info:SetOnLoseFocus(function() 98 | self.info.highlight:Hide() 99 | 100 | self.info.image:SetScale(1.4, 1.075, 1) 101 | end) 102 | 103 | --[[ 104 | self.btn:SetOnGainFocus(function() 105 | if self.btn:IsEnabled() and not self.btn:IsSelected() and TheFrontEnd:GetFadeLevel() <= 0 then 106 | self.btn.image:SetScale(.325)--Мда 107 | self.btn.highlight:Show() 108 | end 109 | end) 110 | 111 | self.btn:SetOnLoseFocus(function() 112 | self.btn.image:SetScale(.325) 113 | self.btn.highlight:Hide() 114 | end) 115 | ]] 116 | end) 117 | 118 | function RLPModButton:UpdateText() 119 | self.btn:SetText(self.status == "enabled" and "Перевод модов\nвключён" or "Перевод модов\nвыключён") 120 | end 121 | 122 | return RLPModButton 123 | -------------------------------------------------------------------------------- /scripts/rlp_pugna_speech.lua: -------------------------------------------------------------------------------- 1 | 2 | return { 3 | ["Ha!"] = "Ха!", 4 | ["You are unworthy."] = "Вы недостойны.", 5 | ["You never stood a chance."] = "У вас не было и шанса.", 6 | ["Ha ha!"] = "Ха ха!", 7 | ["Weak."] = "Слабаки.", 8 | ["We are stronger."] = "Мы сильнее.", 9 | ["Well struck!"] = "Хороший удар!", 10 | ["At last, our realm returns to glory!"] = "Наконец, наше царство обретёт славу!", 11 | ["Warriors, rekindle the Gateway..."] = "Воины, пробудите Врата...", 12 | ["Today we take the Throne!"] = "Сегодня мы захватим Трон!", 13 | ["It's good to have a challenge once again!"] = "Хорошо принять вызов снова!", 14 | ["This should be fun."] = "Это должно быть весело.", 15 | ["More pigs! Overwhelm them!"] = "Больше! Сокрушите их!", 16 | ["More pigs!"] = "Больше свиней!", 17 | ["What have we here?"] = "Что у нас здесь?", 18 | ["Gatekeepers? Ha! Have you come to return us to the Throne?"] = "Хранители Врат? Ха! Вы пришли, чтобы вернуть нас к Трону?", 19 | ["I am Battlemaster Pugna, and I protect what is mine."] = "Я - Военачальник Пугна, и я защищаю то, что принадлежит мне.", 20 | ["Warriors. Release the pigs!"] = "Воины. Выпускайте свиней!", 21 | ["For the Forge!"] = "За Кузню!", 22 | ["Give the Gatekeepers no quarter!"] = "Не дайте Хранителям Врат и четвертака!", 23 | ["Fly your banners proudly, warriors!"] = "Пусть ваши знамёна реют гордо, воины!", 24 | ["Impressive. You handled our foot soldiers with ease."] = "Впечатляет. Вы легко справились с нашими пехотинцами.", 25 | ["But our battalions are trained to work together."] = "Но наши батальоны натренированы работать вместе.", 26 | ["Can you do the same? Crocommanders, to the ring!"] = "Сможете ли вы сделать то же самое? Крокомандиры, на ринг!", 27 | ["We've endured more here than you know."] = "Мы вынесли здесь больше, чем вы можете представить.", 28 | ["And as forging fires temper steel,"] = "И как огонь горна закаляет сталь,", 29 | ["Hardship has only made us stronger."] = "Так и трудности только сделали нас сильнее.", 30 | ["Now, Snortoises. Attack!"] = "А теперь, Бронепахи. Атакуйте!", 31 | ["End this now my warriors!"] = "Покончите с этим сейчас же, мои воины!", 32 | ["We... cannot lose the Forge..."] = "Мы... не можем потерять Кузню...", 33 | ["No! How can this be?!"] = "Нет! Как такое может быть?!", 34 | ["You have defeated the mighty Boarilla!"] = "Вы победили могучую Бориллу!", 35 | ["You may have won the battle, Gatekeepers... but not the war!"] = "Возможно вы выиграли битву, Хранители Врат... но не войну!", 36 | ["...Do you understand the forces you serve?"] = "...Вы понимаете силы, которым вы служите?", 37 | ["They destroy all They touch..."] = "Они уничтожают всё, к чему прикасаются...", 38 | ["We were severed from the Throne, trapped in a realm of stone and fire!"] = "Мы были отделены от Трона, захваченного царством камня и огня!", 39 | ["That is why we cannot let you win."] = "Поэтому мы не можем позволить вам победить.", 40 | ["Send in the Boarilla."] = "Послать Бориллу.", 41 | ["Grand Forge Boarrior!"] = "Великий Боров-воин Кузни!", 42 | ["The ring is yours! Destroy them, my champion!"] = "Ринг твой! Уничтожь их, мой чемпион!", 43 | ["The Gatekeepers must not take the Forge!"] = "Хранители Врат не должны захватить Кузню!", 44 | ["Drive the interlopers back!"] = "Верните нарушителей обратно!", 45 | ["Do not hold back! Kill them!"] = "Не отступать! Убейте их!", 46 | ["Why are the Gatekeepers still not dead?!"] = "Почему Хранители Врат все ещё живы?!", 47 | ["Destroy them!!"] = "Уничтожьте их!!", 48 | ["We will not live in the Throne's shadow!"] = "Мы не будем жить в тени Трона!", 49 | ["What?! My champion!?!"] = "Что?! Мой чемпион!?!", 50 | ["I see. You've demonstrated your might."] = "Я вижу. Вы показали своё могущество.", 51 | ["...But we will live to fight again!!"] = "...Но мы будем жить, чтобы снова сражаться!!", 52 | ["Know this, Gatekeepers:"] = "Запомните вот что, Хранители Врат:", 53 | ["Once you are dead, we will activate the Gateway."] = "Как только вы умрёте, мы активируем Врата.", 54 | ["We'll return to the hub and destroy the Throne."] = "Мы вернёмся и уничтожим Трон.", 55 | ["We will end this, once and for all."] = "Мы покончим с этим раз и навсегда.", 56 | ["You have won the battle,"] = "Вы выиграли битву,", 57 | ["But the war rages on eternally."] = "Но война продолжается вечно.", 58 | ["We are not ready to give up yet."] = "Мы ещё не готовы сдаться.", 59 | ["We do not fear you."] = "Мы не боимся вас.", 60 | ["But you will fear us!"] = "Но вы будете бояться нас!", 61 | ["Fear my new champions! Fear the Rhinocebros!"] = "На колени перед моими новыми чемпионами! Бойтесь Нособуров!", 62 | ["No! My Forge, felled by the Throne's lapdogs!"] = "Нет! Моя кузня пала от лап шавок Трона!", 63 | ["Please. No more, Gatekeepers. We surrender."] = "Прошу. Довольно, Хранители Врат. Мы сдаёмся.", 64 | ["The day is yours, as is the Gateway."] = "День ваш, как и Врата.", 65 | ["You have had many victories, Gatekeepers..."] = "У вас было много побед, Хранители Врат...", 66 | ["...but from our dungeons comes our most brutal warrior."] = "...но из подземелий выходит наш самый жестокий воин.", 67 | ["Behold: The Infernal Swineclops!"] = "Бойтесь! Инфернальный Свиноклоп!", 68 | } 69 | -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/too_many_items.lua: -------------------------------------------------------------------------------- 1 | --Автор добавил 1 файл со всеми стрингсами 2 | --stringslocalization.lua 3 | 4 | if STRINGS.TOO_MANY_ITEMS == nil then 5 | STRINGS.TOO_MANY_ITEMS = { 6 | UI = { 7 | BUTTON = {}, 8 | DEBUG = { 9 | SEASON = {}, 10 | TIME = {}, 11 | SPEED = {}, 12 | WEATHER = {}, 13 | CHARACTER = {}, 14 | SERVER = {}, 15 | }, 16 | SIDEBAR = {}, 17 | SEARCHBAR = {}, 18 | SEARCH = {}, 19 | }, 20 | } 21 | end 22 | 23 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.HEALTH = "Здоровье 100%" 24 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.SANITY = "Рассудок 100%" 25 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.HUNGER = "Голод 100%" 26 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.WET = "Влажность 0%" 27 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.TEMPERATURE = "Температура: 20\176C" 28 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.LOGMETER = "Древесный голод 100%" 29 | 30 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.GODMODE = "Режим бога (Вкл/Выкл)" 31 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.CREATIVEMODE = "Творческий режим (Вкл/Выкл)" 32 | STRINGS.TOO_MANY_ITEMS.UI.BUTTON.DEBUGMENU = "Меню отладки (Открыть/Закрыть)" 33 | 34 | 35 | 36 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SEASON.SPRINGTIP = "Наступает весна!" 37 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SEASON.SUMMERTIP = "Наступает лето!" 38 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SEASON.AUTUMNTIP = "Наступает осень!" 39 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SEASON.WINTERTIP = "Наступает зима!" 40 | 41 | 42 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.TEXT = "Время:" 43 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.NEXT = "Далее" 44 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.NEXTTIP = "Следующая фаза дня" 45 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.ODAY = "1 день" 46 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.ODAYTIP = "Пропустить 1 день" 47 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.FDAYS = "5 дней" 48 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.FDAYSTIP = "Пропустить 5 дней" 49 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.TDAYS = "10 дней" 50 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.TIME.TDAYSTIP = "Пропустить 10 дней" 51 | 52 | 53 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.TEXT = "Скорость:" 54 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.SLOW = "Замедлить" 55 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.SLOWTIP = "60% скорости" 56 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.NORMAL = "Норма" 57 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.NORMALTIP = "100% скорости" 58 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.FAST = "Ускорить" 59 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.FASTTIP = "200% скорости" 60 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.FLY = "Нитро" 61 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SPEED.FLYTIP = "400% скорости" 62 | 63 | 64 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.WEATHER.TEXT = "Погода:" 65 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.WEATHER.LIGHTNINGTIP = "Удар молнии" 66 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.WEATHER.WATER = ".,;:':;,." 67 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.WEATHER.WATERTIP = "Дождь/Снег" 68 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.WEATHER.NOWATER = ",.'o'.," 69 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.WEATHER.NOWATERTIP = "Остановить Дождь/Снег" 70 | 71 | 72 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.TEXT = "Персонаж:" 73 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.KILL = "Убить" 74 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.KILLTIP = "Убивает персонажа" 75 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTERREBIRTH = "Возр." 76 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.REBIRTHTIP = "Возрождает персонажа" 77 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.DESPAWN = "Смена" 78 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.DESPAWNTIP = "К меню выбора персонажа" 79 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.GATHER = "Собрать" 80 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.GATHERTIP = "Собирает всех персонажей" 81 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.UNLOCKTECH = "Крафт" 82 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.CHARACTER.UNLOCKTECHTIP = "Разблокировать все предметы для меню крафта" 83 | 84 | 85 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.TEXT = "Сервер:" 86 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.RESET = "Рестарт" 87 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.RESETTIP = "Рестарт текущей игры" 88 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.REGENERATE = "Сброс" 89 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.REGENERATETIP = "Создает новый мир" 90 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.ROLLBACK = "Откат" 91 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.ROLLBACKTIP = "Откат до последней сохраненной игры" 92 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.SAVE = "Сохр." 93 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.SAVETIP = "Сохранить мир" 94 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.SHUTDOWN = "Выкл." 95 | STRINGS.TOO_MANY_ITEMS.UI.DEBUG.SERVER.SHUTDOWNTIP = "Выключить сервер" 96 | 97 | 98 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.A = "В" 99 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPA = "Все предметы" 100 | 101 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.F = "Е" 102 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPF = "Еда" 103 | 104 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.R = "Р" 105 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPR = "Ресурсы" 106 | 107 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.W = "Б" 108 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPW = "Бой" 109 | 110 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.T = "И" 111 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPT = "Инструменты" 112 | 113 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.C = "О" 114 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPC= "Одежда" 115 | 116 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.G = "П" 117 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPG= "Подарки" 118 | 119 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.O = "Д" 120 | STRINGS.TOO_MANY_ITEMS.UI.SIDEBAR.TIPO = "Другое (Бывают вылеты)" 121 | 122 | 123 | STRINGS.TOO_MANY_ITEMS.UI.SEARCHBAR.TEXT = "Найти предмет!" 124 | STRINGS.TOO_MANY_ITEMS.UI.SEARCHBAR.TIP = "Нажми!" 125 | STRINGS.TOO_MANY_ITEMS.UI.SEARCH.TEXT= "Поиск" 126 | STRINGS.TOO_MANY_ITEMS.UI.SEARCH.TIP = "Нажми для поиска!" 127 | 128 | ---------------------------всё -------------------------------------------------------------------------------- /scripts/rlp_fonts.lua: -------------------------------------------------------------------------------- 1 | local env = env 2 | local modname = env.modname 3 | local MODROOT = env.MODROOT 4 | local t = mods.RussianLanguagePack 5 | 6 | GLOBAL.setfenv(1, GLOBAL) 7 | 8 | require("fonts") 9 | 10 | local FONT_PREFIX = "ru_" 11 | local FONT_POSTFIX = "__ru" 12 | 13 | local CACHED_FONTS = { 14 | DEFAULTFONT = DEFAULTFONT, 15 | DIALOGFONT = DIALOGFONT, 16 | TITLEFONT = TITLEFONT, 17 | UIFONT = UIFONT, 18 | BUTTONFONT = BUTTONFONT, 19 | HEADERFONT = HEADERFONT, 20 | CHATFONT = CHATFONT, 21 | CHATFONT_OUTLINE = CHATFONT_OUTLINE, 22 | NUMBERFONT = NUMBERFONT, 23 | TALKINGFONT = TALKINGFONT, 24 | SMALLNUMBERFONT = SMALLNUMBERFONT, 25 | BODYTEXTFONT = BODYTEXTFONT, 26 | 27 | TALKINGFONT_WORMWOOD = TALKINGFONT_WORMWOOD, 28 | TALKINGFONT_HERMIT = TALKINGFONT_HERMIT, 29 | 30 | NEWFONT = NEWFONT, 31 | NEWFONT_SMALL = NEWFONT_SMALL, 32 | NEWFONT_OUTLINE = NEWFONT_OUTLINE, 33 | NEWFONT_OUTLINE_SMALL = NEWFONT_OUTLINE_SMALL, 34 | } 35 | 36 | --Имена шрифтов, которые нужно загрузить. 37 | local LOCALIZED = { 38 | ["talkingfont"] = true, 39 | ["stint-ucr50"] = true, 40 | ["stint-ucr20"] = true, 41 | ["opensans50"] = true, 42 | ["belisaplumilla50"] = true, 43 | ["belisaplumilla100"] = true, 44 | ["buttonfont"] = true, 45 | ["hammerhead50"] = true, 46 | ["bellefair50"] = true, 47 | ["bellefair_outline50"] = true, 48 | 49 | ["talkingfont_wormwood"] = true, 50 | ["talkingfont_hermit"] = true, 51 | 52 | ["spirequal"] = true, 53 | ["spirequal_small"] = true, 54 | ["spirequal_outline"] = true, 55 | ["spirequal_outline_small"] = true, 56 | } 57 | 58 | --В этой функции происходит загрузка, подключение и применение русских шрифтов 59 | local function ApplyLocalizedFonts() 60 | t.print("ApplyLocalizedFonts", CalledFrom()) 61 | 62 | --ЭТАП ВЫГРУЗКИ: Вначале выгружаем шрифты, если они были загружены 63 | --Восстанавливаем оригинальные переменные шрифтов 64 | DEFAULTFONT = CACHED_FONTS.DEFAULTFONT 65 | DIALOGFONT = CACHED_FONTS.DIALOGFONT 66 | TITLEFONT = CACHED_FONTS.TITLEFONT 67 | UIFONT = CACHED_FONTS.UIFONT 68 | BUTTONFONT = CACHED_FONTS.BUTTONFONT 69 | HEADERFONT = CACHED_FONTS.HEADERFONT 70 | CHATFONT = CACHED_FONTS.CHATFONT 71 | CHATFONT_OUTLINE = CACHED_FONTS.CHATFONT_OUTLINE 72 | NUMBERFONT = CACHED_FONTS.NUMBERFONT 73 | TALKINGFONT = CACHED_FONTS.TALKINGFONT 74 | SMALLNUMBERFONT = CACHED_FONTS.SMALLNUMBERFONT 75 | BODYTEXTFONT = CACHED_FONTS.BODYTEXTFONT 76 | 77 | TALKINGFONT_WORMWOOD = CACHED_FONTS.TALKINGFONT_WORMWOOD 78 | TALKINGFONT_HERMIT = CACHED_FONTS.TALKINGFONT_HERMIT 79 | 80 | NEWFONT = CACHED_FONTS.NEWFONT 81 | NEWFONT_SMALL = CACHED_FONTS.NEWFONT_SMALL 82 | NEWFONT_OUTLINE = CACHED_FONTS.NEWFONT_OUTLINE 83 | NEWFONT_OUTLINE_SMALL = CACHED_FONTS.NEWFONT_OUTLINE_SMALL 84 | 85 | --Выгружаем локализированные шрифты, если они были до этого загружены 86 | t.print("Unloading RLP fonts") 87 | for FontName in pairs(LOCALIZED) do 88 | TheSim:UnloadFont(FONT_PREFIX..FontName) 89 | end 90 | TheSim:UnloadPrefabs({"RLP_fonts"}) --выгружаем общий префаб локализированных шрифтов 91 | 92 | --ЭТАП ЗАГРУЗКИ: Загружаем шрифты по новой 93 | t.print("Loading RLP fonts") 94 | --Формируем список ассетов 95 | local LocalizedFontAssets = {} 96 | for FontName in pairs(LOCALIZED) do 97 | table.insert(LocalizedFontAssets, Asset("FONT", MODROOT.."fonts/"..FontName..FONT_POSTFIX..".zip")) 98 | end 99 | 100 | --Создаём префаб, регистрируем его и загружаем 101 | local LocalizedFontsPrefab = require("prefabs/rlp_fonts")(LocalizedFontAssets) 102 | RegisterPrefabs(LocalizedFontsPrefab) 103 | TheSim:LoadPrefabs({"RLP_fonts"}) 104 | 105 | --Формируем список связанных с файлами алиасов 106 | for FontName in pairs(LOCALIZED) do 107 | TheSim:LoadFont(MODROOT.."fonts/"..FontName..FONT_POSTFIX..".zip", FONT_PREFIX..FontName) 108 | end 109 | 110 | --Строим таблицу фоллбэков для последующей связи шрифтов с доп-шрифтами 111 | local fallbacks = {} 112 | for _, v in pairs(FONTS) do 113 | local FontName = v.filename:sub(7, -5) 114 | if LOCALIZED[FontName] then 115 | fallbacks[FontName] = {v.alias, unpack(v.fallback)} 116 | end 117 | end 118 | --Привязываем к новым английским шрифтам локализированные символы 119 | for FontName in pairs(LOCALIZED) do 120 | TheSim:SetupFontFallbacks(FONT_PREFIX..FontName, fallbacks[FontName]) 121 | end 122 | 123 | --Вписываем в глобальные переменные шрифтов наши алиасы 124 | DEFAULTFONT = FONT_PREFIX.."opensans50" 125 | DIALOGFONT = FONT_PREFIX.."opensans50" 126 | TITLEFONT = FONT_PREFIX.."belisaplumilla100" 127 | UIFONT = FONT_PREFIX.."belisaplumilla50" 128 | BUTTONFONT = FONT_PREFIX.."buttonfont" 129 | HEADERFONT = FONT_PREFIX.."hammerhead50" 130 | CHATFONT = FONT_PREFIX.."bellefair50" 131 | CHATFONT_OUTLINE = FONT_PREFIX.."bellefair_outline50" 132 | NUMBERFONT = FONT_PREFIX.."stint-ucr50" 133 | TALKINGFONT = FONT_PREFIX.."talkingfont" 134 | SMALLNUMBERFONT = FONT_PREFIX.."stint-ucr20" 135 | BODYTEXTFONT = FONT_PREFIX.."stint-ucr50" 136 | 137 | TALKINGFONT_WORMWOOD = FONT_PREFIX.."talkingfont_wormwood" 138 | TALKINGFONT_HERMIT = FONT_PREFIX.."talkingfont_hermit" 139 | 140 | NEWFONT = FONT_PREFIX.."spirequal" 141 | NEWFONT_SMALL = FONT_PREFIX.."spirequal_small" 142 | NEWFONT_OUTLINE = FONT_PREFIX.."spirequal_outline" 143 | NEWFONT_OUTLINE_SMALL = FONT_PREFIX.."spirequal_outline_small" 144 | 145 | -- Сжимаем немного новый шрифт 146 | TheSim:AdjustFontAdvance(CHATFONT, -2.5) 147 | TheSim:AdjustFontAdvance(HEADERFONT, -1) 148 | end 149 | 150 | local _UnregisterAllPrefabs = Sim.UnregisterAllPrefabs 151 | Sim.UnregisterAllPrefabs = function(self, ...) 152 | _UnregisterAllPrefabs(self, ...) 153 | ApplyLocalizedFonts() 154 | end 155 | 156 | --Вставляем функцию, подключающую русские шрифты 157 | local _RegisterPrefabs = ModManager.RegisterPrefabs --Подменяем функцию,в которой нужно подгрузить шрифты и исправить глобальные шрифтовые константы 158 | ModManager.RegisterPrefabs = function(self, ...) 159 | _RegisterPrefabs(self, ...) 160 | ApplyLocalizedFonts() 161 | end 162 | 163 | local _Start = Start 164 | function Start(...) 165 | ApplyLocalizedFonts() 166 | return _Start(...) 167 | end 168 | -------------------------------------------------------------------------------- /scripts/rlp_mod_support.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | 3 | --Пробрасываем в настройки каждого мода переменную russian для нативной русификации (при желании автора мода). 4 | local ModIndex = KnownModIndex 5 | if ModIndex and ModIndex.InitializeModInfoEnv then 6 | --Если PeterA услышал мольбы, то поступаем цивилизованно. 7 | local old_InitializeModInfoEnv = ModIndex.InitializeModInfoEnv 8 | ModIndex.InitializeModInfoEnv = function(self,...) 9 | local env = old_InitializeModInfoEnv(self,...) 10 | env.language = t.SelectedLanguage 11 | env.russian = true -- !!! Устаревшая ссылка. Через некоторое время будет удалена !!! 12 | return env 13 | end 14 | else --Иначе извращаемся, как обычно. 15 | local temp_mark = false --Временная метка, означающая, что в следующий вызов RunInEnvironment надо добавить russian=true 16 | 17 | --Перехватываем "kleiloadlua", чтобы установить временную метку в случае загрузки "modinfo.lua" 18 | local old_kleiloadlua = kleiloadlua 19 | kleiloadlua = function(path,...) 20 | local fn = old_kleiloadlua(path,...) 21 | if fn and type(fn) ~= "string" and path:sub(-12) == "/modinfo.lua" then 22 | temp_mark = true 23 | end 24 | return fn 25 | end 26 | 27 | --Перехватываем RunInEnvironment, чтобы среагировать на метку (заодно сбросить ее) 28 | local old_RunInEnvironment = RunInEnvironment 29 | RunInEnvironment = function(fn, env, ...) 30 | if env and temp_mark then 31 | env.language = t.SelectedLanguage 32 | env.russian = true -- !!! Устаревшая ссылка. Через некоторое время будет удалена !!! 33 | temp_mark = false 34 | end 35 | return old_RunInEnvironment(fn, env, ...) 36 | end 37 | end 38 | 39 | 40 | 41 | --Функции ниже не инициализируются, если русификатор не в режиме «Полный перевод», т.е. если не нужно переводить предметы и действия 42 | if t.CurrentTranslationType==t.TranslationTypes.Full then 43 | 44 | 45 | local genders_reg={"he","he2","she","it","plural","plural2", --numbers 46 | he="he",he2="he2",she="she",it="it",plural="plural",plural2="plural2"}; 47 | --[[Функция регистрирует новое имя предмета со всеми данными, необходимыми для его корректного склонения. 48 | 49 | key - Ключ объекта. Например, MYITEM (из STRINGS.NAMES.MYITEM). 50 | val - Русский перевод названия объекта. 51 | gender - Пол объекта. Варианты: he, he2, she, it, plural, plural2. Род нужен для склонения префиксов жары и влажности. 52 | "he" и "he2" - это мужской род, но не одно и то же, сравните: изучить влажный курган слизнепах (he), 53 | но изучить влажного паука (he2). plural2 — одушевлённое во множественном числе (если слово, например, "Чайки", 54 | то есть когда объект изначально получает название во множественном числе). 55 | walkto - Склонение при подстановке во фразу "Идти к" (кому? чему?). Задавайте слова с большой буквы. 56 | defaultaction - Подставляется ко всем действиям в игре, для которых не задано особое написание. Например "Осмотреть" (кого? что?). 57 | capitalized - Нужно ли писать имя с большой буквы. Маленькая буква в названии не станет большой. 58 | Но если не указать true, то большая станет маленькой в фразах, где есть слово перед. Например: "Осмотреть лепестки". 59 | killaction - Используется только в DST во всех предметах, которые способны убить персонажа. В игре они могут появляться в сообщениях 60 | типа "Был убит (кем? чем?)", то есть это творительный падеж. 61 | Вместо строковых значений пола можно использовать их номера: 1) he, 2) he2, 3) she, 4) it, 5) plural, 6) plural2. 62 | Вместо walkto, defaultaction и killaction можно использовать 0 или 1. 63 | 0 означает пропуск параметра. То же, что не указать параметр вовсе. Значение не инициализируется. Используются значения из testname. 64 | 1 означает "то же, что и базовая форма", т.е. val. Чтобы не дублировать одни и те же строки (val) можно просто указать единичку. 65 | 66 | Например: 67 | RegisterRussianName("RESEARCHLAB2","Алхимический двигатель",1,"Алхимическому двигателю",1) 68 | Вместо пола указана 1, что означает "he". 69 | Вместо defaultaction указано 1, что означает повторение val, т.е. "Алхимический двигатель". 70 | ]] 71 | 72 | 73 | function t.RegisterRussianName(key,val,gender,walkto,defaultaction,capitalized,killaction) 74 | local oldval = STRINGS.NAMES[string.upper(key)] 75 | STRINGS.NAMES[string.upper(key)]=val 76 | LanguageTranslator.languages[t.SelectedLanguage]["STRINGS.NAMES."..string.upper(key)] = val 77 | if gender and gender~=0 then 78 | if (genders_reg[gender]) then 79 | t.NamesGender[genders_reg[gender]][string.lower(key)]=true 80 | --else 81 | -- print error............ 82 | end 83 | end 84 | if walkto or defaultaction or killaction then 85 | if (walkto==1) then walkto=val end 86 | if (defaultaction==1) then defaultaction=val end 87 | if (killaction==1) then killaction=val end 88 | t.RussianNames[val]={} 89 | if walkto and walkto~=0 then t.RussianNames[val]["WALKTO"]=walkto end 90 | if defaultaction and defaultaction~=0 then t.RussianNames[val]["DEFAULTACTION"]=defaultaction end 91 | if killaction and killaction~=0 then t.RussianNames[val]["KILL"]=killaction end 92 | end 93 | if capitalized then t.ShouldBeCapped[string.lower(key)]=true end 94 | if t.SpeechHashTbl.NAMES and oldval then 95 | t.SpeechHashTbl.NAMES.Eng2Key[oldval]=string.upper(key) 96 | t.SpeechHashTbl.NAMES.Rus2Eng[val]=oldval 97 | end 98 | end 99 | 100 | -- !!! Устаревшая ссылка. Через некоторое время будет удалена !!! 101 | RegisterRussianName = t.RegisterRussianName --Временно оставлено для обратной совместимости по просьбе Star 102 | 103 | ---Переименовывание действий по названию (id) 104 | function t.RenameAction(act, new_name) 105 | if rawget(_G,"ACTIONS") and ACTIONS[act] then 106 | ACTIONS[act].str = new_name 107 | if STRINGS.ACTIONS then 108 | STRINGS.ACTIONS[act] = new_name 109 | end 110 | end 111 | end 112 | 113 | function t.RegisterRecipes(arr) 114 | for k,v in pairs(arr) do 115 | STRINGS.RECIPE_DESC[k] = v --Тупо переводим строки построчно в реальный массив. 116 | end 117 | end 118 | 119 | --Переводим анонсы 120 | --Для их перевода анонс должен быть в отдельной таблице "STRINGS.UI.NOTIFICATION" 121 | function t.TranslateAnnounce(id, translate) 122 | print("TranslateAnnounce1") 123 | if STRINGS.UI.NOTIFICATION and STRINGS.UI.NOTIFICATION[id] then 124 | t.announcerus.mods[id] = translate or "" 125 | end 126 | end 127 | 128 | end -------------------------------------------------------------------------------- /scripts/mod_translator.lua: -------------------------------------------------------------------------------- 1 | local env = env 2 | local t = mods.RussianLanguagePack 3 | 4 | _G.setfenv(1, _G) 5 | 6 | --По-любому надо составить список модов. 7 | mod_by_name = {} --true - активен, false - не активен, nil - отсутствует. 8 | mod_by_name_cut = {} --аналогично, только в качестве ключа - название мода без версии (цифры и точка). 9 | do 10 | local function SearchForModsByName() 11 | if not (KnownModIndex and KnownModIndex.savedata and KnownModIndex.savedata.known_mods) then 12 | t.print("Mod Translation: ERROR! Can't find KnownModIndex!") 13 | return 14 | end 15 | for name, mod in pairs(KnownModIndex.savedata.known_mods) do 16 | if mod and mod.modinfo and mod.modinfo.name and type(mod.modinfo.name) == "string" then 17 | local active = false 18 | if (mod.enabled or mod.temp_enabled or KnownModIndex:IsModForceEnabled(name)) --Мод активен 19 | and not mod.temp_disabled --И не отключен 20 | then 21 | active = true 22 | end 23 | if active == true then 24 | mod_by_name[mod.modinfo.name] = true --true 25 | local cut = mod.modinfo.name:gsub("^(.-)[0-9 .x]*$","%1") 26 | mod_by_name_cut[cut] = true 27 | end 28 | end 29 | end 30 | end 31 | SearchForModsByName() 32 | --arr(mod_by_name_cut) 33 | end 34 | 35 | env.ModExists = function(fancy) --fancy - реальное название. 36 | return mod_by_name[fancy] ~= nil --true or false means exists 37 | end 38 | 39 | env.ModActive = function(fancy) 40 | return mod_by_name[fancy] --only true means active 41 | end 42 | 43 | --Возвращает true, если есть обрезанный вариант мода. Например, "Waiter 101 v" (вместо "Waiter 101 v1.2.3") 44 | --Название нужно указывать точно (обрезанное). 45 | env.FindName = function(cut_fancy) 46 | return mod_by_name_cut[cut_fancy] 47 | end 48 | 49 | --Эта функция еще более продвинутая. Она ищет название мода по первым словам в нем. 50 | --Само собой поиск в уже кастрированных от версии названиях. 51 | env.FindNameCut = function(cut_fancy) 52 | for k,v in pairs(mod_by_name_cut) do 53 | if string.find(k,cut_fancy,1,true) == 1 then 54 | return true 55 | end 56 | end 57 | end 58 | 59 | function RegisterRussianPhrase(old_eng, new_rus) --Register Phrase 60 | if old_eng == nil then 61 | return 62 | end 63 | if t.mod_phrases[old_eng] ~= nil then 64 | t.print("ERROR RUS MODS!") 65 | t.print("String \""..tostring(old_eng).."\" already exists!") 66 | t.print("Rus translation: "..tostring(t.mod_phrases[old_eng])) 67 | t.print("Failed translation: "..tostring(new_rus)) 68 | end 69 | t.mod_phrases[old_eng] = new_rus 70 | end 71 | 72 | env.RegisterRussianPhrase = RegisterRussianPhrase 73 | -- Делаем затычку для старых переводов. 74 | mods.RusMods = { 75 | pp = RegisterRussianPhrase --Старая ссылка 76 | } 77 | 78 | env.pp = RegisterRussianPhrase --Короткое название (алиас), чтобы было проще вбивать перевод, без копипаста этого длиннющего названия функции. 79 | t.pp = RegisterRussianPhrase 80 | 81 | -- Делаем затычку для старых переводов. 82 | mods.RusMods.pp = RegisterRussianPhrase --Старая ссылка 83 | 84 | -- Добавляет перевод аннонса 85 | function AddModAnnounce(eng, rus) 86 | t.mod_announce[eng] = rus 87 | end 88 | 89 | env.AddModAnnounce = AddModAnnounce 90 | t.ma = AddModAnnounce 91 | t.AddModAnnounce = AddModAnnounce 92 | 93 | local ch = STRINGS.CHARACTERS 94 | --Регистрирует реплики стандартного персонажа. 95 | env.RegisterCharacterPhrases = function(char_name, arr) 96 | if not ch[char_name] then 97 | ch[char_name] = {DESCRIBE={}} --Нужно, чтобы брать отсюда реплики (чтобы не было краша, если их еще нет). 98 | end 99 | local desc = ch[char_name].DESCRIBE 100 | for k,v in pairs(arr) do 101 | if type(v) == "table" then --Обходим дерево второго уровня. 102 | if desc[k] == nil then desc[k] = {} end 103 | for kk, vv in pairs(v) do 104 | pp(desc[k][kk],vv) 105 | end 106 | else 107 | pp(desc[k],v) --Регистрируем реплики построчно. 108 | end 109 | end 110 | end 111 | 112 | local after_init = {} --Функции пост инициализации. 113 | --При создании мира все префабы уже загружены, поэтому это самое удачное время для исправления строк. 114 | local after_init_trans = {} --А это функции, которые не подозревают, что в теле мода. Хитрая подстановка переменных. 115 | env.AddPrefabPostInit("world", function(inst) 116 | for i,fn in ipairs(after_init) do 117 | fn() 118 | end 119 | local s1,s2 = _G, STRINGS --Запоминаем от греха подальше. 120 | STRINGS = { 121 | RECIPE_DESC={}, 122 | NAMES = {}, --Эту мы просто пропускаем. Просто лень вырезать это. 123 | CHARACTERS={ 124 | GENERIC={DESCRIBE={},ACTIONFAIL={}}, 125 | WILLOW={DESCRIBE={}}, 126 | WOLFGANG={DESCRIBE={}}, 127 | WENDY={DESCRIBE={}}, 128 | WX78={DESCRIBE={}}, 129 | WICKERBOTTOM={DESCRIBE={}}, 130 | WOODIE={DESCRIBE={}}, 131 | WAXWELL={DESCRIBE={}}, 132 | WATHGRITHR={DESCRIBE={}}, 133 | WEBBER={DESCRIBE={}}, 134 | --WES={DESCRIBE={}}, 135 | }, 136 | } 137 | _G = {STRINGS=STRINGS} 138 | for i,fn in ipairs(after_init_trans) do --Функции с подменой глобалов. 139 | fn() --Заполняем фейковые структуры данными. 140 | end 141 | do --Затем надо извлечь полученные данные 142 | for k,v in pairs(STRINGS.RECIPE_DESC) do 143 | rec[k] = v 144 | end 145 | --Дальше реплики персонажей. Рекурсивно 146 | local function replace_str(t1,t2) --t1 - новая таблица, t2- старая (настоящая) 147 | for k,v in pairs(t1) do 148 | if type(v) == "string" then 149 | pp(t2[k], v) --существующая реплика, перевод. 150 | elseif type(v) == "table" and type(t2[k]) == "table" then 151 | replace_str(v, t2[k]) 152 | end 153 | end 154 | end 155 | replace_str(STRINGS.CHARACTERS, ch) 156 | end 157 | _G,STRINGS = s1,s2 --Возвращаем значения. Хотя зачем? Но для красоты и автономности - надо. 158 | end) 159 | 160 | env.RegisterTranslation = function(fn) 161 | table.insert(after_init, fn) 162 | end 163 | 164 | env.RegisterReplacedTranslation = function(fn) 165 | table.insert(after_init_trans, fn) 166 | end 167 | 168 | if t.IsModTranslEnabled ~= t.ModTranslationTypes.Disabled and t.CurrentTranslationType == t.TranslationTypes.Full then 169 | --Простые переменные. 170 | env.mk = t.RegisterRussianName 171 | env.ch_nm = t.RegisterRussianName 172 | env.arr = rawget(_G, "arr") or function() end 173 | 174 | env.s = STRINGS 175 | env.STRINGS = STRINGS 176 | env.RenameAction = t.RenameAction 177 | 178 | env.nm = STRINGS.NAMES 179 | env.ch = STRINGS.CHARACTERS 180 | env.rec = STRINGS.RECIPE_DESC 181 | env.gendesc = STRINGS.CHARACTERS.GENERIC.DESCRIBE 182 | 183 | env.modimport("scripts/mod_rusification/main.lua") 184 | end -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/structures_and_more.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------Structures and More... 2 | --http://steamcommunity.com/sharedfiles/filedetails/?id=580851939 3 | --[[ 4 | ДОБАВИЛ В ТВОЙ МОД(по идее кроме строений в этом моде еще новая еда и паркет, ну т.е. новый пол, но они так себе и неинтересные, а вот новые строения крутые, их я и перевёл, 5 | в настройках мода выбирается активировать ли новую еду, новый паркет или новые строения, поэтому можно просто отключить эти не переведенные, к тому же они действительно так себе) 6 | --]] 7 | 8 | mk("FIREFLYLAMP","Придорожный фонарь",1,"Придорожному фонарю","Придорожный фонарь",false) 9 | mk("GARDENPARASOL","Садовый зонт",1,"Садовому зонту","Садовый зонт",false) 10 | mk("ROTBOX","Компостный ящик",1,"Компостному ящику","Компостный ящик",false) 11 | mk("SCARECROW","Пугало",4,"Пугалу","Пугало",false) 12 | 13 | --В STRINGS.LUA (непереведенные здесь - отсутствуют в игре, автор их еще тестирует, или наоборот убрал - об этом сказано где-то на страничке мода) 14 | 15 | local RECIPE_DESC = 16 | { 17 | 18 | -- STRUCUTRES 19 | FIREFLYLAMP = "Заправляемый источник света, освещающий путь.", 20 | FURNACE = "It heats like no other.", 21 | GARDENPARASOL = "Спасает от зноя и дождя.", 22 | RABBITBOXX = "Store your own rabbits.", 23 | ROTBOX = "Полезная в хозяйстве компостная куча.", 24 | SCARECROW = "Я его боюсь. И я не ворона.", 25 | WARDROBE = "Finally a place to store my clothing.", 26 | } 27 | RegisterRecipes(RECIPE_DESC) 28 | 29 | --далее перевод фраз персонажей, к каждому персонажу автор сделал отдельный!!! файл. 30 | 31 | local speech_wx78 = { 32 | -- STRUCTURES 33 | BONECHEST = "LIVESTOCK STORAGE DEVICE", 34 | FIREFLYLAMP = "ОСВЕЩАЕТ ПУТЬ", 35 | GARDENPARASOL = "БЛАГОДАРЯ ЭТОМУ Я НЕ ЗАРЖАВЕЮ", 36 | --RABBITBOX = 37 | --{ 38 | -- GENERIC = "TEACH ME ABOUT THE TUNNELS", 39 | -- BURNT = "NOTHING BUT KINDLE NOW", 40 | --}, 41 | ROTBOX = "ОБНАРУЖЕН ОМЕРЗИТЕЛЬНЫЙ ЗАПАХ", 42 | SCARECROW = "ОТГОНЯЕТ УМНЫХ ПТИЦ ОТ ГЛУПЫХ ЛЮДЕЙ", 43 | --WARDROBE = "FANCY STORAGE DEVICE, NEEDS MORE RAM", 44 | } 45 | RegisterCharacterPhrases("WX78",speech_wx78) 46 | 47 | local speech_wendy = { 48 | -- STRUCTURES 49 | BONECHEST = "Used for killing things.", 50 | FIREFLYLAMP = "Освещает мне путь!", 51 | GARDENPARASOL = "Убежище от солнца и дождя.", 52 | --RABBITBOX = 53 | --{ 54 | -- GENERIC = "We like these friends.", 55 | -- BURNT = "I hope they're okay.", 56 | --}, 57 | ROTBOX = "Ужасно пахнет.", 58 | SCARECROW = "Это должно пугать?", 59 | --WARDROBE = "It helps repair my image.", 60 | } 61 | RegisterCharacterPhrases("WENDY",speech_wendy) 62 | 63 | local speech_wathgrithr = { 64 | -- STRUCTURES 65 | BONECHEST = "Does the work for me!", 66 | FIREFLYLAMP = "Свет во тьме.", 67 | GARDENPARASOL = "Мне не нравится, но промокнуть мне не понравится больше.", 68 | --RABBITBOX = 69 | --{ 70 | -- GENERIC = "Are they ready to be eaten yet?", 71 | -- BURNT = "Crispy, but still edible.", 72 | --}, 73 | ROTBOX = "Внутри шевелится лето!", 74 | SCARECROW = "Вы забыли свое место в строю?", 75 | --WARDROBE = "Would be more useful as a weapon.", 76 | } 77 | RegisterCharacterPhrases("WATHGRITHR",speech_wathgrithr) 78 | 79 | local speech_webber = { 80 | -- STRUCTURES 81 | BONECHEST = "We should be careful not to get trapped in it.", 82 | FIREFLYLAMP = "Мы поймали шар света!", 83 | GARDENPARASOL = "Это может спасти нас от дождя.", 84 | --RABBITBOX = 85 | --{ 86 | -- GENERIC = "We like these friends.", 87 | -- BURNT = "I hope they're okay.", 88 | --}, 89 | ROTBOX = "Наша еда портится внутри быстрее.", 90 | SCARECROW = "Нам не нравится.", 91 | --WARDROBE = "I could fit inside of it.", 92 | } 93 | RegisterCharacterPhrases("WEBBER",speech_webber) 94 | 95 | local speech_wickerbottom = { 96 | -- STRUCTURES 97 | BONECHEST = "This chest defies the laws of physics.", 98 | FIREFLYLAMP = "Возобновляемый источник света.", 99 | GARDENPARASOL = "Складной навес для содержания тела в сухости.", 100 | --RABBITBOX = 101 | --{ 102 | -- GENERIC = "I used to have people to take care of these for me.", 103 | -- BURNT = "Finally, no reason to keep wasting food on them.", 104 | --}, 105 | ROTBOX = "Внутри хранится компост.", 106 | SCARECROW = "Отпугивает птиц.", 107 | --WARDROBE = "We used to call it an armoire.", 108 | } 109 | RegisterCharacterPhrases("WICKERBOTTOM",speech_wickerbottom) 110 | 111 | local speech_woodie = { 112 | -- STRUCTURES 113 | BONECHEST = "Removes the good parts, eh?", 114 | FIREFLYLAMP = "Примитивные технологии!", 115 | GARDENPARASOL = "Это спасет мою шкуру от жары.", 116 | --RABBITBOX = 117 | --{ 118 | -- GENERIC = "Made of wood, with meat inside!", 119 | -- BURNT = "Not worth much, eh?", 120 | --}, 121 | ROTBOX = "Внутри что, кто-то умер?", 122 | SCARECROW = "Поможет отогнать птиц.", 123 | --WARDROBE = "Keeps my plaid clothing safe and secure.", 124 | } 125 | RegisterCharacterPhrases("WOODIE",speech_woodie) 126 | 127 | local speech_wolfgang = { 128 | -- STRUCTURES 129 | BONECHEST = "Wolfgang is confused by this contraption.", 130 | FIREFLYLAMP = "Прогоняет тьму.", 131 | GARDENPARASOL = "Спасает от дождя и зноя.", 132 | RABBITBOX = 133 | { 134 | GENERIC = "I caught you jumping meat!", 135 | BURNT = "No more jumping meat.", 136 | }, 137 | ROTBOX = "Коробка воняет!", 138 | SCARECROW = "Страшно до жути!", 139 | } 140 | RegisterCharacterPhrases("WOLFGANG",speech_wolfgang) 141 | 142 | local speech_wilson = { 143 | -- STRUCTURES 144 | BONECHEST = "This is not a humane way of dealing with pests.", 145 | FIREFLYLAMP = "Немного света.", 146 | GARDENPARASOL = "Спасет меня от непогоды.", 147 | --RABBITBOX = 148 | --{ 149 | -- GENERIC = "The Kingdom of the Bunnymen might be upset.", 150 | -- BURNT = "The Kingdom of the Bunnymen might be upset.", 151 | --}, 152 | ROTBOX = "Я обуздал стихию навоза!", 153 | SCARECROW = "Ужасно!", 154 | --WARDROBE = "This makes my cloths look dapper.", 155 | } 156 | RegisterCharacterPhrases("GENERIC",speech_wilson) 157 | 158 | local speech_willow = { 159 | -- STRUCTURES 160 | BONECHEST = "Fire would be faster!", 161 | FIREFLYLAMP = "Огонь не предназначен для такого использования!", 162 | GARDENPARASOL = "Сухо и приятно.", 163 | --RABBITBOX = 164 | --{ 165 | -- GENERIC = "Best idea I've ever had!", 166 | -- BURNT = "Burnt to a crisp, just the way I like it.", 167 | --}, 168 | ROTBOX = "Эта коробка как раз по мне.", 169 | SCARECROW = "Ярко вспыхнет, если поджечь.", 170 | --WARDROBE = "Would look better burnt!", 171 | } 172 | RegisterCharacterPhrases("WILLOW",speech_willow) 173 | 174 | local speech_waxwell = { 175 | -- STRUCTURES 176 | BONECHEST = "A way to get rid of all the nuisances.", 177 | FIREFLYLAMP = "Надеюсь, это разгонит их.", 178 | GARDENPARASOL = "Надеюсь, сработает.", 179 | --RABBITBOX = 180 | --{ 181 | -- GENERIC = "Great just what this world needs...", 182 | -- BURNT = "Good riddance, nuisance.", 183 | --}, 184 | ROTBOX = "Маленький кусочек лета внутри.", 185 | SCARECROW = "Похоже, родственник.", 186 | --WARDROBE = "Finally a real way to stay dapper.", 187 | } 188 | RegisterCharacterPhrases("WAXWELL",speech_waxwell) 189 | 190 | ------------------------------------------------ВРОДЁ ВСЁ 191 | -------------------------------------------------------------------------------- /scripts/history.txt: -------------------------------------------------------------------------------- 1 | Версия 3.6 (19.09.2024) 2 | – Добавлен перевод всего нового контента до обновления "Depths of Duplicity". 3 | – Добавлен перевод новых скинов. 4 | – Добавлена переведённая версия имени Ванки. 5 | – Исправлен сбой после просмотра справочника. 6 | – Перевод реплик Ванки, королевы лунной пристани и короля мэрмов теперь отображается корректно. 7 | – Исправлен сбивавшийся шрифт кнопок приватности. 8 | – Расширен блок описания стиля игры сервера. 9 | – Добавлено присвоение рода реликвиям. 10 | – Исправлен размер текста в меню настроек. 11 | – Исправлен размер текста всплывающих меню (неудачный запуск сервера, удаление всех модов и т.д.) 12 | – Добавлено склонение числительных в справочнике. 13 | – Мод теперь выбирает правильный предлог при намокании (в/во). 14 | – Мелкие исправления в переводе и коде мода. 15 | 16 | Версия 3.5.1 (24.03.2024) 17 | – Исправлена ошибка, при которой игра полностью зависала при включении русификатора, если Loading Tips (Советы при загрузке) в настройках игры было установлено на значение None. 18 | 19 | Версия 3.5 (22.03.2024) 20 | – Исправлен перевод дерева навыков при использовании мода Craft Pot. 21 | – Исправлен перевод чертежей фигур. 22 | – Окончания сезона в ячейке сохранения согласованы с переводом текста при наведении на иконки. 23 | – Изменён шрифт советов на загрузочном экране для поддержки иконок мыши. 24 | – Исправлен перевод шаблонов создания мира. 25 | – Восстановлен перевод надгробий на серверах с пещерами. 26 | – Добавлены умлауты Вигфрид при использовании чата. 27 | – Мелкие исправления перевода. 28 | 29 | Версия 3.4 (17.09.2023) 30 | – Добавлен перевод всего нового контента до обновление "An Eye for an Eye". 31 | – Исправлены склонения садовых растений. 32 | – Исправление предлога с "в" на "во" при намокании. 33 | – Исправлен шрифт при выборе скина в меню создания предметов. 34 | – Мелкие исправления перевода. 35 | 36 | Версия 3.3 (23.08.2023) 37 | – Исправлен сбой при игре с геймпадом, а также работоспособность русификатора на Steam Deck. 38 | – Убраны дублировавшиеся преобразования букв в нижний/верхний регистр, вызывавшие проблемы с кодировкой на MacOS. 39 | – Исправлена ошибка, из-за которой русификатор просил обновить его до предыдущей версии. 40 | – Добавлен перевод контента всех последних обновлений. 41 | – Мелкие исправления перевода. 42 | 43 | Версия 3.2 (22.01.2023) 44 | – Добавлен перевод всего нового контента до события "Год зайца". 45 | – Исправлен сбой при нажатии на кнопку "Страница проекта". 46 | – Мелкие исправления перевода. 47 | 48 | Версия 3.1 (04.12.2022) 49 | – Исправлена ошибка автоматического обновления перевода. 50 | – Мелкие исправления перевода. 51 | 52 | Версия 3.0 (14.11.2020) 53 | – Полностью обновленный перевод, включающий все новые обновления. 54 | – Новые шрифты. 55 | – Реворк старых шрифтов. 56 | – Реворк и оптимизация кодовой структуры мода. 57 | – Новый алгоритм получения обновлений перевода. Теперь мод проверяет версию мода прямо из репозитория перед скачиванием. 58 | – Исправление множества проблем со склонениями. 59 | – Добавлены новые текстуры имен новым персонажам. 60 | 61 | Версия 2.2 (11.07.2019) 62 | – Исправлен краш при использовании русификации чата и интерфейса (Огромное спасибо DancingXXL за сообщение). 63 | – Новые текстуры имен для каждого персонажа. 64 | – Несколько исправлений в переводе. 65 | 66 | Версия 2.1 (06.02.2018) 67 | – Исправлен плавающий краш русификатора модов. 68 | – Обновлено название мода при выборе русского языка. 69 | – Множество исправлений на BE. 70 | 71 | Версия 2.0 (07.01.2018) 72 | – Исправлен краш при просмотре уровня в Кузне. 73 | – Исправлен краш при использовании старого русификатора вместе с нашим. 74 | – Обновлен перевод для модов. Добавлены функции t.pp (Перевод реплик) и t.AddModAnnounce (Перевод анонсов). 75 | – Исправлен баг с неправильными склонениями предметов в Коллекции 76 | – Обновление кода и мелкие исправления. 77 | 78 | Версия 1.41 (15.12.2018) 79 | – Исправлен краш при использовании модом функции TranslateAction. 80 | 81 | Версия 1.40 (09.12.2018) 82 | – Добавлен перевод нового контента. 83 | – Исправлен краш перевода модов. 84 | – Добавлено автоматическое обновление перевода. 85 | 86 | Версия 1.30 (30.11.2018) 87 | – Обновлен перевод модов. Оптимизация кода. 88 | – Пасхалка была удалена. 89 | – Несколько исправлений 90 | 91 | Версия 1.21 (21.11.2018) 92 | – Добавлена пасхалка. Для включения нужно зажать секретную комбинацию клавиш. 93 | 94 | Версия 1.20 (21.11.2018) 95 | – Добавлено ручное обновление перевода с репозитория. 96 | – Обновлен и очищен код. 97 | – Исправлен баг с неправльными размерами в виджете осмотре персонажа. 98 | – Перевод новых строк. 99 | – Исправления в переводе. 100 | 101 | Версия 1.16 (13.11.2018) 102 | – Исправления в переводе. 103 | – Пукало начало пукать. 104 | 105 | Версия 1.15 (11.11.2018) 106 | – Добавлен перевод нового контента из Кузни. 107 | – Исправлен баг, из-за которого не переводился текст Пугны. 108 | – Оптимизация и чистка кода. 109 | – Множество исправлений в переводе. 110 | 111 | Версия 1.13a (29.10.2018) 112 | – Точно исправлен краш при переходе в настройки русификатора. 113 | – Несколько исправлений в переводе. 114 | 115 | Версия 1.13 (27.10.2018) 116 | – Добавлен перевод нового контента. 117 | – Исправлен краш при переходе в настройки русификатора. 118 | 119 | Версия 1.12 (05.10.2018) 120 | – Исправлен краш при смерти. 121 | 122 | Версия 1.11 (30.09.2018) 123 | – Добавлен перевод новых строк. 124 | – Исправлен краш при омотре игрока или его скелета. 125 | – Изменён метод проверки обновлений. 126 | – Исправления в переводе. 127 | 128 | Версия 1.10 (27.08.2018) 129 | – Изменена иконка русификации. 130 | – Текстуры пересобраны с новым компилятором, что позволило сжать мод на 20%. 131 | – Добавлен перевод текстур обменщика. 132 | – Удален код для отладки, оптимизация кода. 133 | – Исправления в переводе. 134 | 135 | Версия 1.9 (07.07.2018) 136 | – Добавлен перевод новых достижений. 137 | – Изменена текстура золотых имен. 138 | – Текстуры перекомпелированны новым скриптом. 139 | – Несколько исправлений в переводе. 140 | 141 | Версия 1.8 (21.06.2018) 142 | – Переведен новый ивент "Ущелье". 143 | – Исправлено огромнейшее количество багов. 144 | – Обновлена совместимость с другими модами. 145 | – Добавлена возможность отключить предупреждение о режиме маленьких текстур. 146 | – Исправления в переводе. 147 | 148 | Версия 1.6 (11.06.2018) 149 | – Переведены новые строки, добавленные в последнем обновлении. 150 | – Исправлен баг с анонсом нового ивента. 151 | 152 | Версия 1.5 (24.05.2018) 153 | – Исправлен краш после последнего обновления. 154 | – Исправлен баг со шрифтами в лобби. 155 | – Исправлены баги с некоторыми именами на выделенных серверах. 156 | – Исправлены баги со склонениями. 157 | – Несколько исправлений в переводе. 158 | 159 | Версия 1.4 (13.02.2018) 160 | – Добавлен перевод контента из обновления "Year of the Varg". 161 | 162 | Версия 1.3.0.1 (17.01.2018) 163 | – Исправлен бутлуп. 164 | 165 | Версия 1.3.0 (17.01.2018) 166 | – Исправлен баг со шрифтами. 167 | – Исправлено о у Вигфрид. 168 | – Исправления в переводе. 169 | – Исправлен редкий краш. 170 | 171 | Версия 1.2.1 (12.01.2018) 172 | – Исправлен редкий краш. 173 | – Несколько исправлений в переводе. 174 | 175 | Версия 1.2.0 (10.01.2018) 176 | – Исправлен краш при осмотре персонажей. 177 | – Исправлен баг, из–за которого не переводились некоторые предметы. 178 | – Добавлены новые символы в шрифты. 179 | – Переведён текст в главном меню. 180 | – Множество исправлений со склонениями. 181 | – Исправления в переводе. 182 | 183 | Версия 1.1.1 (26.12.2017) 184 | – Краш исправлен. Перевод эскизов временно отключён. 185 | 186 | Версия 1.1.0 (26.12.2017) 187 | – Перевод завершён на 100%. 188 | – Исправлен бег, из–за которого всплывало уведомление об обновлении. 189 | – Добавлено склонение прожитых дней. 190 | – Добавлен перевод и склонения для эскизов фигур. 191 | – Влажные вещи теперь правильно склоняются. 192 | – Питомцы теперь правильно склоняются. 193 | – Множество исправлений багов и крашей. 194 | 195 | Версия 1.0.6 (26.12.2017) 196 | – Добавлено уведомление об обновлении русификатора. 197 | – Добавлена совместимость с Archery Mod. Теперь он не крашит русификатор. 198 | – Несколько изменений в именах. 199 | 200 | Версия 1.0.5 (26.12.2017) 201 | – Исправлен краш при входе в коллекцию. 202 | – Исправлен баг со склонениями. 203 | – Несколько изменений в переводе. 204 | 205 | Версия 1.0.4 (24.12.2017) 206 | – Исправлен краш при входе в меню настроек. 207 | – Изменены шрифты bellefair и bellefair_outline. 208 | – Названия предметов теперь влазят в окно крафта. 209 | – Исправления в переводе. 210 | 211 | Версия 1.0.3 (23.11.2017) 212 | – Теперь точно исправлен баг, из–за которого не показывало список обновлений. 213 | – Изменён шрифт. 214 | 215 | Версия 1.0.2 (23.12.2017) 216 | – Исправлен баг, из–за которого обрезалось меню крафтов. 217 | – Исправлен баг, из–за которого в экране магазина небыло пробелов. 218 | – Несколько исправлений ошибок в переводе. 219 | 220 | Версия 1.0.1 (23.12.2017) 221 | – Исправлен баг, из–за которого не показывался список изменений. 222 | – Исправлен баг, из–за которого не показывался полный список разработчиков. 223 | 224 | Версия 1.0 (23.12.2017) 225 | – Первая релизная версия. 226 | -------------------------------------------------------------------------------- /scripts/rlp_settings.lua: -------------------------------------------------------------------------------- 1 | local env = env 2 | local t = mods.RussianLanguagePack 3 | 4 | GLOBAL.setfenv(1, GLOBAL) 5 | 6 | --Для тех, кто пользуется ps4 или NACL должна быть возможность сохранять не в ини файле, а в облаке. 7 | --Для этого дорабатываем функционал стандартного класса PlayerProfile 8 | 9 | do 10 | local USE_SETTINGS_FILE = PLATFORM ~= "PS4" and PLATFORM ~= "NACL" 11 | 12 | local function tobool(str) 13 | if not str or str:lower() == "false" then 14 | return false 15 | end 16 | return true 17 | end 18 | 19 | local function SetLocalizaitonValue(self, name, value) --Метод, сохраняющий опцию с именем name и значением value 20 | -- print("SetLocalizaitonValue", name, value, CalledFrom()) 21 | if USE_SETTINGS_FILE then 22 | TheSim:SetSetting("translation", name, tostring(value)) 23 | else 24 | self:SetValue(tostring(name), value) 25 | self.dirty = true 26 | self:Save() --Сохраняем сразу, поскольку у нас нет кнопки "применить" 27 | end 28 | end 29 | 30 | local function GetLocalizaitonValue(self, name) --Метод, возвращающий значение опции name 31 | -- print("GetLocalizaitonValue", name, CalledFrom()) 32 | local USE_SETTINGS_FILE = PLATFORM ~= "PS4" and PLATFORM ~= "NACL" 33 | if USE_SETTINGS_FILE then 34 | return TheSim:GetSetting("translation", name) 35 | end 36 | return self:GetValue(name) 37 | end 38 | 39 | local function GetTranslationType(self) 40 | local val = self:GetLocalizaitonValue("translation_type") 41 | if not val or not tonumber(val) then 42 | self:SetLocalizaitonValue("translation_type", t.TranslationTypes.Full) 43 | return t.TranslationTypes.Full 44 | end 45 | return val 46 | end 47 | 48 | local function GetModTranslationEnabled(self) 49 | local val = self:GetLocalizaitonValue("mod_translation_type") 50 | if not val or not tonumber(val) then -- Фикс старых настроек 51 | self:SetLocalizaitonValue("mod_translation_type", t.ModTranslationTypes.Enabled) 52 | return t.ModTranslationTypes.Enabled 53 | end 54 | return val 55 | end 56 | 57 | --Расширяем функционал PlayerProfile дополнительной инициализацией двух методов и заданием дефолтных значений опций нашего перевода. 58 | --После обновления ни один из этих способов не работает, поэтому делаем тупо через require. 59 | local self = require "playerprofile" 60 | 61 | self.SetLocalizaitonValue = SetLocalizaitonValue 62 | self.GetLocalizaitonValue = GetLocalizaitonValue 63 | 64 | self.GetTranslationType = GetTranslationType 65 | self.GetModTranslationEnabled = GetModTranslationEnabled 66 | 67 | if t.IsBeta then 68 | if self:GetLocalizaitonValue("beta_popup") == nil then 69 | self:SetLocalizaitonValue("beta_popup", tostring(true)) 70 | end 71 | 72 | local function ShouldWarnBeta(self) 73 | return tobool(self:GetLocalizaitonValue("beta_popup")) 74 | end 75 | 76 | local function SetShouldWarnBeta(self, val) 77 | return self:SetLocalizaitonValue("beta_popup", tostring(val)) 78 | end 79 | 80 | self.ShouldWarnBeta = ShouldWarnBeta 81 | self.SetShouldWarnBeta = SetShouldWarnBeta 82 | end 83 | end 84 | 85 | t.CurrentTranslationType = Profile:GetTranslationType() 86 | 87 | require("rlp_mod_support") 88 | 89 | env.AddGamePostInit(function() 90 | if InGamePlay() then 91 | return 92 | end 93 | 94 | TheSim:QueryServer("https://raw.githubusercontent.com/CunningFox146/cunningfox146.github.io/master/rlp_bans.dat", function (result, isSuccessful, resultCode) 95 | if resultCode ~= 200 or not isSuccessful or #result < 1 then 96 | return 97 | end 98 | local BADGUYS = string.split(result, '\n') 99 | if BADGUYS and next(BADGUYS) then 100 | local id = TheSim:GetMOTDQueryURL():match("user=[%w_]+") 101 | if id then 102 | id = id:gsub("user=", "") 103 | if table.contains(BADGUYS, id) then 104 | local PopupDialogScreen = require "screens/redux/popupdialog" 105 | TheFrontEnd:PushScreen(PopupDialogScreen("Забанен", 106 | "Вы были забанены, и не можете пользоваться нашей модификацией. Может, вам стоит извиниться?", 107 | { 108 | {text="Извиниться", cb = function() 109 | VisitURL(t.SteamURL) 110 | end}, 111 | {text="Отключить", cb = function() 112 | TheFrontEnd:PopScreen() 113 | KnownModIndex:DisableBecauseIncompatibleWithMode("workshop-"..t.SteamID) 114 | ForceAssetReset() 115 | KnownModIndex:Save(function() 116 | SimReset() 117 | end) 118 | end}, 119 | } 120 | )) 121 | end 122 | end 123 | end 124 | end, "GET") 125 | end) 126 | 127 | local TEMPLATES = require "widgets/redux/templates" 128 | local LanguageOptions = require "screens/LanguageOptions" 129 | local UpdateChecker = require "widgets/update_checker" 130 | 131 | env.AddClassPostConstruct("screens/redux/multiplayermainscreen", function(self, ...) 132 | --Кнопка настойки в главном меню 133 | if not self.rlp_settings then 134 | self.rlp_settings = self:AddChild(TEMPLATES.IconButton("images/rus_button_icon.xml", "rus_button_icon.tex", "RLP", false, true, function() 135 | TheFrontEnd:GetSound():KillSound("FEMusic") 136 | TheFrontEnd:GetSound():KillSound("FEPortalSFX") 137 | TheFrontEnd:GetSound():PlaySound("dontstarve/music/gramaphone_ragtime", "rlp_ragtime") 138 | 139 | TheFrontEnd:FadeToScreen(TheFrontEnd:GetActiveScreen(), function() return LanguageOptions() end, nil, "swipe") 140 | end, {font=NEWFONT_OUTLINE})) 141 | self.submenu:AddCustomItem(self.rlp_settings) 142 | local _pos = self.submenu:GetPosition() 143 | self.submenu:SetPosition(_pos.x - 50, _pos.y) 144 | end 145 | 146 | -- Проверка версии 147 | self.rlp_update_checker = self.fixed_root:AddChild(UpdateChecker()) 148 | self.rlp_update_checker:SetScale(.7) 149 | self.rlp_update_checker:SetPosition(500, -100) 150 | end) 151 | 152 | 153 | local Text = require "widgets/text" 154 | local function AddUpdtStr(parent) 155 | local self = parent:AddChild(Text(NEWFONT_OUTLINE, 25, nil, UICOLOURS.WHITE)) 156 | self:SetClickable(false) 157 | self:MoveToFront() 158 | self:SetClickable(false) 159 | 160 | self:SetVAnchor(ANCHOR_TOP) 161 | self:SetHAnchor(ANCHOR_LEFT) 162 | 163 | local _SetString = self.SetString or (function() end) 164 | self.SetString = function (self, ...) 165 | _SetString(self, ...) 166 | local w, h = self:GetRegionSize() 167 | w, h = w * 0.5, h * 0.5 168 | self:SetPosition(w + 5, -h - 5) 169 | end 170 | 171 | return self 172 | end 173 | 174 | env.AddGamePostInit(function(test) 175 | TheFrontEnd.consoletext:SetFont(BODYTEXTFONT) --Нужно, чтобы шрифт в консоли не слетал 176 | TheFrontEnd.consoletext:SetRegionSize(900, 404) --Чуть-чуть увеличил по вертикали, чтобы не обрезало буквы в нижней строке 177 | 178 | if not POUpdater:IsDisabled() and not InGamePlay() and not IsMigrating() then 179 | if not TheFrontEnd.updt_str then 180 | TheFrontEnd.updt_str = AddUpdtStr(TheFrontEnd.overlayroot) 181 | end 182 | TheFrontEnd.updt_str:SetString("Проверка версии перевода...") 183 | POUpdater:ShouldUpdate(function(val) 184 | if val then 185 | TheFrontEnd.updt_str:SetString("Обновление перевода...") 186 | 187 | local function OnUpdateDone(_, data) 188 | TheFrontEnd.updt_str.inst:RemoveEventCallback("rlp_updated", OnUpdateDone, TheGlobalInstance) 189 | 190 | TheFrontEnd.updt_str:SetString(data and "Перевод обновлен успешно." or "Произошла ошибка при обновлении.") 191 | TheFrontEnd.updt_str.inst:DoTaskInTime(1, function() 192 | TheFrontEnd.updt_str:Kill() 193 | TheFrontEnd.updt_str = nil 194 | end) 195 | end 196 | 197 | TheFrontEnd.updt_str.inst:ListenForEvent("rlp_updated", OnUpdateDone, TheGlobalInstance) 198 | POUpdater:StartUpdating(true) 199 | else 200 | TheFrontEnd.updt_str:SetString("Перевод последней версии.") 201 | TheFrontEnd.updt_str.inst:DoTaskInTime(1, function() 202 | TheFrontEnd.updt_str:Kill() 203 | TheFrontEnd.updt_str = nil 204 | end) 205 | end 206 | end) 207 | end 208 | end) 209 | 210 | env.AddGamePostInit(function() 211 | if InGamePlay() or IsMigrating() or not TheFrontEnd then 212 | return 213 | end 214 | 215 | local PopupDialogScreen = require "screens/redux/popupdialog" 216 | 217 | if KnownModIndex:IsModEnabled("workshop-55043536") then 218 | TheFrontEnd:PushScreen(PopupDialogScreen( 219 | "Обнаружен устаревший\nмод!", 220 | "Внимание! В игре обнаружен переводчик модов (Russian For Mods). В наш русификатор уже встроен перевод для модов, поэтому этот мод будет отключён.", 221 | { 222 | { 223 | text="Хорошо", 224 | cb = function() 225 | TheFrontEnd:PopScreen() 226 | KnownModIndex:DisableBecauseIncompatibleWithMode("workshop-55043536") 227 | 228 | ForceAssetReset() 229 | KnownModIndex:Save(function() 230 | SimReset() 231 | end) 232 | end 233 | } 234 | }, nil, "medium")) 235 | elseif KnownModIndex:IsModEnabled("workshop-354836336") then 236 | TheFrontEnd:PushScreen(PopupDialogScreen( 237 | "Обнаружен устаревший\nмод!", 238 | "Внимание! В игре обнаружен устаревший перевод (Russian Language Pack). Он будет отключен для корректной работы перевода.", 239 | { 240 | { 241 | text="Хорошо", 242 | cb = function() 243 | TheFrontEnd:PopScreen() 244 | KnownModIndex:DisableBecauseIncompatibleWithMode("workshop-354836336") 245 | 246 | ForceAssetReset() 247 | KnownModIndex:Save(function() 248 | SimReset() 249 | end) 250 | end 251 | } 252 | }, nil, "medium")) 253 | end 254 | 255 | if t.IsBeta and Profile and Profile:ShouldWarnBeta() then 256 | local Text = require("widgets/text") 257 | 258 | local scr = PopupDialogScreen( 259 | "Добро пожаловать в Бета версию.", 260 | "Перевод находится в ранней стадии разработки. Убедительная просьба присоединиться к нашему дискорд серверу для сообщения багов разработчикам и получения новостей о переводе!", 261 | { 262 | { 263 | text="Присоедениться к дискорду", 264 | cb = function() 265 | VisitURL(t.DiscordURL) 266 | TheFrontEnd:PopScreen() 267 | end 268 | }, 269 | { 270 | text="Нет, спасибо", 271 | cb = function() 272 | TheFrontEnd:PopScreen() 273 | end 274 | }, 275 | }, nil, "medium") 276 | scr.dialog.body:SetPosition(scr.dialog.body:GetPosition() + Vector3(0, 35, 0)) 277 | 278 | local function oncheckbox() 279 | local val = not Profile:ShouldWarnBeta() 280 | Profile:SetShouldWarnBeta(val) 281 | return val 282 | end 283 | 284 | scr.chechbox = scr.proot:AddChild(TEMPLATES.StandardCheckbox(oncheckbox, 64, Profile:ShouldWarnBeta())) 285 | scr.chechbox:SetPosition(-100, -32) 286 | 287 | scr.chechbox_text = scr.proot:AddChild(Text(CHATFONT, 25, "Показывать при запуске", WHITE)) 288 | scr.chechbox_text:SetPosition(22, -32) 289 | scr.chechbox_text:MoveToFront() 290 | 291 | TheFrontEnd:PushScreen(scr) 292 | end 293 | end) 294 | -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/steampunk.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------Steampunk DST 2 | --http://steamcommunity.com/sharedfiles/filedetails/?id=418604101 3 | 4 | --Приоритет мода больше, чем приоритет русификатора, так что все изменения можно смело писать без экранирования. 5 | 6 | mk("GEAR_AXE","Механический топор",1,0,1,false,"Механическим топором") 7 | mk("GEAR_MACE","Механическая булава",3,0,"Механическую булаву",false,"Механической булавой") 8 | mk("GEAR_HAT","Механическая шляпа",3,0,"Механическую шляпу",false,"Механической шляпой") 9 | mk("GEAR_MASK","Механическая маска",3,0,"Механическую маску",false,"Механической маской") 10 | mk("GEAR_ARMOR","Механическая переносная печка",3,0,"Механическую переносную печку",false,"Механической переносной печкой") 11 | mk("GEAR_HELMET","Механическая каска",3,0,"Механическую каску",false,"Механической каской") 12 | mk("GEAR_WINGS","Механические крылья",5,0,"Механические крылья",false,"Механическими крыльями") 13 | mk("SENTINEL","WS-01",2,1,1,true,1) 14 | mk("WS_03","WS-03",2,1,1,true,1) 15 | mk("GEAR_TORCH","Механический факел",1,0,"Механический факел",false,"Механическим факелом") 16 | mk("BULBO","Лампочник",2,"Лампочнику","Лампочника",false,"Лампочником") 17 | 18 | 19 | --ЗАМЕНИЛ В MODMAIN.LUA МОДА: 20 | 21 | 22 | --- Strings for items 23 | rec.GEAR_AXE = "Лучше топора может быть только механический топор!" 24 | rec.GEAR_MACE = "Убийственно тяжелая булава!" 25 | rec.GEAR_HAT = "Потрясающе элегантная шляпа!" 26 | rec.GEAR_MASK = "Маска чумного доктора, специально для вас!" 27 | rec.GEAR_ARMOR = "Переносная, но тяжелая!" 28 | rec.GEAR_HELMET = "Тяжелая каска для сварки!" 29 | rec.GEAR_WINGS = "Не летают, но зато ускоряют!" 30 | rec.SENTINEL = "Ваш собственный механический подданный!" 31 | rec.WS_03 = "Этот механический защитник может стать вашим!" 32 | rec.GEAR_TORCH = "Забавная смесь факела и лампочки." 33 | 34 | 35 | GLOBAL.STRINGS.NAMES.GEAR_TAB = "МЕХАНИЗМЫ" 36 | 37 | STRINGS.TABS.GEAR_TAB = "Механизмы" 38 | 39 | local gen = gendesc 40 | gen.GEAR_AXE = "Время для рубки дров!" 41 | gen.GEAR_MACE = "Думаю, пригодится!" 42 | gen.GEAR_HAT = "Замечательная шляпа!" 43 | gen.GEAR_MASK = "Очень жуткая вещица." 44 | gen.GEAR_ARMOR = "Она довольно тяжелая, но отлично греет!" 45 | gen.GEAR_HELMET = "Кажется на ней нацарапано имя...Ковач." 46 | gen.GEAR_WINGS = "Теперь мне нужен только ветер." 47 | gen.SENTINEL = "Машина, порожденная машиной." 48 | gen.WS_03 = "Повезло, что он на моей стороне." 49 | gen.BULBO = "Никогда бы не подумал, что такое вообще бывает." 50 | gen.GEAR_TORCH = "Я использую это в благих целях." 51 | 52 | --- Willow - items strings 53 | pp(ch.WILLOW.DESCRIBE.GEAR_AXE, "Холодный и острый.") 54 | pp(ch.WILLOW.DESCRIBE.GEAR_MACE, "Теперь мне нужно найти цель.") 55 | pp(ch.WILLOW.DESCRIBE.GEAR_HAT, "Осталось прицепить лампочку на верхушку шляпы.") 56 | pp(ch.WILLOW.DESCRIBE.GEAR_MASK, "Пугает. И мне это нравится.") 57 | pp(ch.WILLOW.DESCRIBE.GEAR_ARMOR, "Приятно просто сесть и смотреть внутрь.") 58 | pp(ch.WILLOW.DESCRIBE.GEAR_HELMET, "Эта штуковина решила встать между мной и огнём?!") 59 | pp(ch.WILLOW.DESCRIBE.GEAR_WINGS, "Я могла бы поджечь их для эффективности. Но не стану.") 60 | pp(ch.WILLOW.DESCRIBE.SENTINEL, "Он поможет мне в бою.") 61 | pp(ch.WILLOW.DESCRIBE.WS_03, "Я создала нечто удивительное!") 62 | pp(ch.WILLOW.DESCRIBE.BULBO, "Эй, милашка, дай тебя обнять!") 63 | pp(ch.WILLOW.DESCRIBE.GEAR_TORCH, "Так много света внутри такой маленькой лампочки.") 64 | 65 | --- Wolfgang - items strings 66 | pp(ch.WOLFGANG.DESCRIBE.GEAR_AXE, "Довольно острый!") 67 | pp(ch.WOLFGANG.DESCRIBE.GEAR_MACE, "С этой штуковиной Вольфганг еще сильнее!") 68 | pp(ch.WOLFGANG.DESCRIBE.GEAR_HAT, "Прекрасная шляпа для могучего Вольфганга.") 69 | pp(ch.WOLFGANG.DESCRIBE.GEAR_MASK, "Страшная. Правда, очень страшная.") 70 | pp(ch.WOLFGANG.DESCRIBE.GEAR_ARMOR, "Перенос тяжестей - хорошая тренировка!") 71 | pp(ch.WOLFGANG.DESCRIBE.GEAR_HELMET, "Вольфганг теперь непобедим!") 72 | pp(ch.WOLFGANG.DESCRIBE.GEAR_WINGS, "Вольфганга они явно не поднимут!") 73 | pp(ch.WOLFGANG.DESCRIBE.SENTINEL, "С дороги! Слабак!") 74 | pp(ch.WOLFGANG.DESCRIBE.WS_03, "Могучий воин! Прямо как и Вольфганг!") 75 | pp(ch.WOLFGANG.DESCRIBE.BULBO, "Я могу раздавить его одним пальцем!") 76 | pp(ch.WOLFGANG.DESCRIBE.GEAR_TORCH, "Поможет мне в темноте.") 77 | 78 | --- Wendy - items strings 79 | pp(ch.WENDY.DESCRIBE.GEAR_AXE, "Уничтожать деревья еще никогда не было так приятно.") 80 | pp(ch.WENDY.DESCRIBE.GEAR_MACE, "Теперь я смогу править миром... или маленькой частью.") 81 | pp(ch.WENDY.DESCRIBE.GEAR_HAT, "Выгляжу в ней как леди.") 82 | pp(ch.WENDY.DESCRIBE.GEAR_MASK, "Мрачная красивая маска, сделанная из мертвых ворон.") 83 | pp(ch.WENDY.DESCRIBE.GEAR_ARMOR, "Выглядит зловеще. Мне нравится!") 84 | pp(ch.WENDY.DESCRIBE.GEAR_HELMET, "Чувствую, как моя голова падает на землю.") 85 | pp(ch.WENDY.DESCRIBE.GEAR_WINGS, "Надеюсь, они сделаны из костей.") 86 | pp(ch.WENDY.DESCRIBE.SENTINEL, "Надеюсь, Абигейл не станет ревновать.") 87 | pp(ch.WENDY.DESCRIBE.WS_03, "Всадник смерти.") 88 | pp(ch.WENDY.DESCRIBE.BULBO, "Этот крошечный паук работает на электричестве.") 89 | pp(ch.WENDY.DESCRIBE.GEAR_TORCH, "Защитит меня от темноты. Меня. От темноты. Ха-ха.") 90 | 91 | --- WX-78 - items strings 92 | pp(ch.WX78.DESCRIBE.GEAR_AXE, "РАСТЕНИЯ НЕ ИМЕЮТ ШАНСОВ") 93 | pp(ch.WX78.DESCRIBE.GEAR_MACE, "УНИЧТОЖАЮЩЕЕ УСТРОЙСТВО ГОТОВО") 94 | pp(ch.WX78.DESCRIBE.GEAR_HAT, "ЭЛЕГАНТНОЕ УСТРОЙСТВО ДЛЯ ГОЛОВЫ") 95 | pp(ch.WX78.DESCRIBE.GEAR_MASK, "УСКОРЯЕТ РЕГЕНЕРАЦИЮ ЗДОРОВЬЯ НО ОТНИМАЕТ РАССУДОК") 96 | pp(ch.WX78.DESCRIBE.GEAR_ARMOR, "ТЯЖЕЛЫЙ ИСТОЧНИК СВЕТА") 97 | pp(ch.WX78.DESCRIBE.GEAR_HELMET, "ПОВЫШАЕТ ОГНЕСТОЙКОСТЬ") 98 | pp(ch.WX78.DESCRIBE.GEAR_WINGS, "ОБЪЕКТ ПОВЫШАЕТ СКОРОСТЬ ПЕРЕДВИЖЕНИЯ") 99 | pp(ch.WX78.DESCRIBE.SENTINEL, "ЗАЩИТНЫЙ ДРОИД АКТИВИРОВАН") 100 | pp(ch.WX78.DESCRIBE.WS_03, "МЕХАНИЧЕСКИЙ РАЗРУШИТЕЛЬ ПРИВЕДЕН В БОЕВУЮ ГОТОВНОСТЬ") 101 | pp(ch.WX78.DESCRIBE.BULBO, "ЭЛЕКТРИЧЕСКОЕ НАСЕКОМОЕ В ПОЛЕ ЗРЕНИЯ") 102 | pp(ch.WX78.DESCRIBE.GEAR_TORCH, "НОВЫЙ СПОСОБ ИСПОЛЬЗОВАТЬ ЛАМПОЧКУ") 103 | 104 | --- Wickerbottom - items strings 105 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_AXE, "Топор особого типа, сделанный из шестерёнок.") 106 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_MACE, "Это причудливое устройство не для неуклюжих работников.") 107 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_HAT, "По крайней мере, мне удастся поддерживать имидж.") 108 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_MASK, "Я не уверена, стоит ли лечиться таким способом.") 109 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_ARMOR, "Обеспечит меня теплом и светом.") 110 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_HELMET, "Обеспечивает надежную защиту от огня.") 111 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_WINGS, "Как практично.") 112 | pp(ch.WICKERBOTTOM.DESCRIBE.SENTINEL, "Не такое уж и сложное устройство, как по мне.") 113 | pp(ch.WICKERBOTTOM.DESCRIBE.WS_03, "Я создала его для своей защиты.") 114 | pp(ch.WICKERBOTTOM.DESCRIBE.BULBO, "Интересный способ использовать лампочки.") 115 | pp(ch.WICKERBOTTOM.DESCRIBE.GEAR_TORCH, "Он органический или нет?") 116 | 117 | --- Woodie - items strings 118 | pp(ch.WOODIE.DESCRIBE.GEAR_AXE, "Почти также хорош, как моя Люси.") 119 | pp(ch.WOODIE.DESCRIBE.GEAR_MACE, "Сделана из ценных пород дерева. И какого-то хлама.") 120 | pp(ch.WOODIE.DESCRIBE.GEAR_HAT, "Выглядит неплохо, должен признать.") 121 | pp(ch.WOODIE.DESCRIBE.GEAR_MASK, "Ненавижу эту маску. Похожа на противную птицу.") 122 | pp(ch.WOODIE.DESCRIBE.GEAR_ARMOR, "Ха! Теперь я могу рубить деревья даже ночью.") 123 | pp(ch.WOODIE.DESCRIBE.GEAR_HELMET, "Защитит меня от щепок во время рубки.") 124 | pp(ch.WOODIE.DESCRIBE.GEAR_WINGS, "Я буду глупо выглядить, если это надену.") 125 | pp(ch.WOODIE.DESCRIBE.SENTINEL, "Он будет защищать меня, пока я буду рубить деревья.") 126 | pp(ch.WOODIE.DESCRIBE.WS_03, "Может быть он будет рубить деревья для меня?!") 127 | pp(ch.WOODIE.DESCRIBE.BULBO, "Страшно рубить деревья, если на них сидит такое существо!") 128 | pp(ch.WOODIE.DESCRIBE.GEAR_TORCH, "Больше не такой съедобный.") 129 | 130 | --- Waxwell - items strings 131 | pp(ch.WAXWELL.DESCRIBE.GEAR_AXE, "Использовать этот топор почти не унизительно.") 132 | pp(ch.WAXWELL.DESCRIBE.GEAR_MACE, "Надеюсь, этим можно вынести мозги.") 133 | pp(ch.WAXWELL.DESCRIBE.GEAR_HAT, "Буду выглядить еще лучше, чем обычно.") 134 | pp(ch.WAXWELL.DESCRIBE.GEAR_MASK, "Подходит к моей персоне. Просто шучу.") 135 | pp(ch.WAXWELL.DESCRIBE.GEAR_ARMOR, "Жаль, что я не могу заставить кого-нибудь таскать это за меня.") 136 | pp(ch.WAXWELL.DESCRIBE.GEAR_HELMET, "Иногда приходится жертвовать стилем. Ненадолго.") 137 | pp(ch.WAXWELL.DESCRIBE.GEAR_WINGS, "Не могу поверить, что это смастерил я.") 138 | pp(ch.WAXWELL.DESCRIBE.SENTINEL, "Я мог бы создать что-нибудь более захватывающее.") 139 | pp(ch.WAXWELL.DESCRIBE.WS_03, "Неплохое изобретение!") 140 | pp(ch.WAXWELL.DESCRIBE.BULBO, "Я почти и забыл об этом жалком создании.") 141 | pp(ch.WAXWELL.DESCRIBE.GEAR_TORCH, "Чарли ненавидит этот свет.") 142 | 143 | --if GLOBAL.IsDLCEnabled(GLOBAL.REIGN_OF_GIANTS) then 144 | 145 | --- Wigfrid - items strings 146 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_AXE, "Стильный топор для разрушения!") 147 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_MACE, "Выглядит глупо, но бьет хорошо.") 148 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_HAT, "Это разве по мне?") 149 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_MASK, "Я должна полагаться на силу, а не на магию.") 150 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_ARMOR, "Даст мне тепло в походе.") 151 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_HELMET, "Какой-то неудобный шлем.") 152 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_WINGS, "Я смогу улететь прямиком в Вальгаллу!") 153 | pp(ch.WATHGRITHR.DESCRIBE.SENTINEL, "Теперь он мой раб!") 154 | pp(ch.WATHGRITHR.DESCRIBE.WS_03, "Могучий паук на моей стороне!") 155 | pp(ch.WATHGRITHR.DESCRIBE.BULBO, "Он меня не интересует!") 156 | pp(ch.WATHGRITHR.DESCRIBE.GEAR_TORCH, "Светится!") 157 | 158 | --- Webber - items strings 159 | pp(ch.WEBBER.DESCRIBE.GEAR_AXE, "Теперь мы сможем рубить деревья со вкусом.") 160 | pp(ch.WEBBER.DESCRIBE.GEAR_MACE, "Слишком сложно для нас.") 161 | pp(ch.WEBBER.DESCRIBE.GEAR_HAT, "Папе бы понравилась эта шляпа!") 162 | pp(ch.WEBBER.DESCRIBE.GEAR_MASK, "Наполовину паук, наполовину ворона.") 163 | pp(ch.WEBBER.DESCRIBE.GEAR_ARMOR, "Теперь мы сможем согреться!") 164 | pp(ch.WEBBER.DESCRIBE.GEAR_HELMET, "Мы под защитой.") 165 | pp(ch.WEBBER.DESCRIBE.GEAR_WINGS, "Лучший способ заполучить крылья - сплести паутину.") 166 | pp(ch.WEBBER.DESCRIBE.SENTINEL, "Он так похож на нас!") 167 | pp(ch.WEBBER.DESCRIBE.WS_03, "Мы создали идеального друга!") 168 | pp(ch.WEBBER.DESCRIBE.BULBO, "Такой же паук, но с лампочкой вместо головы!") 169 | pp(ch.WEBBER.DESCRIBE.GEAR_TORCH, "Свет без огня! Лучшее изобретение!") 170 | --end 171 | 172 | 173 | --ТАМ ЖЕ, ФРАЗЫ НОВЫХ МОБОВ (НЕЗНАЮ, КАК ВЫКОВЫРЯТЬ ЭТИ СТРОЧКИ): 174 | 175 | 176 | ------------ Feeding 177 | pp("HEALTH RESTORED!","ЗДОРОВЬЕ ВОССТАНОВЛЕНО!") 178 | pp("ERROR!","ОШИБКА!") 179 | 180 | ---------- Main pet init function --------- 181 | pp("FIRMWARE UPDATED!","ПРОШИВКА ОБНОВЛЕНА!") 182 | pp("ACCESS GRANTED!","ДОСТУП РАЗРЕШЕН!") 183 | pp("NEW ADMINISTRATOR!","НОВЫЙ АДМИНИСТРАТОР!") 184 | pp("RESET FIRMWARE!","СБРОС ПРОШИВКИ!") 185 | pp("HARD RESET!","СБРОС НАСТРОЕК!") 186 | pp("SYSTEM PANIC!","СИСТЕМНАЯ ПАНИКА!") 187 | pp("WRONG PASSWORD!","НЕПРАВИЛЬНЫЙ ПАРОЛЬ!") 188 | 189 | ------------------------------------------------------------------ВСЁ 190 | -------------------------------------------------------------------------------- /scripts/rlp_speech.lua: -------------------------------------------------------------------------------- 1 | local t = mods.RussianLanguagePack 2 | local rebuildname = t.rebuildname 3 | 4 | --Строим хеш-таблицы 5 | t.SpeechHashTbl={} 6 | 7 | local function ExtractMeta(str, key) 8 | if not str:find("{",1, true) then return str end --Для увеличения скорости 9 | local gentbl = {male = "he", maleanimated = "he2", female = "she", femaleanimated = "she2", 10 | neutral = "it", plural = "plural", pluralanimated = "plural2"} 11 | local actions = {} 12 | local res = str:gsub("{([^}]+)}", function(meta) 13 | if meta=="forcecase" then 14 | t.ShouldBeCapped[key:lower()] = true 15 | return "" 16 | else 17 | local parts = meta:split("=") 18 | if #parts==2 then 19 | if parts[1]=="gender" then 20 | local gen = gentbl[parts[2]:lower()] 21 | if gen then 22 | t.NamesGender[gen][key:lower()] = true 23 | end 24 | return "" 25 | elseif parts[1]:sub(1,5)=="case." or parts[1]:sub(1,5)=="form." then --формы по падежам и действиям 26 | local act = parts[1]:sub(6):upper() 27 | if act=="DEF" or act=="DEFAULT" or act==t.AdjectiveCaseTags[t.DefaultActionCase]:upper() then 28 | act = "DEFAULTACTION" 29 | end 30 | actions[act] = parts[2] 31 | return "" 32 | end 33 | end 34 | end 35 | end) 36 | for act, rus in pairs(actions) do 37 | if not t.RussianNames[res] then 38 | t.RussianNames[res] = {} 39 | t.RussianNames[res]["DEFAULT"] = res --TODO: Это лишнее, нужно удалить 40 | t.RussianNames[res].path = key --добавляем путь 41 | if act~="DEFAULTACTION" then 42 | t.RussianNames[res]["DEFAULTACTION"] = rebuildname(res, "DEFAULTACTION") 43 | end 44 | if act~="WALKTO" then 45 | t.RussianNames[res]["WALKTO"] = rebuildname(res, "WALKTO") 46 | end 47 | end 48 | t.RussianNames[res][act] = rus 49 | end 50 | return res 51 | end 52 | 53 | --Строит хеш-таблицу по имени персонажа. Английские реплики персонажа должны быть в STRINGS.CHARACTERS 54 | --russource - таблица, в которой находятся все русские реплики персонажа в виде ["ключ из STRINGS"]="русский перевод" 55 | --Если она не указана, то используется стандартная таблица, в которую загружаются реплики из PO файлов LanguageTranslator.languages[t.SelectedLanguage] 56 | local function BuildCharacterHash(charname, russource) 57 | local source=russource or t.PO 58 | local function CreateRussianHashTable(hashtbl,tbl,str) 59 | for i,v in pairs(tbl) do 60 | if type(v)=="table" then 61 | CreateRussianHashTable(hashtbl,tbl[i],str.."."..i) 62 | else 63 | local val=source[str.."."..i] or v 64 | --составляем спец-список всех сообщений, в которых есть отсылки на вставляемое имя (или на что-то другое) 65 | if v and string.find(v,"%s",1,true) then 66 | hashtbl["mentioned_class"]=hashtbl["mentioned_class"] or {} 67 | hashtbl["mentioned_class"][v]=val 68 | end 69 | if not hashtbl[v] then 70 | hashtbl[v]=val 71 | elseif type(hashtbl[v])=="string" and val~=hashtbl[v] then 72 | local temp=hashtbl[v] --преобразуем в список 73 | hashtbl[v]={} 74 | table.insert(hashtbl[v],temp) 75 | table.insert(hashtbl[v],val) --добавляем текущее 76 | elseif type(hashtbl[v])=="table" then 77 | local found=false 78 | for _,vv in ipairs(hashtbl[v]) do 79 | if vv==val then 80 | found=true 81 | break 82 | end 83 | end 84 | if not found then table.insert(hashtbl[v],val) end 85 | end 86 | end 87 | end 88 | end 89 | charname = charname:upper() 90 | if charname == "WILSON" or charname == "WONKEY" then charname = "GENERIC" end 91 | if charname == "MAXWELL" then charname = "WAXWELL" end 92 | if charname == "WIGFRID" then charname = "WATHGRITHR" end 93 | t.SpeechHashTbl[charname] = {} 94 | CreateRussianHashTable(t.SpeechHashTbl[charname],STRINGS.CHARACTERS[charname],"STRINGS.CHARACTERS."..charname) 95 | end 96 | t.BuildCharacterHash = BuildCharacterHash 97 | 98 | --Генерируем хеши для всех персонажей, перечисленных в STRINGS.CHARACTERS 99 | for charname,v in pairs(STRINGS.CHARACTERS) do 100 | BuildCharacterHash(charname) 101 | end 102 | 103 | --Генерируем хеш-таблицы для названий предметов в обе стороны 104 | --А так же извлекаем мета-данные о поле предмета, его особых формах и необходимости писать с большой буквы 105 | t.SpeechHashTbl.NAMES = {Eng2Key = {}, Rus2Eng = {}} 106 | for key, val in pairs(STRINGS.NAMES) do 107 | local fullkey = "STRINGS.NAMES."..key 108 | if t.PO[fullkey] then 109 | t.PO[fullkey] = ExtractMeta(t.PO[fullkey], key) 110 | end 111 | t.SpeechHashTbl.NAMES.Eng2Key[val] = key 112 | t.SpeechHashTbl.NAMES.Rus2Eng[t.PO[fullkey] or val] = val 113 | end 114 | 115 | t.SpeechHashTbl.SANDBOXMENU = {Eng2Key = {}, Rus2Eng = {}} 116 | for key, val in pairs(STRINGS.UI.SANDBOXMENU) do 117 | local fullkey = "STRINGS.UI.SANDBOXMENU."..key 118 | if t.PO[fullkey] then 119 | t.PO[fullkey] = ExtractMeta(t.PO[fullkey], key) 120 | end 121 | t.SpeechHashTbl.SANDBOXMENU.Eng2Key[val] = key 122 | t.SpeechHashTbl.SANDBOXMENU.Rus2Eng[t.PO[fullkey] or val] = val 123 | end 124 | 125 | --Извлекаем мета-данные из названий скинов 126 | for key, val in pairs(STRINGS.SKIN_NAMES) do 127 | local fullkey = "STRINGS.SKIN_NAMES."..key 128 | if t.PO[fullkey] then 129 | t.PO[fullkey] = ExtractMeta(t.PO[fullkey], key) 130 | end 131 | end 132 | 133 | --хеш-таблицы эпитафий 134 | t.SpeechHashTbl.EPITAPHS={Eng2Rus={}} 135 | for i,v in pairs(STRINGS.EPITAPHS) do 136 | t.SpeechHashTbl.EPITAPHS.Eng2Rus[v]=t.PO["STRINGS.EPITAPHS."..i] or v 137 | t.PO["STRINGS.EPITAPHS."..i]=nil 138 | end 139 | 140 | --Генерируем хеш-таблицы для имён свиней и кроликов 141 | t.SpeechHashTbl.PIGNAMES={Eng2Rus={}} 142 | for i,v in pairs(STRINGS.PIGNAMES) do 143 | t.SpeechHashTbl.PIGNAMES.Eng2Rus[v]=t.PO["STRINGS.PIGNAMES."..i] or v 144 | t.PO["STRINGS.PIGNAMES."..i]=nil 145 | end 146 | t.SpeechHashTbl.BUNNYMANNAMES={Eng2Rus={}} 147 | for i,v in pairs(STRINGS.BUNNYMANNAMES) do 148 | t.SpeechHashTbl.BUNNYMANNAMES.Eng2Rus[v]=t.PO["STRINGS.BUNNYMANNAMES."..i] or v 149 | t.PO["STRINGS.BUNNYMANNAMES."..i]=nil 150 | end 151 | 152 | t.SpeechHashTbl.SWAMPIGNAMES={Eng2Rus={}} 153 | for i,v in pairs(STRINGS.SWAMPIGNAMES) do 154 | t.SpeechHashTbl.SWAMPIGNAMES.Eng2Rus[v]=t.PO["STRINGS.SWAMPIGNAMES."..i] or v 155 | t.PO["STRINGS.SWAMPIGNAMES."..i]=nil 156 | end 157 | 158 | 159 | -- постройка хеш-таблиц для реплик с "гениальными" ключами 160 | local MONKEY_QUEEN_KEYS = {} 161 | local MERM_KING_KEYS = {} 162 | 163 | local function BuildSpeechHash(name,tbl,str) 164 | if type(tbl)=="table" then 165 | for i,v in pairs(tbl) do 166 | if type(v)=="table" then 167 | BuildSpeechHash(name,tbl[i],str.."."..i) 168 | else 169 | t.SpeechHashTbl[name].Eng2Rus[v] = t.PO[str.."."..i] or v 170 | end 171 | end 172 | else 173 | if t.PO[str] then 174 | t.SpeechHashTbl[name].Eng2Rus[tbl] = t.PO[str] 175 | end 176 | end 177 | end 178 | 179 | for i,v in pairs(STRINGS) do 180 | if string.match(i,"^MONKEY_QUEEN*") then 181 | table.insert(MONKEY_QUEEN_KEYS, i) 182 | elseif string.match(i,"^MERM_KING_TALK*") then 183 | table.insert(MERM_KING_KEYS, i) 184 | end 185 | end 186 | 187 | t.SpeechHashTbl.MONKEY_QUEEN={Eng2Rus={}} 188 | for _,v in pairs(MONKEY_QUEEN_KEYS) do 189 | BuildSpeechHash("MONKEY_QUEEN",STRINGS[v], "STRINGS."..v) 190 | end 191 | 192 | t.SpeechHashTbl.MERM_KING={Eng2Rus={}} 193 | for _,v in pairs(MERM_KING_KEYS) do 194 | BuildSpeechHash("MERM_KING",STRINGS[v], "STRINGS."..v) 195 | end 196 | ---- 197 | 198 | --Подгружаем в "хэш" фразы Мамси 199 | if TheNet:GetServerGameMode() == "quagmire" then 200 | t.SpeechHashTbl.GOATMUM_CRAVING_HINTS={Eng2Rus={}} 201 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_HINTS) do 202 | t.SpeechHashTbl.GOATMUM_CRAVING_HINTS.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_HINTS."..i] or v 203 | t.PO["STRINGS.GOATMUM_CRAVING_HINTS."..i]=nil 204 | end 205 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_MATCH) do 206 | if string.find(t.PO["STRINGS.GOATMUM_CRAVING_MATCH."..i],'%%s') then 207 | t.SpeechHashTbl.GOATMUM_CRAVING_HINTS.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_MATCH."..i] or v 208 | t.PO["STRINGS.GOATMUM_CRAVING_MATCH."..i]=nil 209 | end 210 | end 211 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_MISMATCH) do 212 | if string.find(t.PO["STRINGS.GOATMUM_CRAVING_MISMATCH."..i],'%%s') then 213 | t.SpeechHashTbl.GOATMUM_CRAVING_HINTS.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_MISMATCH."..i] or v 214 | t.PO["STRINGS.GOATMUM_CRAVING_MISMATCH."..i]=nil 215 | end 216 | end 217 | 218 | t.SpeechHashTbl.GOATMUM_CRAVING_HINTS_PART2={Eng2Rus={}} 219 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_HINTS_PART2) do 220 | t.SpeechHashTbl.GOATMUM_CRAVING_HINTS_PART2.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_HINTS_PART2."..i] or v 221 | t.PO["STRINGS.GOATMUM_CRAVING_HINTS_PART2."..i]=nil 222 | end 223 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_HINTS_PART2_IMPATIENT) do 224 | t.SpeechHashTbl.GOATMUM_CRAVING_HINTS_PART2.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_HINTS_PART2_IMPATIENT."..i] or v 225 | t.PO["STRINGS.GOATMUM_CRAVING_HINTS_PART2_IMPATIENT."..i]=nil 226 | end 227 | 228 | t.SpeechHashTbl.GOATMUM_CRAVING_MAP={Eng2Rus={}} 229 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_MAP) do 230 | t.SpeechHashTbl.GOATMUM_CRAVING_MAP.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_MAP."..i] or v 231 | t.PO["STRINGS.GOATMUM_CRAVING_MAP."..i]=nil 232 | end 233 | 234 | t.SpeechHashTbl.GOATMUM_WELCOME_INTRO={Eng2Rus={}} 235 | for i,v in pairs(STRINGS.GOATMUM_WELCOME_INTRO) do 236 | t.SpeechHashTbl.GOATMUM_WELCOME_INTRO.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_WELCOME_INTRO."..i] or v 237 | t.PO["STRINGS.GOATMUM_WELCOME_INTRO."..i]=nil 238 | end 239 | for i,v in pairs(STRINGS.GOATMUM_LOST) do 240 | t.SpeechHashTbl.GOATMUM_WELCOME_INTRO.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_LOST."..i] or v 241 | t.PO["STRINGS.GOATMUM_LOST."..i]=nil 242 | end 243 | for i,v in pairs(STRINGS.GOATMUM_VICTORY) do 244 | t.SpeechHashTbl.GOATMUM_WELCOME_INTRO.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_VICTORY."..i] or v 245 | t.PO["STRINGS.GOATMUM_VICTORY."..i]=nil 246 | end 247 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_MATCH) do 248 | if t.PO["STRINGS.GOATMUM_CRAVING_MATCH."..i] then 249 | t.SpeechHashTbl.GOATMUM_WELCOME_INTRO.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_MATCH."..i] or v 250 | t.PO["STRINGS.GOATMUM_CRAVING_MATCH."..i]=nil 251 | end 252 | end 253 | for i,v in pairs(STRINGS.GOATMUM_CRAVING_MISMATCH) do 254 | if t.PO["STRINGS.GOATMUM_CRAVING_MISMATCH."..i] then 255 | t.SpeechHashTbl.GOATMUM_WELCOME_INTRO.Eng2Rus[v]=t.PO["STRINGS.GOATMUM_CRAVING_MISMATCH."..i] or v 256 | t.PO["STRINGS.GOATMUM_CRAVING_MISMATCH."..i]=nil 257 | end 258 | end 259 | end 260 | 261 | --[[ Юзалось в режиме только UI 262 | for charname,v in pairs(STRINGS.CHARACTERS) do 263 | t.SpeechHashTbl[charname]={} 264 | end 265 | 266 | t.SpeechHashTbl.EPITAPHS={} 267 | t.SpeechHashTbl.NAMES={Eng2Key={},Rus2Eng={}} 268 | t.SpeechHashTbl.PIGNAMES={Eng2Rus={}} 269 | t.SpeechHashTbl.BUNNYMANNAMES={Eng2Rus={}} 270 | 271 | for i,v in pairs(t.PO) do 272 | if string.sub(i,8+1,8+3)~="UI." then t.PO[i]=nil end 273 | end 274 | end]] 275 | -------------------------------------------------------------------------------- /scripts/mod_rusification/transl/loving_evil.lua: -------------------------------------------------------------------------------- 1 | ------------------------workshop-356435289 Fish Farm 2 | mk("W_POND","Рыбная ферма",3) 3 | rec.W_POND = "Я смогу остаться дома подольше." 4 | --pp("Fish like honey,who knew?","Рыбы любят мёд, кто знал?") 5 | pp("Fish like honey,who knew?","Рыбы очень любят мёд! Почему и кто поймёт?\nВ самом деле, почему. Мёд так нравится кому?\nРыбам! Да!") 6 | 7 | ------------------------ Tungsten 8 | mk("TUNGSTEN","Вольфрамовое Копье",4) --Tungsten Spear 9 | rec.TUNGSTEN = "Выковано в огне." 10 | mk("THERMAL_TETRAHEDRON","Термальный тетраэдр",1) --Thermal Tetrahedron 11 | rec.THERMAL_TETRAHEDRON = "Лучший способ хранить тепло" 12 | mk("SHIRUKEN","Бэторанг",1) --Batarang 13 | rec.SHIRUKEN = "Сильное, одноразовое оружие" 14 | mk("TUNGSTENORE","Вольфрамовый самородок",1) --Tungsten Nugget 15 | rec.TUNGSTENORE = "Металлический материал" 16 | mk("ROCK_TOUGH","Твёрдый валун",1) --Tough Stone 17 | mk("TUNGSTEN_FIREPIT","Вольфрамовый костёр",1) 18 | rec.TUNGSTEN_FIREPIT = "Улучшенный костёр, даёт больше тепла" 19 | mk("TUNGSTEN_AXE","Порочный резак",1) -- Corrupt Cutter 20 | rec.TUNGSTEN_AXE = "Ненавидит деревья" 21 | mk("ARMOR_TUNGSTEN","Нулевой по Кельвину костюм",1) -- Zero Kelvin Suit 22 | rec.ARMOR_TUNGSTEN = "Холодный, как глубокий космос" 23 | mk("FIREBLADE","Огненный Флёр",1) --Fire Fleur 24 | rec.FIREBLADE = "Может быть чересчур жарким для вас" 25 | mk("WALL_TUNGSTEN_ITEM","Вольфрамовая стена",3) --Tungsten Wall 26 | rec.WALL_TUNGSTEN_ITEM = "Лучшая защита для вашей базы" 27 | mk("WALL_TUNGSTEN","Вольфрамовая стена",3) 28 | mk("TUNGSTEN_PICKAXE","Бескирка",3) --Infiniminer 29 | rec.TUNGSTEN_PICKAXE = "Праздник на крови ваших врагов" 30 | mk("TUNGSTEN_HARDHAT","Вольфрамовая каска",3) --Tungsten Hardhat 31 | rec.TUNGSTEN_HARDHAT = "Сожжет ваши ночные кошмары" 32 | mk("TRAP_TESLA","Тесла ловушка",3,"Тесла ловушке",nil,nil,"Тесла ловушкой") --Tesla Trap 33 | rec.TRAP_TESLA = "Эффективная оборона базы" 34 | ------------------------Musha 35 | if STRINGS.CHARACTERS.MUSHA then 36 | STRINGS.NAMES.MUSHA = "Муша" 37 | STRINGS.CHARACTER_TITLES.musha = "Королева пёсиков Муша в DST" 38 | STRINGS.CHARACTER_NAMES.musha = "Муша" 39 | STRINGS.CHARACTER_QUOTES.musha = "\" Я настоящая принцесса ! \"" 40 | STRINGS.CHARACTERS.MUSHA.DESCRIBE.MUSHA = {"Она прикольная", "Напоминает меня.."} 41 | pp("maybe she can join my Books club members.","Может быть она присоединится к моему клубу читателей.") 42 | pp("Royal blood ? Hmm...","Королевская кровь? Хмм...") 43 | pp("she can transform?..no, maybe not","Она может превратиться?..скорее всего нет") 44 | pp("She is weak force .. but seems going to help us.","Она слабая .. но кажется, поможет нам") 45 | pp("I feel a strong spirit..","Я чувствую сильный дух..") 46 | pp("I feel my heart.","Я чувствую моё сердце.") 47 | pp("Feels good!","Приятная!") 48 | pp("Fight fight fight","Драка драка драка") 49 | pp("Assasin!","Убийца!") 50 | pp("Return..","Вернись..") 51 | pp("go away !","Уходи!") 52 | --Реплики Муши ^_^ 53 | pp("Musha can't move arms anymore...","Муша больше не может пошевелить руками...") 54 | pp("Wood hit Musha! Musha throws that bad wood!","Деревяшка ударила Мушу! Муша бросает эту плохую деревяшку!") 55 | pp("Something behind Musha!","Что-то у Муши за спиной!") 56 | pp("Stop biting Musha's head! Musha will beat you!","Прекрати кусать Мушу за голову! Муша тебя побьёт!") 57 | pp("Ah! Musha's fingers are freezing!","Ах! Пальчики Муши замерзают!") 58 | pp("Musha's soles are burning!","Мушины подошвы горят!") 59 | pp("Sun has gone!\nMusha have to prepare a light!","Солнце село!\nМуша должна подготовить свет!") 60 | pp("Yum!","Ням!") 61 | pp("Ew!","Фу!") 62 | pp("IT IS NOT FOOD! Bleh!","ЭТО НЕ ЕДА! Гадость!") 63 | pp("Bleh!","Гадость!") 64 | pp("Musha never lay down here!\n Musha's back would be freeze!","Муша не ляжет здесь!\n Муша замёрзла бы!") 65 | --FIRESUPPRESSOR 66 | pp("It require many fuel. Don't forget it.","Она требует много топлива. Не забывай это.") 67 | pp("Fuel is running low. Musha checked it.","Топливо на исходе. Муша проверила.") 68 | --COOKPOT 69 | pp("It require long time.","Это займёт много времени.") 70 | pp("It can cook very shot time.","Это приготовится очень быстро") 71 | pp("Musha likes that! How about you?","Муше это нравится! А тебе?") 72 | pp("No one use that. Now it is Musha's turn.","Никто не пользуется. Теперь очередь Муши.") 73 | pp("Why does that stone burned out?","Почему этот камень сгорел?") 74 | 75 | ---РЕЦЕПТЫ И ПРЕДМЕТЫ 76 | --Ямчи- 77 | mk("MUSHA_EGG","Яйцо Феникса",4,nil,1) 78 | mk("MUSHA_EGG_CRACKED","Яйцо Феникса",4,nil,1) 79 | mk("MUSHA_EGGS1","Яйцо Феникса (Ур 2)",4,nil,1) 80 | mk("MUSHA_EGG_CRACKEDS1","Яйцо Феникса",4,nil,1) 81 | mk("MUSHA_EGGS2","Яйцо Феникса (Ур 3)",4,nil,1) 82 | mk("MUSHA_EGG_CRACKEDS2","Яйцо Феникса",4,nil,1) 83 | mk("MUSHA_EGGS3","Яйцо Феникса (Ур 4)",4,nil,1) 84 | mk("MUSHA_EGG_CRACKEDS3","Яйцо Феникса",4,nil,1) 85 | mk("MUSHA_EGG1","Яйцо Феникса (Ур 5)",4,nil,1) 86 | mk("MUSHA_EGG_CRACKED1","Яйцо Феникса",4,nil,1) 87 | mk("MUSHA_EGG2","Яйцо Феникса (Ур 6)",4,nil,1) 88 | mk("MUSHA_EGG_CRACKED2","Яйцо Феникса",4,nil,1) 89 | mk("MUSHA_EGG3","Яйцо Феникса (Ур 7)",4,nil,1) 90 | mk("MUSHA_EGG_CRACKED3","Яйцо Феникса",4,nil,1) 91 | mk("MUSHA_EGG8","Яйцо Феникса (Ур 8)",4,nil,1) 92 | mk("MUSHA_EGG_CRACKED8","Яйцо Феникса",4,nil,1) 93 | rec.MUSHA_EGG = "Яйцо Феникса(Ур 1)" 94 | rec.MUSHA_EGGS1 = "Яйцо Феникса(Ур 2)" 95 | rec.MUSHA_EGGS2 = "Яйцо Феникса(Ур 3)" 96 | rec.MUSHA_EGGS3 = "Яйцо Феникса(Ур 4)" 97 | rec.MUSHA_EGG1 = "Яйцо Феникса(Ур 5)" 98 | rec.MUSHA_EGG2 = "Яйцо Феникса(Ур 6)" 99 | rec.MUSHA_EGG3 = "Яйцо Феникса(Ур 7)" 100 | rec.MUSHA_EGG8 = "Яйцо Феникса(Ур макс.)" 101 | pp("Phoenix Egg","Яйцо Феникса") 102 | pp("Phoenix Egg(LV 2)","Яйцо Феникса (Ур 2)") 103 | pp("Phoenix Egg(LV 3)","Яйцо Феникса (Ур 3)") 104 | pp("Phoenix Egg(LV 4)","Яйцо Феникса (Ур 4)") 105 | pp("Phoenix Egg(LV 5)","Яйцо Феникса (Ур 5)") 106 | pp("Phoenix Egg(LV 6)","Яйцо Феникса (Ур 6)") 107 | pp("Phoenix Egg(LV 7)","Яйцо Феникса (Ур 7)") 108 | pp("Phoenix Egg(LV 8)","Яйцо Феникса (Ур 8)") 109 | pp("It is not mine. Musha said that is Yamche bud.","Это не моё. Муша сказала, что это бутон Ямчи") 110 | pp("What a little bird!","Какая маленькая птичка!") 111 | pp("It... Yes. Yamche. Yamche grows really fast.","Это... Да. Ямчи. Ямчи растёт очень быстро.") 112 | pp("Yamche eats anything. So glad.","Ямчи ест что угодно. Так радует.") 113 | pp("How useful bird it is!","Насколько же полезна эта птичка!") 114 | pp("Yamche is not just a bird. It is a friend to me.","Ямчи не просто птица. Он мне друг") 115 | pp("Yes. I agree. We are family.","Да. Я согласна. Мы семья.") 116 | pp("Travel with Together. It is great.","Путешествовать вместе. Это замечательно.") 117 | pp("Don't starve partner.","Не голодай, партнёр.") 118 | mk("GHOSTHOUND","Призрачная гончая",3) 119 | mk("GHOSTHOUND2","Призрачный щеночек",2,nil,"Призрачного щеночка") 120 | pp("Musha summoned a ghost.","Муша вызвала призрака") 121 | mk("SHADOWMUSHA","Тень Муши",3,"Мушиной Тени")-----------------??? 122 | pp("That Shadow looks like a Musha.","Эта тень выглядит как Муша.") 123 | mk("TENTACLE_FROST","Морозное щупальце") 124 | -- 125 | rec.REDGEM = "Алхимия камней (Cапфир->Аметист)" 126 | rec.BLUEGEM = "Алхимия камней (Аметист->Cапфир)" 127 | rec.NITRE = "Алхимия золота (Золото->Селитра)" 128 | -- 129 | mk("MUSHASWORD_BASE","Сломанный меч",1) 130 | rec.MUSHASWORD_BASE = "Сломанный Меч Феникса, Меняется визуально" 131 | mk("MUSHASWORD","Меч Феникса",1,nil,1) 132 | rec.MUSHASWORD = "Прокачивается, Меняется визуально" 133 | mk("MUSHASWORD_FROST","Ледяной Меч Феникса") 134 | rec.MUSHASWORD_FROST = "Прокачивается, Меняется визуально" 135 | --pp("It is fixable sword by elemental.","") 136 | --pp("It is fixable flame sword by elemental.","") 137 | --pp("It is fixable frost sword by elemental.","") 138 | mk("MUSHA_FLUTE","Флейта Муши",3) 139 | rec.MUSHA_FLUTE = "Исцеляющая музыка. Починка: Сияющая пыль, Лампочка" 140 | mk("GLOWDUST","Сияющая пыль",3,"Сияющей пыли",nil,nil,"Сияющей пылью")-----------------??? 141 | rec.GLOWDUST = "Пыль света" 142 | mk("CRISTAL","Кристальная конфета",3) 143 | --rec.CRISTAL = "Summon=>bulb-plant,Yamche=>EGG" 144 | pp("Looks like a unusual crystal.","Похоже это необычный кристалл.") 145 | mk("EXP","Энергетическая сущность",3) 146 | pp("It give some exp to player.","Она даёт некоторый опыт игроку.") 147 | mk("EXP1000CHEAT","Читерская сущность",3) 148 | pp("It give tons of exp to player.","Она даёт тонну опыта игроку.") 149 | rec.EXP = "Энергетическая сущность. Может чинить снаряжение Муши." 150 | rec.EXP10 = "Добавляет 10 опыта" 151 | rec.EXP50 = "Добавляет 50 опыта" 152 | rec.EXP100 = "Добавляет 100 опыта" 153 | 154 | mk("FROSTHAMMER","Ледяной Молот",1) 155 | rec.FROSTHAMMER = "Прокачивается, Чинится, Молот, Холодильник" 156 | pp("Heavy blue hammer.","Тяжелый, синий молот") 157 | 158 | mk("BROKEN_FROSTHAMMER","Ледяная броня",3) 159 | rec.BROKEN_FROSTHAMMER = "Прокачивается, Чинится, Холодильник, Меняется визуально" 160 | pp("It got a multiple function.","У неё множество функций") 161 | 162 | mk("HAT_MPHOENIX","Шлем Феникса",1,nil,"Шлем Феникса") 163 | rec.HAT_MPHOENIX = "Прокачивается, Снимаемая маска (Правый клик)" 164 | pp("A mediaeval helm.","Средневековый шлем.") 165 | 166 | mk("HAT_MPRINCESS","Корона Принцессы Пёсиков",3) 167 | rec.HAT_MPRINCESS = "Щит, Регенерация рассудка, Меняется визуально" 168 | pp("A golden little crown.","Маленькая, золотая корона.") 169 | 170 | mk("HAT_MCROWN","Корона Королевы Пёсиков",3) 171 | rec.HAT_MCROWN = "Щит, Регенерация рассудка, Специальная опция" 172 | pp("Looks so nice.","Так замечательно выглядит.") 173 | 174 | mk("HAT_MBUNNY","Шапка Заячьего Скаута",3,nil,"Шапку Заячьего Скаута") 175 | rec.HAT_MBUNNY = "Прокачивается, Снимаемые очки (Правый клик)" 176 | pp("Looks like a bunny ears.","Смотрится как заячьи ушки") 177 | 178 | mk("ARMOR_MUSHAA","Броня Муши",3) 179 | rec.ARMOR_MUSHAA = "Прокачивается, имеет рюкзак" 180 | pp("It is a billow dress.","Это парадное платье.") 181 | 182 | mk("ARMOR_MUSHAB","Броня Принцессы",3) 183 | rec.ARMOR_MUSHAB = "Прокачивается, имеет рюкзак" 184 | pp("It is billow, but safe." ,"Она парадная, но надёжная.") 185 | 186 | --[[STRINGS.PHOENIXS= 187 | { --random 188 | "Captain Yamche","Hulk Yamche","Iron Yamche","Torr Yamche","Yamche","Brave Yamche","Cutie Yamche","Owl Yamche","Sunny Yamche","Moon Yamche","Seoul Yamche","Suri Yamche","Vilja Yamche","Sunny Yamche","Sunnyholic","Musha Yamche","Mellisa Yamche","Lidia Yamche ","Battleborn Yamche ","Grey Yamche","Sky Yamche","Lucia Yamche","Khajit Yamche","Pig Yamche","Mjoll Yamche","Lioness Yamche","Muiri Yamche","Ysolda Yamche","Rayya Yamche","Falkas Yamche","Vilkas Yamche","Aela Yamche","Huter Yamche","Huntress Yamche","Queen Yamche","Fire Yamche","Cicero Yamche","Top Yamche","Lina Yamche","Totoro Yamche","Yu-na Yamche","Winter Yamche","White Yamche","Mellisa Yamche","Riften Yamche","Dawnstar Yamche","Windhelm Yamche","Pho Yamche","Sneaky Yamche","Kiwis Yamche","Coco Yamche","Moon Yamche","Pizza Yamche","Sugar Yamche","Orc Yamche","Elf Yamche","Knight Yamche","Lich Yamche","Azeroth Yamche","Tauren Yamche","Troll Yamche","Thrall Yamche","Narugar Yamche","Yancook Yamche","Tirano Yamche","Honey Yamche","Isis Yamche","Bosom Yamche","Esmeralda Yamche","Pluvia Yamche","Doraemon Yamche","Dooly Yamche","Apple Yamche","IU Yamche","Gandalf Yamche","Frodo Yamche","Sam Yamche","Regolas Yamche","Gimli Yamche","Boromir Yamche","Wilxon Yamche","Willo Yamche","Wolfkong Yamche","Wenil Yamche","WX79 Yamche","Wickerbi Yamche","Woorie Yamche","Wex Yamche","Maximus Yamche","Wigfreedom Yamche","Webbers Yamche","Naruto Yamche","Sasuke Yamche","Withcer", 189 | }]] 190 | -- 191 | end -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/waiter_101.lua: -------------------------------------------------------------------------------- 1 | -- NAMES Waiter 101 2 | --http://steamcommunity.com/sharedfiles/filedetails/?id=381565292 3 | --GLOBAL.STRINGS.NAMES.ACK_MUFFIN = "A Convenient Muffin" 4 | -- Cakes & Pies 5 | ch_nm("ACK_MUFFIN","Полезная булочка",3) 6 | ch_nm("CACTUS_CAKE","Торт из кактуса",1,1,"Торт из кактуса") 7 | 8 | ch_nm("MERINGUE","Пирожное безе",4,"Пирожному безе",1) 9 | nm.NANA_BREAD = "Банановый хлеб" --"Banana Bread" 10 | ch_nm("STICKY_BUN","Липкая плюшка",3) --"Sticky Bun" 11 | -- Candies & Sugars 12 | ch_nm("CANDIED_FRUIT","Цукаты",5,0,0,false,"Цукатами") --"Candied Fruit" 13 | ch_nm("CANDIED_NUT","Козинаки",5) --"Sugared Nuts" 14 | ch_nm("FRUIT_SYRUP","Фруктовый сироп") -- Ingredient:Sweetener, Honeyed 15 | ch_nm("MOLASSES","Чёрная патока",3) 16 | ch_nm("MUSH_MELON","Грибной зефир") -- Honeyed +++ 17 | ch_nm("MUSH_MELON_COOKED","Жжёный сахар") -- Honeyed +++ 18 | -- Eggs 19 | ch_nm("OMELETTE","Воздушный омлет") -- +++ 20 | ch_nm("MUSHY_EGGS","Яичница-безе",3) --"Mushy Eggs" 21 | ch_nm("NOPALITO","Кактусовые такос",5,"Кактусовым такос",1) 22 | 23 | -- Fruits 24 | ch_nm("FRUIT_LEATHER","Пастила",3) -- COLD 25 | ch_nm("FRUIT_TRUFFLE","Фруктовые трюфели",5,"Фруктовым тефтелям",1) -- COLD, requires dairy (not butter/oleo) 26 | ch_nm("LIMONADE","Лимонад",1,"Лимонаду",1) -- COLD 27 | ch_nm("LIMONGELO","Студень",1,"Студню",1) 28 | -- Meats 29 | ch_nm("BEEFALO_WINGS","Крылышки бифало",5) --"Beefalo Wings" 30 | ch_nm("CASSEROLE","Мясная запеканка",3) -- COLD 31 | ch_nm("COLDCUTS","Мясное ассорти",4) --"Coldcuts" --игра слов с приставкой "cold", которая вовсе не означает холод в этом слове 32 | ch_nm("SAUSAGE_GRAVY","Сосиски в сливочном соусе",5) --"Sausage and Gravy" 33 | ch_nm("SURF_N_TURF","Фаршированная рыба",3) 34 | ch_nm("SWEET_N_SOUR","Кисло-сладкая свинина",3,"Кисло-сладкой свинине","Кисло-сладкую свинину") 35 | -- Mushrooms 36 | ch_nm("MUSHROOM_BURGER","Грибной бургер") --"Mushroom Burger" 37 | ch_nm("MUSHROOM_MALODY","Поганка под шубой",3) --"Mushroom Malody" 38 | ch_nm("MUSHROOM_MEDLEY","Грибная закуска",3) --"Mushroom Medley" 39 | ch_nm("MUSHROOM_STEW","Тушёные грибы со сметаной",5) --"Creamy Mushrooms" 40 | -- Pastas 41 | 42 | -- Salads 43 | 44 | -- Soups 45 | ch_nm("CACTUS_SOUP","Кактусовый суп") -- requires cactus 46 | ch_nm("CHOWDER","Мисо суп",1,"Мисо супу",1) --"Seafood Chowder" 47 | ch_nm("GUMBO","Острый суп из морепродуктов") --"Spicy Gumbo" 48 | ch_nm("SQUASH","Крем-суп из тыквы",1,"Крему-супу из тыквы",1) 49 | ch_nm("GAZPACHO","Гаспачо",4,1,1) 50 | 51 | -- Miscelaneous 52 | ch_nm("CHEESE_LOG","Сырный рулет с орешками") --"Nutty Cheese Log." 53 | ch_nm("MEATBALLS_HUMAN","Человеческие крокеты",5,"Человеческим крокетам",1,nil,"Человеческими крокетами") 54 | ch_nm("GRUEL","Тухлая овсянка",3) 55 | ch_nm("NUT_BUTTER","Ореховое масло",4) --"Birchnut Butter" 56 | ch_nm("OLEO","Кукурузное масло",4) 57 | ch_nm("LIQUOR","Ликёр",1,"Ликёру",1) 58 | 59 | ch_nm("PORRIDGE","Овсянка",3) 60 | -- Crops & Seeds 61 | ch_nm("GRAPRICOT","Абриград") 62 | ch_nm("GRAPRICOT_COOKED","Печёный абриград") 63 | ch_nm("GRAPRICOT_SEEDS","Семена абриграда",5,"Семенам абриграда",1) 64 | ch_nm("LIMON","Лимоны") 65 | ch_nm("LIMON_COOKED","Жареные лимоны") 66 | ch_nm("LIMON_SEEDS","Семена лимонов",5,"Семенам лимонов",1) 67 | ch_nm("TOMANGO","Томанго",4,1,1) 68 | ch_nm("TOMANGO_COOKED","Печёный томанго",4,"Печёному томанго",1) 69 | ch_nm("TOMANGO_SEEDS","Семена томанго",5,"Семенам томанго",1) 70 | 71 | --Новое 72 | ch_nm("YAMION","Лукфель",1,"Лукфелю") 73 | ch_nm("YAMION_COOKED","Печёный лукфель",1,"Печёному лукфелю") 74 | ch_nm("YAMION_SEEDS","Семена лукфеля",5,"Семенам лукфеля",1) 75 | 76 | ch_nm("FRUIT_MUFFIN","Фруктовый маффин") 77 | ch_nm("HARDTACK","Сухари",5,"Сухарям") 78 | ch_nm("CANDIED_BACON","Карамельный бекон") 79 | ch_nm("SALAD_EGG","Яичный салат") 80 | ch_nm("FISH_N_CHIPS","Рыба и чипсы",3,"Рыбе и чипсам","Рыбу и чипсы",nil,"Рыбой и чипсами") 81 | ch_nm("PICATTA","Цыплёнок с апельсином",1,1,"Цыплёнка с апельсином") 82 | ch_nm("CITRUS_MUSHROOM","Грибы-гриль с лимоном",5,"Грибам-гриль с лимоном") 83 | ch_nm("ALOO_TIKI","Крокеты из томанго",5) 84 | ch_nm("BRACIOLE","Роллы из говядины с овощами",5) 85 | ch_nm("ROLLATINI","Курица Роллатини",3) 86 | ch_nm("STUFFED_TOMANGO","Томанго фаршированный рыбой",1,"Томанго фаршированному рыбой","Томанго фаршированного рыбой") 87 | ch_nm("TARTE_TATIN","Пирог из томанго") 88 | ch_nm("SALAD_CARROT","Цитрусо-морковный салат",1,"Цитрусо-морковному салату") 89 | ch_nm("SALAD_GRAPE","Абрикосово-виноградный салат",1,"Абрикосово-виноградному салату") 90 | ch_nm("SALAD_WALDORF","Вальдорфский салат",1,"Вальдорфскому салату") 91 | ch_nm("SALAD_YAMION","Лукфельный салат") 92 | ch_nm("TWICE_BAKED","Печеный фаршированный клубень") --,1,"Печеному фаршированному клубню") 93 | ch_nm("YAMION_RINGS","Лукфельные чипсы",5) 94 | 95 | --Ещё новые имена. Описания НЕ переведны. 96 | ch_nm("SHAMCAKES","Оладьи",5,'Оладьям') 97 | ch_nm("LOBSTER_FAKED","Запечённый вобстер",1,0,"Запечённому вобстеру") 98 | ch_nm("SALAD_BLOOM","Дикий салат",1,"Дикому салату") 99 | ch_nm("DAIQUIRI","Дайкири") 100 | ch_nm("MARGARITA","Маргарита",3) 101 | ch_nm("VINO","Вино",4) 102 | ch_nm("PINA_COLADA","Пина колада",1,1,1,nil,1) 103 | ch_nm("COCONUT_MILK","Кокосовое молоко",4) 104 | ch_nm("GRAPRICOT_DRIED","Куразюм") --курага + изюм 105 | ch_nm("TOMANGO_DRIED","Вяленые на солнце томанго",5,"Вяленым на солнце томанго",1,nil,"Вялеными на солнце томанго") 106 | ch_nm("GARLEEK","Чеснок-порей",1,"Порею",1,nil,"Чесноком-пореем") --чеснок + лук-порей. Чеснук? Лук уже был. 107 | ch_nm("GARLEEK_COOKED","Запечённый чеснок-порей",1,"Запечённому чесноку-порею",1,nil,"Запечённым чесноком-пореем") 108 | ch_nm("TENTACLE_MEAT","Кончик щупальца",1,0,1) 109 | ch_nm("TENTACLE_MEAT_COOKED","Жареный кончик щупальца",1,0,1) 110 | ch_nm("PAPAYANAPPLE","Папайяблоко",4) 111 | ch_nm("PAPAYANAPPLE_COOKED","Печёное папайяблоко",4) 112 | ch_nm("ZUCCHILLI","Кабачили",1,1,1,nil,1) --Кабачок + Перец-чили 113 | ch_nm("ZUCCHILLI_COOKED","Нарезанный кабачили") 114 | 115 | -----------------------------------------Waiter 101 (дополнение от Hawaiian) 116 | --Общие фразы персонажей (для кажого недоперевел, пока что лень) 117 | 118 | -- DESCRIPTIONS.GENERIC 119 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.ACK_MUFFIN = "Вкусная ароматная булочка." 120 | -- Breads (x3) 121 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.NANA_BREAD = "Намного вкуснее, чем фруктовый пирог." 122 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.FRUIT_MUFFIN = "На вкус лучше фруктового пирога." 123 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.HARDTACK = "Не очень аппетитно, но долго хранится." 124 | -- Cakes & Pies (x4) 125 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CACTUS_CAKE = "Сладкий и колючий." 126 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MERINGUE = "Легкая и воздушная сладость." 127 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.STICKY_BUN = "Очень липкая." 128 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.TARTE_TATIN = "Это пирог из томанго." 129 | -- Candies & Sugars (x4 +) 130 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CANDIED_BACON = "Сладкосолёный бекон." 131 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CANDIED_FRUIT = "Приторно сладкие." 132 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CANDIED_NUT = "Покрыты застывшим мёдом." 133 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MUSH_MELON = "Не припоминаю такого блюда." 134 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MUSH_MELON_COOKED = "Хочется еще немного." 135 | -- Eggs (x4) 136 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.OMELETTE = "...не разбив нескольких яиц." 137 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MUSHY_EGGS = "Вкусные яйца." 138 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.NOPALITO = "Вкусно, но колко." 139 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SALAD_EGG = "Идеально для любого пикника." 140 | -- Fruits (x4) 141 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.FRUIT_LEATHER = "С кусочками фруктов." 142 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.FRUIT_TRUFFLE = "Простой десерт." 143 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LIMONADE = "Освежающий напиток." 144 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LIMONGELO = "С фруктовым желе." 145 | -- Meats (Beef) (x4) 146 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.BRACIOLE = "Жареные ломтики фаршированной говядины." 147 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.COLDCUTS = "Идеально." 148 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SAUSAGE_GRAVY = "Жирные колбаски с подливой." 149 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SWEET_N_SOUR = "Как в ресторане." 150 | -- Meats (Fish) (x3) 151 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.STUFFED_TOMANGO = "Рыбное блюдо." 152 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SURF_N_TURF = "Вкусное блюдо с рыбой." 153 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.FISH_N_CHIPS = "Приятное сочетание ароматов." 154 | -- Meats (Poultry) (x3) 155 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.ROLLATINI = "Тонко нарезана, а затем запечена." 156 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.BEEFALO_WINGS = "Горячие и остренькие." 157 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.PICATTA = "Мясное блюдо с ароматом цитрусов." 158 | -- Mushrooms (x4 +) 159 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CITRUS_MUSHROOM = "Не хватает чеснока." 160 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MUSHROOM_BURGER = "Хрустящая котлета между двумя грибными шляпками." 161 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MUSHROOM_MALODY = "Пахнет тухлой тряпкой." 162 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MUSHROOM_MEDLEY = "Аппетитная закуска из разных грибов." 163 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MUSHROOM_STEW = "Приятный на вкус грибной суп-пюре." 164 | -- Salads (x4) 165 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SALAD_CARROT = "Лучше, чем просто поджарить." 166 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SALAD_GRAPE = "Здоровая пища." 167 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SALAD_WALDORF = "Передайте спасибо шеф-повару." 168 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SALAD_YAMION = "Крепкий аромат, надо сказать." 169 | -- Soups (x5) 170 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CACTUS_SOUP = "Букет вкусов." 171 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CHOWDER = "Приятный и нежный." 172 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.GAZPACHO = "Ешьте охлажденным" -- Cold - requires Ice 173 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.GUMBO = "Очень острое, но вкусное блюдо." 174 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SQUASH = "Идеальная консистенция." 175 | -- Snacks (x7 +) 176 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.ALOO_TIKI = "Похрустывают." 177 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LIQUOR = "Небольшой стаканчик успокоит мне нервы." 178 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CHEESE_LOG = "Съедобнее, чем простое полено." 179 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.GRUEL = "Ужасающая смесь отвратительных ароматов." 180 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.NUT_BUTTER = "Вершина диетической пищи." 181 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.PORRIDGE = "Идеальная домашняя еда." 182 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.YAMION_RINGS = "Приятный знакомый вкус." 183 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.TWICE_BAKED = "Набитый мясом и обтекающий маслом." 184 | -- GLOBAL.STRINGS.CHARACTERS.WILSON.DESCRIBE.LIQUOR = "A little tonic and gin." 185 | -- Cookables (x4) 186 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.CASSEROLE = "Снова объедки." 187 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.FRUIT_SYRUP = "С высоким содержанием фруктозы." 188 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.MOLASSES = "Сладкая смерть." 189 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.OLEO = "Неплохо, но бывало и лук-ше!" 190 | -- Crops & Seeds 191 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.GRAPRICOT = "Это из него готовят амброзию богов?" 192 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.GRAPRICOT_COOKED = "Вкусный и сладкий." 193 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.GRAPRICOT_SEEDS = "Из них может вырасти абриградная лоза." 194 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LIMON = "Кислый цитрус." 195 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LIMON_COOKED = "Так себе." 196 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LIMON_SEEDS = "Из них вырастет цитрусовая лоза." 197 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.TOMANGO = "Многие спорят, фрукт это или овощ." 198 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.TOMANGO_COOKED = "Кто-то предпочитает готовить их еще зелеными." 199 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.TOMANGO_SEEDS = "Это фруктовые семена или овощные?" 200 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.YAMION = "Какой-то репчатый корнеплод." 201 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.YAMION_COOKED = "Вначале нужно снять шелуху." 202 | GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.YAMION_SEEDS = "А что, разве бывают такие семена?" 203 | 204 | ---------всё 205 | -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/defaults_item_pack.lua: -------------------------------------------------------------------------------- 1 | mk("CACTUSMACE","Кактусовая бита",3,0,"Кактусовую биту",false,"Кактусовой битой") 2 | mk("DARK_AXE","Тёмный топор",1,0,"Тёмный топор",false,"Тёмным топором") 3 | mk("DARK_PICKAXE","Тёмная кирка",3,0,"Тёмную кирку",false,"Тёмной киркой") 4 | mk("EWECUSHAT","Рыцарский шлем",1,0,"Рыцарский шлем",false,"Рыцарским шлемом") 5 | mk("FLYSWATTER","Мухобойка",3,0,"Мухобойку",false,"Мухобойкой") 6 | mk("FRYINGPAN","Сковородка",3,0,"Сковородку",false,"Сковородкой") 7 | mk("GROWTHSTAFF","Посох роста",1,0,"Посох роста",false,"Посохом роста") 8 | mk("HOLLOWHAT","Треснувший череп",1,0,"Треснувший череп",false,"Треснувшим черепом") 9 | mk("LIGHTNECKLACE","Светящееся ожерелье",4,0,"Светящееся ожерелье",false,"Светящимся ожерельем") 10 | mk("SPARTAHELMUT","Золотой шлем",1,0,"Золотой шлем",false,"Золотым шлемом") 11 | mk("SPARTASWURD","Острый меч",1,0,"Острый меч",false,"Острым мечом") 12 | mk("SUMMERBANDANA","Летняя бандана",3,0,"Летнюю бандану",false,"Летней банданой") 13 | mk("WOODENMACE","Деревянная булава",3,0,"Деревянную булаву",false,"Деревянной булавой") 14 | mk("ARMORMOSQUITO","Комариный костюм",1,0,"Комариный костюм",false,"Комариным костюмом") 15 | mk("BARONSUIT","Костюм барона",1,0,"Костюм барона",false,"Костюмом барона") 16 | mk("BIRCHNUTHAT","Шипастый шлем",1,0,"Шипастый шлем",false,"Шипастым шлемом") 17 | 18 | 19 | --В MODMAIN.LUA МОДА: 20 | 21 | 22 | rec.CACTUSMACE = "Так им достанется еще больше." 23 | pp(ch.GENERIC.DESCRIBE.CACTUSMACE, "Колючая бита.") 24 | pp(ch.WILLOW.DESCRIBE.CACTUSMACE, "Ауч! Я укололась.") 25 | pp(ch.WOLFGANG.DESCRIBE.CACTUSMACE, "На ней острые шипы.") 26 | pp(ch.WENDY.DESCRIBE.CACTUSMACE, "Не задеть бы себя.") 27 | pp(ch.WX78.DESCRIBE.CACTUSMACE, "МОЖЕТ НАНОСИТЬ УРОН МОИМ ВРАГАМ И МНЕ") 28 | pp(ch.WICKERBOTTOM.DESCRIBE.CACTUSMACE, "Кактус покрыт острыми иглами.") 29 | pp(ch.WOODIE.DESCRIBE.CACTUSMACE, "Выглядит опасно.") 30 | pp(ch.WAXWELL.DESCRIBE.CACTUSMACE, "Это будет больно.") 31 | pp(ch.WATHGRITHR.DESCRIBE.CACTUSMACE, "Что тебя не убивает - делает тебя сильнее!") 32 | pp(ch.WEBBER.DESCRIBE.CACTUSMACE, "Уф, страшная штуковина.") 33 | 34 | rec.DARK_AXE="Кошмарно рубит деревья." 35 | pp(ch.GENERIC.DESCRIBE.DARK_AXE, "Страшный топор.") 36 | pp(ch.WILLOW.DESCRIBE.DARK_AXE, "Мои кошмары помогут мне рубить деревья!") 37 | pp(ch.WOLFGANG.DESCRIBE.DARK_AXE, "Таинственный призрачный топор.") 38 | pp(ch.WENDY.DESCRIBE.DARK_AXE, "Ночной кошмар для каждого дерева.") 39 | pp(ch.WX78.DESCRIBE.DARK_AXE, "НЕОПОЗНАННЫЙ ТОПОР") 40 | pp(ch.WICKERBOTTOM.DESCRIBE.DARK_AXE, "Эктоплазма наделяет этот инструмент прозрачностью.") 41 | pp(ch.WOODIE.DESCRIBE.DARK_AXE, "Холодный и резкий. Прямо, как люди в наше время, а?") 42 | pp(ch.WAXWELL.DESCRIBE.DARK_AXE, "Это мой верный топор.") 43 | pp(ch.WATHGRITHR.DESCRIBE.DARK_AXE, "Рубить с отвагой!") 44 | pp(ch.WEBBER.DESCRIBE.DARK_AXE, "Рубить! Клац-клац.") 45 | 46 | rec.DARK_PICKAXE="Кошмарный инструмент." 47 | pp(ch.GENERIC.DESCRIBE.DARK_PICKAXE, "Страшная кирка.") 48 | pp(ch.WILLOW.DESCRIBE.DARK_PICKAXE, "Мои кошмары разрушат скалы!") 49 | pp(ch.WOLFGANG.DESCRIBE.DARK_PICKAXE, "ТАинственная призрачная кирка.") 50 | pp(ch.WENDY.DESCRIBE.DARK_PICKAXE, "Кошмарный инструмент для добычи руды.") 51 | pp(ch.WX78.DESCRIBE.DARK_PICKAXE, "НЕОПОЗНАННЫЙ ГОРНОДОБЫВАЮЩИЙ ИНСТРУМЕНТ") 52 | pp(ch.WICKERBOTTOM.DESCRIBE.DARK_PICKAXE, "Эктоплазма наделяет этот инструмент прозрачностью.") 53 | pp(ch.WOODIE.DESCRIBE.DARK_PICKAXE, "Холодная и резкая. Прямо, как люди в наше время, а?") 54 | pp(ch.WAXWELL.DESCRIBE.DARK_PICKAXE, "Упрощает добычу руды.") 55 | pp(ch.WATHGRITHR.DESCRIBE.DARK_PICKAXE, "Добывать руду с отвагой!") 56 | pp(ch.WEBBER.DESCRIBE.DARK_PICKAXE, "Она полупрозрачная, но очень прочная.") 57 | 58 | rec.EWECUSHAT= "Сделан из стали." 59 | pp(ch.GENERIC.DESCRIBE.EWECUSHAT, "Прочный шлем.") 60 | pp(ch.WILLOW.DESCRIBE.EWECUSHAT, "При большом огне он все равно расплавится.") 61 | pp(ch.WOLFGANG.DESCRIBE.EWECUSHAT, "Мощный шлем для силачей.") 62 | pp(ch.WENDY.DESCRIBE.EWECUSHAT, "Он защитит мое хрупкое тело.") 63 | pp(ch.WX78.DESCRIBE.EWECUSHAT, "ГОЛОВНОЙ УБОР ИЗ МЕТАЛЛА") 64 | pp(ch.WICKERBOTTOM.DESCRIBE.EWECUSHAT, "Прочный шлем.") 65 | pp(ch.WOODIE.DESCRIBE.EWECUSHAT, "Неплохой шлем.") 66 | pp(ch.WAXWELL.DESCRIBE.EWECUSHAT, "Выглядит неплохо, и защищает также.") 67 | pp(ch.WATHGRITHR.DESCRIBE.EWECUSHAT, "Шлем для настоящего воина.") 68 | pp(ch.WEBBER.DESCRIBE.EWECUSHAT, "Теперь нужен только меч.") 69 | 70 | rec.FLYSWATTER="Прихлопнем этих насекомых!" 71 | pp(ch.GENERIC.DESCRIBE.FLYSWATTER, "Прекрасно убивает мелких букашек.") 72 | pp(ch.WILLOW.DESCRIBE.FLYSWATTER, "Хорошо убивает надоедливых букашек.") 73 | pp(ch.WOLFGANG.DESCRIBE.FLYSWATTER, "Для убийства насекомых.") 74 | pp(ch.WENDY.DESCRIBE.FLYSWATTER, "Прерывает жизни букашек быстрее.") 75 | pp(ch.WX78.DESCRIBE.FLYSWATTER, "УСТРОЙСТВО ДЛЯ УНИЧТОЖЕНИЯ НАСЕКОМЫХ") 76 | pp(ch.WICKERBOTTOM.DESCRIBE.FLYSWATTER, "Разработана специально для уничтожения мелких насекомых.") 77 | pp(ch.WOODIE.DESCRIBE.FLYSWATTER, "Пригодится.") 78 | pp(ch.WAXWELL.DESCRIBE.FLYSWATTER, "Удобно.") 79 | pp(ch.WATHGRITHR.DESCRIBE.FLYSWATTER, "Оружие для славного боя с букашками!") 80 | pp(ch.WEBBER.DESCRIBE.FLYSWATTER, "Наша паутина будет получше, но и это сойдет.") 81 | 82 | rec.FRYINGPAN="Зададим им жару." 83 | pp(ch.GENERIC.DESCRIBE.FRYINGPAN, "Довольно тяжелая.") 84 | pp(ch.WILLOW.DESCRIBE.FRYINGPAN, "Я расплавлю их лица.") 85 | pp(ch.WOLFGANG.DESCRIBE.FRYINGPAN, "Хорошо жарит, и еще лучше бьет.") 86 | pp(ch.WENDY.DESCRIBE.FRYINGPAN, "Смерть от кухонной посуды, как иронично.") 87 | pp(ch.WX78.DESCRIBE.FRYINGPAN, "СДЕЛАНА ИЗ МЕТАЛЛА, КАК И Я") 88 | pp(ch.WICKERBOTTOM.DESCRIBE.FRYINGPAN, "Стальная сковорода для жарки.") 89 | pp(ch.WOODIE.DESCRIBE.FRYINGPAN, "Теперь поджарим пару голов!") 90 | pp(ch.WAXWELL.DESCRIBE.FRYINGPAN, "Ну, чтобы убивать врагов, мне подойдет любое оружие.") 91 | pp(ch.WATHGRITHR.DESCRIBE.FRYINGPAN, "Из набора кухонного воина!") 92 | pp(ch.WEBBER.DESCRIBE.FRYINGPAN, "Нам нравится ее звук.") 93 | 94 | rec.GROWTHSTAFF="Быстрый рост!" 95 | pp(ch.GENERIC.DESCRIBE.GROWTHSTAFF, "Он излучает энергию.") 96 | pp(ch.WILLOW.DESCRIBE.GROWTHSTAFF, "Красиво выглядит.") 97 | pp(ch.WOLFGANG.DESCRIBE.GROWTHSTAFF, "Вольфганг чувствует, как растут мышцы.") 98 | pp(ch.WENDY.DESCRIBE.GROWTHSTAFF, "Помогает растениям быстрее умереть.") 99 | pp(ch.WX78.DESCRIBE.GROWTHSTAFF, "ОРУДИЕ ДЛЯ УСКОРЕНИЯ РАЗВИТИЯ") 100 | pp(ch.WICKERBOTTOM.DESCRIBE.GROWTHSTAFF, "По всей видимости, ускоряет рост ближайших растений.") 101 | pp(ch.WOODIE.DESCRIBE.GROWTHSTAFF, "Я сделаю деревья больше.") 102 | pp(ch.WAXWELL.DESCRIBE.GROWTHSTAFF, "Эта мясистая луковица хорошо служит цели.") 103 | pp(ch.WATHGRITHR.DESCRIBE.GROWTHSTAFF, "Властвует над ростом растений.") 104 | pp(ch.WEBBER.DESCRIBE.GROWTHSTAFF, "Выглядит очень дико.") 105 | 106 | rec.HOLLOWHAT="Владелец становится невероятно быстрым." 107 | pp(ch.GENERIC.DESCRIBE.HOLLOWHAT, "Жуткий череп.") 108 | pp(ch.WILLOW.DESCRIBE.HOLLOWHAT, "Из него выйдет чудесная пепельница.") 109 | pp(ch.WOLFGANG.DESCRIBE.HOLLOWHAT, "Череп на замену черепу Вольфганга.") 110 | pp(ch.WENDY.DESCRIBE.HOLLOWHAT, "Кому-то он уже не пригодится.") 111 | pp(ch.WX78.DESCRIBE.HOLLOWHAT, "ЧЕРЕП, УВЕЛИЧИВАЮЩИЙ СКОРОСТЬ ПЕРЕДВИЖЕНЯ") 112 | pp(ch.WICKERBOTTOM.DESCRIBE.HOLLOWHAT, "Какое варварство.") 113 | pp(ch.WOODIE.DESCRIBE.HOLLOWHAT, "Буэ, это чей-то череп.") 114 | pp(ch.WAXWELL.DESCRIBE.HOLLOWHAT, "Он излучает темную энергию.") 115 | pp(ch.WATHGRITHR.DESCRIBE.HOLLOWHAT, "Останки славного воина.") 116 | pp(ch.WEBBER.DESCRIBE.HOLLOWHAT, "В этом шаре пусто!") 117 | 118 | rec.LIGHTNECKLACE="Освещает путь." 119 | pp(ch.GENERIC.DESCRIBE.LIGHTNECKLACE, "Его свечение может пригодиться.") 120 | pp(ch.WILLOW.DESCRIBE.LIGHTNECKLACE, "В нем нет огня, но оно горит!") 121 | pp(ch.WOLFGANG.DESCRIBE.LIGHTNECKLACE, "Ювелирная безделушка.") 122 | pp(ch.WENDY.DESCRIBE.LIGHTNECKLACE, "И несколько цветов в локоны волос.") 123 | pp(ch.WX78.DESCRIBE.LIGHTNECKLACE, "ОНО БЫСТРО ТУСКНЕЕТ") 124 | pp(ch.WICKERBOTTOM.DESCRIBE.LIGHTNECKLACE, "Светящиеся лампочки, скрепленные вместе.") 125 | pp(ch.WOODIE.DESCRIBE.LIGHTNECKLACE, "Женщинам бы понравилось.") 126 | pp(ch.WAXWELL.DESCRIBE.LIGHTNECKLACE, "Какое-то украшение. Я становлюсь все элегантнее.") 127 | pp(ch.WATHGRITHR.DESCRIBE.LIGHTNECKLACE, "Подходит женщинам, но не воинам!") 128 | pp(ch.WEBBER.DESCRIBE.LIGHTNECKLACE, "Соответствует своему названию.") 129 | 130 | rec.SPARTAHELMUT="Дорогой шлем." 131 | pp(ch.GENERIC.DESCRIBE.SPARTAHELMUT, "Какой-то древний дизайн.") 132 | pp(ch.WILLOW.DESCRIBE.SPARTAHELMUT, "Эта штука ярко красная и пушистая, прямо как огонь!") 133 | pp(ch.WOLFGANG.DESCRIBE.SPARTAHELMUT, "По-дурацки выглядит.") 134 | pp(ch.WENDY.DESCRIBE.SPARTAHELMUT, "Стоит больше моей жизни.") 135 | pp(ch.WX78.DESCRIBE.SPARTAHELMUT, "МЕТАЛЛИЧЕСКИЙ ШЛЕМ ДЛЯ ЗАЩИТЫ ГОЛОВЫ") 136 | pp(ch.WICKERBOTTOM.DESCRIBE.SPARTAHELMUT, "Спартанский шлем из золота.") 137 | pp(ch.WOODIE.DESCRIBE.SPARTAHELMUT, "Это точно не канадский шлем.") 138 | pp(ch.WAXWELL.DESCRIBE.SPARTAHELMUT, "Выглядит стильно.") 139 | pp(ch.WATHGRITHR.DESCRIBE.SPARTAHELMUT, "С рогами было бы еще круче!") 140 | pp(ch.WEBBER.DESCRIBE.SPARTAHELMUT, "Три сотни или меньше... Мы будем бороться!") 141 | 142 | rec.SPARTASWURD="Не поранься!" 143 | pp(ch.GENERIC.DESCRIBE.SPARTASWURD, "Соответствует названию.") 144 | pp(ch.WILLOW.DESCRIBE.SPARTASWURD, "Действительно большой нож!") 145 | pp(ch.WOLFGANG.DESCRIBE.SPARTASWURD, "Крепкое лезвие. Прямо как мои бицепсы!") 146 | pp(ch.WENDY.DESCRIBE.SPARTASWURD, "Перережу пару глоток.") 147 | pp(ch.WX78.DESCRIBE.SPARTASWURD, "ЭТО УПРОСТИТ БОЙ") 148 | pp(ch.WICKERBOTTOM.DESCRIBE.SPARTASWURD, "Меч в спартанском стиле.") 149 | pp(ch.WOODIE.DESCRIBE.SPARTASWURD, "Острее, чем мой топор!") 150 | pp(ch.WAXWELL.DESCRIBE.SPARTASWURD, "И впрямь хороший клинок.") 151 | pp(ch.WATHGRITHR.DESCRIBE.SPARTASWURD, "Мне нравится этот меч.") 152 | pp(ch.WEBBER.DESCRIBE.SPARTASWURD, "Мы на шаг ближе к тому, чтобы стать рыцарем!") 153 | 154 | rec.SUMMERBANDANA= "Для жарких летних деньков." 155 | pp(ch.GENERIC.DESCRIBE.SUMMERBANDANA, "Может немного охладить.") 156 | pp(ch.WILLOW.DESCRIBE.SUMMERBANDANA, "Это поможет моей голове не загореться от жары.") 157 | pp(ch.WOLFGANG.DESCRIBE.SUMMERBANDANA, "Лето не подходит для Вольфганга!") 158 | pp(ch.WENDY.DESCRIBE.SUMMERBANDANA, "Придется носить, чтобы не присоединиться к мертвецам.") 159 | pp(ch.WX78.DESCRIBE.SUMMERBANDANA, "СРЕДНЯЯ ЗАЩИТА ОТ ТЕПЛА") 160 | pp(ch.WICKERBOTTOM.DESCRIBE.SUMMERBANDANA, "Шляпа сделана из листов папируса.") 161 | pp(ch.WOODIE.DESCRIBE.SUMMERBANDANA, "Как я смотрюсь в ней? А?") 162 | pp(ch.WAXWELL.DESCRIBE.SUMMERBANDANA, "Бумажная шляпа? Эх.") 163 | pp(ch.WATHGRITHR.DESCRIBE.SUMMERBANDANA, "Броня от солнца!") 164 | pp(ch.WEBBER.DESCRIBE.SUMMERBANDANA, "Мы похожи на пирата!") 165 | 166 | rec.WOODENMACE= "Снесем им головы." 167 | pp(ch.GENERIC.DESCRIBE.WOODENMACE, "Бита, сделанная из дерева.") 168 | pp(ch.WILLOW.DESCRIBE.WOODENMACE, "Хороша для боя и для костра.") 169 | pp(ch.WOLFGANG.DESCRIBE.WOODENMACE, "Разве дерево достаточно прочно для рук Вольфганга?") 170 | pp(ch.WENDY.DESCRIBE.WOODENMACE, "Инструмент насилия.") 171 | pp(ch.WX78.DESCRIBE.WOODENMACE, "Я СДЕЛАЛ ДЕРЕВО БОЛЕЕ ПОЛЕЗНЫМ") 172 | pp(ch.WICKERBOTTOM.DESCRIBE.WOODENMACE, "Булава, сделанная из бревна.") 173 | pp(ch.WOODIE.DESCRIBE.WOODENMACE, "Мне нравится.") 174 | pp(ch.WAXWELL.DESCRIBE.WOODENMACE, "Деревянная бита.") 175 | pp(ch.WATHGRITHR.DESCRIBE.WOODENMACE, "Кусок дерева, готовый к битве.") 176 | pp(ch.WEBBER.DESCRIBE.WOODENMACE, "С этой штуковиной мы можем сыграть в бейсбол!") 177 | 178 | rec.ARMORMOSQUITO= "Восстановит ваше здоровье...кровью." 179 | pp(ch.GENERIC.DESCRIBE.ARMORMOSQUITO, "Пахнет кровью.") 180 | pp(ch.WILLOW.DESCRIBE.ARMORMOSQUITO, "Хорошо, что к нему не прилагается уродливого шлема.") 181 | pp(ch.WOLFGANG.DESCRIBE.ARMORMOSQUITO, "Комариная броня.") 182 | pp(ch.WENDY.DESCRIBE.ARMORMOSQUITO, "Кроваво и омерзительно.") 183 | pp(ch.WX78.DESCRIBE.ARMORMOSQUITO, "ХОРОШЕЕ ИСПОЛЬЗОВАНИЕ КРАСНОЙ ТЕЛЕСНОЙ ЖИДКОСТИ") 184 | pp(ch.WICKERBOTTOM.DESCRIBE.ARMORMOSQUITO, "Доспехи из комаров.") 185 | pp(ch.WOODIE.DESCRIBE.ARMORMOSQUITO, "Наполнены кровью.") 186 | pp(ch.WAXWELL.DESCRIBE.ARMORMOSQUITO, "Наконец-то эти кровопийцы пригодились.") 187 | pp(ch.WATHGRITHR.DESCRIBE.ARMORMOSQUITO, "Видала доспехи и похуже.") 188 | pp(ch.WEBBER.DESCRIBE.ARMORMOSQUITO, "Мы похожи на комара в ней?") 189 | 190 | rec.BARONSUIT= "Очень чудной." 191 | pp(ch.GENERIC.DESCRIBE.BARONSUIT, "Ну прямо костюм современного генерал-майора.") 192 | pp(ch.WILLOW.DESCRIBE.BARONSUIT, "Красиво смотрится.") 193 | pp(ch.WOLFGANG.DESCRIBE.BARONSUIT, "Нарядная мужская одежда.") 194 | pp(ch.WENDY.DESCRIBE.BARONSUIT, "Наверное, чтобы носить такой нужно какое-нибудь посвящение.") 195 | pp(ch.WX78.DESCRIBE.BARONSUIT, "Я ЕДИНСТВЕННЫЙ ЗАСЛУЖИВАЮ ЭТО НОСИТЬ") 196 | pp(ch.WICKERBOTTOM.DESCRIBE.BARONSUIT, "Мягкий, фиолетовый костюм с нагрудником.") 197 | pp(ch.WOODIE.DESCRIBE.BARONSUIT, "Красиво выглядит.") 198 | pp(ch.WAXWELL.DESCRIBE.BARONSUIT, "Выглядит достойно.") 199 | pp(ch.WATHGRITHR.DESCRIBE.BARONSUIT, "Латы предводителя.") 200 | pp(ch.WEBBER.DESCRIBE.BARONSUIT, "С этим нагрудником мы не испачкаемся во время еды.") 201 | 202 | rec.BIRCHNUTHAT= "Колючий. Очень." 203 | pp(ch.GENERIC.DESCRIBE.BIRCHNUTHAT, "Ауч, осторожнее с шипами!") 204 | pp(ch.WILLOW.DESCRIBE.BIRCHNUTHAT, "Остроконечный шлем.") 205 | pp(ch.WOLFGANG.DESCRIBE.BIRCHNUTHAT, "Головные шипы!") 206 | pp(ch.WENDY.DESCRIBE.BIRCHNUTHAT, "Внутри без шипов.") 207 | pp(ch.WX78.DESCRIBE.BIRCHNUTHAT, "Я УНИЧТОЖИЛ МНОЖЕСТВО РАСТЕНИЙ РАДИ НЕГО") 208 | pp(ch.WICKERBOTTOM.DESCRIBE.BIRCHNUTHAT, "Шипы нанесут урон любому, кто решит ударить.") 209 | pp(ch.WOODIE.DESCRIBE.BIRCHNUTHAT, "Сделан из семян деревьев!") 210 | pp(ch.WAXWELL.DESCRIBE.BIRCHNUTHAT, "Этот шлем будет сражаться за меня.") 211 | pp(ch.WATHGRITHR.DESCRIBE.BIRCHNUTHAT, "Колючая броня для воинов!") 212 | pp(ch.WEBBER.DESCRIBE.BIRCHNUTHAT, "Везде колючки!") 213 | 214 | ------------------------------------------------------------------ВСЁ -------------------------------------------------------------------------------- /scripts/mod_rusification/mods/pickle_it.lua: -------------------------------------------------------------------------------- 1 | -------------------------------Pickle it 2 | pp("If I want that potato, I'll need a shovel","Если я хочу эту картошку, то мне нужна лопата.") 3 | 4 | ch_nm("PICKLE_SWORD","Дурацкий меч",1,"Дурацкому мечу") 5 | 6 | mk("RADISH_SEEDS","Семена редиса",5,"Семенам редиса",1) 7 | 8 | 9 | mk("RADISH","Редиска",3) 10 | pp("What is small, red, and whispers?\nA hoarse radish!","Что такое маленькое, красное, и шепчет? Хрен!") 11 | pp("This veggie is so rad(ish)","Хрен редьки не слаще.") 12 | pp("I can pickle that!","Я могу это замариновать!") 13 | 14 | mk("RADISH_COOKED","Печеная редиска",3) 15 | pp("Delicious and healthy","Вкусное и здоровое питание") 16 | pp("Sweeter and softer than a raw radish","Слаще и мягче, чем сырая редька") 17 | 18 | mk("RADISH_PICKLED","Маринованный редис") 19 | pp("Sweet, tangy, and pink","Сладкий, острый, и розовый") 20 | pp("This would make a great garnish","Это мог бы быть хороший гарнир") 21 | 22 | mk("RADISH_PLANTED","Редиска",3) --которая растёт на земле 23 | pp("It's a little wild radish","Это маленькая дикая редиска") 24 | 25 | mk("PIGS_FOOT_COOKED","Шкварки",5) 26 | pp("Best eaten while watching football","Best eaten while watching football") 27 | pp("A crunchy snack made from meat!","Хрустящая закуска, сделанная из мяса!") 28 | 29 | mk("PIGS_FOOT_PICKLED", "Маринованная свинина", 3) 30 | pp("Who thought this was a good idea?","Кто думал, что это была хорошая идея?") 31 | pp("I don't think a starving raptor would even eat this","Я думаю, даже голодный хищник не стал бы это есть.") 32 | 33 | mk("PUMPKIN_PICKLED","Маринованная тыква",3) 34 | pp("Peter Piper pickled a peck of pickled pumpkins... err, peppers","Какой любимый спорт у тыквы?\nСквош!") --непереводимая игра слов 35 | pp("What's a pumpkin's favorite sport?\nSquash!","Какой любимый спорт у тыквы?\nСквош!") 36 | 37 | mk("ONION_PLANTED","Лук") 38 | pp("Look, a wild onion!","Смотрите! Дикий лук!") 39 | 40 | mk("ONION_SEEDS","Семена лука",5,"Семенам лука",1) 41 | pp("It's a seed.","Это семена.") 42 | 43 | mk("PICKLE_BARREL","Бочонок рассола",1,"Бочонку рассола",1) 44 | pp("Pickle your food so it lasts longer!","Маринованные продукты дольше хранятся, так ведь?") 45 | pp("Mmm, salty goodness","Ммммм, солёная вкуснятина") 46 | pp("Not to be confused with pickleball","Чтобы еда замариновалась, придется подождать") 47 | pp("Serves sandwiches, right?","Сегодня подаём бутерброды, верно?") 48 | 49 | mk("PIGS_FOOT","Свиная ножка",3) 50 | pp("Poor Wilbur...","Жаль, что так вышло.") 51 | pp("This little piggy isn't going to the market anymore","Этот маленький поросёнок больше не пойдёт в магазин.") 52 | 53 | mk("MUSH_PICKLED","Солёная кашица",3) 54 | pp("Better not eat this", "Лучше не есть это.") 55 | pp("Pickled into oblivion, I guess", "Лёгкий путь в рай, я надеюсь.") 56 | 57 | mk("PIGS_FOOT_DRIED","Вяленые свиные ножки",5,"Вяленым свиным ножкам",1) 58 | 59 | mk("ONION","Лук") 60 | pp("*Sob* Who's cutting onions?","*рыдает* Кто режет лук?") 61 | pp("Ogres are like onions","Чудовища как луковицы.") 62 | pp("Onions always make me cry","Из-за лука я всегда плачу горькими слезами.") 63 | --pp("I can pickle that!","Я могу его замариновать!") --Повтор 64 | 65 | mk("ONION_COOKED","Жареные кольца лука",5,"Жареным кольцам лука",1) 66 | pp("If you like it, you should put an onion ring on it","Если вы это любите, то вы должны сложить кольца вместе.") 67 | --pp("If you hear an onion ring, answer it",--игра слов. ring=кольцо и ring=звонок 68 | pp("I guess this makes me the Lord of the Onion Rings","Я надеюсь, хоть одно сделает меня Хозяином Кольца Лука.") 69 | 70 | mk("ONION_PICKLED","Маринованный лук") 71 | pp("What's round, white, and giggles?\nA tickled onion!","Что такое: круглое, белое и хихикает?\nМаринованный лук!") 72 | pp("Beautiful and zesty... yum!","Красиво и пикантно... хрум!") 73 | 74 | mk("EGG_PICKLED","Маринованные яйца",5,"Маринованным яйцам",1) 75 | pp("Am I supposed to actually eat this?", "А что, я должен на самом деле это съесть?") 76 | pp("Who decided this should be edible?","Кто решил, что это должно быть съедобным?") 77 | 78 | mk("FISH_PICKLED","Селёдка",3) 79 | pp("Whoa, this is pungent!", "Вау, это пикантно!") 80 | pp("Catch a pickled herring, put it in your pocket","Рыбку поймал - в карман положил.") 81 | pp("At least it's not lutefisk","По крайней мере, это не лютефиск.") 82 | 83 | mk("MUSHROOM_PICKLED","Маринованные грибы",5) 84 | pp("Why did the fungi leave the party?\nThere wasn't mushroom.", "А что еще делать с этими несъедобными грибами?") 85 | pp("Why do people like Mr. Mushroom?\nBecause he's a fungi!","А что еще делать с этими несъедобными грибами?") 86 | --[[mk_gen("MUSHROOM_PICKLED", { 87 | --"Why did the fungi leave the party?\nThere wasn't mushroom.", --игра слов 88 | --"Why do people like Mr. Mushroom?\nBecause he's a fungi!", --игра слов 89 | "А что еще делать с этими несъедобными грибами?" 90 | })--]] 91 | 92 | mk("CUCUMBER_GOLDEN_PICKLED","Золотой солёный огурец") 93 | mk("CUCUMBER_COOKED","Нарезанные огурцы",5) 94 | pp("It'll never become a pickle now", "Теперь их не засолишь.") 95 | pp("Tastes like grilled water", "На вкус, как обычная вода.") 96 | pp("Poor Larry","Бедный Ларри") 97 | 98 | mk("CUCUMBER_PICKLED","Солёный огурец") 99 | pp("This is quite a pickle", "Уже достаточно солёный.") 100 | --pp("Why do gherkins giggle? They're PICKLish!",--глупо. И не переводится нормально. 101 | pp("If only I had a hamburger to put this on","Если бы у меня только был гамбургер, чтобы засунуть в него солёный огурец.") 102 | 103 | mk("CUCUMBER_SEEDS","Семена огурца",5,"Семенам огурца",1) 104 | 105 | mk("EGGPLANT_PICKLED","Маринованный баклажан") 106 | pp("Lasts longer than a regular eggplant","Хранится дольше, чем обычный баклажан.") 107 | pp("You don't steal a bitter eggplant","Никто не украдёт горький баклажан.") 108 | 109 | mk("CABBAGE_SEEDS","Семена капусты",5,"Семенам капусты",1) 110 | 111 | mk("CARROT_PICKLED","Маринованная морковь",3) 112 | pp("Lasts longer than a normal carrot", "Хранится дольше, чем обычная морковь.") 113 | pp("Some prefer carrots, while others like cabbage.","Некоторые предпочитают морковь, в то время как другие - капусту.") 114 | 115 | mk("CORN_PICKLED","Консервированная кукуруза",3) 116 | pp("Lasts longer than regular corn","Хранится дольше, чем обычная кукуруза") 117 | pp("What did the corn say when he got complimented?\nAww, shucks!","Мальчик, объевшийся кукурузы, лопнул в солярии.\nНо с этой такого не случится.")--шутка, да?) окей, шутка 118 | 119 | mk("CUCUMBER","Огурец") 120 | --pp("Looks cumbersome... cucumbersome", --игра слов 121 | pp("I bet this would make a fine pickle", "Бьюсь об заклад, это будет прекрасный маринад.") --стишок, однако 122 | pp("Cool as a cucumber","Холодный, как огурец") 123 | pp("I shall call him Larry","Я назову его Ларри") 124 | --pp("I can pickle that!", --Повтор 125 | 126 | mk("BEET_SEEDS","Семена свёклы",5,"Семенам свёклы",1) 127 | 128 | mk("CABBAGE","Капуста",3) 129 | --pp("A guy named Cabbage invented the computer... \nno wait, that was Babbage", --опять шутка, игра слов 130 | pp("About as large and wise as a man's head","Большая и мудрая, как голова человека") --это должно быть смешно что ли? 131 | pp("I heard that kids hang out around cabbage patches","Я слышал, что дети рождаются из кочана капусты.") 132 | --pp("I can pickle that!", --повтор 133 | 134 | mk("CABBAGE_COOKED","Жареная капуста",3) 135 | pp("Crunchy and tasty", "Хрустящая и вкусная") 136 | pp("So easy to make, just slice and cook", "Так легко приготовить, просто нарезать и прожарить.") 137 | 138 | 139 | mk("CABBAGE_PICKLED","Кислая капуста",3) 140 | pp("My grandpa puts sauerkraut in his chocolate cakes", "Мой дедушка кладёт квашеную капусту в шоколадные пирожные.") 141 | pp("Try substituting sauerkraut for coconut when baking","Попробуйте заменить кокос квашеной капустой при выпечке.") 142 | --pp("Also known as liberty cabbage",--свободная капуста? ват? 143 | 144 | mk("BEET_PICKLED","Маринованная свёкла",3) 145 | --pp("I hear people really like pickled beets.\nMaybe I should give them a try.", 146 | pp("They actually look kinda tasty","Они и вправду выглядят любопытно вкусно.") 147 | 148 | mk("BEET_PLANTED","Свёкла",3) 149 | pp("Looks like a beet","Похоже на... свёклу.") 150 | 151 | mk("BEET","Свёкла",3) 152 | pp("Fact: bears eat beets. Bears, beets, Battlestar Galactica","Факт: медведи едят свёклу.") -- Медведи, свекла, Battlestar Galactica", --этот американский юмор уже надоел 153 | pp("Nobody likes beets. Maybe I should have grown candy instead.","Никто не любит свёклу. Может быть, стоит вырастить конфеты?") 154 | pp("Let's have a garden party.\nLettuce turnip the beet.","Внучка за бабку, бабка за дедку, дедка за репку.")--стишок, ок 155 | --pp("I can pickle that!",--Повтор 156 | 157 | mk("BEET_COOKED","Жареная свёкла",3) 158 | pp("Roasted beets have a sweet earthy flavor", "Жареная свёкла имеет сладкий земляной привкус.") 159 | pp("Sweeter than unroasted beets", "Слаще необжаренной свёклы.") 160 | 161 | ch_nm("POTATO","Картофель",1,"Картофелю") 162 | ch_nm("POTATO_COOKED","Печёный картофель",1,"Печёному картофелю") 163 | ch_nm("POTATO_PLANTED","Картофель",1,"Картофелю") 164 | ch_nm("POTATO_SEEDS","Семена картофеля",5,"Семенам картофеля",1) --Их пока что не существует. 165 | 166 | ch_nm("WATERMELON_PICKLED","Арбузные корки",5) 167 | 168 | --mk("BERRIES_PICKLED","Маринованные ягоды",5,"Маринованным ягодам") 169 | ch_nm("BERRIES_PICKLED","Забродившие ягоды",5,"Забродившим ягодам") 170 | 171 | --В связи с переименованием некоторых блюд на адаптивные русские названия нужно пропатчить систему приготовления блюд. 172 | --Ямс = лукфель = картофель во многих случаях в некотором приближении. 173 | 174 | 175 | --[[ 176 | --В целом это не имеет смысла, т.к. фильтруется на выделенном сервере. Правильнее написать автору мода о багах. 177 | local cooking = _G.require("cooking") 178 | local ingredients = cooking.ingredients 179 | --Функция мягкого изменения значений ингредиентов без полной перезаписи. Для полной совместимости с любыми модами. 180 | AddIngredientValues = function(names, tags, cancook, candry) 181 | for _,name in pairs(names) do 182 | if not ingredients[name] then --No breaking! 183 | ingredients[name] = { tags= {}} 184 | end 185 | if cancook and not ingredients[name.."_cooked"] then --No breaking! 186 | ingredients[name.."_cooked"] = {tags={}} 187 | end 188 | if candry and not ingredients[name.."_dried"] then --No breaking! 189 | ingredients[name.."_dried"] = {tags={}} 190 | end 191 | for k,v in pairs(tags) do 192 | ingredients[name].tags[k] = v 193 | if cancook then 194 | ingredients[name.."_cooked"].tags.precook = 1 195 | ingredients[name.."_cooked"].tags[k] = v 196 | end 197 | if candry then 198 | ingredients[name.."_dried"].tags.dried = 1 199 | ingredients[name.."_dried"].tags[k] = v 200 | end 201 | end 202 | end 203 | end 204 | 205 | --Надо бы переместить в Foodie 206 | AddIngredientValues({"pigs_foot_dried"},{meat=0.5}) --Микроскопический фикс известного бага. 207 | AddIngredientValues({"potato"},{veggie=1, tuber=1}) 208 | AddIngredientValues({"mushroom_pickled"},{veggie=0.5,fungus=1,mushrooms=1}) --compatible with waiter 101 209 | AddIngredientValues({"fish_pickled"},{meat=.5,fish=1,seafood=1}) --compatible with waiter 101 210 | AddIngredientValues({"corn_pickled","pumpkin_pickled"},{veggie=0.5,starch=1}) 211 | --]] 212 | 213 | ---------------- Дополниение от Hawaiian ---------------- 214 | -------------------------------------------------------------------------------------Pickle it 215 | 216 | --pickleit_strings.lua 217 | 218 | STRINGS.NAMES.PICKLE = "Мариновать" 219 | 220 | -- Pickle Barrel 221 | 222 | STRINGS.NAMES.PICKLE_BARREL = "Pickle Barrel" 223 | 224 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.PICKLE_BARREL_PICKLING = { 225 | "Теперь нужно подождать", 226 | "Мариновка займет какое-то время", 227 | "Скорее я сам замаринуюсь, чем будет готово", 228 | } 229 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.PICKLE_BARREL_GENERIC = { 230 | "Pickle your food so it lasts longer!", 231 | "Mmm, salty goodness", 232 | "Not to be confused with pickleball", 233 | "Serves sandwiches, right?", 234 | } 235 | 236 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.PICKLE_BARREL = STRINGS.CHARACTERS.GENERIC.DESCRIBE.PICKLE_BARREL_GENERIC 237 | 238 | STRINGS.RECIPE_DESC.PICKLE_BARREL = "Маринованная еда хранится дольше!" 239 | 240 | -- Pickle Sword 241 | 242 | STRINGS.NAMES.PICKLE_SWORD = "Pickle Sword" 243 | 244 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.PICKLE_SWORD = { 245 | "Сразись со мной на огурцах!", 246 | "Мой огурец больше твоего!", 247 | "Огуречный сюрприз!", 248 | } 249 | 250 | STRINGS.RECIPE_DESC.PICKLE_SWORD = "Сражайтесь солёным огурцом!" 251 | 252 | -- Beet 253 | 254 | STRINGS.NAMES.BEET = "Beet" 255 | STRINGS.NAMES.BEET_COOKED = "Roasted Beet" 256 | STRINGS.NAMES.BEET_SEEDS = "Beet Seeds" 257 | STRINGS.NAMES.BEET_PICKLED = "Pickled Beet" 258 | STRINGS.NAMES.BEET_PLANTED = "Beet" 259 | 260 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.BEET = { 261 | "Fact: bears eat beets. Bears, beets, Battlestar Galactica", 262 | "Nobody likes beets. Maybe I should have grown candy instead.", 263 | "Let's have a garden party.\nLettuce turnip the beet.", 264 | "I can pickle that!", 265 | } 266 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.BEET_COOKED = { 267 | "Roasted beets have a sweet earthy flavor", 268 | "Sweeter than unroasted beets", 269 | } 270 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.BEET_SEEDS = { 271 | "It's a seed.", 272 | } 273 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.BEET_PICKLED = { 274 | "Может, стоит попробовать?.", 275 | "They actually look kinda tasty", 276 | } 277 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.BEET_PLANTED = { 278 | "Looks like a beet", 279 | } 280 | 281 | -- Berries 282 | 283 | STRINGS.NAMES.BERRIES_PICKLED = "Pickled Berries" 284 | 285 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.BERRIES_PICKLED = { 286 | "Маринованные ягоды со щепоткой специй", 287 | "С сыром будет вкусно", 288 | }STRINGS.CHARACTERS.GENERIC.DESCRIBE.POTATO = { 289 | "Уничтожу, раскромсаю, раздавлю...в пюре!", 290 | "Каррррр! Тофель!", 291 | "У чего есть глазки но нет зрения?\nУ картошки!", 292 | } 293 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.POTATO_COOKED = { 294 | "Просто, быстро и вкусно!", 295 | "Ароматный жареный картофель", 296 | } 297 | 298 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.PIGS_FOOT_DRIED = { 299 | "Вкусные вяленые свиные ножки...", 300 | } 301 | STRINGS.CHARACTERS.GENERIC.DESCRIBE.WATERMELON_PICKLED = { 302 | "Кто придумал мариновать арбузные корки?", 303 | "Хорошо сочетается с сырными крэкерами", 304 | } 305 | 306 | 307 | 308 | 309 | 310 | --------------------------------------------------------------------------------