Compare commits
224 Commits
8.3.0.24082114
...
fix
| Author | SHA1 | Date | |
|---|---|---|---|
| 8a21aa55dc | |||
| 6c948bf046 | |||
| 8de2bda1e6 | |||
| 5e3b209ba2 | |||
| 2e45c3e609 | |||
| 8c7a3b13bf | |||
| 4a0738f2aa | |||
| 899eb6616f | |||
| 536fce4a22 | |||
| ca9e2dfe47 | |||
| 321434e95e | |||
| 41b6e689d3 | |||
| 7958f5445a | |||
| efd4cc6b5e | |||
| 35c4ba4a41 | |||
| 5361a8e9a5 | |||
| ba76f970c5 | |||
| 7d8d05107b | |||
| 2639028ce7 | |||
| beedbc0a22 | |||
| 74157a4ad6 | |||
| 25b4a17d1a | |||
| 4163c1396c | |||
| d6ab06dd1f | |||
| 3db515db3c | |||
| cc654ebfeb | |||
| f389c13b29 | |||
| c57dbe7a9d | |||
| e35fcb2e86 | |||
| 38b505ba36 | |||
| f132d49157 | |||
| ba0bc218c2 | |||
| 97331e2464 | |||
| 8d38a6ae4d | |||
| e3c4993487 | |||
| d0270729c1 | |||
| 3bc3bf3e19 | |||
| 831fb59d49 | |||
| f5555d6f1a | |||
| e7eb0e135b | |||
| bf9de85f75 | |||
| 6470a37b40 | |||
| 99a5ac89db | |||
| e46073b059 | |||
| 88ddee9d5e | |||
| d8283c958c | |||
| 31025cdadb | |||
| e66a9b8c6d | |||
| 2b5b9835b7 | |||
| 3f667e3ef1 | |||
| 823e235a1c | |||
| 1df2c15b07 | |||
| 5c5252a516 | |||
| 70bb4208bc | |||
| 2e1c09dbbd | |||
| fc5f8e0d3e | |||
| 28ae4a7c0c | |||
| ec5738c6e0 | |||
| 2da8beecd7 | |||
| e0062cbebc | |||
| 9b290e07f5 | |||
| 864feaba02 | |||
| 76b068c6dc | |||
| ebc6e66433 | |||
| f25dcea3cb | |||
| 78899cfef3 | |||
| 339c7357dc | |||
| 4a1182cdd5 | |||
| 9ff3bb67e8 | |||
| f7a5e874ea | |||
| ec758301ac | |||
| 19122e45c8 | |||
| 89d5858d2b | |||
| 5a65eea075 | |||
| 4e5dd16606 | |||
| dd61e71beb | |||
| 70f30147df | |||
| fa84f0c61e | |||
| 74339b0432 | |||
| f6f4b3bce3 | |||
| 5dbd50159a | |||
| 1e85fd051a | |||
| dc65afd6f1 | |||
| e3222ec11d | |||
| 37c78dccda | |||
| 1a7f0ca8c3 | |||
| be8831b4b2 | |||
| fc87c053c3 | |||
| 10cc039460 | |||
| fd027dbdbd | |||
| 15eb9a9c13 | |||
| 2ded06bc5d | |||
| c5cdd0038e | |||
| 8bac98c29a | |||
| 421d8cc37d | |||
| c097434036 | |||
| e3cc4be1b8 | |||
| b5711f7e11 | |||
| 8f2649e3a7 | |||
| ab42c0f6e1 | |||
| 01eacd2932 | |||
| c25f22fe4f | |||
| fe3b800cab | |||
| ccde74bdb8 | |||
| ab6f469811 | |||
| f92b70d38c | |||
| e89338342a | |||
| 62ca262aec | |||
| eb5a84d420 | |||
| 3280bcc5ff | |||
| 5c5f72659c | |||
| b9789ae25c | |||
| 58e56cff88 | |||
| 4b532ac11e | |||
| a7f16eee3f | |||
| fff2558083 | |||
| 944b7d0e9c | |||
| 7022001dbe | |||
| 0ab9444676 | |||
| 0795565e07 | |||
| 3cf31edae2 | |||
| 8b356090d9 | |||
| 9f3be6e604 | |||
| 0e6522f867 | |||
| 3cbe6fa1d8 | |||
| bb5588f182 | |||
| 45a6a08559 | |||
| e1cb42f253 | |||
| dde19b8716 | |||
| 906788fe88 | |||
| 69b019f03c | |||
| 9de1c93ef9 | |||
| c4f478160b | |||
| 054535f0c8 | |||
| 16b9c2be67 | |||
| 4a591d552b | |||
| 576a1138d3 | |||
| 50ef339f16 | |||
| 0385bbcb9b | |||
| 20a5d6cd69 | |||
| 34a1f57e50 | |||
| 5245fbb38e | |||
| 937c91f314 | |||
| d90f1cdc30 | |||
| 8c82667ae1 | |||
| 3085c15caf | |||
| 2e37df7103 | |||
| 9a75b6628b | |||
| 405d8d4399 | |||
| 56dda5590b | |||
| 86046383a8 | |||
| f907fe119a | |||
| 14ced3377a | |||
| ad690d8a16 | |||
| 1c830a0be1 | |||
| ee89717b47 | |||
| 6cfef151da | |||
| 8d2a6d2596 | |||
| f225453ff1 | |||
| 209eb580cf | |||
| 3103cff7f7 | |||
| 138884b545 | |||
| 1489a4e748 | |||
| 1a7fb9c008 | |||
| 6506a3a45e | |||
| 3913ca9c0c | |||
| 4e03602bd6 | |||
| a2e08864c4 | |||
| 14563943ed | |||
| 5e91783620 | |||
| cde01cf27b | |||
| 6d0b674c30 | |||
| e42c774cd4 | |||
| b46eabc2af | |||
| 2c6e08247f | |||
| 32ab62f5dd | |||
| 003ac717d8 | |||
| e4089d2dce | |||
| 4076bc8ae9 | |||
| 13831d4c39 | |||
| 33552beb80 | |||
| 0da702db49 | |||
| 9d8329c766 | |||
| efc671e647 | |||
| b2456f5a16 | |||
| 2ad7cebd7a | |||
| 72a6d5d347 | |||
| c34b2da03b | |||
| bd943f16a1 | |||
| 26046d3b15 | |||
| 9ebe782866 | |||
| 327f6a32d5 | |||
| a78af4ad86 | |||
| 495d980277 | |||
| 07ab2c9e52 | |||
| c48e102658 | |||
| 53f2d81f88 | |||
| 14ed5f4f76 | |||
| a53b06834d | |||
| e5d8581a7e | |||
| 325a349092 | |||
| bb0a201e2a | |||
| ba48755589 | |||
| d6cf8b37ab | |||
| 0e0ae03baa | |||
| 5d59d32634 | |||
| 06366a8f8f | |||
| be8f94443f | |||
| 61e1e025ce | |||
| 3837df39be | |||
| 850fc555e2 | |||
| dacbf5515e | |||
| 147e46dbee | |||
| 1ce2f2b2ce | |||
| 4242ff838e | |||
| 4133172fab | |||
| f69768bad9 | |||
| f39d53cbac | |||
| c275244741 | |||
| 3b1161c2a4 | |||
| 5573b3c2dc | |||
| d6ca5e6992 | |||
| 952e29e737 | |||
| 52fba62616 |
Vendored
+6
@@ -186,6 +186,12 @@
|
||||
"foreground": "#ffffff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "renpy.meta.color.#f00",
|
||||
"settings": {
|
||||
"foreground": "#f00"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "text.notes.info",
|
||||
"settings": {
|
||||
|
||||
@@ -8,13 +8,15 @@ import sys
|
||||
|
||||
from renpy import version_tuple # @UnresolvedImport
|
||||
|
||||
branch = os.popen("git branch --show-current").read().strip()
|
||||
|
||||
SOURCE = [
|
||||
"/home/tom/ab/renpy",
|
||||
"/home/tom/ab/renpy-build",
|
||||
"/home/tom/ab/renpy-build-" + branch,
|
||||
"/home/tom/ab/pygame_sdl2",
|
||||
"/home/tom/ab/renpy-build/renpyweb",
|
||||
]
|
||||
|
||||
|
||||
from renpy.versions import generate_vc_version
|
||||
|
||||
version = generate_vc_version()["version"]
|
||||
@@ -22,6 +24,9 @@ short_version = version.rpartition(".")[0]
|
||||
major = version.partition(".")[0]
|
||||
print("Version", version)
|
||||
|
||||
if major == '7':
|
||||
SOURCE.append("/home/tom/ab/renpy-build-fix/renpyweb")
|
||||
|
||||
ap = argparse.ArgumentParser()
|
||||
|
||||
ap.add_argument("--release", action="store_true")
|
||||
|
||||
+1
-1
@@ -252,7 +252,7 @@ def main():
|
||||
"-q",
|
||||
"egg_info",
|
||||
"--tag-build",
|
||||
"+renpy" + args.version,
|
||||
"+renpy" + args.version.replace("+", "-"),
|
||||
"sdist",
|
||||
"-d",
|
||||
os.path.abspath(destination)
|
||||
|
||||
+1
-1
@@ -328,7 +328,7 @@ define gui.vbar_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.
|
||||
define gui.vscrollbar_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.scale(4))
|
||||
define gui.vslider_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.scale(4))
|
||||
|
||||
## What to do with unscrollable scrollbars in the gui. "hide" hides them, while
|
||||
## What to do with unscrollable scrollbars in the game menu. "hide" hides them, while
|
||||
## None shows them.
|
||||
define gui.unscrollable = "hide"
|
||||
|
||||
|
||||
@@ -96,7 +96,6 @@ style frame:
|
||||
## https://www.renpy.org/doc/html/screen_special.html#say
|
||||
|
||||
screen say(who, what):
|
||||
style_prefix "say"
|
||||
|
||||
window:
|
||||
id "window"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -1100,12 +1100,14 @@ fix_dlc("renios", "renios")
|
||||
|
||||
prefix = py("lib/py{major}-")
|
||||
|
||||
if os.path.exists(linux_i686):
|
||||
i686fn = os.path.join(config.renpy_base, prefix + "linux-i686/renpy")
|
||||
|
||||
if os.path.exists(i686fn):
|
||||
|
||||
self.add_file(
|
||||
linux_i686,
|
||||
prefix + "linux-i686/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, prefix + "linux-i686/renpy"),
|
||||
i686fn,
|
||||
True)
|
||||
|
||||
self.add_file(
|
||||
@@ -1531,7 +1533,8 @@ fix_dlc("renios", "renios")
|
||||
|
||||
update = { variant : { "version" : self.update_versions[variant], "base_name" : self.base_name, "files" : update_files, "directories" : update_directories, "xbit" : update_xbit } }
|
||||
|
||||
update_fn = os.path.join(self.destination, filename + ".update.json")
|
||||
update_fn = self.temp_filename(filename + ".update.json")
|
||||
|
||||
|
||||
if self.include_update and not format.startswith("app-"):
|
||||
|
||||
@@ -1565,9 +1568,11 @@ fix_dlc("renios", "renios")
|
||||
in this thread or a background thread.
|
||||
"""
|
||||
|
||||
if self.include_update and not self.build_update and not dlc:
|
||||
final_update_fn = os.path.join(self.destination, filename + ".update.json")
|
||||
|
||||
if self.build_update or dlc:
|
||||
if os.path.exists(update_fn):
|
||||
os.unlink(update_fn)
|
||||
shutil.copy(update_fn, final_update_fn)
|
||||
|
||||
if not directory:
|
||||
file_hash = hash_file(path)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -216,7 +216,7 @@ screen front_page_project:
|
||||
|
||||
textbutton _("Android") action Jump("android")
|
||||
textbutton _("iOS") action Jump("ios")
|
||||
textbutton _("Web") + " " + _("(Beta)") action Jump("web")
|
||||
textbutton _("Web") action Jump("web")
|
||||
textbutton _("Generate Translations") action Jump("translate")
|
||||
textbutton _("Extract Dialogue") action Jump("extract_dialogue")
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -172,7 +172,7 @@ class CodeGenerator(object):
|
||||
|
||||
for l in self.lines:
|
||||
|
||||
m = re.match('^(\s*)define (.*?) =', l)
|
||||
m = re.match(r'^(\s*)define (.*?) =', l)
|
||||
|
||||
if m:
|
||||
indent = m.group(1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -169,7 +169,7 @@ def _check_hash(filename, hashj):
|
||||
download_file = ""
|
||||
download_url = ""
|
||||
|
||||
def download(url, filename, hash=None):
|
||||
def download(url, filename, hash=None, headers=None, requests_kwargs={}):
|
||||
"""
|
||||
Downloads `url` to `filename`, a tempfile.
|
||||
"""
|
||||
@@ -188,9 +188,13 @@ def download(url, filename, hash=None):
|
||||
|
||||
progress_time = time.time()
|
||||
|
||||
all_headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36 renpy/8'}
|
||||
if headers:
|
||||
all_headers.update(headers)
|
||||
|
||||
try:
|
||||
|
||||
response = requests.get(url, stream=True, proxies=renpy.exports.proxies, timeout=15)
|
||||
response = requests.get(url, stream=True, proxies=renpy.exports.proxies, timeout=15, headers=all_headers, **requests_kwargs)
|
||||
response.raise_for_status()
|
||||
|
||||
total_size = int(response.headers.get('content-length', 1))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -33,6 +33,10 @@ init python in interface:
|
||||
DOC_URL = "http://www.renpy.org/doc/html/"
|
||||
DOC_LOCAL_URL = "file:///" + DOC_PATH
|
||||
|
||||
# If true, the launcher should not link back to renpy.org.
|
||||
NO_LAUNCHER_LINKS = os.path.exists(os.path.join(config.renpy_base, "no_launcher_links.txt"))
|
||||
|
||||
|
||||
local_doc_exists = os.path.exists(DOC_PATH)
|
||||
|
||||
def get_doc_url(page):
|
||||
@@ -40,7 +44,7 @@ init python in interface:
|
||||
Returns the URL to the documentation page.
|
||||
"""
|
||||
|
||||
if local_doc_exists and not persistent.use_web_doc:
|
||||
if local_doc_exists and (NO_LAUNCHER_LINKS or not persistent.use_web_doc):
|
||||
from urllib.parse import urljoin
|
||||
from urllib.request import pathname2url
|
||||
|
||||
@@ -117,7 +121,10 @@ screen bottom_info:
|
||||
hbox:
|
||||
spacing INDENT
|
||||
textbutton _("Documentation") style "l_link" action interface.OpenDocumentation()
|
||||
textbutton _("Ren'Py Website") style "l_link" action OpenURL(interface.RENPY_URL)
|
||||
|
||||
if not interface.NO_LAUNCHER_LINKS:
|
||||
textbutton _("Ren'Py Website") style "l_link" action OpenURL(interface.RENPY_URL)
|
||||
|
||||
textbutton _("[interface.version]") style "l_link" action Jump("about")
|
||||
|
||||
hbox:
|
||||
@@ -133,7 +140,7 @@ screen bottom_info:
|
||||
textbutton _("preferences") style "l_link" action Jump("preferences")
|
||||
textbutton _("quit") style "l_link" action Quit(confirm=False)
|
||||
|
||||
if persistent.sponsor_message:
|
||||
if persistent.sponsor_message and not interface.NO_LAUNCHER_LINKS:
|
||||
|
||||
textbutton _("Ren'Py Sponsor Information"):
|
||||
style "l_link"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -50,7 +50,7 @@ init python:
|
||||
pass
|
||||
|
||||
with interface.error_handling(_("Downloading the itch.io butler.")):
|
||||
url = "https://broth.itch.ovh/butler/{}/LATEST/archive/default".format(platform)
|
||||
url = "https://broth.itch.zone/butler/{}/LATEST/archive/default".format(platform)
|
||||
|
||||
response = requests.get(url, headers={'User-Agent' : "Renpy"}, proxies=renpy.proxies)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -301,6 +301,8 @@ init python:
|
||||
build.classify_renpy("**.new", None)
|
||||
build.classify_renpy("**.bak", None)
|
||||
|
||||
build.classify_renpy("**.keystore", None)
|
||||
|
||||
build.classify_renpy("**/log.txt", None)
|
||||
build.classify_renpy("**/traceback.txt", None)
|
||||
build.classify_renpy("**/errors.txt", None)
|
||||
@@ -408,9 +410,15 @@ init python:
|
||||
build.classify_renpy("module/libhydrogen/**", "source")
|
||||
|
||||
# all-platforms binary.
|
||||
build.classify_renpy("lib/**/libpython{}.{}.dll".format(sys.version_info.major, sys.version_info.minor), "binary")
|
||||
build.classify_renpy("lib/**/libpython*.dll", None)
|
||||
|
||||
build.classify_renpy("lib/**/*steam_api*", "steam")
|
||||
build.classify_renpy("lib/**/*Live2D*", None)
|
||||
|
||||
|
||||
libpython = "lib/python{}.{}".format(sys.version_info.major, sys.version_info.minor)
|
||||
|
||||
if PY2:
|
||||
build.classify_renpy("lib/py2-linux-armv7l/**", "linux_arm")
|
||||
build.classify_renpy("lib/py2-linux-aarch64/**", "linux_arm")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# screens.rpy:9
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
# game/editor.rpy:327
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
new "Ocorreu uma exceção ao executar o editor de texto:\[exception!q]"
|
||||
new "Ocorreu uma exceção ao executar o editor de texto:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:423
|
||||
old "Select Editor"
|
||||
|
||||
@@ -1874,7 +1874,7 @@
|
||||
|
||||
# game/androidstrings.rpy:43
|
||||
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please make sure you installed the 'JavaSoft (Oracle) registry keys'.\n\nWithout a working JDK, I can't continue."
|
||||
new "Не удалось использовать javac для компиляции тестового файла. Если вы еще не установили Java Development Kit, загрузите его с:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\JDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK. Пожалуйста, убедитесь, что вы установили 'переменные окружения JavaSoft (Oracle)'.\n\nБез работающего JDK я не могу продолжать."
|
||||
new "Не удалось использовать javac для компиляции тестового файла. Если вы еще не установили Java Development Kit, загрузите его с:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nJDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK. Пожалуйста, убедитесь, что вы установили 'переменные окружения JavaSoft (Oracle)'.\n\nБез работающего JDK я не могу продолжать."
|
||||
|
||||
# game/androidstrings.rpy:64
|
||||
old "I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place."
|
||||
|
||||
@@ -884,7 +884,7 @@ translate spanish strings:
|
||||
|
||||
# renpy/common/00sync.rpy:593
|
||||
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 "Puede usar esta ID para descargar su guardado en otro dispositivo.\nEsta sincronización caducará en una hora.\RenPy Sync está para {a=https://www.renpy.org/sponsors.html}los patrocinadores de Ren'Py{/a}."
|
||||
new "Puede usar esta ID para descargar su guardado en otro dispositivo.\nEsta sincronización caducará en una hora.\nRenPy Sync está para {a=https://www.renpy.org/sponsors.html}los patrocinadores de Ren'Py{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:619
|
||||
old "Sync Error"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# 00action_file.rpy:26
|
||||
@@ -155,7 +155,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00action_file.rpy:240
|
||||
old "%b %d, %H:%M"
|
||||
new "%b %d, %H:%M"
|
||||
new "%d %b, %H:%M"
|
||||
|
||||
# 00action_file.rpy:353
|
||||
old "Save slot %s: [text]"
|
||||
@@ -207,7 +207,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:708
|
||||
old "The interactive director is not enabled here."
|
||||
new "Інтерактивний режисер тут не ввімкнений."
|
||||
new "Інтерактивний режисер тут не ввімкнено."
|
||||
|
||||
# 00director.rpy:1481
|
||||
old "⬆"
|
||||
@@ -223,7 +223,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1561
|
||||
old "(statement)"
|
||||
new "(функція)"
|
||||
new "(оператор)"
|
||||
|
||||
# 00director.rpy:1562
|
||||
old "(tag)"
|
||||
@@ -235,7 +235,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1564
|
||||
old "(transform)"
|
||||
new "(трансформація)"
|
||||
new "(перетворення)"
|
||||
|
||||
# 00director.rpy:1589
|
||||
old "(transition)"
|
||||
@@ -247,7 +247,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1602
|
||||
old "(filename)"
|
||||
new "(ім’я файла)"
|
||||
new "(назва файлу)"
|
||||
|
||||
# 00director.rpy:1631
|
||||
old "Change"
|
||||
@@ -267,7 +267,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1674
|
||||
old "Statement:"
|
||||
new "Функція:"
|
||||
new "Оператор:"
|
||||
|
||||
# 00director.rpy:1695
|
||||
old "Tag:"
|
||||
@@ -279,7 +279,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1729
|
||||
old "Transforms:"
|
||||
new "Трансформації:"
|
||||
new "Перетворення:"
|
||||
|
||||
# 00director.rpy:1748
|
||||
old "Behind:"
|
||||
@@ -295,7 +295,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1803
|
||||
old "Audio Filename:"
|
||||
new "Ім’я аудіофайлу::"
|
||||
new "Назва аудіофайлу:"
|
||||
|
||||
# 00gui.rpy:370
|
||||
old "Are you sure?"
|
||||
@@ -311,7 +311,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00gui.rpy:373
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Завантаження гри приведе до втрати незбереженого прогресу.\nВи дійсно бажаєте це зробити?"
|
||||
new "Завантаження призведе до втрати незбереженого поступу.\nВи дійсно бажаєте продовжити?"
|
||||
|
||||
# 00gui.rpy:374
|
||||
old "Are you sure you want to quit?"
|
||||
@@ -319,7 +319,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00gui.rpy:375
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Ви дійсно бажаєте повернутися до головного меню?\nЦе призведе до втрати незбереженого прогресу."
|
||||
new "Ви дійсно бажаєте повернутися до головного меню?\nЦя дія призведе до втрати незбереженого поступу."
|
||||
|
||||
# 00gui.rpy:376
|
||||
old "Are you sure you want to end the replay?"
|
||||
@@ -331,7 +331,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00gui.rpy:378
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Ви дійсно бажаєте пропустити все до наступного вибору?"
|
||||
new "Ви дійсно бажаєте пропускати до наступного вибору?"
|
||||
|
||||
# 00gui.rpy:379
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
@@ -351,7 +351,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00library.rpy:147
|
||||
old "Clipboard voicing enabled. "
|
||||
new "Озвучення буфера обміну увімкнено."
|
||||
new "Озвучення буфера обміну ввімкнено."
|
||||
|
||||
# 00library.rpy:148
|
||||
old "Self-voicing enabled. "
|
||||
@@ -371,11 +371,11 @@ translate ukrainian strings:
|
||||
|
||||
# 00library.rpy:153
|
||||
old "horizontal scroll"
|
||||
new "горизонтальне прокручування"
|
||||
new "горизонтальна прокрутка"
|
||||
|
||||
# 00library.rpy:154
|
||||
old "vertical scroll"
|
||||
new "вертикальне прокручування"
|
||||
new "вертикальна прокрутка"
|
||||
|
||||
# 00library.rpy:155
|
||||
old "activate"
|
||||
@@ -411,7 +411,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:228
|
||||
old "skip transitions"
|
||||
new "пропустити переходи"
|
||||
new "пропускати переходи"
|
||||
|
||||
# 00preferences.rpy:230
|
||||
old "video sprites"
|
||||
@@ -423,7 +423,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:248
|
||||
old "text speed"
|
||||
new "швидкість тексту"
|
||||
new "швидкість друку тексту"
|
||||
|
||||
# 00preferences.rpy:256
|
||||
old "joystick"
|
||||
@@ -435,19 +435,19 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:263
|
||||
old "skip"
|
||||
new "пропустити"
|
||||
new "пропускати"
|
||||
|
||||
# 00preferences.rpy:266
|
||||
old "skip unseen [text]"
|
||||
new "пропустити весь [text]"
|
||||
new "пропускати весь [text]"
|
||||
|
||||
# 00preferences.rpy:271
|
||||
old "skip unseen text"
|
||||
new "пропускати увесь текст"
|
||||
new "пропускати весь текст"
|
||||
|
||||
# 00preferences.rpy:273
|
||||
old "begin skipping"
|
||||
new "почати пропускати"
|
||||
new "почати пропуск"
|
||||
|
||||
# 00preferences.rpy:277
|
||||
old "after choices"
|
||||
@@ -471,7 +471,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:310
|
||||
old "auto-forward after click"
|
||||
new "перемотка після дотику"
|
||||
new "перемотка після клацу"
|
||||
|
||||
# 00preferences.rpy:319
|
||||
old "automatic move"
|
||||
@@ -479,7 +479,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:328
|
||||
old "wait for voice"
|
||||
new "чекати голос"
|
||||
new "чекати на голос"
|
||||
|
||||
# 00preferences.rpy:337
|
||||
old "voice sustain"
|
||||
@@ -495,7 +495,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:364
|
||||
old "debug voicing"
|
||||
new "режим налагодження синтезу мови"
|
||||
new "налагоджувальне озвучення"
|
||||
|
||||
# 00preferences.rpy:373
|
||||
old "emphasize audio"
|
||||
@@ -507,7 +507,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:392
|
||||
old "gl powersave"
|
||||
new "економія енергії"
|
||||
new "енергозбереження"
|
||||
|
||||
# 00preferences.rpy:398
|
||||
old "gl framerate"
|
||||
@@ -523,7 +523,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:414
|
||||
old "sound volume"
|
||||
new "гучність звук. ефектів"
|
||||
new "гучність звукових ефектів"
|
||||
|
||||
# 00preferences.rpy:415
|
||||
old "voice volume"
|
||||
@@ -535,7 +535,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:417
|
||||
old "mute sound"
|
||||
new "без звук. ефектів"
|
||||
new "без звукових ефектів"
|
||||
|
||||
# 00preferences.rpy:418
|
||||
old "mute voice"
|
||||
@@ -547,19 +547,19 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:500
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "Озвучення буфера обміну увімкнено. Натисніть 'shift+C', щоб вимкнути."
|
||||
new "Озвучення буфера обміну ввімкнено. Натисніть «Shift+C», щоб вимкнути."
|
||||
|
||||
# 00preferences.rpy:502
|
||||
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Синтез мовлення має сказати \"[renpy.display.tts.last]\". Натисніть 'alt+shift+V', щоб вимкнути."
|
||||
new "Синтез мовлення сказав би «[renpy.display.tts.last]». Натисніть «Alt+Shift+V», щоб вимкнути."
|
||||
|
||||
# 00preferences.rpy:504
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Синтез мовлення увімкнено. Натисніть 'v', щоб вимкнути його."
|
||||
new "Синтез мовлення увімкнено. Натисніть «V», щоб вимкнути."
|
||||
|
||||
# _compat\gamemenu.rpym:198
|
||||
old "Empty Slot."
|
||||
new "Порожній комірка."
|
||||
new "Порожня комірка."
|
||||
|
||||
# _compat\gamemenu.rpym:355
|
||||
old "Previous"
|
||||
@@ -595,7 +595,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:51
|
||||
old "Image Location Picker"
|
||||
new "Вибір розташування зображень"
|
||||
new "Вибирач розташування зображень"
|
||||
|
||||
# _developer\developer.rpym:53
|
||||
old "Filename List"
|
||||
@@ -603,15 +603,15 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:57
|
||||
old "Show Image Load Log (F4)"
|
||||
new "Показати журнал завант. зображень (F4)"
|
||||
new "Показати панель завантаження зображень (F4)"
|
||||
|
||||
# _developer\developer.rpym:60
|
||||
old "Hide Image Load Log (F4)"
|
||||
new "Сховати журнал завант. зображень (F4)"
|
||||
new "Сховати панель завантаження зображень (F4)"
|
||||
|
||||
# _developer\developer.rpym:63
|
||||
old "Image Attributes"
|
||||
new "Атрибути зображення"
|
||||
new "Атрибути зображень"
|
||||
|
||||
# _developer\developer.rpym:90
|
||||
old "[name] [attributes] (hidden)"
|
||||
@@ -639,7 +639,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:435
|
||||
old "Right-click or escape to quit."
|
||||
new "Натисніть ПКМ або Escape, щоб вийти."
|
||||
new "Натисніть ПКМ або ESC, щоб вийти."
|
||||
|
||||
# _developer\developer.rpym:467
|
||||
old "Rectangle copied to clipboard."
|
||||
@@ -655,11 +655,11 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:617
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
new "Текстури: [tex_count] ([tex_size_mb:.1f] Мб)"
|
||||
new "Текстури: [tex_count] ([tex_size_mb:.1f] МБ)"
|
||||
|
||||
# _developer\developer.rpym:621
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
new "Кеш зображень: [cache_pct:.1f]% ([cache_size_mb:.1f] Мб)"
|
||||
new "Кеш зображень: [cache_pct:.1f]% ([cache_size_mb:.1f] МБ)"
|
||||
|
||||
# _developer\developer.rpym:631
|
||||
old "✔ "
|
||||
@@ -671,7 +671,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:639
|
||||
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
new "\n{color=#cfc}✔ передбачене зображення (добре){/color}\n{color=#fcc}✘ раптове зображення (погано){/color}\n{color=#fff}Перетягніть, щоб перемістити.{/color}"
|
||||
new "\n{color=#cfc}✔ передбачене зображення (добре){/color}\n{color=#fcc}✘ непередбачене зображення (погано){/color}\n{color=#fff}Перетягніть для пересування.{/color}"
|
||||
|
||||
# _developer\inspector.rpym:38
|
||||
old "Displayable Inspector"
|
||||
@@ -699,7 +699,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\inspector.rpym:145
|
||||
old " (no properties affect the displayable)"
|
||||
new " (на об’єкт не впливають жодні параметри)"
|
||||
new " (на об’єкт не впливають жодні властивості)"
|
||||
|
||||
# _developer\inspector.rpym:147
|
||||
old " (default properties omitted)"
|
||||
@@ -767,7 +767,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00updater.rpy:1452
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "[u.version] доступно. Бажаєте її встановити?"
|
||||
new "[u.version] доступно. Бажаєте її установити?"
|
||||
|
||||
# 00updater.rpy:1454
|
||||
old "Preparing to download the updates."
|
||||
@@ -783,7 +783,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00updater.rpy:1462
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Оновлення встановлено. Програма буде перезапущена."
|
||||
new "Оновлення було встановлено. Програму буде перезапущено."
|
||||
|
||||
# 00updater.rpy:1464
|
||||
old "The updates have been installed."
|
||||
@@ -823,11 +823,11 @@ translate ukrainian strings:
|
||||
|
||||
# 00accessibility.rpy:76
|
||||
old "Font Override"
|
||||
new "Замінити шрифт"
|
||||
new "Перевизначення шрифту"
|
||||
|
||||
# 00accessibility.rpy:80
|
||||
old "Default"
|
||||
new "Стандратний"
|
||||
new "Стандартний"
|
||||
|
||||
# 00accessibility.rpy:84
|
||||
old "DejaVu Sans"
|
||||
@@ -859,7 +859,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00accessibility.rpy:125
|
||||
old "Text-to-speech"
|
||||
new "Перетворення тексту в мовлення"
|
||||
new "Текст-у-мовлення"
|
||||
|
||||
# 00accessibility.rpy:129
|
||||
old "Clipboard"
|
||||
@@ -879,7 +879,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:191
|
||||
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 "Параметри цього меню призначені для покращення доступності. Вони можуть працювати не з усіма іграми, а деякі комбінації параметрів можуть зробити гру неможливою для гри. Це не є проблемою гри або рушія. Для досягнення найкращих результатів при зміні шрифтів намагайтеся зберігати розмір тексту таким, яким він був спочатку."
|
||||
new "Параметри цього меню призначені для покращення доступності. Вони можуть працювати не з усіма іграми, а деякі комбінації параметрів можуть зробити гру неможливою для гри. Це не є проблемою гри або рушія. Для отримання кращих результатів при зміні шрифтів намагайтеся зберігати розмір тексту таким, яким він був спочатку."
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing Volume Drop"
|
||||
@@ -919,7 +919,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00preferences.rpy:535
|
||||
old "mute main"
|
||||
new "без основи"
|
||||
new "без основної гучності"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
@@ -941,11 +941,11 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00director.rpy:1768
|
||||
old "Click to set transform, right click to add to transform list."
|
||||
new "Натисніть, щоб встановити трансформацію, натисніть ПКМ, щоб додати до списку трансформацій."
|
||||
new "Натисніть, щоб установити перетворення, клацніть ПКМ, щоб додати до списку перетворень."
|
||||
|
||||
# renpy/common/00director.rpy:1789
|
||||
old "Click to set, right click to add to behind list."
|
||||
new "Натисніть, щоб встановити, натисніть ПКМ, щоб додати до списку."
|
||||
new "Натисніть, щоб установити, клацніть ПКМ, щоб додати до списку."
|
||||
|
||||
# renpy/common/00gui.rpy:456
|
||||
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?"
|
||||
@@ -953,7 +953,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00gui.rpy:457
|
||||
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 "Чи довіряєте ви пристрою, на якому було створено збереження? Ви повинні вибрати «Так», тільки якщо ви є єдиним користувачем пристрою."
|
||||
new "Чи довіряєте ви пристрою, на якому було створено збереження? Ви повинні натиснути «Так», лише якщо ви є єдиним користувачем пристрою."
|
||||
|
||||
# renpy/common/00preferences.rpy:528
|
||||
old "audio when unfocused"
|
||||
@@ -961,7 +961,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00preferences.rpy:537
|
||||
old "web cache preload"
|
||||
new "попер. завантаження вебкешу"
|
||||
new "попереднє завантаження вебкешу"
|
||||
|
||||
# renpy/common/00preferences.rpy:552
|
||||
old "voice after game menu"
|
||||
@@ -973,7 +973,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00speechbubble.rpy:349
|
||||
old "(hide)"
|
||||
new "(приховати)"
|
||||
new "(сховати)"
|
||||
|
||||
# renpy/common/00sync.rpy:70
|
||||
old "Sync downloaded."
|
||||
@@ -985,7 +985,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00sync.rpy:192
|
||||
old "The Ren'Py Sync server timed out."
|
||||
new "Сервер Ren'Py Sync вийшов з ладу."
|
||||
new "Час під’єднання до Ren'Py Sync закінчився."
|
||||
|
||||
# renpy/common/00sync.rpy:194
|
||||
old "An unknown error occurred while connecting to the Ren'Py Sync server."
|
||||
@@ -993,11 +993,11 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00sync.rpy:267
|
||||
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 не має копії цієї синхронізації. Ідентифікатор синхронізації може бути недійсним або його термін дії закінчився."
|
||||
new "Сервер Ren'Py Sync не має копії цієї синхронізації. Ідентифікатор синхронізації може бути недійсним або термін його дії закінчився."
|
||||
|
||||
# renpy/common/00sync.rpy:409
|
||||
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
|
||||
new "Будь ласка, введіть згенерований вами ідентифікатор синхронізації.\nНіколи не вводьте ідентифікатор синхронізації, який ви не створювали."
|
||||
new "Введіть згенерований вами ідентифікатор синхронізації.\nНіколи не вводьте не створений вами ідентифікатор синхронізації."
|
||||
|
||||
# renpy/common/00sync.rpy:428
|
||||
old "The sync ID is not in the correct format."
|
||||
@@ -1013,19 +1013,19 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00sync.rpy:476
|
||||
old "The sync contains a file with an invalid name."
|
||||
new "Синхронізація містить файл з невірною назвою."
|
||||
new "Синхронізація містить файл з недійсною назвою."
|
||||
|
||||
# renpy/common/00sync.rpy:529
|
||||
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Бажаєте продовжити?"
|
||||
new "Ця дія вивантажить ваші збереження на {a=https://sync.renpy.org}сервер Ren'Py Sync{/a}.\nБажаєте продовжити?"
|
||||
|
||||
# renpy/common/00sync.rpy:558
|
||||
old "Enter Sync ID"
|
||||
new "Уведіть ідентифікатор синхронізації"
|
||||
new "Введіть ідентифікатор синхронізації"
|
||||
|
||||
# renpy/common/00sync.rpy:569
|
||||
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}."
|
||||
new "Ця дія зв’яжеться зі {a=https://sync.renpy.org}сервером Ren'Py Sync{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:596
|
||||
old "Sync Success"
|
||||
@@ -1047,7 +1047,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:120
|
||||
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
|
||||
new "Меню доступності. Використовуйте стрілки вгору та вниз для навігації, а клавішу «Enter» для активації кнопок та панелей."
|
||||
new "Меню доступності. Використовуйте стрілки вгору та вниз для навігації, а клавішу Enter для взаємодії між кнопками та смуг."
|
||||
|
||||
# renpy/common/00accessibility.rpy:197
|
||||
old "Self-voicing support is limited when using a touch screen."
|
||||
@@ -1055,19 +1055,19 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00director.rpy:1776
|
||||
old "Customize director.transforms to add more transforms."
|
||||
new "Налаштуйте director.transforms, щоб додати більше перетворень."
|
||||
new "Налаштуйте «director.transforms», щоб додати більше перетворень."
|
||||
|
||||
# renpy/common/00director.rpy:1821
|
||||
old "Click to set."
|
||||
new "Клацніть для установлення."
|
||||
new "Клацніть, щоб установити."
|
||||
|
||||
# renpy/common/00director.rpy:1822
|
||||
old "Customize director.transitions to add more transitions."
|
||||
new "Налаштуйте director.transitions, щоб додати більше переходів."
|
||||
new "Налаштуйте «director.transitions», щоб додати більше переходів."
|
||||
|
||||
# renpy/common/00director.rpy:1845
|
||||
old "Customize director.audio_channels to add more channels."
|
||||
new "Налаштуйте director.audio_channels, щоб додати більше каналів."
|
||||
new "Налаштуйте «director.audio_channels», щоб додати більше каналів."
|
||||
|
||||
# renpy/common/00gui.rpy:454
|
||||
old "Are you sure you want to continue where you left off?"
|
||||
@@ -1139,8 +1139,18 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
old "This game cannot be run until the game data has been downloaded."
|
||||
new "Цю гру не можна запустити, доки не будуть завантажені дані гри."
|
||||
new "Цю гру не можна буде запустити, доки не будуть завантажені дані гри."
|
||||
|
||||
# renpy/common/00updater.rpy:2090
|
||||
old "Retry"
|
||||
new "Повторити"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# 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]"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# 00console.rpy:255
|
||||
@@ -89,8 +89,6 @@ translate ukrainian strings:
|
||||
old "stack: print the return stack"
|
||||
new "stack: вивести стек повернення"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:51
|
||||
old "Persistent Viewer"
|
||||
new "Переглядач даних"
|
||||
@@ -99,15 +97,13 @@ translate ukrainian strings:
|
||||
old "Speech Bubble Editor (Shift+B)"
|
||||
new "Редактор мовних бульбашок (Shift+B)"
|
||||
|
||||
# renpy/common/00console.rpy:789
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
new "help: показує цю довідку\n help <вираз>: показує підпис та документацію <виразу>"
|
||||
# renpy/common/_developer/developer.rpym:70
|
||||
old "Show Translation Info"
|
||||
new "Показати відомості про переклад"
|
||||
|
||||
# renpy/common/00console.rpy:813
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
new "У довідці можуть бути недокументовані функції. Будь ласка, перевірте, чи функцію або\nклас, який бажаєте використати, задокументовано.\n\n"
|
||||
|
||||
translate ukrainian strings:
|
||||
# renpy/common/_developer/developer.rpym:73
|
||||
old "Hide Translation Info"
|
||||
new "Сховати відомості про переклад"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:69
|
||||
old "Show Translation Identifiers"
|
||||
@@ -143,8 +139,20 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:612
|
||||
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
|
||||
new "\n{color=#fff}Клацніть для копіювання.\nПеретягнуть для пересування.{/color}"
|
||||
new "\n{color=#fff}Клацніть для копіювання.\nПеретягніть для пересування.{/color}"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:657
|
||||
old "Click to open in editor."
|
||||
new "Клацніть, щоб відкрити в редакторі."
|
||||
|
||||
# renpy/common/00console.rpy:725
|
||||
old "The console is using short representations. To disable this, type 'long', and to re-enable, type 'short'"
|
||||
new "Консоль використовує короткі представлення. Щоб вимкнути це, введіть 'long', а щоб увімкнути, введіть 'short'"
|
||||
|
||||
# renpy/common/00console.rpy:789
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
new "help: показує цю довідку\n help <вираз>: показує підпис та документацію <виразу>"
|
||||
|
||||
# renpy/common/00console.rpy:813
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
new "У довідці можуть бути недокументовані функції. Будь ласка, перевірте, чи бажана функція або\nклас задокументовано.\n\n"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# 00gltest.rpy:70
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/gui.rpy:2
|
||||
@@ -13,6 +13,10 @@ translate ukrainian strings:
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## Виклик gui.init скидає стилі до розумних значень за замовчуванням і встановлює ширину та висоту гри."
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
new "## Увімкнути перевірку недійсних або нестабільних властивостей в екранах або перетвореннях"
|
||||
|
||||
# gui/game/gui.rpy:17
|
||||
old "## GUI Configuration Variables"
|
||||
new "## Змінні конфігурації GUI"
|
||||
@@ -357,6 +361,10 @@ translate ukrainian strings:
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## Положення, ширина та вирівнювання мітки, що вказує ім’я персонажа, що говорить."
|
||||
|
||||
# gui/game/gui.rpy:347
|
||||
old "## Additional space to add between history screen entries."
|
||||
new "## Додатковий простір для додавання між записами на екрані «Історія»."
|
||||
|
||||
# gui/game/gui.rpy:352
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## Позиція, ширина та вирівнювання тексту діалогу."
|
||||
@@ -432,15 +440,3 @@ translate ukrainian strings:
|
||||
# gui/game/gui.rpy:461
|
||||
old "## NVL-mode."
|
||||
new "## NVL-режим."
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
new "## Увімкнути перевірку недійсних або нестабільних властивостей в екранах або перетвореннях"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/gui.rpy:347
|
||||
old "## Additional space to add between history screen entries."
|
||||
new "## Додатковий простір для додавання між записами на екрані «Історія»."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/about.rpy:39
|
||||
@@ -19,7 +19,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/add_file.rpy:37
|
||||
old "The file name may not be empty."
|
||||
new "Назва файлу не може бути пустою"
|
||||
new "Назва файлу не може бути пустою."
|
||||
|
||||
# game/add_file.rpy:41
|
||||
old "The filename must have the .rpy extension."
|
||||
@@ -27,7 +27,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/add_file.rpy:50
|
||||
old "The file already exists."
|
||||
new "Файл вже існує."
|
||||
new "Файл уже існує."
|
||||
|
||||
# game/add_file.rpy:61
|
||||
old "# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n"
|
||||
@@ -47,11 +47,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:37
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Створіть новий ключ або відновіть android.keystore."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Створіть новий ключ або відновіть файл «android.keystore»."
|
||||
|
||||
# game/android.rpy:38
|
||||
old "RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore."
|
||||
new "RAPT встановлено, але пакет ключів не налаштовано. Створіть новий ключ або відновіть bundle.keystore."
|
||||
new "RAPT встановлено, але пакет ключів не налаштовано. Створіть новий ключ або відновіть файл «bundle.keystore»."
|
||||
|
||||
# game/android.rpy:39
|
||||
old "The current project has not been configured. Use \"Configure\" to configure it before building."
|
||||
@@ -59,7 +59,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:40
|
||||
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
|
||||
new "Виберіть, чи бажаєте ви мати Play Bundle (для Google Play) чи універсальний APK (для стороннього завантаження та інших крамниць застосунків)."
|
||||
new "Оберіть, чи бажаєте ви зібрати Play Bundle (для Google Play) чи універсальний APK (для стороннього завантаження та інших крамниць застосунків)."
|
||||
|
||||
# game/android.rpy:41
|
||||
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
|
||||
@@ -75,11 +75,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:45
|
||||
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Спробує емулювати телевізійну приставку Android, як OUYA або Fire TV.\n\nВведення контролера налаштовано з клавішами зі стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
new "Спробує емулювати телевізійну приставку Android, як OUYA або Fire TV.\n\nВведення контролера налаштовано з клавішами стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
|
||||
# game/android.rpy:47
|
||||
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
|
||||
new "Завантажує та встановлює Android SDK і пакети підтримки. Додатково генерує ключі, необхідні для підписання пакета."
|
||||
new "Завантажує та встановлює Android SDK й пакети підтримки. Додатково генерує ключі, необхідні для підписання пакета."
|
||||
|
||||
# game/android.rpy:48
|
||||
old "Configures the package name, version, and other information about this project."
|
||||
@@ -99,7 +99,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:52
|
||||
old "Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device."
|
||||
new "Збирає пакет для Android, встановлює його на пристрій Android, підʼєднаний до вашого ПК, а потім запускає застосунок на пристрої Android."
|
||||
new "Збирає пакет Android, встановлює його на пристрій Android, підʼєднаний до вашого ПК, а потім запускає застосунок на пристрої."
|
||||
|
||||
# game/android.rpy:54
|
||||
old "Retrieves the log from the Android device and writes it to a file."
|
||||
@@ -115,7 +115,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:57
|
||||
old "Connects to a device over Wi-Fi, on Android 11+."
|
||||
new "Підключається до пристрою через Wi-Fi, на Android 11+."
|
||||
new "Під’єднується до пристрою через Wi-Fi, на Android 11+."
|
||||
|
||||
# game/android.rpy:58
|
||||
old "Disconnects a device connected over Wi-Fi."
|
||||
@@ -135,7 +135,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:266
|
||||
old "Copying Android files to distributions directory."
|
||||
new "Копіювання файлів Android до теки розповсюдження."
|
||||
new "Копіювання файлів Android до теки файлів розповсюдження."
|
||||
|
||||
# game/android.rpy:335
|
||||
old "Android: [project.current.display_name!q]"
|
||||
@@ -191,7 +191,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:427
|
||||
old "Force Recompile"
|
||||
new "Перекомпілювати"
|
||||
new "Перекомпілювати проєкт"
|
||||
|
||||
# game/android.rpy:444
|
||||
old "Other:"
|
||||
@@ -239,7 +239,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:576
|
||||
old "Pairing Host & Port"
|
||||
new "З’єднання хоста та порту"
|
||||
new "З’єднання хоста та порт"
|
||||
|
||||
# game/android.rpy:592
|
||||
old "IP Address & Port"
|
||||
@@ -267,7 +267,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:10
|
||||
old "Run configure before attempting to build the app."
|
||||
new "Запустіть конфігурацію перед тим, як спробувати зібрати застосунок."
|
||||
new "Запустіть конфігурацію перед зібранням застосунок."
|
||||
|
||||
# game/androidstrings.rpy:11
|
||||
old "Updating project."
|
||||
@@ -295,7 +295,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:17
|
||||
old "Installing the bundle appears to have failed."
|
||||
new "Не вдалося встановити пакет."
|
||||
new "Не вдалося установити пакет."
|
||||
|
||||
# game/androidstrings.rpy:18
|
||||
old "Launching app."
|
||||
@@ -319,7 +319,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:23
|
||||
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
|
||||
new "Як назва пакета?\n\nЗазвичай назва має вигляд com.domain.program або com.domain.email.program. Вона може містити лише літери ASCII та крапки. Принаймні одна крапка має бути обов’язково."
|
||||
new "Як назва пакета?\n\nЗазвичай назва має вигляд «com.domain.program» або «com.domain.email.program». Вона може містити лише літери ASCII та крапки. Принаймні одна крапка має бути обов’язково."
|
||||
|
||||
# game/androidstrings.rpy:24
|
||||
old "The package name may not be empty."
|
||||
@@ -363,7 +363,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:34
|
||||
old "How would you like your application to be displayed?"
|
||||
new "Як би ви хотіли, щоб ваш додаток відображався?"
|
||||
new "Як би ви хотіли, щоб ваш застосунок відображався?"
|
||||
|
||||
# game/androidstrings.rpy:35
|
||||
old "In landscape orientation."
|
||||
@@ -455,15 +455,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:58
|
||||
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
|
||||
new "Створення ключа у файлі android.keystore.\n\nВам потрібно створити резервну копію цього файлу. Якщо ви його втратите, ви не зможете оновити ваш застосунок.\n\nВам також потрібно зберігати ключ у безпеці. Якщо зловмисники отримають цей файл, вони зможуть створити підроблені версії вашого застосунка і, можливо, викрасти дані ваших користувачів.\n\nБажаєте зробити резервну копію android.keystore і зберегти її у безпечному місці?"
|
||||
new "Створення ключа у файлі «android.keystore».\n\nВам потрібно створити резервну копію цього файлу. Якщо ви його втратите, ви не зможете оновити ваш застосунок.\n\nВам також потрібно зберігати ключ у безпеці. Якщо зловмисники отримають цей файл, вони зможуть створити підроблені версії вашого застосунка і, можливо, викрасти дані ваших користувачів.\n\nБажаєте зробити резервну копію «android.keystore» і зберегти її у безпечному місці?"
|
||||
|
||||
# game/androidstrings.rpy:59
|
||||
old "Could not create android.keystore. Is keytool in your path?"
|
||||
new "Не вдалося створити android.keystore. Чи є keytool у вашому шляху?"
|
||||
new "Не вдалося створити «android.keystore». Чи є «keytool» у вашому шляху?"
|
||||
|
||||
# game/androidstrings.rpy:60
|
||||
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
|
||||
new "Створення android.keystore завершено. Будь ласка, створіть резервну копію та збережіть її у безпечному місці."
|
||||
new "Створення «android.keystore» завершено. Будь ласка, створіть резервну копію та збережіть його у безпечному місці."
|
||||
|
||||
# game/androidstrings.rpy:61
|
||||
old "I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?"
|
||||
@@ -471,15 +471,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:62
|
||||
old "I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?"
|
||||
new "Буде створено ключ у файлі bundle.keystore.\n\nВам потрібно створити резервну копію цього файлу. Якщо ви його втратите, ви не зможете оновити ваш застосунок.\n\nВам також потрібно зберігати ключ у безпеці. Якщо зловмисники отримають цей файл, вони зможуть створити підроблені версії вашого застосунка і, можливо, викрасти дані ваших користувачів.\n\nБажаєте зробити резервну копію bundle.keystore і зберегти її у безпечному місці?"
|
||||
new "Буде створено ключ у файлі «bundle.keystore».\n\nВам потрібно створити резервну копію цього файлу. Якщо ви його втратите, ви не зможете оновити ваш застосунок.\n\nВам також потрібно зберігати ключ у безпеці. Якщо зловмисники отримають цей файл, вони зможуть створити підроблені версії вашого застосунка і, можливо, викрасти дані ваших користувачів.\n\nБажаєте зробити резервну копію «bundle.keystore» і зберегти її у безпечному місці?"
|
||||
|
||||
# game/androidstrings.rpy:63
|
||||
old "Could not create bundle.keystore. Is keytool in your path?"
|
||||
new "Не вдалося створити bundle.keystore. Чи є keytool у вашому шляху?"
|
||||
new "Не вдалося створити «bundle.keystore». Чи є «keytool» у вашому шляху?"
|
||||
|
||||
# game/androidstrings.rpy:64
|
||||
old "I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place."
|
||||
new "Відкрито теку, що містить android.keystore та bundle.keystore. Будь ласка, створіть їх резервну копію та зберігайте у безпечному місці."
|
||||
new "Відкрито теку, що містить «android.keystore» та «bundle.keystore». Створіть їх резервну копію та зберігайте у безпечному місці."
|
||||
|
||||
# game/androidstrings.rpy:65
|
||||
old "It looks like you're ready to start packaging games."
|
||||
@@ -495,7 +495,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/choose_theme.rpy:304
|
||||
old "Could not change the theme. Perhaps options.rpy was changed too much."
|
||||
new "Не вдалося змінити тему. Можливо, options.rpy було змінено дуже багато разів."
|
||||
new "Не вдалося змінити тему. Можливо, файл «options.rpy» було змінено дуже багато разів."
|
||||
|
||||
# game/choose_theme.rpy:371
|
||||
old "Planetarium"
|
||||
@@ -519,11 +519,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/choose_theme.rpy:508
|
||||
old "changing the theme"
|
||||
new "зміна теми"
|
||||
new "зміни теми"
|
||||
|
||||
# game/consolecommand.rpy:91
|
||||
old "INFORMATION"
|
||||
new "ВІДОМОСТІ"
|
||||
new "ІНФОРМАЦІЯ"
|
||||
|
||||
# game/consolecommand.rpy:91
|
||||
old "The command is being run in a new operating system console window."
|
||||
@@ -535,11 +535,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:516
|
||||
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
|
||||
new "Помилка збірки файлів для розповсюдження:\n\nЗмінна build.directory_name не може містити пробіл, двокрапку або крапку з комою."
|
||||
new "Помилка збірки файлів розповсюдження:\n\nЗмінна «build.directory_name» не може містити пробіл, двокрапку або крапку з комою."
|
||||
|
||||
# game/distribute.rpy:562
|
||||
old "No packages are selected, so there's nothing to do."
|
||||
new "Жодні пакети вибрано, створювати нічого."
|
||||
new "Жодні пакети не вибрано, створювати нічого."
|
||||
|
||||
# game/distribute.rpy:574
|
||||
old "Scanning Ren'Py files..."
|
||||
@@ -547,7 +547,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:654
|
||||
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
|
||||
new "Усі пакети зібрано.\n\nЧерез наявність інформації про дозволи, розпакування та перепакування файлів для розповсюдження Linux та Macintosh у Windows не підтримується."
|
||||
new "Усі пакети зібрано.\n\nЧерез наявність інформації про дозволи, розпакування та перепакування файлів розповсюдження Linux та Macintosh у Windows не підтримується."
|
||||
|
||||
# game/distribute.rpy:857
|
||||
old "Archiving files..."
|
||||
@@ -583,7 +583,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:1675
|
||||
old "Recompiling all rpy files into rpyc files..."
|
||||
new "Перекомпіляція усіх файлів .rpy у файли .rpyc..."
|
||||
new "Перекомпіляція усіх файлів rpy у файли rpyc..."
|
||||
|
||||
# game/distribute.rpy:1690
|
||||
old "Copying files..."
|
||||
@@ -591,7 +591,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:157
|
||||
old "Build Distributions: [project.current.display_name!q]"
|
||||
new "Збірка файлів для розповсюдження: [project.current.display_name!q]"
|
||||
new "Збірка файлів розповсюдження: [project.current.display_name!q]"
|
||||
|
||||
# game/distribute_gui.rpy:171
|
||||
old "Directory Name:"
|
||||
@@ -603,7 +603,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:185
|
||||
old "Actions:"
|
||||
new "Дії:"
|
||||
new "Дії з проєктом:"
|
||||
|
||||
# game/distribute_gui.rpy:193
|
||||
old "Edit options.rpy"
|
||||
@@ -611,7 +611,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:194
|
||||
old "Add from clauses to calls, once"
|
||||
new "Додати з класів до викликів, один раз"
|
||||
new "Один раз додати «from clauses to calls»"
|
||||
|
||||
# game/distribute_gui.rpy:195
|
||||
old "Update old-game"
|
||||
@@ -639,7 +639,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:242
|
||||
old "Add from clauses to calls"
|
||||
new "Додати з класів для викликів"
|
||||
new "Додати «from clauses to calls»"
|
||||
|
||||
# game/distribute_gui.rpy:247
|
||||
old "Build"
|
||||
@@ -647,15 +647,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:251
|
||||
old "Adding from clauses to call statements that do not have them."
|
||||
new "Додавання з класів для виклику операторів, які їх не мають."
|
||||
new "Додавання «from clauses to call» операторів, які їх не мають."
|
||||
|
||||
# game/distribute_gui.rpy:275
|
||||
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
|
||||
new "Під час запуску проєкту було виявлено помилки. Будь ласка, переконайтеся, що проєкт працює без помилок, перш ніж збирати дистрибутиви."
|
||||
new "Під час запуску проєкту було виявлено помилки. Переконайтеся, що проєкт працює без помилок, перш ніж збирати файли розповсюдження."
|
||||
|
||||
# game/distribute_gui.rpy:294
|
||||
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
|
||||
new "Ваш проєкт не містить інформації про збірку. Бажаєте додати інформацію про збірку в кінець options.rpy?"
|
||||
new "Ваш проєкт не містить інформації про збірку. Бажаєте додати інформацію про збірку в кінці файлу options.rpy?"
|
||||
|
||||
# game/dmgcheck.rpy:50
|
||||
old "Ren'Py is running from a read only folder. Some functionality will not work."
|
||||
@@ -663,7 +663,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/dmgcheck.rpy:50
|
||||
old "This is probably because Ren'Py is running directly from a Macintosh drive image. To fix this, quit this launcher, copy the entire %s folder somewhere else on your computer, and run Ren'Py again."
|
||||
new "Імовірно, це пов’язано з тим, що Ren'Py запускається безпосередньо з образу диска Macintosh. Щоб виправити це, закрийте запускач, скопіюйте усю теку %s кудись на комп’ютері і запустіть Ren'Py знову."
|
||||
new "Імовірно, це сталося через те, що Ren'Py запускається безпосередньо з образу диска Macintosh. Щоб виправити це, закрийте запускач, скопіюйте усю теку %s кудись на вашому ПК і запустіть Ren'Py знову."
|
||||
|
||||
# game/editor.rpy:152
|
||||
old "A modern editor with many extensions including advanced Ren'Py integration."
|
||||
@@ -679,7 +679,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:169
|
||||
old "Up to 110 MB download required."
|
||||
new "Необхідно завантажити до 110 МБ."
|
||||
new "Розмір завантаження — до 110 МБ."
|
||||
|
||||
# game/editor.rpy:182
|
||||
old "A modern and approachable text editor."
|
||||
@@ -691,7 +691,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:196
|
||||
old "Up to 150 MB download required."
|
||||
new "Необхідно завантажити до 150 МБ."
|
||||
new "Розмір завантаження — до 150 МБ."
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "jEdit"
|
||||
@@ -699,11 +699,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "A mature editor that requires Java."
|
||||
new "Розвинутий редактор, який потребує Java."
|
||||
new "Сталий редактор, який потребує Java."
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "1.8 MB download required."
|
||||
new "Необхідно завантажити 1,8 МБ."
|
||||
new "Розмір завантаження — 1,8 МБ."
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
@@ -715,23 +715,23 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:220
|
||||
old "Uses a copy of Visual Studio Code that you have installed outside of Ren'Py. It's recommended you install the language-renpy extension to add support for Ren'Py files."
|
||||
new "Використовує копію Visual Studio Code, яку ви встановили поза Ren'Py. Рекомендується установити розширення language-renpy, щоб додати підтримку файлів Ren'Py."
|
||||
new "Використовує копію Visual Studio Code, яку ви встановили не через Ren'Py. Рекомендується установити розширення «language-renpy», щоб додати підтримку файлів Ren'Py."
|
||||
|
||||
# game/editor.rpy:226
|
||||
old "System Editor"
|
||||
new "Системний редактор"
|
||||
new "Редактор системи"
|
||||
|
||||
# game/editor.rpy:226
|
||||
old "Invokes the editor your operating system has associated with .rpy files."
|
||||
new "Викликає редактор, який ваша операційна система пов’язала з файлами .rpy."
|
||||
new "Відкриває редактор, який ваша операційна система пов’язала з файлами .rpy."
|
||||
|
||||
# game/editor.rpy:245
|
||||
old "None"
|
||||
new "немає"
|
||||
new "Немає"
|
||||
|
||||
# game/editor.rpy:245
|
||||
old "Prevents Ren'Py from opening a text editor."
|
||||
new "Забороняє Ren'Py відкривати текстовий редактор."
|
||||
new "Запобігає Ren'Py відкривати текстовий редактор."
|
||||
|
||||
# game/editor.rpy:352
|
||||
old "Edit [text]."
|
||||
@@ -747,7 +747,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:548
|
||||
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
|
||||
new "Текстовий редактор – це програма, яку ви використовуватимете для редагування файлів скриптів Ren'Py. Тут ви можете вибрати редактор, який використовуватиме Ren'Py. Якщо редактор ще не присутній, він буде автоматично завантажений і встановлений."
|
||||
new "Текстовий редактор – це програма, яку ви будете використовувати для редагування файлів скриптів Ren'Py. Тут ви можете обрати редактор, який буде використовувати Ren'Py. Якщо його ще немає, редактор буде автоматично завантажено й установлено."
|
||||
|
||||
# game/front_page.rpy:58
|
||||
old "PROJECTS:"
|
||||
@@ -823,7 +823,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/front_page.rpy:188
|
||||
old "Actions"
|
||||
new "Дії"
|
||||
new "Дії з проєктом"
|
||||
|
||||
# game/front_page.rpy:197
|
||||
old "Navigate Script"
|
||||
@@ -847,7 +847,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/front_page.rpy:215
|
||||
old "Build Distributions"
|
||||
new "Зібрати дистрибутиви"
|
||||
new "Зібрати файли розповсюдження"
|
||||
|
||||
# game/front_page.rpy:217
|
||||
old "Android"
|
||||
@@ -867,7 +867,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/front_page.rpy:223
|
||||
old "Generate Translations"
|
||||
new "Генерувати переклади"
|
||||
new "Згенерувати переклади"
|
||||
|
||||
# game/front_page.rpy:224
|
||||
old "Extract Dialogue"
|
||||
@@ -883,11 +883,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:243
|
||||
old "Select Accent and Background Colors"
|
||||
new "Оберіть акцентні та фонові кольори"
|
||||
new "Оберіть кольори акценту та тла"
|
||||
|
||||
# game/gui7.rpy:257
|
||||
old "Please click on the color scheme you wish to use, then click Continue. These colors can be changed and customized later."
|
||||
new "Натисніть на колірну схему, яку бажаєте використовувати, а потім натисніть «Продовжити». Ці кольори можна змінити та налаштувати пізніше."
|
||||
new "Оберіть колірну схему, яку бажаєте використовувати, а потім натисніть «Продовжити». Ці кольори можна змінити та налаштувати пізніше."
|
||||
|
||||
# game/gui7.rpy:302
|
||||
old "{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"
|
||||
@@ -899,7 +899,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:302
|
||||
old "Choose new colors, then regenerate image files."
|
||||
new "Оберіть нові кольори, а потім регенеруйте файли зображень."
|
||||
new "Обрати нові кольори, а потім регенерувати файли зображень."
|
||||
|
||||
# game/gui7.rpy:302
|
||||
old "Regenerate the image files using the colors in gui.rpy."
|
||||
@@ -907,7 +907,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:333
|
||||
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of [default_size[0]]x[default_size[1]] is a reasonable compromise."
|
||||
new "Яку роздільність має використовувати проєкт? Хоча Ren'Py може масштабувати вікно вгору і вниз, це початковий розмір вікна, розмір, у якому мають бути намальовані ресурси, і розмір, у якому ресурси будуть найчіткішими.\n\nСтандартна роздільність [default_size[0]]x[default_size[1]] є розумним компромісом."
|
||||
new "Яку роздільність має використовувати проєкт? Хоч Ren'Py може масштабувати вікно вгору і вниз, це буде початковий розмір вікна, розмір, у якому мають бути намальовані ресурси, і розмір, у якому ресурси будуть найчіткішими.\n\nСтандартна роздільність [default_size[0]]x[default_size[1]] є розумним компромісом."
|
||||
|
||||
# game/gui7.rpy:333
|
||||
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
|
||||
@@ -951,7 +951,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:428
|
||||
old "activating the new project"
|
||||
new "активація нового проєкту"
|
||||
new "активації нового проєкту"
|
||||
|
||||
# game/install.rpy:33
|
||||
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
|
||||
@@ -963,7 +963,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/install.rpy:114
|
||||
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
|
||||
new "На цьому екрані ви можете встановити бібліотеки, які не можна розповсюджувати разом з Ren'Py. Деякі з цих бібліотек можуть вимагати, щоб ви погодилися з ліцензією третьої сторони перед використанням або розповсюдженням."
|
||||
new "Тут ви можете встановити бібліотеки, які не можуть бути розповсюджені разом з Ren'Py. Деякі з цих бібліотек можуть вимагати, щоб ви погодилися з ліцензією третіх сторін перед використанням або розповсюдженням."
|
||||
|
||||
# game/install.rpy:120
|
||||
old "Install Steam Support"
|
||||
@@ -1039,7 +1039,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/interface.rpy:269
|
||||
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
|
||||
new "Через обмеження формату пакетів, назви файлів та тек, що не належать до ASCII, не допускаються."
|
||||
new "Через обмеження формату пакетів, назви файлів та тек, що не містять символів ASCII, не допускаються."
|
||||
|
||||
# game/interface.rpy:365
|
||||
old "ERROR"
|
||||
@@ -1071,11 +1071,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/interface.rpy:511
|
||||
old "PROCESSING"
|
||||
new "ОБРОБКА"
|
||||
new "ОБРОБЛЕННЯ"
|
||||
|
||||
# game/interface.rpy:528
|
||||
old "QUESTION"
|
||||
new "ЗАПИТАННЯ"
|
||||
new "ПИТАННЯ"
|
||||
|
||||
# game/interface.rpy:541
|
||||
old "CHOICE"
|
||||
@@ -1175,7 +1175,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/ios.rpy:404
|
||||
old "Please choose the Xcode Projects Directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
|
||||
new "Оберіть теку проєктів Xcode із засобом вибору теки.\n{b}Засіб вибору теки могло бути відкрито за цим вікном.{/b}"
|
||||
new "Оберіть теку проєктів Xcode через засіб вибору теки.\n{b}Засіб вибору теки міг уже відкритися позаду цього вікна.{/b}"
|
||||
|
||||
# game/ios.rpy:409
|
||||
old "Ren'Py has set the Xcode Projects Directory to:"
|
||||
@@ -1187,7 +1187,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/itch.rpy:91
|
||||
old "The built distributions could not be found. Please choose 'Build' and try again."
|
||||
new "Не вдалося знайти зібрані дистрибутиви. Будь ласка, оберіть «Зібрати» і спробуйте ще раз."
|
||||
new "Не вдалося знайти зібрані файли розповсюдження. Натисніть «Зібрати» і спробуйте ще раз."
|
||||
|
||||
# game/itch.rpy:129
|
||||
old "No uploadable files were found. Please choose 'Build' and try again."
|
||||
@@ -1203,11 +1203,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/itch.rpy:144
|
||||
old "The name of the itch project has not been set."
|
||||
new "Назва проєкту itch ще не задано."
|
||||
new "Назва проєкту itch ще не встановлено."
|
||||
|
||||
# game/itch.rpy:144
|
||||
old "Please {a=https://itch.io/game/new}create your project{/a}, then add a line like \n{vspace=5}define build.itch_project = \"user-name/game-name\"\n{vspace=5} to options.rpy."
|
||||
new "Будь ласка {a=https://itch.io/game/new}створіть свій проєкт{/a}, а потім додайте рядок на зразок \n{vspace=5}define build.itch_project = \"user-name/game-name \"\n{vspace=5} до файлу options.rpy."
|
||||
new "Будь ласка, {a=https://itch.io/game/new}створіть проєкт{/a}, а потім додайте рядок типу \n{vspace=5}define build.itch_project = \"ім’я-користувача/назва-гри\"\n{vspace=5} до файлу options.rpy."
|
||||
|
||||
# game/mobilebuild.rpy:114
|
||||
old "{a=%s}%s{/a}"
|
||||
@@ -1259,23 +1259,27 @@ translate ukrainian strings:
|
||||
|
||||
# game/navigation.rpy:203
|
||||
old "callables"
|
||||
new "викликані"
|
||||
new "викликувані"
|
||||
|
||||
# game/navigation.rpy:204
|
||||
old "TODOs"
|
||||
new "TODO"
|
||||
|
||||
# game/navigation.rpy:230
|
||||
old "Show translation files"
|
||||
new "Показати файли перекладу"
|
||||
|
||||
# game/navigation.rpy:243
|
||||
old "+ Add script file"
|
||||
new "+ Додати файл скрипта"
|
||||
|
||||
# game/navigation.rpy:251
|
||||
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
|
||||
new "Не знайдено жодного коментаря TODO.\n\nЩоб створити його, включіть «# TODO» у ваш скрипт."
|
||||
new "Не знайдено жодного коментаря TODO.\n\nЩоб створити його, вставте «# TODO» у ваш скрипт."
|
||||
|
||||
# game/navigation.rpy:258
|
||||
old "The list of names is empty."
|
||||
new "Список назв порожній."
|
||||
new "Список імен порожній."
|
||||
|
||||
# game/new_project.rpy:38
|
||||
old "New GUI Interface"
|
||||
@@ -1291,7 +1295,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/new_project.rpy:52
|
||||
old "Only the legacy theme interface has been translated to your language."
|
||||
new "На вашу мову перекладено лише інтерфейс старої теми."
|
||||
new "На вашу мову перекладено лише інтерфейс класичної теми."
|
||||
|
||||
# game/new_project.rpy:54
|
||||
old "Neither interface has been translated to your language."
|
||||
@@ -1299,15 +1303,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/new_project.rpy:63
|
||||
old "The projects directory could not be set. Giving up."
|
||||
new "Не вдалося встановити теку проєктів. Здаюся."
|
||||
new "Не вдалося установити теку проєктів. Здаюся."
|
||||
|
||||
# game/new_project.rpy:70
|
||||
old "Which interface would you like to use? The new GUI has a modern look, supports wide screens and mobile devices, and is easier to customize. Legacy themes might be necessary to work with older example code.\n\n[language_support!t]\n\nIf in doubt, choose the new GUI, then click Continue on the bottom-right."
|
||||
new "Який інтерфейс ви хотіли б використовувати? Новий інтерфейс має сучасний вигляд, підтримує широкі екрани і мобільні пристрої, і його легше налаштовувати. Старі теми можуть знадобитися для роботи зі старими прикладами коду.\n\n[language_support!t]\n\nЯкщо ви сумніваєтеся, оберіть новий інтерфейс, а потім натисніть «Продовжити» знизу праворуч."
|
||||
new "Який інтерфейс ви хотіли б використовувати? Новий інтерфейс має сучасний вигляд, підтримує широкі екрани й екрани мобільних пристроїв, і його легше налаштувати. Класичні теми можуть знадобитися для роботи зі старими прикладами коду.\n\n[language_support!t]\n\nЯкщо сумніваєтеся, оберіть новий інтерфейс, а потім натисніть «Продовжити» знизу праворуч."
|
||||
|
||||
# game/new_project.rpy:70
|
||||
old "Legacy Theme Interface"
|
||||
new "Стара тема інтерфейсу"
|
||||
new "Класична тема інтерфейсу"
|
||||
|
||||
# game/new_project.rpy:77
|
||||
old "{#language name and font}"
|
||||
@@ -1343,7 +1347,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/new_project.rpy:142
|
||||
old "Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'."
|
||||
new "Будь ласка, оберіть шаблон для нового проєкту. Шаблон установлює стандартний шрифт і мову інтерфейсу. Якщо ваша мова не підтримується, оберіть «english»."
|
||||
new "Будь ласка, оберіть шаблон для вашого нового проєкту. Шаблон матиме стандартний шрифт і мову інтерфейсу. Якщо ваша мова не підтримується, оберіть «english»."
|
||||
|
||||
# game/preferences.rpy:88
|
||||
old "Launcher Preferences"
|
||||
@@ -1371,7 +1375,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:142
|
||||
old "Not Set"
|
||||
new "не задано"
|
||||
new "Не задано"
|
||||
|
||||
# game/preferences.rpy:155
|
||||
old "Text Editor:"
|
||||
@@ -1443,7 +1447,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:273
|
||||
old "Install Libraries:"
|
||||
new "Установити бібліотеки:"
|
||||
new "Установлення бібліотек:"
|
||||
|
||||
# game/preferences.rpy:299
|
||||
old "Open launcher project"
|
||||
@@ -1471,15 +1475,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:46
|
||||
old "After making changes to the script, press shift+R to reload your game."
|
||||
new "Після внесення змін до скрипту натисніть shift+R, щоб перезавантажити гру."
|
||||
new "Після внесення змін до скрипту натисніть «Shift+R», щоб перезавантажити гру."
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Press shift+O (the letter) to access the console."
|
||||
new "Натисніть shift+O (літера), щоб відкрити консоль."
|
||||
new "Натисніть «Shift+O (літера)» для відкриття консолі."
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Press shift+D to access the developer menu."
|
||||
new "Натисніть shift+D, щоб відкрити меню розробника."
|
||||
new "Натисніть «Shift+D» для відкриття меню розробника."
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Have you backed up your projects recently?"
|
||||
@@ -1491,7 +1495,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:280
|
||||
old "This may be because the project is not writeable."
|
||||
new "Це може бути пов’язано з тим, що проєкт не може бути записаний."
|
||||
new "Це може бути пов’язано з тим, що проєкт не доступний для запису."
|
||||
|
||||
# game/project.rpy:282
|
||||
old "Please ensure that your project launches normally before running this command."
|
||||
@@ -1515,7 +1519,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:794
|
||||
old "This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."
|
||||
new "Цей запускач буде шукати проєкти у цій теці, створювати нові проєкти у цій теці і розміщувати створені проєкти у цій теці."
|
||||
new "Цей запускач буде шукати проєкти, створювати нові проєкти й розміщувати створені проєкти у цій теці."
|
||||
|
||||
# game/project.rpy:799
|
||||
old "Ren'Py has set the projects directory to:"
|
||||
@@ -1527,7 +1531,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:132
|
||||
old "The language to work with. This should only contain lower-case ASCII characters and underscores."
|
||||
new "Мова, з якою будете працювати. Вона повинна містити лише малі літери ASCII та символи підкреслення."
|
||||
new "Мова, з якою будете працювати. Вона повинна містити лише малі літери ASCII та знаки підкреслення."
|
||||
|
||||
# game/translations.rpy:158
|
||||
old "Generate empty strings for translations"
|
||||
@@ -1535,15 +1539,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:176
|
||||
old "Generates or updates translation files. The files will be placed in game/tl/[persistent.translate_language!q]."
|
||||
new "Генерує або оновлює файли перекладу. Файли буде розміщено в теці game/tl/[persistent.translate_language!q]."
|
||||
new "Генерує або оновлює файли перекладу. Файли буде розміщено в теці «game/tl/[persistent.translate_language!q]»."
|
||||
|
||||
# game/translations.rpy:196
|
||||
old "Extract String Translations"
|
||||
new "Витягти рядки перекладу"
|
||||
new "Витягнути переклади рядків"
|
||||
|
||||
# game/translations.rpy:198
|
||||
old "Merge String Translations"
|
||||
new "Об’єднати рядки перекладу"
|
||||
new "Об’єднати переклади рядків"
|
||||
|
||||
# game/translations.rpy:203
|
||||
old "Replace existing translations"
|
||||
@@ -1567,27 +1571,27 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:263
|
||||
old "Ren'Py has finished generating [language] translations."
|
||||
new "Ren'Py завершив генерування перекладів мови: [language]."
|
||||
new "Ren'Py завершив генерування перекладів для мови: [language]."
|
||||
|
||||
# game/translations.rpy:276
|
||||
old "Ren'Py is extracting string translations..."
|
||||
new "Ren'Py витягує переклад рядків..."
|
||||
new "Ren'Py витягує переклади рядків..."
|
||||
|
||||
# game/translations.rpy:279
|
||||
old "Ren'Py has finished extracting [language] string translations."
|
||||
new "Ren'Py завершив витягування перекладу рядків мови: [language]."
|
||||
new "Ren'Py завершив витягування перекладів рядків для мови: [language]."
|
||||
|
||||
# game/translations.rpy:299
|
||||
old "Ren'Py is merging string translations..."
|
||||
new "Ren'Py об’єднує переклад рядків..."
|
||||
new "Ren'Py об’єднує переклади рядків..."
|
||||
|
||||
# game/translations.rpy:302
|
||||
old "Ren'Py has finished merging [language] string translations."
|
||||
new "Ren'Py завершив об’єднання перекладу рядків мови: [language]."
|
||||
new "Ren'Py завершив об’єднання перекладів рядків для мови: [language]."
|
||||
|
||||
# game/translations.rpy:313
|
||||
old "Updating default interface translations..."
|
||||
new "Оновлення стандартного перекладу інтерфейсу..."
|
||||
new "Оновлення стандартних перекладів інтерфейсу..."
|
||||
|
||||
# game/translations.rpy:342
|
||||
old "Extract Dialogue: [project.current.display_name!q]"
|
||||
@@ -1611,11 +1615,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:381
|
||||
old "Escape quotes and other special characters."
|
||||
new "Лапки та інші спеціальні символи."
|
||||
new "Уникати лапки та інші спеціальні символи."
|
||||
|
||||
# game/translations.rpy:382
|
||||
old "Extract all translatable strings, not just dialogue."
|
||||
new "Витягнути всі рядки, які мона перекласти, а не лише діалоги."
|
||||
new "Витягнути всі рядки, які можна перекласти, а не лише діалоги."
|
||||
|
||||
# game/translations.rpy:391
|
||||
old "Language (or None for the default language):"
|
||||
@@ -1647,15 +1651,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:68
|
||||
old "Prerelease"
|
||||
new "Попередній випуск"
|
||||
new "Пре-випуск"
|
||||
|
||||
# game/updater.rpy:69
|
||||
old "Prerelease (Ren'Py 8, Python 3)"
|
||||
new "Попередній випуск (Ren'Py 8, Python 3)"
|
||||
new "Пре-випуск (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:70
|
||||
old "Prerelease (Ren'Py 7, Python 2)"
|
||||
new "Попередній випуск (Ren'Py 7, Python 2)"
|
||||
new "Пре-випуск (Ren'Py 7, Python 2)"
|
||||
|
||||
# game/updater.rpy:71
|
||||
old "A preview of the next version of Ren'Py that can be used for testing and taking advantage of new features, but not for final releases of games."
|
||||
@@ -1663,7 +1667,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:73
|
||||
old "Experimental"
|
||||
new "Експериментальний"
|
||||
new "Експериментальна"
|
||||
|
||||
# game/updater.rpy:74
|
||||
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
|
||||
@@ -1671,19 +1675,23 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:76
|
||||
old "Nightly"
|
||||
new "Рання"
|
||||
new "Нічна"
|
||||
|
||||
# game/updater.rpy:77
|
||||
old "Nightly (Ren'Py 8, Python 3)"
|
||||
new "Рання (Ren'Py 8, Python 3)"
|
||||
new "Нічна (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:78
|
||||
old "Nightly (Ren'Py 7, Python 2)"
|
||||
new "Рання (Ren'Py 7, Python 2)"
|
||||
new "Нічна (Ren'Py 7, Python 2)"
|
||||
|
||||
# game/updater.rpy:79
|
||||
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
|
||||
new "Крайня точка розробки Ren'Py. Може мати найновіші функції, а може не працювати взагалі."
|
||||
new "Кривавий край розробки Ren'Py. Може мати найновіші функції, а може не працювати взагалі."
|
||||
|
||||
# game/updater.rpy:79
|
||||
old "A nightly build of fixes to the release version of Ren'Py."
|
||||
new "Нічна збірка виправлень до випускної версії Ren'Py."
|
||||
|
||||
# game/updater.rpy:96
|
||||
old "Select Update Channel"
|
||||
@@ -1691,7 +1699,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:107
|
||||
old "The update channel controls the version of Ren'Py the updater will download."
|
||||
new "Канал оновлення визначає версію Ren'Py, яку завантажить оновлювач."
|
||||
new "Канал оновлення контролює версію Ren'Py, яку завантажить оновлювач."
|
||||
|
||||
# game/updater.rpy:115
|
||||
old "• {a=https://www.renpy.org/doc/html/changelog.html}View change log{/a}"
|
||||
@@ -1703,7 +1711,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:123
|
||||
old "• This version is installed and up-to-date."
|
||||
new "• Ця версія встановлена та актуальна."
|
||||
new "• Цю версію установлено та є актуальною."
|
||||
|
||||
# game/updater.rpy:135
|
||||
old "%B %d, %Y"
|
||||
@@ -1743,15 +1751,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:173
|
||||
old "The update has been installed. Ren'Py will restart."
|
||||
new "Оновлення встановлено. Ren'Py перезапуститься."
|
||||
new "Оновлення було встановлено. Ren'Py перезапуститься."
|
||||
|
||||
# game/updater.rpy:175
|
||||
old "The update has been installed."
|
||||
new "Оновлення встановлено."
|
||||
new "Оновлення було встановлено."
|
||||
|
||||
# game/updater.rpy:177
|
||||
old "The update was cancelled."
|
||||
new "Оновлення скасовано."
|
||||
new "Оновлення було скасовано."
|
||||
|
||||
# game/updater.rpy:194
|
||||
old "Ren'Py Update"
|
||||
@@ -1795,7 +1803,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/web.rpy:332
|
||||
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
|
||||
new "Зображення та музики можуть бути завантажені під час гри. Буде створено файл 'progressive_download.txt', щоб ви могли налаштувати цю поведінку."
|
||||
new "Зображення та музики можуть бути завантажені під час гри. Буде створено файл «progressive_download.txt», щоб ви могли налаштувати цю поведінку."
|
||||
|
||||
# game/web.rpy:336
|
||||
old "Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported."
|
||||
@@ -1807,21 +1815,21 @@ translate ukrainian strings:
|
||||
|
||||
# game/web.rpy:344
|
||||
old "We will restore support in a future release of Ren'Py 8. Until then, please use Ren'Py 7 for web support."
|
||||
new "Ми відновимо підтримку в майбутньому випуску Ren'Py 8. До того часу використовуйте Ren'Py 7 для підтримки Web."
|
||||
new "Ми відновимо підтримку в майбутньому випуску Ren'Py 8. До того часу використовуйте Ren'Py 7 для вебпідтримки."
|
||||
|
||||
# game/web.rpy:348
|
||||
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
|
||||
new "Перш ніж створювати пакети вебзастосунки, вам потрібно буде завантажити RenPyWeb, вебпідтримку Ren'Py. Бажаєте завантажити RenPyWeb зараз?"
|
||||
new "Перш ніж створювати пакети вебзастосунків, вам потрібно буде завантажити RenPyWeb, вебпідтримку Ren'Py. Бажаєте завантажити RenPyWeb зараз?"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:39
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Згенеруйте нові ключі або скопіюйте android.keystore та bundle.keystore до базової теки."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Згенеруйте нові ключі або скопіюйте «android.keystore» та «bundle.keystore» до базової теки."
|
||||
|
||||
# game/android.rpy:46
|
||||
old "Attempts to emulate a televison-based Android console.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Спробує емулювати телевізійну приставку Android.\n\nВведення контролера налаштовано з клавішами зі стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
new "Спробує емулювати телевізійну приставку Android.\n\nВведення контролера налаштовано з клавішами стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
|
||||
# game/android.rpy:48
|
||||
old "Downloads and installs the Android SDK and supporting packages."
|
||||
@@ -1849,7 +1857,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:38
|
||||
old "Which app store would you like to support in-app purchasing through?"
|
||||
new "Через яку крамницю застосунків ви хотіли б підтримувати внутрішні покупки?"
|
||||
new "Через яку крамницю застосунків ви хотіли б підтримувати внутрішні придбання?"
|
||||
|
||||
# game/androidstrings.rpy:39
|
||||
old "Google Play."
|
||||
@@ -1869,7 +1877,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:63
|
||||
old "I found an android.keystore file in the rapt directory. Do you want to use this file?"
|
||||
new "Знайдено файл android.keystore у теці rapt. Бажаєте використовувати цей файл?"
|
||||
new "Знайдено файл «android.keystore» у теці «rapt». Бажаєте використовувати цей файл?"
|
||||
|
||||
# game/androidstrings.rpy:66
|
||||
old "\n\nSaying 'No' will prevent key creation."
|
||||
@@ -1877,7 +1885,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:69
|
||||
old "I found a bundle.keystore file in the rapt directory. Do you want to use this file?"
|
||||
new "Знайдено файл bundle.keystore у теці rapt. Бажаєте використовувати цей файл?"
|
||||
new "Знайдено файл «bundle.keystore» у теці «rapt». Бажаєте використовувати цей файл?"
|
||||
|
||||
# game/distribute_gui.rpy:231
|
||||
old "(DLC)"
|
||||
@@ -1885,18 +1893,12 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Lint checks your game for potential mistakes, and gives you statistics."
|
||||
new "«Lint» перевіряє вашу гру на наявність потенційних помилок і надає вам статистику."
|
||||
new "Lint перевіряє вашу гру на наявність потенційних помилок і надає вам статистику."
|
||||
|
||||
# game/web.rpy:485
|
||||
old "Creating package..."
|
||||
new "Створення пакету..."
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:79
|
||||
old "A nightly build of fixes to the release version of Ren'Py."
|
||||
new "Рання збірка виправлень до випуску версії Ren'Py."
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:46
|
||||
@@ -1905,7 +1907,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:47
|
||||
old "The version of Java on your computer does not appear to be JDK [JDK_REQUIREMENT], which is required to build Android apps. If you need to install a newer JDK, you can download it from:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, and add it to your PATH.\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
|
||||
new "Версія Java на вашому ПК не є JDK [JDK_REQUIREMENT], яка необхідна для створення застосунків на Android. Якщо вам потрібно встановити новішу версію JDK, ви можете завантажити її з:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, і додати до вашої змінни середовища PATH.\n\nВи також можете встановити змінну середовища JAVA_HOME для використання іншої версії Java."
|
||||
new "Версія Java на вашому ПК не є JDK [JDK_REQUIREMENT], яка необхідна для збірки застосунків на Android. Якщо вам потрібно встановити новішу версію JDK, ви можете завантажити її звідси:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, і додати до вашої змінни середовища PATH.\n\nВи також можете встановити змінну середовища JAVA_HOME для використання іншої версії Java."
|
||||
|
||||
# game/choose_directory.rpy:72
|
||||
old "No directory was selected, but one is required."
|
||||
@@ -1921,11 +1923,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:543
|
||||
old "Building distributions failed:\n\nThe project is the Ren'Py Tutorial, which can't be distributed outside of Ren'Py. Consider using The Question as a test project."
|
||||
new "Помилка збірки дистрибутивів:\n\nПроєкт є навчальним посібником Ren'Py, який не може поширюватися за межами Ren'Py. Подумайте про використання «Запитання» як тестового проєкту."
|
||||
new "Помилка збірки файлів розповсюдження:\n\nПроєкт є навчальним посібником Ren'Py, який не може поширюватися за межами Ren'Py. Подумайте про проєкт «Запитання» як тестового проєкту."
|
||||
|
||||
# game/distribute.rpy:570
|
||||
old "This may be derived from build.name and config.version or build.version."
|
||||
new "Це може бути отримане з build.name та config.version або build.version."
|
||||
new "Це можна отримати з «build.name» та «config.version» або «build.version»."
|
||||
|
||||
# game/distribute.rpy:1606
|
||||
old "Finishing the [variant] [format] package."
|
||||
@@ -1933,11 +1935,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:185
|
||||
old "Atom is deprecated and its bugs are known for corrupting games, using another editor is recommended."
|
||||
new "Atom застарілий, а його помилки, як відомо, призводять до пошкодження ігор, тому рекомендується використовувати інший редактор."
|
||||
new "Atom застарілий, а його помилки, як відомо, призводять до пошкодження ігор, тому рекомендуємо використовувати інший редактор."
|
||||
|
||||
# game/editor.rpy:214
|
||||
old "JEdit is deprecated, using another editor is recommended."
|
||||
new "JEdit застарілий, рекомендується використовувати інший редактор."
|
||||
new "JEdit застарілий, рекомендуємо використовувати інший редактор."
|
||||
|
||||
# game/editor.rpy:607
|
||||
old "The Atom text editor is no longer supported by its developers. We suggest switching to Visual Studio Code or another editor."
|
||||
@@ -1945,7 +1947,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:607
|
||||
old "Select editor now."
|
||||
new "Обрати редактора зараз."
|
||||
new "Обрати редактор зараз."
|
||||
|
||||
# game/editor.rpy:607
|
||||
old "Ignore until next launch."
|
||||
@@ -1955,6 +1957,14 @@ translate ukrainian strings:
|
||||
old "Do not ask again."
|
||||
new "Не запитувати знову."
|
||||
|
||||
# game/editor.rpy:667
|
||||
old "You are using an old version of the Ren'Py Language support for Visual Studio Code. Would you like to upgrade?"
|
||||
new "Ви використовуєте стару версію підтримки мови Ren'Py для Visual Studio Code. Бажаєте оновити версію?"
|
||||
|
||||
# game/editor.rpy:667
|
||||
old "Upgrade."
|
||||
new "Оновити."
|
||||
|
||||
# game/install.rpy:186
|
||||
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
|
||||
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} додає підтримку відображення моделей Live2D. Розмістіть файл CubismSdkForNative-{i}версія{/i}.zip у теку Ren'Py SDK, і натисніть кнопку «Установити». Розповсюдження гри з Live2D вимагає від вас прийняття ліцензії від Live2D, Inc."
|
||||
@@ -1973,11 +1983,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:95
|
||||
old "Lint"
|
||||
new "Lint"
|
||||
new "Перевірка скриптів (Lint)"
|
||||
|
||||
# game/preferences.rpy:234
|
||||
old "Game Options:"
|
||||
new "Параметри гри:"
|
||||
new "Параметри ігор:"
|
||||
|
||||
# game/preferences.rpy:241
|
||||
old "Skip splashscreen"
|
||||
@@ -1989,7 +1999,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:262
|
||||
old "Restore window position"
|
||||
new "Відновити положення вікна"
|
||||
new "Відновлювати позицію вікна"
|
||||
|
||||
# game/preferences.rpy:266
|
||||
old "Prefer RPU updates"
|
||||
@@ -2001,19 +2011,19 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:364
|
||||
old "Lint toggles:"
|
||||
new "Lint перемикає:"
|
||||
new "Параметри перевірки скриптів (Lint):"
|
||||
|
||||
# game/preferences.rpy:368
|
||||
old "Check for orphan/obsolete translations"
|
||||
new "Перевірка «сирітських» / застарілих перекладів"
|
||||
new "Перевірка на наявність непотрібних/застарілих перекладів"
|
||||
|
||||
# game/preferences.rpy:371
|
||||
old "Check parameters shadowing reserved names"
|
||||
new "Перевірка параметрів затінення зарезервованих імен"
|
||||
new "Перевірка параметрів перезаписування зарезервованих імен"
|
||||
|
||||
# game/preferences.rpy:374
|
||||
old "Print block, word, and character counts by speaking character."
|
||||
new "Кількість блоків друку, слів і символів за кожним розмовним персонажем."
|
||||
new "Друкувати кількість блоків, слів і символів кожного персонажа."
|
||||
|
||||
# game/preferences.rpy:377
|
||||
old "Unclosed text tags"
|
||||
@@ -2021,7 +2031,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:380
|
||||
old "Show all unreachable blocks and orphaned translations."
|
||||
new "Показувати всі недосяжні блоки та «осиротілі» переклади."
|
||||
new "Показувати всі недосяжні блоки та непотрібні переклади."
|
||||
|
||||
# game/project.rpy:776
|
||||
old "Splashscreen skipped in launcher preferences."
|
||||
@@ -2029,12 +2039,12 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:76
|
||||
old "Nightly Fix"
|
||||
new "Раннє виправлення"
|
||||
new "Нічне виправлення"
|
||||
|
||||
# game/updater.rpy:77
|
||||
old "Nightly Fix (Ren'Py 8, Python 3)"
|
||||
new "Раннє виправлення (Ren'Py 8, Python 3)"
|
||||
new "Нічне виправлення (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:78
|
||||
old "Nightly Fix (Ren'Py 7, Python 2)"
|
||||
new "Раннє виправлення (Ren'Py 7, Python 2)"
|
||||
new "Нічне виправлення (Ren'Py 7, Python 2)"
|
||||
|
||||
@@ -179,7 +179,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/options.rpy:183
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Для виключення файлів із збірок для розповсюдження, класифікуйте їх як «None»."
|
||||
new "## Для виключення файлів із збірки файлів розповсюдження, класифікуйте їх як «None»."
|
||||
|
||||
# gui/game/options.rpy:191
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
@@ -197,10 +197,8 @@ translate ukrainian strings:
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## Ім’я користувача та назва проєкту, пов’язані з проєктом itch.io, розділені скісною рискою."
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/options.rpy:203
|
||||
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
new "## Для здійснення покупок у застосунку потрібен ліцензійний ключ Google Play. Його можна знайти в консолі розробника Google Play у розділі «Монетизація» > «Налаштування монетизації» > «Ліцензування»."
|
||||
|
||||
new "## Для здійснення внутрішньоігрового придбання потрібен ліцензійний ключ Google Play. Його можна знайти в консолі розробника Google Play у розділі «Монетизація» > «Налаштування монетизації» > «Ліцензування»."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:9
|
||||
@@ -11,15 +11,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:85
|
||||
old "## Say screen"
|
||||
new "## Екран Say"
|
||||
new "## Екран промови"
|
||||
|
||||
# gui/game/screens.rpy:87
|
||||
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
|
||||
new "## Екран Say використовується для відображення діалогу гравцеві. Він приймає два параметри, who і what, ім’я персонажа, що говорить, і текст, який буде відображатися відповідно. (Параметр who може мати значення None, якщо ім’я не вказано.)"
|
||||
new "## Екран промови використовується для показу діалогу гравцеві. Він приймає два параметри, «who» та «what», ім’я персонажа й текст, який буде показано відповідно. (Параметр «who» може мати значення «None», якщо ім’я не вказано.)"
|
||||
|
||||
# gui/game/screens.rpy:92
|
||||
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
|
||||
new "## Цей екран має створювати текст, який можна відображати з ідентифікатором «what», оскільки Ren'Py використовує це для керування відображенням тексту. Він також може створювати відображувані елементи з ідентифікаторами «who» та «window» для застосування властивостей стилю."
|
||||
new "## Цей екран має створювати текст з ідентифікатором «what», оскільки Ren'Py використовує його для керування показу тексту. Він також може створювати елементи з ідентифікаторами «who» та «window» для застосування властивостей стилю."
|
||||
|
||||
# gui/game/screens.rpy:96
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
@@ -39,11 +39,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:167
|
||||
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
new "## Цей екран використовується для відображення renpy.input. Параметр prompt використовується для передачі текстової підказки."
|
||||
new "## Цей екран використовується для показу «renpy.input». Параметр «prompt» використовується для передачі текстової підказки."
|
||||
|
||||
# gui/game/screens.rpy:170
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## Цей екран має створити відображуваний вхід з ідентифікатором «input» для прийняття різних вхідних параметрів."
|
||||
new "## Цей екран має створити введення з ідентифікатором «input» для прийняття різних параметрів введення."
|
||||
|
||||
# gui/game/screens.rpy:173
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
@@ -55,7 +55,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:202
|
||||
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
|
||||
new "## Цей екран використовується для відображення вибору в грі, представленого командою 'menu'. Один параметр, 'items' — це список об’єктів, кожен із полями заголовка та дії."
|
||||
new "## Цей екран використовується для показу ігрових варіантів вибору, представлених оператором «menu». Один параметр, «items», являє собою список об’єктів, кожен з яких має підпис і поле дії."
|
||||
|
||||
# gui/game/screens.rpy:206
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
@@ -67,11 +67,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:236
|
||||
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## Швидке меню відображається в грі, щоб забезпечити легкий доступ до меню поза грою."
|
||||
new "## Швидке меню показується у грі, щоб забезпечити легкий доступ до меню поза грою."
|
||||
|
||||
# gui/game/screens.rpy:241
|
||||
old "## Ensure this appears on top of other screens."
|
||||
new "## Переконайтеся, що це відображається поверх інших екранів."
|
||||
new "## Переконайтеся, що воно показується поверх інших екранів."
|
||||
|
||||
# gui/game/screens.rpy:252
|
||||
old "Back"
|
||||
@@ -83,7 +83,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:254
|
||||
old "Skip"
|
||||
new "Пропустити"
|
||||
new "Пропускати"
|
||||
|
||||
# gui/game/screens.rpy:255
|
||||
old "Auto"
|
||||
@@ -107,7 +107,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:262
|
||||
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
new "## Цей код гарантує, що екран quick_menu відображається в грі, якщо гравець явно не приховав інтерфейс."
|
||||
new "## Цей код гарантує, що екран «quick_menu» показується у грі, якщо гравець не приховав інтерфейс явно."
|
||||
|
||||
# gui/game/screens.rpy:280
|
||||
old "## Main and Game Menu Screens"
|
||||
@@ -119,7 +119,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:285
|
||||
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
new "## Цей екран включено в головне та ігрове меню та забезпечує навігацію до інших меню та початок гри."
|
||||
new "## Цей екран включено в головне та ігрове меню і забезпечує навігацію до інших меню та початку гри."
|
||||
|
||||
# gui/game/screens.rpy:300
|
||||
old "Start"
|
||||
@@ -147,7 +147,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:324
|
||||
old "## Help isn't necessary or relevant to mobile devices."
|
||||
new "## Допомога не є необхідною або актуальною для мобільних пристроїв."
|
||||
new "## Довідка не є необхідною або доречною для мобільних пристроїв."
|
||||
|
||||
# gui/game/screens.rpy:325
|
||||
old "Help"
|
||||
@@ -155,7 +155,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:329
|
||||
old "## The quit button is banned on iOS and unnecessary on Android and Web."
|
||||
new "## Кнопка виходу заборонена на iOS і непотрібна на Android і в Web."
|
||||
new "## Кнопка виходу заборонена на iOS й непотрібна на Android та Web."
|
||||
|
||||
# gui/game/screens.rpy:330
|
||||
old "Quit"
|
||||
@@ -167,7 +167,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:346
|
||||
old "## Used to display the main menu when Ren'Py starts."
|
||||
new "## Використовується для відображення головного меню під час запуску Ren'Py."
|
||||
new "## Використовується для показу головного меню під час запуску Ren'Py."
|
||||
|
||||
# gui/game/screens.rpy:348
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
@@ -183,19 +183,19 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:361
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## Інструкція використання включає інший екран всередині цього. Фактичний вміст головного меню знаходиться на екрані навігації."
|
||||
new "## Оператор «use» включає інший екран усередині цього. Фактичний вміст головного меню знаходиться на екрані навігації."
|
||||
|
||||
# gui/game/screens.rpy:406
|
||||
old "## Game Menu screen"
|
||||
new "## Екран меню гри"
|
||||
new "## Екран ігрового меню"
|
||||
|
||||
# gui/game/screens.rpy:408
|
||||
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
new "## Це описує базову структуру екрана меню гри. Він викликається за допомогою заголовка екрана та відображає тло, заголовок і навігацію."
|
||||
new "## Тут викладено основну загальну структуру екрана ігрового меню. Він викликається заголовком екрана і показує тло, заголовок і навігацію."
|
||||
|
||||
# gui/game/screens.rpy:411
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## Параметр прокручування може бути None або одним із «viewport» чи «vpgrid». Цей екран призначений для використання з одним або декількома об’єктами, які включені (розміщені) всередині нього."
|
||||
new "## Параметр «scroll» може мати значення «None» або один з «viewport» чи «vpgrid». Цей екран призначений для використання з одним або декількома об’єктами, які включені (розміщені) всередині нього."
|
||||
|
||||
# gui/game/screens.rpy:429
|
||||
old "## Reserve space for the navigation section."
|
||||
@@ -211,7 +211,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:536
|
||||
old "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
new "## Цей екран містить інформацію про авторство та авторські права щодо гри та Ren'Py."
|
||||
new "## Цей екран містить інформацію про авторів та авторські права щодо гри та Ren'Py."
|
||||
|
||||
# gui/game/screens.rpy:539
|
||||
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
@@ -219,7 +219,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:546
|
||||
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
|
||||
new "## Цей оператор використання включає екран «game_menu» всередині цього. Потім дочірній елемент «vbox» включається в область перегляду всередині екрана «game_menu»."
|
||||
new "## Цей оператор «use» включає екран «game_menu» всередині цього. Потім дочірній елемент «vbox» буде включено до «viewport» всередині екрана «game_menu»."
|
||||
|
||||
# gui/game/screens.rpy:556
|
||||
old "Version [config.version!t]\n"
|
||||
@@ -227,7 +227,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:558
|
||||
old "## gui.about is usually set in options.rpy."
|
||||
new "## «gui.about» зазвичай встановлюється в «options.rpy»."
|
||||
new "## Значення «gui.about» зазвичай задається у файлі «options.rpy»."
|
||||
|
||||
# gui/game/screens.rpy:562
|
||||
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
@@ -259,7 +259,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:604
|
||||
old "## This ensures the input will get the enter event before any of the buttons do."
|
||||
new "## Це гарантує, що введення отримає подію «enter» раніше, ніж будь-яка кнопка."
|
||||
new "## Це гарантує, що введення отримає подію входу раніше, ніж будь-яка кнопка."
|
||||
|
||||
# gui/game/screens.rpy:608
|
||||
old "## The page name, which can be edited by clicking on a button."
|
||||
@@ -267,11 +267,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:620
|
||||
old "## The grid of file slots."
|
||||
new "## Сітка комірок для файлів."
|
||||
new "## Сітка комірок збережень."
|
||||
|
||||
# gui/game/screens.rpy:640
|
||||
old "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
new "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
new "{#file_time}%A, %d %B %Y, %H:%M"
|
||||
|
||||
# gui/game/screens.rpy:640
|
||||
old "empty slot"
|
||||
@@ -279,7 +279,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:648
|
||||
old "## Buttons to access other pages."
|
||||
new "## Кнопки для доступу до інших сторінок."
|
||||
new "## Кнопки для відкриття інших сторінок."
|
||||
|
||||
# gui/game/screens.rpy:657
|
||||
old "<"
|
||||
@@ -295,7 +295,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:665
|
||||
old "## range(1, 10) gives the numbers from 1 to 9."
|
||||
new "## range(1, 10) дає числа від 1 до 9."
|
||||
new "## range(1, 10) повертає числа від 1 до 9."
|
||||
|
||||
# gui/game/screens.rpy:669
|
||||
old ">"
|
||||
@@ -339,11 +339,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:737
|
||||
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
new "## Сюди можна долучити додаткові вікна vbox типу «radio_pref» або «check_pref», щоб долучити додаткові параметри, визначені творцем."
|
||||
new "## Сюди можна додати додаткові vbox'и типу «radio_pref» або «check_pref», щоб додати додаткові налаштування, визначені автором."
|
||||
|
||||
# gui/game/screens.rpy:748
|
||||
old "Text Speed"
|
||||
new "Швидкість тексту"
|
||||
new "Швидкість друку тексту"
|
||||
|
||||
# gui/game/screens.rpy:752
|
||||
old "Auto-Forward Time"
|
||||
@@ -355,7 +355,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:766
|
||||
old "Sound Volume"
|
||||
new "Гучність звук. ефектів"
|
||||
new "Гучність звукових ефектів"
|
||||
|
||||
# gui/game/screens.rpy:772
|
||||
old "Test"
|
||||
@@ -375,7 +375,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:865
|
||||
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
|
||||
new "## Це екран, на якому гравцеві відображається історія діалогів. Хоча в цьому екрані немає нічого особливого, він має доступ до історії діалогів, що зберігається в _history_list."
|
||||
new "## Це екран, на якому гравцеві буде показано історію діалогів. Хоч й в цьому екрані немає нічого особливого, він має мати доступ до історії діалогів, що зберігається в «_history_list»."
|
||||
|
||||
# gui/game/screens.rpy:869
|
||||
old "## https://www.renpy.org/doc/html/history.html"
|
||||
@@ -383,15 +383,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:875
|
||||
old "## Avoid predicting this screen, as it can be very large."
|
||||
new "## Не намагайтеся передбачити цей екран, оскільки він може бути дуже великим."
|
||||
new "## Уникайте виклику цього екрану, оскільки він може бути дуже великим."
|
||||
|
||||
# gui/game/screens.rpy:886
|
||||
old "## This lays things out properly if history_height is None."
|
||||
new "## Тут все буде правильно, якщо history_height дорівнює None."
|
||||
new "## Тут усе буде показано правильно, якщо «history_height» дорівнює «None»."
|
||||
|
||||
# gui/game/screens.rpy:896
|
||||
old "## Take the color of the who text from the Character, if set."
|
||||
new "## Бере колір тексту who з Character, якщо він заданий."
|
||||
new "## Бере колір тексту «who» з «Character», якщо він заданий."
|
||||
|
||||
# gui/game/screens.rpy:905
|
||||
old "The dialogue history is empty."
|
||||
@@ -399,7 +399,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:908
|
||||
old "## This determines what tags are allowed to be displayed on the history screen."
|
||||
new "## Це визначає теги, які можна відображати на екрані історії."
|
||||
new "## Визначає, які теги дозволено показувати на екрані історії."
|
||||
|
||||
# gui/game/screens.rpy:953
|
||||
old "## Help screen"
|
||||
@@ -407,7 +407,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:955
|
||||
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
|
||||
new "## Екран, що надає інформацію про прив’язку клавіш і миші. Він використовує інші екрани (keyboard_help, mouse_help і gamepad_help), щоб відобразити фактичну довідку."
|
||||
new "## Екран, що надає інформацію про призначення клавіш і миші. Він використовує інші екрани (keyboard_help, mouse_help та gamepad_help), щоб показати саму довідку."
|
||||
|
||||
# gui/game/screens.rpy:974
|
||||
old "Keyboard"
|
||||
@@ -439,7 +439,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:999
|
||||
old "Arrow Keys"
|
||||
new "Клавіші зі стрілками"
|
||||
new "Клавіші стрілок"
|
||||
|
||||
# gui/game/screens.rpy:1000
|
||||
old "Navigate the interface."
|
||||
@@ -451,7 +451,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1004
|
||||
old "Accesses the game menu."
|
||||
new "Доступ до меню гри."
|
||||
new "Відкриває ігрове меню."
|
||||
|
||||
# gui/game/screens.rpy:1007
|
||||
old "Ctrl"
|
||||
@@ -467,7 +467,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1012
|
||||
old "Toggles dialogue skipping."
|
||||
new "Вмикає пропуск діалогу."
|
||||
new "Перемикає пропуск діалогу."
|
||||
|
||||
# gui/game/screens.rpy:1015
|
||||
old "Page Up"
|
||||
@@ -475,7 +475,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1016
|
||||
old "Rolls back to earlier dialogue."
|
||||
new "Відкат до попереднього діалогу."
|
||||
new "Відкатує до попереднього діалогу."
|
||||
|
||||
# gui/game/screens.rpy:1019
|
||||
old "Page Down"
|
||||
@@ -483,7 +483,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1020
|
||||
old "Rolls forward to later dialogue."
|
||||
new "Перехід до наступного діалогу."
|
||||
new "Переходить до наступного діалогу."
|
||||
|
||||
# gui/game/screens.rpy:1024
|
||||
old "Hides the user interface."
|
||||
@@ -503,15 +503,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1042
|
||||
old "Left Click"
|
||||
new "ЛКМ"
|
||||
new "Ліва кнопка миші"
|
||||
|
||||
# gui/game/screens.rpy:1046
|
||||
old "Middle Click"
|
||||
new "СКМ"
|
||||
new "Середня кнопка миші"
|
||||
|
||||
# gui/game/screens.rpy:1050
|
||||
old "Right Click"
|
||||
new "ПКМ"
|
||||
new "Права кнопка миші"
|
||||
|
||||
# gui/game/screens.rpy:1054
|
||||
old "Mouse Wheel Up"
|
||||
@@ -523,7 +523,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1065
|
||||
old "Right Trigger\nA/Bottom Button"
|
||||
new "Правий тригер\nA/Нижня кнопка"
|
||||
new "Правий тригер\nКнопка A/Униз"
|
||||
|
||||
# gui/game/screens.rpy:1069
|
||||
old "Left Trigger\nLeft Shoulder"
|
||||
@@ -535,7 +535,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1078
|
||||
old "D-Pad, Sticks"
|
||||
new "Хрестовина, Стики"
|
||||
new "Хрестовина, стики"
|
||||
|
||||
# gui/game/screens.rpy:1082
|
||||
old "Start, Guide"
|
||||
@@ -543,7 +543,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1086
|
||||
old "Y/Top Button"
|
||||
new "Y/Верхня кнопка"
|
||||
new "Кнопка Y/Угору"
|
||||
|
||||
# gui/game/screens.rpy:1089
|
||||
old "Calibrate"
|
||||
@@ -551,7 +551,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1098
|
||||
old "Start, Guide, B/Right Button"
|
||||
new "Кнопка Start, Guide, B/Управо"
|
||||
new "Start, Guide, Кнопка B/Управо"
|
||||
|
||||
# gui/game/screens.rpy:1117
|
||||
old "## Additional screens"
|
||||
@@ -563,7 +563,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1123
|
||||
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## Екран підтвердження викликається, коли Ren'Py хоче поставити гравцеві запитання «Так» або «Ні»."
|
||||
new "## Екран підтвердження викликається, коли Ren'Py хоче поставити гравцеві запитання з відповіддю «Так» або «Ні»."
|
||||
|
||||
# gui/game/screens.rpy:1126
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
@@ -571,7 +571,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1130
|
||||
old "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Переконайтеся, що інші екрани не отримують введення, поки відображається цей екран."
|
||||
new "## Переконайтеся, що на інші екранах не отримується введення під час показу цього екрана."
|
||||
|
||||
# gui/game/screens.rpy:1154
|
||||
old "Yes"
|
||||
@@ -583,7 +583,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1157
|
||||
old "## Right-click and escape answer \"no\"."
|
||||
new "## Клацніть ПКМ та вийдіть із відповіді «Ні»."
|
||||
new "## Клацніть ПКМ й оберіть відповідь «Ні»."
|
||||
|
||||
# gui/game/screens.rpy:1184
|
||||
old "## Skip indicator screen"
|
||||
@@ -591,7 +591,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1186
|
||||
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## Екран skip_indicator відображається, щоб вказати, що триває пропуск."
|
||||
new "## Екран «skip_indicator» показується, що вказати на те, що виконується пропуск."
|
||||
|
||||
# gui/game/screens.rpy:1189
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
@@ -603,19 +603,19 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1208
|
||||
old "## This transform is used to blink the arrows one after another."
|
||||
new "## Це перетворення використовується для миготіння стрілок одна за одною."
|
||||
new "## Це перетворення використовується для блимання стрілок одна за одною."
|
||||
|
||||
# gui/game/screens.rpy:1235
|
||||
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
|
||||
new "## Ми повинні використовувати шрифт із гліфом МАЛЕНЬКИЙ ЧОРНИЙ ТРИКУТНИК ВПРАВО."
|
||||
new "## Ми маємо використовувати шрифт, в якому є гліф «BLACK RIGHT-POINTING SMALL TRIANGLE»."
|
||||
|
||||
# gui/game/screens.rpy:1240
|
||||
old "## Notify screen"
|
||||
new "## Екран сповіщень"
|
||||
new "## Екран оповіщення"
|
||||
|
||||
# gui/game/screens.rpy:1242
|
||||
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
|
||||
new "## Екран сповіщень використовується, щоб показати гравцеві повідомлення. (Наприклад, коли гра швидко збережена або зроблено знімок екрана.)"
|
||||
new "## Екран оповіщення використовується, щоб показати гравцеві повідомлення. (Наприклад, коли гру збережено або зроблено знімок екрана)."
|
||||
|
||||
# gui/game/screens.rpy:1245
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
@@ -635,15 +635,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1294
|
||||
old "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Відображає діалог у vpgrid або vbox."
|
||||
new "## Показує діалог у типі «vpgrid» або «vbox»."
|
||||
|
||||
# gui/game/screens.rpy:1307
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
|
||||
new "## Відображає меню, якщо є. Меню може відображатися неправильно, якщо для config.narrator_menu задано значення True."
|
||||
new "## Показує меню, якщо його задано. Меню може показуватися некоректно, якщо «config.narrator_menu» має значення «True»."
|
||||
|
||||
# gui/game/screens.rpy:1337
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## Це визначає максимальну кількість записів у режимі NVL, які можуть бути відображені одночасно."
|
||||
new "## Цей параметр контролює максимальну кількість реплік у режимі NVL, які можуть бути показані одночасно."
|
||||
|
||||
# gui/game/screens.rpy:1399
|
||||
old "## Mobile Variants"
|
||||
@@ -669,11 +669,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1410
|
||||
old "## Bubble screen"
|
||||
new "## Екран з бульбашками"
|
||||
new "## Екран бульбашок"
|
||||
|
||||
# gui/game/screens.rpy:1412
|
||||
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
|
||||
new "## Екран бульбашок використовується для показу діалогу гравцеві під час використання мовних бульбашок. Екран бульбашок має ті самі параметри, що й екран слів, має створювати елемент відображення з ідентифікатором «what», а також може створювати елементи відображення з ідентифікаторами «namebox», «who» і «window»."
|
||||
new "## Екран бульбашок використовується для показу діалогу гравцеві під час використання мовних бульбашок. Екран бульбашок має ті самі параметри, що й екран промови, має створювати об’єкт з ідентифікатором «what», а також може створювати об’єкти з ідентифікаторами «namebox», «who» і «window»."
|
||||
|
||||
# gui/game/screens.rpy:1417
|
||||
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# У цьому файлі міститься скрипт гри.
|
||||
# У цьому файлі міститься сценарій гри.
|
||||
|
||||
# Оголошення персонажів, які використовуються в цій грі. Колірний аргумент розфарбовує
|
||||
# ім’я персонажа.
|
||||
# Визначення персонажів для гри.
|
||||
# Аргумент color змінює колір ім’я персонажа.
|
||||
|
||||
define e = Character("Ейлін")
|
||||
|
||||
@@ -10,23 +10,23 @@ define e = Character("Ейлін")
|
||||
|
||||
label start:
|
||||
|
||||
# Це показує тло. За стандратом використовується заповнювач, але ви можете
|
||||
# Показ тла. Типово використовується заповнювач, але ви можете
|
||||
# додати файл (з назвою «bg room.png» або «bg room.jpg») до
|
||||
# теки images, щоб показати його.
|
||||
|
||||
scene bg room
|
||||
|
||||
# Це показує спрайт персонажа. Використовується заповнювач, але ви можете
|
||||
# замінити його, додавши до зображень файл із назвою «eileen happy.png».
|
||||
# до теки.
|
||||
# Наступний рядок показує спрайт персонажа. Тут використано заповнювач,
|
||||
# але ви можете замінити його, додавши файл з назвою «eileen happy.png»,
|
||||
# до теки images.
|
||||
|
||||
show eileen happy
|
||||
|
||||
# Це репліки діалогу.
|
||||
# Ці рядки показують репліки діалогу.
|
||||
|
||||
e "Ви створили нову гру Ren'Py."
|
||||
|
||||
e "Додавши історію, зображення та музику, ви можете оприлюднити це світові!"
|
||||
e "Додавши сюжет, зображення та музику, ви зможете оприлюднити її світові!"
|
||||
|
||||
# На цьому гра закінчується.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -17,6 +17,8 @@ root = ""
|
||||
|
||||
import renpy
|
||||
|
||||
class BannedException(Exception):
|
||||
pass
|
||||
|
||||
class WebHandler(http.server.BaseHTTPRequestHandler):
|
||||
|
||||
@@ -59,7 +61,13 @@ class WebHandler(http.server.BaseHTTPRequestHandler):
|
||||
None, in which case the caller has nothing further to do.
|
||||
|
||||
"""
|
||||
path = self.translate_path(self.path)
|
||||
|
||||
try:
|
||||
path = self.translate_path(self.path)
|
||||
except BannedException:
|
||||
self.send_error(403, "File not found")
|
||||
return None
|
||||
|
||||
f = None
|
||||
if os.path.isdir(path):
|
||||
parts = urllib.parse.urlsplit(self.path)
|
||||
@@ -192,6 +200,9 @@ class WebHandler(http.server.BaseHTTPRequestHandler):
|
||||
path = root
|
||||
|
||||
for word in words:
|
||||
if word.startswith("."):
|
||||
raise BannedException("Invalid path.")
|
||||
|
||||
if os.path.dirname(word) or word in (os.curdir, os.pardir):
|
||||
# Ignore components that are not a simple file/directory name
|
||||
continue
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
# -*- python -*-
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -8,25 +8,12 @@ cdef extern from "stdlib.h":
|
||||
cdef extern from "pyfreetype.h":
|
||||
#ftconfig.h
|
||||
#Some tweaking may be needed on a platform-by-platform basis
|
||||
DEF FT_SIZEOF_INT = 4
|
||||
DEF FT_SIZEOF_LONG = 4
|
||||
|
||||
ctypedef signed short FT_Int16
|
||||
ctypedef unsigned short FT_UInt16
|
||||
IF FT_SIZEOF_INT == 4:
|
||||
ctypedef signed int FT_Int32
|
||||
ctypedef unsigned int FT_UInt32
|
||||
ELIF FT_SIZEOF_LONG == 4:
|
||||
ctypedef signed long FT_Int32
|
||||
ctypedef unsigned long FT_UInt32
|
||||
|
||||
IF FT_SIZEOF_INT >= 4:
|
||||
ctypedef int FT_Fast
|
||||
ctypedef unsigned int FT_UFast
|
||||
ELIF FT_SIZEOF_LONG >= 4:
|
||||
ctypedef long FT_Fast
|
||||
ctypedef unsigned long FT_UFast
|
||||
|
||||
ctypedef signed int FT_Int32
|
||||
ctypedef unsigned int FT_UInt32
|
||||
ctypedef int FT_Fast
|
||||
ctypedef unsigned int FT_UFast
|
||||
|
||||
# Moved up.
|
||||
cdef struct FT_ModuleRec_
|
||||
|
||||
@@ -1202,7 +1202,7 @@ void RPS_set_secondary_volume(int channel, float vol2, float delay) {
|
||||
/**
|
||||
* Replaces audio filters with the given PyObject.
|
||||
*/
|
||||
void RPS_replace_audio_filter(int channel, PyObject *new_filter) {
|
||||
void RPS_replace_audio_filter(int channel, PyObject *new_filter, int primary) {
|
||||
|
||||
struct Channel *c;
|
||||
|
||||
@@ -1214,10 +1214,13 @@ void RPS_replace_audio_filter(int channel, PyObject *new_filter) {
|
||||
|
||||
LOCK_AUDIO();
|
||||
|
||||
if (c->playing_audio_filter) {
|
||||
Py_DECREF(c->playing_audio_filter);
|
||||
Py_INCREF(new_filter);
|
||||
c->playing_audio_filter = new_filter;
|
||||
if (primary) {
|
||||
|
||||
if (c->playing_audio_filter) {
|
||||
Py_DECREF(c->playing_audio_filter);
|
||||
Py_INCREF(new_filter);
|
||||
c->playing_audio_filter = new_filter;
|
||||
}
|
||||
}
|
||||
|
||||
if (c->queued_audio_filter) {
|
||||
|
||||
@@ -43,7 +43,7 @@ void RPS_set_volume(int channel, float volume);
|
||||
float RPS_get_volume(int channel);
|
||||
void RPS_set_pan(int channel, float pan, float delay);
|
||||
void RPS_set_secondary_volume(int channel, float vol2, float delay);
|
||||
void RPS_replace_audio_filter(int channel, PyObject *audio_filter);
|
||||
void RPS_replace_audio_filter(int channel, PyObject *audio_filter, int primary);
|
||||
|
||||
int RPS_video_ready(int channel);
|
||||
PyObject *RPS_read_video(int channel);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# This file is part of Ren'Py. The license below applies to Ren'Py only.
|
||||
# Games and other projects that use Ren'Py may use a different license.
|
||||
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+8
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -43,11 +43,17 @@ from renpy.parameter import Parameter, Signature, ParameterInfo, ArgumentInfo, \
|
||||
apply_arguments, EMPTY_PARAMETERS, EMPTY_ARGUMENTS
|
||||
|
||||
|
||||
# The name of the current statement.
|
||||
current_statement_name = "init"
|
||||
|
||||
def statement_name(name):
|
||||
"""
|
||||
Reports the name of this statement to systems like window auto.
|
||||
"""
|
||||
|
||||
global current_statement_name
|
||||
current_statement_name = name
|
||||
|
||||
for i in renpy.config.statement_callbacks:
|
||||
i(name)
|
||||
|
||||
@@ -2162,6 +2168,7 @@ EARLY_CONFIG = {
|
||||
"check_translate_none",
|
||||
"defer_tl_scripts",
|
||||
"munge_in_strings",
|
||||
"interface_layer",
|
||||
}
|
||||
|
||||
define_statements = [ ]
|
||||
|
||||
+12
-11
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -1146,6 +1146,16 @@ compatible_pairs = [
|
||||
# values of the variables here.
|
||||
|
||||
|
||||
def check_spline_types(value):
|
||||
if isinstance(value, (position, int, float)):
|
||||
return True
|
||||
|
||||
if isinstance(value, tuple):
|
||||
return all(check_spline_types(i) for i in value)
|
||||
|
||||
return False
|
||||
|
||||
|
||||
class RawMultipurpose(RawStatement):
|
||||
|
||||
warp_function = None
|
||||
@@ -1208,15 +1218,6 @@ class RawMultipurpose(RawStatement):
|
||||
|
||||
compiling(self.loc)
|
||||
|
||||
def check_spline_types(value):
|
||||
if isinstance(value, (position, int, float)):
|
||||
return True
|
||||
|
||||
if isinstance(value, tuple):
|
||||
return all(check_spline_types(i) for i in value)
|
||||
|
||||
return False
|
||||
|
||||
# Figure out what kind of statement we have. If there's no
|
||||
# interpolator, and no properties, than we have either a
|
||||
# call, or a child statement.
|
||||
@@ -1333,7 +1334,7 @@ class RawMultipurpose(RawStatement):
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
if isinstance(i, ATLTransformBase):
|
||||
if isinstance(i, ATLTransformBase) and (i.child is None):
|
||||
i.atl.predict(ctx)
|
||||
return
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+56
-19
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -91,11 +91,13 @@ class AudioData(str):
|
||||
"""
|
||||
:doc: audio
|
||||
|
||||
This class wraps a bytes object containing audio data, so it can be
|
||||
passed to the audio playback system. The audio data should be contained
|
||||
This class wraps a bytes object containing audio or video data, so it can be
|
||||
passed to the audio/video playback system. The audio or video data should be contained
|
||||
in some format Ren'Py supports. (For examples RIFF WAV format headers,
|
||||
not unadorned samples.)
|
||||
|
||||
Despite the name, this can be used to represent video data as well as audio data.
|
||||
|
||||
`data`
|
||||
A bytes object containing the audio file data.
|
||||
|
||||
@@ -104,6 +106,9 @@ class AudioData(str):
|
||||
suggest the format `data` is in, and is reported as part of
|
||||
error messages.
|
||||
|
||||
If this starts with angle bracket, it can supply properties to
|
||||
the audio, like from and to times.
|
||||
|
||||
Once created, this can be used wherever an audio filename is allowed. For
|
||||
example::
|
||||
|
||||
@@ -225,8 +230,9 @@ class Channel(object):
|
||||
|
||||
# The audio filter to use.
|
||||
audio_filter = None
|
||||
raw_audio_filter = None
|
||||
|
||||
def __init__(self, name, default_loop, stop_on_mute, tight, file_prefix, file_suffix, buffer_queue, movie, framedrop):
|
||||
def __init__(self, name, default_loop, stop_on_mute, tight, file_prefix, file_suffix, buffer_queue, movie, framedrop, synchro_start):
|
||||
|
||||
# The name assigned to this channel. This is used to look up
|
||||
# information about the channel in the MusicContext object.
|
||||
@@ -263,6 +269,9 @@ class Channel(object):
|
||||
# once all channels are ready.
|
||||
self.synchro_start = False
|
||||
|
||||
# Does this participate in synchro start by default.
|
||||
self.default_synchro_start = synchro_start
|
||||
|
||||
# The time the music in this channel was last changed.
|
||||
self.last_changed = 0
|
||||
|
||||
@@ -356,9 +365,12 @@ class Channel(object):
|
||||
ExecutionContext to point to the copy, and returns the copy.
|
||||
"""
|
||||
|
||||
mcd = renpy.game.context().music
|
||||
context = renpy.game.context()
|
||||
mcd = dict(context.music)
|
||||
context.music = mcd
|
||||
|
||||
ctx = self.get_context().copy()
|
||||
|
||||
mcd[self.name] = ctx
|
||||
return ctx
|
||||
|
||||
@@ -392,8 +404,7 @@ class Channel(object):
|
||||
except Exception:
|
||||
raise exception("expected channel, got {!r}.".format(v))
|
||||
|
||||
if isinstance(filename, AudioData):
|
||||
return filename, 0, -1
|
||||
original_filename = filename
|
||||
|
||||
m = re.match(r'<(.*)>(.*)', filename)
|
||||
if not m:
|
||||
@@ -434,6 +445,9 @@ class Channel(object):
|
||||
if (loop is not None) and looped:
|
||||
start = loop
|
||||
|
||||
if isinstance(original_filename, AudioData):
|
||||
fn = AudioData(original_filename.data, fn)
|
||||
|
||||
return fn, start, end
|
||||
|
||||
def periodic(self):
|
||||
@@ -444,7 +458,11 @@ class Channel(object):
|
||||
|
||||
# Update the channel volume.
|
||||
|
||||
mixer_volume = renpy.game.preferences.volumes.get(self.mixer, 1.0)
|
||||
if self.mixer:
|
||||
mixer_volume = renpy.game.preferences.volumes.get(self.mixer, 1.0)
|
||||
else:
|
||||
mixer_volume = 1.0
|
||||
|
||||
main_volume = renpy.game.preferences.volumes.get("main", 1.0)
|
||||
|
||||
if renpy.game.preferences.self_voicing:
|
||||
@@ -680,6 +698,7 @@ class Channel(object):
|
||||
|
||||
old_raw_audio_filter = self.context.raw_audio_filter
|
||||
self.context.raw_audio_filter = audio_filter
|
||||
self.raw_audio_filter = audio_filter
|
||||
|
||||
if old_raw_audio_filter is None and audio_filter is None:
|
||||
new_audio_filter = None
|
||||
@@ -691,13 +710,19 @@ class Channel(object):
|
||||
|
||||
self.context.audio_filter = new_audio_filter
|
||||
|
||||
for q in self.queue:
|
||||
q.audio_filter = new_audio_filter
|
||||
|
||||
if replace:
|
||||
for q in self.queue:
|
||||
q.audio_filter = new_audio_filter
|
||||
renpysound.replace_audio_filter(self.number, new_audio_filter, 1)
|
||||
else:
|
||||
renpysound.replace_audio_filter(self.number, new_audio_filter, 0)
|
||||
|
||||
renpysound.replace_audio_filter(self.number, new_audio_filter)
|
||||
|
||||
def enqueue(self, filenames, loop=True, synchro_start=False, fadein=0, tight=None, loop_only=False, relative_volume=1.0):
|
||||
def enqueue(self, filenames, loop=True, synchro_start=None, fadein=0, tight=None, loop_only=False, relative_volume=1.0):
|
||||
|
||||
if synchro_start is None:
|
||||
synchro_start = self.default_synchro_start
|
||||
|
||||
with lock:
|
||||
|
||||
@@ -838,7 +863,8 @@ def register_channel(name,
|
||||
buffer_queue=True,
|
||||
movie=False,
|
||||
framedrop=True,
|
||||
force=False):
|
||||
force=False,
|
||||
synchro_start=None):
|
||||
"""
|
||||
:doc: audio
|
||||
:args: (name, mixer, loop=None, stop_on_mute=True, tight=False, file_prefix="", file_suffix="", buffer_queue=True, movie=False, framedrop=True)
|
||||
@@ -889,15 +915,26 @@ def register_channel(name,
|
||||
This controls what a video does when lagging. If true, frames will
|
||||
be dropped to keep up with realtime and the soundtrack. If false,
|
||||
Ren'Py will display frames late rather than dropping them.
|
||||
|
||||
`synchro_start`
|
||||
Does this channel participate in synchro start? Synchro start determines if
|
||||
the channel will start playing at the same time as other channels. If None,
|
||||
this defaults to `loop` if `movie` is False, and False otherwise.
|
||||
"""
|
||||
|
||||
if name == "movie":
|
||||
movie = True
|
||||
|
||||
if synchro_start is None:
|
||||
if movie:
|
||||
synchro_start = False
|
||||
else:
|
||||
synchro_start = loop
|
||||
|
||||
if not force and not renpy.game.context().init_phase and (" " not in name):
|
||||
raise Exception("Can't register channel outside of init phase.")
|
||||
|
||||
c = Channel(name, loop, stop_on_mute, tight, file_prefix, file_suffix, buffer_queue, movie=movie, framedrop=framedrop)
|
||||
c = Channel(name, loop, stop_on_mute, tight, file_prefix, file_suffix, buffer_queue, movie=movie, framedrop=framedrop, synchro_start=synchro_start)
|
||||
|
||||
c.mixer = mixer
|
||||
|
||||
@@ -1016,7 +1053,7 @@ def init():
|
||||
pcm_ok = True
|
||||
except Exception:
|
||||
|
||||
renpy.display.log.write("Sound init failed. Proceeding anyway.")
|
||||
renpy.display.log.write("Audio and video init failed. Proceeding anyway.")
|
||||
renpy.display.log.exception()
|
||||
|
||||
os.environ["SDL_AUDIODRIVER"] = "dummy"
|
||||
@@ -1233,9 +1270,6 @@ def interact():
|
||||
|
||||
c.interact()
|
||||
|
||||
# if _music_volumes.get(i, 1.0) != c.chan_volume:
|
||||
# c.set_volume(_music_volumes.get(i, 1.0))
|
||||
|
||||
ctx = c.context
|
||||
|
||||
# If we're in the same music change, then do nothing with the
|
||||
@@ -1246,11 +1280,14 @@ def interact():
|
||||
filenames = ctx.last_filenames
|
||||
tight = ctx.last_tight
|
||||
|
||||
if ctx.raw_audio_filter != c.raw_audio_filter:
|
||||
c.set_audio_filter(ctx.raw_audio_filter, True)
|
||||
|
||||
if c.loop != filenames:
|
||||
c.fadeout(max(renpy.config.context_fadeout_music, renpy.config.fadeout_audio))
|
||||
|
||||
if filenames:
|
||||
c.enqueue(filenames, loop=True, synchro_start=True, tight=tight, fadein=renpy.config.context_fadein_music, relative_volume=ctx.last_relative_volume)
|
||||
c.enqueue(filenames, loop=True, synchro_start=c.default_synchro_start, tight=tight, fadein=renpy.config.context_fadein_music, relative_volume=ctx.last_relative_volume)
|
||||
|
||||
c.last_changed = ctx.last_changed
|
||||
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
ctypedef void (*apply_audio_filter_type)(object, float *, int, int, int)
|
||||
ctypedef void (*apply_audio_filter_type)(object, float *, int, int, int) noexcept
|
||||
|
||||
cdef apply_audio_filter_type *get_apply_audio_filter()
|
||||
|
||||
+18
-19
@@ -1,5 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
1#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
# (the "Software"), to deal in the Software without restriction,
|
||||
@@ -60,7 +59,7 @@ cdef struct SampleBuffer:
|
||||
# A linked list of sample buffers with 0-16 subchannels.
|
||||
cdef SampleBuffer *free_buffers[SUBCHANNELS+1]
|
||||
|
||||
cdef SampleBuffer *allocate_buffer(int subchannels, int length) nogil:
|
||||
cdef SampleBuffer *allocate_buffer(int subchannels, int length) noexcept nogil:
|
||||
"""
|
||||
Allocates a sample buffer.
|
||||
"""
|
||||
@@ -91,7 +90,7 @@ cdef SampleBuffer *allocate_buffer(int subchannels, int length) nogil:
|
||||
return buf
|
||||
|
||||
|
||||
cdef void free_buffer(SampleBuffer *buf) nogil:
|
||||
cdef void free_buffer(SampleBuffer *buf) noexcept nogil:
|
||||
"""
|
||||
Frees a sample buffer, by putting it back on the free list.
|
||||
"""
|
||||
@@ -123,7 +122,7 @@ cdef class AudioFilter:
|
||||
|
||||
raise NotImplementedError("prepare")
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
"""
|
||||
Applies the filter to the given samples.
|
||||
"""
|
||||
@@ -157,7 +156,7 @@ cdef class Null(AudioFilter):
|
||||
def prepare(self, int samplerate):
|
||||
pass
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
cdef SampleBuffer *result = allocate_buffer(samples.subchannels, samples.length)
|
||||
memcpy(result.samples, samples.samples, samples.length * samples.subchannels * sizeof(float))
|
||||
return result
|
||||
@@ -188,7 +187,7 @@ cdef class FilterList:
|
||||
def __dealloc__(self):
|
||||
free(self.filters)
|
||||
|
||||
cdef SampleBuffer *apply(self, int index, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, int index, SampleBuffer *samples) noexcept nogil:
|
||||
return (<AudioFilter> self.filters[index]).apply(samples)
|
||||
|
||||
def __iter__(self):
|
||||
@@ -223,7 +222,7 @@ cdef class Sequence(AudioFilter):
|
||||
for f in self.filters:
|
||||
f.prepare(samplerate)
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *result
|
||||
cdef SampleBuffer *old_result = samples
|
||||
@@ -408,7 +407,7 @@ cdef class Biquad(AudioFilter):
|
||||
self.cy2 = a2 / a0
|
||||
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *result = allocate_buffer(samples.subchannels, samples.length)
|
||||
cdef int i, j
|
||||
@@ -634,7 +633,7 @@ cdef class Crossfade(AudioFilter):
|
||||
|
||||
self.duration_samples = int(self.duration * samplerate)
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *result1
|
||||
cdef SampleBuffer *result2
|
||||
@@ -705,7 +704,7 @@ cdef class Mix(AudioFilter):
|
||||
for f in self.filters:
|
||||
f.prepare(samplerate)
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *result = NULL
|
||||
cdef SampleBuffer *temp
|
||||
@@ -744,7 +743,7 @@ cdef class Multiply(AudioFilter):
|
||||
def prepare(self, int samplerate):
|
||||
return
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *result
|
||||
cdef int i, j
|
||||
@@ -807,7 +806,7 @@ cdef class DelayBuffer:
|
||||
def __dealloc__(self):
|
||||
free(self.buffer)
|
||||
|
||||
cdef void queue(self, SampleBuffer *samples) nogil:
|
||||
cdef void queue(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef int i, j
|
||||
|
||||
@@ -816,7 +815,7 @@ cdef class DelayBuffer:
|
||||
self.buffer[self.write_index[j]] = samples.samples[i * samples.subchannels + j]
|
||||
self.write_index[j] = (self.write_index[j] + 1) % self.length
|
||||
|
||||
cdef SampleBuffer * dequeue(self, int subchannels, int length) nogil:
|
||||
cdef SampleBuffer * dequeue(self, int subchannels, int length) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *result = allocate_buffer(subchannels, length)
|
||||
cdef int i, j
|
||||
@@ -865,7 +864,7 @@ cdef class Delay(AudioFilter):
|
||||
if self.buffer is None and self.max_delay >= 0.01:
|
||||
self.buffer = DelayBuffer(self.delay, samplerate, SUBCHANNELS)
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
cdef SampleBuffer *result
|
||||
|
||||
if self.max_delay < 0.01:
|
||||
@@ -936,7 +935,7 @@ cdef class Comb(AudioFilter):
|
||||
|
||||
self.filter.prepare(samplerate)
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *delayed
|
||||
cdef SampleBuffer *result
|
||||
@@ -1001,7 +1000,7 @@ cdef class WetDry(AudioFilter):
|
||||
def prepare(self, int samplerate):
|
||||
self.filter.prepare(samplerate)
|
||||
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) nogil:
|
||||
cdef SampleBuffer *apply(self, SampleBuffer *samples) noexcept nogil:
|
||||
|
||||
cdef SampleBuffer *result
|
||||
cdef SampleBuffer *filtered
|
||||
@@ -1107,7 +1106,7 @@ def to_audio_filter(o):
|
||||
raise TypeError("Expected an AudioFilter, got {!r}.".format(o))
|
||||
|
||||
|
||||
cdef void apply_audio_filter(AudioFilter af, float *samples, int subchannels, int length, int samplerate) nogil:
|
||||
cdef void apply_audio_filter(AudioFilter af, float *samples, int subchannels, int length, int samplerate) noexcept nogil:
|
||||
"""
|
||||
:undocumented:
|
||||
"""
|
||||
@@ -1140,5 +1139,5 @@ cdef void apply_audio_filter(AudioFilter af, float *samples, int subchannels, in
|
||||
return
|
||||
|
||||
|
||||
cdef apply_audio_filter_type *get_apply_audio_filter():
|
||||
cdef apply_audio_filter_type *get_apply_audio_filter() noexcept:
|
||||
return <apply_audio_filter_type *> apply_audio_filter
|
||||
|
||||
+12
-2
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -34,7 +34,7 @@ from renpy.audio.audio import get_channel, get_serial
|
||||
from renpy.audio.audio import register_channel, alias_channel
|
||||
|
||||
|
||||
def play(filenames, channel="music", loop=None, fadeout=None, synchro_start=True, fadein=0, tight=None, if_changed=False, relative_volume=1.0):
|
||||
def play(filenames, channel="music", loop=None, fadeout=None, synchro_start=None, fadein=0, tight=None, if_changed=False, relative_volume=1.0):
|
||||
"""
|
||||
:doc: audio
|
||||
|
||||
@@ -62,6 +62,8 @@ def play(filenames, channel="music", loop=None, fadeout=None, synchro_start=True
|
||||
channels start playing. This is useful when playing two audio files that
|
||||
are meant to be synchronized with each other.
|
||||
|
||||
If None, this takes its value from the channel.
|
||||
|
||||
`fadein`
|
||||
This is the number of seconds to fade the music in for, on the
|
||||
first loop only.
|
||||
@@ -660,11 +662,19 @@ def set_audio_filter(channel, audio_filter, replace=False, duration=0.016):
|
||||
The duration to change from the current to the new filter, in seconds.
|
||||
This prevents a popping sound when changing filters.
|
||||
"""
|
||||
|
||||
replace = replace or renpy.game.after_rollback
|
||||
|
||||
if audio_filter is not None:
|
||||
audio_filter = renpy.audio.filter.to_audio_filter(audio_filter)
|
||||
|
||||
try:
|
||||
c = renpy.audio.audio.get_channel(channel)
|
||||
ctx = c.copy_context()
|
||||
|
||||
t = get_serial()
|
||||
ctx.last_changed = t
|
||||
|
||||
c.set_audio_filter(audio_filter, replace=replace, duration=duration)
|
||||
except Exception:
|
||||
if renpy.config.debug_sound:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -74,7 +74,7 @@ cdef extern from "renpysound_core.h":
|
||||
float RPS_get_volume(int channel)
|
||||
void RPS_set_pan(int channel, float pan, float delay)
|
||||
void RPS_set_secondary_volume(int channel, float vol2, float delay)
|
||||
void RPS_replace_audio_filter(int channel, object audio_filter)
|
||||
void RPS_replace_audio_filter(int channel, object audio_filter, int primary)
|
||||
|
||||
void RPS_advance_time()
|
||||
int RPS_video_ready(int channel)
|
||||
@@ -95,7 +95,7 @@ cdef extern from "renpysound_core.h":
|
||||
|
||||
|
||||
from renpy.audio.filter cimport get_apply_audio_filter
|
||||
RPS_apply_audio_filter = <void (*)(object, float *, int, int, int)> get_apply_audio_filter()
|
||||
RPS_apply_audio_filter = <void (*)(object, float *, int, int, int) noexcept> get_apply_audio_filter()
|
||||
|
||||
|
||||
def check_error():
|
||||
@@ -343,15 +343,19 @@ def set_secondary_volume(channel, volume, delay):
|
||||
check_error()
|
||||
|
||||
|
||||
def replace_audio_filter(channel, audio_filter):
|
||||
def replace_audio_filter(channel, audio_filter, playing):
|
||||
"""
|
||||
Replaces the audio filter for `channel` with `audio_filter`.
|
||||
|
||||
`playing`
|
||||
If true, the filter is applied to the currently playing file and queued file. If false,
|
||||
the filter is only applied to the queued file.
|
||||
"""
|
||||
|
||||
if audio_filter is not None:
|
||||
audio_filter.prepare(get_sample_rate())
|
||||
|
||||
RPS_replace_audio_filter(channel, audio_filter)
|
||||
RPS_replace_audio_filter(channel, audio_filter, playing)
|
||||
|
||||
|
||||
def deallocate_audio_filter(audio_filter):
|
||||
@@ -514,7 +518,7 @@ def set_generate_audio_c_function(fn):
|
||||
import ctypes
|
||||
fn = ctypes.cast(fn, ctypes.c_void_p).value
|
||||
|
||||
RPS_generate_audio_c_function = <void (*)(float *, int)> <uintptr_t> fn
|
||||
RPS_generate_audio_c_function = <void (*)(float *, int) noexcept> <uintptr_t> fn
|
||||
|
||||
|
||||
# Store the sample surfaces so they stay alive.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -352,14 +352,14 @@ def set_secondary_volume(channel, volume, delay):
|
||||
|
||||
|
||||
@proxy_with_channel
|
||||
def replace_audio_filter(channel, audio_filter):
|
||||
def replace_audio_filter(channel, audio_filter, primary):
|
||||
"""
|
||||
Replaces the audio filter for `channel` with `audio_filter`.
|
||||
"""
|
||||
|
||||
afid = load_audio_filter(audio_filter)
|
||||
|
||||
call("replace_audio_filter", channel, afid)
|
||||
call("replace_audio_filter", channel, afid, primary)
|
||||
|
||||
|
||||
def audio_filter_constructor(f):
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+13
-6
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -43,11 +43,12 @@ class Callbacks(object):
|
||||
This stores and calls the character callbacks.
|
||||
"""
|
||||
|
||||
def __init__(self, callbacks, interact, type, cb_args):
|
||||
def __init__(self, callbacks, interact, type, cb_args, multiple):
|
||||
self.callbacks = callbacks
|
||||
self.interact = interact
|
||||
self.type = type
|
||||
self.cb_args = cb_args
|
||||
self.multiple = multiple # type: tuple[int, int]|None
|
||||
|
||||
self.what = None # type: str|None
|
||||
self.start = None # type: int|None
|
||||
@@ -79,6 +80,9 @@ class Callbacks(object):
|
||||
if self.last_segment is not None:
|
||||
kwargs["last_segment"] = self.last_segment
|
||||
|
||||
if self.multiple is not None:
|
||||
kwargs["multiple"] = self.multiple
|
||||
|
||||
kwargs["please_ignore_unknown_keyword_arguments"] = None
|
||||
|
||||
kwargs.update(self.cb_args)
|
||||
@@ -87,7 +91,7 @@ class Callbacks(object):
|
||||
c(*args, **kwargs)
|
||||
|
||||
def copy(self):
|
||||
rv = Callbacks(self.callbacks, self.interact, self.type, self.cb_args)
|
||||
rv = Callbacks(self.callbacks, self.interact, self.type, self.cb_args, self.multiple)
|
||||
rv.__dict__.update(self.__dict__)
|
||||
return rv
|
||||
|
||||
@@ -566,7 +570,7 @@ def display_say(
|
||||
callback = [ callback ]
|
||||
|
||||
callback = renpy.config.all_character_callbacks + callback
|
||||
callback = Callbacks(callback, interact, type, cb_args)
|
||||
callback = Callbacks(callback, interact, type, cb_args, multiple)
|
||||
|
||||
roll_forward = renpy.exports.roll_forward_info()
|
||||
|
||||
@@ -710,7 +714,10 @@ def display_say(
|
||||
if scry.extend_text is renpy.ast.DoesNotExtend:
|
||||
break
|
||||
elif scry.extend_text is not None:
|
||||
extend_text += scry.extend_text
|
||||
try:
|
||||
extend_text += renpy.substitutions.substitute(scry.extend_text, scope=None, force=False, translate=True)[0]
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
scry = scry.next()
|
||||
scry_count += 1
|
||||
@@ -790,7 +797,7 @@ def display_say(
|
||||
|
||||
slow = False
|
||||
|
||||
pause_callback("show_done")
|
||||
pause_callback("show_done")
|
||||
|
||||
if not slow:
|
||||
slow_done()
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -408,10 +408,11 @@ init -1500 python:
|
||||
layout.yesno_screen(layout.OVERWRITE_SAVE, FileSave(self.name, False, False, self.page, cycle=self.cycle, slot=self.slot, action=self.action))
|
||||
return
|
||||
|
||||
if self.cycle:
|
||||
renpy.renpy.loadsave.cycle_saves(__slotname("", self.page, self.slot), config.quicksave_slots)
|
||||
with renpy.savelocation.SyncfsLock():
|
||||
if self.cycle:
|
||||
renpy.renpy.loadsave.cycle_saves(__slotname("", self.page, self.slot), config.quicksave_slots)
|
||||
|
||||
renpy.save(fn, extra_info=save_name)
|
||||
renpy.save(fn, extra_info=save_name)
|
||||
|
||||
renpy.restart_interaction()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -300,6 +300,11 @@ init -1500 python:
|
||||
if not self.get_sensitive():
|
||||
return
|
||||
|
||||
if config.skipping:
|
||||
config.skipping = None
|
||||
renpy.restart_interaction()
|
||||
return
|
||||
|
||||
if self.confirm:
|
||||
if self.fast:
|
||||
if _preferences.skip_unseen:
|
||||
@@ -317,14 +322,10 @@ init -1500 python:
|
||||
else:
|
||||
renpy.jump("_return_skipping")
|
||||
else:
|
||||
|
||||
if not config.skipping:
|
||||
if self.fast:
|
||||
config.skipping = "fast"
|
||||
else:
|
||||
config.skipping = "slow"
|
||||
if self.fast:
|
||||
config.skipping = "fast"
|
||||
else:
|
||||
config.skipping = None
|
||||
config.skipping = "slow"
|
||||
|
||||
renpy.restart_interaction()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -69,6 +69,37 @@ init -1500 python:
|
||||
else:
|
||||
return false
|
||||
|
||||
|
||||
class _ActionList(Action, DictEquality):
|
||||
"""
|
||||
:undocumented:
|
||||
|
||||
Encapsulates a list of actions, so that they can be treated as a single action,
|
||||
for the purposes of SelectedIf and SensitiveIf.
|
||||
"""
|
||||
|
||||
def __init__(self, actions):
|
||||
self.actions = actions
|
||||
|
||||
def get_selected(self):
|
||||
return renpy.display.behavior.is_selected(self.actions)
|
||||
|
||||
def get_sensitive(self):
|
||||
return renpy.display.behavior.is_sensitive(self.actions)
|
||||
|
||||
def get_tooltip(self):
|
||||
return renpy.display.behavior.get_tooltip(self.actions)
|
||||
|
||||
def periodic(self, st):
|
||||
return renpy.display.behavior.run_periodic(self.actions, st)
|
||||
|
||||
def unhovered(self):
|
||||
return renpy.display.behavior.run_unhovered(self.actions)
|
||||
|
||||
def __call__(self):
|
||||
return renpy.run(self.actions)
|
||||
|
||||
|
||||
@renpy.pure
|
||||
class SelectedIf(Action, DictEquality):
|
||||
"""
|
||||
@@ -89,10 +120,13 @@ init -1500 python:
|
||||
# Note: This had been documented to take a boolean.
|
||||
|
||||
def __init__(self, expression):
|
||||
if isinstance(expression, (list, tuple)):
|
||||
expression = _ActionList(expression)
|
||||
|
||||
self.expression = expression
|
||||
|
||||
if isinstance(expression, Action):
|
||||
for i in ("get_selected", "get_sensitive", "get_tooltip", "periodic", "unhovered"):
|
||||
for i in ("get_selected", "get_sensitive", "get_tooltip", "periodic", "unhovered", "alt"):
|
||||
setattr(self, i, getattr(expression, i, None))
|
||||
|
||||
def __call__(self):
|
||||
@@ -123,10 +157,13 @@ init -1500 python:
|
||||
# Note: This had been documented to take a boolean.
|
||||
|
||||
def __init__(self, expression):
|
||||
if isinstance(expression, (list, tuple)):
|
||||
expression = _ActionList(expression)
|
||||
|
||||
self.expression = expression
|
||||
|
||||
if isinstance(expression, Action):
|
||||
for i in ("get_selected", "get_sensitive", "get_tooltip", "periodic", "unhovered"):
|
||||
for i in ("get_selected", "get_sensitive", "get_tooltip", "periodic", "unhovered", "alt"):
|
||||
setattr(self, i, getattr(expression, i, None))
|
||||
|
||||
def __call__(self):
|
||||
@@ -173,11 +210,7 @@ init -1500 python:
|
||||
self.url = url
|
||||
|
||||
def __call__(self):
|
||||
try:
|
||||
import webbrowser
|
||||
webbrowser.open_new(self.url)
|
||||
except Exception:
|
||||
pass
|
||||
renpy.open_url(self.url)
|
||||
|
||||
class With(Action, DictEquality):
|
||||
"""
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -163,7 +163,6 @@ init -1500 python in build:
|
||||
("*.dll", None),
|
||||
("*.manifest", None),
|
||||
("*.keystore", None),
|
||||
( "**.rpe", None),
|
||||
( "**.rpe.py", None),
|
||||
|
||||
("update.pem", None),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user