New Russo Translation

This commit is contained in:
2024-04-03 02:37:52 -05:00
parent d4c32e117c
commit c12a1c7cbf
84 changed files with 9389 additions and 9464 deletions

View File

@@ -1,305 +1,311 @@
# Don't remove init offset as that breaks translations for some reason
init 999 python:
#don't do a halo infinite moment
#hard code the header & footer
#then iterate the list_credits
list_og_credits = {
_('Coded By:'): [
'/dev/non',
"[[Untitled] Anon",
'Schizodev Anon',
'Starmanon',
'Nutbuster Anon',
'Inhumanon',
'Spigot the Bear Anon'
],
_('Written by:'): [
'AVGN Anon',
'Coomer Anon',
'/trash/ Anon',
'FreemAnon',
'Ccp Anon',
'Kokichi Anon',
'Alex Anon',
'Punished Anon',
'Finn Anon'
],
_('Story by:'): [
'AVGN Anon',
'Coomer Anon',
'Alex Anon',
'Singularity Anon',
'Tombstone Anon'
],
_('Production Designer'): [
'Alex Anon'
],
_('Artwork by:'): [
'Alex Anon',
'Mormon Anon',
'Ccp Anon',
'Aome Anon',
'/trash/ Anon',
'Skeleton Anon',
'eyeh Xinnix Anon',
'Brit Anon',
'Dark-N-Wolf Anon',
'Hotel Anon',
'Multi Anon',
'Ionanon'
],
_('Additional Artwork by:'): [
_('Backup Anon 1'),
_('Backup Anon 2'),
_('Backup Anon 3'),
_('Backup Anon 4'),
_('Backup Anon 5'),
_('Backup Anon 6'),
],
_("\"Love theme\" by:"): [
_('Only Person In The Team With A\nPortfolio/Experience Anon'),
],
_('Music By'): [
'Shampoo Anon',
'Melo Anon'
],
_('Egg Hunt Contest\nWinner:'): [
'Olivia Anon'
],
_('Character Design\nContest Winner:'): [
'Mono Anon',
],
_('Special Thanks:'): [
'Commission Anon',
]
}
# The difference between adding in the special thanks and not I have found is about 480px, just to note down.
# group translators by language, not by role
list_translator_credits = {
_('Translators (Spanish):'): [
'Queso2033 Anon',
'TheShadowTrAnon'
],
_('Proofreaders (Spanish):'): [
'ElBan Anón',
'GMAnon'
],
_('Asset help (Spanish):'): [
'Arkiangelo Anon'
],
_('Translators (Russian):'): [
'2ch.hk_fur Anon',
'rutracker Anon'
],
_('Proofreaders (Russian):'): [
'rutracker Anon'
],
_('Asset help (Russian):'): [
'rutracker Anon'
]
}
textlist = []
alignargs = {'xalign': 0.5, 'yalign': 0.5, 'text_align': 0.5}
#sizes in px
SIZE_SNOT_GAMES = 68*3+10
SIZE_TITLE = 32*3+10
SIZE_ENTRY = 22*3+10
SIZE_TL = 22*2+10
SIZE_ENDER = 52*3+10
#there is line_spacing but don't usei t
textlist.append(Text(_("Snoot Game"), size=SIZE_SNOT_GAMES, **alignargs))
textlist.append(Null(1, 16*1))
textlist.append(Text(_("By CaveManon"), size=SIZE_TITLE, **alignargs))
textlist.append(Null(1, 16*18))
textlist.append(Text(_("developed in Ren'py"), size=SIZE_ENTRY, **alignargs))
textlist.append(Null(1, 16*12))
for key, arr in list_og_credits.items():
textlist.append(Text(key, size=SIZE_TITLE, **alignargs))
textlist.append(Null(1, 16*6))
concatstr = ""
for item in arr:
concatstr += __(item) + '\n'
textlist.append(Text(concatstr, size=SIZE_ENTRY, **alignargs))
textlist.append(Null(1, 16*2))
#smaller font and gridonate for translators
TL_WIDTH = 2
TL_HEIGHT = (len(list_translator_credits)+1)//2
tgrid = []
for key, arr in list_translator_credits.items():
vb = []
vb.append(Text(key, size=SIZE_ENTRY, **alignargs))
vb.append(Null(1, 16*6))
concatstr = ""
for item in arr:
concatstr += item + '\n'
vb.append(Text(concatstr, size=SIZE_TL, **alignargs))
vb.append(Null(1, 16*2))
vb = VBox(*vb)
tgrid.append(vb)
for x in range(len(tgrid), TL_WIDTH*TL_HEIGHT):
tgrid.append(Null())
pass
tgrid = Grid(TL_WIDTH, TL_HEIGHT, *tgrid)
textlist.append(tgrid)
textlist.append(Null(1, 16*12)) #check
textlist.append(Text(_("T H E E N D"), size=SIZE_ENDER, **alignargs))
textlist.append(Null(1, 16*4))
textlist.append(Text(_("Snoot game started development\n on June 19, 2020"), size=SIZE_ENTRY, **alignargs))
credits_hbox = Fixed(VBox(*textlist, xalign=0.5), xalign=0.5)
renpy.image('credits_hbox', credits_hbox)
#
label test_credits:
scene black
stop ambient
#play music '<loop 12.809525>audio/abloop.wav'
"test"
window auto hide
pause 0.5
show c_credits_text:
crop (0, 0, 1920, 670)
pause 1.1
show c_credits_text:
crop None
pause 2.75
show credits_base at Pan((0, -1080),(0, 8100), 65) behind c_credits_text:
subpixel True
show c_credits_text at Pan((0, 0),(0, 12155), 65):
crop None
subpixel True
#pause 50
#queue music "audio/abend.wav" noloop
pause
scene black with Dissolve(3)
# Credits definitions moved here so everything that needs to be changed is is one place.
# Anytime the credits changes to include more translators, you're just going to have to guess what the correct
# value to offset everything is again. Mainly concerning values that control the panning destination of credits text,
# and the height of the credits text itself
# My recommendation is to imagine a square on top of the "T" in "THE END"
# The square is as long as one of those characters, and the top of the square should touch the top of the screen
# when the credits stop scrolling
# Someone please come up with an exact formula pls
#too much lore above; make it look good within reason
# Remember, ending sketch is always +550 of when the Pan stops
image credits_coverup:
"black"
crop (0, 0, 1920, 1080)
image b_credits_text = Composite(
(1920, 13235),
(0, 390), "credits_hbox",
(0, 12705), "b_sketch"
)
image c_credits_text = Composite(
(1920, 13235),
(0, 390), "credits_hbox",
(0, 12705), "c_sketch"
)
image d_credits_text = Composite(
(1920, 13235),
(0, 390), "credits_hbox",
(0, 12705), "d_sketch"
)
label lending:
call get_ending from _call_get_ending_4
if _return == 4:
pause 0.5
show snootgame_big with dissolve: # Renpy not allowing you to grab images from the gui folder is serious bullshit
subpixel True
xalign 0.5
yalign 0.5
linear 6 zoom 1.2
pause 1.75
show d_credits_text with dissolve:
subpixel True
crop (0, 670, 1920, 1080)
ypos 670
xalign 0.5
linear 3 zoom 1.1
pause 2
hide d_credits_text
hide snootgame_big
with dissolve
show credits_base at Pan((0, -1080),(0, 8100), 65):
subpixel True
show d_credits_text at Pan((0, 0),(0, 12155), 65):
subpixel True
show credits_coverup at Pan((0, 0),(0, 12155), 65):
subpixel True
pause 50
queue music 'audio/OST/amberlight brillance live end.ogg'
queue music "<silence 1.0>" loop
elif _return == 3:
play music "audio/OST/Dino Destiny Reader.ogg"
pause 0.5
show c_credits_text:
crop (0, 0, 1920, 670)
pause 1.1
show c_credits_text:
crop None
pause 2.75
show credits_base at Pan((0, -1080),(0, 8100), 65) behind c_credits_text:
subpixel True
show c_credits_text at Pan((0, 0),(0, 12155), 65):
crop None
subpixel True
else:
play music "audio/OST/Dino Destiny Reader.ogg"
pause 0.5
show b_credits_text:
crop (0, 0, 1920, 670)
pause 1.1
show b_credits_text:
crop None
pause 2.75
show credits_base at Pan((0, -1080),(0, 8100), 65) behind b_credits_text:
subpixel True
show b_credits_text at Pan((0, 0),(0, 12155), 65):
crop None
subpixel True
pause
stop music fadeout 5
scene black with Dissolve(3)
pause 2
if tradwife:
scene c10 with Dissolve(1.5)
pause 20
scene black with Dissolve(2)
pause 1
elif anonscore >= 4 and fangscore >= 4:
scene golden ending with Dissolve(1.5)
pause 20
scene black with Dissolve(2)
pause 1
return
# Don't remove init offset as that breaks translations for some reason
init 999 python:
#don't do a halo infinite moment
#hard code the header & footer
#then iterate the list_credits
list_og_credits = {
_('Coded By:'): [
'/dev/non',
"[[Untitled] Anon",
'Schizodev Anon',
'Starmanon',
'Nutbuster Anon',
'Inhumanon',
'Spigot the Bear Anon'
],
_('Written by:'): [
'AVGN Anon',
'Coomer Anon',
'/trash/ Anon',
'FreemAnon',
'Ccp Anon',
'Kokichi Anon',
'Alex Anon',
'Punished Anon',
'Finn Anon'
],
_('Story by:'): [
'AVGN Anon',
'Coomer Anon',
'Alex Anon',
'Singularity Anon',
'Tombstone Anon'
],
_('Production Designer'): [
'Alex Anon'
],
_('Artwork by:'): [
'Alex Anon',
'Mormon Anon',
'Ccp Anon',
'Aome Anon',
'/trash/ Anon',
'Skeleton Anon',
'eyeh Xinnix Anon',
'Brit Anon',
'Dark-N-Wolf Anon',
'Hotel Anon',
'Multi Anon',
'Ionanon'
],
_('Additional Artwork by:'): [
_('Backup Anon 1'),
_('Backup Anon 2'),
_('Backup Anon 3'),
_('Backup Anon 4'),
_('Backup Anon 5'),
_('Backup Anon 6'),
],
_("\"Love theme\" by:"): [
_('Only Person In The Team With A\nPortfolio/Experience Anon'),
],
_('Music By'): [
'Shampoo Anon',
'Melo Anon'
],
_('Egg Hunt Contest\nWinner:'): [
'Olivia Anon'
],
_('Character Design\nContest Winner:'): [
'Mono Anon',
],
_('Special Thanks:'): [
'Commission Anon',
]
}
# The difference between adding in the special thanks and not I have found is about 480px, just to note down.
list_translator_credits = {
_('Translators (Spanish):'): [
'Queso2033 Anon',
'TheShadowTrAnon'
],
_('Translators (Russian):'): [
'Gexahord',
'strelook21',
'YtkaGen',
'DatFeelFrog',
'CMDR Andrea Dornan'
],
_('Proofreaders (Spanish):'): [
'ElBan Anón',
'GMAnon'
],
_('Proofreaders (Russian):'): [
'Gexahord',
'strelook21',
'YtkaGen',
'DatFeelFrog'
],
_('Asset help (Spanish):'): [
'Arkiangelo Anon'
],
_('Asset help (Russian):'): [
'Gexahord',
'YtkaGen',
'2ch Anon'
]
}
textlist = []
alignargs = {'xalign': 0.5, 'yalign': 0.5, 'text_align': 0.5}
#sizes in px
SIZE_SNOT_GAMES = 68*3+10
SIZE_TITLE = 32*3+10
SIZE_ENTRY = 22*3+10
SIZE_TL = 22*2+10
SIZE_ENDER = 52*3+10
#there is line_spacing but don't usei t
textlist.append(Text(_("Snoot Game"), size=SIZE_SNOT_GAMES, **alignargs))
textlist.append(Null(1, 16*1))
textlist.append(Text(_("By CaveManon"), size=SIZE_TITLE, **alignargs))
textlist.append(Null(1, 16*18))
textlist.append(Text(_("developed in Ren'py"), size=SIZE_ENTRY, **alignargs))
textlist.append(Null(1, 16*12))
for key, arr in list_og_credits.items():
textlist.append(Text(key, size=SIZE_TITLE, **alignargs))
textlist.append(Null(1, 16*6))
concatstr = ""
for item in arr:
concatstr += __(item) + '\n'
textlist.append(Text(concatstr, size=SIZE_ENTRY, **alignargs))
textlist.append(Null(1, 16*2))
#smaller font and gridonate for translators
TL_WIDTH = 2
TL_HEIGHT = (len(list_translator_credits)+1)//2
tgrid = []
for key, arr in list_translator_credits.items():
vb = []
vb.append(Text(key, size=SIZE_ENTRY, **alignargs))
vb.append(Null(1, 16*6))
concatstr = ""
for item in arr:
concatstr += item + '\n'
vb.append(Text(concatstr, size=SIZE_TL, **alignargs))
vb.append(Null(1, 16*2))
vb = VBox(*vb)
tgrid.append(vb)
for x in range(len(tgrid), TL_WIDTH*TL_HEIGHT):
tgrid.append(Null())
pass
tgrid = Grid(TL_WIDTH, TL_HEIGHT, *tgrid)
textlist.append(tgrid)
textlist.append(Null(1, 16*12)) #check
textlist.append(Text(_("T H E E N D"), size=SIZE_ENDER, **alignargs))
textlist.append(Null(1, 16*4))
textlist.append(Text(_("Snoot game started development\n on June 19, 2020"), size=SIZE_ENTRY, **alignargs))
credits_hbox = Fixed(VBox(*textlist, xalign=0.5), xalign=0.5)
renpy.image('credits_hbox', credits_hbox)
#
label test_credits:
scene black
stop ambient
#play music '<loop 12.809525>audio/abloop.wav'
"test"
window auto hide
pause 0.5
show c_credits_text:
crop (0, 0, 1920, 670)
pause 1.1
show c_credits_text:
crop None
pause 2.75
show credits_base at Pan((0, -1080),(0, 8100), 65) behind c_credits_text:
subpixel True
show c_credits_text at Pan((0, 0),(0, 12155), 65):
crop None
subpixel True
#pause 50
#queue music "audio/abend.wav" noloop
pause
scene black with Dissolve(3)
# Credits definitions moved here so everything that needs to be changed is is one place.
# Anytime the credits changes to include more translators, you're just going to have to guess what the correct
# value to offset everything is again. Mainly concerning values that control the panning destination of credits text,
# and the height of the credits text itself
# My recommendation is to imagine a square on top of the "T" in "THE END"
# The square is as long as one of those characters, and the top of the square should touch the top of the screen
# when the credits stop scrolling
# Someone please come up with an exact formula pls
# Remember, ending sketch is always +550 of when the Pan stops
image credits_coverup:
"black"
crop (0, 0, 1920, 1080)
image b_credits_text = Composite(
(1920, 13235),
(0, 390), "credits_hbox",
(0, 12705), "b_sketch"
)
image c_credits_text = Composite(
(1920, 13235),
(0, 390), "credits_hbox",
(0, 12705), "c_sketch"
)
image d_credits_text = Composite(
(1920, 13235),
(0, 390), "credits_hbox",
(0, 12705), "d_sketch"
)
label lending:
call get_ending from _call_get_ending_4
if _return == 4:
pause 0.5
show snootgame_big with dissolve: # Renpy not allowing you to grab images from the gui folder is serious bullshit
subpixel True
xalign 0.5
yalign 0.5
linear 6 zoom 1.2
pause 1.75
show d_credits_text with dissolve:
subpixel True
crop (0, 670, 1920, 1080)
ypos 670
xalign 0.5
linear 3 zoom 1.1
pause 2
hide d_credits_text
hide snootgame_big
with dissolve
show credits_base at Pan((0, -1080),(0, 8100), 65):
subpixel True
show d_credits_text at Pan((0, 0),(0, 12155), 65):
subpixel True
show credits_coverup at Pan((0, 0),(0, 12155), 65):
subpixel True
pause 50
queue music 'audio/OST/amberlight brillance live end.ogg'
queue music "<silence 1.0>" loop
elif _return == 3:
play music "audio/OST/Dino Destiny Reader.ogg"
pause 0.5
show c_credits_text:
crop (0, 0, 1920, 670)
pause 1.1
show c_credits_text:
crop None
pause 2.75
show credits_base at Pan((0, -1080),(0, 8100), 65) behind c_credits_text:
subpixel True
show c_credits_text at Pan((0, 0),(0, 12155), 65):
crop None
subpixel True
else:
play music "audio/OST/Dino Destiny Reader.ogg"
pause 0.5
show b_credits_text:
crop (0, 0, 1920, 670)
pause 1.1
show b_credits_text:
crop None
pause 2.75
show credits_base at Pan((0, -1080),(0, 8100), 65) behind b_credits_text:
subpixel True
show b_credits_text at Pan((0, 0),(0, 12155), 65):
crop None
subpixel True
pause
stop music fadeout 5
scene black with Dissolve(3)
pause 2
if tradwife:
scene c10 with Dissolve(1.5)
pause 20
scene black with Dissolve(2)
pause 1
elif anonscore >= 4 and fangscore >= 4:
scene golden ending with Dissolve(1.5)
pause 20
scene black with Dissolve(2)
pause 1
return

View File

@@ -1,130 +1,130 @@
init offset = -1
screen OkPrompt(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/uiClick.wav" action If(go_menu, true=MainMenu(False,False), false=Hide())
default persistent.seenWarning = []
init python:
from math import ceil
notice = _("NOTICE: Please keep in mind this is a fan translation, and as such it may not be completely accurate to the original intent of any written lines.")
languages = [
{'image': 'gui/flag/USofA.png', 'name': 'English', 'value': None },
{'image': 'gui/flag/Mexico.png', 'name': 'Español', 'value': 'es'},
{'image': 'gui/flag/Rus.png', 'name': 'Русский', 'value': 'ru'}
]
#This was done so it would work with whatever amount of languages you wanted, I tried it with up to 200 and it worked nicely.
maxItems = len(languages)
maxRows = ceil(maxItems/4)
if maxItems > 4:
maxItems = 4*maxRows
init:
transform renpysdumb: # Needed to scale down the imagebuttons.
zoom 0.5
transform icon: #For the preferences screen
truecenter
zoom 0.1
transform glowie(img):
img
easein_cubic 0.30 matrixcolor TintMatrix(Color((255, 255, 255)))
transform darkie(img):
img
easeout_cubic 0.30 matrixcolor TintMatrix(Color((255/2, 255/2, 255/2)))
screen lang_sel():
tag menu
frame:
background Transform(gui.main_menu_background, matrixcolor=TintMatrix('#222'))
padding (120, 40)
vbox:
style_prefix "navigation"
vbox:
label _("Choose Your Language") text_size 80
add Null(0, 40)
vpgrid:
if maxItems <= 4:
cols maxItems
rows 1
else:
cols 4
rows maxRows
#spacing 30
draggable True
mousewheel True
if maxRows > 3:
scrollbars "vertical"
for i in range(maxItems):
fixed:
xsize 400
ysize 300
vbox:
if i<len(languages):
text languages[i]["name"] at top
add Null(0,10)
imagebutton:
idle darkie(languages[i]["image"])
hover glowie(languages[i]["image"])
action If(languages[i]["value"] in persistent.seenWarning or languages[i]["value"] == None,
true = [Language(languages[i]["value"]), MainMenu(False,False)],
# 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)]
)
at renpysdumb # Scales the imagebutton down. No, you can't just specify the zoom here. It has to be a defined transform.
else:
# Renpy seethes if a vpgrid doesn't have the exact maximum amount of items for some reason.
add Null(0,0)
at truecenter
screen lang_button(lang):
hbox:
spacing 15
textbutton lang["name"]:
activate_sound "audio/ui/uiRollover.wav"
action If(lang["value"] in persistent.seenWarning or lang["value"] == None,
true = [Language(lang["value"])],
false = [Language(lang["value"]), AddToSet(set=persistent.seenWarning, value=lang["value"]), Show(screen="OkPrompt", message=notice, go_menu=False)]
)
if _preferences.language == lang["value"]:
add glowie(lang["image"]) at icon
else:
add darkie(lang["image"]) at icon
init offset = -1
screen OkPrompt(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/uiClick.wav" action If(go_menu, true=MainMenu(False,False), false=Hide())
default persistent.seenWarning = []
init python:
from math import ceil
notice = _("NOTICE: Please keep in mind this is a fan translation, and as such it may not be completely accurate to the original intent of any written lines.")
languages = [
{'image': 'gui/flag/USofA.png', 'name': 'English', 'value': None },
{'image': 'gui/flag/Mexico.png', 'name': 'Español', 'value': 'es'},
{'image': 'gui/flag/Rus.png', 'name': 'Русский', 'value': 'ru'}
]
#This was done so it would work with whatever amount of languages you wanted, I tried it with up to 200 and it worked nicely.
maxItems = len(languages)
maxRows = ceil(maxItems/4)
if maxItems > 4:
maxItems = 4*maxRows
init:
transform renpysdumb: # Needed to scale down the imagebuttons.
zoom 0.5
transform icon: #For the preferences screen
truecenter
zoom 0.1
transform glowie(img):
img
easein_cubic 0.30 matrixcolor TintMatrix(Color((255, 255, 255)))
transform darkie(img):
img
easeout_cubic 0.30 matrixcolor TintMatrix(Color((255/2, 255/2, 255/2)))
screen lang_sel():
tag menu
frame:
background Transform(gui.main_menu_background, matrixcolor=TintMatrix('#222'))
padding (120, 40)
vbox:
style_prefix "navigation"
vbox:
label _("Choose Your Language") text_size 80
add Null(0, 40)
vpgrid:
if maxItems <= 4:
cols maxItems
rows 1
else:
cols 4
rows maxRows
#spacing 30
draggable True
mousewheel True
if maxRows > 3:
scrollbars "vertical"
for i in range(maxItems):
fixed:
xsize 400
ysize 300
vbox:
if i<len(languages):
text languages[i]["name"] at top
add Null(0,10)
imagebutton:
idle darkie(languages[i]["image"])
hover glowie(languages[i]["image"])
action If(languages[i]["value"] in persistent.seenWarning or languages[i]["value"] == None,
true = [Language(languages[i]["value"]), MainMenu(False,False)],
# 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)]
)
at renpysdumb # Scales the imagebutton down. No, you can't just specify the zoom here. It has to be a defined transform.
else:
# Renpy seethes if a vpgrid doesn't have the exact maximum amount of items for some reason.
add Null(0,0)
at truecenter
screen lang_button(lang):
hbox:
spacing 15
textbutton lang["name"]:
activate_sound "audio/ui/uiRollover.wav"
action If(lang["value"] in persistent.seenWarning or lang["value"] == None,
true = [Language(lang["value"])],
false = [Language(lang["value"]), AddToSet(set=persistent.seenWarning, value=lang["value"]), Show(screen="OkPrompt", message=notice, go_menu=False)]
)
if _preferences.language == lang["value"]:
add glowie(lang["image"]) at icon
else:
add darkie(lang["image"]) at icon