Compare commits

...

37 Commits

Author SHA1 Message Date
Map
b86f91e423 Update woodpecker to renpy 8.3.2
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
ci/woodpecker/tag/woodpecker Pipeline was successful
ci/woodpecker/release/woodpecker Pipeline was successful
2024-10-11 16:31:33 -05:00
Map
b4a7223e9a cleanup classify functions
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
2024-10-11 16:19:08 -05:00
Map
3776b2bc9d update gitignore to ignore mod folders
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
2024-10-11 16:11:03 -05:00
46c47303d7 Merge pull request 'Fix Snootgame Building' (#253) from fix-snootgame-building into master
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #253
Reviewed-by: Mappening <mapanon@noreply.git.cavemanon.xyz>
2024-10-11 20:59:00 +00:00
6377fffba0 Remove renconstruct from build
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
ci/woodpecker/pr/woodpecker Pipeline is pending
ci/woodpecker/pull_request_closed/woodpecker Pipeline is pending
2024-10-11 15:45:32 -05:00
b16bd97d33 Debloated builds and include renconstruct
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
ci/woodpecker/pr/woodpecker Pipeline is pending
An option in the options.rpy made it so renconstruct.toml wasn't shipped
with the game AND the lack of an option made the game compile with the
dist/ folder being exported, meaning that the game would ship with an
android build unnecessarily.

Fixes: #239
Fixes: #240
2024-10-11 15:03:13 -05:00
Map
a82e51e477 tweaked a few language strings to look better in the menu
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
2024-10-11 13:30:42 -05:00
Map
e7eb667820 update polish strings 2024-10-11 13:21:33 -05:00
520a728ebd Merge pull request 'New RU tl stuff' (#252) from Gexahord/SnootGameKGB:rutl-newstuff into master
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #252
Reviewed-by: Mappening <mapanon@noreply.git.cavemanon.xyz>
2024-10-11 15:14:03 +00:00
8686143ddd Promo Art Fix
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending
ci/woodpecker/pull_request_closed/woodpecker Pipeline is pending
2024-10-11 06:07:18 +03:00
a0c0a22a41 New RU tl stuff 2024-10-11 00:08:32 +03:00
Map
6cea8fa94b add additional promo art credit 2024-10-10 14:40:02 -05:00
Map
1fad3b0b62 Update italian and spanish strings 2024-10-10 11:17:22 -05:00
Map
fc537fecc7 undo checking for conflicting properties (as it turns out enforcing cleaner code is inconvenient (especially if it's over something that doesn't show issues in the first place)) 2024-10-08 18:18:20 -05:00
Map
f3bb2caa7f put backspace functionality into the help menu 2024-10-08 13:17:03 -05:00
Map
3bf7e9e433 up the default volume slider 2024-10-07 20:59:14 -05:00
Map
d581c7884c makes the scroll toggle a little smarter 2024-10-07 20:15:57 -05:00
Map
3d51bae4a6 remove comment that no longer applies in mod menu 2024-10-07 20:14:54 -05:00
Map
5d44682f49 fix android mod buttons 2024-10-07 18:14:12 -05:00
Map
033175500c Fix mods without defined names not being assigned their folder name
Remove checks for the 'None' language as the user will never be assigned to it
Some comment typo fixes
Make reloading mods not play the splash screen
Pressing backspace will now hide the mod details pane, and shoe mod errors if there's any
Attempt at making a button for android to hide the details pane.
2024-10-07 17:10:10 -05:00
Map
2c2899e734 Turn on check conflicting properties (trolling modders one config var at a time) 2024-10-07 04:02:06 -05:00
Map
301035bad1 Fix some lint errors 2024-10-07 03:57:39 -05:00
Map
e06db742e2 Merge branch 'master' of https://git.cavemanon.xyz/Cavemanon/SnootGame 2024-10-07 03:07:10 -05:00
Map
610737fddf remove redundant imports for rounded corners 2024-10-07 03:07:03 -05:00
Map
e41d42d4e7 tweak rounded corners of mod icons 2024-10-07 03:06:54 -05:00
Map
7873a882a8 Add note about icon in mod README 2024-10-07 02:50:02 -05:00
Map
c045fcff26 nudge "no mods!" message down a bit 2024-10-07 02:49:53 -05:00
Map
81c646e81b remove unused gui images 2024-10-07 00:56:36 -05:00
Map
7612935547 turn on linear fades to prevent mixing from getting out of wack
and fucking fix those volume defaults once and for all
2024-10-07 00:51:56 -05:00
201cd61f63 Merge pull request 'Spanish Translation for new stuf' (#251) from Espaniolo into master
Reviewed-on: #251
2024-10-07 05:31:53 +00:00
Map
934a0dc72a change languaged_up to be set inside the lang_sel screen 2024-10-07 00:30:08 -05:00
9d1064c75e Spanish Translation for new stuf 2024-10-07 02:29:08 -03:00
Map
ca7406d0d9 Add pre-splash 2024-10-07 00:08:51 -05:00
Map
79ac93e6fd Turn on deferred languages 2024-10-06 23:23:58 -05:00
Map
019d5f4f44 Fixed language setup screen 2024-10-06 23:22:25 -05:00
Map
64b566d66b Set volume slider default 2024-10-06 23:15:57 -05:00
40ec930ab3 Merge pull request 'Improved epilgoue menu' (#250) from improved_epilogue_menu into master
Reviewed-on: #250
Reviewed-by: Legalo <legalo@noreply.git.cavemanon.xyz>
2024-10-07 03:00:23 +00:00
52 changed files with 2469 additions and 260 deletions

3
.gitignore vendored
View File

@@ -58,3 +58,6 @@ env
#linux
*.sh
# Exclude mod folders, but not files in the root mod directory
/game/mods/*/

View File

@@ -83,6 +83,6 @@ steps:
matrix:
RenpyVersion:
- "8.3.0"
- "8.3.2"
RenkitVersion:
- "4.4.0"

View File

@@ -105,7 +105,6 @@ define gui.main_menu_text_size = 60
## The images used for the main and game menus.
define gui.main_menu_background = "gui/main_menu.png"
define gui.game_menu_background = "gui/game_menu.png"
define gui.extras_submenu_background = "gui/overlay/extras_submenu.png"
define gui.extras_submenu_panel = "gui/overlay/extras_submenu_panel.png"
## Dialogue ####################################################################

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -66,7 +66,7 @@ Below is all the possible entries you can put in, and explanations for what they
In the same directory as your metadata file, there's image files you can put in the to make your mod more appealing. These can be any of Ren'Py's supported image file types, so the file extension here is just for demonstration:
-'thumbnail.png' will appear as a banner for your mod, at the top of the mod details pane
-'icon.png' will show a small image next your mod name or take up the entire button depending on what your "Display" entry is set to.
-'icon.png' will show a small image next your mod name or take up the entire button depending on what your "Display" entry is set to. NOTE: Putting in an image too big in dimensions will crash the game.
-'screenshot(number).png' will show screenshots at the bottom of the mod details pane. The '(number)' is a placeholder for a number that represents what order your screenshots appear in. For example, you can have 'screenshot1.png', 'screenshot2.png', and 'screenshot3.png' in your mod directory, and they will all appear in the mod details pane in order. These numbers don't need to be strictly sequential, they can be any number as long as they are integers, and the order will be derived from ASCII ordering.
As the game loads the metadata, it will also collect scripts for loading. When you make your mod scripts, ALL OF THEM NEED TO HAVE .rpym EXTENSIONS. This is important for being able to control mods with the mod loader, otherwise there would be mod conflicts galore. If you use .rpy extensions to make your mod scripts, they will work, but they will not be manageable by the mod loader. This means you should only use them for development, or if you're not using the mod loader anyway - such as adding a translation to the base game.

View File

@@ -133,6 +133,21 @@ default preferences.text_cps = 50
default preferences.afm_time = 15
## Disables loading all languages at once at startup, only loading a language when selecting a language
define config.defer_tl_scripts = True
## Retains linear audio fading so mixing doesn't get fucked from the update to 8.2+
define config.linear_fades = True
## The variable used for making the splashscreen not show when reloading a mod
default persistent.reloading_mods = False
## Snoot-specific config variables
define config.developer = "auto"
@@ -144,21 +159,21 @@ default persistent.lewd = False
default persistent.autoup = False
default persistent.show_mod_screenshots = True
default persistent.gallery_edgescroll = True
default persistent.scroll = False
init -1000 python:
init -999 python:
if persistent.newmods_default_state == None:
persistent.newmods_default_state = True
persistent.newmods_default_state = False
init python:
# No idea what this does
# Makes going forward on the scroll wheel advance dialogue, rather than just seen dialogue
if persistent.scroll == True:
config.keymap['dismiss'].append('mousedown_4')
elif persistent.scroll == None:
persistent.scroll = False
##Default Audio is not ear rape
define config.default_music_volume = 0.48
define config.default_sfx_volume = 0.80
define config.default_music_volume = 0.61
define config.default_sfx_volume = 0.8
define config.default_voice_volume = 0.8
## Save directory ##############################################################
##
@@ -215,19 +230,17 @@ init python:
build.classify('**/#**', None)
build.classify('**/thumbs.db', None)
# Do not include mod_examples as part of the build process
build.classify('game/mods_example/**', None)
build.classify('game/mods_example/.**', None)
# Do not include mod folders as part of the build process
build.classify('game/mods/*/', None)
#Development files need not apply
build.classify('README.md', None)
build.classify('renconstruct.toml', None)
build.classify('bundle.keystore', None)
build.classify('android.keystore', None)
build.classify('bundle.keystore.original', None)
build.classify('game/dev/.**', None)
build.classify('build_patch/*', None)
build.classify('android.keystore.original', None)
build.classify('*dist/*', None)
## To archive files, classify them as 'archive'.

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -904,12 +904,6 @@ screen preferences():
textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False)
textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False)
vbox:
style_prefix "check"
label _("Mods")
textbutton _("Show Mod Screenshots") action [Function(onclick_audio, persistent.show_mod_screenshots), ToggleVariable("persistent.show_mod_screenshots", True, False)]
textbutton _("Enable New Mods") action [Function(onclick_audio, persistent.newmods_default_state), ToggleVariable("persistent.newmods_default_state", True, False)]
if not main_menu:
if config.developer and persistent.enable_debug_scores:
$ debug_story_variables(False)
@@ -917,6 +911,12 @@ screen preferences():
else:
$ debug_story_variables(False)
vbox:
style_prefix "check"
label _("Mods")
textbutton _("Show Mod Screenshots") action [Function(onclick_audio, persistent.show_mod_screenshots), ToggleVariable("persistent.show_mod_screenshots", True, False)]
textbutton _("Enable New Mods") action [Function(onclick_audio, persistent.newmods_default_state), ToggleVariable("persistent.newmods_default_state", True, False)]
if renpy.variant(["mobile", "steam_deck"]):
vbox:
style_prefix "check"
@@ -975,7 +975,7 @@ screen preferences():
hbox:
bar value Preference("music volume") yalign 0.5
textbutton _("Reset"):
action Function(preferences.set_volume, 'music', config.default_music_volume)
action Function(preferences.set_mixer, 'music', config.default_music_volume)
if config.has_sound:
@@ -983,7 +983,7 @@ screen preferences():
hbox:
bar value Preference("sfx volume") yalign 0.5
textbutton _("Reset"):
action Function(preferences.set_volume, 'sfx', config.default_sfx_volume)
action Function(preferences.set_mixer, 'sfx', config.default_sfx_volume)
if config.sample_sound:
textbutton _("Test") action Play("sound", config.sample_sound)
@@ -992,7 +992,7 @@ screen preferences():
bar value Preference("ui volume") yalign 0.5
textbutton _("Reset"):
yalign 0.5
action Function(preferences.set_volume, 'ui', config.default_sfx_volume)
action Function(preferences.set_mixer, 'ui', config.default_sfx_volume)
if config.has_voice:
label _("Voice Volume")
@@ -1000,7 +1000,7 @@ screen preferences():
bar value Preference("voice volume") yalign 0.5
textbutton _("Reset"):
yalign 0.5
action Function(preferences.set_volume, 'voice', config.default_sfx_volume)
action Function(preferences.set_mixer, 'voice', config.default_voice_volume)
if config.sample_voice:
textbutton _("Test") action Play("voice", config.sample_voice)
@@ -1208,7 +1208,7 @@ screen extrasnavigation():
[ _("Help"), ShowMenu("help") ],
[ _("About"), ShowMenu("about") ],
[ _("Gallery"), ShowMenu("cg_gallery") ],
*([(_("Chapter Select"), Start("chapter_select"))] if persistent.enable_chapter_select else []),
*([(_("Chapter Select{#MainMenu}"), Start("chapter_select"))] if persistent.enable_chapter_select else []),
[ _("Mods"), ShowMenu("mod_menu") ],
[ _("Return"), ShowMenu("main_menu") ]
] )
@@ -1301,6 +1301,10 @@ screen keyboard_help():
label _("Page Down")
text _("Rolls forward to later dialogue.")
hbox:
label _("Backspace")
text _("Hides mod details. Shows mod errors if there is any.")
hbox:
label "H"
text _("Hides the user interface.")

View File

@@ -57,12 +57,14 @@ label before_main_menu:
if preferences.language == None:
$ preferences.language = 'en'
# Call initial language setup screen
if (persistent.languaged_up is None):
$ preferences.set_volume('ui', config.default_sfx_volume)
$ persistent.languaged_up = True
call screen lang_sel
# Setting this here means we're past reloading scripts, therefore we're not reloading mods
$ persistent.reloading_mods = False
# Call initial language setup screen
# languaged_up is set within lang_sel
if (persistent.languaged_up is None):
$ preferences.set_mixer("ui", config.default_sfx_volume)
call screen lang_sel
return
label start:

View File

@@ -125,6 +125,9 @@ init 999 python:
_('Asset help (Italian):'): [
'Dsatta',
],
_('Promo Art (Italian):'): [
'Kaprakaz',
]
}
textlist = []
@@ -233,7 +236,7 @@ label test_credits:
init python:
# Note: Measuring in pixels
panning_stop = 12700 # How far the panning will go down
panning_stop = 13290 # How far the panning will go down
panning_stop_bg = 8100 # How far the background images will pan, to create the parallax effect (I can't believe cuckedmanon didn't like this!)
panning_duration = 65 # How long in seconds
credits_img_offset = panning_stop + 550 # Distance away from panning_stop where the image will render

View File

@@ -62,7 +62,7 @@
# etc...
# }
#
# Note that some keys may exist, but simple be 'None', likely as a result of improperly filled out metadata files.
# Note that some keys may exist, but end up as 'None', likely as a result of improperly filled out metadata files.
init -999 python:
@@ -145,7 +145,7 @@ init -999 python:
destination_dict[key] = source_dict[key]
del source_dict[key]
# Checks to see if the key in the metadata dict exists/is correct, and tries to set a default if it isn't.
# Checks to see if the key in the metadata dict exists/is correct.
# For keys that are set to None, it will be treated as if it doesn't exist
def value_isnt_valid_string(metadata, key):
return metadata.get(key) != None and not isinstance(metadata.get(key), str)
@@ -196,7 +196,7 @@ init -999 python:
mod_jsonfail_list = [] # List of languages that has an associated metadata language file that failed to load.
mod_preferred_modname = []
mod_exception = False
mod_in_root_folder = file.count("/", len(mods_dir)) is 0
mod_in_root_folder = file.count("/", len(mods_dir)) == 0
mod_folder_name = file.split("/")[-2]
# mod_name is used only to display debugging information via mod_menu_errorcodes. Contains the mod folder name and whatever translations of
# the mod's name that exist. Kind of a cursed implemnetation but with how early error reporting this is before solidifying the mod name
@@ -288,7 +288,7 @@ init -999 python:
# Since lang keys will only be added to the mod data dict if their respective metadata successfully loaded, no need to check if they can.
for lang_key in mod_data_final.keys():
if lang_key is "None" or lang_key in renpy.known_languages():
if lang_key == "None" or lang_key in renpy.known_languages():
lang_data = mod_data_final[lang_key]
# The JSON object returns an actual python list, but renpy only works with it's own list object and the automation for this fails with JSON.
@@ -298,7 +298,7 @@ init -999 python:
lang_data[x] = renpy.revertable.RevertableList(lang_data[x])
# Automatically give the name of the mod from the folder it's using if there's no defined name, but report an error if one is defined but not a string
if value_isnt_valid_string(lang_data, "Name"):
if not isinstance(lang_data.get("Name"), str):
if lang_data.get("Name") != None:
mod_menu_errorcodes.append([ ModError.Name_Not_String, { "mod_name": mod_name, "lang_code": lang_key }])
@@ -502,7 +502,7 @@ init -999 python:
# Make a copy of the current screenshots list, then put displayable screenshots wherever the values of "Screenshot Displayables" correspond in this list
# mod_screenshots will return an empty list if there were no screenshot files to begin with, so this works fine.
for lang_key in mod_data_final.keys():
if lang_key is "None" or lang_key in renpy.known_languages():
if lang_key == "None" or lang_key in renpy.known_languages():
if mod_data_final[lang_key].get("Screenshots") == None:
mod_screenshots = []
else:
@@ -575,10 +575,10 @@ init -999 python:
# Now convert our errorcodes to errorstrings
init python:
def return_translated_mod_name(mod_dict):
if _preferences.language == None and "None" in mod_dict.keys():
return "'{color=#ffbdbd}" + mod_dict["None"] + "{/color}'"
elif _preferences.language in mod_dict.keys():
if _preferences.language in mod_dict.keys():
return "'{color=#ffbdbd}" + mod_dict[_preferences.language] + "{/color}'"
elif "None" in mod_dict.keys():
return "'{color=#ffbdbd}" + mod_dict["None"] + "{/color}'"
else:
if mod_dict["Folder"] == None:
return __("the root of the mods folder")
@@ -670,7 +670,7 @@ init python:
# All operations that use this function need to be able to parse "None" as a safeguard.
def return_translated_metadata(mod_metadata, key):
if _preferences.language != None and _preferences.language in mod_metadata.keys() and mod_metadata[_preferences.language].get(key) != None:
if _preferences.language in mod_metadata.keys() and mod_metadata[_preferences.language].get(key) != None:
return mod_metadata[_preferences.language][key]
elif "None" in mod_metadata.keys():
return mod_metadata["None"].get(key)
@@ -711,6 +711,7 @@ screen mod_menu():
if reload_game:
python:
reload_game = False
persistent.reloading_mods = True
renpy.reload_script()
use mod_menu_top_buttons(main_menu_button_img, _("Return"), ShowMenu("extras"))
@@ -842,7 +843,7 @@ screen mod_menu():
# Display mod name and/or icon
if return_translated_metadata(x, "Display") == "icon" and mod_icon != None:
add RoundedCorners(mod_icon, radius=(5, 5, 5, 5)) xsize 342 fit "scale-down" at truecenter
add RoundedCorners(mod_icon, radius=(15, 15, 15, 15)) xsize 462 yoffset -1 xoffset 1 fit "scale-down" at truecenter
elif return_translated_metadata(x, "Display") == "both" or return_translated_metadata(x, "Display") == None and mod_icon != None:
hbox:
spacing 20
@@ -883,7 +884,7 @@ screen mod_menu():
else:
fixed:
ymaximum 600 # This is the stupidest fucking hack fix
ymaximum 750 # This is the stupidest fucking hack fix
text _("You have no mods! \nInstall some in:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""):
style_prefix "navigation"
@@ -892,170 +893,174 @@ screen mod_menu():
xalign 0.5 yalign 0.5
outlines [(3, "#342F6C", absolute(0), absolute(0))]
# Clears the mod details pane, consequently bringing up mod errors if there's any
key ["any_K_BACKSPACE"] action SetScreenVariable("mod_metadata", {})
# Displays the mod metadata on the left side
# This has two seperate viewports for error display because renpy is retarded
if mod_metadata != {}:
# Mod play button for android
# I'm too fuckin tired to make this not shit and just put this and the viewport into a vbox, forgive me
$ mod_has_label_android = renpy.variant(["mobile", "steam_deck"]) and mod_metadata.get("Label") != None
if mod_has_label_android:
$ mod_button_alpha = 1.0 if mod_metadata["Enabled"] == True else 0.4 # Fade mod button out if mod is disabled
button:
xpos 13
ypos 928
transform:
alpha mod_button_alpha
frame:
xsize 1190
ysize 129
if persistent.use_epilogue_menu:
background Frame("gui/button/menubuttons/template_idle_epilogue.png", 12, 12)
else:
background Frame("gui/button/menubuttons/template_full_idle.png", 12, 12)
text _("Start") xalign 0.5 yalign 0.5 size 50
action Start(mod_metadata["Label"])
activate_sound "audio/ui/snd_ui_click.wav"
$ needs_android_buttons = renpy.variant(["mobile", "steam_deck"]) and (mod_metadata.get("Label") != None or (mod_metadata != {} and len(mod_menu_errorcodes) != 0))
vbox:
style_prefix "mod_menu"
xmaximum 1190
ymaximum 1050
xpos 15
ypos 15
# Mod details pane
viewport:
xmaximum 1190
if mod_has_label_android:
if needs_android_buttons:
ymaximum 900
else:
ymaximum 1050
xpos 15
ypos 15
scrollbars "vertical"
vscrollbar_unscrollable "hide"
mousewheel True
draggable True
vbox:
style_prefix "mod_menu"
# Thumbnail
python:
if mod_metadata["Enabled"] == True and return_translated_metadata(mod_metadata, "Thumbnail Displayable") != None:
mod_thumbnail = return_translated_metadata(mod_metadata, "Thumbnail Displayable")
elif return_translated_metadata(mod_metadata, "Thumbnail") != None:
mod_thumbnail = return_translated_metadata(mod_metadata, "Thumbnail")
else:
mod_thumbnail = None
if mod_thumbnail:
frame:
background None
xpadding 30
bottom_padding 30
xalign 0.5
add mod_thumbnail fit 'scale-down'
# Mod details
# Omits checking for mod name, since we'll always have some kind of mod name.
# This will also not show anything if there's only a mod name, since we already show one in the mod button.
# Unless the display is set to "icon".
if return_translated_metadata(mod_metadata, "Version") != None or return_translated_metadata(mod_metadata, "Authors") != None or return_translated_metadata(mod_metadata, "Links") != None or mod_metadata.get("Display") == "icon":
if mod_metadata == {} and len(mod_menu_errorcodes) != 0:
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
xfill True
vbox:
if return_translated_metadata(mod_metadata, "Name") != None:
hbox:
text _("Name: ")
text return_translated_metadata(mod_metadata, "Name")
if return_translated_metadata(mod_metadata, "Version") != None:
hbox:
text _("Version: ")
text return_translated_metadata(mod_metadata, "Version")
if return_translated_metadata(mod_metadata, "Authors") != None:
if isinstance(return_translated_metadata(mod_metadata, "Authors"), list):
hbox:
text _("Authors: ")
text ", ".join(return_translated_metadata(mod_metadata, "Authors"))
else:
hbox:
text _("Author: ")
text return_translated_metadata(mod_metadata, "Authors")
if return_translated_metadata(mod_metadata, "Links") != None:
if isinstance(return_translated_metadata(mod_metadata, "Links"), list):
hbox:
text _("Links: ")
text ", ".join(return_translated_metadata(mod_metadata, "Links"))
else:
hbox:
text _("Link: ")
text return_translated_metadata(mod_metadata, "Links")
# Description
if return_translated_metadata(mod_metadata, "Description") != None or return_translated_metadata(mod_metadata, "Mobile Description") != None:
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
xfill True
# If there's no mobile description, display the regular description on Android.
if (not renpy.android or return_translated_metadata(mod_metadata, "Mobile Description") == None) and (return_translated_metadata(mod_metadata, "Description") != None):
text return_translated_metadata(mod_metadata, "Description")
elif return_translated_metadata(mod_metadata, "Mobile Description") != None:
text return_translated_metadata(mod_metadata, "Mobile Description")
# Screenshots
python:
if mod_metadata["Enabled"] == True and return_translated_metadata(mod_metadata, "Screenshot Displayables") != None:
mod_screenshot_list = return_translated_metadata(mod_metadata, "Screenshot Displayables")
elif return_translated_metadata(mod_metadata, "Screenshots") != None:
mod_screenshot_list = return_translated_metadata(mod_metadata, "Screenshots")
else:
mod_screenshot_list = None
if persistent.show_mod_screenshots and mod_screenshot_list:
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
xfill True
hbox:
xoffset 12
box_wrap True
box_wrap_spacing 25
spacing 25
for t in mod_menu_errorcodes:
text convert_errorcode_to_errorstring(t[0], t[1])
elif mod_metadata != {}:
# Thumbnail
python:
if mod_metadata["Enabled"] == True and return_translated_metadata(mod_metadata, "Thumbnail Displayable") != None:
mod_thumbnail = return_translated_metadata(mod_metadata, "Thumbnail Displayable")
elif return_translated_metadata(mod_metadata, "Thumbnail") != None:
mod_thumbnail = return_translated_metadata(mod_metadata, "Thumbnail")
else:
mod_thumbnail = None
for i in mod_screenshot_list:
imagebutton:
at transform:
ysize 200 subpixel True
fit "scale-down"
xalign 0.5 yalign 0.5
if mod_thumbnail:
frame:
background None
xpadding 30
bottom_padding 30
xalign 0.5
add mod_thumbnail fit 'scale-down'
idle i
hover Transform(i, matrixcolor=BrightnessMatrix(0.1))
action Show("mod_screenshot_preview", Dissolve(0.5), img=i)
# Mod details
# Omits checking for mod name, since we'll always have some kind of mod name.
# This will also not show anything if there's only a mod name, since we already show one in the mod button.
# Unless the display is set to "icon".
if return_translated_metadata(mod_metadata, "Version") != None or return_translated_metadata(mod_metadata, "Authors") != None or return_translated_metadata(mod_metadata, "Links") != None or mod_metadata.get("Display") == "icon":
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
xfill True
vbox:
if return_translated_metadata(mod_metadata, "Name") != None:
hbox:
text _("Name: ")
text return_translated_metadata(mod_metadata, "Name")
if return_translated_metadata(mod_metadata, "Version") != None:
hbox:
text _("Version: ")
text return_translated_metadata(mod_metadata, "Version")
if return_translated_metadata(mod_metadata, "Authors") != None:
if isinstance(return_translated_metadata(mod_metadata, "Authors"), list):
hbox:
text _("Authors: ")
text ", ".join(return_translated_metadata(mod_metadata, "Authors"))
else:
hbox:
text _("Author: ")
text return_translated_metadata(mod_metadata, "Authors")
if return_translated_metadata(mod_metadata, "Links") != None:
if isinstance(return_translated_metadata(mod_metadata, "Links"), list):
hbox:
text _("Links: ")
text ", ".join(return_translated_metadata(mod_metadata, "Links"))
else:
hbox:
text _("Link: ")
text return_translated_metadata(mod_metadata, "Links")
# Description
if return_translated_metadata(mod_metadata, "Description") != None or return_translated_metadata(mod_metadata, "Mobile Description") != None:
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
xfill True
# If there's no mobile description, display the regular description on Android.
if (not renpy.android or return_translated_metadata(mod_metadata, "Mobile Description") == None) and (return_translated_metadata(mod_metadata, "Description") != None):
text return_translated_metadata(mod_metadata, "Description")
elif return_translated_metadata(mod_metadata, "Mobile Description") != None:
text return_translated_metadata(mod_metadata, "Mobile Description")
# Screenshots
python:
if mod_metadata["Enabled"] == True and return_translated_metadata(mod_metadata, "Screenshot Displayables") != None:
mod_screenshot_list = return_translated_metadata(mod_metadata, "Screenshot Displayables")
elif return_translated_metadata(mod_metadata, "Screenshots") != None:
mod_screenshot_list = return_translated_metadata(mod_metadata, "Screenshots")
else:
mod_screenshot_list = None
if persistent.show_mod_screenshots and mod_screenshot_list:
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
xfill True
hbox:
xoffset 12
box_wrap True
box_wrap_spacing 25
spacing 25
for i in mod_screenshot_list:
imagebutton:
at transform:
ysize 200 subpixel True
fit "scale-down"
xalign 0.5 yalign 0.5
idle i
hover Transform(i, matrixcolor=BrightnessMatrix(0.1))
action Show("mod_screenshot_preview", Dissolve(0.5), img=i)
# Mod play and hide mod details pane buttons for android
if needs_android_buttons:
hbox:
box_reverse True
if len(mod_menu_errorcodes) != 0:
button:
frame:
xfill True
yfill True
if mod_metadata.get("Label") != None:
xmaximum 0.5
if persistent.use_epilogue_menu:
background Frame("gui/button/menubuttons/template_idle_epilogue.png", 12, 12)
else:
background Frame("gui/button/menubuttons/template_full_idle.png", 12, 12)
text _("Show Errors") xalign 0.5 yalign 0.5 size 50 outlines [ (absolute(1), "#000", absolute(0), absolute(0)) ]
action SetScreenVariable("mod_metadata", {})
activate_sound "audio/ui/snd_ui_click.wav"
if mod_metadata.get("Label") != None:
$ mod_button_alpha = 1.0 if mod_metadata["Enabled"] == True else 0.4 # Fade mod button out if mod is disabled
button:
transform:
alpha mod_button_alpha
frame:
xfill True
yfill True
if persistent.use_epilogue_menu:
background Frame("gui/button/menubuttons/template_idle_epilogue.png", 12, 12)
else:
background Frame("gui/button/menubuttons/template_full_idle.png", 12, 12)
text _("Start") xalign 0.5 yalign 0.5 size 50 outlines [ (absolute(1), "#000", absolute(0), absolute(0)) ]
action Start(mod_metadata["Label"])
activate_sound "audio/ui/snd_ui_click.wav"
elif len(mod_menu_errorcodes) != 0:
viewport:
xmaximum 1190
ymaximum 1050
xpos 15
ypos 15
scrollbars "vertical"
vscrollbar_unscrollable "hide"
mousewheel True
draggable True
vbox:
style_prefix "mod_menu"
frame:
background Frame("gui/mod_frame.png", 30, 30)
padding (30, 30)
xfill True
vbox:
spacing 25
for t in mod_menu_errorcodes:
text convert_errorcode_to_errorstring(t[0], t[1])
if not persistent.seenModWarning:
$ persistent.seenModWarning = True

View File

@@ -1,7 +1,6 @@
# RoundedCorners() rounds the corners of a displayable you give it
python early:
import collections, pygame_sdl2 as pygame
def normalize_color(col):
a = col[3] / 255.0

View File

@@ -1,6 +1,6 @@
label splashscreen:
if not renpy.get_autoreload():
if not renpy.get_autoreload() and not persistent.reloading_mods:
show caveintrosequence
play sound 'audio/OST/startup.ogg'
pause 11.2

View File

@@ -25,9 +25,37 @@ screen OkPrompt(message, go_menu):
xalign 0.5
spacing 100
textbutton _("OK") activate_sound "audio/ui/uiClick.wav" action If(go_menu, true=MainMenu(False,False), false=Hide())
textbutton _("OK") activate_sound "audio/ui/snd_ui_click.wav" action If(go_menu, true=MainMenu(False,False), false=[Hide(),Return()])
screen hiddenOkPrompt(message, go_menu):
modal True
zorder 200
style_prefix "confirm"
add "gui/overlay/confirm.png"
frame:
vbox:
xalign .5
yalign .5
spacing 30
label _(message):
style "confirm_prompt"
xalign 0.5
hbox:
xalign 0.5
spacing 100
textbutton _("OK") activate_sound "audio/ui/snd_ui_click.wav" action If(go_menu, true=MainMenu(False,False), false=Hide())
default persistent.seenWarning = []
default persistent.languaged_up = None
init python:
@@ -107,9 +135,9 @@ screen lang_sel():
idle darkie(languages[i]["image"])
hover glowie(languages[i]["image"])
action If(languages[i]["value"] in persistent.seenWarning or languages[i]["value"] == 'en',
true = [Language(languages[i]["value"]), MainMenu(False,False)],
true = [Language(languages[i]["value"]), SetVariable("persistent.languaged_up", True), Return()],
# Important to change the language before calling notice. Otherwise it will be in english.
false = [Language(languages[i]["value"]), AddToSet(set=persistent.seenWarning, value=languages[i]["value"]), Show(screen="OkPrompt", message=notice, go_menu=True)]
false = [Language(languages[i]["value"]), AddToSet(set=persistent.seenWarning, value=languages[i]["value"]), SetVariable("persistent.languaged_up", True), Show(screen="OkPrompt", message=notice, go_menu=False)]
)
at renpysdumb # Scales the imagebutton down. No, you can't just specify the zoom here. It has to be a defined transform.
else:
@@ -124,7 +152,7 @@ screen lang_button(lang):
activate_sound "audio/ui/uiRollover.wav"
action If(lang["value"] in persistent.seenWarning or lang["value"] == 'en',
true = [Language(lang["value"])],
false = [Language(lang["value"]), AddToSet(set=persistent.seenWarning, value=lang["value"]), Show(screen="OkPrompt", message=notice, go_menu=False)]
false = [Language(lang["value"]), AddToSet(set=persistent.seenWarning, value=lang["value"]), Show(screen="hiddenOkPrompt", message=notice, go_menu=False)]
)
if _preferences.language == lang["value"]:
add glowie(lang["image"]) at icon

View File

@@ -514,3 +514,87 @@ translate es strings:
old "Skipping"
new "Saltando"
# TODO: Translation updated at 2024-10-07 00:57
translate es strings:
# game/screens.rpy:294
old "Auto"
new "Auto"
# game/screens.rpy:349
old "Chapter Select"
new "Seleccionar Capitulo"
old "Chapter Select{#MainMenu}"
new "{size=50}Seleccionar Capitulo{/size}"
# game/screens.rpy:499
old "Extras"
new "Extras"
# game/screens.rpy:810
old "Upload Sync"
new "Subir Sync"
# game/screens.rpy:814
old "Download Sync"
new "Descargar Sync"
# game/screens.rpy:903
old "Developer Tools"
new "Opciones de Desarrollador"
# game/screens.rpy:904
old "Enable Debug Scores"
new "Activar Visor de Puntos"
# game/screens.rpy:905
old "Enable Chapter Select"
new "Activar Selector de Capitulos"
# game/screens.rpy:909
old "Mods"
new "Mods"
# game/screens.rpy:910
old "Show Mod Screenshots"
new "Mostrar Screenshots de Mods"
# game/screens.rpy:911
old "Enable New Mods"
new "Activar Mods Por Defecto"
# game/screens.rpy:924
old "Enable Edgescrolling"
new "Activar Desplazamiento de Bordes"
# game/screens.rpy:929
old "Menu Style"
new "Estilo del Menú"
# game/screens.rpy:930
old "Original"
new "Original"
# game/screens.rpy:931
old "Epilogue"
new "Epílogo"
# game/screens.rpy:1332
old "Mouse Wheel Up"
new "Rueda del Mouse para arriba"
# game/screens.rpy:1359
old "Start, Guide, B/Right Button"
new "Start, Guia, B/Botón Derecho"
# game/screens.rpy:1792
old "Menu"
new "Menú"
old "Backspace"
new "Tecla de borrar"
old "Hides mod details. Shows mod errors if there is any."
new "Esconde los detalles de los mods. Muestra los errores relacionados a los mods"

View File

@@ -0,0 +1,144 @@
# TODO: Translation updated at 2024-10-07 00:57
translate es strings:
# game/src/chapter_select.rpy:1
old "1. First Day of School"
new "1. El Primer Día de la Escuela"
# game/src/chapter_select.rpy:1
old "2. Meeting the Band"
new "2. Conociendo a la Banda"
# game/src/chapter_select.rpy:1
old "3. Band Practice"
new "3. Practica de Banda"
# game/src/chapter_select.rpy:1
old "4. Music Class"
new "4. La Clase de Música"
# game/src/chapter_select.rpy:1
old "5. Gardening Club / Heart to Heart"
new "5. El Club de Jardinería / De corazón a corazón"
# game/src/chapter_select.rpy:1
old "6. Not a Date"
new "6. No es una Cita"
# game/src/chapter_select.rpy:1
old "7. Concert Day"
new "7. Día de Concierto"
# game/src/chapter_select.rpy:1
old "8. Study Session"
new "8. Sesión de Estudio"
# game/src/chapter_select.rpy:1
old "9. VVURM DRAMA"
new "9. VVURM DRAMA"
# game/src/chapter_select.rpy:1
old "10. Confession"
new "10. Confesión"
# game/src/chapter_select.rpy:1
old "11. Naser drama"
new "11. Drama de Naser"
# game/src/chapter_select.rpy:15
old "11.5. Announcing a Plan"
new "11.5. Anunciando un Plan"
# game/src/chapter_select.rpy:15
old "12. Let's all go to the Museum"
new "12. Vayamos al Museo"
# game/src/chapter_select.rpy:15
old "13. Prom is Complicated"
new "13. El Baile de Graduación es Complicado"
# game/src/chapter_select.rpy:15
old "14. Bowling for Volcano High"
new "14. Bolos para el Instituto Volcano"
# game/src/chapter_select.rpy:22
old "11.5. Announcing Nothing Important"
new "11.5. Anunciando Nada Importante"
# game/src/chapter_select.rpy:22
old "12. Let's all go to a Concert"
new "12. Vayamos Todos a un Concierto"
# game/src/chapter_select.rpy:22
old "13. Prom is For Suckers"
new "13. El Baile de Graduación es Para Perdedores"
# game/src/chapter_select.rpy:22
old "14. Anon and the Infinite Sadness"
new "14. Anon y la Tristesa Infinita"
# game/src/chapter_select.rpy:29
old "11.5. Announcing a Date"
new "11.5. Anunciando una Cita"
# game/src/chapter_select.rpy:29
old "12. Let's all go Camping"
new "12. Vayamos Todos a Acampar"
# game/src/chapter_select.rpy:29
old "13. Prom is Surprising"
new "13. El Baile de Graduación es Sorprendente"
# game/src/chapter_select.rpy:29
old "14. Volcano Highschool Musical"
new "14. El Musical del Instituto Volcano"
# game/src/chapter_select.rpy:36
old "11.5. Announcing a Show"
new "11.5. Anunciando un Show"
# game/src/chapter_select.rpy:36
old "12. Let's all go to the Aquarium"
new "12. Vayamos Todos al Acuario"
# game/src/chapter_select.rpy:36
old "13. Prom is Memorable"
new "13. El Baile de Graduación es Memorable"
# game/src/chapter_select.rpy:36
old "14. Fast Times at Volcano High"
new "14. Tiempos Rapidos en el Instituto Volcano"
# game/src/chapter_select.rpy:80
old "What ending do you want to lock to?"
new "¿Qué final quieres elegír?"
# game/src/chapter_select.rpy:80
old "Ending 1"
new "Final 1"
# game/src/chapter_select.rpy:80
old "Ending 2"
new "Final 2"
# game/src/chapter_select.rpy:80
old "Ending 3"
new "Final 3"
# game/src/chapter_select.rpy:80
old "Ending 4"
new "Final 4"
# game/src/chapter_select.rpy:80
old "Exit to main menu"
new "Volver al menú principal"
# game/src/chapter_select.rpy:158
old "Next Page"
new "Siguiente página"
# game/src/chapter_select.rpy:158
old "Go Back"
new "Atrás"

View File

@@ -126,3 +126,19 @@ translate es strings:
old "Special Thanks:"
new "Agradecimientos especiales:"
# TODO: Translation updated at 2024-10-07 00:57
translate es strings:
# game/src/credits.rpy:80
old "Translators (Italian):"
new "Traducción (Italiano):"
# game/src/credits.rpy:80
old "Proofreaders (Italian):"
new "Revisado por (Italiano):"
# game/src/credits.rpy:80
old "Asset help (Italian):"
new "Ayuda extra (Italiano):"

View File

@@ -0,0 +1,80 @@
# TODO: Translation updated at 2024-10-07 00:57
translate es strings:
# game/src/misc_definitions.rpy:34
old "Anon"
new "Anon"
# game/src/misc_definitions.rpy:35
old "Fang"
new "Fang"
# game/src/misc_definitions.rpy:36
old "Lucy"
new "Lucy"
# game/src/misc_definitions.rpy:37
old "Rosa"
new "Rosa"
# game/src/misc_definitions.rpy:38
old "Stella"
new "Stella"
# game/src/misc_definitions.rpy:39
old "Naomi"
new "Naomi"
# game/src/misc_definitions.rpy:40
old "Naser"
new "Naser"
# game/src/misc_definitions.rpy:41
old "Trish"
new "Trish"
# game/src/misc_definitions.rpy:43
old "Spears"
new "Spears"
# game/src/misc_definitions.rpy:44
old "Reed"
new "Reed"
# game/src/misc_definitions.rpy:54
old "(???)"
new "(???)"
# game/src/misc_definitions.rpy:55
old "Mr. Jingo"
new "Sr. Jingo"
# game/src/misc_definitions.rpy:56
old "Maitre D"
new "Maitre D"
# game/src/misc_definitions.rpy:57
old "Moe"
new "Moe"
# game/src/misc_definitions.rpy:58
old "Vince"
new "Vince"
# game/src/misc_definitions.rpy:60
old "Riley"
new "Riley"
# game/src/misc_definitions.rpy:61
old "Tana"
new "Tana"
# game/src/misc_definitions.rpy:62
old "Trevor"
new "Trevor"
# game/src/misc_definitions.rpy:73
old "Chet"
new "Chet"

186
game/tl/es/src/mod_menu.rpy Normal file
View File

@@ -0,0 +1,186 @@
# TODO: Translation updated at 2024-10-07 00:57
translate es strings:
# game/src/mod_menu.rpy:584
old "the root of the mods folder"
new "la carpeta base de mods"
# game/src/mod_menu.rpy:597
old " for '{color=#ffbdbd}"
new " para '{color=#ffbdbd}"
# game/src/mod_menu.rpy:597
old "{/color}' language"
new "{/color}' del lenguaje"
# game/src/mod_menu.rpy:605
old "{color=#ff1e1e}Mod in "
new "{color=#ff1e1e}El mod "
# game/src/mod_menu.rpy:605
old " failed to load: Metadata is formatted incorrectly. Check log.txt or console for more info.{/color}"
new " no se pudo cargar: Los metadatos no están correctamente formateados. Revisa log.txt o la consola para más información.{/color}"
# game/src/mod_menu.rpy:607
old "{color=#ff8b1f}Metadata in "
new "{color=#ff8b1f}Los metadatos en "
# game/src/mod_menu.rpy:607
old " is formatted incorrectly. Check log.txt or console for more info.{/color}"
new " no están correctamente formateados. Revisa log.txt o la consola para más información.{/color}"
# game/src/mod_menu.rpy:609
old "{color=#ff8b1f}Mod's name in "
new "{color=#ff8b1f}El nombre del mod "
# game/src/mod_menu.rpy:609
old " is not a string.{/color}"
new " no es un texto.{/color}"
# game/src/mod_menu.rpy:611
old "{color=#ff8b1f}Mod's label in "
new "{color=#ff8b1f}La label del mod en "
# game/src/mod_menu.rpy:613
old "{color=#ff8b1f}Display mode in "
new "{color=#ff8b1f}El modo de display del mod "
# game/src/mod_menu.rpy:615
old " is not valid. Valid options are 'both', 'icon' and 'name', not "
new " no es válido. Las opciones validas son 'both', 'icon' y 'name', no "
# game/src/mod_menu.rpy:615
old ".{/color}"
new ".{/color}"
# game/src/mod_menu.rpy:617
old "{color=#ff8b1f}Mod's version in "
new "{color=#ff8b1f}La versión del mod "
# game/src/mod_menu.rpy:619
old "{color=#ff8b1f}Mod's authors in "
new "{color=#ff8b1f}Los autores del mod "
# game/src/mod_menu.rpy:619
old " is not a string or list.{/color}"
new " no es un texto o lista.{/color}"
# game/src/mod_menu.rpy:621
old "{color=#ff8b1f}Author "
new "{color=#ff8b1f}El autor "
# game/src/mod_menu.rpy:621
old " in "
new " de "
# game/src/mod_menu.rpy:623
old "{color=#ff8b1f}Mod's links in "
new "{color=#ff8b1f}Los links del mod "
# game/src/mod_menu.rpy:625
old "{color=#ff8b1f}Link "
new "{color=#ff8b1f}El link "
# game/src/mod_menu.rpy:627
old "{color=#ff8b1f}Mod's description in "
new "{color=#ff8b1f}La descripción del mod "
# game/src/mod_menu.rpy:629
old "{color=#ff8b1f}Mod's mobile description in "
new "{color=#ff8b1f}La descripción para celular del mod "
# game/src/mod_menu.rpy:631
old "{color=#ff8b1f}Mod's screenshot displayables in "
new "{color=#ff8b1f}Las screenshots displayables del mod "
# game/src/mod_menu.rpy:631
old " is not a list.{/color}"
new " no es una lista.{/color}"
# game/src/mod_menu.rpy:633
old "{color=#ff8b1f}Screenshot Displayable "
new "{color=#ff8b1f}La screenshot displayable "
# game/src/mod_menu.rpy:635
old "{color=#ff8b1f}Mod's icon displayable in "
new "{color=#ff8b1f}El icono displayable del mod "
# game/src/mod_menu.rpy:637
old "{color=#ff8b1f}Mod's thumbnail displayable in "
new "{color=#ff8b1f}La miniatura displayable del mod "
# game/src/mod_menu.rpy:639
old " failed to load: Does not have a mod ID.{/color}"
new " no se pudo cargar: No tiene ID.{/color}"
# game/src/mod_menu.rpy:641
old " failed to load: ID is not a string.{/color}"
new " no se pudo cargar: Su ID no es un texto.{/color}"
# game/src/mod_menu.rpy:643
old " failed to load: Another mod "
new " no se pudo cargar: Otro mod "
# game/src/mod_menu.rpy:643
old " has the same ID.{/color}"
new " tiene el mismo ID.{/color}"
# game/src/mod_menu.rpy:645
old " is not installed correctly.\nMake sure it's structure is "
new " no está instalado correctamente.\nAsegurate de que su estructura sea "
# game/src/mod_menu.rpy:645
old " instead of "
new " en vez de "
# game/src/mod_menu.rpy:647
old "{color=#ff8b1f}"
new "{color=#ff8b1f}"
# game/src/mod_menu.rpy:647
old " image for mod in "
new " imagen del mod "
# game/src/mod_menu.rpy:647
old " has an incompatible file extension. {a=https://www.renpy.org/doc/html/displayables.html#images}Only use images that Ren'Py supports!{/a}{/color}"
new " tiene un formato incompatible. {a=https://www.renpy.org/doc/html/displayables.html#images}¡Solo usa imagenes que Renpy soporte!{/a}{/color}"
# game/src/mod_menu.rpy:708
old "Reload Mods"
new "Recargar Mods"
# game/src/mod_menu.rpy:888
old "You have no mods! \nInstall some in:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
new "¡No tienes mods! \nInstala algunos en:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
# game/src/mod_menu.rpy:969
old "Name: "
new "Nombre: "
# game/src/mod_menu.rpy:973
old "Version: "
new "Versión: "
# game/src/mod_menu.rpy:978
old "Authors: "
new "Autores: "
# game/src/mod_menu.rpy:982
old "Author: "
new "Autor: "
# game/src/mod_menu.rpy:987
old "Links: "
new "Links: "
# game/src/mod_menu.rpy:991
old "Link: "
new "Link: "
# game/src/mod_menu.rpy:1062
old "Installing mods is dangerous since you are running unknown code in your computer. Only install mods from sources that you trust.\n\nIf you have problems with installed mods, check the README.md in the root of the mods folder."
new "Instalar mods es peligroso, ya que estás ejecutando código desconocido en tu ordenador. Sólo instala mods de fuentes en las que confíes.\n\nSi tienes problemas con los mods instalados, consulta el archivo README.md (Inglés) en la raíz de la carpeta de mods."
old "Show Errors"
new "Mostrar Errores"

View File

@@ -0,0 +1,8 @@
# TODO: Translation updated at 2024-10-07 00:57
translate es strings:
# game/src/translation.rpy:28
old "OK"
new "OK"

View File

@@ -52,7 +52,7 @@ translate it strings:
# renpy/common/00accessibility.rpy:120
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "Menù di Accessibilità. Usa le frecce sù e giù per navigare, e premi invio per attivare pulsanti o barre."
new "Menu di Accessibilità. Usa le frecce su e giù per navigare, e premi invio per attivare pulsanti o barre."
# renpy/common/00accessibility.rpy:139
old "Font Override"
@@ -72,11 +72,11 @@ translate it strings:
# renpy/common/00accessibility.rpy:157
old "Text Size Scaling"
new "Scalatura Dimensioni Testo"
new "Dimensioni Testo"
# renpy/common/00accessibility.rpy:169
old "Line Spacing Scaling"
new "Scalatura Spaziatura Righe"
new "Spaziatura Righe"
# renpy/common/00accessibility.rpy:181
old "High Contrast Text"
@@ -112,7 +112,7 @@ translate it strings:
# renpy/common/00accessibility.rpy:235
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "Le opzioni in questo menù hanno lo svopo di migliorare l'accessbilità. Potrebbero non funzionare con tutti i giochi, ed alcune combinazioni di opzioni potrebbero rendere il gioco ingiocabile. Questo non è un problema con il gioco o l'engine. Per avere risultati migliori quando si cambiano font, prova a tenere la grandezza del testo uguale a quella originale."
new "Le opzioni in questo menu hanno lo scopo di migliorare l'accessibilità. Potrebbero non funzionare con tutti i giochi, ed alcune combinazioni di opzioni potrebbero rendere il gioco ingiocabile. Questo non è un problema con il gioco o l'engine. Per avere risultati migliori quando si cambiano font, prova a tenere la grandezza del testo uguale a quella originale."
# renpy/common/00action_file.rpy:26
old "{#weekday}Monday"
@@ -464,7 +464,7 @@ translate it strings:
# renpy/common/00gui.rpy:453
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Sei sicuro di voler ritornare al menù principale?\nPerderai progresso non salvato."
new "Sei sicuro di voler ritornare al menu principale?\nPerderai progresso non salvato."
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
@@ -488,7 +488,7 @@ translate it strings:
# renpy/common/00gui.rpy:459
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
new "Questo salvataggio è stato creato su un altro dispositivo. File di salvataggio creati con malizia possono danneggiare il tuo computer. Ti fidi del creatore di questo salataggio e di chiunque possa aver modificato il file?"
new "Questo salvataggio è stato creato su un altro dispositivo. File di salvataggio creati con malizia possono danneggiare il tuo computer. Ti fidi del creatore di questo salvataggio e di chiunque possa aver modificato il file?"
# renpy/common/00gui.rpy:460
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
@@ -672,11 +672,11 @@ translate it strings:
# renpy/common/00preferences.rpy:530
old "renderer menu"
new "menù renderer"
new "menu renderer"
# renpy/common/00preferences.rpy:533
old "accessibility menu"
new "menù accessbilità"
new "menu accessibilità"
# renpy/common/00preferences.rpy:536
old "high contrast text"
@@ -696,7 +696,7 @@ translate it strings:
# renpy/common/00preferences.rpy:578
old "voice after game menu"
new "voce dopo menù di gioco"
new "voce dopo menu di gioco"
# renpy/common/00preferences.rpy:587
old "restore window position"
@@ -808,7 +808,7 @@ translate it strings:
# renpy/common/00sync.rpy:538
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
new "Questo caricherà i tuoi salvataggi al {a=https://sync.renpy.org}Server di Sincronizzazioen di Ren'Py{/a}.\nVuoi continuare?"
new "Questo caricherà i tuoi salvataggi al {a=https://sync.renpy.org}Server di Sincronizzazione di Ren'Py{/a}.\nVuoi continuare?"
# renpy/common/00sync.rpy:569
old "Enter Sync ID"
@@ -816,7 +816,7 @@ translate it strings:
# renpy/common/00sync.rpy:580
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
new "Questo contatterà il {a=https://sync.renpy.org}Server di Sincronizzazioen di Ren'Py{/a}."
new "Questo contatterà il {a=https://sync.renpy.org}Server di Sincronizzazione di Ren'Py{/a}."
# renpy/common/00sync.rpy:609
old "Sync Success"
@@ -868,7 +868,7 @@ translate it strings:
# renpy/common/00updater.rpy:967
old "This account does not have permission to write the update log."
new "Questo account non ha il permesso di scrivere il log aggioramento."
new "Questo account non ha il permesso di scrivere il log aggiornamento."
# renpy/common/00updater.rpy:1047
old "Could not verify update signature."
@@ -1016,7 +1016,7 @@ translate it strings:
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "Abiltia (nessuna Lista di Blocco)"
new "Abilita (nessuna Lista di Blocco)"
# renpy/common/00gltest.rpy:159
old "Powersave"
@@ -1052,7 +1052,7 @@ translate it strings:
# renpy/common/00gltest.rpy:242
old "Performance Warning"
new "Allarme di Prestationi"
new "Allarme di Prestazioni"
# renpy/common/00gltest.rpy:247
old "This computer is using software rendering."
@@ -1186,3 +1186,23 @@ translate it strings:
old "Parsing the script failed."
new "Analisi dello script fallita."
# TODO: Translation updated at 2024-10-07 18:25
translate it strings:
# renpy/common/00accessibility.rpy:198
old "Self-voicing support is limited when using a touch screen."
new "Supporto all'auto-doppiaggio è limitato quando si usa un touch screen."
# renpy/common/00translation.rpy:63
old "Translation identifier: [identifier]"
new "Identificatore traduzione: [identifier]"
# renpy/common/00translation.rpy:84
old " translates [tl.filename]:[tl.linenumber]"
new " traduce [tl.filename]:[tl.linenumber]"
# renpy/common/00translation.rpy:101
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff}Copiato negli appunti.{/color}"

View File

@@ -65,7 +65,7 @@ translate it strings:
# game/screens.rpy:369
old "Main Menu"
new "Menù Principale"
new "Menu Principale"
# game/screens.rpy:735
old "Version [config.version!t]\n"
@@ -273,7 +273,7 @@ translate it strings:
# game/screens.rpy:1313
old "Gamepad"
new "Controller"
new "Gamepad"
# game/screens.rpy:1333
old "Enter"
@@ -305,7 +305,7 @@ translate it strings:
# game/screens.rpy:1346
old "Accesses the game menu. Also escapes the Gallery."
new "Accedi al menù di gioco. Esci dalla Galleria."
new "Accedi al menu di gioco. Esci dalla Galleria."
# game/screens.rpy:1349
old "Ctrl"
@@ -325,7 +325,7 @@ translate it strings:
# game/screens.rpy:1357
old "Page Up"
new "Pagina Sù"
new "Pagina Su"
# game/screens.rpy:1358
old "Rolls back to earlier dialogue."
@@ -365,7 +365,7 @@ translate it strings:
# game/screens.rpy:1392
old "Mouse Wheel Up\nClick Rollback Side"
new "Rotella del Mouse Sù\nClicca Lato di Ripristino"
new "Rotella del Mouse Su\nClicca Lato di Ripristino"
# game/screens.rpy:1396
old "Mouse Wheel Down"
@@ -393,11 +393,11 @@ translate it strings:
# game/screens.rpy:1421
old "Accesses the game menu."
new "Accedi al menù di gioco"
new "Accedi al menu di gioco"
# game/screens.rpy:1424
old "Y/Top Button"
new "Y/Pulsante in Sù"
new "Y/Pulsante in Su"
# game/screens.rpy:1427
old "Calibrate"
@@ -431,7 +431,7 @@ translate it strings:
# game/screens.rpy:293
old "Auto"
new "Automatico"
new "Auto"
# game/screens.rpy:363
old "Chapter Select"
@@ -457,3 +457,49 @@ translate it strings:
old "Menu"
new "Menu"
# TODO: Translation updated at 2024-10-07 18:25
translate it strings:
# game/screens.rpy:810
old "Upload Sync"
new "Carica Sincronizzazione"
# game/screens.rpy:814
old "Download Sync"
new "Scarica Sincronizzazione"
# game/screens.rpy:910
old "Show Mod Screenshots"
new "Mostra Screenshot Mod"
# game/screens.rpy:911
old "Enable New Mods"
new "Abilita Nuove Mod"
# game/screens.rpy:924
old "Enable Edgescrolling"
new "Abilita Scorrimento sui Bordi"
# game/screens.rpy:929
old "Menu Style"
new "Stile Menu"
# game/screens.rpy:930
old "Original"
new "Originale"
# game/screens.rpy:931
old "Epilogue"
new "Epilogo"
# game/screens.rpy:1332
old "Mouse Wheel Up"
new "Rotella del Mouse Su"
# game/screens.rpy:1359
old "Start, Guide, B/Right Button"
new "Start, Guida, B/Bottone a Destra"
old "Hides mod details. Shows mod errors if there is any."
new "Nascondi dettagli mod. Mostra errori della mod se ce ne sono."

View File

@@ -68,7 +68,7 @@ translate it strings:
# game/script.rpy:156
old "Mr. Tsuki"
new "Mr. Tsuki"
new "Sig. Tsuki"
# game/script.rpy:157
old "(???)"
@@ -76,7 +76,7 @@ translate it strings:
# game/script.rpy:158
old "Mr. Jingo"
new "Mr. Jingo"
new "Sig. Jingo"
# game/script.rpy:159
old "Maitre D"

View File

@@ -1330,7 +1330,7 @@ translate it chapter_1_ded7df67:
translate it chapter_1_b32e2dd2:
# "Mr. Tsuki continued on, drawing what little attention there was to himself."
"Mr. Tsuki continuò, richiamando la poca attenzione della classe su di sè."
" Il Sig. Tsuki continuò, richiamando la poca attenzione della classe su di sè."
# game/script/1.first-two-days-anon-meets-fang.rpy:972
translate it chapter_1_2128295c:

View File

@@ -550,7 +550,7 @@ translate it chapter_11_fc7c6fdd:
translate it chapter_11_9b304b29:
# "I have a backpack full of missed assignments, including Mr. Tsukis essay on the history of typefaces."
"Ho uno zaino pieno di compiti saltati, incluso il tema per Mr. Tsuki sulla storia dei caratteri tipografici."
"Ho uno zaino pieno di compiti saltati, incluso il tema per il Sig. Tsuki sulla storia dei caratteri tipografici."
# game/script/11.school-assignment-and-route-lock.rpy:467
translate it chapter_11_32280a97:
@@ -2212,7 +2212,7 @@ translate it lSortingThings_d7a7a4fd:
translate it lSortingThings_644bef27:
# "In any other class Id have been caught up, but Mr. Tsuki is an absolute slave driver."
"Ho recuperato ogni altra materia, ma Mr. Tsuki è un vero schiavista."
"Ho recuperato ogni altra materia, ma il Sig. Tsuki è un vero schiavista."
# game/script/11.school-assignment-and-route-lock.rpy:1508
translate it lSortingThings_e2812839:

View File

@@ -730,7 +730,7 @@ translate it chapter_13A_dd28b9c9:
translate it chapter_13A_1188babf:
# "We hauled ass to Mr.Jingos room, where the band had stored their gear."
"Ci siamo spinti fino alla stanza di Mr. Jingo, dove la band aveva riposto la propria attrezzatura."
"Abbiamo mosso il culo fino alla stanza del Sig. Jingo, dove la band aveva riposto la propria attrezzatura."
# game/script/13A.fang-loses-it-after-losing-prom-queen.rpy:534
translate it chapter_13A_979b978a:

View File

@@ -640,7 +640,7 @@ translate it chapter_3_88099cb9:
translate it chapter_3_7b692572:
# "He gives me a thumbs up and exits as well."
"Mi da un pollice in sù ed esce anche lui."
"Mi da un pollice in su ed esce anche lui."
# game/script/3.showing-up-at-band-practice-and-giving-feedback.rpy:463
translate it chapter_3_a54cfc04:
@@ -1258,7 +1258,7 @@ translate it chapter_3_f31ea95e:
translate it chapter_3_8232b8b6:
# jingo "Good timing, Mr. Mous. Just in time for free period."
jingo "Ottimo tempismo, Mr. Imo. Sei in tempo per l'ora libera."
jingo "Ottimo tempismo, Sig. Imo. Sei in tempo per l'ora libera."
# game/script/3.showing-up-at-band-practice-and-giving-feedback.rpy:896
translate it chapter_3_5c14abb0:

View File

@@ -1132,7 +1132,7 @@ translate it lHeads_a42630c4:
translate it lHeads_6debb489:
# Re "Anyways{cps=*.1}...{/cps} Mr. Jingo doesnt care about if you use, like, partners and stuff{cps=*.1}...{/cps} He just wants the work done{cps=*.1}...{/cps}"
Re "Comunque{cps=*.1}...{/cps} A Mr. Jingo non importa se, tipo, si lavora con gli altri e simili{cps=*.1}...{/cps} Basta che si fanno i compiti{cps=*.1}...{/cps}"
Re "Comunque{cps=*.1}...{/cps} Al Sig. Jingo non importa se, tipo, si lavora con gli altri e simili{cps=*.1}...{/cps} Basta che si fanno i compiti{cps=*.1}...{/cps}"
# game/script/4.anon-needs-help-during-music-period.rpy:770
translate it lHeads_d762c0e4:

View File

@@ -154,7 +154,7 @@ translate it chapter_8_02cfda7b:
translate it chapter_8_e3151852:
# "Mr. Carldewskii takes the stage with an electronic mic."
"Mr. Carldewskii sale sul palco e prende un microfono elettrico."
"Il Sig. Carldewskii sale sul palco e prende un microfono elettrico."
# game/script/8.anon-and-fang-study-together.rpy:149
translate it chapter_8_6bc5338d:
@@ -190,7 +190,7 @@ translate it chapter_8_b6a62594:
translate it chapter_8_bc6eb086:
# "Mr. Carldewskii holds the microphone out to him but gets ignored."
"Mr. Carldewskii gli pone il microfono ma viene ignorato."
"Il Sig. Carldewskii gli pone il microfono ma viene ignorato."
# game/script/8.anon-and-fang-study-together.rpy:177
translate it chapter_8_3b3630e5:
@@ -1990,7 +1990,7 @@ translate it musicalchoices_ffea9ad8:
translate it musicalchoices_b00990cc:
# "Well, maybe music I guess. Raptor Jesus, Mr. Jingo is a shit teacher compared to her."
"Beh, forse musica credo. Gesù Raptor, Mr. Jingo è un insegnante di merda in confronto a lei."
"Beh, forse musica credo. Gesù Raptor, il Sig. Jingo è un insegnante di merda in confronto a lei."
# game/script/8.anon-and-fang-study-together.rpy:1415
translate it musicalchoices_1127e8e8:
@@ -3280,7 +3280,7 @@ translate it lGetStartedOnStudy_5e206d22:
translate it lGetStartedOnStudy_3c210331:
# "In the end, Mr Jingo screwed us over by making music midterm a live demonstration."
"Alla fine, Mr. Jingo ci ha rovinati rendendo gli esami di musica una dimostrazione dal vivo."
"Alla fine, il Sig. Jingo ci ha rovinati rendendo gli esami di musica una dimostrazione dal vivo."
# game/script/8.anon-and-fang-study-together.rpy:2150
translate it lGetStartedOnStudy_e5ac4cac:
@@ -3292,7 +3292,7 @@ translate it lGetStartedOnStudy_e5ac4cac:
translate it lGetStartedOnStudy_799af2a8:
# "My GPA was secured at least for whatever the fuck I decide on."
"Il mio GPA è garantito per permettermi di far quasiasi cazzo di cosa decida."
"Il mio GPA è garantito per permettermi di far qualsiasi cazzo di cosa decida."
# game/script/8.anon-and-fang-study-together.rpy:2156
translate it lGetStartedOnStudy_f1638dc1_2:

View File

@@ -6,3 +6,189 @@ translate it strings:
old "You have no mods! \nInstall some in:\n\"[moddir]\""
new "Non hai mod! \nInstallane un po' in:\n\"[moddir]\""
# TODO: Translation updated at 2024-10-07 18:25
translate it strings:
# game/src/mod_menu.rpy:584
old "the root of the mods folder"
new "radice della cartella mods"
# game/src/mod_menu.rpy:597
old " for '{color=#ffbdbd}"
new " per lingua '{color=#ffbdbd}"
# game/src/mod_menu.rpy:597
old "{/color}' language"
new "{/color}'"
# game/src/mod_menu.rpy:605
old "{color=#ff1e1e}Mod in "
new "{color=#ff1e1e}Mod in "
# game/src/mod_menu.rpy:605
old " failed to load: Metadata is formatted incorrectly. Check log.txt or console for more info.{/color}"
new " non è stata caricata: Metadata è formattato in modo sbagliato. Controlla log.txt o la console per ulteriori info.{/color}"
# game/src/mod_menu.rpy:607
old "{color=#ff8b1f}Metadata in "
new "{color=#ff8b1f}Metadata in "
# game/src/mod_menu.rpy:607
old " is formatted incorrectly. Check log.txt or console for more info.{/color}"
new " è formattato in modo sbagliato. Controlla log.txt o la console per ulteriori info.{/color}"
# game/src/mod_menu.rpy:609
old "{color=#ff8b1f}Mod's name in "
new "{color=#ff8b1f}Il nome della mod in "
# game/src/mod_menu.rpy:609
old " is not a string.{/color}"
new " non è una stringa.{/color}"
# game/src/mod_menu.rpy:611
old "{color=#ff8b1f}Mod's label in "
new "{color=#ff8b1f}La label della Mod in "
# game/src/mod_menu.rpy:613
old "{color=#ff8b1f}Display mode in "
new "{color=#ff8b1f}La modalità display in "
# game/src/mod_menu.rpy:615
old " is not valid. Valid options are 'both', 'icon' and 'name', not "
new " non è valida. Le opzioni valide sono 'entrambi', 'icona' e 'nome', non "
# game/src/mod_menu.rpy:615
old ".{/color}"
new ".{/color}"
# game/src/mod_menu.rpy:617
old "{color=#ff8b1f}Mod's version in "
new "{color=#ff8b1f}La versione della Mod in "
# game/src/mod_menu.rpy:619
old "{color=#ff8b1f}Mod's authors in "
new "{color=#ff8b1f}Gli autori della Mod in "
# game/src/mod_menu.rpy:619
old " is not a string or list.{/color}"
new " non è una stringa o una lista.{/color}"
# game/src/mod_menu.rpy:621
old "{color=#ff8b1f}Author "
new "{color=#ff8b1f}Autore "
# game/src/mod_menu.rpy:621
old " in "
new " in "
# game/src/mod_menu.rpy:623
old "{color=#ff8b1f}Mod's links in "
new "{color=#ff8b1f}I link della Mod in"
# game/src/mod_menu.rpy:625
old "{color=#ff8b1f}Link "
new "{color=#ff8b1f}Link "
# game/src/mod_menu.rpy:627
old "{color=#ff8b1f}Mod's description in "
new "{color=#ff8b1f}La descrizione della Mod in "
# game/src/mod_menu.rpy:629
old "{color=#ff8b1f}Mod's mobile description in "
new "{color=#ff8b1f}Descrizione mobile della Mod in "
# game/src/mod_menu.rpy:631
old "{color=#ff8b1f}Mod's screenshot displayables in "
new "{color=#ff8b1f}Displayable screenshot della Mod in "
# game/src/mod_menu.rpy:631
old " is not a list.{/color}"
new " non è una lista.{/color}"
# game/src/mod_menu.rpy:633
old "{color=#ff8b1f}Screenshot Displayable "
new "{color=#ff8b1f}Displayable screenshot "
# game/src/mod_menu.rpy:635
old "{color=#ff8b1f}Mod's icon displayable in "
new "{color=#ff8b1f}Displayable icona della Mod in "
# game/src/mod_menu.rpy:637
old "{color=#ff8b1f}Mod's thumbnail displayable in "
new "{color=#ff8b1f}Displayable miniatura della Mod in "
# game/src/mod_menu.rpy:639
old " failed to load: Does not have a mod ID.{/color}"
new " non è stato caricata: Non ha un ID mod.{/color}"
# game/src/mod_menu.rpy:641
old " failed to load: ID is not a string.{/color}"
new " non è stato caricata: ID non è una stringa.{/color}"
# game/src/mod_menu.rpy:643
old " failed to load: Another mod "
new " non è stata caricata: Un'altra mod "
# game/src/mod_menu.rpy:643
old " has the same ID.{/color}"
new " ha lo stesso ID.{/color}"
# game/src/mod_menu.rpy:645
old " is not installed correctly.\nMake sure it's structure is "
new " non è installata correttamente.\nVerifica che la struttura è "
# game/src/mod_menu.rpy:645
old " instead of "
new " invece di "
# game/src/mod_menu.rpy:647
old "{color=#ff8b1f}"
new "{color=#ff8b1f}"
# game/src/mod_menu.rpy:647
old " image for mod in "
new " immagine per la mod in "
# game/src/mod_menu.rpy:647
old " has an incompatible file extension. {a=https://www.renpy.org/doc/html/displayables.html#images}Only use images that Ren'Py supports!{/a}{/color}"
new " ha un'estensione del file incompatibile. {a=https://www.renpy.org/doc/html/displayables.html#images}Usa solo immagini che Ren'Py supporta!{/a}{/color}"
# game/src/mod_menu.rpy:708
old "Reload Mods"
new "Ricarica Mod"
# game/src/mod_menu.rpy:888
old "You have no mods! \nInstall some in:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
new "Non hai mod! \nInstallane un po' in:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
# game/src/mod_menu.rpy:969
old "Name: "
new "Nome: "
# game/src/mod_menu.rpy:973
old "Version: "
new "Versione: "
# game/src/mod_menu.rpy:978
old "Authors: "
new "Autori: "
# game/src/mod_menu.rpy:982
old "Author: "
new "Autore: "
# game/src/mod_menu.rpy:987
old "Links: "
new "Link: "
# game/src/mod_menu.rpy:991
old "Link: "
new "Link: "
# game/src/mod_menu.rpy:1062
old "Installing mods is dangerous since you are running unknown code in your computer. Only install mods from sources that you trust.\n\nIf you have problems with installed mods, check the README.md in the root of the mods folder."
new "Installare mod è pericoloso perché stai eseguendo codice sconosciuto sul tuo computer. Installa mod solamente da fonti di cui ti fidi.\n\nSe hai problemi con le mod installate, controlla il file README.md nella radice della cartella mods."
old "Show Errors"
new "Mostra Errori"

View File

@@ -1219,3 +1219,247 @@ translate pl strings:
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Naciśnij albo przesuń '[control!s]' [kind]."
# TODO: Translation updated at 2024-10-10 22:47
translate pl strings:
# renpy/common/00accessibility.rpy:121
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "Menu ułatwień dostępu. Użyj strzałek góra/dół by nawigować, wciśnij enter by aktywować przyciski/paski."
# renpy/common/00accessibility.rpy:198
old "Self-voicing support is limited when using a touch screen."
new "Funkcja lektora jest ograniczona w czasie korzystania z dotykowego ekranu."
# renpy/common/00action_other.rpy:744
old "Open [text] directory."
new "Otwórz folder [text]."
# renpy/common/00director.rpy:1752
old "Click to toggle attribute, right click to toggle negative attribute."
new "Lewy klik by przełączyć atrybut, prawy klik by przełączyć atrybut negatywny."
# renpy/common/00director.rpy:1775
old "Click to set transform, right click to add to transform list."
new "Lewy klik by ustawić transformację, prawy klik by dodać do listy transformacji."
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "Dostosuj 'director.transforms' by dodać więcej transformacji."
# renpy/common/00director.rpy:1799
old "Click to set, right click to add to behind list."
new "Lewy klik by ustawić, prawy klik by dodać do listy obiektów z tyłu."
# renpy/common/00director.rpy:1821
old "Click to set."
new "Kliknij by ustawić."
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "Dostosuj 'director.transitions' by dodać więcej przejść."
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "Dostosuj 'director.audio_channels' by dodać więcej kanałów."
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
new "Jesteś pewien, że chcesz kontynuować tam, gdzie przerwałeś?"
# renpy/common/00gui.rpy:459
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
new "Ten zapis był stworzony na innym urządzeniu. Złośliwie stworzone pliki zapisu mogą zagrozić twojemu komputerowi. Czy ufasz twórcy tego zapisu i każdemu, kto mógł zmienić ten plik?"
# renpy/common/00gui.rpy:460
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
new "Czy ufasz urządzeniu, na którym był stworzony ten zapis? Wybierz tak tylko jeżeli jesteś jedynym użytkownikiem tego urządzenia."
# renpy/common/00preferences.rpy:440
old "self voicing enable"
new "włączenie lektora"
# renpy/common/00preferences.rpy:442
old "self voicing disable"
new "wyłączenie lektora"
# renpy/common/00preferences.rpy:457
old "clipboard voicing enable"
new "włączenie tekstu do schowka"
# renpy/common/00preferences.rpy:459
old "clipboard voicing disable"
new "wyłączenie tekstu do schowka"
# renpy/common/00preferences.rpy:466
old "debug voicing enable"
new "włączenie debugowania głosu"
# renpy/common/00preferences.rpy:468
old "debug voicing disable"
new "wyłączenie debugowania głosu"
# renpy/common/00preferences.rpy:546
old "audio when minimized"
new "dźwięk przy zminimalizowaniu"
# renpy/common/00preferences.rpy:555
old "audio when unfocused"
new "dźwięk przy braku focusa"
# renpy/common/00preferences.rpy:564
old "web cache preload"
new "web cache preload"
# renpy/common/00preferences.rpy:579
old "voice after game menu"
new "głos po menu gry"
# renpy/common/00preferences.rpy:588
old "restore window position"
new "przywrócenie pozycji okna"
# renpy/common/00preferences.rpy:597
old "reset"
new "reset"
# renpy/common/00preferences.rpy:610
old "main volume"
new "głośność ogólna"
# renpy/common/00preferences.rpy:614
old "mute main"
new "wyciszenie ogólne"
# renpy/common/00speechbubble.rpy:416
old "Speech Bubble Editor"
new "Edytor Dymków z Tekstem"
# renpy/common/00speechbubble.rpy:421
old "(hide)"
new "(ukryj)"
# renpy/common/00speechbubble.rpy:432
old "(clear retained bubbles)"
new "(wyczyść zachowane dymki)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
new "Sync pobrany."
# renpy/common/00sync.rpy:193
old "Could not connect to the Ren'Py Sync server."
new "Nie można połączyć z serwerem Ren'Py Sync."
# renpy/common/00sync.rpy:195
old "The Ren'Py Sync server timed out."
new "Serwer Ren'Py Sync przekroczył limit czasu na połączenie."
# renpy/common/00sync.rpy:197
old "An unknown error occurred while connecting to the Ren'Py Sync server."
new "Wystąpił nieznany błąd przy próbie połączenia z serwerem Ren'Py Sync."
# renpy/common/00sync.rpy:213
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
new "Serwer Ren'Py Sync nie posiada kopii tego synca. Jego ID może być nieprawidłowy, albo przekroczono limit czasu na odpowiedź."
# renpy/common/00sync.rpy:316
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
new "Wpisz wygenerowany przez ciebie sync ID.\nNigdy nie wpisuj ID, którego sam nie stworzyłeś."
# renpy/common/00sync.rpy:335
old "The sync ID is not in the correct format."
new "Podany sync ID ma nieprawidłowy format."
# renpy/common/00sync.rpy:355
old "The sync could not be decrypted."
new "Sync nie może zostać odszyfrowany."
# renpy/common/00sync.rpy:378
old "The sync belongs to a different game."
new "Sync należy do innej gry."
# renpy/common/00sync.rpy:383
old "The sync contains a file with an invalid name."
new "Sync zawiera plik o nieprawidłowej nazwie."
# renpy/common/00sync.rpy:440
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
new "Ta funkcja wyśle twoje pliki zapisu do {a=https://sync.renpy.org}Serwera Ren'Py Sync{/a}.\nCzy chcesz kontynuować?"
# renpy/common/00sync.rpy:472
old "Enter Sync ID"
new "Wpisz Sync ID"
# renpy/common/00sync.rpy:483
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
new "Ta funkcja połączy się z {a=https://sync.renpy.org}Serwerem Ren'Py Sync{/a}."
# renpy/common/00sync.rpy:513
old "Sync Success"
new "Sync Udany"
# renpy/common/00sync.rpy:516
old "The Sync ID is:"
new "Sync ID to:"
# renpy/common/00sync.rpy:522
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
new "Użyj tego ID do pobrania zapisów na innym urządzeniu.\nTen sync przedawni się w ciągu godziny.\nRen'Py Sync jest wspierany przez {a=https://www.renpy.org/sponsors.html}Sponsorów Ren'Py{/a}."
# renpy/common/00sync.rpy:526
old "Continue"
new "Kontynuuj"
# renpy/common/00sync.rpy:551
old "Sync Error"
new "Sync Nieudany"
# renpy/common/00translation.rpy:63
old "Translation identifier: [identifier]"
new "Identyfikator tłumaczenia: [identifier]"
# renpy/common/00translation.rpy:84
old " translates [tl.filename]:[tl.linenumber]"
new " tłumaczy [tl.filename]:[tl.linenumber]"
# renpy/common/00translation.rpy:101
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff}Skopiowano do schowka.{/color}"
# renpy/common/00updater.rpy:505
old "No update methods found."
new "Brak metod aktualizacji."
# renpy/common/00updater.rpy:552
old "Could not download file list: "
new "Nie udało się pobrać listy plików:"
# renpy/common/00updater.rpy:555
old "File list digest does not match."
new "Cyfrowy podpis listy plików nie jest zgodny."
# renpy/common/00updater.rpy:2080
old "Preparing to download the game data."
new "Przygotowanie do pobrania danych gry."
# renpy/common/00updater.rpy:2082
old "Downloading the game data."
new "Pobieranie danych gry."
# renpy/common/00updater.rpy:2084
old "The game data has been downloaded."
new "Dane gry zostały pobrane."
# renpy/common/00updater.rpy:2086
old "An error occured when trying to download game data:"
new "Wystąpił błąd podczas próby pobrania danych gry:"
# renpy/common/00updater.rpy:2091
old "This game cannot be run until the game data has been downloaded."
new "Gra nie może zostać uruchomiona dopóki dane gry nie zostaną pobrane."
# renpy/common/00updater.rpy:2098
old "Retry"
new "Ponów"

View File

@@ -133,7 +133,7 @@ translate pl strings:
new "Start"
old "Bonus Chapters"
new "Bonusowe rozdziały"
new "{size=55}Bonusowe rozdziały{/size}"
old "Language"
new "Język"
@@ -507,4 +507,95 @@ translate pl strings:
# game/screens.rpy:1531
old "Skipping"
new "Pomijanie"
new "Pomijanie"# TODO: Translation updated at 2024-10-10 22:47
translate pl strings:
# game/screens.rpy:294
old "Auto"
new "Auto"
# game/screens.rpy:349
old "Chapter Select"
new "Wybór Rozdziału."
# game/screens.rpy:477
old "You have unlocked the final bonus chapter!"
new "Odblokowałeś ostatni bonusowy rozdział!"
# game/screens.rpy:479
old "You have finished all endings! Complete all bonus chapters to receive the final chapter!"
new "Wszystkie zakończenia zostały ukończone! Ukończ wszystkie bonusowe rozdziały, by uzyskać ostatni rozdział!"
# game/screens.rpy:499
old "Extras"
new "Dodatki"
# game/screens.rpy:810
old "Upload Sync"
new "Wyślij Sync"
# game/screens.rpy:814
old "Download Sync"
new "Pobierz Sync"
# game/screens.rpy:903
old "Developer Tools"
new "Narzędzia Deweloperskie"
# game/screens.rpy:904
old "Enable Debug Scores"
new "Włącz Debugową Punktację"
# game/screens.rpy:905
old "Enable Chapter Select"
new "Włącz Menu Wyboru Rozdziału"
# game/screens.rpy:916
old "Mods"
new "Mody"
# game/screens.rpy:917
old "Show Mod Screenshots"
new "Pokaż Zrzuty z Modów"
# game/screens.rpy:918
old "Enable New Mods"
new "Włącz Nowe Mody"
# game/screens.rpy:924
old "Enable Edgescrolling"
new "Włącz przewijanie krawędzi"
# game/screens.rpy:929
old "Menu Style"
new "Styl Menu"
# game/screens.rpy:930
old "Original"
new "Oryginalny"
# game/screens.rpy:931
old "Epilogue"
new "Epilog"
# game/screens.rpy:1305
old "Backspace"
new "Backspace"
# game/screens.rpy:1306
old "Hides mod details. Shows mod errors if there is any."
new "Ukrywa szczegóły moda. Wyświetla błędy moda, jeżeli jakieś występują."
# game/screens.rpy:1336
old "Mouse Wheel Up"
new "Kółko myszy w górę"
# game/screens.rpy:1363
old "Start, Guide, B/Right Button"
new "Start, Guide, B/Prawy Klawisz"
# game/screens.rpy:1796
old "Menu"
new "Menu"

View File

@@ -6953,3 +6953,11 @@ translate pl strings:
old "Interrupt"
new "Przerwij"
# TODO: Translation updated at 2024-10-10 22:47
# game/script/5.fang-and-anon-cut-class-to-talk-on-the-roof.rpy:2963
translate pl lpostAnonLaughReveal_94004a03_1:
# "Oh."
"Och."

View File

@@ -0,0 +1,144 @@
# TODO: Translation updated at 2024-10-10 22:47
translate pl strings:
# game/src/chapter_select.rpy:1
old "1. First Day of School"
new "1. Pierwszy Dzień w Szkole"
# game/src/chapter_select.rpy:1
old "2. Meeting the Band"
new "2. Poznanie Zespołu"
# game/src/chapter_select.rpy:1
old "3. Band Practice"
new "3. Próba Zespołu"
# game/src/chapter_select.rpy:1
old "4. Music Class"
new "4. Lekcja Muzyki"
# game/src/chapter_select.rpy:1
old "5. Gardening Club / Heart to Heart"
new "5. Klub Ogrodniczy / Szczera Rozmowa"
# game/src/chapter_select.rpy:1
old "6. Not a Date"
new "6. Nie-Randka"
# game/src/chapter_select.rpy:1
old "7. Concert Day"
new "7. Dzień Koncertu"
# game/src/chapter_select.rpy:1
old "8. Study Session"
new "8. Wspólna Nauka"
# game/src/chapter_select.rpy:1
old "9. VVURM DRAMA"
new "9. VVURM DRAMA"
# game/src/chapter_select.rpy:1
old "10. Confession"
new "10. Wyznanie"
# game/src/chapter_select.rpy:1
old "11. Naser drama"
new "11. Drama z Naserem"
# game/src/chapter_select.rpy:15
old "11.5. Announcing a Plan"
new "11.5 Ogłoszenie Planu"
# game/src/chapter_select.rpy:15
old "12. Let's all go to the Museum"
new "12. Chodźmy wszyscy do Muzeum"
# game/src/chapter_select.rpy:15
old "13. Prom is Complicated"
new "13. Studniówka jest Skomplikowana"
# game/src/chapter_select.rpy:15
old "14. Bowling for Volcano High"
new "14. Gonienie za Volcano High"
# game/src/chapter_select.rpy:22
old "11.5. Announcing Nothing Important"
new "11.5. Ogłoszenie Niczego Ważnego"
# game/src/chapter_select.rpy:22
old "12. Let's all go to a Concert"
new "12. Chodźmy wszyscy na Koncert"
# game/src/chapter_select.rpy:22
old "13. Prom is For Suckers"
new "13. Studniówka jest dla Frajerów"
# game/src/chapter_select.rpy:22
old "14. Anon and the Infinite Sadness"
new "14. Anon i Nieskończony Smutek"
# game/src/chapter_select.rpy:29
old "11.5. Announcing a Date"
new "11.5. Ogłoszenie Randki"
# game/src/chapter_select.rpy:29
old "12. Let's all go Camping"
new "12. Chodźmy wszyscy na Biwak"
# game/src/chapter_select.rpy:29
old "13. Prom is Surprising"
new "13. Studniówka jest Zaskakująca"
# game/src/chapter_select.rpy:29
old "14. Volcano Highschool Musical"
new "14. Volcano Highschool Musical"
# game/src/chapter_select.rpy:36
old "11.5. Announcing a Show"
new "11.5 Ogłoszenie Widowiska"
# game/src/chapter_select.rpy:36
old "12. Let's all go to the Aquarium"
new "12. Chodźmy wszyscy do Akwarium"
# game/src/chapter_select.rpy:36
old "13. Prom is Memorable"
new "13. Studniówka jest Pamiętna"
# game/src/chapter_select.rpy:36
old "14. Fast Times at Volcano High"
new "14. Przemijający Czas w Volcano High"
# game/src/chapter_select.rpy:80
old "What ending do you want to lock to?"
new "Które zakończenie chcesz ustawić?"
# game/src/chapter_select.rpy:80
old "Ending 1"
new "Zakończenie 1"
# game/src/chapter_select.rpy:80
old "Ending 2"
new "Zakończenie 2"
# game/src/chapter_select.rpy:80
old "Ending 3"
new "Zakończenie 3"
# game/src/chapter_select.rpy:80
old "Ending 4"
new "Zakończenie 4"
# game/src/chapter_select.rpy:80
old "Exit to main menu"
new "Wyjdź do menu głównego"
# game/src/chapter_select.rpy:158
old "Next Page"
new "Następna Strona"
# game/src/chapter_select.rpy:158
old "Go Back"
new "Powrót"

View File

@@ -128,3 +128,23 @@ translate pl strings:
old "Special Thanks:"
new "Specjalne podziękowania:"
# TODO: Translation updated at 2024-10-10 22:47
translate pl strings:
# game/src/credits.rpy:80
old "Translators (Italian):"
new "Tłumacze (Włoski):"
# game/src/credits.rpy:80
old "Proofreaders (Italian):"
new "Spr. tłum. (Włoski):"
# game/src/credits.rpy:80
old "Asset help (Italian):"
new "Pomoc (Włoski):"
# game/src/credits.rpy:80
old "Promo Art (Italian):"
new "Grafika Promocyjna (Włoski):"

188
game/tl/pl/src/mod_menu.rpy Normal file
View File

@@ -0,0 +1,188 @@
# TODO: Translation updated at 2024-10-10 22:47
translate pl strings:
# game/src/mod_menu.rpy:584
old "the root of the mods folder"
new "katalog główny modów"
# game/src/mod_menu.rpy:597
old " for '{color=#ffbdbd}"
new " dla '{color=#ffbdbd}"
# game/src/mod_menu.rpy:597
old "{/color}' language"
new "{/color}' języka"
# game/src/mod_menu.rpy:605
old "{color=#ff1e1e}Mod in "
new "{color=#ff1e1e}Ładowanie moda w "
# game/src/mod_menu.rpy:605
old " failed to load: Metadata is formatted incorrectly. Check log.txt or console for more info.{/color}"
new " nie powiodło się: Metadane mają nieprawidłowy format. Sprawdź log.txt lub konsolę dla dodatkowych informacji.{/color}"
# game/src/mod_menu.rpy:607
old "{color=#ff8b1f}Metadata in "
new "{color=#ff8b1f}Metadane w "
# game/src/mod_menu.rpy:607
old " is formatted incorrectly. Check log.txt or console for more info.{/color}"
new " mają nieprawidłowy format. Sprawdź log.txt lub konsolę dla dodatkowych informacji.{/color}"
# game/src/mod_menu.rpy:609
old "{color=#ff8b1f}Mod's name in "
new "{color=#ff8b1f}Nazwa moda w "
# game/src/mod_menu.rpy:609
old " is not a string.{/color}"
new " nie jest ciągiem znaków.{/color}"
# game/src/mod_menu.rpy:611
old "{color=#ff8b1f}Mod's label in "
new "{color=#ff8b1f}Tytuł moda w "
# game/src/mod_menu.rpy:613
old "{color=#ff8b1f}Display mode in "
new "{color=#ff8b1f}Tryb wyświetlania w "
# game/src/mod_menu.rpy:615
old " is not valid. Valid options are 'both', 'icon' and 'name', not "
new " jest niepoprawny. Poprawne warianty to 'both', 'icon' i 'name', nie "
# game/src/mod_menu.rpy:615
old ".{/color}"
new ".{/color}"
# game/src/mod_menu.rpy:617
old "{color=#ff8b1f}Mod's version in "
new "{color=#ff8b1f}Wersja moda w "
# game/src/mod_menu.rpy:619
old "{color=#ff8b1f}Mod's authors in "
new "{color=#ff8b1f}Autorzy moda w "
# game/src/mod_menu.rpy:619
old " is not a string or list.{/color}"
new " nie jest ciągiem znaków lub listą.{/color}"
# game/src/mod_menu.rpy:621
old "{color=#ff8b1f}Author "
new "{color=#ff8b1f}Autor "
# game/src/mod_menu.rpy:621
old " in "
new " w "
# game/src/mod_menu.rpy:623
old "{color=#ff8b1f}Mod's links in "
new "{color=#ff8b1f}Linki moda w "
# game/src/mod_menu.rpy:625
old "{color=#ff8b1f}Link "
new "{color=#ff8b1f}Link "
# game/src/mod_menu.rpy:627
old "{color=#ff8b1f}Mod's description in "
new "{color=#ff8b1f}Opis moda w "
# game/src/mod_menu.rpy:629
old "{color=#ff8b1f}Mod's mobile description in "
new "{color=#ff8b1f}Opis moda dla urządzeń mobilnych w "
# game/src/mod_menu.rpy:631
old "{color=#ff8b1f}Mod's screenshot displayables in "
new "{color=#ff8b1f}Wyświetlane zrzuty ekranu moda w "
# game/src/mod_menu.rpy:631
old " is not a list.{/color}"
new " nie jest listą.{/color}"
# game/src/mod_menu.rpy:633
old "{color=#ff8b1f}Screenshot Displayable "
new "{color=#ff8b1f}Wyświetlany Zrzut "
# game/src/mod_menu.rpy:635
old "{color=#ff8b1f}Mod's icon displayable in "
new "{color=#ff8b1f}Wyświetlana ikona moda w "
# game/src/mod_menu.rpy:637
old "{color=#ff8b1f}Mod's thumbnail displayable in "
new "{color=#ff8b1f}Wyświetlana miniaturka moda w "
# game/src/mod_menu.rpy:639
old " failed to load: Does not have a mod ID.{/color}"
new " nie został załadowany: Nie posiada ID moda.{/color}"
# game/src/mod_menu.rpy:641
old " failed to load: ID is not a string.{/color}"
new " nie został załadowany: ID nie jest ciągiem znaków.{/color}"
# game/src/mod_menu.rpy:643
old " failed to load: Another mod "
new " nie został załadowany: Inny mod "
# game/src/mod_menu.rpy:643
old " has the same ID.{/color}"
new " posiada to samo ID.{/color}"
# game/src/mod_menu.rpy:645
old " is not installed correctly.\nMake sure it's structure is "
new " nie został poprawnie zainstalowany.\nUpewnij się, że struktura jest "
# game/src/mod_menu.rpy:645
old " instead of "
new " zamiast "
# game/src/mod_menu.rpy:647
old "{color=#ff8b1f}"
new "{color=#ff8b1f}"
# game/src/mod_menu.rpy:647
old " image for mod in "
new " obraz dla moda w "
# game/src/mod_menu.rpy:647
old " has an incompatible file extension. {a=https://www.renpy.org/doc/html/displayables.html#images}Only use images that Ren'Py supports!{/a}{/color}"
new " ma niewspierane rozszerzenie pliku. {a=https://www.renpy.org/doc/html/displayables.html#images}Używaj tylko rozszerzeń wspieranych przez Ren'Py!{/a}{/color}"
# game/src/mod_menu.rpy:708
old "Reload Mods"
new "Przeładuj Mody"
# game/src/mod_menu.rpy:889
old "You have no mods! \nInstall some in:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
new "Nie masz modów! \nZainstaluj jakieś w lokalizacji:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
# game/src/mod_menu.rpy:957
old "Name: "
new "Nazwa:"
# game/src/mod_menu.rpy:961
old "Version: "
new "Wersja: "
# game/src/mod_menu.rpy:966
old "Authors: "
new "Autorzy: "
# game/src/mod_menu.rpy:970
old "Author: "
new "Autor: "
# game/src/mod_menu.rpy:975
old "Links: "
new "Linki: "
# game/src/mod_menu.rpy:979
old "Link: "
new "Link: "
# game/src/mod_menu.rpy:1042
old "Show Errors"
new "Pokaż Błędy"
# game/src/mod_menu.rpy:1067
old "Installing mods is dangerous since you are running unknown code in your computer. Only install mods from sources that you trust.\n\nIf you have problems with installed mods, check the README.md in the root of the mods folder."
new "Instalowanie modów jest ryzykowne bo powodują wykonywanie nieznanego kodu na komputerze. Instaluj mody tylko z zaufanych źródeł.\n\nJeżeli masz problemy z zainstalowanymi modami, sprawdź plik README.md w katalogu głównym modów."

View File

@@ -0,0 +1,8 @@
# TODO: Translation updated at 2024-10-10 22:47
translate pl strings:
# game/src/translation.rpy:28
old "OK"
new "OK"

View File

@@ -1219,3 +1219,246 @@ translate ru strings:
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Нажмите или сдвиньте '[control!s]' [kind]."
# TODO: Translation updated at 2024-10-10 18:03
translate ru strings:
# renpy/common/00accessibility.rpy:121
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "Меню доступности. Для навигации используйте стрелки вверх и вниз, а для активации кнопок и полос - клавишу Enter."
# renpy/common/00accessibility.rpy:198
old "Self-voicing support is limited when using a touch screen."
new "При использовании сенсорного экрана поддержка озвучки текста ограничена."
# renpy/common/00action_other.rpy:744
old "Open [text] directory."
new "Открыть дерикторию [text]."
# renpy/common/00director.rpy:1752
old "Click to toggle attribute, right click to toggle negative attribute."
new "Щёлкните, чтобы переключить атрибут, щёлкните правой кнопкой мыши, чтобы переключить отрицательный атрибут."
# renpy/common/00director.rpy:1775
old "Click to set transform, right click to add to transform list."
new "Щёлкните, чтобы установить преобразование, щёлкните правой кнопкой мыши, чтобы добавить в список преобразований."
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "Настройте director.transforms, чтобы добавить больше трансформаций."
# renpy/common/00director.rpy:1799
old "Click to set, right click to add to behind list."
new "Щёлкните, чтобы установить, щёлкните правой кнопкой мыши, чтобы добавить в список отстающих."
# renpy/common/00director.rpy:1821
old "Click to set."
new "Щёлкните, чтобы установить."
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "Настройте director.transitions, чтобы добавить новые переходы."
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "Настройте director.audio_channels, чтобы добавить больше звуковых каналов."
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
new "Вы уверены, что хотите продолжить с того места, на котором остановились?"
# renpy/common/00gui.rpy:459
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
new "Это сохранение было создано на другом устройстве. Вредоносные файлы сохранения могут нанести вред вашему компьютеру. Доверяете ли вы источнику этого сохранения и всем, кто мог изменить файл?"
# renpy/common/00gui.rpy:460
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
new "Доверяете ли вы устройству, на котором было создано сохранение? Выбирайте «Да» только в том случае, если вы являетесь единственным пользователем устройства."
# renpy/common/00preferences.rpy:440
old "self voicing enable"
new "озвучка текста включена"
# renpy/common/00preferences.rpy:442
old "self voicing disable"
new "озвучка текста отключена"
# renpy/common/00preferences.rpy:457
old "clipboard voicing enable"
new "буферная озвучка включена"
# renpy/common/00preferences.rpy:459
old "clipboard voicing disable"
new "буферная озвучка отключена"
# renpy/common/00preferences.rpy:466
old "debug voicing enable"
new "отладка озвучки включена"
# renpy/common/00preferences.rpy:468
old "debug voicing disable"
new "отладка озвучки отключена"
# renpy/common/00preferences.rpy:546
old "audio when minimized"
new "звук, когда игра свернута"
# renpy/common/00preferences.rpy:555
old "audio when unfocused"
new "звук, когда игра не в фокусе"
# renpy/common/00preferences.rpy:564
old "web cache preload"
new "предварительная загрузка веб-кэша"
# renpy/common/00preferences.rpy:579
old "voice after game menu"
new "озвучка в меню игры"
# renpy/common/00preferences.rpy:588
old "restore window position"
new "восстановить положение окна"
# renpy/common/00preferences.rpy:597
old "reset"
new "сброс"
# renpy/common/00preferences.rpy:610
old "main volume"
new "общая громкость"
# renpy/common/00preferences.rpy:614
old "mute main"
new "заглушить звук"
# renpy/common/00speechbubble.rpy:416
old "Speech Bubble Editor"
new "Редактор речевых пузырей/облаков"
# renpy/common/00speechbubble.rpy:421
old "(hide)"
new "(скрыть)"
# renpy/common/00speechbubble.rpy:432
old "(clear retained bubbles)"
new "(очистить оставшиеся пузыри)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
new "Синхронизация загружена."
# renpy/common/00sync.rpy:193
old "Could not connect to the Ren'Py Sync server."
new "Невозможно подключиться к серверам Ren'Py Sync"
# renpy/common/00sync.rpy:195
old "The Ren'Py Sync server timed out."
new "Подключение к серверу Ren'Py Sync сброшено."
# renpy/common/00sync.rpy:197
old "An unknown error occurred while connecting to the Ren'Py Sync server."
new "При подключении к серверу Ren'Py Sync произошла неизвестная ошибка."
# renpy/common/00sync.rpy:213
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
new "На сервере Ren'Py Sync нет копии этой синхронизации. Идентификатор синхронизации может быть недействительным, или он мог сброситься."
# renpy/common/00sync.rpy:316
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
new "Введите идентификатор синхронизации, который вы создали.\nНикогда не вводите идентификатор синхронизации, который вы не создавали."
# renpy/common/00sync.rpy:335
old "The sync ID is not in the correct format."
new "Идентификатор синхронизации имеет неправильный формат."
# renpy/common/00sync.rpy:355
old "The sync could not be decrypted."
new "Синхронизация не может быть расшифрована."
# renpy/common/00sync.rpy:378
old "The sync belongs to a different game."
new "Синхронизация относится к другой игре."
# renpy/common/00sync.rpy:383
old "The sync contains a file with an invalid name."
new "Синхронизация содержит файл с недопустимым именем."
# renpy/common/00sync.rpy:440
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
new "Это действие загрузит ваши сохранения на {a=https://sync.renpy.org}сервер Ren'Py Sync{/a}.\nВы хотите продолжить?"
# renpy/common/00sync.rpy:472
old "Enter Sync ID"
new "Введите Sync ID"
# renpy/common/00sync.rpy:483
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
new "Это действие позволит связаться с сервером {a=https://sync.renpy.org}Ren'Py Sync{/a}."
# renpy/common/00sync.rpy:513
old "Sync Success"
new "Синхронизация прошла успешно"
# renpy/common/00sync.rpy:516
old "The Sync ID is:"
new "Ваш Sync ID:"
# renpy/common/00sync.rpy:522
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
new "Вы можете использовать этот идентификатор для загрузки сохранений на другое устройство.\nЭта синхронизация закончится через час.\nRen'Py Sync поддерживается {a=https://www.renpy.org/sponsors.html}спонсорами Ren'Py{/a}."
# renpy/common/00sync.rpy:526
old "Continue"
new "Продолжить"
# renpy/common/00sync.rpy:551
old "Sync Error"
new "Ошибка синхронизации"
# renpy/common/00translation.rpy:63
old "Translation identifier: [identifier]"
new "Идентификатор перевода: [identifier]"
# renpy/common/00translation.rpy:84
old " translates [tl.filename]:[tl.linenumber]"
new " переведёт [tl.filename]:[tl.linenumber]."
# renpy/common/00translation.rpy:101
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff}Скопирован в буфер обмена.{/color}"
# renpy/common/00updater.rpy:505
old "No update methods found."
new "Методов обновления не найдено."
# renpy/common/00updater.rpy:552
old "Could not download file list: "
new "Не удалось загрузить список файлов:"
# renpy/common/00updater.rpy:555
old "File list digest does not match."
new "Дайджест списка файлов не совпадает."
# renpy/common/00updater.rpy:2080
old "Preparing to download the game data."
new "Подготовка к загрузке игровых данных."
# renpy/common/00updater.rpy:2082
old "Downloading the game data."
new "Загрузка игровых данных."
# renpy/common/00updater.rpy:2084
old "The game data has been downloaded."
new "Игровые данные загружены."
# renpy/common/00updater.rpy:2086
old "An error occured when trying to download game data:"
new "При попытке загрузить игровые данные произошла ошибка:"
# renpy/common/00updater.rpy:2091
old "This game cannot be run until the game data has been downloaded."
new "Эту игру нельзя запустить до тех пор, пока не будут загружены игровые данные."
# renpy/common/00updater.rpy:2098
old "Retry"
new "Повторить"

View File

@@ -585,3 +585,74 @@ translate ru strings:
# game/screens.rpy:1531
old "Skipping"
new "Пропускаем"
# TODO: Translation updated at 2024-10-10 18:03
translate ru strings:
# game/screens.rpy:349
old "Chapter Select"
new "Выбор главы"
# game/screens.rpy:810
old "Upload Sync"
new "Загрузить Sync"
# game/screens.rpy:814
old "Download Sync"
new "Скачать Sync"
# game/screens.rpy:903
old "Developer Tools"
new "Инструменты разработчика"
# game/screens.rpy:904
old "Enable Debug Scores"
new "Включить отладку баллов"
# game/screens.rpy:905
old "Enable Chapter Select"
new "Включить выбор глав"
# game/screens.rpy:917
old "Show Mod Screenshots"
new "Показать скриншоты из модов"
# game/screens.rpy:918
old "Enable New Mods"
new "Включить новые моды"
# game/screens.rpy:924
old "Enable Edgescrolling"
new "Включить пролистывание по краю экрана"
# game/screens.rpy:929
old "Menu Style"
new "Стиль меню"
# game/screens.rpy:930
old "Original"
new "Оригинал"
# game/screens.rpy:931
old "Epilogue"
new "Эпилог"
# game/screens.rpy:1305
old "Backspace"
new "Backspace"
# game/screens.rpy:1306
old "Hides mod details. Shows mod errors if there is any."
new "Скрывает информацию о моде. Показывает ошибки мода, если они есть."
# game/screens.rpy:1336
old "Mouse Wheel Up"
new "Колёсико вверх"
# game/screens.rpy:1363
old "Start, Guide, B/Right Button"
new "Start, Guide, B/Правая кнопка"
# game/screens.rpy:1796
old "Menu"
new "Меню"

View File

@@ -292,7 +292,7 @@ translate ru chapter_12_5C_540128ad:
translate ru chapter_12_5C_75b60f44:
# "Now that I think about it, Im surprised I havent seen him yet."
"Если подумать, странно, что я его ещё не видел."
"Если подумать, то странно, что я его ещё не видел."
# game/script/12.5C.prom-night-intro.rpy:230
translate ru chapter_12_5C_4a3c0f29:
@@ -448,7 +448,7 @@ translate ru chapter_12_5C_3d2f4eaf:
translate ru chapter_12_5C_faa0485d:
# "Pretty sure thatll leave a bruise worse than my accelerated hug with the stair bollard last month."
"Уверен, что это оставит синяк похуже, чем моё скоростное объятие с лестничным столбиком на прошлой неделе."
"Уверен, что это оставит синяк похуже, чем моё скоростное объятие с лестничным столбиком в прошлом месяце."
# game/script/12.5C.prom-night-intro.rpy:435
translate ru chapter_12_5C_da8313ca:

View File

@@ -292,7 +292,7 @@ translate ru chapter_12_5D_540128ad:
translate ru chapter_12_5D_75b60f44:
# "Now that I think about it, Im surprised I havent seen him yet."
"Если подумать, странно, что я его ещё не видел."
"Если подумать, то странно, что я его ещё не видел."
# game/script/12.5D.prom-night-intro.rpy:230
translate ru chapter_12_5D_1e956ab1:
@@ -448,7 +448,7 @@ translate ru chapter_12_5D_3d2f4eaf:
translate ru chapter_12_5D_faa0485d:
# "Pretty sure thatll leave a bruise worse than my accelerated hug with the stair bollard last month."
"Уверен, что это оставит синяк похуже, чем моё скоростное объятие с лестничным столбиком на прошлой неделе."
"Уверен, что это оставит синяк похуже, чем моё скоростное объятие с лестничным столбиком в прошлом месяце."
# game/script/12.5D.prom-night-intro.rpy:435
translate ru chapter_12_5D_da8313ca:

View File

@@ -4102,7 +4102,7 @@ translate ru troodon_ba86db09:
translate ru troodon_fc47b847:
# A "But why wont anyone have a band?"
A "Почему никто не согласен принять группу?"
A "Почему никто не хочет принять группу?"
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2752
translate ru troodon_7ed4c3af:
@@ -4144,7 +4144,7 @@ translate ru troodon_61a281e3:
translate ru troodon_8cc402eb:
# unknown "As you can see,{w=.3} her Reputation,{w=.3} does Precede her."
unknown "Как видишь,{w=.3} её Репутация{w=.3}, действительно ей Предшествует."
unknown "Как видишь,{w=.3} её Репутация{w=.3} действительно ей Предшествует."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2779
translate ru troodon_c47d4cec:
@@ -4156,7 +4156,7 @@ translate ru troodon_c47d4cec:
translate ru troodon_2920ccc9:
# unknown "Everyone here,{w=.3} knows of her,{w=.4} especially of her family."
unknown "Здесь абсолютно все,{w=.3} знают о ней,{w=.4} и о её семье в частности."
unknown "Здесь абсолютно все{w=.3} знают о ней,{w=.4} и о её семье в частности."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2785
translate ru troodon_dec900f2:
@@ -4204,7 +4204,7 @@ translate ru troodon_0b716a4f:
translate ru troodon_d65cc2c4:
# unknown "Yes,{w=.3} I know of that,{w=.3} which you,{w=.3} oh so,{w=.3} Desperately seek."
unknown "Да,{w=.3} известно мне,{w=.3} что вы,{w=.3} так{w=.3} Отчаянно ищете."
unknown "Да,{w=.3} известно мне,{w=.3} что вы{w=.3} так{w=.3} Отчаянно ищете."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2817
translate ru troodon_4fa32f01:
@@ -4222,7 +4222,7 @@ translate ru troodon_76d928d7:
translate ru troodon_080f7834:
# "Finally, progress."
"Наконец-то, прогресс."
"Наконец-то прогресс."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2824
translate ru troodon_24ef333f:
@@ -4240,25 +4240,25 @@ translate ru troodon_0253762f:
translate ru troodon_d7f55a79:
# "Anything to get away from this guy."
"Всё, что угодно, лишь бы поскорее свалить от этого парня."
"Всё что угодно, лишь бы поскорее свалить от этого парня."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2831
translate ru troodon_8d1f51bd:
# unknown "We will,{w=.3} Partake,{w=.3} in the ancient humiliation that has slain,{w=.3} my entire lineage."
unknown "Мы,{w=.3} Поучаствуем,{w=.3} в древнем издевательстве, что погубило{w=.3} весь мой род."
unknown "Мы{w=.3} Поучаствуем{w=.3} в древнем издевательстве, что погубило{w=.3} весь мой род."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2833
translate ru troodon_1cb5dced:
# unknown "Even my own,{w=.3} Family,{w=.3} offed in this deadly sport before I was even born."
unknown "Даже моя собственная,{w=.3} Семья,{w=.3} погибла в этом кровавом спорте ещё до моего рождения."
unknown "Даже моя собственная{w=.3} Семья{w=.3} погибла в этом кровавом виде спорта ещё до моего рождения."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2835
translate ru troodon_8ac61c2e:
# unknown "The humiliation is diabolically easing,{w=.3} a Clutching,{w=.3} of earthly currency."
unknown "Но к счастью, издевательство заметно ослабевает,{w=.3} Цепляясь,{w=.3} за земную валюту."
unknown "К счастью, издевательство заметно ослабевает,{w=.3} Цепляясь{w=.3} за земную валюту."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2837
translate ru troodon_3730c889:
@@ -4270,7 +4270,7 @@ translate ru troodon_3730c889:
translate ru troodon_caa823f4:
# unknown "And to the victorious,{w=.3} my own artifact holding me to this flimsy visage{cps=*.1}...{/cps}"
unknown "А победителю,{w=.3} достанется артефакт, что удерживает меня в этом хрупком обличии{cps=*.1}...{/cps}"
unknown "А победителю{w=.3} достанется артефакт, что удерживает меня в этом хрупком обличии{cps=*.1}...{/cps}"
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:2841
translate ru troodon_5e1ab298:
@@ -4606,7 +4606,7 @@ translate ru lRoombaConvergence_d040edf4:
translate ru lRoombaConvergence_1322d589:
# Moe "{cps=*.2}HAHAHAHA{/cps}{w=.1}AH{w=.2} MY BABY GIRL ASNT SWUNG BY IN AGES!"
Moe "{cps=*.2}ХАХАХАХА{/cps}{w=.1} ОХ{w=.2} МАЯ МАЛЫШКА УЖЕ СТО ЛЕТ НЕ ЗАГЛЯДИВАЛА КО МНЕ!"
Moe "{cps=*.2}ХАХАХАХА{/cps}{w=.1} ОХ{w=.2} МАЯ МАЛЫШКА УЖЕ СТО ЛЕТ НЕ ЗАГЛЯДЫВАЛА КО МНЕ!"
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3067
translate ru lRoombaConvergence_7422b966:
@@ -4624,7 +4624,7 @@ translate ru lRoombaConvergence_fd4b0ba5:
translate ru lRoombaConvergence_ad025934:
# Moe "Relax kids, Im messin wit ya. Come on Ill gives ya da bes seats in da house."
Moe "Успакойтесь, ребятки, я проста шучу. Пойтём, я организую вам лучшие места."
Moe "Успакойтесь, ребятки, я проста шучу. Пайдём, я организую вам лучшие места."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3089
translate ru lRoombaConvergence_ba4584a4:
@@ -4828,7 +4828,7 @@ translate ru lRoombaConvergence_2e722f32:
translate ru lRoombaConvergence_6b750c69:
# A "\"Youre going to camp\", \"youre going to Brazil\", \"youre going to some coastal town for half a year\"."
A "\"Ты пойдёшь в лагерь\", \"Ты отправишься в Бразилию\", \"Ты поедешь учиться в прибрежный городок на полгода.\"."
A "\"Ты пойдёшь в лагерь\", \"Ты отправишься в Бразилию\", \"Ты поедешь учиться в прибрежный городок на полгода\"."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3211
translate ru lRoombaConvergence_5fd100a0:
@@ -5014,13 +5014,13 @@ translate ru lRoombaConvergence_3b46afa0:
translate ru lRoombaConvergence_211c17c0:
# F "The new guy is the only one I can rely on."
F "И новенький в школе это единственный, на кого я могу положиться."
F "Новенький в школе это единственный, на кого я могу положиться."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3319
translate ru lRoombaConvergence_0cb68b38:
# F "{cps=*.4}My life sucks.{/cps}"
F "{cps=*.4}Моя жизнь сосёт.{/cps}"
F "{cps=*.4}Моя жизнь отстой.{/cps}"
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3322
translate ru lRoombaConvergence_83c7530a:
@@ -5128,7 +5128,7 @@ translate ru lRoombaConvergence_0ec98623:
translate ru lRoombaConvergence_9ca51f27:
# Moe "Mister?{w=.4} Young punk ya don need ta be so formal."
Moe "Мистер?{w=.4} Пацан, тепе не нужна быть таким формальным."
Moe "Мистер?{w=.4} Пацан, тепе не нужно быть таким формальным."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3407
translate ru lRoombaConvergence_603a77cd:
@@ -5620,13 +5620,13 @@ translate ru lRoombaConvergence_5cd9611b:
translate ru lRoombaConvergence_0a7ff47c:
# Moe "Be good ta her, Anon."
Moe "Буть к ней добр, Анон."
Moe "Будь к ней добр, Анон."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3689
translate ru lRoombaConvergence_a9c915ae:
# Moe "Shell be good ta youse, I raised her right afta all."
Moe "И она будет добра к тепе. Я всё же её хорошо воспитал."
Moe "И она будет добра к тепе. Я всё же хорошо её воспитал."
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3692
translate ru lRoombaConvergence_4e771384:
@@ -5644,13 +5644,13 @@ translate ru lRoombaConvergence_37bf695d:
translate ru lRoombaConvergence_52d04e99:
# Moe "Ive been hangin around youse fools for too long, I cant jus ignore the kitchen anymore, youse know?"
Moe "Что ж, я слишком долга крутился вокруг вас, ребятки, и уже больше не могу игнорировать кухню, capito?"
Moe "Что ж, ребятки, было приятно с вами поболтать, но я больше не могу игнорировать кухню, capito?"
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3699
translate ru lRoombaConvergence_9378c347:
# Moe "Give little Lucy my regards, huh?"
Moe "Передавай маленькой Люси от меня привет, харашо?"
Moe "Передай малышке Люси от меня поклон, харашо?"
# game/script/6.anon-helps-fang-find-a-venue-for-band.rpy:3701
translate ru lRoombaConvergence_529b1d4f:

View File

@@ -0,0 +1,143 @@
# TODO: Translation updated at 2024-10-10 18:03
translate ru strings:
# game/src/chapter_select.rpy:1
old "1. First Day of School"
new "1. Первый учебный день"
# game/src/chapter_select.rpy:1
old "2. Meeting the Band"
new "2. Встреча с группой"
# game/src/chapter_select.rpy:1
old "3. Band Practice"
new "3. Репетиция группы"
# game/src/chapter_select.rpy:1
old "4. Music Class"
new "4. Музыкальный класс"
# game/src/chapter_select.rpy:1
old "5. Gardening Club / Heart to Heart"
new "5. Садоводческий кружок / Разговор по душам"
# game/src/chapter_select.rpy:1
old "6. Not a Date"
new "6. Не свидание"
# game/src/chapter_select.rpy:1
old "7. Concert Day"
new "7. День концерта"
# game/src/chapter_select.rpy:1
old "8. Study Session"
new "8. Учебная сессия"
# game/src/chapter_select.rpy:1
old "9. VVURM DRAMA"
new "9. VVURM DRAMA"
# game/src/chapter_select.rpy:1
old "10. Confession"
new "10. Признание"
# game/src/chapter_select.rpy:1
old "11. Naser drama"
new "11. Драма Незера"
# game/src/chapter_select.rpy:15
old "11.5. Announcing a Plan"
new "11.5. Анонс плана"
# game/src/chapter_select.rpy:15
old "12. Let's all go to the Museum"
new "12. Поход в музей"
# game/src/chapter_select.rpy:15
old "13. Prom is Complicated"
new "13. Удручающий выпускной"
# game/src/chapter_select.rpy:15
old "14. Bowling for Volcano High"
new "14. Боулинг для Вулкейно Хай"
# game/src/chapter_select.rpy:22
old "11.5. Announcing Nothing Important"
new "11.5. Анонс безделья"
# game/src/chapter_select.rpy:22
old "12. Let's all go to a Concert"
new "12. Совместный концерт"
# game/src/chapter_select.rpy:22
old "13. Prom is For Suckers"
new "13. Выпускной - для лузеров"
# game/src/chapter_select.rpy:22
old "14. Anon and the Infinite Sadness"
new "14. Анон и бесконечная печаль"
# game/src/chapter_select.rpy:29
old "11.5. Announcing a Date"
new "11.5. Анонс свидания"
# game/src/chapter_select.rpy:29
old "12. Let's all go Camping"
new "12. Кемпинг с палатками"
# game/src/chapter_select.rpy:29
old "13. Prom is Surprising"
new "13. Необычный выпускной"
# game/src/chapter_select.rpy:29
old "14. Volcano Highschool Musical"
new "14. Школьный мюзикл Вулкейно Хай"
# game/src/chapter_select.rpy:36
old "11.5. Announcing a Show"
new "11.5. Анонс представления"
# game/src/chapter_select.rpy:36
old "12. Let's all go to the Aquarium"
new "12. Поход в океанариум"
# game/src/chapter_select.rpy:36
old "13. Prom is Memorable"
new "13. Незабываемый выпускной"
# game/src/chapter_select.rpy:36
old "14. Fast Times at Volcano High"
new "14. Беспечные времена в Вулкейно Хай"
# game/src/chapter_select.rpy:80
old "What ending do you want to lock to?"
new "На какую концовку вы хотите выйти?"
# game/src/chapter_select.rpy:80
old "Ending 1"
new "Концовка 1"
# game/src/chapter_select.rpy:80
old "Ending 2"
new "Концовка 2"
# game/src/chapter_select.rpy:80
old "Ending 3"
new "Концовка 3"
# game/src/chapter_select.rpy:80
old "Ending 4"
new "Концовка 4"
# game/src/chapter_select.rpy:80
old "Exit to main menu"
new "Выйти в главное меню"
# game/src/chapter_select.rpy:158
old "Next Page"
new "След. страница"
# game/src/chapter_select.rpy:158
old "Go Back"
new "Назад"

View File

@@ -126,3 +126,25 @@ translate ru strings:
old "Special Thanks:"
new "Особая благодарность:"
# TODO: Translation updated at 2024-10-10 18:03
translate ru strings:
# game/src/credits.rpy:80
old "Translators (Italian):"
new "Переводчики (Итальянский):"
# game/src/credits.rpy:80
old "Proofreaders (Italian):"
new "Вычитка (Итальянский):"
# game/src/credits.rpy:80
old "Asset help (Italian):"
new "Ассеты (Итальянский):"
# TODO: Translation updated at 2024-10-11 05:50
translate ru strings:
# game/src/credits.rpy:80
old "Promo Art (Italian):"
new "Промо-арт (Итальянский):"

View File

@@ -0,0 +1,7 @@
# TODO: Translation updated at 2024-10-10 18:03
translate ru strings:
# game/src/misc_definitions.rpy:54
old "(???)"
new "(???)"

187
game/tl/ru/src/mod_menu.rpy Normal file
View File

@@ -0,0 +1,187 @@
# TODO: Translation updated at 2024-10-10 18:03
translate ru strings:
# game/src/mod_menu.rpy:584
old "the root of the mods folder"
new "корневая папка с модами"
# game/src/mod_menu.rpy:597
old " for '{color=#ffbdbd}"
new " для '{color=#ffbdbd}"
# game/src/mod_menu.rpy:597
old "{/color}' language"
new "{/color}' язык"
# game/src/mod_menu.rpy:605
old "{color=#ff1e1e}Mod in "
new "{color=#ff1e1e}Моды в "
# game/src/mod_menu.rpy:605
old " failed to load: Metadata is formatted incorrectly. Check log.txt or console for more info.{/color}"
new "не удалось загрузить: Метаданные отформатированы неправильно. Проверьте log.txt или консоль для получения дополнительной информации.{/color}"
# game/src/mod_menu.rpy:607
old "{color=#ff8b1f}Metadata in "
new "{color=#ff8b1f}Метаданные в "
# game/src/mod_menu.rpy:607
old " is formatted incorrectly. Check log.txt or console for more info.{/color}"
new " отформатирован неправильно. Проверьте log.txt или консоль для получения дополнительной информации.{/color}"
# game/src/mod_menu.rpy:609
old "{color=#ff8b1f}Mod's name in "
new "{color=#ff8b1f}Имя мода в "
# game/src/mod_menu.rpy:609
old " is not a string.{/color}"
new " не является строкой.{/color}"
# game/src/mod_menu.rpy:611
old "{color=#ff8b1f}Mod's label in "
new "{color=#ff8b1f}Метка мода в"
# game/src/mod_menu.rpy:613
old "{color=#ff8b1f}Display mode in "
new "{color=#ff8b1f}Режим отображения в "
# game/src/mod_menu.rpy:615
old " is not valid. Valid options are 'both', 'icon' and 'name', not "
new " не является допустимым. Допустимые варианты: «оба», «значок» и «имя», а не "
# game/src/mod_menu.rpy:615
old ".{/color}"
new ".{/color}"
# game/src/mod_menu.rpy:617
old "{color=#ff8b1f}Mod's version in "
new "{color=#ff8b1f}Версия мода в "
# game/src/mod_menu.rpy:619
old "{color=#ff8b1f}Mod's authors in "
new "{color=#ff8b1f}Авторы мода в "
# game/src/mod_menu.rpy:619
old " is not a string or list.{/color}"
new " не является строкой или списком.{/color}"
# game/src/mod_menu.rpy:621
old "{color=#ff8b1f}Author "
new "{color=#ff8b1f}Автор "
# game/src/mod_menu.rpy:621
old " in "
new " в "
# game/src/mod_menu.rpy:623
old "{color=#ff8b1f}Mod's links in "
new "{color=#ff8b1f}Ссылки мода в "
# game/src/mod_menu.rpy:625
old "{color=#ff8b1f}Link "
new "{color=#ff8b1f}Ссылка "
# game/src/mod_menu.rpy:627
old "{color=#ff8b1f}Mod's description in "
new "{color=#ff8b1f}Описание мода в "
# game/src/mod_menu.rpy:629
old "{color=#ff8b1f}Mod's mobile description in "
new "{color=#ff8b1f}Описание мода для мобильных устройств в "
# game/src/mod_menu.rpy:631
old "{color=#ff8b1f}Mod's screenshot displayables in "
new "{color=#ff8b1f}Скриншот мода, отображаемый в "
# game/src/mod_menu.rpy:631
old " is not a list.{/color}"
new " не является списком.{/color}"
# game/src/mod_menu.rpy:633
old "{color=#ff8b1f}Screenshot Displayable "
new "{color=#ff8b1f}Отображаемый скриншот "
# game/src/mod_menu.rpy:635
old "{color=#ff8b1f}Mod's icon displayable in "
new "{color=#ff8b1f}Иконка мода, отображаемая в "
# game/src/mod_menu.rpy:637
old "{color=#ff8b1f}Mod's thumbnail displayable in "
new "{color=#ff8b1f}Миниатюра мода, отображаемая в "
# game/src/mod_menu.rpy:639
old " failed to load: Does not have a mod ID.{/color}"
new " не удалось загрузить: Отсутствует ID мода.{/color}"
# game/src/mod_menu.rpy:641
old " failed to load: ID is not a string.{/color}"
new " не удалось загрузить: ID не является строкой.{/color}"
# game/src/mod_menu.rpy:643
old " failed to load: Another mod "
new " не удалось загрузить: Другой мод "
# game/src/mod_menu.rpy:643
old " has the same ID.{/color}"
new " имеет тот же ID.{/color}"
# game/src/mod_menu.rpy:645
old " is not installed correctly.\nMake sure it's structure is "
new " установлен неправильно.\nУбедитесь, что его структура соответствует "
# game/src/mod_menu.rpy:645
old " instead of "
new " вместо "
# game/src/mod_menu.rpy:647
old "{color=#ff8b1f}"
new "{color=#ff8b1f}"
# game/src/mod_menu.rpy:647
old " image for mod in "
new " изображение для мода в "
# game/src/mod_menu.rpy:647
old " has an incompatible file extension. {a=https://www.renpy.org/doc/html/displayables.html#images}Only use images that Ren'Py supports!{/a}{/color}"
new " имеет недопустимое расширение файла. {a=https://www.renpy.org/doc/html/displayables.html#images}Используйте лишь те изображения, что поддерживает Ren'Py!{/a}{/color}"
# game/src/mod_menu.rpy:708
old "Reload Mods"
new "Перезагрузить \nмоды"
# game/src/mod_menu.rpy:889
old "You have no mods! \nInstall some in:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
new "У вас нет модов! \nУстановите их в:\n\"{color=#abd7ff}[mod_menu_moddir]{/color}\""
# game/src/mod_menu.rpy:957
old "Name: "
new "Название: "
# game/src/mod_menu.rpy:961
old "Version: "
new "Версия: "
# game/src/mod_menu.rpy:966
old "Authors: "
new "Авторы: "
# game/src/mod_menu.rpy:970
old "Author: "
new "Автор: "
# game/src/mod_menu.rpy:975
old "Links: "
new "Ссылки: "
# game/src/mod_menu.rpy:979
old "Link: "
new "Ссылка: "
# game/src/mod_menu.rpy:1042
old "Show Errors"
new "Показать ошибки"
# game/src/mod_menu.rpy:1067
old "Installing mods is dangerous since you are running unknown code in your computer. Only install mods from sources that you trust.\n\nIf you have problems with installed mods, check the README.md in the root of the mods folder."
new "Установка модов несёт определённые риски, т.к. вы запускаете на компьютере неизвестный код. Устанавливайте моды только от доверенных источников.\n\nЕсли у вас есть проблемы с установкой модов, прочитайте файл README.md в корневой папке модов."

View File

@@ -0,0 +1,7 @@
# TODO: Translation updated at 2024-10-10 18:03
translate ru strings:
# game/src/translation.rpy:28
old "OK"
new "OK"