Compare commits
196 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d5b8b8ca53 | |||
| 820647de5f | |||
| 0eaaff325c | |||
| 6b0b672546 | |||
| 787a053e8d | |||
| 392a3fead1 | |||
| f1fbbc740d | |||
| db9ffb706e | |||
| ccfdb991ac | |||
| 891eea363c | |||
| c472ecdddc | |||
| 8da9a6c415 | |||
| a4058b8c5f | |||
| 099c372b28 | |||
| ec16d57d3f | |||
| 327653a924 | |||
| 9d189e3386 | |||
| a345a887a0 | |||
| 190aae94e4 | |||
| d154a4041b | |||
| 0e4830a49a | |||
| 9ae1aed773 | |||
| f043a4270c | |||
| 1aa0b2d0c3 | |||
| e68e1b17e3 | |||
| 775c1510a3 | |||
| 801b3ae6cf | |||
| b4a7e0d599 | |||
| 1cfed994f7 | |||
| 80bb98dd41 | |||
| 20b8fbaf14 | |||
| 1eb9780871 | |||
| c79ef6f498 | |||
| cdc3738eca | |||
| 8cfbe4af8f | |||
| 9dc8d62d4a | |||
| d547c37f44 | |||
| e7aebe5e70 | |||
| cd325c80d5 | |||
| f8b7c730df | |||
| 2d5b3265da | |||
| 97760df1a4 | |||
| b8c72be304 | |||
| 7b9f1955f1 | |||
| e1c512a982 | |||
| c05ca5de4a | |||
| 4c14b6c939 | |||
| 1526535ec7 | |||
| f49faf1796 | |||
| 2125065ec7 | |||
| e7ee26c1a3 | |||
| f36712bfc3 | |||
| bebbde3529 | |||
| 8771c7e877 | |||
| d99f80125d | |||
| d553f7aade | |||
| ee813131c0 | |||
| 802b8ac98a | |||
| ade8bfed6f | |||
| 935a086a46 | |||
| 429c8ed498 | |||
| a0654e7259 | |||
| 76b866f03a | |||
| a919a65a5a | |||
| 4db0ca5ff8 | |||
| 16b2d4a611 | |||
| 7f5c514ebc | |||
| 9c5103d28d | |||
| 47f811540e | |||
| 580e81cc45 | |||
| ed6e3e867d | |||
| f77370a3c9 | |||
| 9600ed33da | |||
| 147273950e | |||
| 7ed037e13e | |||
| 80bdfd0f4d | |||
| 893a4c7837 | |||
| 2588029806 | |||
| a84109b296 | |||
| 508ef78a7b | |||
| b94ece9bba | |||
| 52702a6f77 | |||
| fc0b94ab37 | |||
| 7a10005dc6 | |||
| cef338c242 | |||
| 0cbb2e99c4 | |||
| 8274fdd270 | |||
| 90e6228360 | |||
| f2d6ae644a | |||
| 6a84eac9d2 | |||
| 890d92274c | |||
| 4fe5d526d0 | |||
| 559c657349 | |||
| 8da0b588f8 | |||
| 99093c5333 | |||
| 05c23a4aff | |||
| 7731085dc6 | |||
| bc82a255c6 | |||
| 32237ba6de | |||
| f1cfb3c69a | |||
| 78d3088360 | |||
| 8c0caa9f17 | |||
| 6608288eef | |||
| 087f4aaa5b | |||
| 6e8835a5b7 | |||
| 213359d212 | |||
| 6ac58511a0 | |||
| dec7b962ea | |||
| 2cf0f96b0d | |||
| 4cc5e00745 | |||
| e649c46e60 | |||
| 173fcc32e1 | |||
| f5f9809b95 | |||
| 0f0da971ec | |||
| d53f49ad5d | |||
| 57dfe4fbf3 | |||
| 32d4e453e7 | |||
| c3f5cf4245 | |||
| 1d040a5ad3 | |||
| b118b6b629 | |||
| 3af70a67f6 | |||
| 9415995ba0 | |||
| 4602d1cb8d | |||
| cb774b625c | |||
| 49c995d1c4 | |||
| f0396aeeb4 | |||
| c35086e4a5 | |||
| 9d52a1e626 | |||
| 4074f45c6d | |||
| 409bab07bb | |||
| 8771045493 | |||
| db679ca2b3 | |||
| 5328f81e20 | |||
| 1c42c156d5 | |||
| 766b158684 | |||
| 5d74e7396b | |||
| ba832e5e3d | |||
| bbf9f36c47 | |||
| 83620695dc | |||
| 3861f19fa1 | |||
| 21f3e5635c | |||
| 87f2ed02d4 | |||
| b393f1fd98 | |||
| 748ada5378 | |||
| 437b742163 | |||
| 2232421843 | |||
| 8912a0a73a | |||
| 73bd716090 | |||
| cc272addc2 | |||
| c2f626d3c7 | |||
| fbe4a4e7e2 | |||
| b28eebff4f | |||
| 3368cfe3ab | |||
| 3ff9f2d135 | |||
| b5306f1065 | |||
| 4396d146e2 | |||
| be5f03e7b5 | |||
| 647459ef70 | |||
| be57f1070d | |||
| 17840ad937 | |||
| dfbb649dfb | |||
| 21456342c2 | |||
| cf1f140ff6 | |||
| 9a74b97bbe | |||
| fd47a942fe | |||
| e22256d631 | |||
| 16782c5847 | |||
| 43e6b37d43 | |||
| 0e6a32cbf2 | |||
| 0c0bde2315 | |||
| 70e7c38e7e | |||
| 2d9c11430f | |||
| 14f84a9329 | |||
| d9cdb6e8e1 | |||
| 18c25fd601 | |||
| ca759eb72e | |||
| 559d57f4cc | |||
| 27c821c010 | |||
| 3a064847d2 | |||
| 8dc1124dbf | |||
| cd5d9a28ba | |||
| 61447a9f83 | |||
| 6db5afa132 | |||
| efa6d28f83 | |||
| dba7363be7 | |||
| ef254d5a7d | |||
| ee3e9fcf30 | |||
| a06262c2b3 | |||
| 779a5472d4 | |||
| d1c16835c2 | |||
| d68d7e205f | |||
| 0ffbe3cc0a | |||
| f0bfc27267 | |||
| 20e50a9e06 | |||
| c67f88b7f3 | |||
| 16feb53d14 |
@@ -11,14 +11,14 @@ on feature branches.
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
Ren'Py depends on a number of python modules written in Cython and C. For
|
||||
changes to Ren'Py that only involve python modules, you can use the modules
|
||||
Ren'Py depends on a number of Python modules written in Cython and C. For
|
||||
changes to Ren'Py that only involve Python modules, you can use the modules
|
||||
found in the latest nightly build. Otherwise, you'll have to compile the
|
||||
modules yourself.
|
||||
|
||||
The development scripts assume a POSIX-like platform. The scripts should run
|
||||
on Linux or Mac OS X, and can be made to run on Windows using an environment
|
||||
like Msys.
|
||||
on Linux or macOS, and can be made to run on Windows using an environment
|
||||
like MSYS.
|
||||
|
||||
Nightly Build
|
||||
-------------
|
||||
|
||||
@@ -28,7 +28,7 @@ init python:
|
||||
ANDROID_OK = 5
|
||||
|
||||
NO_RAPT_TEXT = _("To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
|
||||
NO_JDK_TEXT = _("A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher.")
|
||||
NO_JDK_TEXT = _("An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher.")
|
||||
NO_SDK_TEXT = _("RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this.")
|
||||
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore.")
|
||||
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
|
||||
|
||||
@@ -333,12 +333,10 @@ init python:
|
||||
build.classify_renpy("gui/game/gui/", None)
|
||||
|
||||
source_and_binary("launcher")
|
||||
source_and_binary("templates", binary=None)
|
||||
source_and_binary("gui", binary=None)
|
||||
|
||||
source_and_binary("the_question")
|
||||
source_and_binary("tutorial")
|
||||
source_and_binary("oldtutorial")
|
||||
|
||||
# docs.
|
||||
build.classify_renpy("doc/", "source")
|
||||
|
||||
@@ -36,6 +36,7 @@ init python in distribute:
|
||||
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
|
||||
|
||||
def write_with_info(self, zinfo, filename):
|
||||
"""Put the bytes from filename into the archive under the name
|
||||
arcname."""
|
||||
@@ -66,8 +67,13 @@ init python in distribute:
|
||||
# Must overwrite CRC and sizes with correct data later
|
||||
zinfo.CRC = CRC = 0
|
||||
zinfo.compress_size = compress_size = 0
|
||||
zinfo.file_size = file_size = 0
|
||||
self.fp.write(zinfo.FileHeader())
|
||||
file_size = 0
|
||||
|
||||
zip64 = self._allowZip64 and \
|
||||
zinfo.file_size * 1.05 > zipfile.ZIP64_LIMIT
|
||||
|
||||
self.fp.write(zinfo.FileHeader(zip64))
|
||||
|
||||
if zinfo.compress_type == zipfile.ZIP_DEFLATED:
|
||||
cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION,
|
||||
zlib.DEFLATED, -15)
|
||||
@@ -92,11 +98,19 @@ init python in distribute:
|
||||
zinfo.compress_size = file_size
|
||||
zinfo.CRC = CRC
|
||||
zinfo.file_size = file_size
|
||||
|
||||
if not zip64 and self._allowZip64:
|
||||
if file_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('File size has increased during compressing')
|
||||
if compress_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('Compressed size larger than uncompressed size')
|
||||
|
||||
# Seek backwards and write CRC and file sizes
|
||||
position = self.fp.tell() # Preserve current position in file
|
||||
self.fp.seek(zinfo.header_offset + 14, 0)
|
||||
self.fp.write(struct.pack("<LLL", zinfo.CRC, zinfo.compress_size,
|
||||
zinfo.file_size))
|
||||
self.fp.seek(zinfo.header_offset, 0)
|
||||
|
||||
self.fp.write(zinfo.FileHeader(zip64))
|
||||
|
||||
self.fp.seek(position, 0)
|
||||
self.filelist.append(zinfo)
|
||||
self.NameToInfo[zinfo.filename] = zinfo
|
||||
|
||||
@@ -51,6 +51,7 @@ init python:
|
||||
|
||||
return rv
|
||||
|
||||
show_legacy = os.path.exists(os.path.join(config.renpy_base, "templates", "english", "game", "script.rpy"))
|
||||
|
||||
default persistent.legacy = False
|
||||
default persistent.force_new_tutorial = False
|
||||
@@ -184,12 +185,16 @@ screen preferences:
|
||||
if renpy.windows:
|
||||
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
|
||||
|
||||
textbutton _("Force new tutorial") style "l_checkbox" action [ ToggleField(persistent, "force_new_tutorial"), project.SelectTutorial(True) ]
|
||||
if project.manager.get("oldtutorial"):
|
||||
|
||||
textbutton _("Legacy options") style "l_checkbox" action ToggleField(persistent, "legacy")
|
||||
textbutton _("Force new tutorial") style "l_checkbox" action [ ToggleField(persistent, "force_new_tutorial"), project.SelectTutorial(True) ]
|
||||
|
||||
if persistent.legacy:
|
||||
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
|
||||
if show_legacy:
|
||||
|
||||
textbutton _("Legacy options") style "l_checkbox" action ToggleField(persistent, "legacy")
|
||||
|
||||
if persistent.legacy:
|
||||
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
|
||||
|
||||
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
|
||||
|
||||
|
||||
@@ -589,6 +589,9 @@ init python in project:
|
||||
if language is None:
|
||||
rv = p
|
||||
|
||||
elif rv is None:
|
||||
rv = p
|
||||
|
||||
elif os.path.exists(os.path.join(p.path, "game", "tl", _preferences.language)):
|
||||
rv = p
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@ translate arabic strings:
|
||||
new "لبناء ملفات الأندرويد, الرجاء تحميل RAPT, ثم فك الضغط عن الملف ووضعه في مجلد رينباي. قد تحتاج لإعادة تشغيل رينباي ليعمل بشكل صحيح."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "تحتاج لنسخة برمجية من جافا تعتمد الـ 32-بت لتستطيع إنشاء ملفات الأندرويد على نظام الوندوز. حزمة JDK تختلف عن JRE, قد تكون الجافا لديك موجوده لكنها تفتقد الـ JDK. \n\n الرجاء {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}تحميل و تنصيب JDK{/a} ثم إعادة تشغيل رينباي"
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "تحتاج لنسخة برمجية من جافا تعتمد الـ 32-بت لتستطيع إنشاء ملفات الأندرويد على نظام الوندوز. حزمة JDK تختلف عن JRE, قد تكون الجافا لديك موجوده لكنها تفتقد الـ JDK. \n\n الرجاء {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}تحميل و تنصيب JDK{/a} ثم إعادة تشغيل رينباي"
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate finnish strings:
|
||||
new "Luodaksesi Android-sovelluksia, ole hyvä ja lataa RAPT, pura se, ja aseta se Ren'Py kansioon. Tämän jälkeen käynnistä Ren'Py uudelleen."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "32-bittinen Javan kehitystyökalu vaaditaan Android-sovellusten luomiseen Windowsilla. JDK on erilainen kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Lataa ja asenna JDK{/a}, ja sen jälkeen käynnistä Ren'Py uudelleen."
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "32-bittinen Javan kehitystyökalu vaaditaan Android-sovellusten luomiseen Windowsilla. JDK on erilainen kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Lataa ja asenna JDK{/a}, ja sen jälkeen käynnistä Ren'Py uudelleen."
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate french strings:
|
||||
new "Pour compiler les paquets Android, veuillez télécharger RAPT, le décompresser et le placer dans le répertoir de Ren’Py. Ensuite, redémarrez le lanceur Ren’Py."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Un Kit de Développement Java (JDK) 32 bits est nécessaire pour compiler les paquets Android depuis Windows. Le JDK n’est pas la même chose que le JRE, il est possible que Java soit installé sur votre machine sans le JDK.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Téléchargez et installez le JDK{/a}, puis relancez le lanceur Ren’Py."
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Un Kit de Développement Java (JDK) 32 bits est nécessaire pour compiler les paquets Android depuis Windows. Le JDK n’est pas la même chose que le JRE, il est possible que Java soit installé sur votre machine sans le JDK.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Téléchargez et installez le JDK{/a}, puis relancez le lanceur Ren’Py."
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate german strings:
|
||||
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT herunter, entpacken Sie es und platzieren Sie es im Ren’Py Verzeichnis. Starten Sie dann bitte Ren’Py neu."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Ein 32-bit Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den Ren’Py-Launcher neu."
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Ein x86 Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den Ren’Py-Launcher neu."
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate greek strings:
|
||||
new "Για να χτίσετε πακέτα για το Android, παρακαλούμε κατεβάστε το RAPT και τοποθετήστε το στον φάκελο της Ren'Py. Κατόπιν αυτού, επανεκκινήστε τον Εκκινητή."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Αν εργάζεστε σε Windows, για τη δημιουργία πακέτων Android, απαιτείται ένα 32-bit Java Development Kit. Το JDK είναι διαφορετικό του JRE, οπότε μπορεί να έχετε Java χωρίς όμως να έχετε το JDK. Παρακαλoύμε λοιπόν να {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html} κατεβάσετε κι εγκαταστήσετε από εδώ το JDK{/a} και κατόπιν να επανεκκινήσετε τον Εκκινητή της Ren'Py. "
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Αν εργάζεστε σε Windows, για τη δημιουργία πακέτων Android, απαιτείται ένα x86 Java Development Kit. Το JDK είναι διαφορετικό του JRE, οπότε μπορεί να έχετε Java χωρίς όμως να έχετε το JDK. Παρακαλoύμε λοιπόν να {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html} κατεβάσετε κι εγκαταστήσετε από εδώ το JDK{/a} και κατόπιν να επανεκκινήσετε τον Εκκινητή της Ren'Py. "
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate indonesian strings:
|
||||
new "Untuk membuat package Android, silahkan download RAPT, unzip/extrak, dan taruh di direktori Ren,Py. Dan restart launcher Ren'Py."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Java Development Kit 32-bit di perlukan untuk membuat package Android di Windows, JDK itu berbeda dari JRE, jadi sangat mungkin kamu memiliki java tanpa JDK\n\nTolong {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Download dan install JDK{/a}, lalu restart launcher Ren'Py "
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Java Development Kit 32-bit di perlukan untuk membuat package Android di Windows, JDK itu berbeda dari JRE, jadi sangat mungkin kamu memiliki java tanpa JDK\n\nTolong {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Download dan install JDK{/a}, lalu restart launcher Ren'Py "
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate italian strings:
|
||||
new "Per compilare un pacchetto di Android si prega di scaricare RAPT, estrarlo, posizionarlo nella cartella di Ren'Py e riavviare il launcher di Ren'Py."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "La versione a 32-bit del Java Development Kit é necessaria per compilare pacchetti Android su Windows. Il JDK é diverso dal JRE ed é quindi possibile che tu abbia installato Java senza però aver installato il JDK.\n\nSi prega di {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}scaricare ed installare il JDK{/a} e, successivamente, riavviare il launcher di Ren'Py."
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "La versione a 32-bit del Java Development Kit é necessaria per compilare pacchetti Android su Windows. Il JDK é diverso dal JRE ed é quindi possibile che tu abbia installato Java senza però aver installato il JDK.\n\nSi prega di {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}scaricare ed installare il JDK{/a} e, successivamente, riavviare il launcher di Ren'Py."
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -386,31 +386,31 @@ translate japanese strings:
|
||||
|
||||
# 00director.rpy:1576
|
||||
old "Statement:"
|
||||
new "Statement(命令):"
|
||||
new "ステートメント:"
|
||||
|
||||
# 00director.rpy:1597
|
||||
old "Tag:"
|
||||
new "Tag(タグ):"
|
||||
new "画像タグ:"
|
||||
|
||||
# 00director.rpy:1613
|
||||
old "Attributes:"
|
||||
new "Attributes(属性):"
|
||||
new "画像属性:"
|
||||
|
||||
# 00director.rpy:1631
|
||||
old "Transforms:"
|
||||
new "Transforms(画像変形):"
|
||||
new "変換:"
|
||||
|
||||
# 00director.rpy:1650
|
||||
old "Behind:"
|
||||
new "Behind(裏に表示):"
|
||||
new "背後に表示:"
|
||||
|
||||
# 00director.rpy:1669
|
||||
old "Transition:"
|
||||
new "Transition(遷移演出):"
|
||||
new "トランジション:"
|
||||
|
||||
# 00director.rpy:1687
|
||||
old "Channel:"
|
||||
new "キャンセル"
|
||||
new "チャンネル:"
|
||||
|
||||
# 00director.rpy:1705
|
||||
old "Audio Filename:"
|
||||
@@ -439,3 +439,258 @@ translate japanese strings:
|
||||
old "{size_mb:,.1f} MB in {count} textures."
|
||||
new "{size_mb:,.1f} MB in {count} textures."
|
||||
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# 00action_file.rpy:344
|
||||
old "Save slot %s: [text]"
|
||||
new "スロット%s: [text]にセーブ"
|
||||
|
||||
# 00action_file.rpy:417
|
||||
old "Load slot %s: [text]"
|
||||
new "スロット%s: [text]をロード"
|
||||
|
||||
# 00action_file.rpy:459
|
||||
old "Delete slot [text]"
|
||||
new "スロット[text]を削除"
|
||||
|
||||
# 00action_file.rpy:539
|
||||
old "File page auto"
|
||||
new "オートファイルページ"
|
||||
|
||||
# 00action_file.rpy:541
|
||||
old "File page quick"
|
||||
new "クイックファイルページ"
|
||||
|
||||
# 00action_file.rpy:543
|
||||
old "File page [text]"
|
||||
new "ファイルページ[text]"
|
||||
|
||||
# 00action_file.rpy:733
|
||||
old "Next file page."
|
||||
new "次のファイルページ"
|
||||
|
||||
# 00action_file.rpy:797
|
||||
old "Previous file page."
|
||||
new "前のファイルページ"
|
||||
|
||||
# 00action_file.rpy:876
|
||||
old "Quick save."
|
||||
new "クイックセーブ"
|
||||
|
||||
# 00action_file.rpy:895
|
||||
old "Quick load."
|
||||
new "クイックロード"
|
||||
|
||||
# 00action_other.rpy:344
|
||||
old "Language [text]"
|
||||
new "言語 [text]"
|
||||
|
||||
# 00director.rpy:1476
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# 00director.rpy:1482
|
||||
old "⬇"
|
||||
new "⬇"
|
||||
|
||||
# 00library.rpy:150
|
||||
old "bar"
|
||||
new "バー"
|
||||
|
||||
# 00library.rpy:151
|
||||
old "selected"
|
||||
new "選択中"
|
||||
|
||||
# 00library.rpy:152
|
||||
old "viewport"
|
||||
new "ビューポート"
|
||||
|
||||
# 00library.rpy:153
|
||||
old "horizontal scroll"
|
||||
new "水平スクロール"
|
||||
|
||||
# 00library.rpy:154
|
||||
old "vertical scroll"
|
||||
new "垂直スクロール"
|
||||
|
||||
# 00library.rpy:155
|
||||
old "activate"
|
||||
new "有効"
|
||||
|
||||
# 00library.rpy:156
|
||||
old "deactivate"
|
||||
new "無効"
|
||||
|
||||
# 00library.rpy:157
|
||||
old "increase"
|
||||
new "増加"
|
||||
|
||||
# 00library.rpy:158
|
||||
old "decrease"
|
||||
new "減少"
|
||||
|
||||
# 00preferences.rpy:207
|
||||
old "display"
|
||||
new "表示"
|
||||
|
||||
# 00preferences.rpy:219
|
||||
old "transitions"
|
||||
new "トランジション"
|
||||
|
||||
# 00preferences.rpy:228
|
||||
old "skip transitions"
|
||||
new "トランジションをスキップ"
|
||||
|
||||
# 00preferences.rpy:230
|
||||
old "video sprites"
|
||||
new "ビデオ スプライト"
|
||||
|
||||
# 00preferences.rpy:239
|
||||
old "show empty window"
|
||||
new "空のウィンドウを表示"
|
||||
|
||||
# 00preferences.rpy:248
|
||||
old "text speed"
|
||||
new "テキストスピード"
|
||||
|
||||
# 00preferences.rpy:256
|
||||
old "joystick"
|
||||
new "ジョイスティック"
|
||||
|
||||
# 00preferences.rpy:256
|
||||
old "joystick..."
|
||||
new "ジョイスティック..."
|
||||
|
||||
# 00preferences.rpy:263
|
||||
old "skip"
|
||||
new "スキップ"
|
||||
|
||||
# 00preferences.rpy:266
|
||||
old "skip unseen [text]"
|
||||
new "未読の[text]をスキップ"
|
||||
|
||||
# 00preferences.rpy:271
|
||||
old "skip unseen text"
|
||||
new "未読のテキストをスキップ"
|
||||
|
||||
# 00preferences.rpy:273
|
||||
old "begin skipping"
|
||||
new "スキップ開始"
|
||||
|
||||
# 00preferences.rpy:277
|
||||
old "after choices"
|
||||
new "選択肢後"
|
||||
|
||||
# 00preferences.rpy:284
|
||||
old "skip after choices"
|
||||
new "選択肢後もスキップ"
|
||||
|
||||
# 00preferences.rpy:286
|
||||
old "auto-forward time"
|
||||
new "オート待ち時間"
|
||||
|
||||
# 00preferences.rpy:300
|
||||
old "auto-forward"
|
||||
new "オート送り"
|
||||
|
||||
# 00preferences.rpy:307
|
||||
old "Auto forward"
|
||||
new "オート送り"
|
||||
|
||||
# 00preferences.rpy:310
|
||||
old "auto-forward after click"
|
||||
new "クリック後もオート"
|
||||
|
||||
# 00preferences.rpy:319
|
||||
old "automatic move"
|
||||
new "自動ムービー"
|
||||
|
||||
# 00preferences.rpy:328
|
||||
old "wait for voice"
|
||||
new "ボイスを待つ"
|
||||
|
||||
# 00preferences.rpy:337
|
||||
old "voice sustain"
|
||||
new "voice sustain"
|
||||
|
||||
# 00preferences.rpy:346
|
||||
old "self voicing"
|
||||
new "セルフボイシング"
|
||||
|
||||
# 00preferences.rpy:355
|
||||
old "clipboard voicing"
|
||||
new "クリップボードボイシング"
|
||||
|
||||
# 00preferences.rpy:364
|
||||
old "debug voicing"
|
||||
new "ボイシングのデバッグ"
|
||||
|
||||
# 00preferences.rpy:373
|
||||
old "emphasize audio"
|
||||
new "オーディオの強調"
|
||||
|
||||
# 00preferences.rpy:382
|
||||
old "rollback side"
|
||||
new "ロールバックサイド"
|
||||
|
||||
# 00preferences.rpy:392
|
||||
old "gl powersave"
|
||||
new "GLパワーセーブ"
|
||||
|
||||
# 00preferences.rpy:398
|
||||
old "gl framerate"
|
||||
new "GLフレームレート"
|
||||
|
||||
# 00preferences.rpy:401
|
||||
old "gl tearing"
|
||||
new "GLティアリング"
|
||||
|
||||
# 00preferences.rpy:413
|
||||
old "music volume"
|
||||
new "音楽の音量"
|
||||
|
||||
# 00preferences.rpy:414
|
||||
old "sound volume"
|
||||
new "効果音の音量"
|
||||
|
||||
# 00preferences.rpy:415
|
||||
old "voice volume"
|
||||
new "ボイスの音量"
|
||||
|
||||
# 00preferences.rpy:416
|
||||
old "mute music"
|
||||
new "音楽をミュート"
|
||||
|
||||
# 00preferences.rpy:417
|
||||
old "mute sound"
|
||||
new "効果音をミュート"
|
||||
|
||||
# 00preferences.rpy:418
|
||||
old "mute voice"
|
||||
new "ボイスをミュート"
|
||||
|
||||
# 00preferences.rpy:419
|
||||
old "mute all"
|
||||
new "音声を全てミュート"
|
||||
|
||||
# _developer\developer.rpym:57
|
||||
old "Show Image Load Log (F4)"
|
||||
new "画像ロードログを表示する (F4)"
|
||||
|
||||
# _developer\developer.rpym:60
|
||||
old "Hide Image Load Log (F4)"
|
||||
new "画像ロードログを隠す (F4)"
|
||||
|
||||
# _developer\developer.rpym:447
|
||||
old "Type to filter: "
|
||||
new "フィルタして検索: "
|
||||
|
||||
# _developer\developer.rpym:575
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
new "テクスチャー: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
|
||||
# _developer\developer.rpym:579
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
new "イメージキャッシュ: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
|
||||
@@ -203,7 +203,35 @@ translate japanese strings:
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# 00gltest.rpy:70
|
||||
old "Renderer"
|
||||
new "レンダラー"
|
||||
|
||||
# 00gltest.rpy:89
|
||||
old "NPOT"
|
||||
new "NPOT"
|
||||
|
||||
# 00gltest.rpy:131
|
||||
old "Powersave"
|
||||
new "パワーセーブ"
|
||||
|
||||
# 00gltest.rpy:145
|
||||
old "Framerate"
|
||||
new "フレームレート"
|
||||
|
||||
# 00gltest.rpy:149
|
||||
old "Screen"
|
||||
new "スクリーン"
|
||||
|
||||
# 00gltest.rpy:153
|
||||
old "60"
|
||||
new "60"
|
||||
|
||||
# 00gltest.rpy:157
|
||||
old "30"
|
||||
new "30"
|
||||
|
||||
# 00gltest.rpy:163
|
||||
old "Tearing"
|
||||
new "ティアリング"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ translate japanese strings:
|
||||
|
||||
# gui.rpy:5
|
||||
old "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset 文は、このファイルの init コードを他のファイルよりも先に実行しています。"
|
||||
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset ステートメントは、このファイルの init コードを他のファイルよりも先に実行しています。"
|
||||
|
||||
# gui.rpy:9
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
@@ -35,15 +35,15 @@ translate japanese strings:
|
||||
|
||||
# gui.rpy:32
|
||||
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## スモールカラー。明るさを調節する必要のあるクイックメニューなどの小さなテキストボタンに使います。"
|
||||
new "## スモールカラー。クイックメニューなどの、明るさを調節する必要のある小さなテキストボタンに使います。"
|
||||
|
||||
# gui.rpy:36
|
||||
old "## The color that is used for buttons and bars that are hovered."
|
||||
new "## hover(フォーカス中)のテキストボタンのカラー。また、バーの充足部分(左側)・hover のスライダーのつまみ等の画像を再生成するときにも使われます。"
|
||||
new "## hover(フォーカス中)のテキストボタンのカラー。また、バーの充足部分(左側)やスライダーのつまみ等の画像を再生成するときにも使われます。"
|
||||
|
||||
# gui.rpy:39
|
||||
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
new "## selected(選択中)のテキストボタンのカラー。ボタンは、現在の環境設定の値や表示中のスクリーンと一致するものが選択中になります。"
|
||||
new "## selected(選択中)のテキストボタンのカラー。ボタンが現在のスクリーンであったり、環境設定の値と一致したりすると、ボタンは選択中になります。"
|
||||
|
||||
# gui.rpy:43
|
||||
old "## The color used for a text button when it cannot be selected."
|
||||
@@ -51,11 +51,11 @@ translate japanese strings:
|
||||
|
||||
# gui.rpy:46
|
||||
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
new "## バーの非充足部分(右側)やスライダーの背景部分のカラー。バーやスライダーのカラーは、ゲームでは直接使われず GUI を変更・更新した場合の画像生成に使われます。"
|
||||
new "## バーの非充足部分(右側)やスライダーの背景部分のカラー。バーやスライダーのカラーは直接使われず、 GUI を変更・更新した場合の画像生成に使われます。"
|
||||
|
||||
# gui.rpy:51
|
||||
old "## The colors used for dialogue and menu choice text."
|
||||
new "## 次の text_color は台詞や選択肢のテキストのカラーです。その次の interface_text_color はヒストリーやヘルプなどそれ以外のテキストのカラーです。"
|
||||
new "## text_color は台詞や選択肢のテキストのカラーです。interface_text_color はヒストリーやヘルプなどそれ以外のテキストのカラーです。"
|
||||
|
||||
# gui.rpy:56
|
||||
old "## Fonts and Font Sizes"
|
||||
@@ -284,7 +284,7 @@ radio と check は環境設定の各項目のボタン(デフォルトでは
|
||||
|
||||
# gui.rpy:279
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## 以下の変数は、インターフェースのコンポーネントを収納するフレームを制御します。フレームは、ウィンドウやオーバーレイが用いられない場面で使われます。"
|
||||
new "## 以下の変数は、インターフェースのコンポーネントを収納するフレームを制御します。フレームは、ウィンドウやオーバーレイが用意されていない場面で使われます。"
|
||||
|
||||
# gui.rpy:282
|
||||
old "## Generic frames that are introduced by player code."
|
||||
@@ -450,7 +450,7 @@ translate japanese strings:
|
||||
|
||||
# gui.rpy:5
|
||||
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
|
||||
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset 文により、このファイルの init 文は他のファイルの init 文よりも先に実行されます。"
|
||||
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset ステートメントにより、このファイルの init 文は他のファイルの init 文よりも先に実行されます。"
|
||||
|
||||
# gui.rpy:282
|
||||
old "## Generic frames."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate japanese strings:
|
||||
new "Android パッケージをビルドするには、RAPT をダウンロード・展開し、Ren'Py のディレクトリーに設置して下さい。その後、Ren'Py を再起動して下さい。"
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Windows では、Android パッケージのビルドに 32-bit の Java 開発キットが必要です。JDK は JRE とは異なるため、JDK が無くても Java が利用できます。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}JDK のダウンロードとインストール{/a}を行い、Ren'Py ランチャーを再起動して下さい。"
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Windows では、Android パッケージのビルドに 32-bit の Java 開発キットが必要です。JDK は JRE とは異なるため、JDK が無くても Java が利用できます。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK のダウンロードとインストール{/a}を行い、Ren'Py ランチャーを再起動して下さい。"
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
@@ -1283,3 +1283,42 @@ translate japanese strings:
|
||||
old "The height must be a number."
|
||||
new "画面の高さは数字でなければなりません。"
|
||||
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# editor.rpy:152
|
||||
old "(Recommended) A modern and approachable text editor."
|
||||
new "(推奨)モダンで親しみやすいテキストエディターです。"
|
||||
|
||||
# editor.rpy:164
|
||||
old "Up to 150 MB download required."
|
||||
new "最大 150 MB のダウンロードが必要です。"
|
||||
|
||||
# editor.rpy:178
|
||||
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input."
|
||||
new "成熟したエディターです。Editra は中国語・韓国語・日本語の入力に必要な IME のサポートに欠陥があります。"
|
||||
|
||||
# editor.rpy:179
|
||||
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
|
||||
new "成熟したエディターです。Editra は中国語・韓国語・日本語の入力に必要な IME のサポートに欠陥があります。Linux では Editra は wxpython を必要とします。"
|
||||
|
||||
# editor.rpy:219
|
||||
old "System Editor"
|
||||
new "システムエディタ―"
|
||||
|
||||
# editor.rpy:235
|
||||
old "None"
|
||||
new "無効"
|
||||
|
||||
# editor.rpy:338
|
||||
old "Edit [text]."
|
||||
new "Edit [text]."
|
||||
|
||||
# front_page.rpy:215
|
||||
old "Open project"
|
||||
new "プロジェクトを開く"
|
||||
|
||||
# front_page.rpy:221
|
||||
old "Actions"
|
||||
new "アクション"
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ translate japanese strings:
|
||||
|
||||
# options.rpy:12
|
||||
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
new "## 人が読みやすいゲーム名。ゲーム名はデフォルトのウィンドウタイトルに使われる他、インターフェースやエラーリポートにも表示されます。"
|
||||
new "## 人の目で読み取れるゲーム名。ゲーム名はデフォルトのウィンドウタイトルに使われる他、インターフェースやエラーリポートにも表示されます。"
|
||||
|
||||
# options.rpy:15
|
||||
old "## The _() surrounding the string marks it as eligible for translation."
|
||||
@@ -51,19 +51,19 @@ translate japanese strings:
|
||||
|
||||
# options.rpy:55
|
||||
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
new "## サウンドやボイスの設定画面でユーザーがテストサウンドを再生できるようにしたい場合、以下の行をアンコメントしてサンプルサウンドを指定します。"
|
||||
new "## サウンドやボイスの設定画面で、ユーザーがテストサウンドを再生可能にする場合、以下の行をアンコメントしてサンプルサウンドを指定します。"
|
||||
|
||||
# options.rpy:62
|
||||
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
new "## 次の行をアンコメントしてオーディオファイルを指定すると、メインメニューで再生することができます。このファイルは、停止するか他の音楽が再生されない限りゲーム中で流れ続けます。"
|
||||
new "## 次の行をアンコメントしてオーディオファイルを指定すると、メインメニューで再生されます。このファイルは、停止するか他の音楽が再生されない限りゲーム中で流れ続けます。"
|
||||
|
||||
# options.rpy:69
|
||||
old "## Transitions"
|
||||
new "## トランジション(画面遷移効果)"
|
||||
new "## トランジション"
|
||||
|
||||
# options.rpy:71
|
||||
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
new "## 以下の変数は、メニュー切り替えなどのイベントに対するトランジションを設定します。各変数にはトランジションオブジェクトを指定します。トランジションを使わない場合は None に設定します。"
|
||||
new "## 以下の変数は、メニュー切り替えなどのイベントに対するトランジションを設定します。各変数にはトランジションを指定します。トランジションを使わない場合は None に設定します。"
|
||||
|
||||
# options.rpy:75
|
||||
old "## Entering or exiting the game menu."
|
||||
@@ -79,7 +79,7 @@ translate japanese strings:
|
||||
|
||||
# options.rpy:91
|
||||
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
new "## メインメニューからゲームを開始する時のトランジションは、ここでは設定できません。代わりに、ゲーム開始後の最初のシーンで with ステートメント(文)を使ってください。"
|
||||
new "## メインメニューからゲームを開始する時のトランジションは、ここでは設定できません。代わりに、ゲーム開始後の最初のシーンで with ステートメントを使ってください。"
|
||||
|
||||
# options.rpy:96
|
||||
old "## Window management"
|
||||
@@ -91,7 +91,7 @@ translate japanese strings:
|
||||
|
||||
# options.rpy:103
|
||||
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## ゲーム開始後は、\"window show\"、\"window hide\"、\"window auto\" ステートメントで変更することができます。"
|
||||
new "## ゲーム開始後でも \"window show\"、\"window hide\"、\"window auto\" ステートメントで変更することができます。"
|
||||
|
||||
# options.rpy:109
|
||||
old "## Transitions used to show and hide the dialogue window"
|
||||
@@ -199,7 +199,7 @@ translate japanese strings:
|
||||
|
||||
# options.rpy:196
|
||||
old "## Set this to a string containing your Apple Developer ID Application to enable codesigning on the Mac. Be sure to change it to your own Apple-issued ID."
|
||||
new "## Mac のコード署名を有効にするため Apple Developer ID アプリケーション を含む文字列を設定します。必ず Apple が発行したあなたの ID に変更してください。"
|
||||
new "## Mac のコード署名を有効にするために Apple Developer ID アプリケーション を含む文字列を設定します。必ず Apple が発行したあなたの ID に変更してください。"
|
||||
|
||||
|
||||
translate japanese strings:
|
||||
@@ -208,3 +208,10 @@ translate japanese strings:
|
||||
old "## Between screens of the game menu."
|
||||
new "## ゲームメニューのスクリーンを切り替える時のトランジション。"
|
||||
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
|
||||
new "## About(バージョン情報)スクリーンに表示されるテキスト。トリプルクオートの間にテキストを入力します。段落の間には空行を挿入して下さい。"
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ translate japanese strings:
|
||||
|
||||
# screens.rpy:98
|
||||
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\" のIDを持つ text displayable(表示可能オブジェクト)を必ず作成しなければなりません。また、スタイルのプロパティを適用するために、ID \"who\" とID \"window\" を持つ text displayable も作成するといいでしょう。"
|
||||
new "## このスクリーンは、テキストを表示するために \"what\" のIDを持つ text displayable を必ず作成しなければなりません。また、スタイルのプロパティを適用するために、ID \"who\" とID \"window\" を持つ text displayable も作成するといいでしょう。"
|
||||
|
||||
# screens.rpy:102
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
@@ -39,7 +39,7 @@ translate japanese strings:
|
||||
|
||||
# screens.rpy:174
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## このスクリーンは input のパラメーター を受け付けるために \"input\" をIDに持つ input displayable(表示可能オブジェクト)を作成する必要があります。"
|
||||
new "## このスクリーンは input のパラメーター を受け付けるために \"input\" をIDに持つ input displayable を作成する必要があります。"
|
||||
|
||||
# screens.rpy:177
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#input"
|
||||
@@ -51,7 +51,7 @@ translate japanese strings:
|
||||
|
||||
# screens.rpy:207
|
||||
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 "## このスクリーンは、ゲーム内の選択肢を表示するのに使います。items のパラメーターは caption(選択肢のテキスト)と action(クリック時の実行内容)を要素に持つオブジェクトのリスト(配列)です。"
|
||||
new "## このスクリーンは、ゲーム内の選択肢を表示する menu ステートメントに使います。items のパラメーターは caption(選択肢のテキスト)と action(クリック時の実行内容)を要素に持つオブジェクトのリスト(配列)です。"
|
||||
|
||||
# screens.rpy:211
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
@@ -67,7 +67,7 @@ translate japanese strings:
|
||||
|
||||
# screens.rpy:246
|
||||
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## クイックメニューはゲーム中つねに表示されるスクリーンで、ゲーム外の機能に素早くアクセスすることができます。"
|
||||
new "## クイックメニューはゲーム中に常時表示されるスクリーンで、ゲーム外の機能に素早くアクセスすることができます。"
|
||||
|
||||
# screens.rpy:251
|
||||
old "## Ensure this appears on top of other screens."
|
||||
@@ -182,7 +182,7 @@ translate japanese strings:
|
||||
|
||||
# screens.rpy:369
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## use 文は、他のスクリーンを現在のスクリーンの内に表示するのに使います。メインメニューの実際のコンテンツは navigation(ナビゲーション)スクリーンです。"
|
||||
new "## use ステートメントは、他のスクリーンを現在のスクリーンの内に表示するのに使います。メインメニューの実際のコンテンツは navigation(ナビゲーション)スクリーンです。"
|
||||
|
||||
# screens.rpy:413
|
||||
old "## Game Menu screen"
|
||||
@@ -218,7 +218,7 @@ translate japanese strings:
|
||||
|
||||
# screens.rpy:551
|
||||
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 "## 次の use 文は game_menu(ゲームメニュー)スクリーンをこのスクリーンの内に表示しています。use 文の子(内包されたオブジェクト)の vbox は game_menu スクリーンの中の viewport に配置されます。"
|
||||
new "## 次の use ステートメントは game_menu(ゲームメニュー)スクリーンをこのスクリーンの内に表示しています。use 文の子(内包されたオブジェクト)の vbox は game_menu スクリーンの中の viewport に配置されます。"
|
||||
|
||||
# screens.rpy:561
|
||||
old "Version [config.version!t]\n"
|
||||
@@ -561,7 +561,7 @@ translate japanese strings:
|
||||
|
||||
# screens.rpy:1124
|
||||
old "## Additional screens"
|
||||
new "## 追加スクリーン"
|
||||
new "## 付加的なスクリーン"
|
||||
|
||||
# screens.rpy:1128
|
||||
old "## Confirm screen"
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
|
||||
# まず最初に、ゲームに使うキャラクター(台詞を表示するオブジェクト)を定義します。
|
||||
# 最初のパラメーターは、テキストウィンドウに表示されるキャラクターの名前です。
|
||||
# 一番目のパラメーターは、テキストウィンドウに表示されるキャラクターの名前です。
|
||||
# color のパラメーターを追加すると、キャラクターの名前を色付けできます。
|
||||
|
||||
define e = Character('Eileen', color="#c8ffc8")
|
||||
|
||||
|
||||
# label ステートメント(命令文)はゲームの処理をまとめてラベル付けします。
|
||||
# label ステートメント(文)はゲームの処理をまとめてラベル付けします。
|
||||
# ラベル間の移動は jump ステートメントか call ステートメントを使います。
|
||||
|
||||
# ゲームは start ラベルからスタートします。
|
||||
@@ -20,12 +20,12 @@ label start:
|
||||
|
||||
# 背景を表示します。デフォルトではプレースホルダー(仮画像)を使用しますが、
|
||||
# images ディレクトリーにファイル(ファイル名は "bg room.png" や "bg room.jpg")
|
||||
# を追加すると表示することができます。
|
||||
# を追加することにより表示できます。
|
||||
|
||||
scene bg room
|
||||
|
||||
# スプライト(立ち絵)を表示します。ここではプレースホルダーを使用していますが、
|
||||
# images ディレクトリーに "eileen happy.png" と命名したファイルを追加すると
|
||||
# images ディレクトリーに "eileen happy.png" などと命名したファイルを追加すると
|
||||
# 表示することができます。
|
||||
|
||||
# at ステートメントは画像の表示する位置を調整します。
|
||||
@@ -40,7 +40,7 @@ label start:
|
||||
with dissolve
|
||||
|
||||
# 音楽を再生します。ここではタグを利用して無音を再生していますが、
|
||||
# game ディレクトリーに "music.ogg" と命名したファイルを追加すると
|
||||
# game ディレクトリーに "music.ogg" などと命名したファイルを追加すると
|
||||
# play music "music.ogg" の形で再生することができます。
|
||||
|
||||
# 効果音を再生する時は play audio "filename" を使用します。
|
||||
@@ -50,8 +50,6 @@ label start:
|
||||
|
||||
# 以下は台詞を表示します。
|
||||
|
||||
"Hello, world."
|
||||
|
||||
e "Ren'Py の新しいゲームを作成しました。"
|
||||
|
||||
e "ストーリー、画像、音楽を追加すれば、世界にリリースすることができます!"
|
||||
|
||||
@@ -34,8 +34,8 @@ translate korean strings:
|
||||
new "안드로이드 패키지를 만드려면, RAPT 파일을 내려받은 뒤에 렌파이 디렉토리에 압축 해제하세요. 그 다음 렌파이 런처를 재시작하세요."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "윈도우에서 안드로이드 패키지를 만드려면 32비트 JDK가 필요합니다. JDK는 JRE와 다르므로 PC에 JDK가 없는 자바가 설치되어 있을 수 있습니다.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}JDK를 내려받아 설치한 뒤{/a}, 렌파이 런처를 재시작해주세요."
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "윈도우에서 안드로이드 패키지를 만드려면 32비트 JDK가 필요합니다. JDK는 JRE와 다르므로 PC에 JDK가 없는 자바가 설치되어 있을 수 있습니다.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK를 내려받아 설치한 뒤{/a}, 렌파이 런처를 재시작해주세요."
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -157,175 +157,183 @@ translate piglatin strings:
|
||||
old "%b %d, %H:%M"
|
||||
new "%bay %day, %Hay:%May"
|
||||
|
||||
# 00action_file.rpy:344
|
||||
# 00action_file.rpy:345
|
||||
old "Save slot %s: [text]"
|
||||
new "Avesay otslay %say: [text]"
|
||||
|
||||
# 00action_file.rpy:417
|
||||
# 00action_file.rpy:421
|
||||
old "Load slot %s: [text]"
|
||||
new "Oadlay otslay %say: [text]"
|
||||
|
||||
# 00action_file.rpy:459
|
||||
# 00action_file.rpy:466
|
||||
old "Delete slot [text]"
|
||||
new "Eleteday otslay [text]"
|
||||
|
||||
# 00action_file.rpy:539
|
||||
# 00action_file.rpy:546
|
||||
old "File page auto"
|
||||
new "Ilefay agepay autoay"
|
||||
|
||||
# 00action_file.rpy:541
|
||||
# 00action_file.rpy:548
|
||||
old "File page quick"
|
||||
new "Ilefay agepay uickqay"
|
||||
|
||||
# 00action_file.rpy:543
|
||||
# 00action_file.rpy:550
|
||||
old "File page [text]"
|
||||
new "Ilefay agepay [text]"
|
||||
|
||||
# 00action_file.rpy:733
|
||||
# 00action_file.rpy:740
|
||||
old "Next file page."
|
||||
new "Extnay ilefay agepay."
|
||||
|
||||
# 00action_file.rpy:797
|
||||
# 00action_file.rpy:804
|
||||
old "Previous file page."
|
||||
new "Reviouspay ilefay agepay."
|
||||
|
||||
# 00action_file.rpy:858
|
||||
# 00action_file.rpy:865
|
||||
old "Quick save complete."
|
||||
new "Uickqay avesay ompletecay."
|
||||
|
||||
# 00action_file.rpy:876
|
||||
# 00action_file.rpy:883
|
||||
old "Quick save."
|
||||
new "Uickqay avesay."
|
||||
|
||||
# 00action_file.rpy:895
|
||||
# 00action_file.rpy:902
|
||||
old "Quick load."
|
||||
new "Uickqay oadlay."
|
||||
|
||||
# 00action_other.rpy:344
|
||||
# 00action_other.rpy:355
|
||||
old "Language [text]"
|
||||
new "Anguagelay [text]"
|
||||
|
||||
# 00director.rpy:703
|
||||
# 00director.rpy:708
|
||||
old "The interactive director is not enabled here."
|
||||
new "Hetay interactiveay irectorday isay otnay enableday erehay."
|
||||
|
||||
# 00director.rpy:1490
|
||||
# 00director.rpy:1478
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# 00director.rpy:1484
|
||||
old "⬇"
|
||||
new "⬇"
|
||||
|
||||
# 00director.rpy:1548
|
||||
old "Done"
|
||||
new "Oneday"
|
||||
|
||||
# 00director.rpy:1498
|
||||
# 00director.rpy:1558
|
||||
old "(statement)"
|
||||
new "(atementstay)"
|
||||
|
||||
# 00director.rpy:1499
|
||||
# 00director.rpy:1559
|
||||
old "(tag)"
|
||||
new "(agtay)"
|
||||
|
||||
# 00director.rpy:1500
|
||||
# 00director.rpy:1560
|
||||
old "(attributes)"
|
||||
new "(attributesay)"
|
||||
|
||||
# 00director.rpy:1501
|
||||
# 00director.rpy:1561
|
||||
old "(transform)"
|
||||
new "(ansformtray)"
|
||||
|
||||
# 00director.rpy:1526
|
||||
# 00director.rpy:1586
|
||||
old "(transition)"
|
||||
new "(ansitiontray)"
|
||||
|
||||
# 00director.rpy:1538
|
||||
# 00director.rpy:1598
|
||||
old "(channel)"
|
||||
new "(annelchay)"
|
||||
|
||||
# 00director.rpy:1539
|
||||
# 00director.rpy:1599
|
||||
old "(filename)"
|
||||
new "(ilenamefay)"
|
||||
|
||||
# 00director.rpy:1564
|
||||
# 00director.rpy:1628
|
||||
old "Change"
|
||||
new "Hangecay"
|
||||
|
||||
# 00director.rpy:1566
|
||||
# 00director.rpy:1630
|
||||
old "Add"
|
||||
new "Ddaay"
|
||||
|
||||
# 00director.rpy:1569
|
||||
# 00director.rpy:1633
|
||||
old "Cancel"
|
||||
new "Ancelcay"
|
||||
|
||||
# 00director.rpy:1572
|
||||
# 00director.rpy:1636
|
||||
old "Remove"
|
||||
new "Emoveray"
|
||||
|
||||
# 00director.rpy:1605
|
||||
# 00director.rpy:1671
|
||||
old "Statement:"
|
||||
new "Tatementsay:"
|
||||
|
||||
# 00director.rpy:1626
|
||||
# 00director.rpy:1692
|
||||
old "Tag:"
|
||||
new "Agtay:"
|
||||
|
||||
# 00director.rpy:1642
|
||||
# 00director.rpy:1708
|
||||
old "Attributes:"
|
||||
new "Ttributesaay:"
|
||||
|
||||
# 00director.rpy:1660
|
||||
# 00director.rpy:1726
|
||||
old "Transforms:"
|
||||
new "Ransformstay:"
|
||||
|
||||
# 00director.rpy:1679
|
||||
# 00director.rpy:1745
|
||||
old "Behind:"
|
||||
new "Ehindbay:"
|
||||
|
||||
# 00director.rpy:1698
|
||||
# 00director.rpy:1764
|
||||
old "Transition:"
|
||||
new "Ransitiontay:"
|
||||
|
||||
# 00director.rpy:1716
|
||||
# 00director.rpy:1782
|
||||
old "Channel:"
|
||||
new "Hannelcay:"
|
||||
|
||||
# 00director.rpy:1734
|
||||
# 00director.rpy:1800
|
||||
old "Audio Filename:"
|
||||
new "Udioaay Ilenamefay:"
|
||||
|
||||
# 00gui.rpy:368
|
||||
# 00gui.rpy:370
|
||||
old "Are you sure?"
|
||||
new "Reaay ouyay uresay?"
|
||||
|
||||
# 00gui.rpy:369
|
||||
# 00gui.rpy:371
|
||||
old "Are you sure you want to delete this save?"
|
||||
new "Reaay ouyay uresay ouyay antway otay eleteday histay avesay?"
|
||||
|
||||
# 00gui.rpy:370
|
||||
# 00gui.rpy:372
|
||||
old "Are you sure you want to overwrite your save?"
|
||||
new "Reaay ouyay uresay ouyay antway otay overwriteay ouryay avesay?"
|
||||
|
||||
# 00gui.rpy:371
|
||||
# 00gui.rpy:373
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Oadinglay illway oselay unsaveday rogresspay.\nReaay ouyay uresay ouyay antway otay oday histay?"
|
||||
|
||||
# 00gui.rpy:372
|
||||
# 00gui.rpy:374
|
||||
old "Are you sure you want to quit?"
|
||||
new "Reaay ouyay uresay ouyay antway otay uitqay?"
|
||||
|
||||
# 00gui.rpy:373
|
||||
# 00gui.rpy:375
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Reaay ouyay uresay ouyay antway otay eturnray otay hetay ainmay enumay?\nHistay illway oselay unsaveday rogresspay."
|
||||
|
||||
# 00gui.rpy:374
|
||||
# 00gui.rpy:376
|
||||
old "Are you sure you want to end the replay?"
|
||||
new "Reaay ouyay uresay ouyay antway otay enday hetay eplayray?"
|
||||
|
||||
# 00gui.rpy:375
|
||||
# 00gui.rpy:377
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "Reaay ouyay uresay ouyay antway otay eginbay kippingsay?"
|
||||
|
||||
# 00gui.rpy:376
|
||||
# 00gui.rpy:378
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Reaay ouyay uresay ouyay antway otay kipsay otay hetay extnay oicechay?"
|
||||
|
||||
# 00gui.rpy:377
|
||||
# 00gui.rpy:379
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "Reaay ouyay uresay ouyay antway otay kipsay unseenay ialogueday otay hetay extnay oicechay?"
|
||||
|
||||
@@ -537,15 +545,15 @@ translate piglatin strings:
|
||||
old "mute all"
|
||||
new "utemay allay"
|
||||
|
||||
# 00preferences.rpy:498
|
||||
# 00preferences.rpy:500
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "Lipboardcay oicingvay enableday. Resspay 'iftshay+Cay' otay isableday."
|
||||
|
||||
# 00preferences.rpy:500
|
||||
# 00preferences.rpy:502
|
||||
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Elfsay-oicingvay ouldway aysay \"[renpy.display.tts.last]\". Resspay 'altay+iftshay+Vay' otay isableday."
|
||||
|
||||
# 00preferences.rpy:502
|
||||
# 00preferences.rpy:504
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Elfsay-oicingvay enableday. Resspay 'vay' otay isableday."
|
||||
|
||||
|
||||
@@ -221,215 +221,215 @@ translate piglatin strings:
|
||||
old "## The save slot button."
|
||||
new "## Hetay avesay otslay uttonbay."
|
||||
|
||||
# gui.rpy:231
|
||||
# gui.rpy:233
|
||||
old "## The width and height of thumbnails used by the save slots."
|
||||
new "## Hetay idthway anday eighthay ofay humbnailstay useday ybay hetay avesay otsslay."
|
||||
|
||||
# gui.rpy:235
|
||||
# gui.rpy:237
|
||||
old "## The number of columns and rows in the grid of save slots."
|
||||
new "## Hetay umbernay ofay olumnscay anday owsray inay hetay idgray ofay avesay otsslay."
|
||||
|
||||
# gui.rpy:240
|
||||
# gui.rpy:242
|
||||
old "## Positioning and Spacing"
|
||||
new "## Ositioningpay anday Pacingsay"
|
||||
|
||||
# gui.rpy:242
|
||||
# gui.rpy:244
|
||||
old "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## Hesetay ariablesvay ontrolcay hetay ositioningpay anday pacingsay ofay ariousvay useray interfaceay elementsay."
|
||||
|
||||
# gui.rpy:245
|
||||
# gui.rpy:247
|
||||
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## Hetay ositionpay ofay hetay eftlay idesay ofay hetay avigationnay uttonsbay, elativeray otay hetay eftlay idesay ofay hetay creensay."
|
||||
|
||||
# gui.rpy:249
|
||||
# gui.rpy:251
|
||||
old "## The vertical position of the skip indicator."
|
||||
new "## Hetay erticalvay ositionpay ofay hetay kipsay indicatoray."
|
||||
|
||||
# gui.rpy:252
|
||||
# gui.rpy:254
|
||||
old "## The vertical position of the notify screen."
|
||||
new "## Hetay erticalvay ositionpay ofay hetay otifynay creensay."
|
||||
|
||||
# gui.rpy:255
|
||||
# gui.rpy:257
|
||||
old "## The spacing between menu choices."
|
||||
new "## Hetay pacingsay etweenbay enumay oiceschay."
|
||||
|
||||
# gui.rpy:258
|
||||
# gui.rpy:260
|
||||
old "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Uttonsbay inay hetay avigationnay ectionsay ofay hetay ainmay anday amegay enusmay."
|
||||
|
||||
# gui.rpy:261
|
||||
# gui.rpy:263
|
||||
old "## Controls the amount of spacing between preferences."
|
||||
new "## Ontrolscay hetay amountay ofay pacingsay etweenbay referencespay."
|
||||
|
||||
# gui.rpy:264
|
||||
# gui.rpy:266
|
||||
old "## Controls the amount of spacing between preference buttons."
|
||||
new "## Ontrolscay hetay amountay ofay pacingsay etweenbay referencepay uttonsbay."
|
||||
|
||||
# gui.rpy:267
|
||||
# gui.rpy:269
|
||||
old "## The spacing between file page buttons."
|
||||
new "## Hetay pacingsay etweenbay ilefay agepay uttonsbay."
|
||||
|
||||
# gui.rpy:270
|
||||
# gui.rpy:272
|
||||
old "## The spacing between file slots."
|
||||
new "## Hetay pacingsay etweenbay ilefay otsslay."
|
||||
|
||||
# gui.rpy:273
|
||||
# gui.rpy:275
|
||||
old "## The position of the main menu text."
|
||||
new "## Hetay ositionpay ofay hetay ainmay enumay exttay."
|
||||
|
||||
# gui.rpy:277
|
||||
# gui.rpy:279
|
||||
old "## Frames"
|
||||
new "## Ramesfay"
|
||||
|
||||
# gui.rpy:279
|
||||
# gui.rpy:281
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## Hesetay ariablesvay ontrolcay hetay ooklay ofay amesfray hattay ancay ontaincay useray interfaceay omponentscay henway anay overlayay oray indowway isay otnay resentpay."
|
||||
|
||||
# gui.rpy:282
|
||||
# gui.rpy:284
|
||||
old "## Generic frames."
|
||||
new "## Enericgay amesfray."
|
||||
|
||||
# gui.rpy:285
|
||||
# gui.rpy:287
|
||||
old "## The frame that is used as part of the confirm screen."
|
||||
new "## Hetay amefray hattay isay useday asay artpay ofay hetay onfirmcay creensay."
|
||||
|
||||
# gui.rpy:288
|
||||
# gui.rpy:290
|
||||
old "## The frame that is used as part of the skip screen."
|
||||
new "## Hetay amefray hattay isay useday asay artpay ofay hetay kipsay creensay."
|
||||
|
||||
# gui.rpy:291
|
||||
# gui.rpy:293
|
||||
old "## The frame that is used as part of the notify screen."
|
||||
new "## Hetay amefray hattay isay useday asay artpay ofay hetay otifynay creensay."
|
||||
|
||||
# gui.rpy:294
|
||||
# gui.rpy:296
|
||||
old "## Should frame backgrounds be tiled?"
|
||||
new "## Houldsay amefray ackgroundsbay ebay iledtay?"
|
||||
|
||||
# gui.rpy:298
|
||||
# gui.rpy:300
|
||||
old "## Bars, Scrollbars, and Sliders"
|
||||
new "## Arsbay, Crollbarssay, anday Liderssay"
|
||||
|
||||
# gui.rpy:300
|
||||
# gui.rpy:302
|
||||
old "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## Hesetay ontrolcay hetay ooklay anday izesay ofay arsbay, crollbarssay, anday idersslay."
|
||||
|
||||
# gui.rpy:302
|
||||
# gui.rpy:304
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
|
||||
new "## Hetay efaultday Uigay onlyay usesay idersslay anday erticalvay crollbarssay. Llaay ofay hetay otheray arsbay areay onlyay useday inay reatorcay-rittenway creenssay."
|
||||
|
||||
# gui.rpy:305
|
||||
# gui.rpy:307
|
||||
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## Hetay eighthay ofay orizontalhay arsbay, crollbarssay, anday idersslay. Hetay idthway ofay erticalvay arsbay, crollbarssay, anday idersslay."
|
||||
|
||||
# gui.rpy:311
|
||||
# gui.rpy:313
|
||||
old "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## Ruetay ifay arbay imagesay ouldshay ebay iledtay. Alsefay ifay heytay ouldshay ebay inearlylay caledsay."
|
||||
|
||||
# gui.rpy:316
|
||||
# gui.rpy:318
|
||||
old "## Horizontal borders."
|
||||
new "## Orizontalhay ordersbay."
|
||||
|
||||
# gui.rpy:321
|
||||
# gui.rpy:323
|
||||
old "## Vertical borders."
|
||||
new "## Erticalvay ordersbay."
|
||||
|
||||
# gui.rpy:326
|
||||
# gui.rpy:328
|
||||
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## Hatway otay oday ithway unscrollableay crollbarssay inay hetay uigay. \"idehay\" ideshay hemtay, hileway Onenay owsshay hemtay."
|
||||
|
||||
# gui.rpy:331
|
||||
# gui.rpy:333
|
||||
old "## History"
|
||||
new "## Istoryhay"
|
||||
|
||||
# gui.rpy:333
|
||||
# gui.rpy:335
|
||||
old "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## Hetay istoryhay creensay isplaysday ialogueday hattay hetay ayerplay ashay alreadyay ismissedday."
|
||||
|
||||
# gui.rpy:335
|
||||
# gui.rpy:337
|
||||
old "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## Hetay umbernay ofay ocksblay ofay ialogueday istoryhay Enray'Ypay illway eepkay."
|
||||
|
||||
# gui.rpy:338
|
||||
# gui.rpy:340
|
||||
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## Hetay eighthay ofay aay istoryhay creensay entryay, oray Onenay otay akemay hetay eighthay ariablevay atay hetay ostcay ofay erformancepay."
|
||||
|
||||
# gui.rpy:342
|
||||
# gui.rpy:344
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## Hetay ositionpay, idthway, anday alignmentay ofay hetay abellay ivinggay hetay amenay ofay hetay peakingsay aracterchay."
|
||||
|
||||
# gui.rpy:349
|
||||
# gui.rpy:351
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## Hetay ositionpay, idthway, anday alignmentay ofay hetay ialogueday exttay."
|
||||
|
||||
# gui.rpy:356
|
||||
# gui.rpy:358
|
||||
old "## NVL-Mode"
|
||||
new "## Vlnay-Odemay"
|
||||
|
||||
# gui.rpy:358
|
||||
# gui.rpy:360
|
||||
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## Hetay Vlnay-odemay creensay isplaysday hetay ialogueday pokensay ybay Vlnay-odemay aracterschay."
|
||||
|
||||
# gui.rpy:360
|
||||
# gui.rpy:362
|
||||
old "## The borders of the background of the NVL-mode background window."
|
||||
new "## Hetay ordersbay ofay hetay ackgroundbay ofay hetay Vlnay-odemay ackgroundbay indowway."
|
||||
|
||||
# gui.rpy:363
|
||||
# gui.rpy:365
|
||||
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
|
||||
new "## Hetay aximummay umbernay ofay Vlnay-odemay entriesay Enray'Ypay illway isplayday. Henway oremay entriesay hantay histay areay otay ebay owshay, hetay oldestay entryay illway ebay emovedray."
|
||||
|
||||
# gui.rpy:367
|
||||
# gui.rpy:369
|
||||
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## Hetay eighthay ofay anay Vlnay-odemay entryay. Etsay histay otay Onenay otay avehay hetay entriesay ynamicallyday adjustay eighthay."
|
||||
|
||||
# gui.rpy:371
|
||||
# gui.rpy:373
|
||||
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## Hetay pacingsay etweenbay Vlnay-odemay entriesay henway uigay.vl_heightnay isay Onenay, anday etweenbay Vlnay-odemay entriesay anday anay Vlnay-odemay enumay."
|
||||
|
||||
# gui.rpy:388
|
||||
# gui.rpy:390
|
||||
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## Hetay ositionpay, idthway, anday alignmentay ofay vl_thoughtnay exttay (hetay exttay aidsay ybay hetay vl_narratornay aracterchay.)"
|
||||
|
||||
# gui.rpy:395
|
||||
# gui.rpy:397
|
||||
old "## The position of nvl menu_buttons."
|
||||
new "## Hetay ositionpay ofay vlnay enu_buttonsmay."
|
||||
|
||||
# gui.rpy:399
|
||||
# gui.rpy:401
|
||||
old "## Localization"
|
||||
new "## Ocalizationlay"
|
||||
|
||||
# gui.rpy:401
|
||||
# gui.rpy:403
|
||||
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
|
||||
new "## Histay ontrolscay hereway aay inelay eakbray isay ermittedpay. Hetay efaultday isay uitablesay orfay ostmay anguageslay. Aay istlay ofay availableay aluesvay ancay ebay oundfay atay ttpshay://wwway.enpyray.orgay/ocday/tmlhay/yle_propertiesstay.tmlhay#ylestay-ropertypay-anguagelay"
|
||||
|
||||
# gui.rpy:409
|
||||
# gui.rpy:411
|
||||
old "## Mobile devices"
|
||||
new "## Obilemay evicesday"
|
||||
|
||||
# gui.rpy:414
|
||||
# gui.rpy:416
|
||||
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## Histay increasesay hetay izesay ofay hetay uickqay uttonsbay otay akemay hemtay easieray otay ouchtay onay abletstay anday onesphay."
|
||||
|
||||
# gui.rpy:420
|
||||
# gui.rpy:422
|
||||
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## Histay angeschay hetay izesay anday pacingsay ofay ariousvay Uigay elementsay otay ensureay heytay areay easilyay isiblevay onay onesphay."
|
||||
|
||||
# gui.rpy:424
|
||||
# gui.rpy:426
|
||||
old "## Font sizes."
|
||||
new "## Ontfay izessay."
|
||||
|
||||
# gui.rpy:432
|
||||
# gui.rpy:434
|
||||
old "## Adjust the location of the textbox."
|
||||
new "## Djustaay hetay ocationlay ofay hetay extboxtay."
|
||||
|
||||
# gui.rpy:438
|
||||
# gui.rpy:440
|
||||
old "## Change the size and spacing of various things."
|
||||
new "## Hangecay hetay izesay anday pacingsay ofay ariousvay hingstay."
|
||||
|
||||
# gui.rpy:451
|
||||
# gui.rpy:453
|
||||
old "## File button layout."
|
||||
new "## Ilefay uttonbay ayoutlay."
|
||||
|
||||
# gui.rpy:455
|
||||
# gui.rpy:457
|
||||
old "## NVL-mode."
|
||||
new "## Vlnay-odemay."
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@ translate piglatin strings:
|
||||
new "Otay uildbay Ndroidaay ackagespay, easeplay ownloadday Aptray, unzipay itay, anday aceplay itay intoay hetay Enray'Ypay irectoryday. Hentay estartray hetay Enray'Ypay auncherlay."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Aay 23ay-itbay Avajay Evelopmentday Itkay isay equiredray otay uildbay Ndroidaay ackagespay onay Indowsway. Hetay Dkjay isay ifferentday omfray hetay Rejay, osay itay'say ossiblepay ouyay avehay Avajay ithoutway avinghay hetay Dkjay.\n\nLeasepay {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}ownloadday anday installay hetay Dkjay{/a}, hentay estartray hetay Enray'Ypay auncherlay."
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Naay 86xay Avajay Evelopmentday Itkay isay equiredray otay uildbay Ndroidaay ackagespay onay Indowsway. Hetay Dkjay isay ifferentday omfray hetay Rejay, osay itay'say ossiblepay ouyay avehay Avajay ithoutway avinghay hetay Dkjay.\n\nLeasepay {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}ownloadday anday installay hetay Dkjay{/a}, hentay estartray hetay Enray'Ypay auncherlay."
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
@@ -569,75 +569,75 @@ translate piglatin strings:
|
||||
old "Please click on the color scheme you wish to use, then click Continue. These colors can be changed and customized later."
|
||||
new "Leasepay ickclay onay hetay olorcay chemesay ouyay ishway otay useay, hentay ickclay Ontinuecay. Hesetay olorscay ancay ebay angedchay anday ustomizedcay aterlay."
|
||||
|
||||
# gui7.rpy:310
|
||||
# gui7.rpy:311
|
||||
old "{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"
|
||||
new "{b}Arningway{/b}\nOntinuingcay illway overwriteay ustomizedcay arbay, uttonbay, avesay otslay, crollbarsay, anday iderslay imagesay.\n\nHatway ouldway ouyay ikelay otay oday?"
|
||||
|
||||
# gui7.rpy:310
|
||||
# gui7.rpy:311
|
||||
old "Choose new colors, then regenerate image files."
|
||||
new "Hoosecay ewnay olorscay, hentay egenerateray imageay ilesfay."
|
||||
|
||||
# gui7.rpy:310
|
||||
# gui7.rpy:311
|
||||
old "Regenerate the image files using the colors in gui.rpy."
|
||||
new "Egenerateray hetay imageay ilesfay usingay hetay olorscay inay uigay.pyray."
|
||||
|
||||
# gui7.rpy:330
|
||||
# gui7.rpy:331
|
||||
old "PROJECT NAME"
|
||||
new "Rojectpay Amenay"
|
||||
|
||||
# gui7.rpy:330
|
||||
# gui7.rpy:331
|
||||
old "Please enter the name of your project:"
|
||||
new "Leasepay enteray hetay amenay ofay ouryay rojectpay:"
|
||||
|
||||
# gui7.rpy:338
|
||||
# gui7.rpy:339
|
||||
old "The project name may not be empty."
|
||||
new "Hetay rojectpay amenay aymay otnay ebay emptyay."
|
||||
|
||||
# gui7.rpy:343
|
||||
# gui7.rpy:344
|
||||
old "[project_name!q] already exists. Please choose a different project name."
|
||||
new "[project_name!q] alreadyay existsay. Leasepay oosechay aay ifferentday rojectpay amenay."
|
||||
|
||||
# gui7.rpy:346
|
||||
# gui7.rpy:347
|
||||
old "[project_dir!q] already exists. Please choose a different project name."
|
||||
new "[project_dir!q] alreadyay existsay. Leasepay oosechay aay ifferentday rojectpay amenay."
|
||||
|
||||
# gui7.rpy:357
|
||||
# gui7.rpy:358
|
||||
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 1280x720 is a reasonable compromise."
|
||||
new "Hatway esolutionray ouldshay hetay rojectpay useay? Lthoughaay Enray'Ypay ancay calesay hetay indowway upay anday ownday, histay isay hetay initialay izesay ofay hetay indowway, hetay izesay atay hichway assetsay ouldshay ebay rawnday, anday hetay izesay atay hichway hetay assetsay illway ebay atay heirtay arpestshay.\n\nHetay efaultday ofay 280x7201ay isay aay easonableray ompromisecay."
|
||||
|
||||
# gui7.rpy:357
|
||||
# gui7.rpy:358
|
||||
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
|
||||
new "Ustomcay. Hetay Uigay isay optimizeday orfay aay 61ay:9ay aspectay atioray."
|
||||
|
||||
# gui7.rpy:372
|
||||
# gui7.rpy:373
|
||||
old "WIDTH"
|
||||
new "Idthway"
|
||||
|
||||
# gui7.rpy:372
|
||||
# gui7.rpy:373
|
||||
old "Please enter the width of your game, in pixels."
|
||||
new "Leasepay enteray hetay idthway ofay ouryay amegay, inay ixelspay."
|
||||
|
||||
# gui7.rpy:377
|
||||
# gui7.rpy:378
|
||||
old "The width must be a number."
|
||||
new "Hetay idthway ustmay ebay aay umbernay."
|
||||
|
||||
# gui7.rpy:379
|
||||
# gui7.rpy:380
|
||||
old "HEIGHT"
|
||||
new "Eighthay"
|
||||
|
||||
# gui7.rpy:379
|
||||
# gui7.rpy:380
|
||||
old "Please enter the height of your game, in pixels."
|
||||
new "Leasepay enteray hetay eighthay ofay ouryay amegay, inay ixelspay."
|
||||
|
||||
# gui7.rpy:384
|
||||
# gui7.rpy:385
|
||||
old "The height must be a number."
|
||||
new "Hetay eighthay ustmay ebay aay umbernay."
|
||||
|
||||
# gui7.rpy:426
|
||||
# gui7.rpy:427
|
||||
old "Creating the new project..."
|
||||
new "Reatingcay hetay ewnay rojectpay..."
|
||||
|
||||
# gui7.rpy:428
|
||||
# gui7.rpy:429
|
||||
old "Updating the project..."
|
||||
new "Pdatinguay hetay rojectpay..."
|
||||
|
||||
@@ -933,91 +933,91 @@ translate piglatin strings:
|
||||
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 "Leasepay electsay aay emplatetay otay useay orfay ouryay ewnay rojectpay. Hetay emplatetay etssay hetay efaultday ontfay anday hetay useray interfaceay anguagelay. Fiay ouryay anguagelay isay otnay upportedsay, oosechay 'englishay'."
|
||||
|
||||
# preferences.rpy:72
|
||||
# preferences.rpy:73
|
||||
old "Launcher Preferences"
|
||||
new "Auncherlay Referencespay"
|
||||
|
||||
# preferences.rpy:93
|
||||
# preferences.rpy:94
|
||||
old "Projects Directory:"
|
||||
new "Rojectspay Irectoryday:"
|
||||
|
||||
# preferences.rpy:100
|
||||
# preferences.rpy:101
|
||||
old "[persistent.projects_directory!q]"
|
||||
new "[persistent.projects_directory!q]"
|
||||
|
||||
# preferences.rpy:102
|
||||
# preferences.rpy:103
|
||||
old "Projects directory: [text]"
|
||||
new "Rojectspay irectoryday: [text]"
|
||||
|
||||
# preferences.rpy:104
|
||||
# preferences.rpy:105
|
||||
old "Not Set"
|
||||
new "Otnay Etsay"
|
||||
|
||||
# preferences.rpy:119
|
||||
# preferences.rpy:120
|
||||
old "Text Editor:"
|
||||
new "Exttay Ditoreay:"
|
||||
|
||||
# preferences.rpy:125
|
||||
# preferences.rpy:126
|
||||
old "Text editor: [text]"
|
||||
new "Exttay editoray: [text]"
|
||||
|
||||
# preferences.rpy:141
|
||||
# preferences.rpy:142
|
||||
old "Update Channel:"
|
||||
new "Pdateuay Hannelcay:"
|
||||
|
||||
# preferences.rpy:161
|
||||
# preferences.rpy:162
|
||||
old "Navigation Options:"
|
||||
new "Avigationnay Ptionsoay:"
|
||||
|
||||
# preferences.rpy:165
|
||||
# preferences.rpy:166
|
||||
old "Include private names"
|
||||
new "Ncludeiay rivatepay amesnay"
|
||||
|
||||
# preferences.rpy:166
|
||||
# preferences.rpy:167
|
||||
old "Include library names"
|
||||
new "Ncludeiay ibrarylay amesnay"
|
||||
|
||||
# preferences.rpy:176
|
||||
# preferences.rpy:177
|
||||
old "Launcher Options:"
|
||||
new "Auncherlay Ptionsoay:"
|
||||
|
||||
# preferences.rpy:180
|
||||
# preferences.rpy:181
|
||||
old "Hardware rendering"
|
||||
new "Ardwarehay enderingray"
|
||||
|
||||
# preferences.rpy:181
|
||||
# preferences.rpy:182
|
||||
old "Show edit file section"
|
||||
new "Howsay editay ilefay ectionsay"
|
||||
|
||||
# preferences.rpy:182
|
||||
# preferences.rpy:183
|
||||
old "Large fonts"
|
||||
new "Argelay ontsfay"
|
||||
|
||||
# preferences.rpy:185
|
||||
# preferences.rpy:186
|
||||
old "Console output"
|
||||
new "Onsolecay outputay"
|
||||
|
||||
# preferences.rpy:187
|
||||
# preferences.rpy:190
|
||||
old "Force new tutorial"
|
||||
new "Orcefay ewnay utorialtay"
|
||||
|
||||
# preferences.rpy:189
|
||||
# preferences.rpy:194
|
||||
old "Legacy options"
|
||||
new "Egacylay optionsay"
|
||||
|
||||
# preferences.rpy:192
|
||||
# preferences.rpy:197
|
||||
old "Show templates"
|
||||
new "Howsay emplatestay"
|
||||
|
||||
# preferences.rpy:194
|
||||
# preferences.rpy:199
|
||||
old "Sponsor message"
|
||||
new "Ponsorsay essagemay"
|
||||
|
||||
# preferences.rpy:214
|
||||
# preferences.rpy:219
|
||||
old "Open launcher project"
|
||||
new "Penoay auncherlay rojectpay"
|
||||
|
||||
# preferences.rpy:228
|
||||
# preferences.rpy:233
|
||||
old "Language:"
|
||||
new "Anguagelay:"
|
||||
|
||||
@@ -1049,23 +1049,23 @@ translate piglatin strings:
|
||||
old "Ren'Py is scanning the project..."
|
||||
new "Enray'Ypay isay canningsay hetay rojectpay..."
|
||||
|
||||
# project.rpy:725
|
||||
# project.rpy:728
|
||||
old "Launching"
|
||||
new "Aunchinglay"
|
||||
|
||||
# project.rpy:759
|
||||
# project.rpy:762
|
||||
old "PROJECTS DIRECTORY"
|
||||
new "Rojectspay Irectoryday"
|
||||
|
||||
# project.rpy:759
|
||||
# project.rpy:762
|
||||
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
|
||||
new "Leasepay oosechay hetay rojectspay irectoryday usingay hetay irectoryday ooserchay.\n{b}Hetay irectoryday ooserchay aymay avehay openeday ehindbay histay indowway.{/b}"
|
||||
|
||||
# project.rpy:759
|
||||
# project.rpy:762
|
||||
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 "Histay auncherlay illway cansay orfay rojectspay inay histay irectoryday, illway reatecay ewnay rojectspay inay histay irectoryday, anday illway aceplay uiltbay rojectspay intoay histay irectoryday."
|
||||
|
||||
# project.rpy:764
|
||||
# project.rpy:767
|
||||
old "Ren'Py has set the projects directory to:"
|
||||
new "Enray'Ypay ashay etsay hetay rojectspay irectoryday otay:"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate russian strings:
|
||||
|
||||
# _developer/developer.rpym:38
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate russian strings:
|
||||
|
||||
# about.rpy:39
|
||||
@@ -34,7 +34,7 @@ translate russian strings:
|
||||
new "Чтобы построить Android-пакет, пожалуйста, загрузите RAPT, разархивируйте его и поместить в директорию Ren'Py. Затем перезагрузите лаунчер Ren'Py."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Чтобы построить Android-пакеты на Windows требуется 32-разрядный инструментарий разработки Java. JDK отличен от JRE, и возможно, у вас есть Java без JDK.\n\nПожалуйста, {a=httpу://www.oracle.com/technetwork/java/javase/downloads/index.html}загрузите и установите JDK{/a}, и перезапустите лаунчер Ren'Py."
|
||||
|
||||
# android.rpy:32
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate russian strings:
|
||||
|
||||
# _layout/classic_joystick_preferences.rpym:94
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate russian strings:
|
||||
|
||||
# options.rpy:1
|
||||
|
||||
@@ -34,8 +34,8 @@ translate simplified_chinese strings:
|
||||
new "要生成安卓应用包,请下载 RAPT,并解压到 Ren'Py 目录中。之后重启 Ren'Py。"
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "要在 Windows 中创建安卓应用包,您需要一个 32 位的 Java 开发套件(JDK)。JDK 不同于 JRE,所以您可能已安装过 Java 但尚未安装 JDK。\n\n请{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}下载并安装 JDK{/a},然后重启 Ren'Py。"
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "要在 Windows 中创建安卓应用包,您需要一个 32 位的 Java 开发套件(JDK)。JDK 不同于 JRE,所以您可能已安装过 Java 但尚未安装 JDK。\n\n请{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}下载并安装 JDK{/a},然后重启 Ren'Py。"
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -153,87 +153,403 @@ translate spanish strings:
|
||||
old "{#month_short}Dec"
|
||||
new "Dic."
|
||||
|
||||
# 00action_file.rpy:235
|
||||
# 00action_file.rpy:237
|
||||
old "%b %d, %H:%M"
|
||||
new "%d %b, %H:%M"
|
||||
|
||||
# 00action_file.rpy:820
|
||||
# 00action_file.rpy:344
|
||||
old "Save slot %s: [text]"
|
||||
new "Grabar partida %s: [text]"
|
||||
|
||||
# 00action_file.rpy:459
|
||||
old "Delete slot [text]"
|
||||
new "Borrar partida [text]"
|
||||
|
||||
# 00action_file.rpy:539
|
||||
old "File page auto"
|
||||
new "Página grabado automático"
|
||||
|
||||
# 00action_file.rpy:541
|
||||
old "File page quick"
|
||||
new "Página grabado rápido"
|
||||
|
||||
# 00action_file.rpy:543
|
||||
old "File page [text]"
|
||||
new "Página grabación [text]"
|
||||
|
||||
# 00action_file.rpy:733
|
||||
old "Next file page."
|
||||
new "Próxima página."
|
||||
|
||||
# 00action_file.rpy:797
|
||||
old "Previous file page."
|
||||
new "Página anterior."
|
||||
|
||||
# 00action_file.rpy:858
|
||||
old "Quick save complete."
|
||||
new "Grabar rápido completo."
|
||||
|
||||
# 00gui.rpy:227
|
||||
# 00action_file.rpy:876
|
||||
old "Quick save."
|
||||
new "Grabado rápido."
|
||||
|
||||
# 00action_file.rpy:895
|
||||
old "Quick load."
|
||||
new "Carga rápida."
|
||||
|
||||
# 00action_other.rpy:355
|
||||
old "Language [text]"
|
||||
new "Idioma [text]"
|
||||
|
||||
# 00director.rpy:709
|
||||
old "The interactive director is not enabled here."
|
||||
new "El director interactivo no está habilitado aquí."
|
||||
|
||||
# 00director.rpy:1479
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# 00director.rpy:1485
|
||||
old "⬇"
|
||||
new "⬇"
|
||||
|
||||
# 00director.rpy:1549
|
||||
old "Done"
|
||||
new "Hecho"
|
||||
|
||||
# 00director.rpy:1559
|
||||
old "(statement)"
|
||||
new "(sentencia)"
|
||||
|
||||
# 00director.rpy:1560
|
||||
old "(tag)"
|
||||
new "(etiqueta)"
|
||||
|
||||
# 00director.rpy:1561
|
||||
old "(attributes)"
|
||||
new "(atributos)"
|
||||
|
||||
# 00director.rpy:1562
|
||||
old "(transform)"
|
||||
new "(transformación)"
|
||||
|
||||
# 00director.rpy:1587
|
||||
old "(transition)"
|
||||
new "(transición)"
|
||||
|
||||
# 00director.rpy:1599
|
||||
old "(channel)"
|
||||
new "(canal)"
|
||||
|
||||
# 00director.rpy:1600
|
||||
old "(filename)"
|
||||
new "(archivo)"
|
||||
|
||||
# 00director.rpy:1629
|
||||
old "Change"
|
||||
new "Cambiar"
|
||||
|
||||
# 00director.rpy:1631
|
||||
old "Add"
|
||||
new "Añadir"
|
||||
|
||||
# 00director.rpy:1634
|
||||
old "Cancel"
|
||||
new "Cancelar"
|
||||
|
||||
# 00director.rpy:1637
|
||||
old "Remove"
|
||||
new "Eliminar"
|
||||
|
||||
# 00director.rpy:1672
|
||||
old "Statement:"
|
||||
new "Sentencia:"
|
||||
|
||||
# 00director.rpy:1693
|
||||
old "Tag:"
|
||||
new "Etiqueta:"
|
||||
|
||||
# 00director.rpy:1709
|
||||
old "Attributes:"
|
||||
new "Atributos:"
|
||||
|
||||
# 00director.rpy:1727
|
||||
old "Transforms:"
|
||||
new "Transformaciones:"
|
||||
|
||||
# 00director.rpy:1746
|
||||
old "Behind:"
|
||||
new "Detrás:"
|
||||
|
||||
# 00director.rpy:1765
|
||||
old "Transition:"
|
||||
new "Transición:"
|
||||
|
||||
# 00director.rpy:1783
|
||||
old "Channel:"
|
||||
new "Canal:"
|
||||
|
||||
# 00director.rpy:1801
|
||||
old "Audio Filename:"
|
||||
new "Archivo de audio:"
|
||||
|
||||
# 00gui.rpy:370
|
||||
old "Are you sure?"
|
||||
new "¿Seguro?"
|
||||
|
||||
# 00gui.rpy:228
|
||||
# 00gui.rpy:371
|
||||
old "Are you sure you want to delete this save?"
|
||||
new "¿Seguro que quieres borrar esta partida?"
|
||||
|
||||
# 00gui.rpy:229
|
||||
# 00gui.rpy:372
|
||||
old "Are you sure you want to overwrite your save?"
|
||||
new "¿Seguro que quieres sobreescribir esta partida?"
|
||||
|
||||
# 00gui.rpy:230
|
||||
# 00gui.rpy:373
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Al cargar se perderá el progreso no guardado.\n¿Seguro que quieres hacer esto?"
|
||||
|
||||
# 00gui.rpy:231
|
||||
# 00gui.rpy:374
|
||||
old "Are you sure you want to quit?"
|
||||
new "¿Seguro que quieres salir?"
|
||||
|
||||
# 00gui.rpy:232
|
||||
# 00gui.rpy:375
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "¿Seguro que quieres volver al menú principal?\nSe perderá el progreso no guardado."
|
||||
|
||||
# 00gui.rpy:233
|
||||
# 00gui.rpy:376
|
||||
old "Are you sure you want to end the replay?"
|
||||
new "¿Seguro que quieres finalizar la repetición?"
|
||||
|
||||
# 00gui.rpy:234
|
||||
# 00gui.rpy:377
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "¿Seguro que quieres empezar el modo salto?"
|
||||
|
||||
# 00gui.rpy:235
|
||||
# 00gui.rpy:378
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "¿Seguro que quieres saltar hasta la próxima elección?"
|
||||
|
||||
# 00gui.rpy:236
|
||||
# 00gui.rpy:379
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "¿Seguro que quieres saltar el texto no visto hasta la próxima elección?"
|
||||
|
||||
# 00keymap.rpy:250
|
||||
# 00keymap.rpy:258
|
||||
old "Failed to save screenshot as %s."
|
||||
new "No se pudo salvar la captura de pantalla como %s."
|
||||
|
||||
# 00keymap.rpy:270
|
||||
old "Saved screenshot as %s."
|
||||
new "Captura de pantalla guardada como %s."
|
||||
|
||||
# 00library.rpy:142
|
||||
# 00library.rpy:146
|
||||
old "Self-voicing disabled."
|
||||
new "Voz automática desactivada."
|
||||
|
||||
# 00library.rpy:143
|
||||
# 00library.rpy:147
|
||||
old "Clipboard voicing enabled. "
|
||||
new "'Portapapeles a voz' activado. "
|
||||
|
||||
# 00library.rpy:144
|
||||
# 00library.rpy:148
|
||||
old "Self-voicing enabled. "
|
||||
new "Voz automática activada. "
|
||||
|
||||
# 00library.rpy:179
|
||||
# 00library.rpy:150
|
||||
old "bar"
|
||||
new "barra"
|
||||
|
||||
# 00library.rpy:151
|
||||
old "selected"
|
||||
new "seleccionado"
|
||||
|
||||
# 00library.rpy:152
|
||||
old "viewport"
|
||||
new "viewport"
|
||||
|
||||
# 00library.rpy:153
|
||||
old "horizontal scroll"
|
||||
new "deslizamiento horizontal"
|
||||
|
||||
# 00library.rpy:154
|
||||
old "vertical scroll"
|
||||
new "deslizamiento vertical"
|
||||
|
||||
# 00library.rpy:155
|
||||
old "activate"
|
||||
new "activar"
|
||||
|
||||
# 00library.rpy:156
|
||||
old "deactivate"
|
||||
new "desactivar"
|
||||
|
||||
# 00library.rpy:157
|
||||
old "increase"
|
||||
new "aumentar"
|
||||
|
||||
# 00library.rpy:158
|
||||
old "decrease"
|
||||
new "disminuir"
|
||||
|
||||
# 00library.rpy:193
|
||||
old "Skip Mode"
|
||||
new "Modo salto"
|
||||
|
||||
# 00library.rpy:262
|
||||
# 00library.rpy:279
|
||||
old "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
|
||||
new "Este programa contiene software libre sujeto a diversas licencias que incluyen la licencia MIT y la {i}GNU Lesser General Public License{/i} (Licencia Pública General Reducida de GNU). Puedes encontrar la lista completa de software, con enlaces al código fuente completo, {a=https://www.renpy.org/l/license}aquí (en inglés){/a}."
|
||||
|
||||
# 00preferences.rpy:422
|
||||
# 00preferences.rpy:207
|
||||
old "display"
|
||||
new "pantalla"
|
||||
|
||||
# 00preferences.rpy:219
|
||||
old "transitions"
|
||||
new "transiciones"
|
||||
|
||||
# 00preferences.rpy:228
|
||||
old "skip transitions"
|
||||
new "salta transiciones"
|
||||
|
||||
# 00preferences.rpy:230
|
||||
old "video sprites"
|
||||
new "sprites de vídeo"
|
||||
|
||||
# 00preferences.rpy:239
|
||||
old "show empty window"
|
||||
new "muestra ventana vacía"
|
||||
|
||||
# 00preferences.rpy:248
|
||||
old "text speed"
|
||||
new "velocidad de texto"
|
||||
|
||||
# 00preferences.rpy:256
|
||||
old "joystick"
|
||||
new "joystick"
|
||||
|
||||
# 00preferences.rpy:256
|
||||
old "joystick..."
|
||||
new "joystick..."
|
||||
|
||||
# 00preferences.rpy:263
|
||||
old "skip"
|
||||
new "salta"
|
||||
|
||||
# 00preferences.rpy:266
|
||||
old "skip unseen [text]"
|
||||
new "salta no visto [text]"
|
||||
|
||||
# 00preferences.rpy:271
|
||||
old "skip unseen text"
|
||||
new "salva texto no visto"
|
||||
|
||||
# 00preferences.rpy:273
|
||||
old "begin skipping"
|
||||
new "comienza salto"
|
||||
|
||||
# 00preferences.rpy:277
|
||||
old "after choices"
|
||||
new "tras las opciones"
|
||||
|
||||
# 00preferences.rpy:284
|
||||
old "skip after choices"
|
||||
new "salta tras las opciones"
|
||||
|
||||
# 00preferences.rpy:286
|
||||
old "auto-forward time"
|
||||
new "tiempo auto-avance"
|
||||
|
||||
# 00preferences.rpy:300
|
||||
old "auto-forward"
|
||||
new "auto-avance"
|
||||
|
||||
# 00preferences.rpy:307
|
||||
old "Auto forward"
|
||||
new "Auto avance"
|
||||
|
||||
# 00preferences.rpy:310
|
||||
old "auto-forward after click"
|
||||
new "auto-avance después del clic"
|
||||
|
||||
# 00preferences.rpy:319
|
||||
old "automatic move"
|
||||
new "movimiento automático"
|
||||
|
||||
# 00preferences.rpy:328
|
||||
old "wait for voice"
|
||||
new "espera la voz"
|
||||
|
||||
# 00preferences.rpy:337
|
||||
old "voice sustain"
|
||||
new "mantén voz"
|
||||
|
||||
# 00preferences.rpy:346
|
||||
old "self voicing"
|
||||
new "auto voz"
|
||||
|
||||
# 00preferences.rpy:355
|
||||
old "clipboard voicing"
|
||||
new "voz en clipboard"
|
||||
|
||||
# 00preferences.rpy:364
|
||||
old "debug voicing"
|
||||
new "debug voz"
|
||||
|
||||
# 00preferences.rpy:373
|
||||
old "emphasize audio"
|
||||
new "enfatiza audio"
|
||||
|
||||
# 00preferences.rpy:382
|
||||
old "rollback side"
|
||||
new "lado retroceso"
|
||||
|
||||
# 00preferences.rpy:392
|
||||
old "gl powersave"
|
||||
new "gl ahorro energía"
|
||||
|
||||
# 00preferences.rpy:398
|
||||
old "gl framerate"
|
||||
new "gl cuadros por s."
|
||||
|
||||
# 00preferences.rpy:401
|
||||
old "gl tearing"
|
||||
new "gl tearing"
|
||||
|
||||
# 00preferences.rpy:413
|
||||
old "music volume"
|
||||
new "volumen música"
|
||||
|
||||
# 00preferences.rpy:414
|
||||
old "sound volume"
|
||||
new "volumen sonido"
|
||||
|
||||
# 00preferences.rpy:415
|
||||
old "voice volume"
|
||||
new "volumen voz"
|
||||
|
||||
# 00preferences.rpy:416
|
||||
old "mute music"
|
||||
new "silencia música"
|
||||
|
||||
# 00preferences.rpy:417
|
||||
old "mute sound"
|
||||
new "silencia sonido"
|
||||
|
||||
# 00preferences.rpy:418
|
||||
old "mute voice"
|
||||
new "silencia voz"
|
||||
|
||||
# 00preferences.rpy:419
|
||||
old "mute all"
|
||||
new "silencia todo"
|
||||
|
||||
# 00preferences.rpy:500
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "'Portapapeles a voz' activado. Pulsa 'Mayús.+C' para desactivarlo."
|
||||
|
||||
# 00preferences.rpy:424
|
||||
# 00preferences.rpy:502
|
||||
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Voz automática dirà \"[renpy.display.tts.last]\". Pulsa 'alt+shift+V' para desactivar."
|
||||
|
||||
# 00preferences.rpy:426
|
||||
# 00preferences.rpy:504
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Voz automática activada. Presiona 'v' para desactivarla."
|
||||
|
||||
@@ -241,179 +557,94 @@ translate spanish strings:
|
||||
old "Contacting App Store\nPlease Wait..."
|
||||
new "Contactando App Store\nPor favor, espera..."
|
||||
|
||||
# 00updater.rpy:367
|
||||
# 00updater.rpy:372
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "El Actualizador de Ren'Py no es compatible con dispositivos móviles."
|
||||
|
||||
# 00updater.rpy:486
|
||||
# 00updater.rpy:491
|
||||
old "An error is being simulated."
|
||||
new "Se simula un error."
|
||||
|
||||
# 00updater.rpy:662
|
||||
# 00updater.rpy:672
|
||||
old "Either this project does not support updating, or the update status file was deleted."
|
||||
new "O bien este proyecto no es compatible con la actualización o el archivo de estado de la actualización se ha eliminado."
|
||||
|
||||
# 00updater.rpy:676
|
||||
# 00updater.rpy:686
|
||||
old "This account does not have permission to perform an update."
|
||||
new "Esta cuenta no tiene permiso para realizar una actualización."
|
||||
|
||||
# 00updater.rpy:679
|
||||
# 00updater.rpy:689
|
||||
old "This account does not have permission to write the update log."
|
||||
new "Esta cuenta no tiene permiso para escribir en el registro de actualización."
|
||||
|
||||
# 00updater.rpy:704
|
||||
# 00updater.rpy:716
|
||||
old "Could not verify update signature."
|
||||
new "No se pudo verificar la actualización de firmas."
|
||||
|
||||
# 00updater.rpy:975
|
||||
# 00updater.rpy:991
|
||||
old "The update file was not downloaded."
|
||||
new "El archivo de actualización no se ha descargado."
|
||||
|
||||
# 00updater.rpy:993
|
||||
# 00updater.rpy:1009
|
||||
old "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "El archivo de actualización no tiene el 'digest' correcto - es posible que esté dañado."
|
||||
|
||||
# 00updater.rpy:1049
|
||||
# 00updater.rpy:1065
|
||||
old "While unpacking {}, unknown type {}."
|
||||
new "Tipo desconocido {1} al desempaquetar {0}."
|
||||
|
||||
# 00updater.rpy:1393
|
||||
# 00updater.rpy:1412
|
||||
old "Updater"
|
||||
new "Actualizador"
|
||||
|
||||
# 00updater.rpy:1404
|
||||
# 00updater.rpy:1423
|
||||
old "This program is up to date."
|
||||
new "Este programa está actualizado."
|
||||
|
||||
# 00updater.rpy:1406
|
||||
# 00updater.rpy:1425
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "[u.version] está disponible. ¿Quieres instalarla?"
|
||||
|
||||
# 00updater.rpy:1408
|
||||
# 00updater.rpy:1427
|
||||
old "Preparing to download the updates."
|
||||
new "Preparando para descargar la actualización."
|
||||
|
||||
# 00updater.rpy:1410
|
||||
# 00updater.rpy:1429
|
||||
old "Downloading the updates."
|
||||
new "Descargando la actualización."
|
||||
|
||||
# 00updater.rpy:1412
|
||||
# 00updater.rpy:1431
|
||||
old "Unpacking the updates."
|
||||
new "Desempaquetando la actualización."
|
||||
|
||||
# 00updater.rpy:1416
|
||||
# 00updater.rpy:1435
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "La actualización ha sido instalada. El programa se reiniciará."
|
||||
|
||||
# 00updater.rpy:1418
|
||||
# 00updater.rpy:1437
|
||||
old "The updates have been installed."
|
||||
new "La actualización ha sido instalada."
|
||||
|
||||
# 00updater.rpy:1420
|
||||
# 00updater.rpy:1439
|
||||
old "The updates were cancelled."
|
||||
new "La actualización ha sido cancelada."
|
||||
|
||||
# 00gallery.rpy:563
|
||||
# 00gallery.rpy:573
|
||||
old "Image [index] of [count] locked."
|
||||
new "Imagen [index] de [count] bloqueada."
|
||||
|
||||
# 00gallery.rpy:583
|
||||
# 00gallery.rpy:593
|
||||
old "prev"
|
||||
new "ant."
|
||||
|
||||
# 00gallery.rpy:584
|
||||
# 00gallery.rpy:594
|
||||
old "next"
|
||||
new "sig."
|
||||
|
||||
# 00gallery.rpy:585
|
||||
# 00gallery.rpy:595
|
||||
old "slideshow"
|
||||
new "presentación"
|
||||
|
||||
# 00gallery.rpy:586
|
||||
# 00gallery.rpy:596
|
||||
old "return"
|
||||
new "volver"
|
||||
|
||||
# 00director.rpy:703
|
||||
old "The interactive director is not enabled here."
|
||||
new "El director interactivo no está habilitado aquí."
|
||||
|
||||
# 00director.rpy:1490
|
||||
old "Done"
|
||||
new "Hecho"
|
||||
|
||||
# 00director.rpy:1498
|
||||
old "(statement)"
|
||||
new "(sentencia)"
|
||||
|
||||
# 00director.rpy:1499
|
||||
old "(tag)"
|
||||
new "(etiqueta)"
|
||||
|
||||
# 00director.rpy:1500
|
||||
old "(attributes)"
|
||||
new "(atributos)"
|
||||
|
||||
# 00director.rpy:1501
|
||||
old "(transform)"
|
||||
new "(transformación)"
|
||||
|
||||
# 00director.rpy:1526
|
||||
old "(transition)"
|
||||
new "(transición)"
|
||||
|
||||
# 00director.rpy:1538
|
||||
old "(channel)"
|
||||
new "(canal)"
|
||||
|
||||
# 00director.rpy:1539
|
||||
old "(filename)"
|
||||
new "(archivo)"
|
||||
|
||||
# 00director.rpy:1564
|
||||
old "Change"
|
||||
new "Cambiar"
|
||||
|
||||
# 00director.rpy:1566
|
||||
old "Add"
|
||||
new "Añadir"
|
||||
|
||||
# 00director.rpy:1572
|
||||
old "Remove"
|
||||
new "Eliminar"
|
||||
|
||||
# 00director.rpy:1605
|
||||
old "Statement:"
|
||||
new "Sentencia:"
|
||||
|
||||
# 00director.rpy:1626
|
||||
old "Tag:"
|
||||
new "Etiqueta:"
|
||||
|
||||
# 00director.rpy:1642
|
||||
old "Attributes:"
|
||||
new "Atributos:"
|
||||
|
||||
# 00director.rpy:1660
|
||||
old "Transforms:"
|
||||
new "Transformaciones:"
|
||||
|
||||
# 00director.rpy:1679
|
||||
old "Behind:"
|
||||
new "Detrás:"
|
||||
|
||||
# 00director.rpy:1698
|
||||
old "Transition:"
|
||||
new "Transición:"
|
||||
|
||||
# 00director.rpy:1716
|
||||
old "Channel:"
|
||||
new "Canal:"
|
||||
|
||||
# 00director.rpy:1734
|
||||
old "Audio Filename:"
|
||||
new "Archivo de audio:"
|
||||
|
||||
# 00keymap.rpy:258
|
||||
old "Failed to save screenshot as %s."
|
||||
new "No se pudo salvar la captura de pantalla como %s."
|
||||
|
||||
|
||||
@@ -3,23 +3,23 @@ translate spanish strings:
|
||||
|
||||
# _developer/developer.rpym:38
|
||||
old "Developer Menu"
|
||||
new "Menú De Desarrollo"
|
||||
new "Menú de desarrollo"
|
||||
|
||||
# _developer/developer.rpym:43
|
||||
old "Reload Game (Shift+R)"
|
||||
new "Reiniciar Juego (Shift+R)"
|
||||
old "Interactive Director (D)"
|
||||
new "Director interactivo (D)"
|
||||
|
||||
# _developer/developer.rpym:45
|
||||
old "Reload Game (Shift+R)"
|
||||
new "Reiniciar juego (Shift+R)"
|
||||
|
||||
# _developer/developer.rpym:47
|
||||
old "Console (Shift+O)"
|
||||
new "Consola (Mayús.+O)"
|
||||
|
||||
# _developer/developer.rpym:47
|
||||
old "Variable Viewer"
|
||||
new "Visor De Variables"
|
||||
|
||||
# _developer/developer.rpym:49
|
||||
old "Theme Test"
|
||||
new "Probar Tema"
|
||||
old "Variable Viewer"
|
||||
new "Visor de variables"
|
||||
|
||||
# _developer/developer.rpym:51
|
||||
old "Image Location Picker"
|
||||
@@ -27,53 +27,65 @@ translate spanish strings:
|
||||
|
||||
# _developer/developer.rpym:53
|
||||
old "Filename List"
|
||||
new "Lista De Archivos"
|
||||
new "Lista de archivos"
|
||||
|
||||
# _developer/developer.rpym:57
|
||||
old "Show Image Load Log"
|
||||
new "Muestra registro de carga de imagen"
|
||||
old "Show Image Load Log (F4)"
|
||||
new "Mostrar registro de carga de imagen (F4)"
|
||||
|
||||
# _developer/developer.rpym:60
|
||||
old "Hide Image Load Log"
|
||||
new "Oculta registro de carga de imagen"
|
||||
old "Hide Image Load Log (F4)"
|
||||
new "Ocultar registro de carga de imagen (F4)"
|
||||
|
||||
# _developer/developer.rpym:95
|
||||
old "Nothing to inspect."
|
||||
new "Nada para inspeccionar."
|
||||
|
||||
# _developer/developer.rpym:217
|
||||
# _developer/developer.rpym:223
|
||||
old "Return to the developer menu"
|
||||
new "Volver al menú de desarrollo"
|
||||
|
||||
# _developer/developer.rpym:373
|
||||
# _developer/developer.rpym:383
|
||||
old "Rectangle: %r"
|
||||
new "Rectángulo: %r"
|
||||
|
||||
# _developer/developer.rpym:378
|
||||
# _developer/developer.rpym:388
|
||||
old "Mouse position: %r"
|
||||
new "Posición del ratón: %r"
|
||||
|
||||
# _developer/developer.rpym:383
|
||||
# _developer/developer.rpym:393
|
||||
old "Right-click or escape to quit."
|
||||
new "Clic-derecho o escape para salir."
|
||||
|
||||
# _developer/developer.rpym:412
|
||||
# _developer/developer.rpym:425
|
||||
old "Rectangle copied to clipboard."
|
||||
new "Rectángulo copiado al portapapeles."
|
||||
|
||||
# _developer/developer.rpym:415
|
||||
# _developer/developer.rpym:428
|
||||
old "Position copied to clipboard."
|
||||
new "Posición copiada al portapapeles."
|
||||
|
||||
# _developer/developer.rpym:524
|
||||
# _developer/developer.rpym:447
|
||||
old "Type to filter: "
|
||||
new "Tipo a filtrar: "
|
||||
|
||||
# _developer/developer.rpym:575
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
new "Texturas: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
|
||||
# _developer/developer.rpym:579
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
new "Caché de imagen: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
# _developer/developer.rpym:589
|
||||
old "✔ "
|
||||
new "✔ "
|
||||
|
||||
# _developer/developer.rpym:527
|
||||
# _developer/developer.rpym:592
|
||||
old "✘ "
|
||||
new "✘ "
|
||||
|
||||
# _developer/developer.rpym:532
|
||||
# _developer/developer.rpym:597
|
||||
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}✔ imagen prevista (correcto){/color}\n{color=#fcc}✘ imagen no prevista (fallido){/color}\n{color=#fff}Arrastra para mover.{/color}"
|
||||
|
||||
@@ -113,91 +125,66 @@ translate spanish strings:
|
||||
old "<repr() failed>"
|
||||
new "<repr() fallido>"
|
||||
|
||||
# 00console.rpy:182
|
||||
# 00console.rpy:255
|
||||
old "Press <esc> to exit console. Type help for help.\n"
|
||||
new "Presiona <esc> para salir de la consola. Escribe 'help' para la ayuda.\n"
|
||||
|
||||
# 00console.rpy:186
|
||||
# 00console.rpy:259
|
||||
old "Ren'Py script enabled."
|
||||
new "Script Ren'Py habilitado."
|
||||
|
||||
# 00console.rpy:188
|
||||
# 00console.rpy:261
|
||||
old "Ren'Py script disabled."
|
||||
new "Script Ren'Py deshabilitado."
|
||||
|
||||
# 00console.rpy:398
|
||||
# 00console.rpy:496
|
||||
old "help: show this help"
|
||||
new "help: muestra esta ayuda"
|
||||
|
||||
# 00console.rpy:403
|
||||
# 00console.rpy:501
|
||||
old "commands:\n"
|
||||
new "comandos:\n"
|
||||
|
||||
# 00console.rpy:413
|
||||
# 00console.rpy:511
|
||||
old " <renpy script statement>: run the statement\n"
|
||||
new " <sentencia renpy script>: ejecuta la sentencia\n"
|
||||
|
||||
# 00console.rpy:415
|
||||
# 00console.rpy:513
|
||||
old " <python expression or statement>: run the expression or statement"
|
||||
new " <expresión o sentencia python>: ejecuta la expresión o sentencia"
|
||||
|
||||
# 00console.rpy:423
|
||||
# 00console.rpy:521
|
||||
old "clear: clear the console history"
|
||||
new "clear: limpia el historial de la consola"
|
||||
|
||||
# 00console.rpy:427
|
||||
# 00console.rpy:525
|
||||
old "exit: exit the console"
|
||||
new "exit: sale de la consola"
|
||||
|
||||
# 00console.rpy:435
|
||||
# 00console.rpy:533
|
||||
old "load <slot>: loads the game from slot"
|
||||
new "load <slot>: carga el juego desde el 'slot'"
|
||||
|
||||
# 00console.rpy:448
|
||||
# 00console.rpy:546
|
||||
old "save <slot>: saves the game in slot"
|
||||
new "save <slot>: graba el juego en el 'slot'"
|
||||
|
||||
# 00console.rpy:459
|
||||
# 00console.rpy:557
|
||||
old "reload: reloads the game, refreshing the scripts"
|
||||
new "reload: recarga el juego, actualizando los scripts"
|
||||
|
||||
# 00console.rpy:467
|
||||
# 00console.rpy:565
|
||||
old "watch <expression>: watch a python expression"
|
||||
new "watch <expresión>: observa una expresión python"
|
||||
|
||||
# 00console.rpy:493
|
||||
# 00console.rpy:591
|
||||
old "unwatch <expression>: stop watching an expression"
|
||||
new "unwatch <expresión>: deja de observar una expresión"
|
||||
|
||||
# 00console.rpy:519
|
||||
# 00console.rpy:622
|
||||
old "unwatchall: stop watching all expressions"
|
||||
new "unwatchall: deja de observar todas las expresiones"
|
||||
|
||||
# 00console.rpy:536
|
||||
# 00console.rpy:639
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <label>: salta a la etiqueta"
|
||||
|
||||
# _developer/developer.rpym:43
|
||||
old "Interactive Director (D)"
|
||||
new "Director interactivo (D)"
|
||||
|
||||
# _developer/developer.rpym:57
|
||||
old "Show Image Load Log (F4)"
|
||||
new "Mostrar registro de carga de imagen (F4)"
|
||||
|
||||
# _developer/developer.rpym:60
|
||||
old "Hide Image Load Log (F4)"
|
||||
new "Ocultar registro de carga de imagen (F4)"
|
||||
|
||||
# _developer/developer.rpym:447
|
||||
old "Type to filter: "
|
||||
new "Tipo a filtrar: "
|
||||
|
||||
# _developer/developer.rpym:572
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
new "Texturas: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
|
||||
# _developer/developer.rpym:576
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
new "Caché de imagen: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
|
||||
@@ -1,91 +1,119 @@
|
||||
|
||||
translate spanish strings:
|
||||
|
||||
# 00gltest.rpy:64
|
||||
old "Graphics Acceleration"
|
||||
new "Aceleración gráfica"
|
||||
|
||||
# 00gltest.rpy:70
|
||||
old "Renderer"
|
||||
new "Renderizador"
|
||||
|
||||
# 00gltest.rpy:74
|
||||
old "Automatically Choose"
|
||||
new "Escoger automáticamente"
|
||||
|
||||
# 00gltest.rpy:75
|
||||
# 00gltest.rpy:79
|
||||
old "Force Angle/DirectX Renderer"
|
||||
new "Forzar 'Angle/DirectX Renderer'"
|
||||
|
||||
# 00gltest.rpy:79
|
||||
# 00gltest.rpy:83
|
||||
old "Force OpenGL Renderer"
|
||||
new "Forzar 'OpenGL Renderer'"
|
||||
|
||||
# 00gltest.rpy:83
|
||||
# 00gltest.rpy:87
|
||||
old "Force Software Renderer"
|
||||
new "Forzar 'Software Renderer'"
|
||||
|
||||
# 00gltest.rpy:93
|
||||
old "NPOT"
|
||||
new "NPOT"
|
||||
|
||||
# 00gltest.rpy:97
|
||||
old "Enable"
|
||||
new "Activar"
|
||||
|
||||
# 00gltest.rpy:109
|
||||
# 00gltest.rpy:131
|
||||
old "Powersave"
|
||||
new "Ahorro de energía"
|
||||
|
||||
# 00gltest.rpy:145
|
||||
old "Framerate"
|
||||
new "Cuadros por s."
|
||||
|
||||
# 00gltest.rpy:149
|
||||
old "Screen"
|
||||
new "Pantalla"
|
||||
|
||||
# 00gltest.rpy:153
|
||||
old "60"
|
||||
new "60"
|
||||
|
||||
# 00gltest.rpy:157
|
||||
old "30"
|
||||
new "30"
|
||||
|
||||
# 00gltest.rpy:163
|
||||
old "Tearing"
|
||||
new "Tearing"
|
||||
|
||||
# 00gltest.rpy:179
|
||||
old "Changes will take effect the next time this program is run."
|
||||
new "Los cambios se aplicarán la próxima vez que el programa se ejecute."
|
||||
|
||||
# 00gltest.rpy:141
|
||||
# 00gltest.rpy:213
|
||||
old "Performance Warning"
|
||||
new "Aviso de funcionamiento"
|
||||
|
||||
# 00gltest.rpy:146
|
||||
# 00gltest.rpy:218
|
||||
old "This computer is using software rendering."
|
||||
new "Este ordenador usa 'software rendering'."
|
||||
|
||||
# 00gltest.rpy:148
|
||||
# 00gltest.rpy:220
|
||||
old "This computer is not using shaders."
|
||||
new "Este ordenador no usa 'shaders'."
|
||||
|
||||
# 00gltest.rpy:150
|
||||
# 00gltest.rpy:222
|
||||
old "This computer is displaying graphics slowly."
|
||||
new "Este ordenador muestra los gráficos lentamente."
|
||||
|
||||
# 00gltest.rpy:152
|
||||
# 00gltest.rpy:224
|
||||
old "This computer has a problem displaying graphics: [problem]."
|
||||
new "Este ordenador tiene un problema mostrando los gráficos: [problem]."
|
||||
|
||||
# 00gltest.rpy:157
|
||||
# 00gltest.rpy:229
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
|
||||
new "Los controladores gráficos pueden estar obsoletos o no funcionar adecuadamente. Esto puede conllevar que los gráficos se muestren lenta o incorrectamente. Actualizar DirectX puede solucionar este problema."
|
||||
|
||||
# 00gltest.rpy:159
|
||||
# 00gltest.rpy:231
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
|
||||
new "Los controladores gráficos pueden estar obsoletos o no funcionar adecuadamente. Esto puede conllevar que los gráficos se muestren lenta o incorrectamente."
|
||||
|
||||
# 00gltest.rpy:164
|
||||
# 00gltest.rpy:236
|
||||
old "Update DirectX"
|
||||
new "Actualizar DirectX"
|
||||
|
||||
# 00gltest.rpy:170
|
||||
# 00gltest.rpy:242
|
||||
old "Continue, Show this warning again"
|
||||
new "Continuar. Mostrar este aviso de nuevo"
|
||||
|
||||
# 00gltest.rpy:174
|
||||
# 00gltest.rpy:246
|
||||
old "Continue, Don't show warning again"
|
||||
new "Continuar. No mostrar este aviso de nuevo"
|
||||
|
||||
# 00gltest.rpy:192
|
||||
# 00gltest.rpy:264
|
||||
old "Updating DirectX."
|
||||
new "Actualizando DirectX."
|
||||
|
||||
# 00gltest.rpy:196
|
||||
# 00gltest.rpy:268
|
||||
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
|
||||
new "La instalación web de DirectX ha comenzado. Puede haber iniciado minimizada en la barra de tareas. Siga las instrucciones para instalar DirectX."
|
||||
|
||||
# 00gltest.rpy:200
|
||||
# 00gltest.rpy:272
|
||||
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
|
||||
new "{b}Nota:{/b} El programa de instalación de DirectX de Microsoft instalará, por defecto, la barra Bing. Si no desea esta barra, desactive la casilla correspondiente."
|
||||
|
||||
# 00gltest.rpy:204
|
||||
# 00gltest.rpy:276
|
||||
old "When setup finishes, please click below to restart this program."
|
||||
new "Cuando la instalación acabe, haga clic abajo para reiniciar el programa."
|
||||
|
||||
# 00gltest.rpy:206
|
||||
# 00gltest.rpy:278
|
||||
old "Restart"
|
||||
new "Reiniciar"
|
||||
|
||||
@@ -113,114 +141,54 @@ translate spanish strings:
|
||||
old "Back (B)"
|
||||
new "Atrás (B)"
|
||||
|
||||
# _errorhandling.rpym:495
|
||||
old "Open Traceback"
|
||||
new "Abrir rastreo"
|
||||
|
||||
# _errorhandling.rpym:497
|
||||
old "Opens the traceback.txt file in a text editor."
|
||||
new "Abre el archivo de rastreo 'traceback.txt' en un editor de texto."
|
||||
|
||||
# _errorhandling.rpym:499
|
||||
old "Copy to Clipboard"
|
||||
new "Copiar al portapapeles"
|
||||
|
||||
# _errorhandling.rpym:501
|
||||
old "Copies the traceback.txt file to the clipboard."
|
||||
new "Copia el archivo traceback.txt al portapapeles."
|
||||
|
||||
# _errorhandling.rpym:519
|
||||
old "An exception has occurred."
|
||||
new "Ha sucedido una excepción."
|
||||
|
||||
# _errorhandling.rpym:538
|
||||
old "Rollback"
|
||||
new "Volver atrás"
|
||||
|
||||
# _errorhandling.rpym:540
|
||||
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
|
||||
new "Intenta volver a un momento anterior y permite guardar o escoger una opción diferente."
|
||||
|
||||
# _errorhandling.rpym:543
|
||||
old "Ignore"
|
||||
new "Ignorar"
|
||||
|
||||
# _errorhandling.rpym:545
|
||||
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
|
||||
new "Ignora la excepción y permite continuar. Suele conllevar más errores."
|
||||
|
||||
# _errorhandling.rpym:548
|
||||
old "Reload"
|
||||
new "Recargar"
|
||||
|
||||
# _errorhandling.rpym:550
|
||||
old "Reloads the game from disk, saving and restoring game state if possible."
|
||||
new "Recarga el juego del disco, guardando y restaurando la partida si es posible."
|
||||
|
||||
# _errorhandling.rpym:560
|
||||
old "Quits the game."
|
||||
new "Sale del juego."
|
||||
|
||||
# _errorhandling.rpym:582
|
||||
old "Parsing the script failed."
|
||||
new "Error en el análisis del código."
|
||||
|
||||
# _errorhandling.rpym:606
|
||||
old "Open Parse Errors"
|
||||
new "Abre errores de análisis"
|
||||
|
||||
# _errorhandling.rpym:608
|
||||
old "Opens the errors.txt file in a text editor."
|
||||
new "Abre el archivo de errores, 'errors.txt', en un editor de texto."
|
||||
|
||||
# _errorhandling.rpym:612
|
||||
old "Copies the errors.txt file to the clipboard."
|
||||
new "Copia el archivo errors.txt al portapapeles."
|
||||
|
||||
# 00gltest.rpy:70
|
||||
old "Renderer"
|
||||
new "Renderizador"
|
||||
|
||||
# 00gltest.rpy:93
|
||||
old "NPOT"
|
||||
new "NPOT"
|
||||
|
||||
# 00gltest.rpy:131
|
||||
old "Powersave"
|
||||
new "Ahorro de energía"
|
||||
|
||||
# 00gltest.rpy:145
|
||||
old "Framerate"
|
||||
new "Cuadros por s."
|
||||
|
||||
# 00gltest.rpy:149
|
||||
old "Screen"
|
||||
new "Pantalla"
|
||||
|
||||
# 00gltest.rpy:153
|
||||
old "60"
|
||||
new "60"
|
||||
|
||||
# 00gltest.rpy:157
|
||||
old "30"
|
||||
new "30"
|
||||
|
||||
# 00gltest.rpy:163
|
||||
old "Tearing"
|
||||
new "Tearing"
|
||||
|
||||
# _errorhandling.rpym:528
|
||||
old "Open"
|
||||
new "Abrir"
|
||||
|
||||
# _errorhandling.rpym:530
|
||||
old "Opens the traceback.txt file in a text editor."
|
||||
new "Abre el archivo de rastreo 'traceback.txt' en un editor de texto."
|
||||
|
||||
# _errorhandling.rpym:532
|
||||
old "Copy"
|
||||
new "Copiar"
|
||||
|
||||
# _errorhandling.rpym:534
|
||||
old "Copies the traceback.txt file to the clipboard."
|
||||
new "Copia el archivo traceback.txt al portapapeles."
|
||||
|
||||
# _errorhandling.rpym:561
|
||||
old "An exception has occurred."
|
||||
new "Ha sucedido una excepción."
|
||||
|
||||
# _errorhandling.rpym:581
|
||||
old "Rollback"
|
||||
new "Volver atrás"
|
||||
|
||||
# _errorhandling.rpym:583
|
||||
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
|
||||
new "Intenta volver a un momento anterior y permite guardar o escoger una opción diferente."
|
||||
|
||||
# _errorhandling.rpym:586
|
||||
old "Ignore"
|
||||
new "Ignorar"
|
||||
|
||||
# _errorhandling.rpym:590
|
||||
old "Ignores the exception, allowing you to continue."
|
||||
new "Ignora la excepción y permite continuar."
|
||||
|
||||
# _errorhandling.rpym:592
|
||||
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
|
||||
new "Ignora la excepción y permite continuar. Suele conllevar más errores."
|
||||
|
||||
# _errorhandling.rpym:596
|
||||
old "Reload"
|
||||
new "Recargar"
|
||||
|
||||
# _errorhandling.rpym:598
|
||||
old "Reloads the game from disk, saving and restoring game state if possible."
|
||||
new "Recarga el juego del disco, guardando y restaurando la partida si es posible."
|
||||
|
||||
# _errorhandling.rpym:601
|
||||
old "Console"
|
||||
new "Consola"
|
||||
@@ -229,3 +197,18 @@ translate spanish strings:
|
||||
old "Opens a console to allow debugging the problem."
|
||||
new "Abre una consola y permite depurar el problema."
|
||||
|
||||
# _errorhandling.rpym:613
|
||||
old "Quits the game."
|
||||
new "Sale del juego."
|
||||
|
||||
# _errorhandling.rpym:637
|
||||
old "Parsing the script failed."
|
||||
new "Error en el análisis del código."
|
||||
|
||||
# _errorhandling.rpym:663
|
||||
old "Opens the errors.txt file in a text editor."
|
||||
new "Abre el archivo de errores, 'errors.txt', en un editor de texto."
|
||||
|
||||
# _errorhandling.rpym:667
|
||||
old "Copies the errors.txt file to the clipboard."
|
||||
new "Copia el archivo errors.txt al portapapeles."
|
||||
|
||||
@@ -3,433 +3,432 @@ translate spanish strings:
|
||||
|
||||
# gui.rpy:2
|
||||
old "## Initialization"
|
||||
new "## Initialization"
|
||||
new "## Inicialización"
|
||||
|
||||
# gui.rpy:5
|
||||
old "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
new "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
|
||||
new "## La sentencia 'init offset' da preferencia a las sentencias de inicialización de este archivo respecto a otros archivos."
|
||||
|
||||
# gui.rpy:9
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
|
||||
# gui.rpy:21
|
||||
old "## Colors"
|
||||
new "## Colors"
|
||||
|
||||
# gui.rpy:23
|
||||
old "## The colors of text in the interface."
|
||||
new "## The colors of text in the interface."
|
||||
|
||||
# gui.rpy:25
|
||||
old "## An accent color used throughout the interface to label and highlight text."
|
||||
new "## An accent color used throughout the interface to label and highlight text."
|
||||
|
||||
# gui.rpy:29
|
||||
old "## The color used for a text button when it is neither selected nor hovered."
|
||||
new "## The color used for a text button when it is neither selected nor hovered."
|
||||
|
||||
# gui.rpy:32
|
||||
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
|
||||
# gui.rpy:36
|
||||
old "## The color that is used for buttons and bars that are hovered."
|
||||
new "## The color that is used for buttons and bars that are hovered."
|
||||
|
||||
# gui.rpy:39
|
||||
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
new "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
|
||||
# gui.rpy:43
|
||||
old "## The color used for a text button when it cannot be selected."
|
||||
new "## The color used for a text button when it cannot be selected."
|
||||
|
||||
# gui.rpy:46
|
||||
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
new "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
|
||||
# gui.rpy:51
|
||||
old "## The colors used for dialogue and menu choice text."
|
||||
new "## The colors used for dialogue and menu choice text."
|
||||
|
||||
# gui.rpy:56
|
||||
old "## Fonts and Font Sizes"
|
||||
new "## Fonts and Font Sizes"
|
||||
|
||||
# gui.rpy:58
|
||||
old "## The font used for in-game text."
|
||||
new "## The font used for in-game text."
|
||||
|
||||
# gui.rpy:61
|
||||
old "## The font used for character names."
|
||||
new "## The font used for character names."
|
||||
|
||||
# gui.rpy:64
|
||||
old "## The font used for out-of-game text."
|
||||
new "## The font used for out-of-game text."
|
||||
|
||||
# gui.rpy:67
|
||||
old "## The size of normal dialogue text."
|
||||
new "## The size of normal dialogue text."
|
||||
|
||||
# gui.rpy:70
|
||||
old "## The size of character names."
|
||||
new "## The size of character names."
|
||||
|
||||
# gui.rpy:73
|
||||
old "## The size of text in the game's user interface."
|
||||
new "## The size of text in the game's user interface."
|
||||
|
||||
# gui.rpy:76
|
||||
old "## The size of labels in the game's user interface."
|
||||
new "## The size of labels in the game's user interface."
|
||||
|
||||
# gui.rpy:79
|
||||
old "## The size of text on the notify screen."
|
||||
new "## The size of text on the notify screen."
|
||||
|
||||
# gui.rpy:82
|
||||
old "## The size of the game's title."
|
||||
new "## The size of the game's title."
|
||||
|
||||
# gui.rpy:86
|
||||
old "## Main and Game Menus"
|
||||
new "## Main and Game Menus"
|
||||
|
||||
# gui.rpy:88
|
||||
old "## The images used for the main and game menus."
|
||||
new "## The images used for the main and game menus."
|
||||
|
||||
# gui.rpy:92
|
||||
old "## Should we show the name and version of the game?"
|
||||
new "## Should we show the name and version of the game?"
|
||||
|
||||
# gui.rpy:96
|
||||
old "## Dialogue"
|
||||
new "## Dialogue"
|
||||
|
||||
# gui.rpy:98
|
||||
old "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
new "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
|
||||
# gui.rpy:101
|
||||
old "## The height of the textbox containing dialogue."
|
||||
new "## The height of the textbox containing dialogue."
|
||||
|
||||
# gui.rpy:104
|
||||
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
|
||||
# gui.rpy:109
|
||||
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
|
||||
# gui.rpy:114
|
||||
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
|
||||
# gui.rpy:118
|
||||
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
|
||||
# gui.rpy:123
|
||||
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
|
||||
# gui.rpy:127
|
||||
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
|
||||
new "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
|
||||
|
||||
# gui.rpy:132
|
||||
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
new "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
|
||||
# gui.rpy:138
|
||||
old "## The maximum width of dialogue text, in pixels."
|
||||
new "## The maximum width of dialogue text, in pixels."
|
||||
|
||||
# gui.rpy:141
|
||||
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
|
||||
# gui.rpy:146
|
||||
old "## Buttons"
|
||||
new "## Buttons"
|
||||
|
||||
# gui.rpy:148
|
||||
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
|
||||
# gui.rpy:151
|
||||
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
|
||||
# gui.rpy:155
|
||||
old "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
new "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
|
||||
# gui.rpy:158
|
||||
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
|
||||
# gui.rpy:162
|
||||
old "## The font used by the button."
|
||||
new "## The font used by the button."
|
||||
|
||||
# gui.rpy:165
|
||||
old "## The size of the text used by the button."
|
||||
new "## The size of the text used by the button."
|
||||
|
||||
# gui.rpy:179
|
||||
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
|
||||
# gui.rpy:183
|
||||
old "## These customizations are used by the default interface:"
|
||||
new "## These customizations are used by the default interface:"
|
||||
|
||||
# gui.rpy:198
|
||||
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
|
||||
# gui.rpy:205
|
||||
old "## Choice Buttons"
|
||||
new "## Choice Buttons"
|
||||
|
||||
# gui.rpy:207
|
||||
old "## Choice buttons are used in the in-game menus."
|
||||
new "## Choice buttons are used in the in-game menus."
|
||||
|
||||
# gui.rpy:220
|
||||
old "## File Slot Buttons"
|
||||
new "## File Slot Buttons"
|
||||
|
||||
# gui.rpy:222
|
||||
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
|
||||
# gui.rpy:226
|
||||
old "## The save slot button."
|
||||
new "## The save slot button."
|
||||
|
||||
# gui.rpy:234
|
||||
old "## The width and height of thumbnails used by the save slots."
|
||||
new "## The width and height of thumbnails used by the save slots."
|
||||
|
||||
# gui.rpy:238
|
||||
old "## The number of columns and rows in the grid of save slots."
|
||||
new "## The number of columns and rows in the grid of save slots."
|
||||
|
||||
# gui.rpy:243
|
||||
old "## Positioning and Spacing"
|
||||
new "## Positioning and Spacing"
|
||||
|
||||
# gui.rpy:245
|
||||
old "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## These variables control the positioning and spacing of various user interface elements."
|
||||
|
||||
# gui.rpy:248
|
||||
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
|
||||
# gui.rpy:252
|
||||
old "## The vertical position of the skip indicator."
|
||||
new "## The vertical position of the skip indicator."
|
||||
|
||||
# gui.rpy:255
|
||||
old "## The vertical position of the notify screen."
|
||||
new "## The vertical position of the notify screen."
|
||||
|
||||
# gui.rpy:258
|
||||
old "## The spacing between menu choices."
|
||||
new "## The spacing between menu choices."
|
||||
|
||||
# gui.rpy:261
|
||||
old "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Buttons in the navigation section of the main and game menus."
|
||||
|
||||
# gui.rpy:264
|
||||
old "## Controls the amount of spacing between preferences."
|
||||
new "## Controls the amount of spacing between preferences."
|
||||
|
||||
# gui.rpy:267
|
||||
old "## Controls the amount of spacing between preference buttons."
|
||||
new "## Controls the amount of spacing between preference buttons."
|
||||
|
||||
# gui.rpy:270
|
||||
old "## The spacing between file page buttons."
|
||||
new "## The spacing between file page buttons."
|
||||
|
||||
# gui.rpy:273
|
||||
old "## The spacing between file slots."
|
||||
new "## The spacing between file slots."
|
||||
|
||||
# gui.rpy:277
|
||||
old "## Frames"
|
||||
new "## Frames"
|
||||
|
||||
# gui.rpy:279
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
|
||||
# gui.rpy:282
|
||||
old "## Generic frames that are introduced by player code."
|
||||
new "## Generic frames that are introduced by player code."
|
||||
|
||||
# gui.rpy:285
|
||||
old "## The frame that is used as part of the confirm screen."
|
||||
new "## The frame that is used as part of the confirm screen."
|
||||
|
||||
# gui.rpy:288
|
||||
old "## The frame that is used as part of the skip screen."
|
||||
new "## The frame that is used as part of the skip screen."
|
||||
|
||||
# gui.rpy:291
|
||||
old "## The frame that is used as part of the notify screen."
|
||||
new "## The frame that is used as part of the notify screen."
|
||||
|
||||
# gui.rpy:294
|
||||
old "## Should frame backgrounds be tiled?"
|
||||
new "## Should frame backgrounds be tiled?"
|
||||
|
||||
# gui.rpy:298
|
||||
old "## Bars, Scrollbars, and Sliders"
|
||||
new "## Bars, Scrollbars, and Sliders"
|
||||
|
||||
# gui.rpy:300
|
||||
old "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## These control the look and size of bars, scrollbars, and sliders."
|
||||
|
||||
# gui.rpy:302
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
|
||||
# gui.rpy:305
|
||||
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
|
||||
# gui.rpy:311
|
||||
old "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
|
||||
# gui.rpy:316
|
||||
old "## Horizontal borders."
|
||||
new "## Horizontal borders."
|
||||
|
||||
# gui.rpy:321
|
||||
old "## Vertical borders."
|
||||
new "## Vertical borders."
|
||||
|
||||
# gui.rpy:326
|
||||
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
|
||||
# gui.rpy:331
|
||||
old "## History"
|
||||
new "## History"
|
||||
|
||||
# gui.rpy:333
|
||||
old "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## The history screen displays dialogue that the player has already dismissed."
|
||||
|
||||
# gui.rpy:335
|
||||
old "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
|
||||
# gui.rpy:338
|
||||
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
|
||||
# gui.rpy:342
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
|
||||
# gui.rpy:349
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## The position, width, and alignment of the dialogue text."
|
||||
|
||||
# gui.rpy:356
|
||||
old "## NVL-Mode"
|
||||
new "## NVL-Mode"
|
||||
|
||||
# gui.rpy:358
|
||||
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
|
||||
# gui.rpy:360
|
||||
old "## The borders of the background of the NVL-mode background window."
|
||||
new "## The borders of the background of the NVL-mode background window."
|
||||
|
||||
# gui.rpy:363
|
||||
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
|
||||
# gui.rpy:367
|
||||
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
|
||||
# gui.rpy:384
|
||||
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
|
||||
# gui.rpy:391
|
||||
old "## The position of nvl menu_buttons."
|
||||
new "## The position of nvl menu_buttons."
|
||||
|
||||
# gui.rpy:403
|
||||
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
|
||||
# gui.rpy:409
|
||||
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
|
||||
# gui.rpy:413
|
||||
old "## Font sizes."
|
||||
new "## Font sizes."
|
||||
|
||||
# gui.rpy:421
|
||||
old "## Adjust the location of the textbox."
|
||||
new "## Adjust the location of the textbox."
|
||||
|
||||
# gui.rpy:427
|
||||
old "## Change the size and spacing of items in the game menu."
|
||||
new "## Change the size and spacing of items in the game menu."
|
||||
|
||||
# gui.rpy:436
|
||||
old "## File button layout."
|
||||
new "## File button layout."
|
||||
|
||||
# gui.rpy:440
|
||||
old "## NVL-mode."
|
||||
new "## NVL-mode."
|
||||
|
||||
# gui.rpy:456
|
||||
old "## Quick buttons."
|
||||
new "## Quick buttons."
|
||||
new "## Llamando 'qui.init' se resetean los estilos a los valores por defecto y se establecen la anchura y altura del juego."
|
||||
|
||||
# gui.rpy:17
|
||||
old "## GUI Configuration Variables"
|
||||
new "## Variables de configuración de la interfaz."
|
||||
|
||||
# gui.rpy:168
|
||||
# gui.rpy:21
|
||||
old "## Colors"
|
||||
new "## Colores"
|
||||
|
||||
# gui.rpy:23
|
||||
old "## The colors of text in the interface."
|
||||
new "## Los colores del texto de la interfaz"
|
||||
|
||||
# gui.rpy:25
|
||||
old "## An accent color used throughout the interface to label and highlight text."
|
||||
new "## El color enfatizado usado en la interfaz para subrayar texto."
|
||||
|
||||
# gui.rpy:29
|
||||
old "## The color used for a text button when it is neither selected nor hovered."
|
||||
new "## El color del botón de texto cuando no está seleccionado ni enfocado."
|
||||
|
||||
# gui.rpy:32
|
||||
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## El color 'small' se usa para el texto pequeño, que necesita destacar más."
|
||||
|
||||
# gui.rpy:36
|
||||
old "## The color that is used for buttons and bars that are hovered."
|
||||
new "## El color usado en botones y barras que ganan foco."
|
||||
|
||||
# gui.rpy:39
|
||||
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
new "## El color del botón de texto seleccionado pero no enfocado. Un botón está seleccionado si indica el valor actual de la pantalla o preferencia."
|
||||
|
||||
# gui.rpy:43
|
||||
old "## The color used for a text button when it cannot be selected."
|
||||
new "## El color de los botones de texto que no pueden ser seleccionados."
|
||||
|
||||
# gui.rpy:46
|
||||
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
new "## Colores de la parte vacía de las barras. No se usan directamente, sino en la regeneración de las imágenes de barra."
|
||||
|
||||
# gui.rpy:51
|
||||
old "## The colors used for dialogue and menu choice text."
|
||||
new "## Colores del texto del diálogo y menú."
|
||||
|
||||
# gui.rpy:56
|
||||
old "## Fonts and Font Sizes"
|
||||
new "## Tipos y tamaños de letra"
|
||||
|
||||
# gui.rpy:58
|
||||
old "## The font used for in-game text."
|
||||
new "## El tipo de letra del texto del juego"
|
||||
|
||||
# gui.rpy:61
|
||||
old "## The font used for character names."
|
||||
new "## El tipo de letra de los nombres de personajes"
|
||||
|
||||
# gui.rpy:64
|
||||
old "## The font used for out-of-game text."
|
||||
new "## El tipo de letra del texto externo al juego."
|
||||
|
||||
# gui.rpy:67
|
||||
old "## The size of normal dialogue text."
|
||||
new "## El tamaño normal del texto del diálogo."
|
||||
|
||||
# gui.rpy:70
|
||||
old "## The size of character names."
|
||||
new "## El tamaño de los nombres de los personajes"
|
||||
|
||||
# gui.rpy:73
|
||||
old "## The size of text in the game's user interface."
|
||||
new "## El tamaño del texto en la interfaz."
|
||||
|
||||
# gui.rpy:76
|
||||
old "## The size of labels in the game's user interface."
|
||||
new "## El tamaño de etiquetas en la interfaz."
|
||||
|
||||
# gui.rpy:79
|
||||
old "## The size of text on the notify screen."
|
||||
new "## El tamaño del texto en las notificaciones."
|
||||
|
||||
# gui.rpy:82
|
||||
old "## The size of the game's title."
|
||||
new "## El tamaño del título del juego."
|
||||
|
||||
# gui.rpy:86
|
||||
old "## Main and Game Menus"
|
||||
new "## Menú principal y menús del juego"
|
||||
|
||||
# gui.rpy:88
|
||||
old "## The images used for the main and game menus."
|
||||
new "## Imágenes del menú principal y menús del juego."
|
||||
|
||||
# gui.rpy:93
|
||||
old "## Dialogue"
|
||||
new "## Diálogo"
|
||||
|
||||
# gui.rpy:95
|
||||
old "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
new "## Estas variables controlan cómo se muestra el diálogo en le pantalla, una línea cada vez."
|
||||
|
||||
# gui.rpy:98
|
||||
old "## The height of the textbox containing dialogue."
|
||||
new "## Altura de la caja de texto que contiene el diálogo."
|
||||
|
||||
# gui.rpy:101
|
||||
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
new "## Colocación vertical de la caja de texto en la pantalla. 0.0 para la parte superior, 0.5 para el centro y 1.0 para la parte inferior."
|
||||
|
||||
# gui.rpy:106
|
||||
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
new "## Colocación del nombre del personaje hablante, relativa a la caja de texto. Puede ser el númerode píxels desde la esquina superior izquierda, o 0.5 para centrar."
|
||||
|
||||
# gui.rpy:111
|
||||
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## La alineación horizontal del nombre del personaje. (0.0 es izquierda, 0.5 es centro, 1.0 es derecha)."
|
||||
|
||||
# gui.rpy:115
|
||||
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
new "## La anchura, altura y bordes de la caja que contiene el nombre del personaje, o 'None' para dimensión automática."
|
||||
|
||||
# gui.rpy:120
|
||||
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
new "## Los bordes de la caja que contiene el nombre del personaje, en orden: izquierda, arriba, derecha, abajo."
|
||||
|
||||
# gui.rpy:124
|
||||
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
|
||||
new "## Si es 'True, el fondo de la caja del nombre será en mosaico, si es 'False', el fondo, si la caja del nombre es escalada."
|
||||
|
||||
# gui.rpy:129
|
||||
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
new "## Colocación del diálogo relativa a la caja de texto. Puede ser el número de píxels relativos a la esquina superor izquierda o 0.5 para centrar."
|
||||
|
||||
# gui.rpy:135
|
||||
old "## The maximum width of dialogue text, in pixels."
|
||||
new "## La anchura máxima del texto del diálogo, en píxels."
|
||||
|
||||
# gui.rpy:138
|
||||
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## La alineación horizontal del texto del diálogo. (0.0 es izquierda, 0.5 es centro, 1.0 es derecha)."
|
||||
|
||||
# gui.rpy:143
|
||||
old "## Buttons"
|
||||
new "## Botones"
|
||||
|
||||
# gui.rpy:145
|
||||
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
new "## Estas variables, junto con las imágenes de 'gui/button', controal el aspecto de los botones."
|
||||
|
||||
# gui.rpy:148
|
||||
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
new "## La anchura y altura del botón, en píxels. Si es 'None', Ren'Py calcula el tamaño."
|
||||
|
||||
# gui.rpy:152
|
||||
old "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
new "## Los bordes de cada lado del botón, en orden: izquerda, arriba, derecha, abajo."
|
||||
|
||||
# gui.rpy:155
|
||||
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
new "## Si es 'True, la imagen de fondo será en mosaico. Si es 'False', la imagen de fondo será escalada linealmente."
|
||||
|
||||
# gui.rpy:159
|
||||
old "## The font used by the button."
|
||||
new "## Tipo de letra del botón."
|
||||
|
||||
# gui.rpy:162
|
||||
old "## The size of the text used by the button."
|
||||
new "## Tamaño de letra del botón."
|
||||
|
||||
# gui.rpy:165
|
||||
old "## The color of button text in various states."
|
||||
new "## El color del texto del botón en varios estados."
|
||||
|
||||
# gui.rpy:174
|
||||
# gui.rpy:171
|
||||
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
|
||||
new "## La alineación horizontal del texto del botón. (0.0 es izquierda, 0.5 es centro, 1.0 es derecha)."
|
||||
|
||||
# gui.rpy:395
|
||||
# gui.rpy:176
|
||||
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
new "## Estas variables invalidan ajustes para diversos tipos de botones. Ver en la documentación los tipos de botones disponibles y el uso de cada uno."
|
||||
|
||||
# gui.rpy:180
|
||||
old "## These customizations are used by the default interface:"
|
||||
new "## Personalizaciones de la interfaz por defecto:"
|
||||
|
||||
# gui.rpy:195
|
||||
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
new "## Se pueden añadir personalizaciones propias con variables con los nombres adecuados. Por ejemplo, es posible descomentar la linea siguiente para ajustar la anchura de los botones de navegación."
|
||||
|
||||
# gui.rpy:202
|
||||
old "## Choice Buttons"
|
||||
new "## Botones de opción"
|
||||
|
||||
# gui.rpy:204
|
||||
old "## Choice buttons are used in the in-game menus."
|
||||
new "## Los botones de opción se utilizan en los menús del juego."
|
||||
|
||||
# gui.rpy:217
|
||||
old "## File Slot Buttons"
|
||||
new "## Botones de partidas"
|
||||
|
||||
# gui.rpy:219
|
||||
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
new "## El botón de hueco de partida es un botón especial. Contiene una miniatura y texto que describe el contenido del hueco de partida. Usa imágenes de 'gui/button' como los otros botones."
|
||||
|
||||
# gui.rpy:223
|
||||
old "## The save slot button."
|
||||
new "## Botón de guardar partida"
|
||||
|
||||
# gui.rpy:233
|
||||
old "## The width and height of thumbnails used by the save slots."
|
||||
new "## La anchura y altura de las miniaturas de las partidas guardadas."
|
||||
|
||||
# gui.rpy:237
|
||||
old "## The number of columns and rows in the grid of save slots."
|
||||
new "## Número de columnas y filas de la cuadrícula de partidas guardadas."
|
||||
|
||||
# gui.rpy:242
|
||||
old "## Positioning and Spacing"
|
||||
new "## Posicionamiento y espacios"
|
||||
|
||||
# gui.rpy:244
|
||||
old "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## Estas variables controlan la posición y espacios de diversos elementos de la interfaz."
|
||||
|
||||
# gui.rpy:247
|
||||
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## Posición del lado izquierdo de los botones de navegación, relativo al lado izquierdo de la pantalla."
|
||||
|
||||
# gui.rpy:251
|
||||
old "## The vertical position of the skip indicator."
|
||||
new "## Posición vertical del indicador de salto."
|
||||
|
||||
# gui.rpy:254
|
||||
old "## The vertical position of the notify screen."
|
||||
new "## Posición vertical de la pantalla de notificación."
|
||||
|
||||
# gui.rpy:257
|
||||
old "## The spacing between menu choices."
|
||||
new "## Espacio entre opciones de menú."
|
||||
|
||||
# gui.rpy:260
|
||||
old "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Botones en la sección de navegación del menú principal y el menú del juego."
|
||||
|
||||
# gui.rpy:263
|
||||
old "## Controls the amount of spacing between preferences."
|
||||
new "## Controla el espacio entre preferencias."
|
||||
|
||||
# gui.rpy:266
|
||||
old "## Controls the amount of spacing between preference buttons."
|
||||
new "## Controla el espacio entre botones de preferencia."
|
||||
|
||||
# gui.rpy:269
|
||||
old "## The spacing between file page buttons."
|
||||
new "## Espacio entre botones de página."
|
||||
|
||||
# gui.rpy:272
|
||||
old "## The spacing between file slots."
|
||||
new "## Espacio entre huecos de guardado."
|
||||
|
||||
# gui.rpy:275
|
||||
old "## The position of the main menu text."
|
||||
new "## Posición del texto del menú principal."
|
||||
|
||||
# gui.rpy:279
|
||||
old "## Frames"
|
||||
new "## Marcos"
|
||||
|
||||
# gui.rpy:281
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## Estas variables controlan la apariencia de los marcos que pueden contener componentes de la interfaz cuando no está presente una ventana."
|
||||
|
||||
# gui.rpy:284
|
||||
old "## Generic frames."
|
||||
new "## Marcos genéricos"
|
||||
|
||||
# gui.rpy:287
|
||||
old "## The frame that is used as part of the confirm screen."
|
||||
new "## Marco usado en la pantalla de confirmación."
|
||||
|
||||
# gui.rpy:290
|
||||
old "## The frame that is used as part of the skip screen."
|
||||
new "## Marco usado en la pantalla de salto."
|
||||
|
||||
# gui.rpy:293
|
||||
old "## The frame that is used as part of the notify screen."
|
||||
new "## Marco usado en la pantalla de notificación."
|
||||
|
||||
# gui.rpy:296
|
||||
old "## Should frame backgrounds be tiled?"
|
||||
new "## ¿El fondo del marco debe ser en mosaico?"
|
||||
|
||||
# gui.rpy:300
|
||||
old "## Bars, Scrollbars, and Sliders"
|
||||
new "## Barras, barras de desplazamiento y deslizadores"
|
||||
|
||||
# gui.rpy:302
|
||||
old "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## Aquí se controla la apariencia y dimensiones de barras, barras de deslizamiento y deslizadores."
|
||||
|
||||
# gui.rpy:304
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
|
||||
new "## La GUI por defecto solo usa deslizadores y barras de deslizamiento verticales. Las otras barras solo se usan en pantallas escritas por el desarrollador."
|
||||
|
||||
# gui.rpy:307
|
||||
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## Altura de las barras, barras de deslizamiento y deslizadores horizontales. Anchura de barras, barras de deslizamiento y deslizadores verticales."
|
||||
|
||||
# gui.rpy:313
|
||||
old "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## 'True' si la imagen de las barras debe ser en mosaico. 'False' si deben ser escaladas linealmente."
|
||||
|
||||
# gui.rpy:318
|
||||
old "## Horizontal borders."
|
||||
new "## Bordes horizontales."
|
||||
|
||||
# gui.rpy:323
|
||||
old "## Vertical borders."
|
||||
new "## Bordes verticales."
|
||||
|
||||
# gui.rpy:328
|
||||
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## Qué hacer con barras de deslizamiento no deslizables en la 'gui'. \"hide\" las esconde mientras que 'None' las muestra."
|
||||
|
||||
# gui.rpy:333
|
||||
old "## History"
|
||||
new "## Historial"
|
||||
|
||||
# gui.rpy:335
|
||||
old "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## La pantalla de historial muestra diálogo que el jugador ya ha visto."
|
||||
|
||||
# gui.rpy:337
|
||||
old "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## Número de bloques de historial de diálogo que Ren'Py conserva."
|
||||
|
||||
# gui.rpy:340
|
||||
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## Altura de una entrada de la pantalla de historial, o 'None' para altura variable a costa de rendimiento."
|
||||
|
||||
# gui.rpy:344
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## Posición, anchura y alineación de la etiqueta con el nombre del personaje hablante."
|
||||
|
||||
# gui.rpy:351
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## Posición, anchura y alineación del texto del diálogo."
|
||||
|
||||
# gui.rpy:358
|
||||
old "## NVL-Mode"
|
||||
new "## Modo-NVL"
|
||||
|
||||
# gui.rpy:360
|
||||
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## La pantalla NVL-mode presenta el diálogo hablado por personajes en modo NVL."
|
||||
|
||||
# gui.rpy:362
|
||||
old "## The borders of the background of the NVL-mode background window."
|
||||
new "## Bordes del fondo de la ventana del modo NVL."
|
||||
|
||||
# gui.rpy:365
|
||||
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
|
||||
new "## Máximo número de entradas en modo NVL que Ren'Py presentará. Al presentar más entradas, se borrarán las más antiguas."
|
||||
|
||||
# gui.rpy:369
|
||||
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## Altura de una entrada en modo NVL. Ajusta a 'None' para que las entradas ajusten la altura dinámicamente."
|
||||
|
||||
# gui.rpy:373
|
||||
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## Espacio entre entradas en modo NVL cuando 'gui.nvl_height' es None, y entre las entradas en modo NVL y el menú en modo NVL."
|
||||
|
||||
# gui.rpy:390
|
||||
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## Posición, anchura y alineación del texto 'nvl_thought' (texto dicho por el personaje 'nvl_narrator')."
|
||||
|
||||
# gui.rpy:397
|
||||
old "## The position of nvl menu_buttons."
|
||||
new "## Posición de los botones de menú NVL."
|
||||
|
||||
# gui.rpy:401
|
||||
old "## Localization"
|
||||
new "## Localización"
|
||||
|
||||
# gui.rpy:397
|
||||
# gui.rpy:403
|
||||
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
|
||||
new "## Esto controla donde se permite un salto de línea. El valor por defecto es adecuado para la mayoria de idiomas. Puede encontrar una lista de valores disponibles en https://www.renpy.org/doc/html/style_properties.html#style-property-language"
|
||||
|
||||
# gui.rpy:405
|
||||
# gui.rpy:411
|
||||
old "## Mobile devices"
|
||||
new "## Dispositivos Móviles"
|
||||
|
||||
# gui.rpy:416
|
||||
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## Esto aumenta el tamaño de los bottones rápidos para facilitar su acceso en tablets y teléfonos."
|
||||
|
||||
# gui.rpy:422
|
||||
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## Esto cambia el tamaño y espaciado de varios elementos de la GUI para asegurar que sean fácilmente visibles en los teléfonos."
|
||||
|
||||
# gui.rpy:426
|
||||
old "## Font sizes."
|
||||
new "## Tamaños de letra."
|
||||
|
||||
# gui.rpy:434
|
||||
old "## Adjust the location of the textbox."
|
||||
new "## Ajusta la colocación de la caja de texto."
|
||||
|
||||
# gui.rpy:440
|
||||
old "## Change the size and spacing of various things."
|
||||
new "## Cambia el tamaño y espaciado de varios elementos."
|
||||
|
||||
# gui.rpy:453
|
||||
old "## File button layout."
|
||||
new "## Distribución de botones de archivo."
|
||||
|
||||
# gui.rpy:457
|
||||
old "## NVL-mode."
|
||||
new "## Modo-NVL"
|
||||
|
||||
@@ -24,4 +24,3 @@ translate spanish strings:
|
||||
# _compat/gamemenu.rpym:362
|
||||
old "Next"
|
||||
new "Siguiente"
|
||||
|
||||
|
||||
@@ -3,23 +3,23 @@ translate spanish strings:
|
||||
|
||||
# options.rpy:1
|
||||
old "## This file contains options that can be changed to customize your game."
|
||||
new "## This file contains options that can be changed to customize your game."
|
||||
new "## Este archivo contiene opciones que pueden cambiarse para personalizar el juego."
|
||||
|
||||
# options.rpy:4
|
||||
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
new "## Las líneas que empiezan con doble '#' son comentarios, no deben ser descomentadas. Las líneas que empiezan con simple '#' son código comentado, puedes descomentarlas si es apropiado."
|
||||
|
||||
# options.rpy:10
|
||||
old "## Basics"
|
||||
new "## Basics"
|
||||
new "## Básico"
|
||||
|
||||
# options.rpy:12
|
||||
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
new "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
new "## Nombre del juego en forma legible. Usado en el título de la ventana del juego, en la interfaz y en los informes de error."
|
||||
|
||||
# options.rpy:15
|
||||
old "## The _() surrounding the string marks it as eligible for translation."
|
||||
new "## The _() surrounding the string marks it as eligible for translation."
|
||||
new "## El _() que rodea la cadena de texto la señala como traducible."
|
||||
|
||||
# options.rpy:17
|
||||
old "Ren'Py 7 Default GUI"
|
||||
@@ -27,173 +27,176 @@ translate spanish strings:
|
||||
|
||||
# options.rpy:20
|
||||
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
new "## Determina si el título dado más arriba se muestra en el menú principal. Ajústalo a 'False' para esconder el título."
|
||||
|
||||
# options.rpy:26
|
||||
old "## The version of the game."
|
||||
new "## The version of the game."
|
||||
new "## Versión del juego."
|
||||
|
||||
# options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
new "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
|
||||
new "## Texto situado en la pantalla 'Acerca de' del juego. Sitúa el texto entre comillas triples y deja una línea en blanco entre párrafos."
|
||||
|
||||
# options.rpy:37
|
||||
# options.rpy:38
|
||||
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
new "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
new "## Nombre breve del juego para ejecutables y directorios en la distribución. Debe contener solo carácteres ASCII, sin espacios, comas o puntos y coma."
|
||||
|
||||
# options.rpy:44
|
||||
# options.rpy:45
|
||||
old "## Sounds and music"
|
||||
new "## Sounds and music"
|
||||
new "## Sonidos y música"
|
||||
|
||||
# options.rpy:46
|
||||
# options.rpy:47
|
||||
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## Estas tres variables controlan los mezcladores mostrados por defecto al jugador. Ajustar alguno a 'False' para esconderlo."
|
||||
|
||||
# options.rpy:55
|
||||
# options.rpy:56
|
||||
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
new "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
new "## Para permitir al usuario probar el volumen de los canales de sonido o voz, descomenta la línea más abajo y ajústala a un sonido de ejemplo."
|
||||
|
||||
# options.rpy:62
|
||||
# options.rpy:63
|
||||
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
new "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
new "## Descomenta la línea siguiente para ajustar un archivo de audio que sonará en el menú principal. Este archivo seguirá sonando en el juego hasta que sea detenido o se reproduzca otro archivo."
|
||||
|
||||
# options.rpy:69
|
||||
# options.rpy:70
|
||||
old "## Transitions"
|
||||
new "## Transitions"
|
||||
new "## Transiciones"
|
||||
|
||||
# options.rpy:71
|
||||
# options.rpy:72
|
||||
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
new "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
new "## Estas variables ajustan transiciones usadas ante ciertos eventos. Cada variable debe indicar una transición o bien 'None', cuando no se desea usar ninguna transición."
|
||||
|
||||
# options.rpy:75
|
||||
# options.rpy:76
|
||||
old "## Entering or exiting the game menu."
|
||||
new "## Entering or exiting the game menu."
|
||||
new "## Entrar o salir del manú del juego."
|
||||
|
||||
# options.rpy:81
|
||||
# options.rpy:82
|
||||
old "## Between screens of the game menu."
|
||||
new "## Entre pantallas del menú del juego."
|
||||
|
||||
# options.rpy:87
|
||||
old "## A transition that is used after a game has been loaded."
|
||||
new "## A transition that is used after a game has been loaded."
|
||||
new "## Transición tras la carga de una partida."
|
||||
|
||||
# options.rpy:86
|
||||
# options.rpy:92
|
||||
old "## Used when entering the main menu after the game has ended."
|
||||
new "## Used when entering the main menu after the game has ended."
|
||||
new "## Transición de acceso al menú principal tras finalizar el juego."
|
||||
|
||||
# options.rpy:91
|
||||
# options.rpy:97
|
||||
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
new "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
new "## No existe la variable que ajusta la transición cuando el juego comienza. Para ello se usa la sentencia 'with' al mostrar la escena inicial."
|
||||
|
||||
# options.rpy:96
|
||||
# options.rpy:102
|
||||
old "## Window management"
|
||||
new "## Window management"
|
||||
new "## Gestión de ventanas"
|
||||
|
||||
# options.rpy:98
|
||||
# options.rpy:104
|
||||
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
|
||||
# options.rpy:103
|
||||
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## Esto controla cuándo se muestra la ventana de diálogo. Si es \"show\", es siempre visible. Si es \"hide\", solo se muestra cuando hay diálogo presente. Si es \"auto\", la ventana se esconde antes de las sentencias 'scene' y se muestra de nuevo cuando hay diálogo que presentar."
|
||||
|
||||
# options.rpy:109
|
||||
old "## Transitions used to show and hide the dialogue window"
|
||||
new "## Transitions used to show and hide the dialogue window"
|
||||
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## Una vez comenzado el juego, esto se puede ajustar con las sentencias \"window show\", \"window hide\", y \"window auto\"."
|
||||
|
||||
# options.rpy:115
|
||||
old "## Preference defaults"
|
||||
new "## Preference defaults"
|
||||
old "## Transitions used to show and hide the dialogue window"
|
||||
new "## Transiciones usadas para mostrar o esconder la ventana de diálogo"
|
||||
|
||||
# options.rpy:117
|
||||
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
# options.rpy:121
|
||||
old "## Preference defaults"
|
||||
new "## Preferencias por defecto"
|
||||
|
||||
# options.rpy:123
|
||||
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
new "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
new "## Controla la velocidad del texto por defecto. El valor por defecto 0 indica infinito; cualquier otro número indica el número de caracteres por segundo que se mostrarán."
|
||||
|
||||
# options.rpy:129
|
||||
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
new "## El retraso por defecto del auto-avance. Números más grandes indican esperas mayores. El rango válido es 0-30."
|
||||
|
||||
# options.rpy:135
|
||||
old "## Save directory"
|
||||
new "## Save directory"
|
||||
new "## Directorio de guardado"
|
||||
|
||||
# options.rpy:131
|
||||
# options.rpy:137
|
||||
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
new "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
new "## Controla el lugar en el que Ren'Py colocará los archivos de guardado, dependiendo de la plataforma."
|
||||
|
||||
# options.rpy:134
|
||||
# options.rpy:140
|
||||
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
|
||||
new "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
|
||||
|
||||
# options.rpy:136
|
||||
# options.rpy:142
|
||||
old "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
|
||||
new "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
|
||||
|
||||
# options.rpy:138
|
||||
# options.rpy:144
|
||||
old "## Linux: $HOME/.renpy/<config.save_directory>"
|
||||
new "## Linux: $HOME/.renpy/<config.save_directory>"
|
||||
|
||||
# options.rpy:140
|
||||
# options.rpy:146
|
||||
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
new "## Normalmente, este valor no debe ser modificado. Si lo es, debe ser siempre una cadena literal y no una expresión."
|
||||
|
||||
# options.rpy:146
|
||||
old "## Icon ########################################################################'"
|
||||
new "## Icon ########################################################################'"
|
||||
|
||||
# options.rpy:148
|
||||
old "## The icon displayed on the taskbar or dock."
|
||||
new "## The icon displayed on the taskbar or dock."
|
||||
|
||||
# options.rpy:153
|
||||
old "## Build configuration"
|
||||
new "## Build configuration"
|
||||
|
||||
# options.rpy:155
|
||||
old "## This section controls how Ren'Py turns your project into distribution files."
|
||||
new "## This section controls how Ren'Py turns your project into distribution files."
|
||||
|
||||
# options.rpy:160
|
||||
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
|
||||
# options.rpy:165
|
||||
old "## In a pattern:"
|
||||
new "## In a pattern:"
|
||||
|
||||
# options.rpy:167
|
||||
old "## / is the directory separator."
|
||||
new "## / is the directory separator."
|
||||
|
||||
# options.rpy:169
|
||||
old "## * matches all characters, except the directory separator."
|
||||
new "## * matches all characters, except the directory separator."
|
||||
|
||||
# options.rpy:171
|
||||
old "## ** matches all characters, including the directory separator."
|
||||
new "## ** matches all characters, including the directory separator."
|
||||
|
||||
# options.rpy:173
|
||||
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
|
||||
# options.rpy:177
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Classify files as None to exclude them from the built distributions."
|
||||
|
||||
# options.rpy:185
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
new "## To archive files, classify them as 'archive'."
|
||||
|
||||
# options.rpy:190
|
||||
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
|
||||
# options.rpy:196
|
||||
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
|
||||
# options.rpy:203
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
|
||||
# options.rpy:146
|
||||
# options.rpy:152
|
||||
old "## Icon"
|
||||
new "## Icono"
|
||||
|
||||
# options.rpy:154
|
||||
old "## The icon displayed on the taskbar or dock."
|
||||
new "## El icono mostrado en la barra de tareas."
|
||||
|
||||
# options.rpy:159
|
||||
old "## Build configuration"
|
||||
new "## Configuración de 'Build'"
|
||||
|
||||
# options.rpy:161
|
||||
old "## This section controls how Ren'Py turns your project into distribution files."
|
||||
new "## Esta sección contrla cómo Ren'Py convierte el proyecto en archivos para la distribución."
|
||||
|
||||
# options.rpy:166
|
||||
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
new "## Las funciones siguientes toman patrones de archivos. No son relevantes las mayúsculas o minúsculas. Son relativos al directorio base, con o sin una / inicial. Si corresponden más de un patrón, se usa el primero."
|
||||
|
||||
# options.rpy:171
|
||||
old "## In a pattern:"
|
||||
new "## En un patrón:"
|
||||
|
||||
# options.rpy:173
|
||||
old "## / is the directory separator."
|
||||
new "## / es el separador de directorios."
|
||||
|
||||
# options.rpy:175
|
||||
old "## * matches all characters, except the directory separator."
|
||||
new "## * corresponde a todos los carácteres, excepto el separador de directorios."
|
||||
|
||||
# options.rpy:177
|
||||
old "## ** matches all characters, including the directory separator."
|
||||
new "## ** corresponde a todos los carácteres, incluynedo el separador de directorios."
|
||||
|
||||
# options.rpy:179
|
||||
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
new "## Por ejemplo, \"*.txt\" corresponde a los archivos .txt en el directorio de base, \"game/**.ogg\" corresponde a los archivos .ogg del directorio 'game' y sus subdirectorios y \"**.psd\" corresponde a los archivos .psd en cualquier parte del proyecto."
|
||||
|
||||
# options.rpy:183
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Clasifica archivos como 'None' para excluirlos de la distribución."
|
||||
|
||||
# options.rpy:191
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
new "## Para archivar, se clasifican como 'archive'."
|
||||
|
||||
# options.rpy:196
|
||||
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
new "## Los archivos que corresponden a patrones de documentation se duplican en la distribución de mac; aparecerán en los archivos app y zip."
|
||||
|
||||
# options.rpy:202
|
||||
old "## Set this to a string containing your Apple Developer ID Application to enable codesigning on the Mac. Be sure to change it to your own Apple-issued ID."
|
||||
new "## Ajusta la cadena que contiene tu 'Apple Developer ID Application' para permitir el firmado en Mac. Asegúrate de cambiarlo a tu propia ID facilitada por Apple."
|
||||
|
||||
# options.rpy:209
|
||||
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
new "## Es necesaria una clave de licencia Google Play para descargar archivos de expansión y realizar compras en la aplicación. Se puede encontrar en la página \"Services & APIs\" de la consola de desarrollador de Google Play."
|
||||
|
||||
# options.rpy:216
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## Los nombres de usuario y de proyecto asociados con un proyecto itch.io, separados por una barra."
|
||||
|
||||
@@ -9,18 +9,20 @@ define e = Character("Eileen")
|
||||
|
||||
label start:
|
||||
|
||||
# Muestra una imagen de fondo:
|
||||
# Muestra una imagen de fondo: Aquí se usa un marcador de posición por
|
||||
# defecto. Es posible añadir un archivo en el directorio 'images' con el
|
||||
# nombre "bg room.png" or "bg room.jpg" para que se muestre aquí.
|
||||
|
||||
scene bg room
|
||||
|
||||
# Muestra un personaje:
|
||||
# Muestra un personaje: Se usa un marcador de posición. Es posible
|
||||
# reemplazarlo añadiendo un archivo llamado "eileen happy.png" al directorio
|
||||
# 'images'.
|
||||
|
||||
show eileen happy
|
||||
|
||||
# Presenta las líneas del diálogo.
|
||||
|
||||
"¡Hola, mundo!"
|
||||
|
||||
e "Has creado un nuevo juego Ren'Py."
|
||||
|
||||
e "Añade una historia, imágenes y música, ¡y puedes presentarlo al mundo!"
|
||||
|
||||
@@ -34,8 +34,8 @@ translate traditional_chinese strings:
|
||||
new "要建立 Android 套件,請下載 RAPT,並解壓縮到 Ren'Py 目錄下。然後重新啟動 Ren'Py 啟動器。"
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "需要一個 32 位元的 Java 開發套件(JDK)來在 Windows 中建立 Android 套件。JDK 不同於 JRE,所以您可能有 Java 但不包含 JDK。\n\n請 {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}下載并安裝 JDK{/a},然後重新啟動 Ren'Py 啟動器。"
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "需要一個 32 位元的 Java 開發套件(JDK)來在 Windows 中建立 Android 套件。JDK 不同於 JRE,所以您可能有 Java 但不包含 JDK。\n\n請 {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}下載并安裝 JDK{/a},然後重新啟動 Ren'Py 啟動器。"
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -34,8 +34,8 @@ translate vietnamese strings:
|
||||
new "Để xây dựng các gói Android, hãy tải về RAPT, giải nén nó và đặt nó vào thư mục Ren'Py. Sau đó khởi động lại Ren'Py."
|
||||
|
||||
# android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Cần một bản 32-bit Java Development Kit để xây dựng gói Android trên Windows. JDK khác với JRE, vì vậy có thể là bạn có Java nhưng ko có JDK.\n\n Hãy vào {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download và cài đặt JDK{/a}, rồi khởi động lại Renpy. "
|
||||
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Cần một bản x86 Java Development Kit để xây dựng gói Android trên Windows. JDK khác với JRE, vì vậy có thể là bạn có Java nhưng ko có JDK.\n\n Hãy vào {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download và cài đặt JDK{/a}, rồi khởi động lại Renpy. "
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
|
||||
@@ -238,6 +238,9 @@ typedef struct MediaState {
|
||||
/* The wall time the last video frame was read. */
|
||||
double video_read_time;
|
||||
|
||||
/* Are frame drops allowed? */
|
||||
int frame_drops;
|
||||
|
||||
} MediaState;
|
||||
|
||||
static AVFrame *dequeue_frame(FrameQueue *fq);
|
||||
@@ -671,7 +674,7 @@ static SurfaceQueueEntry *decode_video_frame(MediaState *ms) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// If we're behind on decoding the frame, skip it.
|
||||
// If we're behind on decoding the frame, drop it.
|
||||
if (ms->video_pts_offset && (ms->video_pts_offset + pts < ms->video_read_time)) {
|
||||
|
||||
// If we're 5s behind, give up on video for the time being, so we don't
|
||||
@@ -680,7 +683,9 @@ static SurfaceQueueEntry *decode_video_frame(MediaState *ms) {
|
||||
ms->video_finished = 1;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
if (ms->frame_drops) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
SDL_Surface *sample = rgba_surface;
|
||||
@@ -1159,6 +1164,7 @@ MediaState *media_open(SDL_RWops *rwops, const char *filename) {
|
||||
ms->lock = SDL_CreateMutex();
|
||||
|
||||
ms->audio_duration = -1;
|
||||
ms->frame_drops = 1;
|
||||
|
||||
return ms;
|
||||
}
|
||||
@@ -1189,8 +1195,9 @@ void media_start_end(MediaState *ms, double start, double end) {
|
||||
/**
|
||||
* Marks the channel as having video.
|
||||
*/
|
||||
void media_want_video(MediaState *ms) {
|
||||
void media_want_video(MediaState *ms, int video) {
|
||||
ms->want_video = 1;
|
||||
ms->frame_drops = (video != 2);
|
||||
}
|
||||
|
||||
void media_close(MediaState *ms) {
|
||||
|
||||
@@ -134,6 +134,7 @@ style_properties = sorted_dict(
|
||||
aft_bar='none_is_null',
|
||||
aft_gutter=None,
|
||||
alt=None,
|
||||
altruby_style=None,
|
||||
antialias=None,
|
||||
vertical=None,
|
||||
background='renpy.easy.displayable_or_none',
|
||||
|
||||
@@ -41,7 +41,7 @@ void media_advance_time(void);
|
||||
void media_sample_surfaces(SDL_Surface *rgb, SDL_Surface *rgba);
|
||||
|
||||
MediaState *media_open(SDL_RWops *, const char *);
|
||||
void media_want_video(MediaState *);
|
||||
void media_want_video(MediaState *, int);
|
||||
void media_start_end(MediaState *, double, double);
|
||||
void media_start(MediaState *);
|
||||
void media_close(MediaState *);
|
||||
@@ -199,7 +199,8 @@ struct Channel {
|
||||
unsigned int vol2_length;
|
||||
unsigned int vol2_done;
|
||||
|
||||
/* This is set to true if this is a movie channel. */
|
||||
/* This is set to 1 if this is a movie channel with dropping, 2 if it's a
|
||||
* video channel without dropping. */
|
||||
int video;
|
||||
|
||||
};
|
||||
@@ -566,7 +567,7 @@ struct MediaState *load_sample(SDL_RWops *rw, const char *ext, double start, dou
|
||||
media_start_end(rv, start, end);
|
||||
|
||||
if (video) {
|
||||
media_want_video(rv);
|
||||
media_want_video(rv, video);
|
||||
}
|
||||
|
||||
media_start(rv);
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../help.html
|
||||
|
Before Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 125 KiB |
@@ -1,99 +0,0 @@
|
||||
# This file demonstrates how Character objects can be used to customize the
|
||||
# display of text.
|
||||
|
||||
init:
|
||||
# With a nestled click-to-continue indicator.
|
||||
$ ectc = Character(_('Eileen'),
|
||||
color="#c8ffc8",
|
||||
ctc=anim.Blink("arrow.png"))
|
||||
|
||||
|
||||
# With a fixed-position ctc indicator.
|
||||
$ ectcf = Character(_('Eileen'),
|
||||
color="#c8ffc8",
|
||||
ctc=anim.Filmstrip("sakura.png", (20, 20), (2, 1), .30, xpos=760, ypos=560, xanchor=0, yanchor=0),
|
||||
ctc_position="fixed")
|
||||
|
||||
# With quotes around text.
|
||||
$ equote = Character(_('Eileen'),
|
||||
color="#c8ffc8",
|
||||
who_suffix = ':',
|
||||
what_prefix='"',
|
||||
what_suffix='"')
|
||||
|
||||
# Weird-looking.
|
||||
$ eweird = Character(_('Eileen'),
|
||||
color="#c8ffc8",
|
||||
what_underline=True,
|
||||
window_left_margin=200,
|
||||
window_yminimum=300)
|
||||
|
||||
# Two-window mode.
|
||||
$ etwo = Character(_('Eileen'),
|
||||
color="#c8ffc8",
|
||||
show_two_window=True)
|
||||
|
||||
# Image on the side.
|
||||
$ eside = Character(_('Eileen'),
|
||||
color="#c8ffc8",
|
||||
window_left_padding=160,
|
||||
show_side_image=Image("eileen_side.png", xalign=0.0, yalign=1.0))
|
||||
|
||||
label demo_character:
|
||||
|
||||
|
||||
e "The Character object is used to declare characters, and it can also be used to customize the way in which a character speaks."
|
||||
|
||||
e "By supplying it with the appropriate arguments, we can really change around the feel of the game."
|
||||
|
||||
e "In this section, we'll demonstrate some of what can be accomplished by customizing character objects."
|
||||
|
||||
equote "By supplying what_prefix and what_suffix arguments to a Character object, we can automatically add things before each line of text."
|
||||
|
||||
equote "This is a lot easier than having to put those quotes in by hand."
|
||||
|
||||
equote "We can also use who_prefix and who_suffix to add text to the name of the speaker."
|
||||
|
||||
e "We can also supply arguments to the Character object that customize the look of the character name, the text that is being said, and the window itself."
|
||||
|
||||
eweird "These can really change the look of the game."
|
||||
|
||||
eside "A more practical use of that is in conjunction with show_side_image, which lets us position an image next to the text."
|
||||
|
||||
etwo "There's also show_two_window, which puts the character's name in its own window."
|
||||
|
||||
ectc "Finally, we demonstrate a click to continue indicator. In this example, it's nestled in with the text."
|
||||
|
||||
ectcf "A click to continue image can also be placed at a fixed location on the screen."
|
||||
|
||||
e "There's a lot more you can do with Character, as it lets you set style properties on all of the displayed text."
|
||||
|
||||
e "Finally, let me point out a couple of special characters we pre-define."
|
||||
|
||||
show black
|
||||
with dissolve
|
||||
|
||||
centered "The \"centered\" character shows text at the center of the screen, without a window."
|
||||
|
||||
centered "It's just a highly customized normal character, that's useful for dates and titles."
|
||||
|
||||
hide black
|
||||
with dissolve
|
||||
|
||||
e "The \"extend\" character is very special."
|
||||
|
||||
e "It lets you"
|
||||
|
||||
show eileen vhappy
|
||||
|
||||
extend " extend the previous dialogue"
|
||||
|
||||
show eileen happy
|
||||
|
||||
extend " with additional text."
|
||||
|
||||
e "That lets you have things happen in the middle of text. If you didn't notice, I was changing my expression."
|
||||
|
||||
e "Hopefully, these characters, along with the ones you define, will lead to a very expressive game."
|
||||
|
||||
return
|
||||
@@ -1,38 +0,0 @@
|
||||
# This file demonstrates how to use DynamicDisplayable to make parts of the
|
||||
# display that update without there being an interaction.
|
||||
|
||||
init:
|
||||
python:
|
||||
|
||||
# This function will run a countdown of the given length. It will
|
||||
# be white until 5 seconds are left, and then red until 0 seconds are
|
||||
# left, and then will blink 0.0 when time is up.
|
||||
def countdown(st, at, length=0.0):
|
||||
|
||||
remaining = length - st
|
||||
|
||||
if remaining > 5.0:
|
||||
return Text("%.1f" % remaining, color="#fff", size=72), .1
|
||||
elif remaining > 0.0:
|
||||
return Text("%.1f" % remaining, color="#f00", size=72), .1
|
||||
else:
|
||||
return anim.Blink(Text("0.0", color="#f00", size=72)), None
|
||||
|
||||
# Show a countdown for 10 seconds.
|
||||
image countdown = DynamicDisplayable(countdown, length=10.0)
|
||||
|
||||
|
||||
label demo_dynamic:
|
||||
|
||||
e "The DynamicDisplayable function lets you change what's displayed over the course of an interaction."
|
||||
|
||||
show countdown at Position(xalign=.1, yalign=.1)
|
||||
|
||||
e "This makes it possible to display things like countdown timers and progress bars."
|
||||
|
||||
e "Remember, people read at different speeds, so it's probably better to use this for flavor, rather then to make games time-sensitive."
|
||||
|
||||
hide countdown
|
||||
with dissolve
|
||||
|
||||
return
|
||||
@@ -1,204 +0,0 @@
|
||||
# This file demonstrates the use of image operators.
|
||||
|
||||
init:
|
||||
image logo base = "logo.png"
|
||||
|
||||
image logo crop = im.Crop("logo.png", 0, 0, 100, 307)
|
||||
|
||||
image logo scale = im.Scale("logo.png", 100, 150)
|
||||
|
||||
image logo factorscale = im.FactorScale("logo.png", 1.5, 1.5)
|
||||
|
||||
image logo composite = im.Composite((200, 407),
|
||||
(0, 0), "logo.png",
|
||||
(0, 50), "logo.png",
|
||||
(0, 100), "logo.png")
|
||||
|
||||
image logo livecomposite = LiveComposite((200, 407),
|
||||
(0, 0), anim.Blink(Image("logo.png")),
|
||||
(0, 50), "logo.png",
|
||||
(0, 100), "logo.png")
|
||||
|
||||
image logo green = im.Map("logo.png", rmap=im.ramp(0, 0))
|
||||
|
||||
image logo green2 = im.Recolor("logo.png", 0, 255, 255, 255)
|
||||
|
||||
image logo alpha = im.Alpha("logo.png", 0.5)
|
||||
|
||||
image logo blackwhite = "logobw.png"
|
||||
|
||||
image logo twocolor = im.Twocolor("logobw.png",
|
||||
(128, 255, 255, 255),
|
||||
(255, 0, 0, 255))
|
||||
|
||||
|
||||
image eileen alpha = im.Alpha("images/eileen happy.png", 0.5)
|
||||
|
||||
image eileen flip = im.Flip("images/eileen happy.png", vertical=True)
|
||||
|
||||
|
||||
image logo halfsat = im.MatrixColor("logo.png",
|
||||
im.matrix.saturation(.5))
|
||||
|
||||
# This could be better done with im.matrix.invert(), but I want to show
|
||||
# how to use a matrix.
|
||||
image logo invert = im.MatrixColor("logo.png",
|
||||
[ -1, 0, 0, 0, 1,
|
||||
0, -1, 0, 0, 1,
|
||||
0, 0, -1, 0, 1,
|
||||
0, 0, 0, 1, 0, ])
|
||||
|
||||
image logo tintblue = im.MatrixColor("logo.png",
|
||||
im.matrix.saturation(.5) * im.matrix.tint(.75, .75, 1.0))
|
||||
|
||||
image logo hue = im.MatrixColor("logo.png",
|
||||
im.matrix.hue(90))
|
||||
|
||||
image logo bright = im.MatrixColor("logo.png",
|
||||
im.matrix.brightness(.5))
|
||||
|
||||
image logo sepia = im.Sepia("logo.png")
|
||||
|
||||
image logo grayscale = im.Grayscale("logo.png")
|
||||
|
||||
|
||||
$ logopos = Position(xpos=.5, xanchor=0, ypos=50, yanchor=0)
|
||||
|
||||
label demo_imageops:
|
||||
|
||||
e "Image operations allow us to manipulate images as they are loaded in."
|
||||
|
||||
e "They're efficient, as they are only evaluated when an image is first loaded."
|
||||
|
||||
e "This way, there's no extra work that needs to be done when each frame is drawn to the screen."
|
||||
|
||||
show eileen happy at left
|
||||
with move
|
||||
show logo base at logopos
|
||||
with dissolve
|
||||
|
||||
e "Let me show you a test image, the Ren'Py logo."
|
||||
|
||||
e "We'll be applying some image operations to it, to see how they can be used."
|
||||
|
||||
show logo crop at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.Crop operation can take the image, and chop it up into a smaller image."
|
||||
|
||||
show logo composite at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.Composite operation lets us take multiple images, and draw them into a single image."
|
||||
|
||||
e "While you can do this by showing multiple images, this is often more efficient."
|
||||
|
||||
show logo livecomposite at logopos
|
||||
with dissolve
|
||||
|
||||
e "There's also LiveComposite, which is less efficent, but allows for animation."
|
||||
|
||||
e "It isn't really an image operation, but we don't know where else to put it."
|
||||
|
||||
show logo scale at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.Scale operation lets us scale an image to a particular size."
|
||||
|
||||
show logo factorscale at logopos
|
||||
with dissolve
|
||||
|
||||
e "im.FactorScale lets us do the same thing, except to a factor of the original size."
|
||||
|
||||
show logo green at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.Map operation lets us mess with the red, green, blue, and alpha channels of an image."
|
||||
|
||||
e "In this case, we removed all the red from the image, leaving only the blue and green channels."
|
||||
|
||||
show logo base at logopos
|
||||
with dissolve
|
||||
show logo green2 at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.Recolor operation can do the same thing, but is more efficient when we're linearly mapping colors."
|
||||
|
||||
show logo blackwhite at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.Twocolor operation lets you take a black and white image, like this one..."
|
||||
|
||||
show logo twocolor at logopos
|
||||
with dissolve
|
||||
|
||||
e "... and assign colors to replace black and white."
|
||||
|
||||
show logo halfsat at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.MatrixColor operation lets you use a matrix to alter the colors. With the right matrix, you can desaturate colors..."
|
||||
|
||||
show logo tintblue at logopos
|
||||
with dissolve
|
||||
|
||||
e "... tint the image blue..."
|
||||
|
||||
show logo hue at logopos
|
||||
with dissolve
|
||||
|
||||
e "... rotate the hue... "
|
||||
|
||||
show logo invert at logopos
|
||||
with dissolve
|
||||
|
||||
e "... or invert the colors, for a kinda scary look."
|
||||
|
||||
show logo bright at logopos
|
||||
with dissolve
|
||||
|
||||
e "It can even adjust brightness and contrast."
|
||||
|
||||
e "We've made some of the most common matrices into image operators."
|
||||
|
||||
show logo grayscale at logopos
|
||||
with dissolve
|
||||
|
||||
e "im.Grayscale can make an image grayscale..."
|
||||
|
||||
show logo sepia at logopos
|
||||
with dissolve
|
||||
|
||||
e "... while im.Sepia can sepia-tone an image."
|
||||
|
||||
show logo base at logopos
|
||||
with dissolve
|
||||
show logo alpha at logopos
|
||||
with dissolve
|
||||
|
||||
e "The im.Alpha operation can adjust the alpha channel on an image, making things partially transparent."
|
||||
|
||||
show eileen alpha at left
|
||||
with dissolve
|
||||
|
||||
e "It's useful if a character just happens to be ghost."
|
||||
|
||||
hide logo
|
||||
show eileen happy at left
|
||||
with dissolve
|
||||
|
||||
e "But that isn't the case with me."
|
||||
|
||||
show eileen happy
|
||||
with move
|
||||
show eileen flip
|
||||
with dissolve
|
||||
|
||||
e "Finally, there's im.Flip, which can flip an image horizontally or vertically."
|
||||
|
||||
e "I think the less I say about this, the better."
|
||||
|
||||
show eileen happy
|
||||
with dissolve
|
||||
|
||||
return
|
||||
@@ -1,92 +0,0 @@
|
||||
# Code that demonstrates layers and advanced show.
|
||||
|
||||
init:
|
||||
|
||||
# Declare a layer, 'demo', that lives just above the default 'master'
|
||||
# layer.
|
||||
$ config.layers.insert(1, 'demo')
|
||||
|
||||
# Make it so that it only takes up part of the screen.
|
||||
$ config.layer_clipping['demo'] = (50, 50, 700, 500)
|
||||
|
||||
|
||||
label demo_layers:
|
||||
|
||||
e "Ren'Py lets you define layers, and show images on specific layers."
|
||||
|
||||
hide eileen
|
||||
with dissolve
|
||||
|
||||
show bg whitehouse onlayer demo
|
||||
with dissolve
|
||||
|
||||
show eileen happy onlayer demo
|
||||
with dissolve
|
||||
|
||||
e "The \"onlayer\" clause of the scene, show, and hide statements lets us pick which layers the commands affect."
|
||||
|
||||
e "As you can see, layers do not have to take up the entire screen. When a layer doesn't, images are clipped to the layer."
|
||||
|
||||
scene onlayer demo
|
||||
show eileen happy
|
||||
with dissolve
|
||||
|
||||
e "The \"as\" clause lets you change the tag of an image."
|
||||
|
||||
show eileen happy as eileen2
|
||||
with None
|
||||
|
||||
show eileen happy at left
|
||||
show eileen happy at right as eileen2
|
||||
with move
|
||||
|
||||
e "This is useful when you want to show two copies of the same image."
|
||||
|
||||
e "Or if a character has a twin."
|
||||
|
||||
show eileen happy at center
|
||||
show eileen happy at offscreenright as eileen2
|
||||
with move
|
||||
|
||||
hide eileen2
|
||||
|
||||
show expression Text(_("This is text."), size=50, yalign=0.5, xalign=0.5, drop_shadow=(2, 2)) as text
|
||||
with dissolve
|
||||
|
||||
e "You can use \"show expression\" to show things that aren't just images, like text."
|
||||
|
||||
hide text
|
||||
with dissolve
|
||||
|
||||
show logo base at Position(xalign=0.6, yalign=0.0) behind eileen
|
||||
with dissolve
|
||||
|
||||
e "The \"behind\" clause lets you place an image behind another."
|
||||
|
||||
hide logo base
|
||||
show eileen happy
|
||||
with dissolve
|
||||
|
||||
show layer master:
|
||||
xalign 0.5
|
||||
yalign 0.5
|
||||
linear 0.75 rotate 180.0
|
||||
|
||||
pause 0.75
|
||||
|
||||
e "Finally, the \"show layer\" statement allows you to apply a transform to an entire layer."
|
||||
|
||||
show layer master:
|
||||
xalign 0.5
|
||||
yalign 0.5
|
||||
rotate 180.0
|
||||
linear 0.75 rotate 360.0
|
||||
|
||||
pause 0.75
|
||||
|
||||
# Cancels the layer transform.
|
||||
show layer master
|
||||
|
||||
e "And that's it for layers and advanced show."
|
||||
|
||||
return
|
||||
@@ -1,266 +0,0 @@
|
||||
init:
|
||||
|
||||
image bg pong field = "pong_field.png"
|
||||
|
||||
python:
|
||||
|
||||
class PongDisplayable(renpy.Displayable):
|
||||
|
||||
def __init__(self):
|
||||
|
||||
renpy.Displayable.__init__(self)
|
||||
|
||||
# Some displayables we use.
|
||||
self.paddle = Image("pong.png")
|
||||
self.ball = Image("pong_ball.png")
|
||||
self.player = Text(_("Player"), size=36)
|
||||
self.eileen = Text(_("Eileen"), size=36)
|
||||
self.ctb = Text(_("Click to Begin"), size=36)
|
||||
|
||||
# The sizes of some of the images.
|
||||
self.PADDLE_WIDTH = 8
|
||||
self.PADDLE_HEIGHT = 79
|
||||
self.BALL_WIDTH = 15
|
||||
self.BALL_HEIGHT = 15
|
||||
self.COURT_TOP = 108
|
||||
self.COURT_BOTTOM = 543
|
||||
|
||||
# If the ball is stuck to the paddle.
|
||||
self.stuck = True
|
||||
|
||||
# The positions of the two paddles.
|
||||
self.playery = (self.COURT_BOTTOM - self.COURT_TOP) / 2
|
||||
self.computery = self.playery
|
||||
|
||||
# The speed of the computer.
|
||||
self.computerspeed = 350.0
|
||||
|
||||
# The position, dental-position, and the speed of the
|
||||
# ball.
|
||||
self.bx = 88
|
||||
self.by = self.playery
|
||||
self.bdx = .5
|
||||
self.bdy = .5
|
||||
self.bspeed = 300.0
|
||||
|
||||
# The time of the past render-frame.
|
||||
self.oldst = None
|
||||
|
||||
# The winner.
|
||||
self.winner = None
|
||||
|
||||
def visit(self):
|
||||
return [ self.paddle, self.ball, self.player, self.eileen, self.ctb ]
|
||||
|
||||
# Recomputes the position of the ball, handles bounces, and
|
||||
# draws the screen.
|
||||
def render(self, width, height, st, at):
|
||||
|
||||
# The Render object we'll be drawing into.
|
||||
r = renpy.Render(width, height)
|
||||
|
||||
# Figure out the time elapsed since the previous frame.
|
||||
if self.oldst is None:
|
||||
self.oldst = st
|
||||
|
||||
dtime = st - self.oldst
|
||||
self.oldst = st
|
||||
|
||||
# Figure out where we want to move the ball to.
|
||||
speed = dtime * self.bspeed
|
||||
oldbx = self.bx
|
||||
|
||||
if self.stuck:
|
||||
self.by = self.playery
|
||||
else:
|
||||
self.bx += self.bdx * speed
|
||||
self.by += self.bdy * speed
|
||||
|
||||
# Move the computer's paddle. It wants to go to self.by, but
|
||||
# may be limited by it's speed limit.
|
||||
cspeed = self.computerspeed * dtime
|
||||
if abs(self.by - self.computery) <= cspeed:
|
||||
self.computery = self.by
|
||||
else:
|
||||
self.computery += cspeed * (self.by - self.computery) / abs(self.by - self.computery)
|
||||
|
||||
# Handle bounces.
|
||||
|
||||
# Bounce off of top.
|
||||
ball_top = self.COURT_TOP + self.BALL_HEIGHT / 2
|
||||
if self.by < ball_top:
|
||||
self.by = ball_top + (ball_top - self.by)
|
||||
self.bdy = -self.bdy
|
||||
renpy.sound.play("pong_beep.wav", channel=0)
|
||||
|
||||
# Bounce off bottom.
|
||||
ball_bot = self.COURT_BOTTOM - self.BALL_HEIGHT / 2
|
||||
if self.by > ball_bot:
|
||||
self.by = ball_bot - (self.by - ball_bot)
|
||||
self.bdy = -self.bdy
|
||||
renpy.sound.play("pong_beep.wav", channel=0)
|
||||
|
||||
# This draws a paddle, and checks for bounces.
|
||||
def paddle(px, py, hotside):
|
||||
|
||||
# Render the paddle image. We give it an 800x600 area
|
||||
# to render into, knowing that images will render smaller.
|
||||
# (This isn't the case with all displayables. Solid, Frame,
|
||||
# and Fixed will expand to fill the space allotted.)
|
||||
# We also pass in st and at.
|
||||
pi = renpy.render(self.paddle, 800, 600, st, at)
|
||||
|
||||
# renpy.render returns a Render object, which we can
|
||||
# blit to the Render we're making.
|
||||
r.blit(pi, (int(px), int(py - self.PADDLE_HEIGHT / 2)))
|
||||
|
||||
if py - self.PADDLE_HEIGHT / 2 <= self.by <= py + self.PADDLE_HEIGHT / 2:
|
||||
|
||||
hit = False
|
||||
|
||||
if oldbx >= hotside >= self.bx:
|
||||
self.bx = hotside + (hotside - self.bx)
|
||||
self.bdx = -self.bdx
|
||||
hit = True
|
||||
|
||||
elif oldbx <= hotside <= self.bx:
|
||||
self.bx = hotside - (self.bx - hotside)
|
||||
self.bdx = -self.bdx
|
||||
hit = True
|
||||
|
||||
if hit:
|
||||
renpy.sound.play("pong_boop.wav", channel=1)
|
||||
self.bspeed *= 1.10
|
||||
|
||||
# Draw the two paddles.
|
||||
paddle(68, self.playery, 68 + self.PADDLE_WIDTH)
|
||||
paddle(724, self.computery, 724)
|
||||
|
||||
# Draw the ball.
|
||||
ball = renpy.render(self.ball, 800, 600, st, at)
|
||||
r.blit(ball, (int(self.bx - self.BALL_WIDTH / 2),
|
||||
int(self.by - self.BALL_HEIGHT / 2)))
|
||||
|
||||
# Show the player names.
|
||||
player = renpy.render(self.player, 800, 600, st, at)
|
||||
r.blit(player, (20, 25))
|
||||
|
||||
# Show Eileen's name.
|
||||
eileen = renpy.render(self.eileen, 800, 600, st, at)
|
||||
ew, eh = eileen.get_size()
|
||||
r.blit(eileen, (790 - ew, 25))
|
||||
|
||||
# Show the "Click to Begin" label.
|
||||
if self.stuck:
|
||||
ctb = renpy.render(self.ctb, 800, 600, st, at)
|
||||
cw, ch = ctb.get_size()
|
||||
r.blit(ctb, (400 - cw / 2, 30))
|
||||
|
||||
|
||||
# Check for a winner.
|
||||
if self.bx < -200:
|
||||
self.winner = "eileen"
|
||||
|
||||
# Needed to ensure that event is called, noticing
|
||||
# the winner.
|
||||
renpy.timeout(0)
|
||||
|
||||
elif self.bx > 1000:
|
||||
self.winner = "player"
|
||||
renpy.timeout(0)
|
||||
|
||||
# Ask that we be re-rendered ASAP, so we can show the next
|
||||
# frame.
|
||||
renpy.redraw(self, 0)
|
||||
|
||||
# Return the Render object.
|
||||
return r
|
||||
|
||||
# Handles events.
|
||||
def event(self, ev, x, y, st):
|
||||
|
||||
import pygame
|
||||
|
||||
# Mousebutton down == start the game by setting stuck to
|
||||
# false.
|
||||
if ev.type == pygame.MOUSEBUTTONDOWN and ev.button == 1:
|
||||
self.stuck = False
|
||||
|
||||
# Set the position of the player's paddle.
|
||||
y = max(y, self.COURT_TOP)
|
||||
y = min(y, self.COURT_BOTTOM)
|
||||
self.playery = y
|
||||
|
||||
# If we have a winner, return him or her. Otherwise, ignore
|
||||
# the current event.
|
||||
if self.winner:
|
||||
return self.winner
|
||||
else:
|
||||
raise renpy.IgnoreEvent()
|
||||
|
||||
|
||||
label demo_minigame:
|
||||
|
||||
e "You may want to mix Ren'Py with other forms of gameplay. There are many ways to do this."
|
||||
|
||||
e "The first is with the UI functions, which can be used to create powerful button and menu based interfaces."
|
||||
|
||||
e "These are often enough for many simulation-style games."
|
||||
|
||||
e "We also have two more ways in which Ren'Py can be extended. Both require experience with Python programming, and so aren't for the faint of heart."
|
||||
|
||||
e "Renpygame is a library that allows pygame games to be run inside Ren'Py."
|
||||
|
||||
e "When using renpygame, Ren'Py steps out of the way and gives you total control over the user's experience."
|
||||
|
||||
e "You can get renpygame from the Frameworks page of the Ren'Py website."
|
||||
|
||||
e "If you want to integrate your code with Ren'Py, you can write a user-defined displayable."
|
||||
|
||||
e "User-defined displayables are somewhat more limited, but integrate better with the rest of Ren'Py."
|
||||
|
||||
e "For example, one could support loading and saving while a user-defined displayable is shown."
|
||||
|
||||
e "Now, why don't we play some pong?"
|
||||
|
||||
label demo_minigame_pong:
|
||||
|
||||
window hide None
|
||||
|
||||
# Put up the pong background, in the usual fashion.
|
||||
scene bg pong field
|
||||
|
||||
# Run the pong minigame, and determine the winner.
|
||||
python:
|
||||
ui.add(PongDisplayable())
|
||||
winner = ui.interact(suppress_overlay=True, suppress_underlay=True)
|
||||
|
||||
scene bg washington
|
||||
show eileen vhappy
|
||||
|
||||
window show None
|
||||
|
||||
|
||||
if winner == "eileen":
|
||||
|
||||
e "I win!"
|
||||
|
||||
else:
|
||||
|
||||
e "You won! Congratulations."
|
||||
|
||||
|
||||
show eileen happy
|
||||
|
||||
menu:
|
||||
e "Would you like to play again?"
|
||||
|
||||
"Sure.":
|
||||
jump demo_minigame_pong
|
||||
"No thanks.":
|
||||
pass
|
||||
|
||||
|
||||
e "Remember to be careful about putting minigames in a visual novel, since not every visual novel player wants to be good at arcade games."
|
||||
|
||||
return
|
||||
@@ -1,79 +0,0 @@
|
||||
# This demonstrates nvl_mode.rpy.
|
||||
|
||||
init:
|
||||
|
||||
# Declare an nvl-version of eileen.
|
||||
$ nvle = Character(_("Eileen"), color="#c8ffc8", kind=nvl)
|
||||
|
||||
$ config.adv_nvl_transition = dissolve
|
||||
$ config.nvl_adv_transition = dissolve
|
||||
|
||||
label demo_nvlmode:
|
||||
|
||||
window hide
|
||||
nvl clear
|
||||
nvl show dissolve
|
||||
|
||||
nvle "NVL-style games are games that cover the full screen with text, rather then placing it in a file at the bottom of the screen."
|
||||
|
||||
nvle "Ren'Py ships with a file, nvl_mode.rpy, that implements NVL-style games. You're seeing an example of NVL-mode at work."
|
||||
|
||||
nvl clear
|
||||
|
||||
nvle "To use NVL-mode, you need to define Characters with a kind=nvl."
|
||||
|
||||
nvle "You use 'nvl clear' to clear the screen when that becomes necessary."
|
||||
|
||||
nvl hide dissolve
|
||||
nvl show dissolve
|
||||
|
||||
nvle "The 'nvl show' and 'nvl hide' statements use transitions to show and hide the NVL window."
|
||||
|
||||
nvle "The nvl_erase function removes a line from the screen."
|
||||
|
||||
$ nvl_erase()
|
||||
|
||||
nvle "Like that."
|
||||
|
||||
# Doing this during the game isn't recommended, it's better to do
|
||||
# it in an init block. We have to do it here because we need to use
|
||||
# both kinds of menus.
|
||||
$ menu = nvl_menu
|
||||
|
||||
menu:
|
||||
|
||||
nvle "The nvl_mode also supports showing menus to the user, provided they are the last thing on the screen. Understand?"
|
||||
|
||||
"Yes.":
|
||||
|
||||
nvl clear
|
||||
|
||||
nvle "Good!"
|
||||
|
||||
nvl clear
|
||||
|
||||
"No.":
|
||||
|
||||
nvl clear
|
||||
|
||||
nvle "Well, it might help if you take a look at the demo code."
|
||||
|
||||
nvl clear
|
||||
|
||||
eside "You can specify transitions that occur when going from NVL-mode to ADV-mode."
|
||||
|
||||
nvle "As well as when going from ADV-mode to NVL-mode."
|
||||
|
||||
nvle "Text tags like {{w}{w} work in NVL-mode."
|
||||
|
||||
extend " As does the \"extend\" special character."
|
||||
|
||||
nvle "And that's it for NVL-mode."
|
||||
|
||||
$ menu = renpy.display_menu
|
||||
|
||||
nvl hide dissolve
|
||||
$ _last_say_who = None
|
||||
window show dissolve
|
||||
|
||||
return
|
||||
@@ -1,37 +0,0 @@
|
||||
init:
|
||||
$ mp = MultiPersistent("demo.renpy.org")
|
||||
|
||||
label demo_persistent:
|
||||
|
||||
"Ren'Py supports per-game and multi-game persistent data."
|
||||
|
||||
"Persistent data can store flags and other per-game information that should be shared between plays of a single game."
|
||||
|
||||
# per-game persistent data example.
|
||||
python:
|
||||
if persistent.plays is None:
|
||||
persistent.plays = 1
|
||||
else:
|
||||
persistent.plays += 1
|
||||
|
||||
plays = persistent.plays
|
||||
|
||||
"For example, I can tell you that you've see this line [plays] time(s) since you cleared the per-game persistent data."
|
||||
|
||||
"Multipersistent data is shared between games, which lets one game unlock features in a second."
|
||||
|
||||
"A sequel might play differently if the player has beaten the first game."
|
||||
|
||||
# multipersistent data example.
|
||||
python:
|
||||
if mp.plays is None:
|
||||
mp.plays = 1
|
||||
else:
|
||||
mp.plays += 1
|
||||
|
||||
mp.save()
|
||||
plays = mp.plays
|
||||
|
||||
"According to the multipersistent data, you've seen this line [plays] times total."
|
||||
|
||||
return
|
||||
@@ -1,140 +0,0 @@
|
||||
# This file demonstrates some of the text-layout and handling
|
||||
# capabilities of Ren'Py.
|
||||
|
||||
init:
|
||||
# Register an sfont.
|
||||
$ renpy.register_sfont('new_sfont', 22,
|
||||
filename="new_sfont.png",
|
||||
spacewidth=6)
|
||||
|
||||
# Declare a character that uses the sfont.
|
||||
$ esfont = Character(_("Eileen"),
|
||||
color="#c8ffc8",
|
||||
what_font="new_sfont")
|
||||
|
||||
# Slow text.
|
||||
$ eslow = Character(_("Eileen"),
|
||||
color="#c8ffc8",
|
||||
what_slow_cps=20)
|
||||
|
||||
# Outlined text.
|
||||
$ eoutline = Character(_("Eileen"),
|
||||
color="#c8ffc8",
|
||||
what_outlines=[ (1, "#282") ])
|
||||
|
||||
# Use it in subtitle mode.
|
||||
$ esubtitle = Character(None,
|
||||
what_size=28,
|
||||
what_outlines=[(3, "#0008", 2, 2), (3, "#282", 0, 0)],
|
||||
what_layout="subtitle",
|
||||
what_xalign=0.5,
|
||||
what_text_align=0.5,
|
||||
window_background=None,
|
||||
window_yminimum=0,
|
||||
window_xfill=False,
|
||||
window_xalign=0.5)
|
||||
|
||||
|
||||
# This is used to show the defintion text, by the hyperlink demostration
|
||||
# code.
|
||||
$ definition = Character(None,
|
||||
window_yfill=True,
|
||||
window_xmargin=20,
|
||||
window_ymargin=30)
|
||||
|
||||
|
||||
# The pink style, which we use as a custom text tag.
|
||||
$ style.pink = Style(style.default)
|
||||
$ style.pink.color = "#ffc0c0"
|
||||
|
||||
init python:
|
||||
style.ruby_style = Style(style.default)
|
||||
style.ruby_style.yoffset = -20
|
||||
style.ruby_style.size = 12
|
||||
|
||||
define eruby = Character(
|
||||
_("Eileen"),
|
||||
color="#c8ffc8",
|
||||
what_ruby_style=style.ruby_style,
|
||||
what_line_leading=10)
|
||||
|
||||
|
||||
|
||||
label demo_text:
|
||||
|
||||
e "Ren'Py gives you quite a bit of control over how text appears."
|
||||
|
||||
e "Text tags let us control the appearance of text that is shown to the user."
|
||||
|
||||
e "Text tags can make text {b}bold{/b}, {i}italic{/i}, {s}struckthrough{/s}, or {u}underlined{/u}."
|
||||
|
||||
e "They can make the font size {size=+12}bigger{/size} or {size=-8}smaller{/size}."
|
||||
|
||||
e "They let you pause{w} the display of the text, optionally with{p}line breaks."
|
||||
|
||||
e "They let you include images inside text{image=exclamation.png} Neat{image=exclamation.png}"
|
||||
|
||||
e "We can pause the text for a short time, and have it auto-advance.{w=1} Just like that."
|
||||
|
||||
eslow "We can even have the text auto-advance,{nw}"
|
||||
|
||||
with flashbulb
|
||||
extend " when we reach the end of a block of text, in slow text mode."
|
||||
|
||||
e "They can change the {color=#f00}color{/color} {color=#ff0}of{/color} {color=#0f0}the{/color} {color=#0ff}text{/color}."
|
||||
|
||||
# e "There are also bold, italic, strikethrough, and underline style properties, which can be styled onto any text."
|
||||
|
||||
e "The kerning tag lets you adjust the spacing between characters.\n{k=.5}The spacing between characters can be increased.{/k}\n{k=-.5}The spacing between characters can be decreased.{/k}"
|
||||
|
||||
eruby "You are able to write ruby text, which can help clarify how to pronounce words, like {rb}Ren'Py{/rb}{rt}ren-pie{/rt}."
|
||||
|
||||
e "{a=define_hyperlink}Hyperlinks{/a} let buttons be defined using text tags."
|
||||
|
||||
e "The space and vspace tags add {space=30} horizontal and {vspace=20}vertical space, respectively."
|
||||
|
||||
e "You can define your own text tags, {=pink}that use a style you define.{/=pink}"
|
||||
|
||||
e "If you find yourself using text tags on every line, you should probably look at style properties instead."
|
||||
|
||||
e "Used with care, text tags can enhance {b}your{/b} game."
|
||||
|
||||
e "{u}Used{/u} with {i}abandon,{/i} they {b}can{/b} make {b}your{/b} game {color=#333}hard{/color} {color=#888}to{/color} {color=#ccc}read{/color}."
|
||||
|
||||
e "With great power comes great responsibility, after all."
|
||||
|
||||
e "And we want to give you all the power you need."
|
||||
|
||||
e "There are a couple of text adjustments that don't correspond to text tags."
|
||||
|
||||
eoutline "The outlines setting lets you put outlines around the text."
|
||||
|
||||
eoutline "You can have more than one outline, and each has its own color and offset."
|
||||
|
||||
window hide
|
||||
|
||||
esubtitle "Here, we have two outlines around the white text."
|
||||
|
||||
esubtitle "The bottom one is a translucent black that's offset a little, while the top one is green."
|
||||
|
||||
esubtitle "By hiding the window and adjusting the layout method, we are able to create reasonable subtitles."
|
||||
|
||||
esubtitle "This might be an interesting look for a game."
|
||||
|
||||
window show
|
||||
|
||||
esfont "For even more control, Ren'Py supports SFonts, image files containing font information."
|
||||
|
||||
esfont "SFonts let you use fonts you otherwise couldn't, and apply special effects to fonts using your favorite image editor."
|
||||
|
||||
e "Well, that's it for fonts and text tags."
|
||||
|
||||
|
||||
return
|
||||
|
||||
|
||||
label define_hyperlink:
|
||||
|
||||
definition "A hyperlink is a button that is defined inside text, using text tags. They're ideal for including definitions of words used in the script, but they shouldn't be used in place of menus."
|
||||
|
||||
return
|
||||
@@ -1,222 +0,0 @@
|
||||
# This is the code for the logo example.
|
||||
init python:
|
||||
|
||||
# This spins the logo, while at the same time zooming it and decreasing the
|
||||
# alpha.
|
||||
def logo_transform(t, st, at):
|
||||
|
||||
# Repeat every 10 seconds.
|
||||
st = st % 7.0
|
||||
|
||||
# The move takes 5 seconds.
|
||||
done = min(st / 5.0, 1.0)
|
||||
|
||||
t.xpos = done
|
||||
t.xanchor = 1.0 - done
|
||||
t.ypos = .5
|
||||
t.yanchor = .5
|
||||
t.rotate = 360 * done
|
||||
t.alpha = 1.0 - done
|
||||
t.zoom = 1.0 + done
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
# This is the code for the balls example. It's a bit complicated, but most of
|
||||
# this is the code for ball movement and so on. Only a very little bit of this
|
||||
# actually deals with Ren'Py.
|
||||
init python:
|
||||
import math
|
||||
|
||||
class Ball(object):
|
||||
def __init__(self, filename, x, y, function=None):
|
||||
|
||||
self.transform = Transform(child=filename, xanchor=0.5, yanchor=0.5, rotate=0, function=function)
|
||||
self.x = x
|
||||
self.y = y
|
||||
|
||||
MAX_SPEED = 150
|
||||
|
||||
self.dx = renpy.random.uniform(-MAX_SPEED, MAX_SPEED)
|
||||
self.dy = renpy.random.uniform(-MAX_SPEED, MAX_SPEED)
|
||||
|
||||
# Rotation speed.
|
||||
self.drotate = renpy.random.uniform(0, 180)
|
||||
|
||||
# This is called
|
||||
def balls_collide(p1, p2):
|
||||
"""
|
||||
Check to see if any of the balls are colliding. If they are,
|
||||
then handle the collision.
|
||||
"""
|
||||
|
||||
DOUBLE_RADIUS = 75
|
||||
|
||||
x21 = p2.x - p1.x
|
||||
y21 = p2.y - p1.y
|
||||
|
||||
d = math.hypot(x21, y21)
|
||||
|
||||
# Return if too far.
|
||||
if d > DOUBLE_RADIUS:
|
||||
return
|
||||
|
||||
vx21 = p2.dx - p1.dx
|
||||
vy21 = p2.dy - p1.dy
|
||||
|
||||
# Return if not approaching.
|
||||
if (vx21 * x21 + vy21 * y21) > 0:
|
||||
return
|
||||
|
||||
# Fix divide by zero.
|
||||
if x21 == 0:
|
||||
x21 = .00001
|
||||
|
||||
# Compute the collision.
|
||||
a = y21 / x21
|
||||
dvx2 = -(vx21 + a * vy21) / (1 + a * a)
|
||||
|
||||
p2.dx += dvx2
|
||||
p2.dy += a * dvx2
|
||||
|
||||
p1.dx -= dvx2
|
||||
p2.dy -= a * dvx2
|
||||
|
||||
# This is called by the first transform. It updates all of the
|
||||
# transforms.
|
||||
def balls_update(pilot, st, at):
|
||||
|
||||
global last_time
|
||||
|
||||
RADIUS = 75 / 2
|
||||
LEFT = RADIUS
|
||||
RIGHT = 800 - RADIUS
|
||||
TOP = RADIUS
|
||||
BOTTOM = 600 - RADIUS
|
||||
|
||||
# The pilot is the first ball in our list, and he's the one
|
||||
# that gets last_time updated.
|
||||
if last_time is None:
|
||||
dt = 0
|
||||
else:
|
||||
dt = st - last_time
|
||||
|
||||
last_time = st
|
||||
|
||||
# Handle current collisions.
|
||||
for i in xrange(0, len(balls)):
|
||||
for j in xrange(i + 1, len(balls)):
|
||||
balls_collide(balls[i], balls[j])
|
||||
|
||||
# Basic movement, and bouncing off the walls.
|
||||
for i in balls:
|
||||
|
||||
i.x += i.dx * dt
|
||||
i.y += i.dy * dt
|
||||
|
||||
if i.x < LEFT:
|
||||
i.x = LEFT
|
||||
i.dx = abs(i.dx)
|
||||
|
||||
if i.x > RIGHT:
|
||||
i.x = RIGHT
|
||||
i.dx = -abs(i.dx)
|
||||
|
||||
if i.y < TOP:
|
||||
i.y = TOP
|
||||
i.dy = abs(i.dy)
|
||||
|
||||
if i.y > BOTTOM:
|
||||
i.y = BOTTOM
|
||||
i.dy = -abs(i.dy)
|
||||
|
||||
|
||||
# Update the transforms.
|
||||
for i in balls:
|
||||
|
||||
# This is the code that deals with Ren'Py to update the
|
||||
# various transforms. Note that we use absolute coordinates
|
||||
# to position ourselves with subpixel accuracy.
|
||||
i.transform.xpos = absolute(i.x)
|
||||
i.transform.ypos = absolute(i.y)
|
||||
i.transform.rotate = (i.drotate * st) % 360.0
|
||||
|
||||
i.transform.update()
|
||||
|
||||
return 0
|
||||
|
||||
# These are used in the button example:
|
||||
init python:
|
||||
def button_transform(t, st, at):
|
||||
t.rotate = (90 * st) % 360.0
|
||||
return 0
|
||||
|
||||
label demo_transform:
|
||||
|
||||
e "The Transform function allows you to rotate, zoom, move, and adjust the alpha of a displayable."
|
||||
|
||||
e "It does this under the control of a Python function, making it incredibly flexible at the cost of some complexity."
|
||||
|
||||
hide eileen
|
||||
with dissolve
|
||||
|
||||
show logo base at Transform(function=logo_transform)
|
||||
|
||||
e "Here's a simple example, showing how we can change an image as it moves around the screen."
|
||||
|
||||
e "A nice thing about Transform is that it's \"one price\"."
|
||||
|
||||
e "If you use it to do a rotation, you can zoom or adjust alpha at no additional cost."
|
||||
|
||||
hide logo base
|
||||
with dissolve
|
||||
|
||||
python:
|
||||
|
||||
last_time = None
|
||||
|
||||
# Define a list of ball objects.
|
||||
balls = [
|
||||
Ball("eileen_orb.png", 200, 150, function=balls_update),
|
||||
Ball("lucy_orb.png", 400, 150),
|
||||
Ball("eileen_orb.png", 600, 150),
|
||||
|
||||
Ball("lucy_orb.png", 200, 300),
|
||||
Ball("lucy_orb.png", 600, 300),
|
||||
|
||||
Ball("eileen_orb.png", 200, 450),
|
||||
Ball("lucy_orb.png", 400, 450),
|
||||
Ball("eileen_orb.png", 600, 450),
|
||||
]
|
||||
|
||||
# Add each ball's transform to the screen.
|
||||
for i, b in enumerate(balls):
|
||||
renpy.show("ball%d" % i, what=b.transform)
|
||||
|
||||
with dissolve
|
||||
|
||||
e "As the python functions get more complicated, more advanced behavior is possible."
|
||||
|
||||
e "This can include coordinating more than one Transform."
|
||||
|
||||
python:
|
||||
for i, b in enumerate(balls):
|
||||
renpy.hide("ball%d" % i)
|
||||
|
||||
|
||||
with dissolve
|
||||
|
||||
python hide:
|
||||
ui.transform(function=button_transform, xalign=0.5, yalign=0.5)
|
||||
ui.textbutton(_("A Working Button"), clicked=ui.returns(True))
|
||||
|
||||
e "Finally, transforms can be applied to buttons, and work even while the button is zoomed."
|
||||
|
||||
show eileen happy
|
||||
with dissolve
|
||||
|
||||
e "With a little Python code, transforms let you do a lot of things."
|
||||
|
||||
|
||||
|
||||
return
|
||||
@@ -1,478 +0,0 @@
|
||||
# This file demonstrates the built-in transitions which are defined in
|
||||
# common/definitions.rpy, and also the new transitions given above.
|
||||
|
||||
init:
|
||||
# Define some new transitions here.
|
||||
$ slow_dissolve = Dissolve(1.0)
|
||||
$ flashbulb = Fade(0.2, 0.0, 0.8, color='#fff')
|
||||
|
||||
# Imagedissolve Transitions.
|
||||
$ circleirisout = ImageDissolve("id_circleiris.png", 1.0, 8)
|
||||
$ circleirisin = ImageDissolve("id_circleiris.png", 1.0, 8, reverse=True)
|
||||
$ circlewipe = ImageDissolve("id_circlewipe.png", 1.0, 8)
|
||||
$ dream = ImageDissolve("id_dream.png", 2.0, 64)
|
||||
$ teleport = ImageDissolve("id_teleport.png", 1.0, 0)
|
||||
|
||||
image bg circleiris = "id_circleiris.png"
|
||||
image bg teleport = "id_teleport.png"
|
||||
|
||||
image alpha_control:
|
||||
"spotlight.png"
|
||||
|
||||
xanchor .5
|
||||
yanchor .5
|
||||
|
||||
parallel:
|
||||
zoom 0
|
||||
linear .5 zoom .75
|
||||
pause 2
|
||||
linear 1.0 zoom 4.0
|
||||
|
||||
parallel:
|
||||
xpos 0.0 ypos .6
|
||||
linear 1.5 xpos 1.0
|
||||
linear 1.0 xpos .5 ypos .2
|
||||
|
||||
pause .5
|
||||
repeat
|
||||
|
||||
define alpha_example = AlphaDissolve("alpha_control", delay=3.5)
|
||||
|
||||
|
||||
label demo_transitions:
|
||||
|
||||
e "Ren'Py ships with a large number of built-in transitions, and also includes classes that let you define your own."
|
||||
|
||||
menu demo_transitions_menu:
|
||||
|
||||
e "What kind of transitions would you like demonstrated?"
|
||||
|
||||
"Simple Transitions":
|
||||
|
||||
call demo_simple_transitions from _call_demo_simple_transitions_1
|
||||
|
||||
"ImageDissolve Transitions":
|
||||
|
||||
call demo_imagedissolve_transitions from _call_demo_imagedissolve_transitions_1
|
||||
|
||||
"MoveTransition Transitions":
|
||||
|
||||
call demo_movetransition from _call_demo_movetransition_1
|
||||
|
||||
"CropMove Transitions":
|
||||
|
||||
call demo_cropmove_transitions from _call_demo_cropmove_transitions_1
|
||||
|
||||
"PushMove Transitions":
|
||||
|
||||
call demo_pushmove_transitions from _call_demo_pushmove_transitions_1
|
||||
|
||||
"AlphaDissolve Transitions":
|
||||
|
||||
call demo_alphadissolve from _call_demo_alphadissolve
|
||||
|
||||
""
|
||||
|
||||
"How about something else?":
|
||||
|
||||
return
|
||||
|
||||
jump demo_transitions_menu
|
||||
|
||||
|
||||
label demo_simple_transitions:
|
||||
|
||||
e "Okay, I can tell you about simple transitions. We call them simple because they don't take much in the way of configuration."
|
||||
|
||||
e "But don't let that get you down, since they're the transitions you'll probably use the most in a game."
|
||||
|
||||
show bg whitehouse
|
||||
with dissolve
|
||||
|
||||
e "The 'dissolve' transition is probably the most useful, blending one scene into another."
|
||||
|
||||
show bg washington
|
||||
with slow_dissolve
|
||||
|
||||
e "The 'Dissolve' function lets you create your own dissolves, taking a different amount of time."
|
||||
|
||||
show bg whitehouse
|
||||
with fade
|
||||
|
||||
e "The 'fade' transition fades to black, and then fades back in to the new scene."
|
||||
|
||||
e "If you're going to stay at a black screen, you'll probably want to use 'dissolve' rather than 'fade'."
|
||||
|
||||
with flashbulb
|
||||
|
||||
e "You can use 'Fade' to define your own fades. By changing the timing and the color faded to, you can use this for special effects, like flashbulbs."
|
||||
|
||||
show bg washington
|
||||
with pixellate
|
||||
|
||||
e "The 'pixellate' transition pixellates out the old scene, switches to the new scene, and then unpixellates that."
|
||||
|
||||
e "It's probably not appropriate for most games, but we
|
||||
think it's kind of neat."
|
||||
|
||||
e "You can use 'Pixellate' to change the details of the pixellation."
|
||||
|
||||
e "Motions can also be used as transitions."
|
||||
|
||||
"..."
|
||||
|
||||
"......"
|
||||
|
||||
$ renpy.play('punch.wav')
|
||||
with vpunch
|
||||
|
||||
e "Hey! Pay attention."
|
||||
|
||||
e "I was about to demonstrate 'vpunch'... well, I guess I just did."
|
||||
|
||||
$ renpy.play('punch.wav')
|
||||
with hpunch
|
||||
|
||||
e "We can also shake the screen horizontally, with 'hpunch'. These were defined using the 'Move' function."
|
||||
|
||||
e "There's also the 'move' transition, which is confusingly enough defined using the 'MoveTransition' function."
|
||||
|
||||
show eileen happy at right
|
||||
with move
|
||||
show eileen happy at center
|
||||
with move
|
||||
|
||||
e "The 'move' transition finds images that have changed placement, and slides them to their new place. It's an easy way to get motion in your game."
|
||||
|
||||
e "Finally, there's 'Pause', which lets you define a transition that just waits for a given amount of time."
|
||||
|
||||
e "Why would you want to do that?"
|
||||
|
||||
e "It's because clicking during a sequence of transitions will skip all of the remaining transitions."
|
||||
|
||||
e "Try clicking during the following transitions:"
|
||||
|
||||
show bg whitehouse
|
||||
with dissolve
|
||||
with Pause(1)
|
||||
show bg washington
|
||||
with dissolve
|
||||
|
||||
e "Having 'Pause' makes it easy to implement skippable cut-scenes in terms of transitions."
|
||||
|
||||
e "Anyway, that's it for the simple transitions."
|
||||
|
||||
return
|
||||
|
||||
|
||||
label demo_imagedissolve_transitions:
|
||||
|
||||
e "Perhaps the most flexible kind of transition is the ImageDissolve, which lets you use an image to control a dissolve."
|
||||
|
||||
e "This lets us specify very complex transitions, fairly simply. Let's try some, and then I'll show you how they work."
|
||||
|
||||
e "There are two ImageDissolve transitions built into Ren'Py."
|
||||
|
||||
|
||||
scene black
|
||||
with blinds
|
||||
|
||||
scene bg washington
|
||||
show eileen happy
|
||||
with blinds
|
||||
|
||||
|
||||
e "The 'blinds' transition opens and closes what looks like vertical blinds."
|
||||
|
||||
scene black
|
||||
with squares
|
||||
|
||||
scene bg washington
|
||||
show eileen happy
|
||||
with squares
|
||||
|
||||
e "The 'squares' transition uses these squares to show things."
|
||||
|
||||
e "I'm not sure why anyone would want to use it, but it was used in some translated games, so we added it."
|
||||
|
||||
e "The most interesting transitions aren't in the standard library."
|
||||
|
||||
e "These ones require an image the size of the screen, and so we couldn't include them as the size of the screen can change from game to game."
|
||||
|
||||
e "You can click the button above to see how they are defined in the demo script."
|
||||
|
||||
scene black
|
||||
with circleirisin
|
||||
|
||||
e "We can hide things with a 'circleirisin'..."
|
||||
|
||||
scene bg washington
|
||||
with circleirisout
|
||||
|
||||
e "... and show them again with a 'circleirisout'."
|
||||
|
||||
show bg whitehouse
|
||||
with circlewipe
|
||||
|
||||
e "The 'circlewipe' transitions changes screens using a circular wipe effect."
|
||||
|
||||
scene bg washington
|
||||
with dream
|
||||
|
||||
e "The 'dream' transition does this weird wavy dissolve, and does it relatively slowly."
|
||||
|
||||
show eileen happy
|
||||
with teleport
|
||||
|
||||
e "The 'teleport' transition reveals the new scene one line at a time."
|
||||
|
||||
scene bg circleiris
|
||||
with dissolve
|
||||
|
||||
e "This is the background picture used with the circleirisout transition."
|
||||
|
||||
e "When we use an ImageDissolve, the white will dissolve in first, followed by progressively darker colors. Let's try it."
|
||||
|
||||
show bg washington
|
||||
with circleirisout
|
||||
|
||||
e "If we give ImageDissolve the 'reverse' parameter, black areas will dissolve in first."
|
||||
|
||||
show bg circleiris
|
||||
with circleirisin
|
||||
|
||||
e "This lets circleirisin and circleirisout use the same image."
|
||||
|
||||
show bg teleport
|
||||
with dissolve
|
||||
|
||||
e "The teleport transition uses a different image, one that dissolves things in one line at a time."
|
||||
|
||||
show bg washington
|
||||
with teleport
|
||||
|
||||
e "A dissolve only seems to affect parts of the scene that have changed..."
|
||||
|
||||
show eileen happy
|
||||
with teleport
|
||||
|
||||
e "... which is how we apply the teleport effect to a single character."
|
||||
|
||||
e "For more examples of ImageDissolve, check out the {i}Utsukushii Effects{/i} demo."
|
||||
|
||||
e "It shows how a clever game-maker can use ImageDissolve to create all sorts of effects."
|
||||
|
||||
return
|
||||
|
||||
label demo_cropmove_transitions:
|
||||
|
||||
e "The CropMove transition class provides a wide range of transition effects. It's not used very much in practice, though."
|
||||
|
||||
show eileen happy at offscreenleft
|
||||
with move
|
||||
|
||||
e "I'll stand offscreen, so you can see some of its modes. I'll read out the mode name after each transition."
|
||||
|
||||
scene bg whitehouse
|
||||
with wiperight
|
||||
|
||||
e "We first have wiperight..."
|
||||
|
||||
scene bg washington
|
||||
with wipeleft
|
||||
|
||||
e "...followed by wipeleft... "
|
||||
|
||||
scene bg whitehouse
|
||||
with wipeup
|
||||
|
||||
e "...wipeup..."
|
||||
|
||||
scene bg washington
|
||||
with wipedown
|
||||
|
||||
e "...and wipedown."
|
||||
|
||||
e "Next, the slides."
|
||||
|
||||
scene bg whitehouse
|
||||
with slideright
|
||||
|
||||
e "Slideright..."
|
||||
|
||||
scene bg washington
|
||||
with slideleft
|
||||
|
||||
e "...slideleft..."
|
||||
|
||||
scene bg whitehouse
|
||||
with slideup
|
||||
|
||||
e "...slideup..."
|
||||
|
||||
scene bg washington
|
||||
with slidedown
|
||||
|
||||
e "and slidedown."
|
||||
|
||||
e "While the slide transitions slide in the new scene, the
|
||||
slideaways slide out the old scene."
|
||||
|
||||
scene bg whitehouse
|
||||
with slideawayright
|
||||
|
||||
e "Slideawayright..."
|
||||
|
||||
scene bg washington
|
||||
with slideawayleft
|
||||
|
||||
e "...slideawayleft..."
|
||||
|
||||
scene bg whitehouse
|
||||
with slideawayup
|
||||
|
||||
e "...slideawayup..."
|
||||
|
||||
scene bg washington
|
||||
with slideawaydown
|
||||
|
||||
e "and slideawaydown."
|
||||
|
||||
e "We also have a couple of transitions that use a
|
||||
rectangular iris."
|
||||
|
||||
scene bg whitehouse
|
||||
with irisout
|
||||
|
||||
e "There's irisout..."
|
||||
|
||||
scene bg washington
|
||||
show eileen happy
|
||||
with irisin
|
||||
|
||||
e "... and irisin."
|
||||
|
||||
e "It's enough to make you feel a bit dizzy."
|
||||
|
||||
return
|
||||
|
||||
label demo_pushmove_transitions:
|
||||
|
||||
e "The PushMove transitions use the new scene to push the old one out. Let's take a look."
|
||||
|
||||
show bg whitehouse
|
||||
hide eileen
|
||||
with pushright
|
||||
|
||||
"There's pushright..."
|
||||
|
||||
show bg washington
|
||||
with pushleft
|
||||
|
||||
"...pushleft..."
|
||||
|
||||
show bg whitehouse
|
||||
with pushdown
|
||||
|
||||
"...pushdown..."
|
||||
|
||||
show bg washington
|
||||
show eileen happy
|
||||
with pushup
|
||||
|
||||
"... and pushup. And that's it the for the PushMove-based transitions."
|
||||
|
||||
return
|
||||
|
||||
label demo_movetransition:
|
||||
|
||||
e "The most common MoveTransition is move, which slides around images that have changed position on the screen."
|
||||
|
||||
show eileen happy at left
|
||||
with move
|
||||
|
||||
e "Just like that."
|
||||
|
||||
e "There are also the moveout and movein transitions."
|
||||
|
||||
e "The moveout transitions (moveoutleft, moveoutright, moveouttop, and moveoutbottom) slide hidden images off the appropriate side of the screen."
|
||||
|
||||
e "The movein transitions (moveinleft, moveinright, moveintop, and moveinbottom) slide in new images."
|
||||
|
||||
e "Let's see them all in action."
|
||||
|
||||
hide eileen happy
|
||||
with moveoutleft
|
||||
|
||||
show eileen happy
|
||||
with moveinbottom
|
||||
|
||||
hide eileen happy
|
||||
with moveoutbottom
|
||||
|
||||
show eileen happy
|
||||
with moveinright
|
||||
|
||||
hide eileen happy
|
||||
with moveoutright
|
||||
|
||||
show eileen flip
|
||||
with moveintop
|
||||
|
||||
hide eileen flip
|
||||
with moveouttop
|
||||
|
||||
show eileen happy
|
||||
with moveinleft
|
||||
|
||||
e "That's it for the moveins and moveouts."
|
||||
|
||||
e "Finally, there are the zoomin and zoomout transtions, which show and hide things using a zoom."
|
||||
|
||||
hide eileen happy
|
||||
with zoomout
|
||||
|
||||
show eileen happy
|
||||
with zoomin
|
||||
|
||||
e "And that's all there is."
|
||||
|
||||
return
|
||||
|
||||
label demo_alphadissolve:
|
||||
|
||||
e "The AlphaDissolve transition lets you use one displayable to combine two others. For example..."
|
||||
|
||||
scene black
|
||||
with dissolve
|
||||
scene bg washington
|
||||
show eileen happy at center
|
||||
with alpha_example
|
||||
|
||||
e "The AlphaDissolve displayable takes a control displayable, usually an ATL transform."
|
||||
|
||||
scene
|
||||
show alpha_control
|
||||
|
||||
e "To be useful, the control displayable should be partially transparent."
|
||||
|
||||
e "During an AlphaDissolve, the old screen is used to fill the transparent areas of the image, while the new screen fills the opaque areas."
|
||||
|
||||
scene black
|
||||
|
||||
e "For our spotlight example, the old screen is this all-black image."
|
||||
|
||||
scene bg washington
|
||||
show eileen happy at center
|
||||
|
||||
e "The new screen is me just standing here."
|
||||
|
||||
scene black
|
||||
with dissolve
|
||||
scene bg washington
|
||||
show eileen happy at center
|
||||
with alpha_example
|
||||
|
||||
e "By combining them using AlphaDissolve, we can build a complicated effect out of simpler parts."
|
||||
|
||||
return
|
||||
@@ -1,331 +0,0 @@
|
||||
# This file contains a demonstration of the user interaction
|
||||
# functions.
|
||||
|
||||
screen viewport_screen:
|
||||
|
||||
viewport:
|
||||
scrollbars "both"
|
||||
xmaximum 400
|
||||
ymaximum 400
|
||||
|
||||
side_xpos 100
|
||||
side_ypos 100
|
||||
side_spacing 5
|
||||
|
||||
draggable True
|
||||
mousewheel True
|
||||
arrowkeys True
|
||||
|
||||
add "concert2"
|
||||
|
||||
textbutton _("Dismiss"):
|
||||
xpos 300
|
||||
xanchor 0.5
|
||||
ypos 550
|
||||
yanchor 0.5
|
||||
|
||||
action Return(True)
|
||||
|
||||
screen edgescroll_screen:
|
||||
|
||||
viewport:
|
||||
edgescroll (150, 500)
|
||||
add "concert2"
|
||||
|
||||
screen demo_imagemap:
|
||||
imagemap:
|
||||
auto "imagemap_%s.jpg"
|
||||
|
||||
hotspot (8, 200, 78, 78) action Return("swimming") alt "Swimming"
|
||||
hotspot (204, 50, 78, 78) action Return("science") alt "Science"
|
||||
hotspot (452, 79, 78, 78) action Return("art") alt "Art"
|
||||
hotspot (602, 316, 78, 78) action Return("go home") alt "Go Home"
|
||||
|
||||
init:
|
||||
|
||||
# The variable we store the entered name of the character in.
|
||||
$ povname = ""
|
||||
|
||||
# And this is a DynamicCharacter that has the same stored in
|
||||
# povname.
|
||||
$ pov = DynamicCharacter("povname", color=(192, 64, 64, 255))
|
||||
|
||||
|
||||
# This is code for a day planner, or at least sort of. To be
|
||||
# honest, the code in the dse game is a bit better. Take this
|
||||
# as more of an example of what Ren'Py can do.
|
||||
python:
|
||||
def day_planner():
|
||||
|
||||
periods = [ _('Morning'), _('Afternoon'), _('Evening') ]
|
||||
periods_small = {'Morning': _('morning'), 'Afternoon': _('afternoon'), 'Evening': _('evening') }
|
||||
choices = [ _('Study'), _('Exercise'),
|
||||
_('Eat'), _('Drink'), _('Be Merry') ]
|
||||
|
||||
plan = { _('Morning') : _('Eat'),
|
||||
_('Afternoon') : _('Drink'),
|
||||
_('Evening') : _('Be Merry') }
|
||||
|
||||
day = _('March 25th')
|
||||
|
||||
stats = [
|
||||
(_('Strength'), 100, 10),
|
||||
(_('Intelligence'), 100, 25),
|
||||
(_('Moxie'), 100, 100),
|
||||
(_('Chutzpah'), 100, 75),
|
||||
]
|
||||
|
||||
editing = None
|
||||
|
||||
def button(text, selected, returns, **properties):
|
||||
|
||||
if selected:
|
||||
role='selected_'
|
||||
else:
|
||||
role=''
|
||||
|
||||
ui.button(clicked=ui.returns(returns),
|
||||
style='button', role=role, **properties)
|
||||
ui.text(text, style='button_text')
|
||||
|
||||
|
||||
while True:
|
||||
|
||||
# Stats Window
|
||||
ui.frame(xpos=0,
|
||||
ypos=0,
|
||||
xanchor='left',
|
||||
yanchor='top',
|
||||
xfill=True,
|
||||
)
|
||||
|
||||
ui.vbox()
|
||||
|
||||
ui.text(_('Statistics'))
|
||||
ui.null(height=20)
|
||||
|
||||
for name, range, value in stats:
|
||||
|
||||
ui.hbox()
|
||||
ui.text(name, minwidth=150)
|
||||
ui.bar(range, value, ypos=0.5, yanchor='center')
|
||||
ui.close()
|
||||
|
||||
ui.close()
|
||||
|
||||
# Period Selection Window.
|
||||
ui.frame(xpos=0,
|
||||
ypos=200,
|
||||
xanchor='left',
|
||||
yanchor='top',
|
||||
xfill=False,
|
||||
xminimum=300
|
||||
)
|
||||
|
||||
ui.vbox(xpos=0.5, xanchor='center')
|
||||
ui.text(day, xpos=0.5, xanchor='center', textalign=0.5)
|
||||
ui.null(height=20)
|
||||
|
||||
for i in periods:
|
||||
renpy.store.period_tmp = i
|
||||
renpy.store.plan_tmp = plan[i]
|
||||
button("[period_tmp!t]: [plan_tmp!t]", editing == i, ("edit", i), xminimum=250)
|
||||
|
||||
ui.null(height=20)
|
||||
ui.textbutton(_("Continue"),
|
||||
clicked=ui.returns(("done", True)),
|
||||
xminimum=250)
|
||||
ui.null(height=20)
|
||||
ui.close()
|
||||
|
||||
|
||||
# Choice window.
|
||||
if editing:
|
||||
ui.frame(xpos=300,
|
||||
ypos=200,
|
||||
xanchor='left',
|
||||
yanchor='top',
|
||||
xfill=False,
|
||||
xminimum=500,
|
||||
xmargin = 10
|
||||
)
|
||||
|
||||
ui.vbox()
|
||||
renpy.store.periods_small_selected = periods_small[editing]
|
||||
ui.text(_("What will you do in the [periods_small_selected!t]?"))
|
||||
ui.null(height=20)
|
||||
|
||||
for i in choices:
|
||||
button(i,
|
||||
plan[editing] == i,
|
||||
("set", i),
|
||||
xpos=0,
|
||||
xanchor='left',
|
||||
xminimum=250)
|
||||
|
||||
ui.close()
|
||||
|
||||
# Window at the bottom.
|
||||
e(_("To get to the next screen, click the 'Continue' button."), interact=False)
|
||||
|
||||
type, value = ui.interact()
|
||||
|
||||
if type == "done":
|
||||
break
|
||||
|
||||
if type == "edit":
|
||||
editing = value
|
||||
|
||||
if type == "set":
|
||||
plan[editing] = value
|
||||
editing = None
|
||||
|
||||
return plan
|
||||
|
||||
init python:
|
||||
|
||||
def stats_frame(name, level, hp, maxhp, **properties):
|
||||
|
||||
ui.frame(xfill=False, yminimum=None, **properties)
|
||||
|
||||
ui.hbox() # (name, "HP", bar) from (level, hp, maxhp)
|
||||
ui.vbox() # name from ("HP", bar)
|
||||
|
||||
ui.text(name, size=20)
|
||||
|
||||
ui.hbox() # "HP" from bar
|
||||
ui.text("HP", size=20)
|
||||
ui.bar(maxhp, hp,
|
||||
xmaximum=150)
|
||||
|
||||
ui.close()
|
||||
ui.close()
|
||||
|
||||
ui.vbox() # Level from (hp/maxhp)
|
||||
|
||||
ui.text("Lv. %d" % level, xalign=0.5, size=20)
|
||||
ui.text("%d/%d" % (hp, maxhp), xalign=0.5, size=20)
|
||||
|
||||
ui.close()
|
||||
ui.close()
|
||||
|
||||
label fight(ename, elevel, ehp, pname="Zanthier", plevel=4, php=40):
|
||||
$ stats_frame(pname, plevel, int(php * .73), php, xalign=.02, yalign=.05)
|
||||
$ stats_frame(ename, elevel, ehp, ehp, xalign=.98, yalign=.05)
|
||||
|
||||
return
|
||||
|
||||
label demo_ui:
|
||||
|
||||
e "Ren'Py gives a number of ways of interacting with the user."
|
||||
|
||||
e "You've already seen say statements and menus."
|
||||
|
||||
menu:
|
||||
|
||||
e "But were you aware that you can have dialogue and menus onscreen at the same time?"
|
||||
|
||||
"Yes.":
|
||||
|
||||
show eileen vhappy
|
||||
|
||||
e "Good!"
|
||||
|
||||
show eileen happy
|
||||
|
||||
"No.":
|
||||
|
||||
e "Well, now you know."
|
||||
|
||||
if not renpy.variant('touch'):
|
||||
|
||||
e "We can also prompt the user to enter some text."
|
||||
|
||||
$ povname = renpy.input(_("What is your name?")) or _("Guy Shy")
|
||||
|
||||
pov "My name is [povname!t]."
|
||||
|
||||
|
||||
e "Imagemaps let the user click on an image to make a choice. For example, the following screen lets you pick what to do after school:"
|
||||
|
||||
# Show an imagemap.
|
||||
window hide None
|
||||
call screen demo_imagemap
|
||||
window show None
|
||||
|
||||
# Call screen assignes the chosen result from the imagemap to the
|
||||
# _return variable. We can use an if statement to vary what
|
||||
# happens based on the user's choice.
|
||||
|
||||
if _return == "swimming":
|
||||
|
||||
e "You chose swimming."
|
||||
|
||||
e "Swimming seems like a lot of fun, but I didn't bring my bathing suit with me."
|
||||
|
||||
elif _return == "science":
|
||||
|
||||
e "You chose science."
|
||||
|
||||
e "I've heard that some schools have a competitive science team, but to me research is something that can't be rushed."
|
||||
|
||||
elif _return == "art":
|
||||
|
||||
e "You chose art."
|
||||
|
||||
e "Really good background art is hard to make, which is why so many games use filtered photographs. Maybe you can change that."
|
||||
|
||||
elif _return == "go home":
|
||||
|
||||
e "You chose to go home."
|
||||
|
||||
e "Anyway..."
|
||||
|
||||
e "We also support viewports, that allow us to display things that are bigger than the screen."
|
||||
|
||||
e "This viewport can be adjusted by dragging, by the mouse wheel, and by the scrollbars."
|
||||
|
||||
window hide
|
||||
|
||||
show eileen happy at right
|
||||
with move
|
||||
|
||||
call screen viewport_screen
|
||||
|
||||
show screen edgescroll_screen
|
||||
with dissolve
|
||||
|
||||
|
||||
e "Viewports also support edge scrolling, which is automatic scrolling when the mouse reaches their edge."
|
||||
|
||||
hide screen edgescroll_screen
|
||||
show eileen happy at center
|
||||
with dissolve
|
||||
|
||||
window show
|
||||
|
||||
e "While these constructs are probably enough for most visual novels, dating simulations may be more complicated."
|
||||
|
||||
e "The ui functions allow you to create quite complicated interfaces."
|
||||
|
||||
e "For example, try the following scheduling and stats screen, which could be used by a stat-based dating simulation."
|
||||
|
||||
hide eileen
|
||||
with dissolve
|
||||
|
||||
$ day_planner()
|
||||
|
||||
show eileen happy
|
||||
with dissolve
|
||||
|
||||
e "For a better implementation of this, take a look at the dating sim engine (DSE) that ships with Ren'Py."
|
||||
|
||||
call fight("Eileen", 10, 99, pname=povname) from _call_fight_1
|
||||
|
||||
e "The ui functions can be also be used to show the sorts of stats you'd need if your game involves combat."
|
||||
|
||||
call fight("Eileen", 10, 99, pname=povname) from _call_fight_2
|
||||
|
||||
e "Hopefully, the ui functions will let you write whatever visual novel or dating sim you want."
|
||||
|
||||
return
|
||||
@@ -1,152 +0,0 @@
|
||||
# This file contains code for the menu that lets people select which demo
|
||||
# they want to use. It uses quite a bit of the UI code, but it's probably
|
||||
# a bit complex for the average user.
|
||||
|
||||
init:
|
||||
python:
|
||||
demos_main = [
|
||||
("demo_basics", "Basic Scripting", "5.6.3"),
|
||||
("demo_experience", "User Experience", "5.6.3"),
|
||||
("demo_transitions", "Transitions", "5.6.6"),
|
||||
("demo_movement", "Positions and Movement", "6.9.0"),
|
||||
("demo_animation", "Animation", "6.2.0"),
|
||||
("demo_multimedia", "Music, Sound, and Video", "6.9.1"),
|
||||
("demo_imageops", "Image Operations", "6.5.0"),
|
||||
("demo_ui", "User Interaction", "6.5.0"),
|
||||
("demo_text", "Fonts and Text Tags", "6.8.0"),
|
||||
("demo_character", "Character Objects", "6.2.0"),
|
||||
("demo_advanced", "Advanced Features", "6.9.0"),
|
||||
]
|
||||
|
||||
# Update above with this!
|
||||
demos_advanced = [
|
||||
("demo_layers", "Layers & Advanced Show", "5.6.5"),
|
||||
("demo_nvlmode", "NVL Mode", "6.4.0"),
|
||||
("demo_dynamic", "Dynamic Displayables", "5.6.3"),
|
||||
("demo_minigame", "Minigames", "6.3.2"),
|
||||
("demo_persistent", "Persistent Data", "6.7.0"),
|
||||
("demo_transform", "Transform", "6.9.0"),
|
||||
]
|
||||
|
||||
def demos_show(demos_info, nevermind):
|
||||
|
||||
renpy.choice_for_skipping()
|
||||
|
||||
ui.vbox(xpos=250, ypos=225, yanchor=0.5)
|
||||
|
||||
for label, name, ver in demos_info:
|
||||
ui.button(style='button',
|
||||
clicked=ui.returns(label),
|
||||
xminimum=530,
|
||||
left_padding=20)
|
||||
ui.hbox()
|
||||
ui.text(name, style='button_text', size=22, minwidth=440)
|
||||
ui.text(ver, style='button_text', size=22)
|
||||
ui.close()
|
||||
|
||||
ui.text(" ")
|
||||
|
||||
ui.button(style='button',
|
||||
clicked=ui.returns(False),
|
||||
xminimum=530,
|
||||
left_padding=20)
|
||||
|
||||
ui.text(nevermind, style='button_text', size=22, minwidth=450)
|
||||
|
||||
ui.close()
|
||||
|
||||
rfd = renpy.roll_forward_info()
|
||||
store.result = ui.interact(roll_forward=rfd)
|
||||
renpy.checkpoint(store.result)
|
||||
|
||||
|
||||
label demos:
|
||||
|
||||
# Is this the first time through the demo?
|
||||
$ demo_first_time = True
|
||||
|
||||
show eileen happy at left
|
||||
with move
|
||||
|
||||
label demo_repeat:
|
||||
|
||||
python hide:
|
||||
|
||||
if demo_first_time:
|
||||
e("What would you like demonstrated?", interact=False)
|
||||
else:
|
||||
e("Is there anything else you'd like demonstrated?", interact=False)
|
||||
|
||||
store.demo_first_time = False
|
||||
|
||||
demos_show(demos_main, "That's enough for now.")
|
||||
|
||||
# If the result is False, then the user clicked the "Enough for
|
||||
# now" button, and we should return to the main script.
|
||||
if result == False:
|
||||
|
||||
show eileen happy at center
|
||||
with move
|
||||
|
||||
return
|
||||
|
||||
# If the result is the advanced demo, just call it without
|
||||
# re-setting up the screen.
|
||||
elif result == "demo_advanced":
|
||||
|
||||
call demo_advanced from _call_demo_advanced_1
|
||||
|
||||
jump demo_repeat
|
||||
|
||||
else:
|
||||
|
||||
show eileen happy
|
||||
with move
|
||||
|
||||
# Otherwise, we want to call the result.
|
||||
call expression result from _call_result_1
|
||||
|
||||
show eileen happy at left
|
||||
with move
|
||||
|
||||
# And then re-show this menu.
|
||||
jump demo_repeat
|
||||
|
||||
|
||||
# Presented without commentary, as it's basically a repeat of the above.
|
||||
label demo_advanced:
|
||||
|
||||
# Hide the editor button.
|
||||
$ show_editor_button = False
|
||||
|
||||
python hide:
|
||||
|
||||
e("Which advanced feature would you like to learn about?", interact=False)
|
||||
|
||||
demos_show(demos_advanced, "Nevermind.")
|
||||
|
||||
# Move eileen back to the center of the screen, unless we're going for
|
||||
# an advanced demo.
|
||||
|
||||
# Show the editor button.
|
||||
$ show_editor_button = True
|
||||
|
||||
# If the result is False, then the user clicked the "Enough for
|
||||
# now" button, and we should return to the main script.
|
||||
if result == False:
|
||||
|
||||
return
|
||||
|
||||
else:
|
||||
|
||||
show eileen happy
|
||||
with move
|
||||
|
||||
# Otherwise, we want to call the result.
|
||||
call expression result from _call_result_2
|
||||
|
||||
show eileen happy at left
|
||||
with move
|
||||
|
||||
# And then re-show this menu.
|
||||
jump demo_advanced
|
||||
@@ -1,56 +0,0 @@
|
||||
# This file contains code that's used to display the editor button,
|
||||
# and the code that launches the editor with the given filename.
|
||||
|
||||
# This file can serve as an example of how to use an overlay, I guess.
|
||||
|
||||
init:
|
||||
|
||||
# This lets us control if the editor button is shown or not.
|
||||
$ show_editor_button = False
|
||||
|
||||
python hide:
|
||||
|
||||
# This function is called at least one per interaction.
|
||||
def overlay():
|
||||
|
||||
# If we don't want to show the editor button, do nothing.
|
||||
if not show_editor_button:
|
||||
return
|
||||
|
||||
# Figure out the filename and the line number.
|
||||
import os.path
|
||||
filename, line = renpy.get_filename_line()
|
||||
filename = os.path.basename(filename)
|
||||
|
||||
# The function that is called when the button is clicked.
|
||||
def clicked():
|
||||
|
||||
# We want to look for the filename in config.gamedir,
|
||||
# rather then using the full filename given by
|
||||
# get_filename_line. This is because the filename is fixed
|
||||
# when the file is compiled, and so may have changed before
|
||||
# the script is run. config.gamedir is computed when Ren'Py
|
||||
# starts up, and so should always be right.
|
||||
fullfn = config.gamedir + "/" + filename
|
||||
|
||||
# If the file exists, then we launch it in the editor, using
|
||||
# the undocumented launch_editor function.
|
||||
if os.path.exists(fullfn):
|
||||
renpy.launch_editor([ fullfn ], line)
|
||||
|
||||
# Display the button, modifying its look so that it doesn't
|
||||
# take up an excessive amount of space.
|
||||
ui.button(clicked=clicked,
|
||||
xpos=798, xanchor=1.0, ypos=2, xpadding=6, xminimum=200,
|
||||
background=RoundRect((0, 60, 120, 255), 6),
|
||||
hover_background=RoundRect((0, 80, 160, 255), 6),
|
||||
)
|
||||
|
||||
# The button contains this text. We can't use ui.textbutton,
|
||||
# since we want to restyle things.
|
||||
ui.text("%s:%d" % (filename, line),
|
||||
style="button_text",
|
||||
size=14)
|
||||
|
||||
# Append the overlay function to the list of overlay functions.
|
||||
config.overlay_functions.append(overlay)
|
||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@@ -1,169 +0,0 @@
|
||||
# This file is responsible for displaying code examples. It expects to see
|
||||
# comments like #begin foo and #end foo a the start of lines. The code is
|
||||
# then used to create example fragments.
|
||||
#
|
||||
# When we see:
|
||||
#
|
||||
# show example foo bar
|
||||
#
|
||||
# We concatenate fragements foo and bar, higlight them, wrap them into a
|
||||
# viewport, button and transform, and display them to the user.
|
||||
|
||||
transform example_transform:
|
||||
ypos 450 yanchor 1.0 xpos 0 xanchor 0
|
||||
|
||||
on replace:
|
||||
crop (0, 0, 800, 120)
|
||||
|
||||
on show:
|
||||
crop (0, 0, 800, 0)
|
||||
linear .5 crop (0, 0, 800, 120)
|
||||
|
||||
on hide:
|
||||
linear .5 crop (0, 0, 800, 0)
|
||||
|
||||
init python:
|
||||
|
||||
import re
|
||||
import keywords
|
||||
|
||||
KEYWORDS = set(keywords.keywords)
|
||||
PROPERTIES = set(keywords.properties)
|
||||
|
||||
KEYWORDS = [ re.escape(i) for i in keywords.keywords ]
|
||||
PROPERTIES = [ re.escape(i) for i in keywords.properties ]
|
||||
KWREGEX = r"|".join(KEYWORDS)
|
||||
PRREGEX = r"|".join(PROPERTIES)
|
||||
|
||||
regex = r"(?P<word>\b(\$|\w+)\b)" + \
|
||||
r"|(?P<string>\"([^\"]|\\.)*\")" + \
|
||||
r"|(?P<comment>#.*)"
|
||||
regex = re.compile(regex)
|
||||
|
||||
# This maps from example name to the text of the fragment.
|
||||
examples = { }
|
||||
|
||||
class __Example(object):
|
||||
"""
|
||||
When parameterized, this displays an example window, containing
|
||||
example text from blocks with those parameters.
|
||||
"""
|
||||
|
||||
def colorize(self, m):
|
||||
if m.group("string"):
|
||||
return "{color=#060}" + m.group(0) + "{/color}"
|
||||
|
||||
word = m.group("word")
|
||||
if word:
|
||||
if word in KEYWORDS:
|
||||
return "{color=#840}" + m.group(0) + "{/color}"
|
||||
elif word in PROPERTIES:
|
||||
return "{color=#048}" + m.group(0) + "{/color}"
|
||||
else:
|
||||
return m.group(0)
|
||||
|
||||
if m.group("comment"):
|
||||
return "{color=#600}" + m.group(0) + "{/color}"
|
||||
|
||||
return m.group(0)
|
||||
|
||||
def predict(self, callback):
|
||||
return
|
||||
|
||||
def _duplicate(self, args):
|
||||
|
||||
# Collect the examples we use.
|
||||
lines1 = [ ]
|
||||
|
||||
for i in args.args:
|
||||
if i not in examples:
|
||||
raise Exception("Unknown example %r." % i)
|
||||
lines1.extend(examples[i])
|
||||
|
||||
|
||||
# Strip off doubled blank lines.
|
||||
last_blank = False
|
||||
lines = [ ]
|
||||
|
||||
for i in lines1:
|
||||
|
||||
if not i and last_blank:
|
||||
continue
|
||||
|
||||
last_blank = not i
|
||||
|
||||
i = regex.sub(self.colorize, i)
|
||||
|
||||
lines.append(i)
|
||||
|
||||
# Join them into a single string.
|
||||
code = "\n".join(lines) + "\n "
|
||||
|
||||
ct = Text(code, size=16, color="#000")
|
||||
vp = Viewport(ct, child_size=(2000, 2000), ymaximum=120, draggable=True, mousewheel=True)
|
||||
w = Window(vp,
|
||||
background = "#fffc",
|
||||
top_padding=0,
|
||||
right_padding=0,
|
||||
bottom_padding=0,
|
||||
yminimum=0,
|
||||
)
|
||||
|
||||
return example_transform(w)
|
||||
|
||||
image example = __Example()
|
||||
|
||||
|
||||
init python hide:
|
||||
|
||||
import os.path
|
||||
import re
|
||||
|
||||
# A list of files we will be scanning.
|
||||
files = [ ]
|
||||
|
||||
for i in os.listdir(config.gamedir):
|
||||
if i.endswith(".rpy"):
|
||||
files.append(os.path.join(config.gamedir, i))
|
||||
|
||||
for fn in files:
|
||||
|
||||
f = file(fn, "r")
|
||||
|
||||
open_examples = set()
|
||||
|
||||
for l in f:
|
||||
|
||||
l = l.decode("utf-8")
|
||||
l = l.rstrip()
|
||||
|
||||
m = re.match("\s*#begin (\w+)", l)
|
||||
if m:
|
||||
example = m.group(1)
|
||||
|
||||
if example in examples:
|
||||
raise Exception("Example %r is defined in two places.", example)
|
||||
|
||||
open_examples.add(example)
|
||||
examples[example] = [ ]
|
||||
|
||||
continue
|
||||
|
||||
m = re.match("\s*#end (\w+)", l)
|
||||
if m:
|
||||
example = m.group(1)
|
||||
|
||||
if example not in open_examples:
|
||||
raise Exception("Example %r is not open.", example)
|
||||
|
||||
open_examples.remove(example)
|
||||
continue
|
||||
|
||||
for i in open_examples:
|
||||
examples[i].append(l)
|
||||
|
||||
if open_examples:
|
||||
raise Exception("Examples %r remain open at the end of %r" % (open_examples, fn))
|
||||
|
||||
f.close()
|
||||
|
||||
|
Before Width: | Height: | Size: 543 B |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 224 KiB |
|
Before Width: | Height: | Size: 223 KiB |
|
Before Width: | Height: | Size: 223 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 137 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 33 KiB |
@@ -1,400 +0,0 @@
|
||||
## This file contains some of the options that can be changed to customize
|
||||
## your Ren'Py game. It only contains the most common options... there
|
||||
## is quite a bit more customization you can do.
|
||||
##
|
||||
## Lines beginning with two '#' marks are comments, and you shouldn't
|
||||
## uncomment them. Lines beginning with a single '#' mark are
|
||||
## commented-out code, and you may want to uncomment them when
|
||||
## appropriate.
|
||||
|
||||
init -1 python hide:
|
||||
|
||||
## Should we enable the use of developer tools? This should be
|
||||
## set to False before the game is released, so the user can't
|
||||
## cheat using developer tools.
|
||||
|
||||
config.developer = True
|
||||
|
||||
## These control the width and height of the screen.
|
||||
|
||||
config.screen_width = 800
|
||||
config.screen_height = 600
|
||||
|
||||
## This controls the title of the window, when Ren'Py is
|
||||
## running in a window.
|
||||
|
||||
config.window_title = u"The Ren'Py Tutorial Game"
|
||||
|
||||
# These control the name and version of the game, that are reported
|
||||
# with tracebacks and other debugging logs.
|
||||
config.name = "Ren'Py Tutorial"
|
||||
config.version = '{}.{}.{} "{}"'.format(
|
||||
renpy.renpy.version_tuple[0],
|
||||
renpy.renpy.version_tuple[1],
|
||||
renpy.renpy.version_tuple[2],
|
||||
renpy.renpy.version_name)
|
||||
|
||||
## We then want to call a theme function. themes.roundrect is
|
||||
## a theme that features the use of rounded rectangles. It's
|
||||
## the only theme we currently support.
|
||||
##
|
||||
## The theme function takes a number of parameters that can
|
||||
## customize the color scheme.
|
||||
theme.roundrect(
|
||||
|
||||
## The color of an idle widget face.
|
||||
widget = "#003c78",
|
||||
|
||||
## The color of a focused widget face.
|
||||
widget_hover = "#0050a0",
|
||||
|
||||
## The color of the text in a widget.
|
||||
widget_text = "#c8ffff",
|
||||
|
||||
## The color of the text in a selected widget. (For
|
||||
## example, the current value of a preference.)
|
||||
widget_selected = "#ffffc8",
|
||||
|
||||
## The color of a disabled widget face.
|
||||
disabled = "#404040",
|
||||
|
||||
## The color of disabled widget text.
|
||||
disabled_text = "#c8c8c8",
|
||||
|
||||
## The color of informational labels.
|
||||
label = "#ffffff",
|
||||
|
||||
## The color of a frame containing widgets.
|
||||
frame = "#6496c8",
|
||||
|
||||
## If this is True, the in-game window is rounded. If False,
|
||||
## the in-game window is square.
|
||||
rounded_window = False,
|
||||
|
||||
## The background of the main menu. This can be a color
|
||||
## beginning with '#', or an image filename. The latter
|
||||
## should take up the full height and width of the screen.
|
||||
mm_root = "main_menu",
|
||||
|
||||
## The background of the game menu. This can be a color
|
||||
## beginning with '#', or an image filename. The latter
|
||||
## should take up the full height and width of the screen.
|
||||
gm_root = "#dcebff",
|
||||
|
||||
## If True, buttons, frames, and windows will rounded using a
|
||||
## 6px radius, rather then 12.
|
||||
less_rounded = True,
|
||||
|
||||
## And we're done with the theme. The theme will customize
|
||||
## various styles, so if we want to change them, we should
|
||||
## do so below.
|
||||
)
|
||||
|
||||
# For the demo, we use the nicer-looking bars from the outline
|
||||
# theme.
|
||||
theme.outline_bars(
|
||||
inside="#8cf",
|
||||
idle="#003c78",
|
||||
hover="#0050a0")
|
||||
|
||||
|
||||
#########################################
|
||||
## These settings let you customize the window containing the
|
||||
## dialogue and narration, by replacing it with an image.
|
||||
|
||||
## The background of the window. In a Frame, the four numbers are
|
||||
## the size of the left, top, right, and bottom borders, respectively.
|
||||
|
||||
# style.window.background = Frame("frame.png", 8, 0, 8, 0)
|
||||
|
||||
## Margin is space surrounding the window, where the background
|
||||
## is not drawn.
|
||||
|
||||
# style.window.left_margin = 6
|
||||
# style.window.right_margin = 6
|
||||
# style.window.top_margin = 6
|
||||
# style.window.bottom_margin = 6
|
||||
|
||||
## Padding is space inside the window, where the background is
|
||||
## drawn.
|
||||
|
||||
# style.window.left_padding = 6
|
||||
# style.window.right_padding = 6
|
||||
# style.window.top_padding = 6
|
||||
# style.window.bottom_padding = 6
|
||||
|
||||
## This is the minimum height of the window, including the margins
|
||||
## and padding.
|
||||
|
||||
# style.window.yminimum = 250
|
||||
|
||||
|
||||
#########################################
|
||||
## This lets you change the placement of the main menu.
|
||||
|
||||
## The way placement works is that we find an anchor point
|
||||
## inside a displayable, and a position (pos) point on the
|
||||
## screen. We then place the displayable so the two points are
|
||||
## at the same place.
|
||||
|
||||
## An anchor/pos can be given as an integer or a floating point
|
||||
## number. If an integer, the number is interpreted as a number
|
||||
## of pixels from the upper-left corner. If a floating point,
|
||||
## the number is interpreted as a fraction of the size of the
|
||||
## displayable or screen.
|
||||
|
||||
# style.mm_menu_frame.xpos = 0.5
|
||||
# style.mm_menu_frame.xanchor = 0.5
|
||||
# style.mm_menu_frame.ypos = 0.75
|
||||
# style.mm_menu_frame.yanchor = 0.5
|
||||
|
||||
|
||||
#########################################
|
||||
## These let you customize the default font used for text in Ren'Py.
|
||||
|
||||
## The file containing the default font.
|
||||
|
||||
# style.default.font = "DejaVuSans.ttf"
|
||||
|
||||
## The default size of text.
|
||||
|
||||
# style.default.size = 22
|
||||
|
||||
## Note that these only change the size of some of the text. Other
|
||||
## buttons have their own styles.
|
||||
|
||||
|
||||
#########################################
|
||||
## These settings let you change some of the sounds that are used by
|
||||
## Ren'Py.
|
||||
|
||||
## Set this to False if the game does not have any sound effects.
|
||||
|
||||
config.has_sound = True
|
||||
|
||||
## Set this to False if the game does not have any music.
|
||||
|
||||
config.has_music = True
|
||||
|
||||
## Set this to True if the game has voicing.
|
||||
|
||||
config.has_voice = False
|
||||
|
||||
## Sounds that are used when button and imagemaps are clicked.
|
||||
|
||||
style.button.activate_sound = "click.wav"
|
||||
style.imagemap.activate_sound = "click.wav"
|
||||
|
||||
## Sounds that are used when entering and exiting the game menu.
|
||||
|
||||
config.enter_sound = "click.wav"
|
||||
config.exit_sound = "click.wav"
|
||||
|
||||
## A sample sound that can be played to check the sound volume.
|
||||
|
||||
config.sample_sound = "tower_clock.ogg"
|
||||
|
||||
## Music that is played while the user is at the main menu.
|
||||
|
||||
# config.main_menu_music = "main_menu_theme.ogg"
|
||||
|
||||
|
||||
#########################################
|
||||
## Help.
|
||||
|
||||
## This lets you configure the help option on the Ren'Py menus.
|
||||
## It may be:
|
||||
## - A label in the script, in which case that label is called to
|
||||
## show help to the user.
|
||||
## - A file name relative to the base directory, which is opened in a
|
||||
## web browser.
|
||||
## - None, to disable help.
|
||||
config.help = "README.html"
|
||||
|
||||
|
||||
#########################################
|
||||
## Transitions.
|
||||
|
||||
## Used when entering the game menu from the game.
|
||||
config.enter_transition = dissolve
|
||||
|
||||
## Used when exiting the game menu to the game.
|
||||
config.exit_transition = dissolve
|
||||
|
||||
## Used between screens of the game menu.
|
||||
config.intra_transition = Dissolve(.25)
|
||||
|
||||
## Used when entering the game menu from the main menu.
|
||||
config.main_game_transition = Dissolve(.25)
|
||||
|
||||
## Used when returning to the main menu from the game.
|
||||
config.game_main_transition = Dissolve(.25)
|
||||
|
||||
## Used when entering the main menu from the splashscreen.
|
||||
config.end_splash_transition = None
|
||||
|
||||
## Used when entering the main menu after the game has ended.
|
||||
config.end_game_transition = fade
|
||||
|
||||
## Used when a game is loaded.
|
||||
config.after_load_transition = dissolve
|
||||
|
||||
## Used when the window is shown.
|
||||
config.window_show_transition = Dissolve(.25)
|
||||
|
||||
## Used when the window is hidden.
|
||||
config.window_hide_transition = Dissolve(.25)
|
||||
|
||||
## Used when showing NVL-mode text directly after ADV-mode text.
|
||||
config.adv_nvl_transition = dissolve
|
||||
|
||||
## Used when showing ADV-mode text directly after NVL-mode text.
|
||||
config.nvl_adv_transition = dissolve
|
||||
|
||||
## Used when yesno is shown.
|
||||
config.enter_yesno_transition = None
|
||||
|
||||
## Used when the yesno is hidden.
|
||||
config.exit_yesno_transition = None
|
||||
|
||||
## Used when entering a replay
|
||||
config.enter_replay_transition = None
|
||||
|
||||
## Used when exiting a replay
|
||||
config.exit_replay_transition = None
|
||||
|
||||
## Used when the image is changed by a say statement with image attributes.
|
||||
config.say_attribute_transition = None
|
||||
|
||||
#########################################
|
||||
## This is the name of the directory where the game's data is
|
||||
## stored. (It needs to be set early, before any other init code
|
||||
## is run, so the persisten information can be found by the init code.)
|
||||
python early:
|
||||
config.save_directory = "tutorial-1"
|
||||
|
||||
init -1 python hide:
|
||||
#########################################
|
||||
## Default values of Preferences.
|
||||
|
||||
## Note: These options are only evaluated the first time a
|
||||
## game is run. To have them run a second time, delete
|
||||
## game/saves/persistent
|
||||
|
||||
## Should we start in fullscreen mode?
|
||||
config.default_fullscreen = False
|
||||
|
||||
## The default text speed in characters per second. 0 is infinite.
|
||||
config.default_text_cps = 0
|
||||
|
||||
config.window_icon = "logo.png"
|
||||
config.windows_icon = "logo32.png"
|
||||
|
||||
# Set a default value for the auto-forward time, and note that AFM is
|
||||
# turned off by default.
|
||||
config.default_afm_time = 10
|
||||
config.default_afm_enable = False
|
||||
|
||||
# This is the main menu image we use.
|
||||
image main_menu:
|
||||
contains:
|
||||
"#000"
|
||||
|
||||
contains:
|
||||
"concert2"
|
||||
size (800, 509)
|
||||
|
||||
contains:
|
||||
Text("Ren'Py " + config.version, size=18)
|
||||
yalign .98
|
||||
xalign .02
|
||||
|
||||
# Demo game specific customizations.
|
||||
init python:
|
||||
style.mm_menu_frame.yalign = .98
|
||||
style.mm_menu_frame.xalign = .98
|
||||
|
||||
|
||||
init python hide:
|
||||
|
||||
import os
|
||||
launcher_language = os.environ.get("RENPY_LAUNCHER_LANGUAGE", "")
|
||||
|
||||
if launcher_language and launcher_language != persistent.launcher_language:
|
||||
|
||||
persistent.launcher_language = launcher_language
|
||||
|
||||
if launcher_language == "english" or (launcher_language not in renpy.known_languages()):
|
||||
launcher_language = None
|
||||
|
||||
_preferences.language = launcher_language
|
||||
|
||||
|
||||
## This section contains information about how to build your project into
|
||||
## distribution files.
|
||||
init python:
|
||||
|
||||
## The name that's used for directories and archive files. For example, if
|
||||
## this is 'mygame-1.0', the windows distribution will be in the
|
||||
## directory 'mygame-1.0-win', in the 'mygame-1.0-win.zip' file.
|
||||
build.directory_name = "tutorial-1.0"
|
||||
|
||||
## The name that's uses for executables - the program that users will run
|
||||
## to start the game. For example, if this is 'mygame', then on Windows,
|
||||
## users can click 'mygame.exe' to start the game.
|
||||
build.executable_name = "tutorial"
|
||||
|
||||
## If True, Ren'Py will include update information into packages. This
|
||||
## allows the updater to run.
|
||||
build.include_update = True
|
||||
|
||||
## File patterns:
|
||||
##
|
||||
## The following functions take file patterns. File patterns are case-
|
||||
## insensitive, and matched against the path relative to the base
|
||||
## directory, with and without a leading /. If multiple patterns match,
|
||||
## the first is used.
|
||||
##
|
||||
##
|
||||
## In a pattern:
|
||||
##
|
||||
## /
|
||||
## Is the directory separator.
|
||||
## *
|
||||
## Matches all characters, except the directory separator.
|
||||
## **
|
||||
## Matches all characters, including the directory separator.
|
||||
##
|
||||
## For example:
|
||||
##
|
||||
## *.txt
|
||||
## Matches txt files in the base directory.
|
||||
## game/**.ogg
|
||||
## Matches ogg files in the game directory or any of its subdirectories.
|
||||
## **.psd
|
||||
## Matches psd files anywhere in the project.
|
||||
|
||||
## Classify files as None to exclude them from the built distributions.
|
||||
|
||||
build.classify('**~', None)
|
||||
build.classify('**.bak', None)
|
||||
build.classify('**/.**', None)
|
||||
build.classify('**/#**', None)
|
||||
build.classify('**/thumbs.db', None)
|
||||
|
||||
## To archive files, classify them as 'archive'.
|
||||
|
||||
# build.classify('game/**.png', 'archive')
|
||||
# build.classify('game/**.jpg', 'archive')
|
||||
|
||||
## Files matching documentation patterns are duplicated in a mac app
|
||||
## build, so they appear in both the app and the zip file.
|
||||
|
||||
build.documentation('*.html')
|
||||
build.documentation('*.txt')
|
||||
|
||||
# This is tutorial specific code that searches for fonts in
|
||||
# launcher/fonts, reducing the size of the zip file containing
|
||||
# the SDK.
|
||||
config.searchpath.append("../launcher/game/fonts")
|
||||
|
||||
|
Before Width: | Height: | Size: 150 B |
|
Before Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |