Compare commits

...

1338 Commits

Author SHA1 Message Date
Tom Rothamel c7bc7aa2f9 Add config.change_icons_i686.
This is a lesser form of config.include_i686, the idea being that
the Ren'Py launcher will be whitelisted. (If it works, then we
can remove the Ren'Py icon from the launcher in the next
release.)
2021-01-30 21:35:43 -05:00
Tom Rothamel 625d0acbfa Ensure that focus changes always wind up on the grabbed displayable.
Per the secondary issue reported in #2633.
2021-01-30 19:24:06 -05:00
Tom Rothamel 3c173f073e Tweak the wording of the android warning. 2021-01-30 19:22:35 -05:00
Tom Rothamel 259639db0b Documentation clarifications.
- Explain how subpixel handles edges.
- Further clarify supported wav files.
2021-01-30 16:36:18 -05:00
Tom Rothamel 7abeaed7ec Improve how we scan for motion and expression files in live2d. 2021-01-29 21:53:23 -05:00
Tom Rothamel 1df06eeae3 Add config.context_fadeout_music and config.context_fadein_music.
These variables control how music is faded on context changes
like loads and replay ends.
2021-01-29 21:12:07 -05:00
Tom Rothamel e1702c53a1 Update the changelog. 2021-01-29 20:16:25 -05:00
Tom Rothamel 4ded91be04 Change the name. 2021-01-29 19:16:15 -05:00
Tom Rothamel 07006c7b47 Ensure the winding of both polygons when intersecting polygons.
Fixes #2628.
2021-01-28 23:59:40 -05:00
Tom Rothamel 731460b9ea Fix borders in the gl1 renderer.
Fixes #2625, which was reported with a patch by mgambrell.
2021-01-28 23:36:40 -05:00
Tom Rothamel 9ef37d27c3 Add build.include_i686.
This determines whether the 32-bit intel platform is included.
2021-01-27 23:04:54 -05:00
Tom Rothamel 9f34c7bdd4 Fix an error reporting bad flips. 2021-01-26 21:12:28 -05:00
Tom Rothamel 7beb499937 Point to AdoptOpenJDK. 2021-01-26 18:03:22 -05:00
Tom Rothamel 87b6c0f562 Use pygame_sdl2 to determine if the screensaver is active.
SDL2 only seems to check the hint once, at init time. However,
the Enable/Disable functions can be called at any time.

Fixes #2626, hopefully for good this time.
2021-01-26 01:02:57 -05:00
Tom Rothamel 2fae5f7591 Repeat the icon data in the .exe.
This yields marginally better antivirus behavior by giving the .exe
a normal amount of entropy.
2021-01-26 01:02:57 -05:00
Tom Rothamel 3aafa9d608 Merge pull request #2595 from Gouvernathor/patch-1
Add a getter for the achievement progress
2021-01-25 21:08:46 -05:00
Tom Rothamel e747c38f37 Update sponsor docs. 2021-01-24 21:25:55 -05:00
Tom Rothamel 3530434c51 sw: Remove the obsolete scale_fast field.
Addresses #2619.
2021-01-23 23:33:34 -05:00
Tom Rothamel 3593b6410a Monkeypatch the updates to deal with 7.4.1 missing zsync on mac. 2021-01-23 23:21:23 -05:00
Tom Rothamel 4788f3162f Bump version. 2021-01-23 18:54:22 -05:00
Tom Rothamel cea83dd5cb Merge pull request #2616 from midgethetree/bug-focus-extreme
Update focus.py
2021-01-22 21:30:20 -05:00
midgethetree 4ad0397578 Update focus.py
Made it so the focus_extreme function (used when arrow key is pressed if self voicing is off and no displayable on screen is currently focused) ignores displayables with keyboard_focus set to False.
2021-01-22 01:50:31 -05:00
Tom Rothamel a854b63b96 Check in more changes. 2021-01-21 22:51:22 -05:00
Tom Rothamel 8e2e0f3e6d Change the name of the release. 2021-01-21 22:07:03 -05:00
Tom Rothamel b87a816526 Update the changelog. 2021-01-21 22:06:12 -05:00
Tom Rothamel 00252500fd Move all the other mipmap usage to the style system. 2021-01-21 21:59:30 -05:00
Tom Rothamel 9aebcd4746 Fix mipmap default. 2021-01-21 21:46:44 -05:00
Tom Rothamel 5f831b995f Add a style property that determines if text is mipmapped. 2021-01-21 21:46:14 -05:00
Andy_kl 21ce89a9eb Fix encoding issue in traceback ending text 2021-01-22 03:40:13 +02:00
Andy_kl 5d84076ff1 Add name and version of the game to early config names 2021-01-22 03:40:13 +02:00
Tom Rothamel 8a9364a836 gl2: Convert all surfaces into Textures.
This makes sure the Surface is loaded before it needs to be
rendered.

Fixes #2615.
2021-01-21 20:12:59 -05:00
Tom Rothamel 2b95b8ad7a Allow pause/renpy.pause to end during a modal screen.
Another attempt at this. It's really only the pause statment not
ending when a modal screen is up that is confusing, so we fix this
by allowing just pauses to avoid modal.
2021-01-21 08:41:51 -05:00
Tom Rothamel 700a8b8a91 Revert "Pass timeevent through modal screens."
This is too dangerous of a solution for the underlying problem.

This reverts commit d6228c994a.
2021-01-21 08:17:54 -05:00
Tom Rothamel 24eabf8b78 gl2: Allow minimal functionality when gl2 isn't functioning.
This might be the case when the EGL context is lost because an
Android app went to sleep.
2021-01-21 01:15:22 -05:00
Tom Rothamel 98682d9e19 Ensure that events are processed even if the display resets.
A common cause of display resets seems to be Androuid devices that
lose the egl context when going to sleep. This ensures we make
progress to actually going to sleep when this happens.
2021-01-21 01:15:22 -05:00
Tom Rothamel 08a7fb8c89 Allow config.log_to_stdout to be set from the game script. 2021-01-21 01:15:22 -05:00
Andykl 7fca9e99db Merge pull request #2612 from Gouvernathor/patch-2
Typo in the changelog
2021-01-21 05:00:44 +02:00
Tom Rothamel dffa3fa4d1 gl1: Try again if things fail during shader init.
This helps things run on the Galaxy S5.
2021-01-20 21:43:33 -05:00
Gouvernathor 95a594ec88 Typo in the changelog 2021-01-21 00:29:53 +01:00
Tom Rothamel 37a61025b5 gl2: Remove the texture cache.
This isn't a performance enhancement, anymore, as surfaces aren't
used much any more. It was also causing a memory leak, as the
Texture kept a reference to the Surface, which kept the Surface
alive, which kept the Texture in the cache even if it should have
been purged.
2021-01-20 18:22:39 -05:00
Tom Rothamel 17467a21c0 Update changelog. 2021-01-20 01:59:22 -05:00
Tom Rothamel 90330c5d2b Make mipmapping of videos controllable, and default it to False. 2021-01-20 01:34:12 -05:00
Tom Rothamel 8e76941ba4 gl2: Allow properties to be passed in to influence texture loading. 2021-01-20 01:33:45 -05:00
Tom Rothamel a96a6c0ce3 Do not call pop_all_dynamic() when rolling back through invoke_in_new_context.
This is the proper fix for #2599 - the previous one caused problems when hitting
shift+R when the call stack was not empty.
2021-01-20 01:09:24 -05:00
Tom Rothamel 3e614454e9 Revert "Fix a problem with rollback and dynamic variables."
This reverts commit 57e016bec2.
2021-01-20 00:09:18 -05:00
Tom Rothamel af5978fc73 ffmedia: Use the dictionary to configure threading. 2021-01-19 19:02:12 -05:00
Tom Rothamel 05fa220dd6 Remove last deprecation in avcoded, replaving avcoded_decode_audio4/video2. 2021-01-19 09:36:20 -05:00
Tom Rothamel c5193ceb3c ffmedia: Remove some deprecated function calls. 2021-01-19 00:40:22 -05:00
Tom Rothamel 5042f7e6cc Allow frames to be delivered a little early.
This fixes a jitter problem that happens when the framerate is an
integer multiple of the movie rate. You might skip a frame because
it's a small fraction of a second early, only to have to wait for
the next frame to show it.
2021-01-18 22:51:08 -05:00
Tom Rothamel d0bc9232ad Wait a little longer for the signature. 2021-01-17 22:15:57 -05:00
Tom Rothamel d0e5cc9052 Clear the dismiss keysym when dismiss_unfocused is used.
During a transition pause. Fixes the interaction of _dismiss_pause
and transition pauses.
2021-01-17 21:35:20 -05:00
Tom Rothamel a21b7a7dc8 doc: Fix wrong role. 2021-01-17 02:32:48 -05:00
Tom Rothamel 4640424ccc Changelog last commit. 2021-01-17 02:05:39 -05:00
Tom Rothamel 557fa6f408 Fix the sort of statements in lint, so translation counts work.
Fixes #2605.
2021-01-17 01:59:02 -05:00
Tom Rothamel f1393be74b Fix typo. 2021-01-17 01:27:47 -05:00
Tom Rothamel 5ca0e2789c Update the changelog. 2021-01-17 01:13:55 -05:00
Tom Rothamel 4c310521ac Update credits. 2021-01-17 00:36:16 -05:00
Tom Rothamel 3824795f67 Change the actions used to toggle self-voicing.
Per https://lemmasoft.renai.us/forums/viewtopic.php?p=538253#p538253
2021-01-17 00:33:32 -05:00
Tom Rothamel f2b896c092 Document the controller blocklist. 2021-01-17 00:14:10 -05:00
Tom Rothamel 9e9efac966 Add greater control of mipmapping for dissolves.
These can be performance critical, and involve a render to texture.
This change adds the ability to determine if the new textures have
mipmaps generated.
2021-01-17 00:08:15 -05:00
Tom Rothamel d8b371a29d Improved fix for interaction between xfill, yfill, and box_wrap.
Putting fill everywhere didn't work. So instead, we revert fully
to the 7.3.5 behavior, plus a special case for box_wrap.

Addresses #2589 and #2081.
2021-01-16 23:46:53 -05:00
Tom Rothamel 20dd6f33c9 Revert the change to set xfill/yfill by default when a size is present.
It's too disruptive.
2021-01-16 22:10:45 -05:00
Tom Rothamel b160beabd0 Pass the render properties into the render to texture system.
This will make it possible to use properties to better control
render-to-texture.
2021-01-16 22:09:43 -05:00
Tom Rothamel 57e016bec2 Fix a problem with rollback and dynamic variables.
... which was that dynamic variables wouldn't get reset after a
rollback happened. This wasn't a huge problem, since dynamic
variables mostly were used in contexts, and contexts rarely
cause rollback.

However, we offer rollback as an option when an error in a context
occurs, which could trigger this issue.

Fixes #2599.
2021-01-16 21:39:49 -05:00
Tom Rothamel 3a42e790fd Fix the interaction between xfill, yfill, and box_wrap.
First off, it makes sense that if a size is being forced on a
displayable, it should fill to fit that size in possible. So
now xsize, ysize, and xysize force xfill and/or yfill in the
appropriate dimensions.

If box_wrap is true, however, fill is turned off for the last
line. This prevents it from being expanded unnaturally.

Fixes #2589, while preserving the fix for #2081.
2021-01-16 20:31:15 -05:00
Tom Rothamel d31d27b093 Better documentation for the expansion APK license.
Fixes #2593.
2021-01-16 14:29:22 -05:00
Tom Rothamel 350ce8978d Add a controller blocklist for the Switch pro controller.
This controller doesn't work without some other software to send
the init to it. Trying to use hidapi to initialize the controller
didn't work, and led to problems with other software that uses
USB. (And fundamentally, I don't think Ren'Py should use direct USB
access.)

So, instead, we detect the pro controller and ignore it.
2021-01-16 14:20:51 -05:00
Tom Rothamel beea27db8c Set the hint to allow the screensaver.
Fixes #2602, a regression introduced by SDL2.
2021-01-16 13:16:16 -05:00
Tom Rothamel c72638b7aa Ensure glfunctions remains reported after reload. 2021-01-16 11:14:09 -05:00
Tom Rothamel 4c75b3db14 Exclude the presplash from archives. 2021-01-16 11:12:19 -05:00
Tom Rothamel 06c5f83ce6 Add id to the last commit, meaning no translation is required. 2021-01-14 21:54:17 -05:00
Tom Rothamel 2fd87aff65 Merge pull request #2597 from ajkhan96/atl-tutorial-typo
Fix typo in ATL tutorial
2021-01-14 21:24:58 -05:00
Tom Rothamel 39e3600e00 Add an id clause to the say statement.
This makes it possible to specify the transation id, making it
possible to correct a typo without forcing a retranslation.
2021-01-14 21:20:36 -05:00
Tom Rothamel ffef475dce Fix set_projects and friends. 2021-01-14 19:15:46 -05:00
ajkhan96 c483c82781 Fix typo in ATL tutorial 2021-01-14 01:55:59 -08:00
Tom Rothamel 4587e9b901 Use pyobjus to choose the directory on macOS, if it's available.
This works around problems with Big Sur.

Fixes #2576.
2021-01-14 01:11:35 -05:00
Tom Rothamel 0aaf668b10 Rollback timer state when a new timer object is created.
The TimerState object expects to roll back, but there's an edge
case, since usually an object doesn't roll back to the start of
the interaction period when it was first created. However, due
to being reachable through a displayable that doesn't roll back,
the TimerState needs to roll back to its initial state.

Fixes #2596.
2021-01-13 22:22:44 -05:00
Gouvernathor fb4ce32fb0 Add a getter for the achievement progress...
...in addition to the setter already in place (the progress function).
2021-01-14 00:58:11 +01:00
Tom Rothamel d449adb8c2 Fix encodings in renpy.exports.log.
Fixes #2590.
2021-01-11 23:33:19 -05:00
Tom Rothamel 8f369fa978 Add missing header to the changelog. 2021-01-10 22:53:42 -05:00
Tom Rothamel 74b38afeb2 Link to log.txt if GL fails to start. 2021-01-10 22:53:14 -05:00
Tom Rothamel ca356e7d17 Allow the software renderer to activate if explicity selected. 2021-01-10 22:51:59 -05:00
Tom Rothamel bc06529e9d gl, gl2: Check that all required functions have been dynamically loaded.
If a function fails to load, log the error and error out early, rather
than heading for a potential crash when the function is called.

Per #2584.
2021-01-10 22:33:06 -05:00
Tom Rothamel cc3dfd5ea5 mac: Include the mac build scripts with Ren'Py.
This means it's not necessary to have a mounted directory on the
mac used for code signing, which should improve the reliability
of nightly builds.
2021-01-09 21:26:13 -05:00
Tom Rothamel de07ab2c3f Changelog. 2021-01-09 02:25:07 -05:00
Tom Rothamel 717242aa00 Update the sponsor doc. 2021-01-09 02:23:58 -05:00
Tom Rothamel f72b7d6125 Update the changelog. 2021-01-09 02:17:03 -05:00
Tom Rothamel 9c71146079 Update copyright. 2021-01-08 21:08:22 -05:00
Tom Rothamel 9638dc7c48 Use dpi_scale to update the physical_size preference.
This should bring back high dpi mode on Windows.

Fixes #2581.
2021-01-08 00:30:51 -05:00
Tom Rothamel c23195e4f1 Revert "Remove the setting of dpi_scale."
This reverts commit 5a7e82f881.
2021-01-07 22:40:52 -05:00
Tom Rothamel 853e0fb4f2 lint: Fixes.
- Ignore _confirm_quit being redefined.
- Report Unicode dialogue problems in unicode, not repr.
2021-01-07 21:32:15 -05:00
Tom Rothamel 27f4494ecb Add config.gl_set_attributes for test purposes.
As a way to make #2574 potentially something we can debug.
2021-01-06 19:33:46 -05:00
Tom Rothamel 3138d6985f Merge pull request #2562 from morganwillcock/normalize-path-parser
Normalize game filename for unelide
2021-01-06 09:59:17 -05:00
Tom Rothamel 01d99fb016 Merge pull request #2554 from Moshibit/master
update Spanish translation
2021-01-06 09:59:03 -05:00
Tom Rothamel 3edd99a3d7 Use python2 to display the tk file picker on Mac.
Tkinter is broken on Python 3 on Big Sur, hence it's necessary
to use Python 3 on that platform to display the file picker.

Fixes #2575.
2021-01-06 02:07:26 -05:00
Tom Rothamel 31894be3dc Enable ffmpeg autothreading. 2021-01-06 01:31:30 -05:00
Tom Rothamel ff58a13938 More work on windows movie playback.
- Go back to using SDL_calloc on Windows, as it can be freed properly.
- Go back to 16 byte alignment, now that we patch ffmpeg to handle
  alignment properly.
2021-01-05 23:06:37 -05:00
Tom Rothamel ab07dc9215 Fix typo. 2021-01-05 22:33:14 -05:00
Andy_kl b1b2d7a3be Fix selection of renderers to better include gl2. 2021-01-05 17:08:20 +02:00
Tom Rothamel 00543bcb4c Prefer opening a help file to a help screen, if Help has one give.
This fixes a use case where Help("whatever.html") was used to
launch arbitrary html files.
2021-01-05 09:30:53 -05:00
Tom Rothamel 3b5a9eec12 Fix selection of renderers to better include gl2.
Fixes a regression introduced by 63769aa8fd.
2021-01-05 09:30:53 -05:00
Andy_kl a899a7dead Added log message about renderer trying to init 2021-01-05 07:33:00 +02:00
Tom Rothamel 4e3d951d26 Avoid uncondtionally resetting say_attributes and temporary_attributes.
The main place we want to reset them is when showing an empty_window,
and so we move the reset there.

This addresses the first test case at https://lemmasoft.renai.us/forums/viewtopic.php?p=537851#p537851 .
2021-01-04 23:01:06 -05:00
Tom Rothamel a2dd40035d live2d: Add a default_fade parameter.
This lets a creator change the amount of time Live2D spends fading,
per the discussion at #2552.

This also changes the motion semantics to be inclusive of the
segment end time, which means the last segment of the motion will
continue forever if not faded out.
2021-01-03 21:00:17 -05:00
Tom Rothamel 4367140ec9 Coerce archive members to unicode before processing them.
Fixes #2567.
2021-01-03 19:59:06 -05:00
Tom Rothamel 1bdecc1c3a Make the search for a multipersistent file always occur as bytes.
This is expected to address #2548.
2021-01-03 19:42:49 -05:00
Tom Rothamel 5a7e82f881 Remove the setting of dpi_scale.
This is no longer needed, now that SDL2 supports dpi scaling the
same way it does the highdpi support on other platforms.

Fixes #2547.
2021-01-03 19:36:03 -05:00
Tom Rothamel 8689050f3c Fix compat. 2021-01-03 15:29:03 -05:00
Tom Rothamel adc0b5ac62 Fix build on mac. 2021-01-03 14:57:41 -05:00
Tom Rothamel d6228c994a Pass timeevent through modal screens.
This means that a timeout (like a pause) keeps running even if a
modal screen is on top of it.
2021-01-03 13:12:27 -05:00
Tom Rothamel 7225980edf Force a 32-byte alignment for each row of pixels in a movie.
This works around the issue fixed by ffmpeg/ffmpeg@ba3e771a42
on sse3 systems, and prepares Ren'Py for other platforms that might want 32-byte alignment.

This may also help crashes (which have never been reported) with movies that have a row
length that is not a multiple of 4 pixels.
2021-01-03 12:54:47 -05:00
Morgan Willcock 3bcacf2747 Normalize game filename for unelide
Fixes paths on Windows being returned with mixed separators.
Resolves relative paths in filename before joining to base directory.
2021-01-03 11:52:12 +00:00
Tom Rothamel 216e5ed950 Base the py3 compiler flags off of new_python_flags, not old_python_flags.
This does a better job of giving python3 semantics.
2021-01-02 17:25:45 -05:00
Tom Rothamel 50d7486606 Bump the minimum macos version to 10.10+.
This seems to be the minimum SDL2 will compile with, so that's
a good target.
2021-01-02 16:28:58 -05:00
Tom Rothamel 63769aa8fd Avoid using renderers that aren't allowed.
This fixes a performance warning when going from the GL renderer
to a GL2 game.
2021-01-02 00:58:18 -05:00
Tom Rothamel ca34e092db Use a more complicated quote_escape mechanism.
This is actually pretty rarely used, basically just for things
like:

   label foo(a=1
             + 2):
       ...

Where an expression is inside parenthesis that exist in Python but
not Ren'Py. This inserts \ before each newline, but with the change
that it doesn't do it when inside a string, where newlines can
be meaningful.

Fixes #2549.
2021-01-02 00:23:23 -05:00
Andy_kl 3cb6d38d54 live2d: Fix attributes coercion
Fix #2553
2021-01-02 03:36:45 +02:00
Tom Rothamel 9d076ae91b Fix compatibility. 2021-01-01 17:27:54 -05:00
Moshibit 734751143f update Spanish translation 2021-01-01 14:41:17 -06:00
Moshibit 5c1c394dce update Spanish translation 2021-01-01 14:40:07 -06:00
Moshibit a3792955f3 Merge pull request #1 from renpy/master
Update from renpy master
2021-01-01 14:37:20 -06:00
Tom Rothamel 830f761eee Change the pause statement to use renpy.pause, and not with Pause().
This would remove an area of repeated confusion, where a click
dismisses multiple pauses.
2021-01-01 00:38:08 -05:00
Tom Rothamel 2692392d8a Remove editra from the itch upload script. 2021-01-01 00:31:54 -05:00
Tom Rothamel 3b96cfa419 Bump version. 2021-01-01 00:01:18 -05:00
Tom Rothamel 3106ea66cb Adjust existing translations for d86b008b3d. 2020-12-30 22:46:13 -05:00
Andy_kl 5b42e5c448 Revert dot changed by mistake 2020-12-31 05:40:29 +02:00
Tom Rothamel d86b008b3d Fix broken translation. 2020-12-30 22:39:22 -05:00
Andy_kl 2dba268d78 Update Russian translation 2020-12-31 05:34:42 +02:00
Tom Rothamel a7788207d9 Merge pull request #2538 from Gouvernathor/patch-1
Doc minor fixes
2020-12-30 21:55:24 -05:00
Tom Rothamel 72f5652db0 Merge 'Delete duplicate Chinese'. 2020-12-30 21:53:41 -05:00
Tom Rothamel 884638f90a Fix documentation. 2020-12-29 21:10:40 -05:00
Tom Rothamel ddda008007 Fix line endings, hide cursor. 2020-12-29 20:19:44 -05:00
Tom Rothamel f9be6d79b5 Fix typo. 2020-12-29 20:10:52 -05:00
Andy_kl d8d48fa2e0 Allow expensive_predict_callbacks return True to be called again
This allows to use objects that iterate some game variable and return True
per value instead of appending expensive_predict_callbacks in runtime.
2020-12-30 03:02:59 +02:00
Tom Rothamel 7ef2fcdc52 Expand the bounds around images with alpha.
This helps with mipmap construction, as it means that a 1px line on
the edge can blend into transparency as well as other colors.

Fixes #2541, at least when scalling down to > 12.5%.
2020-12-29 19:35:31 -05:00
Tom Rothamel 53d94f1c3e Remove debug print. 2020-12-29 15:09:57 -05:00
Tom Rothamel f1a836a231 Add compatibility file open to the store.
This will determine if the calling script was compiled in python 2
or python 3 mode, and invoke the python 2 or python 3 open function,
as appropriate.

Intended to address #2543.
2020-12-29 01:35:06 -05:00
Tom Rothamel aa9cc4326d Properly premultiply alpha in OpacityMatrix. 2020-12-29 01:24:26 -05:00
Tom Rothamel 0e58052f90 Use multiple passes when finding objects reachable from rollback.
Fixes #2539.

What happened is that the object was changed and then became
unreachable. Since purge_unreachable occured in change order,
the object was purged, and was restored in the new, rather than old
version.
2020-12-28 21:38:41 -05:00
Tom Rothamel 1a90a521e6 Fixes to LayeredImageProxy and SideImage
- LayeredImageProxy now filters out child attributes.
- get_side_image now respects renpy.config.side_image_only_not_showing.
2020-12-27 22:29:56 -05:00
Tom Rothamel ae3fa76055 Ensure use expression works with copy_on_change/transitions.
Fixes #2537.
2020-12-27 21:33:40 -05:00
Gouvernathor 26cc6c2e47 typos 2020-12-28 00:11:21 +01:00
zedraxlo 8f0e9bb10c Delete duplicate Chinese 2020-12-28 02:31:09 +08:00
Tom Rothamel ce07a871e4 Update pig latin translation. 2020-12-27 13:17:18 -05:00
Gouvernathor 0e786e453e typo 2020-12-27 18:38:58 +01:00
Gouvernathor 6805cdaf41 typo 2020-12-27 17:26:45 +01:00
Gouvernathor 6c9d3ba556 :doc: The exceptions are not listed below anymore
and a filename without its extention still works to define an image
2020-12-27 17:21:57 +01:00
Tom Rothamel c632170508 Fix translations changed by 7e0c101f55. 2020-12-27 08:21:31 -05:00
Tom Rothamel 69c338621b doc: Update changelog and credits. 2020-12-26 22:20:53 -05:00
Tom Rothamel 8e64226db1 Merge pull request #2480 from pauljmartinez/update-show-documentation
Update show statement documentation
2020-12-26 22:12:33 -05:00
Tom Rothamel 7e0c101f55 Fix the look of the gamepad configurator. 2020-12-26 22:09:29 -05:00
Tom Rothamel 1fb96e1ed4 Distinguish repeating and non-repeating gamepad bindings. 2020-12-26 22:01:44 -05:00
Tom Rothamel 309a3f5082 Fix dangling link. 2020-12-26 21:44:44 -05:00
Tom Rothamel f0848c03da Avoid converting multipersistent filename to unicode.
Fixes #2536.
2020-12-26 19:24:23 -05:00
Tom Rothamel e4c4b66d1d Project the drawing used byt is_pixel_opaque.
This fixes a problem that only occured on AMD GPUs, where buttons
with a focus_mask would not be focused, probably because the
picel was being drawn in the wrong place, at least when anisotropy
is taken into account.
2020-12-26 18:04:15 -05:00
Tom Rothamel b7ddbbf8e1 gl2: Allow model debugging to be enabled on a per-context basis. 2020-12-26 17:48:59 -05:00
Andy_kl b99c34a5ff Make fix for 34d53e74 more correct 2020-12-25 23:06:14 +02:00
Tom Rothamel 16fdc17781 Check that all image attributes are required or optional before choose_attributes.
This is intended to address #2528, by ensuring every non-chosen
attribute really does exist.
2020-12-25 15:16:39 -05:00
Andy_kl 34d53e7427 Fix RuntimeError in im.Cache.get_current_size 2020-12-25 21:39:09 +02:00
Tom Rothamel 89a661c42f Merge pull request #2530 from lee-yunseok/master
Update Korean strings
2020-12-25 14:05:50 -05:00
Tom Rothamel 4e729baff7 Merge branch 'master' of github.com:renpy/renpy 2020-12-25 14:05:28 -05:00
Tom Rothamel 29a406f167 Allow the queueing of audio before PCM is fully initialized.
Fixes #2522, and maybe #2468.
2020-12-25 13:42:08 -05:00
Andy_kl fed7df84c1 Fix arguments order use for shown.predict_hide 2020-12-25 19:33:06 +02:00
Tom Rothamel ca98d9444e Merge pull request #2531 from morganwillcock/delete-bak
Remove screens.rpy.bak from schinese translation
2020-12-25 11:55:19 -05:00
Morgan Willcock 7e7800174f Remove screens.rpy.bak from schinese translation 2020-12-25 16:22:10 +00:00
lee-yunseok 85c4973d31 Update Korean strings 2020-12-25 21:42:15 +09:00
Tom Rothamel cae93790d9 Remove chinese .rpyc files.
These shouldn't be checked in.
2020-12-25 02:04:41 -05:00
Tom Rothamel 1a9a651a4a Update android strings. 2020-12-25 02:04:41 -05:00
Tom Rothamel 535977b492 Merge pull request #2524 from Gouvernathor/patch-1
Fix for choose_image ambiguity
2020-12-24 19:43:13 -05:00
Tom Rothamel 6caeefb5a2 Merge pull request #2527 from morganwillcock/normalize_path
Normalize project filename for unelide
2020-12-24 18:51:48 -05:00
Morgan Willcock 9389e97cf8 Normalize project filename for unelide
Fixes paths on Windows being returned with mixed separators.
Resolves relative paths in filename before joining to base directory.
2020-12-24 23:05:36 +00:00
Tom Rothamel e99777074f Merge pull request #2499 from zedraxlo/patch-1
Update Chinese
2020-12-24 16:18:34 -05:00
kyouryuukunn cd03ed7a52 Merge pull request #2525 from kyouryuukunn/Japanese_update_201225
Japanese_update
2020-12-25 01:24:41 +09:00
kyouryuukunn 7e5599136b Japanese_update 2020-12-25 00:59:54 +09:00
Gouvernathor 43d4361619 choose_image : avoid exception raising...
...using a tally of the number of optional attributes, in the case where more than one match was found.
fixes #2520
2020-12-24 13:23:20 +01:00
Tom Rothamel 2f670de1e3 doc: Fix the sidebar size. 2020-12-23 19:46:15 -05:00
Tom Rothamel eb6b4a6749 doc: Fix building. 2020-12-23 19:28:43 -05:00
Tom Rothamel d437288014 Merge branch 'master' of github.com:renpy/renpy 2020-12-22 21:38:03 -05:00
Tom Rothamel a054270c03 Merge pull request #2512 from Gouvernathor/docfix-2
Random fixes in the doc - 2
2020-12-22 21:36:38 -05:00
Gouvernathor 2628afcb4c Change attribute image into layeredimage 2020-12-22 09:24:23 +01:00
Tom Rothamel 331c9b99a4 gl2: Use round when computing the rtt size.
This is because it's possible for very small rounding errors to
cause a  computed size to be infitesimally smaller than it should
be, and hence the texture to be a full pixels smaller.
2020-12-21 21:45:46 -05:00
Asriel Senna 58a3a39eb0 fix typo 2020-12-21 09:17:09 +01:00
Asriel Senna 49f7509b2c Add a foreach example with a renpy-while loop 2020-12-21 09:16:48 +01:00
Asriel Senna 67f57d9376 Remove reference to unused web service 2020-12-21 09:15:50 +01:00
Tom Rothamel 1a52941fc0 Merge pull request #2497 from lee-yunseok/master
Update Korean translations
2020-12-21 02:03:55 -05:00
Tom Rothamel 2c3251298e controller: Support repeating. 2020-12-20 23:24:33 -05:00
Tom Rothamel 06004f1b57 doc: Documentation.
- Move Image Manipulators out of the display documentation.
- Show config.mouse as an incompatible changes.
2020-12-20 22:50:14 -05:00
Tom Rothamel b59764b8ad Make it easier to use default_mouse to pick a custom mouse cursor. 2020-12-19 14:36:09 -05:00
Tom Rothamel b1b2f90dd9 Prevent Ren'Py from crashing if config.mouse is set. 2020-12-19 14:36:09 -05:00
kyouryuukunn 5236aac816 Merge pull request #2508 from kyouryuukunn/Japanese_Update_201219
Update Japanese translations
2020-12-19 16:25:06 +09:00
kyouryuukunn 58b403d51c Update Japanese translations 2020-12-19 16:21:51 +09:00
Tom Rothamel 888dcd736e Consider sizes below 256x256 to be spurious.
This is here to prevent bugs where a minimized or otherwise not
present window cause a divide by zero, like #2506.
2020-12-18 22:49:30 -05:00
Beuc b85a35ba50 webserver: fix empty response on root URL 2020-12-18 15:39:09 +01:00
Andykl 64f0f78635 Merge pull request #2505 from Moshibit/master
Fix '\n\n'
2020-12-18 15:59:19 +02:00
Moshibit f7949aabc0 fixes 2020-12-18 07:04:29 -06:00
Moshibit ede3343d6c Fix '\n\n' 2020-12-18 06:52:13 -06:00
Tom Rothamel 3fc95821b4 steam: Disable the Steam overlay in the launcher. 2020-12-17 23:41:03 -05:00
Tom Rothamel 5bf649cb1f doc: libusb as a dependency. 2020-12-17 23:29:09 -05:00
Andy_kl dad9c24ee9 Remove duplicate of mine in credits. 2020-12-18 00:34:38 +02:00
Andy_kl f2470edaf4 Make the first attribute (real image tag) for side images required instead of optional
Fix #2500
2020-12-18 00:25:18 +02:00
Tom Rothamel af004af20a doc: Remove duplicate credit. 2020-12-17 17:13:08 -05:00
zedraxlo 4d254dcd83 Change language identifier 2020-12-17 23:51:59 +08:00
zedraxlo 3fe30c393b Change language identifier 2020-12-17 23:51:06 +08:00
zedraxlo 58b9d8cb5a Change "traditional_chinese" to "tchinese" 2020-12-17 23:34:11 +08:00
zedraxlo fe1b3c8082 Delete obsolete.rpy 2020-12-17 23:31:26 +08:00
zedraxlo 9d44683044 Update translations 2020-12-17 23:29:45 +08:00
zedraxlo 724f9f6f64 Change "simplified_chinese" to "schinese" 2020-12-17 22:38:34 +08:00
zedraxlo 12e33e9d5b Keeps the language list displayed after changing the language identifier. 2020-12-17 22:31:48 +08:00
Tom Rothamel 7bad158476 doc: Sponsors and credits. 2020-12-16 20:01:00 -05:00
Tom Rothamel 2c7b8bb14f Update and fix translations. 2020-12-16 19:56:02 -05:00
Tom Rothamel cab71b9d13 doc: Steam support. 2020-12-16 19:54:37 -05:00
Andy_kl ece87ec4a2 Fix NameError in changing projects directory 2020-12-16 18:07:02 +02:00
lee-yunseok 7776e08119 clear 2020-12-17 00:26:12 +09:00
lee-yunseok 5a453e0665 Update Korean translations 2020-12-17 00:17:49 +09:00
Tom Rothamel 0c305a43e7 Merge pull request #2485 from Andykl/quit-callbacks
Implement config.quit_callbacks
2020-12-16 09:33:05 -05:00
Tom Rothamel 0df7edbe30 Merge branch 'master' into quit-callbacks 2020-12-16 09:32:54 -05:00
Tom Rothamel 61587543c0 Merge pull request #2496 from Moshibit/master
Update Spanish translation
2020-12-16 09:31:38 -05:00
Andykl a0731ec9b6 Merge pull request #2490 from Andykl/docs
Doc fixes
2020-12-16 08:50:44 +02:00
Andy_kl 32c8fc4fbd Document attribute_filter in rst 2020-12-16 08:47:15 +02:00
Andy_kl f47010ac69 Merge remote-tracking branch 'upstream/master' into docs 2020-12-16 08:45:41 +02:00
Andy_kl cea1271f89 Add aliases to expressions to all_expressions 2020-12-16 08:30:09 +02:00
Andy_kl 677147d9f8 Fix misspelled attribute name 2020-12-16 08:22:20 +02:00
Tom Rothamel 744cd2a7b9 live2d: Add attribute_filter to allow conflicting attributes to be expressed. 2020-12-16 00:53:55 -05:00
Tom Rothamel 140c9e97d9 live2d: Add the attribute_function parameter.
This allows the attributes to be filtered and replace, as with
layeredimage.
2020-12-15 22:54:14 -05:00
Andy_kl 927e1fd7ee Update Russian translation 2020-12-16 03:49:27 +02:00
Moshibit de7304b90d Update Spanish translation 2020-12-15 10:24:21 -06:00
Moshibit 139fe130f1 Update Spanish translation 2020-12-15 10:20:41 -06:00
Moshibit b006c1d259 Merge pull request #2 from renpy/master
Update from renpy Master
2020-12-15 10:18:19 -06:00
Tom Rothamel e4ffd6f74f doc: The licensing page moved. 2020-12-15 00:02:54 -05:00
Tom Rothamel 42dacb4c22 steam: Add config.steam_appid.
This writes steam_appid.txt before initializing Steam, meaning it's
no longer necessary to do that by hand when changing games.
2020-12-14 22:15:08 -05:00
Tom Rothamel 4f0a39ee0b steam: Convert steam support to DLC. 2020-12-14 20:55:28 -05:00
Tom Rothamel de2e51bbb9 Distribute the steam files separately. 2020-12-14 01:31:14 -05:00
Tom Rothamel f973a4f6f0 steam: Add some new functions.
* get_app_build_id (Steam build id.)
* get_game_badge_level (Badge level.)
* get_subscribed_items (Get list of UGC.)
* get_subscribed_item_path (Get path to UGC.)
2020-12-13 18:25:01 -05:00
Tom Rothamel cb68be04ec live2d: A mask's alpha shouldn't apply to layers the mask is applied to.
Fixes #2492.
2020-12-11 22:52:37 -05:00
Tom Rothamel b116aad133 doc: Update changelog. 2020-12-11 22:49:58 -05:00
Tom Rothamel fe8044cae6 Raise the minimum supported version to Windows Vista. 2020-12-10 23:09:36 -05:00
Tom Rothamel 040ec21294 live2d: Support sustaining motions.
This takes place automatically. If the list of motions isn't changed,
we enable sustain mode, which does not restart the motions.
2020-12-09 01:07:46 -05:00
Tom Rothamel fcf379496b Revert "Allow config.exception_handler to be False."
Doesn't seem to work with a debugger, so back it out.
2020-12-08 19:08:48 -05:00
Tom Rothamel 5e997138c5 Allow config.exception_handler to be False.
This allows exceptions to be handled by a debugger or other tool.
2020-12-08 17:54:11 -05:00
Tom Rothamel cfb2ef1fd5 live2d: Support fading expressions. 2020-12-07 22:41:48 -05:00
Gouvernathor c8fdec4ee6 Update translation.rst 2020-12-07 22:33:21 +01:00
Andy_kl c3df28ac6c Doc fixes 2020-12-07 05:04:52 +02:00
Tom Rothamel 98243a5110 Make the updater write \r\n. 2020-12-05 19:00:36 -05:00
Tom Rothamel 5771e1f322 live2d: Fix drawing multi masks. 2020-12-05 18:24:20 -05:00
Tom Rothamel 6a4d13c674 live2d: WIP create multimask textures. 2020-12-04 23:00:02 -05:00
Tom Rothamel 3abf249824 live2d: Add mask shaders in a way that fixes alpha shaders.
Per point 2 of #2486.
2020-12-03 23:08:06 -05:00
Tom Rothamel 6d45437cc9 Clear the line cache on startup.
This ensures that error messages are always accurate.
2020-12-03 02:13:14 -05:00
Andy_kl fdac6e10e2 Implement config.quit_callbacks 2020-12-03 02:40:22 +02:00
Andy_kl ab5698d57f Fix warp
https://lemmasoft.renai.us/forums/viewtopic.php?p=536868#p536868
2020-12-02 18:40:42 +02:00
Tom Rothamel f40dce8367 Use a different statement name for characters with a false condition.
Fixes #2483.
2020-12-01 01:37:11 -05:00
Tom Rothamel 44646f27bd Fix regression in window auto. 2020-12-01 01:29:31 -05:00
Tom Rothamel 32ede9f928 Disable config.hw_video by default.
It probably isn't enough of a performance improvement to be worth
the pain of dealing with it.
2020-11-30 22:27:45 -05:00
Andy_kl eb54143fc9 Blacklist added WeakSet to backup 2020-11-29 21:30:15 +02:00
Andy_kl 33ac3e05a7 Document config.profile_init 2020-11-29 21:19:05 +02:00
Andykl 17c55b6a6d Update docs about MultiPersistent limitations on mobile 2020-11-29 20:55:41 +02:00
Andy_kl 54d7fd2c6f Add MultiPersistent save_on_quit feature 2020-11-29 20:20:54 +02:00
Tom Rothamel 4dc613990e Fix use of set operations on a list:
https://lemmasoft.renai.us/forums/viewtopic.php?p=536757#p536757
2020-11-29 12:10:05 -05:00
Andy_kl a302a14aa8 Report MultiPersistent unpickle errors 2020-11-28 12:34:44 +02:00
Tom Rothamel b90ead1dba Store the projects directory in multipersistent.
As a hedge against it being lost if Ren'Py upgrades.
2020-11-27 18:24:22 -05:00
kyouryuukunn 0a68c05fdc Merge pull request #2482 from kyouryuukunn/Japanese_201115
Japanese 201115
2020-11-27 15:11:14 +09:00
kyouryuukunn 2cd7054645 fix conflict 2020-11-27 15:06:57 +09:00
Paul J. Martinez f3b0dbba3b Update show statement documentation 2020-11-26 12:12:30 -08:00
Tom Rothamel bacaf5629a Fix fsencoding for the json dump. 2020-11-26 02:24:00 -05:00
Tom Rothamel db991e2400 Automatic cleanup of translations. 2020-11-25 22:10:45 -05:00
Tom Rothamel 0fad59626b doc: Update changelog. 2020-11-25 22:05:02 -05:00
Tom Rothamel e080cd3eab Merge pull request #2471 from Neoteus/master
Translate tutorial game into simplified Chinese
2020-11-25 21:55:04 -05:00
Tom Rothamel fcf85a59b7 Change _choose_attributes to take lists of attributes.
This preserves the order of attributes that the creator gave, which
is important for something like live2d, where this order matters.

Fixes #2477.
2020-11-25 21:47:04 -05:00
Tom Rothamel f25ab898c6 doc: Fix typo. 2020-11-25 21:47:04 -05:00
Andy_kl 433721e0c9 Fix interface of NullMotion 2020-11-25 10:44:09 +02:00
Tom Rothamel 4a1a3e13ba gl2: Ensure that a polygon's winding is correct before it's used.
Ren'Py requires that polygons used for clipping meshes or other
polygons all have the same winding order. (Counterclockwise,
in the usual Ren'Py coordinate system.) Certain matrix
multiplications can change winding order, and hence prevent
intersection from working.

This adds a pass that checks and fixes winding orders before
an intersection can occur.

Fixes #2472.
2020-11-25 02:13:15 -05:00
Tom Rothamel ab3ac5c308 Add the optimize_bounds argument to image.
This provides a way to avoid optimizing image bounds when a
transparent image is used as part of a texture.
2020-11-24 23:42:18 -05:00
Andykl 73190423cd Merge pull request #2476 from RenpyRemix/patch-2
Correct Live2D aliases example
2020-11-24 21:53:28 +02:00
Remix 613ea8d865 Correct Live2D aliases example
Parameter name was slightly wrong
2020-11-24 19:26:14 +00:00
Tom Rothamel 9f74bf00a0 Give appropriate styles to textbutton and mousearea.
Fixes #2475.
2020-11-23 22:11:41 -05:00
Tom Rothamel 157921a738 doc: Fix confusing language. 2020-11-23 20:17:13 -05:00
Tom Rothamel 2fe861ddde Remove a debug print. 2020-11-23 20:16:47 -05:00
Tom Rothamel 77c96aec88 compat: Add the python_strict codec error handler.
This is the strict handler built into Python, and it's used for
finding errors in Ren'Py script files. (This works around the
patch to Python 2.7 that makes surrogateescape the de-facto
default.)
2020-11-22 23:03:29 -05:00
Tom Rothamel dfd43a5232 Avoid using replace error handling when surrogateescape will work. 2020-11-22 21:06:01 -05:00
Andy_kl d0dba4d2a7 Fix doc typo 2020-11-22 12:40:43 +02:00
Andy_kl b448d7d373 Fix regression of a9d2510f 2020-11-22 05:54:44 +02:00
Tom Rothamel 32655acbf4 Allow Ren'Py to start with more path encoding problems. 2020-11-21 21:03:40 -05:00
Tom Rothamel afcb5c3bc3 Update hardware accelerated video playback. 2020-11-20 21:45:58 -05:00
Tom Rothamel c2f1d7af1d doc: Fix a bad copy in RemoveFromSet. 2020-11-20 20:57:06 -05:00
Tom Rothamel af02a36b80 doc: Fix minor issues. 2020-11-19 00:35:51 -05:00
Tom Rothamel 2428c116f6 transform: Create meshes in their own render.
This prevents the creation of a mesh with an offset, which is easy
to do with rotate. This might be something I want to revisit for
performance reasons, but this is required to fix:

   https://lemmasoft.renai.us/forums/viewtopic.php?p=535958#p535958
2020-11-18 23:44:12 -05:00
Neoteus 8f4c65ad91 master 2020-11-19 10:32:27 +08:00
Tom Rothamel ddfac9f43d Terminate the TTS process when quitting Ren'Py.
Fixes #2470.
2020-11-18 17:37:44 -05:00
Andy_kl d4e9c54eb8 Newer mark FileDelete as selected
Fixes #2120
2020-11-18 12:07:34 +02:00
Tom Rothamel d65cccc804 Add a temporary custom mouse cursor.
This is to get testing feedback from users of 7.4 prereleases.
2020-11-18 02:45:21 -05:00
Tom Rothamel 1d9109289d Propagate Render.over to subsurfaces.
Fixes #2451.
2020-11-18 00:40:31 -05:00
Tom Rothamel a62c1a57db Merge pull request #2462 from Gouvernathor/fitWithNoSize
Enable the fit mechanism whenever the fit property is set
2020-11-17 22:46:07 -05:00
Andy_kl 090ca5f8dc Add preference to use system cursor forcefully. 2020-11-17 03:56:58 +02:00
Tom Rothamel ac0dd6e361 Rewrite mouses with a new version based on SDL_CreateColorCursor.
This should be hardware accelerated, and simplifies a lot of
things.
2020-11-15 22:45:28 -05:00
kyouryuukunn 8e267b86bb Japanese Update 201115 2020-11-16 00:43:41 +09:00
Tom Rothamel a7a0df9139 layeredimage: Fix last commit. 2020-11-14 21:08:30 -05:00
Tom Rothamel a9d2510ff3 layeredimage: Only create the transform if it's needed. 2020-11-13 23:00:49 -05:00
Tom Rothamel 73217df243 Merge pull request #2460 from Gouvernathor/layeredTPropFix
fix layeredimages to take any transform property
2020-11-13 22:51:10 -05:00
Tom Rothamel 9d2ce44082 Use the correct layer in renpy.predict_show. 2020-11-13 02:14:26 -05:00
Tom Rothamel 1ad6149e28 Predict temporary attributes. 2020-11-12 23:24:01 -05:00
Tom Rothamel 2c1c1e7a45 Predict character attributes with renpy.exports.predict_show.
This predicts the displayables, not just the attributes as
images.predict_show does.
2020-11-12 22:35:49 -05:00
Tom Rothamel 36a17a7075 Add renpy.set_tag_attributes.
This is intended to be able to set the attributes associated with
a tag for side image purposes.
2020-11-11 23:17:19 -05:00
Tom Rothamel 6c00ea8dc2 sl2: Compile properties with py2 or py3 flags, as appropriate.
This fixes an error that was caused by:

   screen test():
       text "Test" xalign 1/1

   Which is on the left in py2, but on the right in py3.
2020-11-11 00:09:20 -05:00
Tom Rothamel 32b48e4c01 Merge pull request #2461 from Moshibit/master
Update Spanish translation
2020-11-10 22:41:09 -05:00
Gouvernathor 8612367069 Enable the Fit mechanism when fit is set
if `fit` is set but not `xsize` nor `ysize`, execute the fit algorithm but with the available size instead
2020-11-11 04:00:29 +01:00
Moshibit 9d4556ad2e Update launcher.rpy 2020-11-10 06:14:07 -06:00
Moshibit abca57a368 Update spanish translation 2020-11-10 06:07:34 -06:00
Moshibit bfc1d11b5d Merge pull request #1 from renpy/master
update from renpy master
2020-11-10 06:03:18 -06:00
Tom Rothamel c224293073 live2d: Add seamless looping of live2d motions.
This allows the creator to chose if a motion is faded out between
loops, or continues without fadeouts.
2020-11-09 21:33:03 -05:00
Asriel Senna 271f0274e8 fix layeredimages to take any transform property 2020-11-09 23:36:01 +01:00
Tom Rothamel 66be396d16 live2d: Add platform support disclaimers. 2020-11-09 00:30:13 -05:00
Tom Rothamel 89fa40d2ef live2d: Install android libraries. 2020-11-08 23:39:04 -05:00
Tom Rothamel 2d9b1971f9 gl2: Fix the interaction of config.gl2 and error handling.
* Once a rendererer is selected, keep using it even if Ren'Py is restarted.
* Store config.gl2 in persistent._gl2, and restore it if an error happens.

This should work well except for an autreload where config.gl2 is changed,
which ideally shouldn't happen.

Fixes #2457.
2020-11-08 15:02:21 -05:00
Tom Rothamel 0046d7059e Add ADVCharacter.has_character_arguments.
This can be used to determine if ADVCharacter.__call__ will create
a second Character to process the call.

Fixes #2454.
2020-11-07 23:20:30 -05:00
Tom Rothamel 2acdcfec77 compat: Replace the strict encoding with surrogateescape.
This is designed to fix a number of problems caused when running
on a filesystem in which a path is not representable in utf-8.
There are functions, like os.getcwdu that will attempt to decode
these paths, but fail. This ensures that paths can always round-trip
to and from unicode, which should help things work.
2020-11-07 11:19:12 -05:00
Tom Rothamel 9d9f151c08 Merge pull request #2439 from uyjulian/exports_free_memory_do_gc
Add garbage collection to renpy.exports.free_memory
2020-11-06 19:57:29 -05:00
Tom Rothamel 542c38a6d9 live2d: Render mask textures at drawable size.
This improves performance by never making a texture many times larger
than will be actually drawn on the screen.

Fixes #2449.
2020-11-05 22:39:55 -05:00
Tom Rothamel 1ace0c51db live2d: Only reset the live2d common data after init. 2020-11-04 21:07:10 -05:00
Tom Rothamel f6e71e9800 Merge pull request #2435 from Gouvernathor/imdocadvice
Adding im and im.MatrixColor workarounds in documentation
2020-11-03 19:37:27 -05:00
Gouvernathor 794803a05c Added warning about matrix multiplying orders 2020-11-03 23:53:36 +01:00
Andykl 808e29e1f1 live2d: Make default fadein and fadeout equal 1 second.
This corresponds to the source code of the Cubism SDK for Native.
2020-11-03 22:27:13 +02:00
Tom Rothamel e613ee334a Update the licenses to include requests. 2020-11-02 23:18:12 -05:00
Tom Rothamel cf0ab07936 Update the changelog. 2020-11-02 22:46:34 -05:00
kyouryuukunn b2b605e631 Merge pull request #2447 from kyouryuukunn/Japanese_translation_update_201103
Update Japanese translation
2020-11-03 10:27:10 +09:00
kyouryuukunn bd5beb5d78 Update Japanese translation 2020-11-03 10:24:08 +09:00
Tom Rothamel 6f6fc15e7e gl2: Limit the range of u_time to [0, 86400).
This prevents errors caused by it overflowing the range of a
single precision float.
2020-11-01 23:39:39 -05:00
Tom Rothamel 8f9e072c37 macOS build improvements
* Make CFBundleVersion more readable.
* Add build.mac_info_plist, to provide a more straightforward way
  of customizing Info.plist, which lets the about screen be customized.

Fixes #2443.
2020-11-01 10:43:08 -05:00
Tom Rothamel 67b8ec26fe launcher: Move to using certifi for web certificates. 2020-11-01 09:39:38 -05:00
Tom Rothamel e1b45708d1 Include the script in dialogue.tab.
Fixes #2441.
2020-10-31 23:15:03 -04:00
Andykl cd833707ce Fix attribute typo 2020-11-01 01:37:41 +02:00
Andykl e28442e37b Do not use config window size to calculate max_window_size.
Fix #2108
2020-10-31 22:44:31 +02:00
Andykl f7a09712d2 Fix #2406 also for gl1 2020-10-31 22:01:33 +02:00
Tom Rothamel 21085ab1b1 gl2: Remove debug prints. 2020-10-30 20:48:26 -04:00
Tom Rothamel ec853941c8 Defer gui init until the first frame is ready to be shown.
This makes it possible to run commands like lint
and distribute without needing a gui and sound card.

Fixes #2436.
2020-10-30 20:42:09 -04:00
uyjulian a8dbeae1e4 Add garbage collection to renpy.exports.free_memory 2020-10-30 17:56:20 -05:00
Andykl 4afd2d022b Update Russian translation 2020-10-30 21:12:04 +02:00
Andykl 1de1402452 Show game_menu_screen as transient
Without it on "hide" doesn't work for this screen.
2020-10-30 20:22:28 +02:00
Gouvernathor 9c4a579a3a fixed :ref: into :tpref:
because that's how it works
2020-10-30 13:38:14 +01:00
Andykl 6354f5cf68 Merge pull request #2434 from xavi-mat/master
Typos in Spanish translation
2020-10-30 14:03:33 +02:00
Asriel Senna 76e03b3c36 added workarounds (except for Data and AlphaMask) 2020-10-30 12:29:26 +01:00
xavi-mat b00b3e4cbc Typo
"dilogo" -> "diálogo"
2020-10-30 10:06:43 +01:00
xavi-mat 255883d418 Typo
"dilogo" -> "diálogo"
2020-10-30 10:05:59 +01:00
xavi-mat 211e7387de Typo in Spanish translation
"dilogo" -> "diálogo"
2020-10-30 10:05:14 +01:00
Tom Rothamel a71e42adf6 Merge pull request #2430 from zedraxlo/patch-1
Localization updates for Chinese, Oct 2020
2020-10-29 21:27:29 -04:00
Tom Rothamel eba2135f92 Merge pull request #2431 from zedraxlo/patch-2
Update Translations for The Question
2020-10-29 21:27:09 -04:00
Tom Rothamel f3698fd1c3 Merge pull request #2432 from Gratusfr/patch-1
fix typo +remove double space +fix error in french
2020-10-29 21:26:43 -04:00
Gratusfr a866be7601 fix typo +remove double space +fix error in french 2020-10-29 21:24:50 -04:00
zedraxlo fdfba28528 Update script.rpy 2020-10-29 20:21:43 +08:00
zedraxlo 81a50341a2 Add some missing required characters and remove some useless ones. 2020-10-29 19:27:42 +08:00
zedraxlo 40caecf6b1 Update developer.rpy 2020-10-29 19:25:32 +08:00
zedraxlo d77868b40a Update error.rpy 2020-10-29 19:25:08 +08:00
zedraxlo f15088d64e Update error.rpy 2020-10-29 19:22:46 +08:00
zedraxlo 17613b92f2 Update launcher.rpy 2020-10-29 19:20:35 +08:00
Tom Rothamel 32e1871083 doc: Fixes. 2020-10-28 19:54:41 -04:00
Tom Rothamel b66f2add13 doc: License/Credits/Sponsors. 2020-10-28 19:38:44 -04:00
Tom Rothamel c274389926 dist: Change what is checked in. 2020-10-28 19:27:33 -04:00
Tom Rothamel 3d87900bb9 doc: windows -> Windows. 2020-10-28 19:12:42 -04:00
Tom Rothamel 7e0ec7cc1f doc: Various fixes. 2020-10-28 18:52:57 -04:00
Tom Rothamel a1c9b7d2c0 Document the changes to define. 2020-10-28 18:08:52 -04:00
Tom Rothamel 251d4a06e9 Update the Chrome OS documentation. 2020-10-27 23:57:44 -04:00
Tom Rothamel db08119e3a emscripten: Avoid sleeping outside of emscripten.sleep.
Sleeping inside Ren'Py or Pygame_SDL2 has been proving to be
problematic. I'm not 100% sure why, though it seems Asyncify is
involved. It may have something to do with the names generated
by cython not being stable, though that's just a guess.

This avoids this problem by preventing Ren'Py from putting
SDL2 into a mode where it can block, and then explicitly
calling emscripten.sleep to emulate the original behavior.
2020-10-26 01:52:33 -04:00
Tom Rothamel 5310ea546a gl2: Avoid trying to create mipmaps for a texture with zero width or height. 2020-10-26 01:52:33 -04:00
Tom Rothamel 90ef8bfe29 Merge pull request #2417 from Andykl/allow_underfull
Allow underfull grids
2020-10-23 20:30:36 -04:00
Tom Rothamel 3e3492108a Fix typo in tkaskdir.
Fixes #2416.
2020-10-22 22:11:15 -04:00
Tom Rothamel 10d1c66ee7 Only offer to let the player select renderers that are likely to work. 2020-10-22 00:58:27 -04:00
Tom Rothamel 7113e04b00 Update the display problems documentation. 2020-10-21 23:36:02 -04:00
Tom Rothamel edb06a3d54 Remove the disclaimer, as it's not needed. 2020-10-21 23:33:51 -04:00
Andykl 19ac9353f2 Allow underfull grid with config variable. 2020-10-21 17:58:44 +02:00
Tom Rothamel c8e45d6ce1 gl2: Disable anisotropic rendering for Pixellate.
This works around a bug that appears to manifest in the angle2
renderer when running on my radeon on Windows. When that bug
happens:

* GL_NEAREST_MIPMAP_* does not work when ANISOTROPY is non-zero.
* Setting the texture anisotropy to zero doesn't work when it has
  been set to non-zero.

Hence, there's a new gl property that, when set, prevents anisotropy
from being added to newly-created textures.
2020-10-21 01:40:54 -04:00
Tom Rothamel ced93140af ffmedia: Fix a mutex issue. 2020-10-20 23:59:34 -04:00
Tom Rothamel 5945fd6854 Autobuild sphinx. 2020-10-20 22:34:06 -04:00
Tom Rothamel fcb931bf0e Merge pull request #2414 from Moshibit/master
update spanish translation for launcher
2020-10-19 19:22:08 -04:00
Moshibit 3f34fc06e4 Update launcher.rpy 2020-10-19 16:40:03 -05:00
Moshibit bab03e4633 update spanish translation for launcher 2020-10-19 16:33:11 -05:00
shawna-p b6924da5f8 Pull Request #2411: Allow grids to be underfull 2020-10-18 20:41:20 -04:00
shawna-p 22a4898a43 Add documentation on allow_underfull 2020-10-18 20:41:20 -04:00
shawna-p 2b3892d1c6 Include renpy. before config 2020-10-18 20:28:14 -04:00
shawna-p b40e090a8f Allow underfull grid with config variable. 2020-10-18 20:26:26 -04:00
Tom Rothamel 4b0849723b ffmedia: Wait for threads and deallocate memory in the main thread.
This is per #2400, see the discussion on that thread.
2020-10-18 18:55:39 -04:00
Tom Rothamel 806b081080 Merge pull request #2409 from joshua-stone/gtk-filepicker-support
Add Gtk support for project directory chooser
2020-10-18 16:50:10 -04:00
Tom Rothamel 8090186df5 Merge pull request #2397 from uyjulian/garbage_collection_related_changes
Garbage collection related changes
2020-10-18 16:49:22 -04:00
Joshua Stone 3c43cfdcb4 Revert "Add mention of PyGObject in error dialog for English version of directory chooser."
This reverts commit 5a11ff8c3a.
2020-10-18 16:48:00 -04:00
Tom Rothamel b4a56f9cce Merge pull request #2399 from uyjulian/realloc_check_null
Check return value of realloc
2020-10-18 16:04:36 -04:00
Tom Rothamel 5cd7387128 Merge pull request #2408 from jackmcbarn/patch-2
Make the module-building instructions more portable
2020-10-18 15:54:43 -04:00
Tom Rothamel dc27b2281d Merge pull request #2410 from jsfehler/patch-2
Fix incorrect docstring for Screen class in ast.py
2020-10-18 15:52:31 -04:00
Joshua Fehler 1c5fcd440f Fixup 2020-10-18 15:51:38 -04:00
Joshua Fehler 856663b9d7 Fix incorrect docstring for Screen class in ast.py 2020-10-18 15:38:08 -04:00
Joshua Stone 5a11ff8c3a Add mention of PyGObject in error dialog for English version of directory chooser. 2020-10-17 22:44:08 -04:00
Joshua Stone 9709bec1fb Add Gtk backend to project directory picker
Despite Tkinter being Python's de-facto GUI library, it's often not
installed by default on Linux distributions. PyGObject has very good
support on the other hand, and has the benefit of accessing the native
file picker available on a desktop through Gtk.FileChooserNative. This
commit will have the directory picker attempt to use the Gtk directory
picker first, or else fall back to the tkinter backend.
2020-10-17 22:10:24 -04:00
Tom Rothamel 9620fd9cf6 doc: Screen caveats.
Per #2404.
2020-10-17 21:58:15 -04:00
Tom Rothamel e98d7cb0db doc: Cautions about layeredimage. 2020-10-17 21:53:08 -04:00
jackmcbarn fdf92229ea Make the module-building instructions more portable
Some systems don't have libjpeg-turbo8-dev, and need libjpeg62-turbo-dev instead. Use the libjpeg-dev metapackage like https://github.com/renpy/pygame_sdl2/blob/master/README.rst does, which seems to work everywhere. Also, use `$(uname -m)` instead of hardcoding `x86_64` so the same instructions work on ARM systems too.
2020-10-17 16:30:06 -04:00
Tom Rothamel be542024a0 Merge pull request #2407 from Mason-Chou/master
added linking to the nighly build renpy.sh in after_checkout.sh
2020-10-16 18:00:59 -04:00
Mason Chou 16d14f7daa added linking to the nighly build renpy.sh 2020-10-16 10:51:30 -07:00
Tom Rothamel 72b13fdf47 Fix crash when physical size not set.
Fixes #2406.
2020-10-15 17:44:26 -04:00
Tom Rothamel c8fc9f31e6 gl2: Ensure textures are at least 1x1 virtual pixels.
Fixes a divide by zero.
2020-10-14 22:01:54 -04:00
Tom Rothamel cf5c7e2244 doc: Fixes for save/load. 2020-10-14 21:59:40 -04:00
Tom Rothamel c8f1f20b51 gl2: Subsurface meshes using the clipping method.
This fixes #2403, but also opens up some new space for shaders.
Peviously, we'd subsurface the children of a Render with mesh=True,
which would change the coordinates.

Now, the children are not cropped, which allows a shader to look up
value in a second child, if needed.
2020-10-13 23:07:01 -04:00
Tom Rothamel ddf6e0ca82 Remove obsolete code. 2020-10-13 22:07:03 -04:00
Tom Rothamel b5c6685a1e gl2: Ensure loaded textures are at least 1px in size.
Fixes #2392.
2020-10-12 20:25:32 -04:00
Andykl 03b0d8a2e3 Merge pull request #2402 from jsfehler/jsfehler-ach-doc
Fix variable formatting in achievement.rst
2020-10-12 03:05:38 +02:00
Andykl 1ee4b25137 Merge pull request #2401 from jackmcbarn/patch-2
Link to how the default transform can be redefined
2020-10-12 03:04:58 +02:00
Joshua Fehler c28b68f6e8 Fix styling error in achievement.rst 2020-10-11 19:40:50 -04:00
Tom Rothamel 723d6d85ae Fix issues with distributing mac apps. 2020-10-11 18:17:37 -04:00
jackmcbarn c873ea2a74 Link to how the default transform can be redefined 2020-10-11 13:53:58 -04:00
uyjulian 57291f6050 Check return value of realloc 2020-10-11 10:48:00 -05:00
uyjulian 941c1f092c Add more instances of gc.garbage list cleanup after gc.collect call 2020-10-11 09:14:13 -05:00
uyjulian 87eee813d5 Delete items in gc.garbage instead of assigning empty lists 2020-10-11 09:02:36 -05:00
Tom Rothamel ee911b356a doc: Add Python types to GLSL types. 2020-10-11 02:38:28 -04:00
Tom Rothamel 919edc454e doc: Integrate Live2D documentation. 2020-10-11 02:34:51 -04:00
Tom Rothamel 9c51711a61 doc: Matrixcolor/ColorMatrix. 2020-10-11 02:26:31 -04:00
Tom Rothamel bf017fd311 doc: The Matrix type. 2020-10-11 01:45:51 -04:00
Tom Rothamel 34e9d96aeb atl: Do not interpolate Matrix. 2020-10-11 01:44:26 -04:00
Tom Rothamel c7365598cc doc: Run with the dev Ren'Py, to get docstrings. 2020-10-11 01:43:31 -04:00
Tom Rothamel 2a1114f4f2 doc: Fix various problems. 2020-10-11 00:21:17 -04:00
Tom Rothamel 9b3417d26a doc: Model-based rendering. 2020-10-11 00:09:07 -04:00
Tom Rothamel 2a4e6a8cbc gl2: Make u_model_size available. 2020-10-10 23:18:04 -04:00
Tom Rothamel 048cd10234 doc: Improve shader generation. 2020-10-10 23:13:49 -04:00
Tom Rothamel ab4083b9fe Allow ATL to interpolate ATL tuples. 2020-10-10 23:04:41 -04:00
Tom Rothamel 40aeb21fa8 doc: Generate shader source code. 2020-10-10 18:50:40 -04:00
Tom Rothamel 9d1129c6b8 Set sys.executable to allow for a launch. 2020-10-10 00:42:53 -04:00
Tom Rothamel 4dc7f7446c Remove a use of the ssl module. 2020-10-10 00:34:39 -04:00
Tom Rothamel c21ba83c95 Make all downloads use a certificate-based TLS context. 2020-10-09 20:11:46 -04:00
Tom Rothamel aaf9398a77 Update cacert.pem. 2020-10-09 20:09:11 -04:00
Tom Rothamel 3005173aba Merge pull request #2393 from shawna-p/master
Relocate order_reverse property to Box Style Properties
2020-10-09 19:54:02 -04:00
Tom Rothamel df9049ce10 Merge pull request #2395 from cheriesdavidson/patch/#2394
Resolves #2394 Itch.io butler download 403 failure
2020-10-09 19:53:45 -04:00
Andykl 5fbcd47d79 Pass SpriteManager to Particles.visit
This fix #2211
2020-10-10 00:55:06 +02:00
Cherie Davidson d8130812ce Resolves #2394 Itch.io butler download 403 failure by adding User-Agent header 2020-10-09 17:40:50 +11:00
Tom Rothamel 88459be31b Add the color_mask gl property.
This exposes glColorMask to the world.
2020-10-08 23:29:42 -04:00
Tom Rothamel 455a940f96 gl2: Infrastructure for ATL GL properties. 2020-10-08 23:29:42 -04:00
Andykl 1fbcd7e682 Fix exe distributing 2020-10-09 04:36:34 +02:00
shawna-p 046ffcd3ca Relocate order_reverse property to Box Style 2020-10-08 13:16:15 -04:00
Tom Rothamel d2e033e828 Make {who,what}_prefix translatable.
Fixes #2387.
2020-10-06 23:21:12 -04:00
Tom Rothamel 0c9dc1dcf5 Allow translation names to include numbers.
Making it possible to generate rot13 from the launcher.
2020-10-06 23:14:16 -04:00
Tom Rothamel b11ce51bae Fix updater regression introduced by #2375.
In 2.7, TarFile.extractfile doesn't seem to return an object that
can manage contexts.
2020-10-05 23:14:46 -04:00
Tom Rothamel d67eee36ae Write tracebacks into binary files.
This prevents a crash when a str is used instead of unicode.
2020-10-05 23:02:47 -04:00
Tom Rothamel 4677ce1bec Display the renderer name on the _performance screen. 2020-10-04 23:01:27 -04:00
Tom Rothamel 0da3312ae4 gl2: Use glGenerateMipmap to generate mipmaps.
This should be present everywhere Ren'Py runs, and experiments show
it is much faster than RTT on the Intel Iris graphics present in my
Mac Mini.
2020-10-04 22:45:52 -04:00
Andykl c048483216 Added pretty repr for traced expressions 2020-10-05 03:43:25 +02:00
Andykl 51718558e5 Add pretty repr of Matrix into console 2020-10-05 02:01:35 +02:00
Andykl 02387f9986 Fix name typos in TintMatrix 2020-10-05 01:21:06 +02:00
Tom Rothamel 1abf877daf Merge pull request #2384 from kobaltcore/fix-tertiary-volume
Fix a bug that would cause the secondary volume to reset in some cases
2020-10-04 18:38:02 -04:00
CobaltCore 359f38d37e Compute actual volume on-demand instead of introducing a new field 2020-10-05 00:25:13 +02:00
CobaltCore 712b92b98e Fix a bug that would cause the secondary volume to reset in some cases
Fixes #2383
2020-10-04 23:49:12 +02:00
Tom Rothamel 58c02c9a39 Preserve the quoting of text tags in renpy.filter_text_tags.
Fixes #2379.
2020-10-03 18:51:14 -04:00
Andykl 8834730831 Merge pull request #2382 from shawna-p/master
History entries properly identify kind as nvl
2020-10-03 19:39:38 +02:00
shawna-p 3edc87c678 History entries properly identify kind as nvl 2020-10-03 11:02:00 -04:00
Tom Rothamel 5b92e525eb Merge pull request #2381 from Andykl/l2d-fix
Fixes for Live2D
2020-10-03 10:55:22 -04:00
Andykl 4ac1875ebd Fixes for Live2D 2020-10-03 16:08:41 +02:00
Tom Rothamel 682a052ac9 id: Only consider nodes that participate in rollback. 2020-10-03 01:07:36 -04:00
Tom Rothamel fb105e2561 live2d: Properly handle nonexclusive. 2020-10-02 21:56:49 -04:00
Andykl 1b68fec94b Don't lose transform crop when rotate is 0
This fix #2099
2020-10-03 03:52:58 +02:00
Tom Rothamel bdc3c8b67a Merge pull request #2376 from GiovanH/master
Option to specify transition in ShowMenu (for #2194)
2020-10-01 21:42:37 -04:00
Gio c430318af4 Polished documentation 2020-10-01 20:37:38 -05:00
Gio 576489e63a Much less breaking 2020-10-01 20:31:19 -05:00
Gio 7fb42306a5 Be slightly less breaking? 2020-10-01 20:17:11 -05:00
Gio 9a74b6b2dc Implement #2194 2020-10-01 20:03:59 -05:00
Tom Rothamel 9133584b50 Compat for window functions setting auto. 2020-09-30 23:55:34 -04:00
Tom Rothamel b66cf5d623 Provide Python eqivalents of window auto show and window auto hide. 2020-09-30 22:36:23 -04:00
Sylvain Beucler 489b7fb98b doc: fix and expand RenPyWeb changelog 2020-09-30 17:17:00 +02:00
Tom Rothamel d7f520a5c0 Do not create a mesh if blur is 0. 2020-09-29 23:52:01 -04:00
Andykl b1154a29ef Store MultiPersistent data on Android and iOS in savedir 2020-09-29 03:27:14 +02:00
Tom Rothamel 3b12463198 Merge pull request #2375 from uyjulian/renpy_file_context_manager
Refactor to use context manager
2020-09-28 20:38:54 -04:00
Tom Rothamel bf87bd6ed1 Merge pull request #2373 from kobaltcore/doc-presplash-progress-bar
Document presplash progress bar
2020-09-28 20:33:57 -04:00
Tom Rothamel be9485d2ca Merge pull request #2374 from kobaltcore/gitignore-additions
GitIgnore: Ignore several undesirable system files on macOS and Windows
2020-09-28 20:33:23 -04:00
Andykl 152c56841b Add proxy of matrixcolor transform property 2020-09-28 23:12:39 +02:00
Tom Rothamel c1a628d7fa Dismiss transitions even when focus is blocked. 2020-09-28 12:45:46 -04:00
Tom Rothamel d7ae1a96cc Fix the dismiss_unfocused argument to SayBehavior. 2020-09-28 12:45:46 -04:00
uyjulian afd4a7a0e9 Refactor to use context manager 2020-09-27 18:58:10 -05:00
CobaltCore 86610c0ac7 Ignore several undesirable system files on macOS and Windows 2020-09-27 19:57:01 +02:00
CobaltCore 3589b63523 Document presplash progress bar 2020-09-27 19:49:53 +02:00
Andykl aa55ea744e Merge pull request #2372 from uyjulian/archive_extensions_listfind_opt
Optimization for checking archive extension
2020-09-27 18:15:56 +02:00
uyjulian c296c63b45 Optimization for checking archive extension 2020-09-27 04:49:33 -05:00
Andykl 9f412cb811 Do not leak reference to presplash surface
And small code cleanup
2020-09-27 00:35:16 +02:00
Tom Rothamel 1ba50f11da Allow ! to appear multiple times in a substitution.
For compatibility with older Ren'Py versions.
2020-09-26 16:46:24 -04:00
Tom Rothamel 84e95cce98 Remove debug prints. 2020-09-26 16:01:45 -04:00
Andykl ba874f59df Do not report defines with index or operator as duplicates 2020-09-26 12:39:32 +02:00
Tom Rothamel cf6409bf71 Merge pull request #1102 from jsfehler/master
Replace 'open()' with 'with open()'
2020-09-25 23:03:48 -04:00
Tom Rothamel c573d971cd Update loadsave.py
Tweak spacing.
2020-09-25 23:00:48 -04:00
Tom Rothamel 62c1eb80bf Merge branch 'master' into master 2020-09-25 22:59:05 -04:00
Tom Rothamel 24cc05d350 Remove raises found in #2601
Fixes #2601.
2020-09-25 22:47:00 -04:00
Tom Rothamel f8aee1f349 Merge pull request #2095 from Andykl/fix-slfor
Fix the problem when SL for index refers to tuple member
2020-09-25 22:44:12 -04:00
Tom Rothamel 479940302e Merge pull request #2092 from Andykl/fix-rpyc
Print exception which caused on write_rpyc
2020-09-25 22:40:29 -04:00
Tom Rothamel 99b9537321 Merge pull request #2094 from Andykl/recursive-substitution
Recursive substitution
2020-09-25 22:40:12 -04:00
Tom Rothamel 0ee0f5115c Merge pull request #2096 from Andykl/copypaste-encoding
Encode and decode the text during copypaste
2020-09-25 22:39:20 -04:00
Tom Rothamel eac2b9d6a9 Merge pull request #2107 from jsfehler/nvl_typo_fix
Fix typo in nvl_mode.rst
2020-09-25 22:38:13 -04:00
Tom Rothamel ec1cd63711 Merge pull request #2123 from kobaltcore/presplash-progress-bar
Add ability to show progress bar instead of static presplash
2020-09-25 22:37:53 -04:00
Tom Rothamel 5042706e1f Merge pull request #2103 from RenpyRemix/master
Catmull-Rom from ATL knots
2020-09-25 22:35:54 -04:00
Tom Rothamel fce5ccef34 Fix problems with define/default linting in default games. 2020-09-25 22:26:07 -04:00
Tom Rothamel 091b0115e5 Add config.lint_ignore_redefine. 2020-09-25 22:24:47 -04:00
Tom Rothamel 7c14d20914 Fix incorrect use of strip in #2127. 2020-09-25 22:05:45 -04:00
Tom Rothamel c04d188f81 Merge pull request #2127 from jsfehler/lint_redefine
Add linting for redefined define/default statements
2020-09-25 22:00:59 -04:00
Tom Rothamel d15384e091 Merge pull request #2124 from jsfehler/patch-2
Use or operator instead of if statement
2020-09-25 21:56:38 -04:00
Tom Rothamel b93102932a Merge pull request #2115 from GimmiRuski/master
Add splashscreen and presplash documentation
2020-09-25 21:55:00 -04:00
Tom Rothamel bf19eedde5 Merge pull request #2278 from dogtopus/handle-vs
Handle variation sequences (VS1-256 and FVS1-3)
2020-09-25 21:51:15 -04:00
Tom Rothamel f9fd77b70d Merge pull request #2304 from uyjulian/improve_file_handling
Refactor of renpy.loader
2020-09-25 21:47:23 -04:00
Tom Rothamel 2f52e4a62e Merge branch 'master' into improve_file_handling 2020-09-25 21:47:07 -04:00
Tom Rothamel 281104d1a9 Merge pull request #2327 from uyjulian/filename_unicode_normalization
Normalize unicode to NFC
2020-09-25 21:41:59 -04:00
Tom Rothamel 24ed8bb7cf Merge pull request #2360 from Andykl/update-performance-test
Update performance test
2020-09-25 21:38:46 -04:00
Tom Rothamel 73d76fb260 Merge pull request #2362 from kobaltcore/auto-flush-log
Flush log after write
2020-09-25 21:37:52 -04:00
Tom Rothamel e68d95750e Merge pull request #2370 from Andykl/py3-exceptions
Py3 exceptions form
2020-09-24 18:17:47 -04:00
Andykl d88a324e76 Py3 exceptions form 2020-09-24 23:41:40 +02:00
Sylvain Beucler af3495ca84 web: fix silent audio 2020-09-24 22:39:13 +02:00
Tom Rothamel 9e67d43daa Merge pull request #2258 from Daniihh/master
Python3 Readiness
2020-09-24 12:02:37 -04:00
Tom Rothamel a8e2cc0db8 gl2: Include the texture resolution as an optional shader variable. 2020-09-24 00:45:53 -04:00
Tom Rothamel 74d66712db gl2: Raise the size of the fbo to 4096, and make it configurable.
This should be supported on all devices, though it will shrink the
size if it's not.

Fixes #2357.
2020-09-23 23:40:57 -04:00
Tom Rothamel b61f1c6b3e live2d: Support nonexclusive expressions.
These need to be declared, but once they are they may be used
in conjunction with a normal expression. This can be used to
model clothing, pose changes, etc in conjunction with a normal
expression.

Fixes #2358.
2020-09-23 22:01:38 -04:00
Tom Rothamel 08c51b7c6a Make it clear the minimum iOS version is 11.0. 2020-09-23 18:37:35 -04:00
Tom Rothamel 0fa3f62ebf Merge pull request #2368 from Andykl/fix-blur
Fix int-float type in blur shader
2020-09-22 19:00:48 -04:00
Andykl c203dd3c58 Fix int-float type in blur shader 2020-09-22 23:15:32 +02:00
Tom Rothamel 68ed973bc5 gl2: Enable the maximum level of anisotropy the hardware supports.
Fixes #2365.
2020-09-20 21:49:20 -04:00
Tom Rothamel 6d2a550ba2 Merge pull request #2361 from Andykl/improve-dynamic-image
Improve dynamic image
2020-09-20 02:02:03 -04:00
Tom Rothamel b091f1e933 Merge pull request #2363 from Andykl/wrap-mutations
Do not lost `__name__` and `__doc__` of mutated method
2020-09-20 02:00:43 -04:00
Tom Rothamel c663d6a865 gl2: Ensure that the size used for RTT matches the size used for normal rendering. 2020-09-20 01:30:07 -04:00
Andykl 48c8b0bf8a Do not lost __name__ and __doc__ of method mutation 2020-09-19 22:57:56 +02:00
CobaltCore 4567011132 Flush log after write 2020-09-19 22:50:20 +02:00
Tom Rothamel 99cf7ed07e Add the blur transform property. 2020-09-19 16:13:40 -04:00
Tom Rothamel 1e62e1e9d1 atl: Report uniform problems that aren't working. 2020-09-19 03:50:40 -04:00
Tom Rothamel 83eded0697 gl2: Better reporting for bad shader variables. 2020-09-18 23:54:48 -04:00
Tom Rothamel 986e996282 gl2: Avoid modifying the original clipping polygon during clipping.
Fixes #2359.
2020-09-18 03:42:37 -04:00
Andykl 1b59f64a0c Improve dynamic image 2020-09-18 04:54:54 +02:00
Andykl dadc1eb08f Remove config.gl_enable from the documentation 2020-09-18 04:44:16 +02:00
Andykl 4d611b897f Update performance test 2020-09-18 04:42:56 +02:00
Tom Rothamel 7f26540252 Make elide_filename os-agnostic. 2020-09-17 19:38:33 -04:00
Tom Rothamel be5db83bd6 doc: Fixes to changelog and docs.
Based on conversations with Mal.
2020-09-16 22:36:06 -04:00
Tom Rothamel e71957863b gl2: Intersect the new clip polygon with the old clip polygon, if needed.
Fixes #2353.
2020-09-15 22:30:34 -04:00
Tom Rothamel b00a1afd3e Allow Live2D to be duplicated with None. 2020-09-14 22:36:55 -04:00
Tom Rothamel 322657e009 Default transform to "fill" mode all the time.
This restores the behavior that Ren'Py had before #2241 was
merged.
2020-09-14 22:12:47 -04:00
Tom Rothamel e2e35fb937 doc: Update changelog. 2020-09-13 13:00:00 -04:00
Tom Rothamel d97d378619 docs: More changelog. 2020-09-13 00:02:31 -04:00
Tom Rothamel 108d943439 doc: Initial work on changelog. 2020-09-12 18:13:43 -04:00
Tom Rothamel 48a4d4543f Merge pull request #2350 from Andykl/ignore-32
Ignore renpy-32.exe
2020-09-11 21:07:13 -04:00
Tom Rothamel bf2a8b4e8c Merge pull request #2352 from Andykl/hotfix
Hotfix
2020-09-10 19:57:07 -04:00
Andykl c424566868 Hotfix 2020-09-11 01:56:05 +02:00
Tom Rothamel 088da5357b Merge pull request #2210 from Andykl/SL-fixes
Sl fixes
2020-09-10 17:54:06 -04:00
Tom Rothamel b39365ecfc gl2: Use gl2 shading on GLES 3.
This prevents us from having to rewrite shaders for GLES 3,
and keeps them working on webgl 1.
2020-09-09 22:23:40 -04:00
Tom Rothamel dcc10c84cd gl2: Log shader text to log.txt. 2020-09-09 21:32:49 -04:00
Tom Rothamel 062c18d6db gl2: Use GLSL 3.00 ES for gles.
This allows textures to take lod bias.

This also avoids mixing ints and floats, which is an error.
2020-09-09 03:28:29 -04:00
Tom Rothamel f2d67621a2 live2d: Add support for expressions. 2020-09-09 03:13:12 -04:00
Tom Rothamel bc375377eb live2d: Load expression files. 2020-09-08 23:35:24 -04:00
Andykl ed16b42483 Ignore renpy-32.exe 2020-09-09 04:28:26 +02:00
Tom Rothamel 2663b852c0 live2d: Do not apply alpha to hidden masks.
This fixes a problem with the Haru sample model, where the masks
for her eyes were hidden and at 0 alpha, which mean that the masks
were not rendered, and hence couldn't be used.
2020-09-07 22:05:33 -04:00
Tom Rothamel 106e447a5e live2d: Add aliases. 2020-09-06 22:57:02 -04:00
Tom Rothamel 9a83bdf7a2 Remove debugging exception. 2020-09-06 19:57:42 -04:00
Tom Rothamel 00e1546cba Merge pull request #2334 from Andykl/hotkeys-fix
Add K_key keysyms to default Ren'Py keymap
2020-09-06 19:36:30 -04:00
Tom Rothamel dd2e25f8ae Flatten and increase the opacity of the touch keyboard.
Giving mesh True causes a flatten operation, which means that
the outline and top textures of the text become a single layer
before alpha is applied to it. Since alpha is applied once,
the colors are less murky, and we can raise the transparency
without reducing the amount of the background that shows through.
2020-09-06 00:02:24 -04:00
Tom Rothamel e8682a432b sl2: Fix an issue with changing the child of multiple Transforms.
Previously, only the outermost transform would be considered, and
inner transforms would go away. With this change, the child of
the innermost transform is changed, while the outermost transform
is placed in the displayable tree.
2020-09-05 23:48:51 -04:00
Sylvain Beucler e9bbbdb4d0 touch_keyboard: fix typo and alignment 2020-09-05 11:50:22 +02:00
Sylvain Beucler 2fb99f696d touch_keyboard: fix key injection on mobile browsers 2020-09-05 11:49:04 +02:00
Tom Rothamel 2b62b201cb Merge pull request 2336, Add built in simple virtual keyboard. 2020-09-05 03:05:04 -04:00
Tom Rothamel 51bc4c78e7 Make the buttons 10% bigger, and scaling with game size. 2020-09-04 23:39:27 -04:00
Tom Rothamel 2e7fad6c69 Reorgnize the keyboard using 7x7 grids.
This widens the keyboard out some, and will let us use slightly
bigger buttons.

This also adds ., and removes {, }, [, and ], which Ren'Py doesn't
like as part of input.
2020-09-04 23:10:12 -04:00
Tom Rothamel 1d8e2fe640 Rename touchwebkeyboard to TouchKeyboard and touch_keyboard. 2020-09-04 22:20:00 -04:00
Tom Rothamel c15649e7be Rename the _touchwebkeyboard to _touch_keyboard, add config variable to control it. 2020-09-04 21:41:23 -04:00
Tom Rothamel ab8c1bb4b0 Raise the GC threshold to 25,000 objects (from 700) during startup. 2020-09-03 21:14:03 -04:00
Tom Rothamel 7e8c2f2910 Merge pull request #2346 from lee-yunseok/master
Update tutorial Ko-tl
2020-09-03 20:49:11 -04:00
lee-yunseok 560af53741 Update tutorial Ko-tl 2020-09-03 21:54:01 +09:00
Tom Rothamel 3e8a3ee368 Merge pull request #2338 from jsfehler/patch-4
Don't allow toggle skip when skip is disabled
2020-09-03 01:08:43 -04:00
Tom Rothamel 2e13994a1b gl2: Increase the precision of intersectLines.
This fixes #2342, which would cause points on a line to be treaded
as outside it, due to numerical error.
2020-09-02 02:05:02 -04:00
Tom Rothamel c8a2929734 gl2: Avoid creating a Model for renders that have been cropped into nothing. 2020-09-01 22:04:29 -04:00
Tom Rothamel 06696c86dd gl1: Deal with subsurfacing causing an empty Render. 2020-09-01 20:59:28 -04:00
Tom Rothamel fa5eb321db Use binary IO when adding from to calls.
Fixes #2340.
2020-09-01 02:05:45 -04:00
Tom Rothamel eb6c7cdb2e Remove references to Editra in the tutorial.
Fixes #2339.
2020-08-31 21:59:35 -04:00
Tom Rothamel e2edd01d62 Update the piglatin translation. 2020-08-31 21:38:59 -04:00
Tom Rothamel 182bc927e0 Expose renpy.bits.
A way of letting the script determine if this is a 32-bit or 64-bit
platform.
2020-08-30 22:02:32 -04:00
Tom Rothamel 7ce6d55365 Distribute 64-bit windows games. 2020-08-29 17:59:42 -04:00
Joshua Fehler 49a81285fc Don't allow toggle skip when skip is disabled 2020-08-29 10:19:19 -04:00
Sylvain Beucler 2b00838352 web: mobile: add built-in simple virtual keyboard 2020-08-28 20:59:11 +02:00
Tom Rothamel abe41b41a1 Drop support for Editra.
It hasn't been developed sinced 2013, as far as I can tell, and
the website has been down since 2019. Atom has basically replaced
it.

Editra, thank you for being part of Ren'Py.
2020-08-28 00:09:34 -04:00
Tom Rothamel 3b9a025202 Pan was off by 180 degrees, fix that. 2020-08-27 20:54:36 -04:00
Tom Rothamel 2a3fa65b9b atl: Implement xpan/ypan in terms of .subsurface.
This simplifies things and fixes visual glitches.
2020-08-26 22:58:29 -04:00
Tom Rothamel 3af4480c78 Merge pull request #2335 from jsfehler/patch-4
Fix incorrect docs for pushup/down transitions
2020-08-26 18:31:45 -04:00
Joshua Fehler 6e1b190e6b Fix incorrect docs for pushup/down transitions
pushup and pushdown were called pushtop and pushbottom.
2020-08-26 18:25:05 -04:00
Andykl 205feb4eef Add K_key keysyms to default Ren'Py keymap 2020-08-26 23:05:19 +02:00
Tom Rothamel 1c1b2f1301 Merge pull request #2332 from Andykl/parser-fix
Allow use raw strings in simple_expression
2020-08-26 00:11:59 -04:00
Andykl 9a9b6a735a Lexer.name should also respect raw Unicode strings 2020-08-26 04:18:08 +02:00
Tom Rothamel 56da70dfcb Change how xpan and ypan work.
Rather than doing weird things with offset, these now work by using
crop to crop the image to its original size. This should make pans
work better with other ATL properties.

Fixes #2320.
2020-08-25 02:40:11 -04:00
Tom Rothamel 4ed8a9953a Use plaform GL headers on iOS/Android, to get ES3. 2020-08-23 21:36:58 -04:00
Tom Rothamel 7ce0505f8c gl2: Tweak Pixellate bias to match gl. 2020-08-22 22:20:23 -04:00
Andykl 3107c2b051 Allow use raw strings in simple_expression 2020-08-23 02:20:24 +02:00
Tom Rothamel 4ceb0b08c8 Allow the user to resize the launcher window.
Fixes #2295.
2020-08-22 17:38:50 -04:00
Tom Rothamel 2a9f206700 gl2: Add renpy.config.max_mipmap_level. 2020-08-22 01:35:22 -04:00
Tom Rothamel 14598ded7e gl2: Fix regression in the renpy.dissolve shader.
Added u_lod_bias in the wrong place. Whoops.
2020-08-22 01:03:49 -04:00
Tom Rothamel c289be0e58 gl2: Generate mipmaps for loaded textures. 2020-08-22 00:27:13 -04:00
Tom Rothamel 4e7fc55210 gl2: Use GL_UNPACK_ROW_LENGTH for zero-copy image loading.
Now that we've moved to ES 3.0, it's available on all platforms.
2020-08-21 23:33:53 -04:00
Tom Rothamel 21d369d7f6 gl2: Various cleanups and documentation for RTT mipmap generation. 2020-08-21 03:05:10 -04:00
Tom Rothamel f7bbfddf32 gl2: Ask for GLES 3.0. 2020-08-21 01:38:10 -04:00
Tom Rothamel 99d0c277a5 gl2: Target UGUU at GLES 3.0. 2020-08-21 01:36:11 -04:00
Tom Rothamel 9f0b6d2f26 gl2: Checkpoint progress in rendering textures on the GPU. 2020-08-20 23:08:09 -04:00
Tom Rothamel 9f52c462c3 gl2: Fix a typo. 2020-08-19 17:03:30 -04:00
Tom Rothamel a9701b2768 gl2: Fix issues with previous commits.
Turns out testing with the right renderer is important.
2020-08-18 22:25:29 -04:00
Tom Rothamel 50588a37fb gl2: Add Render.add_property.
This is a method that makes it conventient to set a render
property.
2020-08-18 22:00:57 -04:00
Tom Rothamel 9116c0fec8 gl2: Improvements related to properties and LOD.
LOD is now controlled by u_lod_bias.

There is now a dictionary that is passed around through the gl2
renderer, properties. It's intended as the place to store
information that controls the fixed-function portions of
the GL pipeline. Right now, it controls the texture_scaling
mode (used to implement nearest neighbor rendering), and
pixel_perfect rendering, but it can be used for other things
in the future.

The full set of texture_scaling modes are now available.
2020-08-18 21:03:21 -04:00
uyjulian c091edacbb Normalize unicode to NFC 2020-08-18 03:06:07 -05:00
Tom Rothamel 8747c544d7 gl2: Add a LOD adjustment, to prefer scaling down to scaling up. 2020-08-18 02:22:10 -04:00
Tom Rothamel 4f307fd01c gl2: Create and use mipmaps. 2020-08-17 23:48:46 -04:00
Tom Rothamel 4d1f2a3d93 Merge pull request #2285 from Andykl/translate_string-alias
Add alias for `__` in Ren'Py exports as renpy.translate_string
2020-08-17 21:57:52 -04:00
Tom Rothamel a295a499fc Ensure that the argument to log2vis is unicode.
Fixes #2298.
2020-08-16 18:55:43 -04:00
Tom Rothamel 2e17065971 Merge pull request #2317 from lee-yunseok/master
Update translations.
2020-08-16 18:53:18 -04:00
Tom Rothamel 7025438250 Merge pull request #2324 from kapilgain/dev
Fixes #2292: Use utf-8 encoding when writing to lint file output
2020-08-16 18:52:56 -04:00
Kapil Gain 26d8f2609f Fixes #2292: Use utf-8 encoding when writing to lint file output 2020-08-16 18:54:54 +05:30
Tom Rothamel 4d3c1c5f49 Set a hint to not bypass the window compositor.
This prevents Ren'Py games from changing the compositor mode.

This attempts to fix #2303.
2020-08-15 14:01:31 -04:00
Tom Rothamel dbb14cc1a3 ios: Update the launcher to match the r-b version.
The big change is that storyboards are used instead of launch
images, so we no longer generate launch images.
2020-08-13 22:09:22 -04:00
Tom Rothamel 35b5d3f679 Update most modules to use renpy.compat.pickle.
This should generally speed up pickling and unpickling.
2020-08-13 22:06:42 -04:00
Tom Rothamel f30d7587d6 Add the renpy.compat.pickle module.
This pulls in the contents of the "fast" pickle module - pickle
on py3, and cPickle on py2.
2020-08-12 21:38:03 -04:00
Tom Rothamel 91045713c1 Support loading matrices from save files. 2020-08-12 20:55:44 -04:00
lee-yunseok ca23ea4b40 Fix typo. 2020-08-12 15:50:30 +09:00
Tom Rothamel abcfcb0b13 gl2: Switch matrix from row major to column major order.
GLES doesn't support the transpose argument to glUniformMatrix, so
store the matrix in transposed order instead.

Fixes #2309.
2020-08-11 22:15:46 -04:00
Tom Rothamel 26aaf86e8a Allow gles2 to run on Android.
It doesn't work yet, but it initializes to a black screen.
2020-08-10 23:51:58 -04:00
Tom Rothamel f9d295846a Add a way to disable shaders.
The syntax is to add a negative shader name, like '-renpy.geometry'.

Fixes #2301.
2020-08-10 23:02:24 -04:00
lee-yunseok ce52a27a2e Follow #9d4ae7b 2020-08-10 08:16:03 +09:00
lee-yunseok cc56b043c2 Follow #9d4ae7b 2020-08-10 08:12:16 +09:00
Tom Rothamel a085b5b32b Merge pull request #2316 from lee-yunseok/master
Fix Ko strings for launcher.
2020-08-09 14:27:54 -04:00
lee-yunseok 49ce721166 Grammatically correct 2020-08-10 03:26:42 +09:00
lee-yunseok be92e277d1 Fix Ko typos. 2020-08-10 03:24:10 +09:00
lee-yunseok dbcde35bf7 Update Ko strings for launcher. 2020-08-09 17:21:15 +09:00
Tom Rothamel 03e3dd36e0 Merge pull request #2281 from lee-yunseok/master
Fix Korean typo in launcher
2020-08-08 20:40:18 -04:00
Tom Rothamel d70f2d1555 Merge pull request #2283 from lee-yunseok/master
Apply SourceHanSansLite to Korean.
2020-08-08 20:39:55 -04:00
Tom Rothamel 39a3d0b689 Merge pull request #2306 from uyjulian/ffmedia_more_pointer_validation
More pointer validation in ffmedia and renpysound_core
2020-08-08 20:39:34 -04:00
lee-yunseok af0bdc1272 Update Ko string 2020-08-06 03:53:06 +09:00
lee-yunseok 206d23a3e6 Fix korean typo 2020-08-06 01:44:19 +09:00
lee-yunseok 51558dc83b update android string tr 2020-08-06 01:42:10 +09:00
Tom Rothamel 9d4ae7b9bf Update android string translations. 2020-08-03 23:57:38 -04:00
Tom Rothamel 1ac9e557d1 Create the directory containing the screenshot, if it doesn't exist.
Fixes #2308.
2020-08-03 01:09:17 -04:00
Tom Rothamel 845da7593b Allow K_PAUSE to bring the player to the game menu.
Just so this key has a function.
2020-08-03 00:36:06 -04:00
Tom Rothamel a547ea00eb Document preferences.language.
It's useful as a way of knowing the current language.
2020-08-03 00:29:36 -04:00
Tom Rothamel 2281ae9268 Only display a side image if at least one attribute is known. 2020-08-02 23:24:40 -04:00
uyjulian 084ed4970b More pointer validation in ffmedia and renpysound_core
Prevents data aborts on memory allocation error and media open error
2020-08-02 01:51:39 -05:00
uyjulian e929156f97 Refactor renpy.loader.index_archives into multiple callbacks 2020-08-02 01:14:10 -05:00
uyjulian 24b1a7c522 Refactor renpy.loader.{load_core,scandirfiles} into multiple callbacks 2020-08-02 00:22:19 -05:00
Tom Rothamel 2153cc80a2 Tweak one of the static cython regexes.
It could trigger in a case where a C function in the module had the
same name as the module itself. (Like the render function in
renpy.display.render.) This causes functions that import it to
report an error.
2020-07-30 19:17:01 -04:00
Tom Rothamel fee5500fb4 Use __attribute__((constructor)) to add static modules to inittab. 2020-07-30 03:16:16 -04:00
Tom Rothamel 39a35270ef Document that six is a dependency. 2020-07-26 22:34:55 -04:00
Tom Rothamel b0f238ef0d Merge pull request #2290 from Andykl/fix-force-step
Make sure Adjustment._value always have type that was inited
2020-07-24 21:03:24 -04:00
Tom Rothamel 9997eeb5da Fix lint warning in tutorial. 2020-07-23 22:11:35 -04:00
Tom Rothamel 5095677c2c Revert "Merge pull request #2287 from Beuc/web-virtual-keyboard"
This reverts commit c655a6d830, reversing
changes made to ee21bfa2ae.
2020-07-22 21:12:44 -04:00
Tom Rothamel e3d9516f2e Open JSON files in binary mode.
Fixes #2289.
2020-07-22 01:28:28 -04:00
Andykl 34e3e25fea Make sure Adjustment._value always have type that was inited 2020-07-22 00:51:15 +02:00
Andykl 7b6d8cc162 Fix misstype for force_step feature 2020-07-22 00:45:55 +02:00
Tom Rothamel 109590f7c0 Update an android string to match a change in rapt. 2020-07-20 22:41:59 -04:00
Tom Rothamel c655a6d830 Merge pull request #2287 from Beuc/web-virtual-keyboard
web: mobile: browser virtual keyboard support
2020-07-19 22:23:02 -04:00
Sylvain Beucler 2a1c91d8b2 web: mobile: browser virtual keyboard support 2020-07-18 18:03:03 +02:00
Tom Rothamel ee21bfa2ae live2d: Use the renpy.alpha shader to adjust opacity.
Fixes #2284.
2020-07-17 17:39:42 -04:00
Tom Rothamel 64c931c511 live2d: Fix the Linear and InvStep functions.
Per discussion on #2284.
2020-07-17 17:37:52 -04:00
Tom Rothamel 719ed80fa6 gl2: Take the size of the viewport into GL2DrawingContext, so
alignment works everywhere.
2020-07-17 00:36:45 -04:00
Tom Rothamel c0ac8e92c5 Fix bad matrices - thanks to Renall. 2020-07-16 21:02:45 -04:00
Tom Rothamel a6cfc52312 gl2: Replace the drawable_align shader with pixel perfect rendering.
The drawable align shader has a number of problems, most notably
that it could be triggered by accident - for example, the corners
of a Frame would trigger it. It could also move the diferent corners
of a texture differently, which would lead to blurring.

This replaces it with the concept of pixel perfect rendering. A
Render can be rendered in a pixel perfect manner if the only
transforms it has undergone are shifts by an integer number of
pixels. After a Render opts in (right now, Text is the only Render
that does so), each Model that it draws is shifted until (0, 0) is
located on an integer pixel on the screen.

Compared to drawable_align, pixel perfect rendering is simpler - by
actually transforming a point, it's easy to determine the nearest
pixel, and then move the draw by up to 1/2 of a pixel in each
axis.
2020-07-16 03:03:23 -04:00
Tom Rothamel 3218108135 gl2: Rewrite the draw function to use arguments rather than fields.
This simplifies it, and should make it faster.
2020-07-16 01:00:26 -04:00
Tom Rothamel 9faf07f664 gl2: Add methods to access the first point in the mesh. 2020-07-15 22:42:27 -04:00
Andykl 32502e1c84 Add alias for __ 2020-07-16 04:14:30 +02:00
Tom Rothamel 786b025c26 gl2: Add the bounding box to geometry debug. 2020-07-15 01:40:26 -04:00
Tom Rothamel 2f1c72826c Do not include renpy.geometry when renpy.ftl is present.
Fixes #2282.
2020-07-14 21:37:16 -04:00
lee-yunseok b0c29dca41 Update 2020-07-15 05:21:00 +09:00
lee-yunseok 10f95ba85b Compatible with new font 2020-07-15 05:18:07 +09:00
lee-yunseok 329f68e6e2 Add Korean 2020-07-15 04:53:18 +09:00
lee-yunseok 68418ceeb5 Naturally 2020-07-15 04:48:02 +09:00
lee-yunseok b90b13d911 remove mistake 2020-07-15 04:46:32 +09:00
lee-yunseok 9782c3aeae Change Korean font 2020-07-15 04:44:03 +09:00
lee-yunseok c5a3fc1f2f More naturally, remove nanum 2020-07-15 04:41:54 +09:00
lee-yunseok 46b696fac3 More naturally, remove Nanum 2020-07-15 04:40:34 +09:00
lee-yunseok 2f74b0f3aa Remove NanumFont 2020-07-15 04:33:24 +09:00
lee-yunseok f66aaad63a Fix typo 2020-07-14 17:05:33 +09:00
lee-yunseok e2c0cc6075 Fix typo 2020-07-14 16:54:41 +09:00
Tom Rothamel 8b0d3dd498 Merge pull request #2280 from Andykl/fix-start-interact
Set start_interact before call start_interact_callbacks
2020-07-14 01:36:09 -04:00
Tom Rothamel b6e223fdbe Fix typo in download.rpy. 2020-07-13 22:23:06 -04:00
Tom Rothamel 2001ca26f6 gl2: Fix matrix multiplication of clip polygons. 2020-07-13 22:15:19 -04:00
Tom Rothamel 81114e5e76 Default to using Python3 to choose a directory. 2020-07-12 17:54:46 -04:00
Tom Rothamel 85190014db gl2: Add a way to debug mesh geometry. 2020-07-11 23:34:03 -04:00
Andykl a819deb8a9 Set start_interact before call start_interact_callbacks 2020-07-12 04:53:29 +02:00
Tom Rothamel 4ac70c590c gl2: Add accessor functions to get the points and triangles in a mesh. 2020-07-11 18:59:47 -04:00
Tom Rothamel 45dfa2c980 Merge pull request #2270 from mal/vpgrid-margin
Add support for margin to grids
2020-07-10 21:23:41 -04:00
dogtopus 0665000c34 Handle variation sequences (VS1-256 and FVS1-3) 2020-07-10 00:03:09 -03:00
Tom Rothamel 094c0c0add Merge pull request #2277 from zedraxlo/patch-1
SourceHanSansLite.ttf update
2020-07-09 22:24:56 -04:00
Mal Graty 3e9c1f25a5 Update style docs for grid margins 2020-07-09 21:32:20 +01:00
Mal Graty ac1b88eea2 Minor fixes to style-property docs 2020-07-09 21:29:04 +01:00
zedraxlo e99fe890c4 Update screens.rpy 2020-07-09 18:37:12 +08:00
zedraxlo 3a0ff7876e Update screens.rpy 2020-07-09 18:35:01 +08:00
zedraxlo 8faf94f413 New SourceHanSansLite.ttf July 2020
After compared with the below code table, added some lacked characters.
GB 2312-80 (China)
Big 5 (Taiwan) + frequency table
JIS X 0208 (Japan) + joyo kanji
2020-07-09 18:31:23 +08:00
zedraxlo 5d627df6cb Update developer.rpy 2020-07-09 18:25:33 +08:00
Tom Rothamel a1c30e0ec6 Merge pull request #2044 from Lezalith/master
Input parameters "allow" and "exclude" can take regex
2020-07-08 21:38:33 -04:00
Tom Rothamel 03ccecaeca Merge pull request #2159 from hsandt/fix-parse-stop-music
Fix #2158 by checking arguments in a loop in parse_stop_music
2020-07-08 21:37:48 -04:00
Tom Rothamel c1f329618e Merge branch 'master' into fix-parse-stop-music 2020-07-08 21:37:31 -04:00
Tom Rothamel 5adf696ae1 Merge pull request #2232 from kyouryuukunn/combine_japanese_and_chinese_font
Combine japanese and chinese font
2020-07-08 21:35:34 -04:00
Tom Rothamel 07d837be44 Check in missing files, and a general cleanup. 2020-07-08 19:29:23 -04:00
Tom Rothamel 434c100ae5 Fix regression in Transform.set_child.
Fixes #2273.
2020-07-07 20:21:08 -04:00
Beuc b143e9e7f1 web: clarify audio placeholder's role 2020-07-07 12:22:20 +02:00
Tom Rothamel 0057b8f0d6 live2d: Properly handle the case where fadeout=0.
It should be treated as an immediate fadeout, not as not fading
out at all.
2020-07-07 00:00:46 -04:00
Tom Rothamel fd5163b577 live2d: Control when Live2D can be duplicated. 2020-07-06 22:46:12 -04:00
Tom Rothamel 4d54fa8c96 Add support for live2d to run.sh, if the files are present. 2020-07-06 22:33:47 -04:00
Tom Rothamel b62fb01b77 Merge pull request #2271 from Andykl/fix-shader-typos
Fix typos in live2d shaders
2020-07-05 23:22:21 -04:00
Tom Rothamel 07f2fdf7f1 gl2: Add the mesh transform property.
This replaces the flatten property, and explicitly flattens into
a mesh, if possible. Optionally, this takes a tuple, that
defines the number of points in the horizontal and vertical
directions that make up the mesh. (The idea being that a
vertex shader can then distort the mesh.)
2020-07-05 23:16:12 -04:00
Andykl 8fe34ded43 Fix typos in live2d shaders 2020-07-05 23:51:54 +02:00
Mal Graty 8f5dc494f1 Add support for margin to grids 2020-07-05 18:45:35 +01:00
Tom Rothamel ae2def4013 Add a flatten transform property.
This is designed to simplify the writing of shader-based transforms.
2020-07-04 15:37:37 -04:00
Tom Rothamel d2bf194114 gl2: More shader work.
The different shader variables now get prefixed with the GLSL
type - u_ for uniform, a_ for attribute, v_ for varying. This
makes sure that we're good if OpenGL adds new functions.

There are two new uniforms - u_time is the frame time, and u_random
is a vec4 with 4 random values in it.

Uniforms beginning with u_renpy and the standard uniforms (u_transform,
u_time, and u_random) are not exposed to ATL. (Since Ren'Py would just
overwrite them, anyway.)
2020-07-04 01:44:20 -04:00
Tom Rothamel 9c2ecbeebb gl2: Add support for custom shaders and uniforms to ATL. 2020-07-04 00:54:21 -04:00
Tom Rothamel 5fe400d433 gl2: Persist the shader cache. 2020-07-03 20:32:15 -04:00
Tom Rothamel e4e256a49d gl2: Remove hungarian notation from shader variables.
If these variables are going to be around forever, they should be
Ren'Py-like.
2020-07-03 01:15:34 -04:00
Tom Rothamel eb676de30c gl2: Alpha, Over, and Matrixcolor use uniforms.
Instead of special-casing these uniforms, they're updated by the
displayables that change them, and then config.merge_uniforms
makes sure that things like nested color matrixes and nested
alpha combine properly.
2020-07-02 22:35:16 -04:00
Tom Rothamel e12175123d gl2: Add config.merge_uniforms.
This is a dictionary that explains how to merge together uniforms
that are provided by the same shader in multiple places. For example,
the alpha should me multiplied, not replaced.
2020-07-02 22:33:26 -04:00
Tom Rothamel 7ce97ed23a gl2: Add Render.add_shader and Render.add_uniform.
These provide a standard and simple way to add shaders and uniforms
to Renders.
2020-07-02 22:31:55 -04:00
Tom Rothamel fd062ef089 matrixcolor: Add SepiaMatrix, a convenient shortcut to sepiatone things. 2020-07-02 19:09:25 -04:00
Tom Rothamel 15941dfac0 matrixcolor: Add equality methods to ColorMatrix.
These are used by ATL.
2020-07-01 22:21:54 -04:00
Tom Rothamel 9b819d563a matrixcolor: Untested conversion of im.matrix to ColorMatrix
ColorMatrix is the new base class for objects that can be called
to return a Matrix. ATL can interpolate between different instances
of the same ColorMatrix subclass, and ColorMatrixes can be multiplied
together, in which case the relevant Matrixes wil be multipled
together.
2020-07-01 22:05:57 -04:00
Tom Rothamel b139fc492d matrixcolor: Move interpolation into a base class. 2020-06-30 23:58:04 -04:00
Tom Rothamel 8772d753d9 matrixcolor: Start redesign.
Thinking about Patreon + #2255, I've realized that reusing im.matrix
is probably a bad idea. The 5x5 matrices don't make sense with
premultiplied alpha, and ATL really wants function-like objects
that help animated things.

In the redesign, matrixcolor takes either a 4x4 Matrix, or a
function-like object (a ColorMatrix object) that takes an old
object to interpolate from, a completion amount, and returns
a Matrix.
2020-06-30 01:56:21 -04:00
Tom Rothamel 474f1499cd Export Matrix into the default store. 2020-06-30 00:45:14 -04:00
Tom Rothamel 62ba7f2a9d doc: Improve documentation of config.missing_label_callback.
Fixes #2261.
2020-06-29 21:01:58 -04:00
Tom Rothamel 1923a40304 Merge pull request #2262 from Andykl/fix-2191
Fix misspelled value for #2191
2020-06-29 13:56:25 -04:00
Andykl 6d56f148da Fix misspelled value for #2191 2020-06-29 19:53:13 +02:00
Tom Rothamel e9aa32407e Remove all MMX-based rendering.
These were mostly used by the software renderer, which is no longer
performance-critical. The MMX-based stuff appears to be broken on
i686 on recent GCCs (it had been disabled on Linux for years), so
it's easy to justify removing it.
2020-06-28 21:29:48 -04:00
Tom Rothamel baaf56c866 Disable ANGLE when switching to swdraw.
This is necessary ANGLE isn't working for some reason. GLES and
ANGLE mode is still enabled, so swdraw would fail creating the
window.
2020-06-27 20:21:09 -04:00
Tom Rothamel aa0a5f1194 Ignore angle2 on other platforms. 2020-06-27 19:55:49 -04:00
Tom Rothamel 5682e70942 Merge pull request #2156 from Beuc/progressive_download.txt
web: add progressive download configuration for demos
2020-06-27 16:44:04 -04:00
Tom Rothamel 4a226666b6 Merge pull request #2106 from Beuc/back_to_float
Revert "web: Avoid the use of float arguments."
2020-06-27 16:43:47 -04:00
Tom Rothamel 043f7d07c4 Only recreate the gl context on mobile platforms.
On windows with ANGLE, re-creating the context does not work. It
also isn't necessary on other PC platforms.
2020-06-27 16:22:44 -04:00
Tom Rothamel 33dd91e9d0 doc: Fix typo. 2020-06-27 15:55:36 -04:00
Tom Rothamel 8833466201 gl2: Do not use es in the gl2es shader version directive. 2020-06-26 23:41:52 -04:00
Daniel Conley 9851f8c391 Python3 Readiness: Use in Instead Of has_key
Changes all instances of `<dict>.has_key(<key>)` to `<key> in <dict>` across all Python and RenPy files, as Python 3 has removed the `has_key` method.
Excuse my grammar and missing backtick quoted content in my last commit... how embarassing.
The last commit was supposed to say: "Changed all instances of `except <type>, <var>` to `except <type> as <var>`"...
2020-06-26 16:50:21 -04:00
Daniel Conley 2de5d427a4 Python3 Readyness: Use As In Except
Changed all instances of  to , across all Python and RenPy files, as Python 3 does not accepts the former.
2020-06-26 16:15:47 -04:00
Tom Rothamel 44fe51d53b Merge pull request #2109 from Andykl/console-prettyprint
Console prettyprint
2020-06-25 22:36:47 -04:00
Tom Rothamel 33f9359b28 Merge pull request #2165 from Andykl/fix-screens-predict
Various fixes of predict machinery
2020-06-25 22:30:52 -04:00
Tom Rothamel b0cf9da302 Merge pull request #2242 from Andykl/fix-log-line-ending
Remove `\n` replacement in log files, because `io.open` is dealing with it
2020-06-25 22:27:46 -04:00
Tom Rothamel fc81ae78c3 Merge pull request #2252 from dogtopus/gl2draw-typo
Fix typo (draw -> gl2draw)
2020-06-25 22:26:09 -04:00
Tom Rothamel 3eec6085f7 r-b: Set executable bits for the new files.
Fixes #2254.
2020-06-23 21:48:25 -04:00
Tom Rothamel bf1bee5214 Add a length field to the test input example.
Fixes #2204.
2020-06-23 01:10:20 -04:00
Tom Rothamel 05f66df36b Quote butler terminal commands.
Fixes #2199.
2020-06-23 00:41:39 -04:00
Tom Rothamel 51f120646b gl2: Restore AlphaMask and AlphaDissolve.
Fixes #2251.
2020-06-22 23:00:00 -04:00
dogtopus a262f29c56 Fix typo (draw -> gl2draw) 2020-06-22 13:14:30 -03:00
Tom Rothamel 7468b56459 Start documenting matrixcolor. 2020-06-22 01:47:36 -04:00
Tom Rothamel 3ac0f39348 Add support for the use of functions to interpolate matrixcolors. 2020-06-21 15:39:26 -04:00
Tom Rothamel c35b3759e8 gl2: Add the matrixcolor implementation. 2020-06-21 11:39:25 -04:00
Tom Rothamel b98890220f gl2: Add the matrixcolor transform property.
Which hasn't been hooked up yet.
2020-06-20 20:30:48 -04:00
Tom Rothamel 0e3b850a22 Merge pull request #2241 from mal/size-type
Bounds-based size transforms
2020-06-20 17:49:55 -04:00
Mal Graty 6664dc19e6 Document new sizing properties 2020-06-20 20:12:06 +01:00
Tom Rothamel 60399dcdd8 gl2: Update the recolor shader. 2020-06-19 21:04:34 -04:00
Tom Rothamel 6541259a56 Hide and ToggleScreen now take the _layer parameter.
Fixes #2227.
2020-06-19 00:42:05 -04:00
Tom Rothamel e4144bbc08 Switch to VS code. 2020-06-19 00:25:15 -04:00
Tom Rothamel a98539b611 Merge pull request #2155 from RenpyRemix/patch-1
Update 00gallery.rpy
2020-06-18 23:21:16 -04:00
Tom Rothamel becb99216b Merge pull request #2248 from lee-yunseok/master
Add missing Korean translation for launcher.
2020-06-18 23:20:02 -04:00
Tom Rothamel 76dc25cb74 Convert exception_info to str before reporting.
Fixes #2244.
2020-06-18 21:28:27 -04:00
Tom Rothamel 929106910a Convert strings in .pyx to unicode. 2020-06-18 21:23:08 -04:00
lee-yunseok a73e35ac22 Add missing tl 2020-06-19 00:46:35 +09:00
Tom Rothamel d7d2b5440d Do not reset history or nvl_list for a non-language-change.
Fixes #2245.
2020-06-17 23:21:54 -04:00
Tom Rothamel 2f069739d2 Allow the game continue if nvl_list gets cleared.
This can happen when changing language.

This is part of the fix for #2245.
2020-06-17 23:18:24 -04:00
Tom Rothamel 60d81a953c live2d: Call with __stdcall.
This fixes a crash on 32-bit win32.
2020-06-16 02:03:09 -04:00
Tom Rothamel 1c2e732490 Preserve sys.executable across reload(sys). 2020-06-15 03:13:20 -04:00
Mal Graty 03512ed2e9 Avoid using size None going forward 2020-06-14 21:03:17 +01:00
Mal Graty b278fc842d Handle size None in transforms
Setting size to None is used reset and few other places so we need to
keep support for clearing size in that way rather than requiring code to
be ported to explicitly setting xsize and ysize to None.
2020-06-14 21:03:17 +01:00
Mal Graty 0f070cb5ae Make transform_render use xsize, ysize and fit
fixup! Update transform_render to handle xsize, ysize
2020-06-14 21:03:17 +01:00
Mal Graty 9133dc798f Split size into xsize and ysize and add size_type
Size remains available and supported, implemented in the same way as
other x/y tuples with component parts.
2020-06-14 21:03:17 +01:00
Andykl b78a84f016 Remove \n replacement, because io.open is dealing with it 2020-06-13 20:45:23 +02:00
Tom Rothamel b0af3b31b3 live2d: Only install into directories that exist.
Fixes #2225.
2020-06-13 03:05:36 -04:00
Tom Rothamel 9680958b96 live2d: Use the full path to the dll.
This is required to load the dylib on macOS, and shouldn't hurt
for the other platforms.

Fixes #2233.
2020-06-13 02:37:00 -04:00
Tom Rothamel 530b29fbc3 Only handle VIDEOEXPOSE for the software renderer. 2020-06-11 21:44:57 -04:00
Andykl a14e38a830 Remove unnesesary import 2020-06-11 12:50:30 +02:00
kyouryuukunn bcd738085b Update CJK font 2020-06-11 16:58:02 +09:00
kyouryuukunn 75d21278cf Change Japanese font name 2020-06-11 16:52:41 +09:00
kyouryuukunn 36516ecebc Merge branch 'master' into combine_japanese_and_chinese_font 2020-06-11 16:45:57 +09:00
Tom Rothamel d45a30cd1c gl2: Do not use the geometry shader for ftl.
This attempts to deal with #2228.
2020-06-11 01:40:45 -04:00
Tom Rothamel 84cdb6dc50 Merge pull request #2169 from uyjulian/gl2_explicit_attributes
gl2draw: Explicitly specify profile and version when using desktop GL
2020-06-11 00:22:31 -04:00
uyjulian 73443cd0af gl2draw: Explicitly specify profile and version when using desktop GL 2020-06-10 23:20:19 -05:00
Tom Rothamel ec8eaf08f0 Merge pull request #2230 from Gouvernathor/patch-minsize
add minsize transform property
2020-06-10 22:09:40 -04:00
Gouvernathor dc4bdc7775 Changed mul from False to None
As requested, changed the default, "unspecified" value of mul from False to None to avoid integer-interpretation issues
2020-06-11 04:08:52 +02:00
Tom Rothamel 55ba62ea58 Merge pull request #2129 from Andykl/improve-pure
Improved renpy.pure function.
2020-06-10 22:08:32 -04:00
Gouvernathor 95bac9a589 added minsize to the last needed places
added wherever maxsize was mentioned : in the constructor, with the default value (of None),...
2020-06-11 02:27:01 +02:00
Gouvernathor cbf458f514 Programmed the actual behavior of minsize
If maxsize is specified, minsize is ignored.
If not None, minsize causes the displayable to be scaled so that it fills a box of this size, while preserving aspect ratio. (Note that this means that one of the dimensions may be greater than the size of this box.)
2020-06-11 02:19:49 +02:00
Gouvernathor fb409e3764 added minsize to the list of properties 2020-06-11 02:18:06 +02:00
Tom Rothamel eb6977c0f8 Merge pull request #2229 from zedraxlo/master
Chinese, June 2020
2020-06-10 01:47:47 -04:00
Tom Rothamel ff31d4039b live2d: Scan the disk for motions that aren't in the model3 file. 2020-06-10 01:47:22 -04:00
zedraxlo 1c74791ebe Update screens.rpy 2020-06-10 13:23:22 +08:00
zedraxlo ce94ab3f21 Update script.rpy 2020-06-10 13:22:03 +08:00
zedraxlo 2e922fd97c Update options.rpy 2020-06-10 13:21:47 +08:00
zedraxlo eaca94c196 Add files via upload 2020-06-10 13:21:21 +08:00
zedraxlo bf808138d2 Update script.rpy 2020-06-10 13:20:25 +08:00
zedraxlo ddb36b1145 Update screens.rpy 2020-06-10 13:20:05 +08:00
zedraxlo 67f53456ee Update options.rpy 2020-06-10 13:19:45 +08:00
zedraxlo 1e2862cbf8 Add files via upload 2020-06-10 13:19:10 +08:00
zedraxlo 74dcebb714 Update style.rpy 2020-06-10 13:15:59 +08:00
zedraxlo 43624ded97 Update style.rpy 2020-06-10 13:15:31 +08:00
zedraxlo adf62e4776 Update screens.rpy 2020-06-10 13:14:45 +08:00
zedraxlo 790dd4c113 Update options.rpy 2020-06-10 13:14:28 +08:00
zedraxlo 7e2efef33c Update launcher.rpy 2020-06-10 13:14:03 +08:00
zedraxlo 7f59d8bd43 Update gui.rpy 2020-06-10 13:13:42 +08:00
zedraxlo 1fbe974306 Update error.rpy 2020-06-10 13:13:26 +08:00
zedraxlo a4b265c66c Update developer.rpy 2020-06-10 13:13:09 +08:00
zedraxlo 687f3d929d Update common.rpy 2020-06-10 13:11:21 +08:00
zedraxlo aa3f4ab491 Add files via upload 2020-06-10 12:42:47 +08:00
zedraxlo 7652e06950 Delete SourceHanSans-Light-Lite.ttf 2020-06-10 12:41:41 +08:00
Tom Rothamel 0d56d7d59c Merge pull request #2180 from Beuc/update_gamecontrollerdb
Sync gamecontrollerdb.txt
2020-06-10 00:28:34 -04:00
Tom Rothamel 28238804d6 Merge pull request #2170 from uyjulian/mouse_touch_autoconv
Set SDL2 hint to convert touch events to mouse events
2020-06-10 00:27:48 -04:00
Tom Rothamel 04d593daaf Merge pull request #2179 from oxr463/patch-2
Add renpyweb to license repositories
2020-06-10 00:27:34 -04:00
Tom Rothamel 9336d64369 Merge pull request #2176 from oxr463/patch-1
Clarify licensing in README
2020-06-10 00:27:20 -04:00
Tom Rothamel f5466dcf5a Merge pull request #2189 from capntrips/ios-mobile-variant
add "mobile" screen variant to iOS builds
2020-06-09 20:54:27 -04:00
Tom Rothamel b24091ba11 Merge pull request #2191 from kobaltcore/individual-volume
Allow specification of per-play/per-queue volume
2020-06-09 20:53:31 -04:00
Tom Rothamel 634cbe7aab Merge pull request #2195 from Andykl/fix-scache
Also use the location of screen as key of screen in SL2 cache
2020-06-09 20:53:02 -04:00
Tom Rothamel 9c46898771 Merge pull request #2197 from Andykl/fix-quit
Do not call label "quit" in command startups
2020-06-09 20:52:22 -04:00
Tom Rothamel 0a3104af8e gl2: Fix arguments when drawing in is_pixel_opaque. 2020-06-08 20:35:09 -04:00
Tom Rothamel 884e02cc6b Document the alt and noalt text tags. 2020-06-08 01:19:22 -04:00
Tom Rothamel 387c93c311 Add the noalt tag.
This is the opposite of the alt tag, allowing one to have text
that will not be spoken when TTS is enabled.

Fixes #2221.
2020-06-07 22:37:09 -04:00
Tom Rothamel fbf6be8928 live2d: Add the still motion. 2020-06-06 22:59:32 -04:00
Tom Rothamel d07ed14a96 Improve placeholder error handling, especially for attribute errors. 2020-06-06 20:36:25 -04:00
Tom Rothamel 678d8d2dab live2d: Read the pause times from the motion file. 2020-06-06 19:46:02 -04:00
Tom Rothamel e8c6e2d198 live2d: Reset parameters, adjust by factor. 2020-06-04 19:55:54 -04:00
Tom Rothamel d2dc56e01f live2d: Restore motion fade. 2020-06-03 23:23:52 -04:00
Tom Rothamel 159ad0e0f2 Revert "live2d: Remove incorrect usage of fade factors in motion."
This reverts commit cf0d05b6eb.
2020-06-03 01:54:45 -04:00
Tom Rothamel d256d27e28 live2d: Track the state for fading. 2020-06-02 23:29:34 -04:00
Tom Rothamel df721cb27e live2d: Change the size of the Render to the player-selected size.
This is needed to make things work with the standard transforms,
which use yalign 1.0 and hence override yanchor.
2020-05-31 22:50:19 -04:00
Tom Rothamel bf5030dff2 live2d: New features.
- loop: controls if the animations loop.
- alias: aliases animations.
- height: controls the scaling height.
2020-05-29 02:54:28 -04:00
Tom Rothamel a9f26274fe live2d: Support a queue of motions, with the last repeating. 2020-05-28 02:26:51 -04:00
Tom Rothamel e10b88eca4 Provide a way for Ren'Py to query the screen lists for children.
This is used by the Live2D code to find the displayables that
are currently being shown, to figure out what should be displayed
on them.
2020-05-28 01:03:29 -04:00
Tom Rothamel f27def4f78 live2d: Do not double-duplicate. 2020-05-27 20:58:43 -04:00
Tom Rothamel cf0d05b6eb live2d: Remove incorrect usage of fade factors in motion. 2020-05-26 23:00:13 -04:00
uyjulian 0de85380cd Set SDL2 hint to convert touch events to mouse events 2020-05-25 22:25:02 -05:00
Tom Rothamel 992353b719 live2d: Switch between traditional sprite changes and interpolating. 2020-05-25 22:48:25 -04:00
Tom Rothamel 6ec27266df live2d: Figure out old and new motions, if needed. 2020-05-24 21:57:06 -04:00
Andykl 4ce146bd67 Do not leak constantness for constant not_const_ast 2020-05-25 03:52:04 +02:00
Andykl aa435a95cd Document a hint about **properties in SD SLS 2020-05-25 03:07:41 +02:00
Tom Rothamel da522a6373 live2d: Import renpy, to gain access to functions in it. 2020-05-24 15:44:01 -04:00
Andykl 1edb6d0a92 Raise an error if some property follow after last_keyword child 2020-05-24 21:05:40 +02:00
Andykl 40e5eb4742 Skip expressions in screens cycle finder. 2020-05-24 19:35:35 +02:00
Andykl c0a926c3b3 Predict the first true block exactly first in SLIf. 2020-05-24 19:25:43 +02:00
Andykl bc7b0514e5 Check arguments and id properties even if they in SLIf children. 2020-05-24 17:45:16 +02:00
Tom Rothamel 031231e343 live2d: Allow Ren'Py to start without a compiled Live2D.
This means that Live2D headers won't be required to build Ren'Py.
2020-05-24 11:40:13 -04:00
Andykl 12914d08e3 Get the at keyword after applying properties keyword 2020-05-24 03:41:12 +02:00
Andykl f627d2f1f8 Make a link of atl_transform in copy of SLBlock 2020-05-24 03:39:17 +02:00
Andykl 429b679170 Make a separate class for CD SLS 2020-05-24 03:37:48 +02:00
Tom Rothamel 8bce879a96 live2d: Add checks and renpy.has_live2d. 2020-05-23 18:01:07 -04:00
Tom Rothamel b50c74b156 live2d: Use the Ren'Py functions rather than renpy.exports. 2020-05-23 03:18:38 -04:00
Tom Rothamel 049d44a981 gl2, live2d: Import renpy.gl2 all the time.
Since there's no direct linking to OpenGL anymore, there's no reason
to delay this import, and doing so makes the Live2D API available
in the standard manner.
2020-05-22 23:31:15 -04:00
Tom Rothamel 560e6bdbc5 Merge pull request #2130 from Andykl/improve-key
Improve SL key statement
2020-05-22 10:17:12 -04:00
Tom Rothamel 04edaf13ce live2d: Fix various issues with install. 2020-05-21 02:56:46 -04:00
Tom Rothamel 2da388b718 live2d: Do not distribute with Ren'Py itself. 2020-05-21 02:24:49 -04:00
Tom Rothamel ff2bcc2d7f Raise the profile_init threshold to .25s. 2020-05-21 02:19:52 -04:00
Tom Rothamel 6bef058fc2 live2d: Install the Live2D dlls for desktop platforms. 2020-05-21 02:08:23 -04:00
Tom Rothamel 0c5c5bcead launcher: Add an install screen. 2020-05-20 20:56:10 -04:00
Andykl e32eb9aa4f Make get_all_screen_variants less complexity 2020-05-20 19:16:23 +02:00
Andykl 6c1333fbf6 SLUse without block should refers to target const_ast 2020-05-20 18:25:16 +02:00
Andrej 5ae947f8a6 Make docs more clear about purpose 2020-05-20 16:42:12 +02:00
Andrej 308b8a9132 Make exception message for recursive !i substitutions more useful. 2020-05-20 16:12:10 +02:00
Andy_kl 71f3c5bb10 Doc this 2020-05-20 15:39:12 +02:00
Andy_kl 584b779653 Added hint of correct symbols 2020-05-20 15:39:12 +02:00
Andy_kl 3edac1df43 Added i conversion flag for additional interpolate substituted value 2020-05-20 15:39:12 +02:00
Andy_kl 1354b2c685 Make coercion to string for all other conversion symbols 2020-05-20 15:39:12 +02:00
Andy_kl 7c4fe698b2 Raise an error if substitute conversion have unknown symbols 2020-05-20 15:39:12 +02:00
Andy_kl 2fd3345069 Raise (often) NameError again if not in predicting 2020-05-20 15:39:11 +02:00
Tom Rothamel 3ae53ce8cc Rearrange the preferences.
Moving the actions into the left column leaves more space for them,
and more space for the long list of translations.
2020-05-19 22:56:17 -04:00
Daniel Luque 351db443dd Merge pull request #2201 from Andykl/doc-typo
Fix doc typo
2020-05-18 23:44:45 +02:00
Tom Rothamel e21c90a5fc live2d: Use a thunk to load Live2D.
This ensures that live2d only loads if it is being used, which
allows it to depend on renpy.gl2.
2020-05-18 01:46:33 -04:00
Tom Rothamel a5bc6ae6a9 gl2: Add support for Live2D.
This was developed at renpytom/live2dexperiment .
2020-05-17 23:21:23 -04:00
Tom Rothamel 5613eb562d Update copyright notices to 2020. 2020-05-17 14:22:47 -04:00
Andrej cb9e66cc5e Fix 2020-05-17 17:10:36 +02:00
Tom Rothamel c5d5897cc5 gl2: Use a very slight offset on the size of a pixel.
This prevents a very slight offset in rounding from causing an aligned
render to be rendered one pixel bigger.
2020-05-15 22:54:50 -04:00
Andrej 47b927f4c9 Do not call label "quit" in command startups 2020-05-15 20:40:54 +02:00
Andrej 57b89450f5 Also use the location of screen as key of screen in SL2 cache 2020-05-14 09:18:47 +02:00
CobaltCore 0040db2fc0 Commit compatibility fix oversight 2020-05-11 20:47:58 +02:00
CobaltCore b6de915f85 Fix compatibility with existing rpyc files 2020-05-10 19:05:04 +02:00
CobaltCore b6218fdd6f Add backwards compatibility in MusicContext 2020-05-10 18:46:22 +02:00
CobaltCore 4878a59f6d Allow specification of per-file/per-queue volume 2020-05-10 18:30:14 +02:00
capntrips 6ea200eb1b add mobile screen variant to ios builds 2020-05-08 04:40:25 -05:00
Tom Rothamel 6befc8cc72 Allow Ren'Py to run if lib/mac-x86_64 does not exist.
Fixes #2188.
2020-05-08 02:07:09 -04:00
Tom Rothamel 7581d1ee34 matrix: fix abseq. 2020-05-04 19:29:08 -04:00
CobaltCore 2193628c5f Add ability to show progress bar instead of static presplash 2020-05-04 14:26:28 +02:00
Tom Rothamel 8760c3dd73 mac: Actually fix the problem. 2020-05-03 21:29:07 -04:00
Tom Rothamel a26e2a7fb8 mac: Only change sys.executable on a mac. 2020-05-03 20:51:35 -04:00
Tom Rothamel 347e4fa369 mac: Set sys.executable to lib/mac-x86_64/renpy, if it exists. 2020-05-03 03:40:06 -04:00
Tom Rothamel 794232f8ba mac: Unpack the binaries properly. 2020-05-02 20:52:47 -04:00
Tom Rothamel 3d2441c122 Merge pull request #2177 from mathrick/restore-config-use-cpickle
Make config.use_cpickle work again in Python 2.x
2020-04-30 22:21:18 -04:00
Sylvain Beucler 4f914d3625 Sync gamecontrollerdb.txt
from https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt
2020-04-29 15:28:32 +02:00
Lucas Ramage 831db00af3 Add renpyweb to license repositories
Bug: https://github.com/renpy/renpyweb/issues/4
2020-04-28 09:09:02 -04:00
Tom Rothamel 302858f1e0 r-b: New approach to changing icons.
Generally, the resource segment Ren'Py uses will be bigger than the
one used in games. If it is, keep it. Otherwise, use the delta
between section sizes everywhere.
2020-04-27 20:09:04 -04:00
Tom Rothamel c611c2c12e r-b: Include the launcher binaries in builds. 2020-04-27 20:08:45 -04:00
Tom Rothamel d7c435dff9 r-b: Re-enable icon changing. 2020-04-27 20:05:54 -04:00
Maciej Katafiasz 34ae4e785e Make config.use_cpickle work again in Python 2.x
Also document that it has no effect under Python 3
2020-04-27 12:38:37 -07:00
Lucas Ramage 556ce59f90 Clarify licensing in README 2020-04-27 08:54:32 -04:00
Tom Rothamel d0b715c2fd Add config.profile_init.
This provides a way to profile init blocks.

It's probably best used with something like:

    init -1000 python:
        config.profile_init = .2

To display any init block that takes longer than .2 seconds.
2020-04-26 20:25:15 -04:00
Tom Rothamel b5dd254da7 Add line continuations when compiling multi-line strings for eval. 2020-04-25 14:54:04 -04:00
kyouryuukunn 143f80c867 remove MTLc3m.ttf 2020-04-25 15:51:59 +09:00
kyouryuukunn 1d89786ec7 change japanese font to SourceHanSansCJLite.ttf 2020-04-25 15:43:35 +09:00
Tom Rothamel 5b492825b0 mac: Unpack macho executables if present.
The flipside of the previous commit, unpack the unsigned executables
and drop them onto the disk.
2020-04-25 01:27:57 -04:00
Tom Rothamel aa8806c4f7 mac: Avoid including macho executables in a .dmg.
Changes to Apple's notatization system make it hard to include
unsigned executables. To fix this, we'll attempt to write the
executables after the launcher starts.
2020-04-25 00:47:05 -04:00
Tom Rothamel ab90cddb5e Delete the old directory when making a directory package. 2020-04-25 00:46:30 -04:00
Tom Rothamel 5e42504770 Delete the "i" variable before user code runs.
Fixes #2172.
2020-04-24 22:18:49 -04:00
Tom Rothamel dc8ac37dec Merge pull request #2168 from Andykl/fix-MRO-typo
Fix subclass typo for exports.Container
2020-04-23 22:32:20 -04:00
Tom Rothamel cf104cfa36 gl2: Fix for statement to propertly set NEAREST. 2020-04-22 01:35:30 -04:00
Tom Rothamel a2ad38399b gl2: Propagate nearest-neighbor rendering to the shader. 2020-04-21 23:55:36 -04:00
Tom Rothamel 30352614cd gl2: Supply the correct information to the renpy.drawable_align shader.
This lets Ren'Py adapt to full or half pixel alignment, and makes
sure that text renders pixel perfect.
2020-04-20 23:09:19 -04:00
Sylvain Beucler 4e1b061271 web: tidy JavaScript snippets
In particular, fix "Expected '('" error with try/catch and MS Edge
2020-04-20 15:41:04 +02:00
Tom Rothamel aff09c8705 gl2: Use separate scaling factors for draw/virt in x and y. 2020-04-19 22:38:42 -04:00
Andy_kl 897bed0fc3 Fix subclass typo for exports.Container 2020-04-19 19:46:36 +02:00
Tom Rothamel 199d96551e gl2: Compute virtual->drawable directly.
This is helping with pixel-perfect text rendering, though we're
not completely there yet.
2020-04-18 23:42:28 -04:00
Sylvain Beucler f7d8fea29c web: support web-presplash.webp
actually display is in renpyweb/renpy-shell.html
2020-04-18 16:01:25 +02:00
Beuc f2fe516352 Only include progressive_download.txt in web builds 2020-04-18 15:30:56 +02:00
Tom Rothamel 2685c2dd00 gl2: Load the shaders early, so they can be part of error handling. 2020-04-17 21:00:03 -04:00
Tom Rothamel fca9fec458 text: Improved alignment pattern. 2020-04-16 23:17:18 -04:00
Tom Rothamel cf531103e7 Print matrices at higher precision.
This helps debugging screen transforms.
2020-04-16 23:17:18 -04:00
Tom Rothamel 30fc4fa06a Merge pull request #2160 from hsandt/fix-parse-queue-music
Fix parse error on `queue music [expr] channel [expr]`
2020-04-15 21:35:22 -04:00
Andy_kl 1c5ffb95c1 Added expensive_predict_callbacks config variable
This callbacks called one per tick of prediction_coroutine
and used to predict screens or other expensive stuff.
2020-04-15 21:34:47 +02:00
Andy_kl 03f9153b94 Do not predict screens twice if it was reached both of start_predict_screen and common way. 2020-04-15 20:53:55 +02:00
Andy_kl 1ae3fbe474 Remove screens exception reporting in prediction_coroutine due it already handled in screen.predict_screen 2020-04-15 20:46:42 +02:00
Andy_kl 66eb6f0d69 Report exceptions produced by predict_one_action 2020-04-15 20:44:53 +02:00
Andy_kl 20cd32c6c0 Fix typo in screen.cache_get 2020-04-15 20:39:10 +02:00
Andy_kl 01a2c80ebd Do not cause wrong reports for debug_image_cache by expression in calls and jumps.
Such messages arise with
label start:
    pause  # eval failed here
    $var = None
    pause  # non-existing label None here
    $var = "test"
    pause
    call expression var
    jump expression var
2020-04-15 18:56:04 +02:00
Tom Rothamel 9282e25a6a gl2: Give Text the ability to generate an alignment debug grid. 2020-04-14 23:32:19 -04:00
Tom Rothamel fad3daf3f8 Merge pull request #2163 from hsandt/fix-menu
Fix menu_kwargs restore assignment from old value
2020-04-14 22:05:47 -04:00
Andy_kl a8e71c17fa Do not broke predict_statements if developer used wrong label name. 2020-04-15 02:00:02 +02:00
Andy_kl 595f887f54 Add missed predicting flag for first screen in _predict_screen 2020-04-15 00:42:48 +02:00
Tom Rothamel 2d098ee38d gl2: Reset image cache on resize.
This fixes a problem where old-generation textures were being used.
2020-04-13 22:53:38 -04:00
Hyper Sonic dda4f8522f Fix menu_kwargs restore assignment from old value 2020-04-13 23:19:56 +01:00
Tom Rothamel 06a06525bb doc: Fix title. 2020-04-12 19:47:11 -04:00
Tom Rothamel 7d6fe876c3 Append to update/deferred.txt, rather than always overwriting. 2020-04-12 02:08:13 -04:00
Tom Rothamel b4d33569a9 gl2: Log a texture leak, but don't crash. 2020-04-12 00:08:45 -04:00
Hyper Sonic 1234df3994 Fix parse error on queue music [expr] channel [expr]
Added missing `continue` in parse_queue_music for `channel` parameter parsing
2020-04-11 17:13:13 +01:00
Tom Rothamel f16369bd8f gl2: Add drawable_align shader. 2020-04-10 22:42:40 -04:00
Hyper Sonic 8c8a8355d9 Fix #2158 by checking arguments in a loop in parse_stop_music
In addition, minor refactoring and error description change in parse_play_music to be more consistent with parse_queue_music and the new parse_stop_music
2020-04-10 22:53:53 +01:00
Sylvain Beucler b82a3366d4 web: add progressive download configuration for demos 2020-04-10 22:04:43 +02:00
Tom Rothamel e272bae995 gl2: Determine if pixel or subpixel blitting should be used. 2020-04-09 22:30:50 -04:00
Tom Rothamel d1d861ed9a gl2: Add Matrix.is_drawable_aligned.
A function that will help determine if a model is being drawn 1:1
to drawable pixels.
2020-04-08 02:52:27 -04:00
Tom Rothamel c158096f4c doc: Fix typo in ATL documentation. 2020-04-07 19:24:30 -04:00
Remix 91ce90dc89 Update 00gallery.rpy
Remove print statement
2020-04-07 22:10:57 +01:00
Tom Rothamel f0862b6eb2 gl2: Import renpy.uguu.angle explicitly. 2020-04-06 22:27:50 -04:00
Tom Rothamel 14a3cf5bac renpy.loadable should return true on files, not directories.
Fixes #2149.
2020-04-05 18:33:16 -04:00
Tom Rothamel 4916df0aff Merge pull request #2151 from Andykl/fix-kwargs-type
Fix the type of result `kwargs` value of label call.
2020-04-05 17:40:22 -04:00
Andy_kl bcefcd54da Make it more pythonic and probably faster. 2020-04-05 08:00:38 +02:00
Andy_kl 60966285b4 Fix repr of set for an exhausted level.
It could have been misinterpreted as a dictionary.
2020-04-05 07:57:46 +02:00
Andy_kl 89c292c7cc Repr empty containers as its short version even if level is over.
It gives more information about the structure at a price of nothing.
2020-04-05 07:53:09 +02:00
Tom Rothamel 0add5f8dfb done: Document the text tag. 2020-04-04 22:18:34 -04:00
Tom Rothamel d8d73a1be0 done: Do not add a {done} line to history. 2020-04-04 20:24:17 -04:00
Andy_kl 0031d321d5 Fix the type of result kwargs value of label call. 2020-04-05 01:44:16 +02:00
Tom Rothamel 071438ccb3 Merge pull request #2150 from Andykl/fix-savelocation
Fix a potential bug with duplicated path in savelocation.
2020-04-04 17:57:11 -04:00
Andy_kl cefb702f8c Fix a potential bug with duplicated path in savelocation. 2020-04-04 23:56:06 +02:00
Tom Rothamel c7f1df605f Add the {done} text tag.
Fixes #2131.
2020-04-03 22:51:20 -04:00
Sylvain Beucler f4625f4b49 progressive download: made progressive_download.txt error handling more robust, allow empty lines 2020-04-03 19:11:37 +02:00
Tom Rothamel bda5e69b30 Always uses modern logic to look up character names.
Fixes #2135.
2020-04-02 23:22:13 -04:00
Tom Rothamel 2d3427dc30 Rewrite Render.take_focuses.
This is simpler, and should be more correct.

Fixes #2146.
2020-04-02 01:51:43 -04:00
Tom Rothamel a2c5965a39 Merge pull request #2148 from Andykl/fix-typo
Fix typo with py_compile_cache
2020-04-01 22:19:02 -04:00
Andy_kl a75b5aa2bd Strip store. prefix in all cases. 2020-04-01 20:28:07 +02:00
Tom Rothamel 2ef261af14 Fix ShowingSwitch example.
Fixes #2141.
2020-03-31 22:31:40 -04:00
Tom Rothamel 65c5f38768 gl/gl2: Enable ANGLE when needed. 2020-03-28 19:32:10 -04:00
Beuc ef47381d64 Merge pull request #2114 from renpy/doc-alphamask-dup
doc: reference im.AlphaMask in AlphaMask
2020-03-28 21:30:39 +01:00
Tom Rothamel b41f74dd94 Fix typo.
Fixes #2142.
2020-03-28 02:16:14 -04:00
Tom Rothamel 2a64a0a198 uguu: Add support for switching between gl and angle. 2020-03-27 02:00:58 -04:00
Andy_kl 577822ee2d Do not mark non-simple define as pure 2020-03-27 03:00:39 +02:00
Andy_kl 8ac29a24d5 Fix typo with py_compile_cache 2020-03-27 01:30:54 +02:00
Tom Rothamel 9572b92e23 Merge pull request #2126 from Beuc/web-odrd-placeholders-master
web: progressive download
2020-03-26 00:36:14 -04:00
Tom Rothamel fc0eaef359 Fix Android and improve iOS video.
See renpy/renpy-build@98452f0d7e for
the other half of the iOS portion of things.
2020-03-25 22:52:55 -04:00
Tom Rothamel 35de85f6b1 Modal screens should keyboard and controller access to screens below them.
Fixes #2137.
2020-03-24 22:50:55 -04:00
Tom Rothamel 6ff35cff3c Check in whitespace changes. 2020-03-24 22:49:09 -04:00
Tom Rothamel 626685f018 Merge pull request #2134 from Moshibit/master
Documentation fix
2020-03-24 02:13:40 -04:00
Moshibit 7928f391cf fix typo 2020-03-22 12:43:16 -06:00
Moshibit bcc35c8ea3 documentation fix
fix example
2020-03-22 12:10:23 -06:00
Moshibit ca4d937cd2 Documentation fix
Add 'show' and 'showmenu' to a text tag documentation
2020-03-21 18:09:39 -06:00
kyouryuukunn e7732b0777 Merge pull request #2140 from kyouryuukunn/the_question_japanese_translation
added the_question japanese translation
2020-03-20 16:19:19 +09:00
kyouryuukunn c4ded1ec8b added the_question japanese translation 2020-03-20 16:17:23 +09:00
kyouryuukunn 0ffb2a96a3 Merge pull request #2138 from kyouryuukunn/tutorial_japanese_200318
Add Tutorial japanese translations and update Launcher japanese translation
2020-03-18 22:20:48 +09:00
kyouryuukunn 45af19d7c3 Update Launcher Japanese 2020-03-18 22:13:51 +09:00
kyouryuukunn fc438a395b Add tutorial Japanese translations 2020-03-18 22:09:50 +09:00
Tom Rothamel f24f004999 r-b: Detect iOS. 2020-03-16 02:21:10 -04:00
Moshibit bf31640d56 fix
the example has the 4 steps
2020-03-14 03:52:03 -06:00
Moshibit 7dbdeb9e9d small fix 2020-03-13 04:39:54 -06:00
Tom Rothamel ef53e08416 Add the ios_create and ios_populate commands.
Fixes #2125.
2020-03-13 02:28:44 -04:00
Tom Rothamel 04df67c9ba r-b: Include lib in the iOS build. 2020-03-11 23:49:22 -04:00
Tom Rothamel 979c51b8a2 Fix an encoding issue. 2020-03-11 22:27:41 -04:00
Moshibit 8bc389c536 small fix
highlight 'from' keyword
2020-03-11 19:38:58 -06:00
Moshibit 175ca26a32 Merge pull request #10 from renpy/master
update from renpy master
2020-03-11 19:34:03 -06:00
Tom Rothamel 3a90997203 py3: Fix another regression. 2020-03-10 22:56:25 -04:00
Tom Rothamel c6227254d2 py3: Fix a regression in lint. 2020-03-10 22:33:54 -04:00
Andy_kl 8b740e7e4b Make it possible to write in SL
key "z", "x" action Return()
instead of creating multiple keys or a new keymap key
2020-03-06 17:27:28 +03:00
Andy_kl a96d45586e Removed action requirement for SL key.
That fixes the exception for:
key "q" action If(False, Return())
as well as in #2066
2020-03-06 16:42:09 +03:00
Andy_kl 3016bda24d Improved renpy.pure function.
If this function is applied to a function in a module, it will be marked correctly.
2020-03-06 16:29:19 +03:00
Sylvain Beucler f1f3e74864 Merge branch 'web-odrd-placeholders' into web-odrd-placeholders-master 2020-03-05 18:57:56 +01:00
Sylvain Beucler fa3161135d Support voice progressive downloads
Introduce new 'voice' type in progressive_download.txt.
Predict 'voice' statements and pre-downloads them; removes files after 3mn to avoid consuming all memory.
Currently auto-voicing is not supported (may need prediction in "say" statement).
2020-03-05 18:52:48 +01:00
Joshua Fehler e918e5f560 Add linting for redefined define/default statements 2020-02-29 15:49:57 -05:00
Tom Rothamel a1fdf456e9 Remove the unused __GLTest displayable. 2020-02-28 01:07:10 -05:00
Tom Rothamel fe8b10b312 Revamp of Renderer selection and GL performance testing.
* Allow the player to select the model-based renderers.
* Remove the framerate test. (This was after seeing a Surface that
  reported the error, but was working fine. Plus, it's not clear
  that DX would have helped.)
* Remove the DirectX installer.
2020-02-27 23:24:11 -05:00
Sylvain Beucler 4afd551621 Merge branch 'web-odrd-placeholders' 2020-02-27 14:51:01 +01:00
Beuc bfcd757d2f Typo 2020-02-27 14:29:42 +01:00
Sylvain Beucler 444ed68f14 Code clean-up
Drop debug statements and refactor launcher integration.
Improve comments and launcher note.
2020-02-27 14:28:54 +01:00
Sylvain Beucler 7ed5656109 Remove static image placeholder (replaced by thumbnails) 2020-02-27 14:25:17 +01:00
Sylvain Beucler 8748c41aab Fix music de-dup 2020-02-27 14:25:17 +01:00
Sylvain Beucler d5f4cd6e77 Add generic include/exclude filtering for downloadable files, drop size-based filtering 2020-02-27 14:25:17 +01:00
Tom Rothamel a9d6bbfd40 r-b: Fix access to pygame.error. 2020-02-22 23:06:59 -05:00
Joshua Fehler bf6b5746b3 Use or operator instead of if statement 2020-02-22 21:51:08 -05:00
Sylvain Beucler b275ac6fe2 Handle very small images 2020-02-20 21:00:57 +01:00
Sylvain Beucler 98ee78a9e3 Use 32x32 rather than 64x64 pixellate preview, so it's less aggressive. 2020-02-20 19:35:12 +01:00
Tom Rothamel 85005a02d2 gl, gl2: Detect GL resets and reset the GL context. 2020-02-20 01:49:55 -05:00
Tom Rothamel c8c3fb1d4b no-set-mode: Remove fullscreen_video. 2020-02-20 01:40:35 -05:00
Tom Rothamel c5111012a5 no-set-mode: Remove the update_mouse function.
This is no longer used by any of the renderers, and it was only
useful in the software renderer, when it was not updating the
screen as a whole.
2020-02-19 02:06:28 -05:00
Tom Rothamel 01624ae28a no-set-mode, gl2: Update gl2 to the new Renderer api. 2020-02-18 20:22:39 -05:00
Tom Rothamel 46685bd20c Remove support for the software renderer from the graphics screen.
Since it's not intended to be used.
2020-02-17 21:10:34 -05:00
Tom Rothamel 2e6c8d66d8 Gut the software renderer.
As Ren'Py become more dependent on GL for functionality and
performance, the purpose of the software renderer is to provide
error messages to players.

As a result, support for fullscreen mode and a custom mouse has
been removed.
2020-02-17 21:09:45 -05:00
Tom Rothamel 9a38052e2c no-set-mode: Move post_init into Interface, where pygame.display.init is. 2020-02-17 21:09:45 -05:00
Tom Rothamel d2aebbeccd no-set-mode: Initialize interface.fullscreen. 2020-02-17 21:09:45 -05:00
Tom Rothamel f86c19dfe8 Merge pull request #2118 from jsfehler/patch-1
no-set-mode: Fix typos in core.py
2020-02-17 01:47:24 -05:00
Tom Rothamel dee9d1d915 no-set-mode: Implement the resize method for gl.
This is called to trigger a resize, which update then handles.
2020-02-17 01:39:00 -05:00
Tom Rothamel adbd29b218 no-set-mode: Remove uses of kill_textures_and_surfaces. 2020-02-17 01:29:56 -05:00
Joshua Fehler 9acefd5d87 Fix typos in core.py 2020-02-16 22:22:09 -05:00
Tom Rothamel 34563e8fe8 no-set-mode: Document the Renderer API.
This was an exercise in clearly expressing what the renderer API
is expected to do.
2020-02-16 21:15:22 -05:00
Tom Rothamel 1557f25505 Avoid deiniting rtt and environ. 2020-02-15 21:43:35 -05:00
Tom Rothamel 608a84cfd3 no-set-mode: Take the size from pygame_sdl2. 2020-02-15 00:31:17 -05:00
Tom Rothamel 88f35b0626 Begin moving to a world where the drawable manages fullscreen mode and size.
This is a much better fit for modern computers, as it means that Ren'Py
can use the window that has been resized for it, rather than having to
restart the video system whenever a resize occurs.
2020-02-14 23:35:05 -05:00
Tom Rothamel 7aa847828e r-b: Do not quit when APP_TERMINATE happens.
The update to the newest SDL on Androd seems to call terminate,
even when the app might come back to life. It's okay to let the
OS kill us, so we do that.
2020-02-13 23:12:29 -05:00
Sylvain Beucler c4e05b949c Match extractible filenames case-insensitively 2020-02-13 18:23:33 +01:00
GimmiRuski d0bf65314f Add splashscreen and presplash documentation 2020-02-13 18:17:58 +01:00
Beuc c85609e711 doc: reference im.AlphaMask in AlphaMask
It took me forever to spot that there are 2 functions with the same name, and the first one in the documentation (which we find through Ctrl+F) did not mention that.
2020-02-13 16:05:50 +01:00
Tom Rothamel a23d1c0c9f Merge pull request #2047 from Andykl/curry-name
Curry name
2020-02-12 22:39:11 -05:00
Tom Rothamel d7c94a14d4 Merge pull request #2111 from Andykl/li-at-list
li: Allow to type comma-separated at list without brackets
2020-02-12 22:37:44 -05:00
Tom Rothamel 045e9beddd r-b: Android wants to run in fullscreen. 2020-02-10 20:39:06 -05:00
Tom Rothamel 3a2dc707bd tq: Make the language picker conditional on fonts being available.
This makes the preferences menu available on Android.
2020-02-09 17:08:26 -05:00
Tom Rothamel 263855a574 r-d: Include the Python library with Android. 2020-02-06 02:01:58 -05:00
Tom Rothamel 3e0ad6d3ad Reduce TODO scanning from O(n^2) to O(n). 2020-02-05 22:57:23 -05:00
Tom Rothamel 8bd55a40a8 Limit how many characters are scanned for TODOs.
So that a single long line doesn't hang building a distro.

Fixes #2110.
2020-02-05 22:41:43 -05:00
Tom Rothamel d6889d52fb py3: Fix reverse iteration.
This fixes a regression introduced in 17b8f03429.
2020-02-05 22:17:51 -05:00
Andy_kl 3209856fd1 li: Allow to type comma-separated at list without brackets 2020-02-06 05:05:12 +03:00
Tom Rothamel e36a583f98 py3: Fix some encoding issues. 2020-02-05 02:53:06 -05:00
Tom Rothamel fbff752054 r-d: Make everything android-specific conditional on renpy.android.
This had mostly been true, but there were a few places where
if the android module had been importable was what mattered.
This has been fixed by moving to a unified Python library.
2020-02-04 02:47:10 -05:00
Tom Rothamel 0113d0a2dc Fix unicode issue when distributing. 2020-02-03 05:01:49 -05:00
Tom Rothamel 40e396860b Use lower-case names in the image location picker. 2020-02-02 01:31:27 -05:00
Andy_kl 0565b02301 Fix regression 2020-02-02 07:57:35 +03:00
Andy_kl 16374acda3 Added pretty repr for defaultdict and OrderedDict 2020-02-02 07:52:50 +03:00
Andy_kl c3c99eebd2 Added possibility to disable Unicode escaping in repr and add console command to toggle it. 2020-02-02 07:52:45 +03:00
Andy_kl f0feb4d7ac Use Python3-like sets repr. 2020-02-02 07:52:29 +03:00
Sylvain Beucler e51f8f1d4c Generate image placeholder previews on build 2020-01-30 21:54:41 +01:00
Joshua Fehler 35aeb61716 Fix typo in nvl_mode.rst 2020-01-30 15:07:00 -05:00
Sylvain Beucler 297c748061 Revert "web: Avoid the use of float arguments."
This work-around was specific to Emterpreter, which is obsoleted by ASYNCIFY.

This reverts commit dce59141a7.
2020-01-28 11:42:26 +01:00
RenpyRemix 95a9b9d148 Removed tuple of tuples in knots 2020-01-27 18:08:05 +00:00
Sylvain Beucler 49e4581fea Use time-based file pruning so long animations don't enter a download-flush loop 2020-01-24 20:58:05 +01:00
Sylvain Beucler 4b7e9b2bc3 Document principle of operation 2020-01-24 19:21:47 +01:00
Beuc b64e9fa0ae doc: fix config.predict_statements default value 2020-01-24 17:11:04 +01:00
Tom Rothamel d1bcbf11fd r-b: Ensure the right launcher program is distributed everywhere. 2020-01-24 00:34:57 -05:00
RenpyRemix e61cdc4f18 Catmull-Rom from ATL knots
Very basic (static elasticity) Catmull-Rom implementation to work with knots in ATL. Slight tweak to allow a knot to be a tuple of tuples and minor documentation changes.
2020-01-22 19:58:40 +00:00
Andy_kl 6b10c9b795 Encode and decode the text during copypaste 2020-01-21 08:02:36 +03:00
Andy_kl f7caa1f402 Remove copied field missed in 0b450d9a 2020-01-21 06:55:26 +03:00
Andy_kl 6dd8e92744 Fix problem with loss index_expression during copy 2020-01-21 06:51:02 +03:00
Andy_kl 9b7bfecbb8 Fix the problem when SL for index refers to tuple member 2020-01-21 06:49:35 +03:00
Tom Rothamel ba2fe63818 Fix printing the packages remaining to be built. 2020-01-19 23:14:34 -05:00
Tom Rothamel 72a8b8c686 Re-enable dmg creation. 2020-01-19 23:13:50 -05:00
Tom Rothamel 209b8d84d6 r-b: Deal with launcher.exe->renpy.exe change, fix mac build. 2020-01-19 22:52:52 -05:00
Sylvain Beucler bd4254cded Music support 2020-01-18 18:59:15 +01:00
Tom Rothamel dd22b51977 doc: Update rot13 example.
Now that rot13 isn't a codec.
2020-01-17 23:11:34 -05:00
Tom Rothamel 37a04188b0 Fix rot-13. 2020-01-15 23:08:12 -05:00
Tom Rothamel 0e649e43aa r-b: Start distributing the windows version. 2020-01-15 01:09:20 -05:00
Tom Rothamel 58592890ed r-b: Start work on distributing renpy-build Ren'Py. 2020-01-14 00:19:57 -05:00
Tom Rothamel ed39c16c4a py2: Json.dump outputs bytes on py2, str in py3. 2020-01-13 20:21:32 -05:00
Andy_kl 0d13b41c0f Print exception which caused on write_rpyc 2020-01-12 14:04:35 +03:00
Tom Rothamel 997905e714 Remove renpy.sh.
This is the start of integrating the renpy-build results into the
Ren'Py build process. As part of this, renpy.sh has been moved into
renpy-build, and is copied here as the dependences are built.
2020-01-11 16:40:58 -05:00
Sylvain Beucler 5f24680a72 Exclude video files from game.zip because porters tend not to do it 2020-01-11 13:56:20 +01:00
Sylvain Beucler 1eccf76695 Use same-size image placeholders 2020-01-11 13:05:29 +01:00
Tom Rothamel 4605113fbd Merge pull request #2084 from Moshibit/master
update old variable names in gui.rpy
2020-01-10 23:26:25 -05:00
Sylvain Beucler d8f98f3cef Decrease default minimum size 2020-01-04 17:13:59 +01:00
Sylvain Beucler 0a650d2491 DynamicImage support 2020-01-04 17:13:09 +01:00
Sylvain Beucler ebd622560b Index image downloads based on requested path; delay downloads pruning 2020-01-04 13:59:15 +01:00
Tom Rothamel 926b4aa498 Merge pull request #2069 from Andykl/doc-fix
Fix mistake in doc string
2020-01-03 20:37:58 -05:00
Tom Rothamel 4b41c44b8a gl2: Avoid multiplying by reverse twice when rendering to texture.
Multiplication by the reverse matrix is now done entirely in GL2Draw.
2020-01-01 00:50:48 -05:00
Tom Rothamel d4f0b12bec gl2: Make triangle indexes unsigned, to double the number in a mesh. 2020-01-01 00:49:58 -05:00
Tom Rothamel ee3730c65f Remove Mesh.copy.
It isn't used, and needs to be maintained - so out it goes.
2019-12-30 01:05:17 -05:00
Tom Rothamel db94e90382 gl2: Copy the # of points in a polygon. 2019-12-30 01:04:57 -05:00
Tom Rothamel f22339accd gl2: Add support for meshes allocated outside of Ren'Py.
That is, zero-copy support for live2d and other mesh frameworks.
2019-12-29 21:59:29 -05:00
Tom Rothamel c2206245ed py2: Use cPickle as pickle.
For performance reasons.
2019-12-29 15:27:04 -05:00
Tom Rothamel 05589d8c9c Boxes should not use the xfill/yfill behavior unless given.
They had been filling when given a minimum or size, which isn't
right.

Fixes #2081.
2019-12-29 15:11:58 -05:00
Tom Rothamel 5b9a630117 Only copy a MusicContext when it changes.
When a game uses a lot of Movies, it can create a ton of channels.
Copying those changes had been taking a lot of time, hence this fix.
2019-12-29 14:44:18 -05:00
Tom Rothamel d07c3e0a16 Autoreload now can handle music files without a restart. 2019-12-29 12:17:27 -05:00
Moshibit 5d22e41c7b update old variable names 2019-12-28 19:37:17 -06:00
Moshibit ed518fd8d4 update old variable names 2019-12-28 19:31:55 -06:00
Moshibit bb17d7f87b update old variable names 2019-12-28 19:20:50 -06:00
Moshibit 15c243daec update old variable names 2019-12-28 18:56:24 -06:00
Moshibit d17657c2d7 Merge pull request #9 from renpy/master
update from renpy master
2019-12-28 18:19:43 -06:00
Tom Rothamel 2e50eec6c3 Drop non-voice volumes when self-voicing is enabled.
Per #2079.

The idea here is that music may often not be mixed with the
thought of self voicing in mind, and so it makes sense to drop
the music and sound mixers when self-voicing is enabled. The
amount to drop by is controllable from the accessibility menu,
for games where this is not desired.
2019-12-28 12:30:51 -05:00
Tom Rothamel 56a4ee81bc Allow Ren'Py to reload images without having to reload everything. 2019-12-28 01:41:20 -05:00
Tom Rothamel a11b2e3977 Add renpy.flush_cache_file.
This removes a the image manipulators that depend on a file from the
image cache when one of the files that are depended on change. This
is also a first draft of the function needed to load files from the
web on the fly.
2019-12-27 21:44:43 +01:00
Tom Rothamel 1a14756ebb gl2: Add Mesh2, a 2D mesh.
Apart from being faster in some circumstances, this is close to
what other platforms (ie, Live2D) use internally, so at some point
we can avoid copying over that data.
2019-12-27 11:53:52 -05:00
Tom Rothamel 2e790dd00b gl2: Sererate out 3d meshes from the Mesh base class.
This is preparation for  a second class that handles only 2d meshes,
which are expected to be most of them.
2019-12-27 01:44:29 -05:00
Tom Rothamel 74b36c6e28 gl2: Remove crop_to_rectangle.
It wasn't used, and isn't going to be used.
2019-12-26 21:05:25 -05:00
Tom Rothamel 793488bdf8 Add renpy.flush_cache_file.
This removes a the image manipulators that depend on a file from the
image cache when one of the files that are depended on change. This
is also a first draft of the function needed to load files from the
web on the fly.
2019-12-25 14:16:34 -05:00
Tom Rothamel 2b6379694e Add the {alt} text tag, making text self-voiced.
Fixes #2074.
2019-12-25 07:44:53 -05:00
Tom Rothamel 3578438623 media: Remove unnecessary thread initialization. 2019-12-24 16:23:44 -05:00
Tom Rothamel 74464fe55d media: Redo media locking and name management.
There was a problem reported whenre Py_DECREF could cause arbitrary
pauses to occur. Now, the names stored inside renpysound are C strings,
rather than Python strings, and so they can be deallocated without
risk of triggering the garbage collector.

Locking has also been somewhat simplified - theree are now two
locks, the audio and name lock, with rules of each. The functions
now do not grab the GIL automatically, as there's no need.
2019-12-24 16:19:56 -05:00
Tom Rothamel e2c63af520 py3: Fix trace. 2019-12-24 15:30:18 -05:00
Tom Rothamel b14a932643 Check in uguu. 2019-12-23 23:52:20 -05:00
Tom Rothamel 08e798ba13 Merge pull request #2062 from Moshibit/master
fix spanish translation and fix documentation
2019-12-23 13:27:29 -05:00
Tom Rothamel 0effdebca9 Remove gl2geometry.
This has been obsoleted by gl2mesh, gl2polygon, and gl2model.
2019-12-22 18:46:40 -05:00
Tom Rothamel caae5a7856 Stop generating renpy.angle.
Now that it's been combined with renpy.gl, there's no need for the
second package.
2019-12-22 18:45:43 -05:00
Tom Rothamel 2f2f236f4a gl2: Use the renderer name to determine gl2es and angle usage. 2019-12-22 18:11:40 -05:00
Tom Rothamel 4fe63ded98 gl2: Remove gl2debug.
It wasn't being used since it caused crashes.
2019-12-22 18:07:18 -05:00
Tom Rothamel c32556c09d Remove a debug print. 2019-12-21 15:15:33 -05:00
Tom Rothamel 47098746d0 Improve Ren'Py running on windows.
Especially the modern Ren'Py that assumes a utf-8 internal encoding.
2019-12-21 01:11:09 -05:00
Tom Rothamel f775088aa3 Remove obsolete modules from Setup. 2019-12-21 01:10:48 -05:00
Beuc 1f59c54ab8 start/stop_predict_screen: fix English 2019-12-19 22:01:40 +01:00
Tom Rothamel ddb8c8c068 gl1: Remove support for OpenGL 1.x, renpy.angle, and non-SDL2 EGL.
This is part of the ongoing modernization program. OpenGL 1.x is
now hopelessly obsolete, so it's gone. SDL2 now supports creating
contexts for us, so we'll use it to manage the EGL path.
2019-12-16 00:45:00 -05:00
Tom Rothamel 9c344ca5da gl1: Remove the dependency on glew.
Now that we have uguu, we use it for the older gl versions as
well. This lets us use SDL to handle all GL contect initialization.
2019-12-15 20:55:27 -05:00
Sylvain Beucler 1ee6f9892a Exclude game/gui/ from downloads to mitigate GUI blacks on start-up (will be configurable later) 2019-12-14 20:41:14 +01:00
Sylvain Beucler 28bab6a226 Warn when image cannot be reloaded, document limitation with manipulated images 2019-12-14 20:35:35 +01:00
Sylvain Beucler b570cf8b38 Rewrite .zip filtering to avoid MemoryError with large files 2019-12-14 20:34:37 +01:00
Sylvain Beucler daa6c48df2 Fix case sensitivity 2019-12-14 20:32:34 +01:00
Sylvain Beucler 6866c21621 Improve error handling 2019-12-14 20:24:29 +01:00
Sylvain Beucler f549935cbb Handle duplicate images and avoid concurrency issues in simulation mode 2019-12-14 20:20:41 +01:00
Sylvain Beucler 7f2fc1a675 First code review
- Use \n separator in renpyweb_remote_files.txt
- Move download code to a new module
- load_core() now throws a DownloadNeeded exception which is caught by Image.load(), calling renpy.webloader.enqueue()
- renpyweb_remote_files.txt is now only processed if downloading is enabled
2019-12-14 20:14:39 +01:00
Sylvain Beucler 2273212809 Support multiple search paths 2019-12-14 20:11:19 +01:00
Sylvain Beucler b81969f1dc Rename dl.png to _dl.png for namespacing reasons
following Renpytom request
2019-12-14 20:10:42 +01:00
Sylvain Beucler a8f3a108a0 Better error handling 2019-12-14 20:03:09 +01:00
Sylvain Beucler 41ba770ecf First testable version 2019-12-14 19:59:17 +01:00
Sylvain Beucler 4c1e048efb First proof-of-concept 2019-12-14 19:56:05 +01:00
Tom Rothamel f8004957c9 uguu: Move to the renpy.uguu package.
This is in preparation for sharing uguu between gl and gl1, so the
dependency on GLEW (and perhaps the renpy.angle package) can go
away.
2019-12-14 13:28:41 -05:00
Tom Rothamel e8ddb39a98 Mark uguugl functions as __stdcall.
This should be the right calling convention for windows.
2019-12-14 12:45:23 -05:00
Tom Rothamel e2cab9b115 Build against the RENPY_BUILD fribidi. 2019-12-14 10:37:44 -05:00
Moshibit 9b5943d12f Update tutorial_video.rpy 2019-12-11 09:27:15 -06:00
Moshibit 80e3c89513 Update tutorial_video.rpy 2019-12-11 09:26:49 -06:00
Moshibit d5d6194a2b Update indepth_transitions.rpy 2019-12-11 09:24:50 -06:00
Moshibit da26b18e73 fix doc string 2019-12-11 09:21:47 -06:00
Moshibit edfb482acb Fix mistakes 2019-12-11 09:00:44 -06:00
Moshibit dec513667f fix documentation 2019-12-11 08:50:58 -06:00
Moshibit e5e5890d3c fix documentation 2019-12-11 08:40:09 -06:00
Tom Rothamel c5dc781b05 Add a Setup file that includes the source for each module.
This is used by renpy-build to compile Ren'Py statically.
2019-12-09 21:07:05 -05:00
Moshibit af467d7d8c minor fixes and quoted keywords 2019-12-08 09:02:30 -06:00
Moshibit a8c505305e quoted keywords 2019-12-08 08:27:00 -06:00
Moshibit 31ef127e98 quoted keywords 2019-12-08 08:17:55 -06:00
Moshibit 14241f5ebf minor fixes 2019-12-08 08:13:49 -06:00
Moshibit 64a55d6556 Quoted Keywords 2019-12-08 08:09:51 -06:00
Moshibit b026b49d43 Quoted Keywords 2019-12-08 07:22:02 -06:00
Moshibit 5eefa10b86 quoted keywords 2019-12-07 11:11:59 -06:00
Moshibit d86475a16a quoted keywords 2019-12-07 11:03:38 -06:00
Moshibit 17af380e31 quoted Keywords 2019-12-06 09:23:46 -06:00
Moshibit a1943bb644 quotedKeywords 2019-12-06 09:01:02 -06:00
Moshibit cffab0d9dc quoted keywords 2019-12-05 09:17:55 -06:00
Moshibit 21cd48616b minor fixes 2019-12-05 08:27:35 -06:00
Moshibit d68ca61ab7 Use of single quotes in the Keywords. 2019-12-05 07:57:15 -06:00
Tom Rothamel 9985d24aed Add a command to generate files without actually building. 2019-12-03 21:00:56 -05:00
Andy_kl 00544ab0bf Fix mistake in doc string 2019-12-03 01:14:06 +03:00
Moshibit 9fd78e4000 fixes and quoted keywords 2019-11-30 10:07:30 -06:00
Moshibit ab03e69b6b Use of single quotes in the Keywords. 2019-11-30 08:45:03 -06:00
Moshibit d00cad3d79 Merge pull request #8 from renpy/master
update from renpy master
2019-11-30 08:19:23 -06:00
Tom Rothamel 82ac0a694f Merge pull request #2066 from Andykl/if-action
Do not raise error when Timer has None as the action
2019-11-29 23:12:59 -05:00
Tom Rothamel 5d642ce01d Let renpy.dynamic take keyword arguments.
Fixes #2068.
2019-11-28 12:07:55 -05:00
Tom Rothamel 7d23dfa1de py3: Assume future exists in the pythonpath. 2019-11-27 23:52:36 -05:00
Tom Rothamel ef5f0ed5ab py3: Ensure sys.modules, __name__, and __path__ all use native str. 2019-11-26 21:56:03 -05:00
Tom Rothamel da2fa5d7ec py3: Add compatible .keys, .values, and .items methods to RevertableDict. 2019-11-26 20:25:37 -05:00
Tom Rothamel 57e16e506d py3: Add the 'rpy python 3' statement.
This compiles python in a .rpy file in a way that is more compatible
with Python 3. (It enables Python 3 division, and will enable Python3
.items(), .keys(), and .values().)
2019-11-26 19:37:49 -05:00
Andy_kl 863fab3880 Do not raise error when Timer has None as the action 2019-11-26 22:58:47 +03:00
Tom Rothamel 180cb0e4dd py3: Get the launcher starting up in Python 3. 2019-11-25 17:49:33 -05:00
Tom Rothamel be3643b9c9 gl2: Improve mesh-space clipping.
* Clip offset per-child.
* Clip render-to-texture.
2019-11-23 23:25:01 -05:00
Tom Rothamel ba6b9e223d gl2: Implement clipping in mesh coordinates.
This eliminates the need to transform the mesh back to viewport
coordiates before clipping, and hence should improve accuracy by
skipping that step.
2019-11-23 00:07:53 -05:00
Tom Rothamel 8c3809d3e2 gl2: There are 3 vertices per triangle. 2019-11-22 01:46:01 -05:00
Tom Rothamel 328a2c6b05 gl2: Get mesh-based gl2 to the point of running.
It doesn't render anything, yet - but it's at least starting up and
able to run to the point of displaying a blank window.
2019-11-21 23:36:48 -05:00
Tom Rothamel 6d8690834f gl2: Move the model methods over to gl2model. 2019-11-21 01:01:47 -05:00
Tom Rothamel 025bcd1c36 Name 7.4.0. 2019-11-18 21:35:19 -05:00
Tom Rothamel 666a24fd0b py3: Write the RPYC2_HEADER in binary. 2019-11-18 01:00:08 -05:00
Tom Rothamel 0809c9f07b py3: Pass unicode to strftime. 2019-11-18 00:58:36 -05:00
Tom Rothamel d379e0e2fe Ensure xminimum and yminimum are never None.
They always should be at least 0, and None makes some of the math
wrong.
2019-11-17 23:49:32 -05:00
Tom Rothamel eedd357fe9 py3: Add sort keys to sorts where some elements are not orderable. 2019-11-17 21:30:34 -05:00
Moshibit aed7ff7ae6 minor fix in spanish translation 2019-11-17 20:21:31 -06:00
Moshibit 2ffa24514d Merge pull request #7 from renpy/master
Update from renpy/master
2019-11-17 20:11:54 -06:00
Tom Rothamel 9d595931e2 py3: Export null from display.transform to display.motion.
This cleans up after a change in imports.
2019-11-17 20:24:24 -05:00
Tom Rothamel d810c73d81 py3: Move to using the PyGILState APIs.
These are reentrant ways of getting the GIL.
2019-11-17 20:22:13 -05:00
Tom Rothamel 32e111099e py3: Fix a sort-first issue in focus, add index0 helper for this. 2019-11-17 19:39:30 -05:00
Tom Rothamel bbb846bd3b py3: Be stricter about double-locking of threads.
Python 3.8 was producing an error when trying to swap to the
current thread, so we make sure it doesn't do that.
2019-11-17 17:41:41 -05:00
Tom Rothamel e7175509d2 py3: Remove the hex codec on Py3. 2019-11-17 12:44:10 -05:00
Tom Rothamel 1ebb3ff5ed py3: Temporarily disable Py3 const analysis.
This is because a Python3-compatible version needs to be written.
2019-11-17 12:43:21 -05:00
Tom Rothamel 193cf9a37c py3: Remove ur string prefix. 2019-11-17 12:42:45 -05:00
Tom Rothamel 957980866f py3: Remove obsolete file alias. 2019-11-17 12:42:14 -05:00
Tom Rothamel 5fecf8aa88 py3: object.__new__ does not take arguments. 2019-11-17 12:41:41 -05:00
Tom Rothamel 17b8f03429 py3: Simplify some of the use of ranges in renpy.display.core. 2019-11-17 12:40:27 -05:00
Tom Rothamel 88dee147c4 py3: Check that android is importing correctly.
A temporary thing, until I can figure out why android is being
created as an implicit namespace package.
2019-11-17 12:36:19 -05:00
Tom Rothamel dc3c21a216 py3: Remove method binding magic for Transform.render.
It wasn't working in python3, and the little performance it adds
isn't really worth the weirdness.
2019-11-17 12:32:27 -05:00
Tom Rothamel e971a7e90f py3: Support python3 in renpy.compat.
Mostly by including py3 versions of the names it exports.
2019-11-17 12:29:06 -05:00
Tom Rothamel f246611838 py3: Write the BOM directly.
Now that we're using unicode strings and unicode files, we can't
use codecs.BOM, which is a byte string.
2019-11-17 12:28:03 -05:00
Tom Rothamel f2bebb42f3 py3: Access function name through func.__name__. 2019-11-17 12:26:09 -05:00
Tom Rothamel cb15f18415 py3: Fix comprehension syntax for 00splines.rpy. 2019-11-17 12:25:20 -05:00
Tom Rothamel ce40000f77 py2: Changes required to get renpy.gl working. 2019-11-17 12:24:40 -05:00
Tom Rothamel f0465baebe py3: Ensure that comparisons used comparable types. 2019-11-17 12:23:22 -05:00
Tom Rothamel a51c9b714b py3: Use new names for modules and functions. 2019-11-17 12:21:41 -05:00
Tom Rothamel aa3979f0f9 py3: Various bytes->unicode related changes. 2019-11-17 12:17:54 -05:00
Tom Rothamel 82c2e05fe4 py3: Support Python 2 and 3 in python.py
Other than changes in methods and the removal of ur strings, this
deals with the Py2 ast using byte strings, while Py3 uses unicode
strings.
2019-11-17 12:13:13 -05:00
Tom Rothamel b3ca90f6ac py3: Use unicode to access os.environ. 2019-11-17 12:09:05 -05:00
Tom Rothamel 1d3a46beef py3: Remove uses of .iter{items,keys,values} and xrange. 2019-11-17 12:05:17 -05:00
Tom Rothamel 8fe528c531 py3: Ensure hashlib hashes are only given bytes. 2019-11-17 11:49:55 -05:00
Tom Rothamel c2beee395b py3: Futurize renpy.audio. 2019-11-17 11:38:49 -05:00
Tom Rothamel 5684b75112 Allow renpy to import even if _renpy is missing.
This makes building from scratch easier.
2019-11-17 11:38:04 -05:00
Tom Rothamel 58cf37ddf5 py3: Add support for building under and for Python 3. 2019-11-17 11:25:40 -05:00
Tom Rothamel 08388537aa py3: Futurize generate_styles. 2019-11-17 11:22:58 -05:00
Tom Rothamel 275be03abf py3: Dict iteration in pyx.
Cython implements .iteritems, .itervalues, and .iterkeys for dicts
in a way that works with Python 3 - so long as it knows that it's
dealing with a dict type. This add some annotations to help it out.
2019-11-17 00:41:32 -05:00
Tom Rothamel 25f8ac8c51 py3: Futurize renpy.translation. 2019-11-16 23:33:30 -05:00
Tom Rothamel bfdc64f78b py3: Futurize python in renpy.text. 2019-11-16 23:21:18 -05:00
Tom Rothamel 3cc1eae159 py3: Futurize python in renpy.gl, renpy.sl2, and renpy.test. 2019-11-16 23:01:25 -05:00
Tom Rothamel fd2a63be15 py3: Futurize renpy.display package. 2019-11-16 22:16:02 -05:00
Tom Rothamel 52e447f8b7 py3: Futurize the rest of the renpy package. 2019-11-16 20:42:48 -05:00
Tom Rothamel d6a9a3c2dc py3: Convert to future up to character.py 2019-11-15 01:48:07 -05:00
Tom Rothamel 4755f10ccb py3: Start moving from six to future via renpy.compat.
This is the start of a series of changes that will embrace future's
philosophy - that Python 2/3 source should be as close to Python 3
as possible - and even extended a bit, like with dictviews.

We do have to pick and choose with future - it's important that
Ren'Py remain performant over the transition period - but things
like using sys.modules to map modules to their new Python 3
locations does appeal to me.
2019-11-15 00:16:57 -05:00
Tom Rothamel 78b3bf83f0 py3: Do not reload compat modules. 2019-11-14 22:13:58 -05:00
Tom Rothamel 1ecd8c5ff0 py3: Move dictviews into renpy.compat namespace. 2019-11-14 00:51:56 -05:00
Tom Rothamel 3de8416040 py3: Trigger .items() change differently.
It now triggers on: from __future__ import with_statement, division.

This should be a bit safer, because with_statement is obsolete - even if
it is used by any Python, it can be removed without changing the
semantics of the program. (We can't trigger _just_ on it, as all
old .rpycs are compiled with that flag.)
2019-11-13 19:20:29 -05:00
Tom Rothamel dbd318587c py3: Allow .items(), .keys(), and .views() to return views.
Right now, this is opted into when "from __future__ import division"
is given, and lets us program using Python 3's dict semantics while
still working in Python 2.
2019-11-13 03:11:21 -05:00
Tom Rothamel 4e703f6fbe py3: Add a function to patch built-in types.
Probably the only way py3 Ren'Py is going to look acceptable is
to support .items(), and the only way to do that is to patch Python
2.7 to replace the method with one that returns the appropriate
proxy.

While we're at it, we can re-add iteritems() and itervalues(),
makng those accessible to older code via dict.
2019-11-12 01:34:36 -05:00
Tom Rothamel 7c030c771b gl2: Implement scaling for model.
And use it to test subsurface.
2019-11-11 22:55:24 -05:00
Tom Rothamel 33e617da15 gl2: Add the Model class. 2019-11-11 02:01:12 -05:00
Tom Rothamel e0da79fc79 Only duplicate the child of a DynamicDisplayable if it changes. 2019-11-10 12:57:33 -05:00
Tom Rothamel ed5fb83c57 matrix: Add a scale constructor. 2019-11-10 12:52:55 -05:00
Tom Rothamel 303517a6de Make the matrix constructors into methods on Matrix.
With each one having a python and cython equivalentd, since cpdef
isn't allowed for static methods.
2019-11-09 22:23:25 -05:00
Tom Rothamel 40bd76ef64 gl2: Add a mesh-rectangle intersection method.
Saves memory by not actually having to make the polygon.
2019-11-09 00:51:25 -05:00
Tom Rothamel 1636a5679c Disable autosave while at a splashscreen.
Fixes #2045.
2019-11-08 23:50:31 -05:00
Tom Rothamel b9677d28ed Add the _autosave variable.
This is a variable that determines if autosaving is allowed.
2019-11-08 23:50:17 -05:00
Tom Rothamel 52aeaf1e64 Merge pull request #2054 from Andykl/fix-2053
Wrap actions box on overlap in exception screen.
2019-11-08 22:39:43 -05:00
Tom Rothamel c2f969441c Merge pull request #2052 from Moshibit/master
Spanish translation update
2019-11-07 22:32:29 -05:00
Tom Rothamel 02bfd59c48 gl2: Extract model out into its own file. 2019-11-06 22:10:33 -05:00
Tom Rothamel 635de64568 gl2: Remove the Mesh/Data distinction.
Now a Mesh contains the geometry data, and we'll have Model to
contain the transformation and other data.
2019-11-05 22:11:13 -05:00
Tom Rothamel b085a319d2 Allow matrix multiplication of a polygon. 2019-11-05 01:42:36 -05:00
Andy_kl 94838b1054 Wrap actions box on overlap in exception screen. 2019-11-05 03:18:50 +03:00
Moshibit a7aca69514 translation update 2019-11-04 15:02:11 -06:00
Moshibit f4c2dd91f1 Merge pull request #6 from renpy/master
update
2019-11-04 14:53:55 -06:00
Tom Rothamel 071b065442 gl2: Check in gl2meshcrop. 2019-11-04 13:12:15 -05:00
Tom Rothamel 37f8f0cde5 Redo how renpy.config.return_not_found_label works.
Fixes #2051.
2019-11-04 01:48:56 -05:00
Tom Rothamel 0807d0eccc gl2: Support cropping a Mesh with a Polygon. 2019-11-03 09:57:42 -05:00
Tom Rothamel 270f958827 gl2: rename Mesh.texture_rectangle, and add @staticmethod. 2019-11-03 09:51:03 -05:00
Tom Rothamel b7f06e875e gl2: Meshcrop works with floats. 2019-11-02 21:02:53 -04:00
Tom Rothamel f8412a267e gl2: Move Polygon out into a pxd. 2019-11-02 20:58:36 -04:00
Tom Rothamel 95a2200d53 gl2: Move mesh creation to static methods.
And remove some debug code.
2019-11-02 19:45:45 -04:00
Tom Rothamel bd6ad1cafb gl2: Polygon-polygon intersection. 2019-11-02 18:17:36 -04:00
Lezalith 017f5562a7 Input parameters "allow" and "exclude" can take regex
They can either take a string to stick to the default functionality, or can take a RegEx object created by re.compile.
2019-11-02 17:30:19 +01:00
Tom Rothamel 483a732ec8 gl2: Start work on the new 2d-only Polygon class.
This is intended for use as the clip polygon, and hence it doesn't
need 3d support. (The new Mesh implermentation doesn't use this,
as it has its own polygons.)
2019-11-01 23:46:46 -04:00
Tom Rothamel 5e6c6c622e Remove 'import pygame' from _renpy.pyx. 2019-11-01 23:45:47 -04:00
Tom Rothamel bc1966919e gl2: Rename Point -> Point3
To make room for a Point2 struct that will be part of Polygon.
2019-11-01 23:03:40 -04:00
Tom Rothamel c338c413b5 Migrate the new mesh implementation in from glexperiment. 2019-11-01 22:44:05 -04:00
Tom Rothamel 95302be140 Extend the define statement to take indexing, +=, and |=.
These handle common use cases, like setting dictionary entries
and appending to keymaps.
2019-10-31 21:51:34 -04:00
Tom Rothamel 4b4b1503b0 Add config.return_not_found_label.
This provides a way of recovering from "Could not find return label."
2019-10-30 19:49:20 -04:00
Tom Rothamel 7cf5ea96ad Merge pull request #2048 from Andykl/fix-sl2-pass
Add pass parser to all SL statements
2019-10-29 18:13:07 -04:00
Andy_kl 103116dcec Add pass parser to all sl statements 2019-10-29 13:32:17 +03:00
Andy_kl 8be012945f Fix typo in __hash__ 2019-10-29 12:50:45 +03:00
Andy_kl 18992d49a7 Added __name__ field for Curry instances 2019-10-29 12:49:35 +03:00
Tom Rothamel 5201125d82 Remove debugging code. 2019-10-28 22:53:09 -04:00
Tom Rothamel 3c857c6298 Ensure that pickle can load old RevertableSets.
This fixes a regression introduced in  df88bdfd26 that
could break the loading of the persistent file, and probably also save data. Fixes #2046.
2019-10-28 22:51:32 -04:00
Beuc f443cd1d7d Typo 2019-10-28 16:53:32 +01:00
Tom Rothamel 5b72b5dc7b Stop treating renpy.image_size as pure.
It changes it behavior between the init phase and actual runtime,
by erroring out when used on the main thread.
2019-10-27 22:33:49 -04:00
Tom Rothamel 42326e42ea Create a single texture that's used to blit transparent_tile.
This is a performance increase, as it means that a single draw call
can show the entire transparent_tile image, rather than over a dozen.
2019-10-27 22:29:25 -04:00
Tom Rothamel e5ced3a637 Add memory.txt to the list of files that shouldn't be distributed. 2019-10-27 16:41:17 -04:00
Tom Rothamel 6936da7f31 gl: Avoid calling glGenTextures.
This is part of a series of performance improvements when threaded
optimizations are enabled on Nvidia cards. (__GL_THREADED_OPTIMIZATIONS=1
on Linux.)

glGenTextures was taking a long time - 3ms! - to complete. So we
avoid it entirely, and instead allocate the texture numbers
beforehand and clear the textures without deallocating the
numbers.
2019-10-27 02:03:15 -04:00
Tom Rothamel 989d419a06 py3: Fix import of six. 2019-10-26 22:03:02 -04:00
Tom Rothamel d4ca7ae770 Pressing f8 now enables frame profiling, if not enabled already. 2019-10-26 16:10:35 -04:00
Tom Rothamel e5fb4a034c Merge pull request #2042 from joaquingx/improve-documentation
Improve documentation
2019-10-24 19:36:29 -04:00
Tom Rothamel c38efabf2e Merge pull request #2043 from Andykl/namespace-minstore
Added add_to_all_stores function
2019-10-24 19:30:56 -04:00
Lezalith 7957098da8 Input parameters "allow" and "exclude" can take regex 2019-10-24 21:06:36 +02:00
Beuc c1b077ff17 Don't use emscripten.async_call while already in async mode
This particular use case appears to be safe, but I could make Ren'Py crash with more complex async_call-s.
This may also explain some irregular crashes a while ago when letting RenPyWeb run unattended.
This is somewhat similar to running Python in two threads. In doubt, let's avoid.
Moreover, however autosave is run, the browser will freeze a bit, no significant change.
2019-10-24 20:28:19 +02:00
Andy_kl df58da708d Added add_to_all_stores function 2019-10-24 07:08:14 +03:00
Tom Rothamel 6691bb020e py3: Import six from renpy.six. 2019-10-23 23:28:00 -04:00
Joaquin Garmendia Cabrera 0022da41ea make expression example explicit 2019-10-22 23:43:45 -05:00
Joaquin Garmendia Cabrera 87ad417dcc Fix typo in displaying_images 2019-10-22 23:40:39 -05:00
Joaquin Garmendia Cabrera d7cc94d791 Update python equivalents, format text in dialogue 2019-10-22 23:37:45 -05:00
Tom Rothamel a4ea368c14 Cope with the case where a displayable is invalidated during render.
This is possible for certain things like viewports that share an
adjustement, or bars that are rendered before the corresponding
viewport. This detects this case are restores the render to a
useable state.
2019-10-20 12:54:02 -04:00
Tom Rothamel 4095a55c0b py3: Modernize renpy.main to renpy.pyanalysis. 2019-10-19 19:40:57 -04:00
Tom Rothamel c97899ef1a py3: Run modernize on renpy.easy to renpy.log. 2019-10-18 21:51:15 -04:00
Tom Rothamel c400653b7d Merge pull request #2036 from Andykl/py3-revertable-list
[Py3] Updated behavior of RevertableList
2019-10-17 22:23:22 -04:00
Tom Rothamel 40cefb1db6 Manually merge #2036 into maint branch. 2019-10-17 19:34:05 -04:00
Tom Rothamel 8010128dc1 Update changelog and sponsors. 2019-10-16 22:06:58 -04:00
Tom Rothamel 3a3443ac3b Bump version. 2019-10-16 21:58:01 -04:00
Tom Rothamel e75d5d0ca2 Update changelog and sponsors. 2019-10-16 21:42:36 -04:00
Andy_kl 4a1fe5f4a1 Rework presplash processing 2019-10-15 20:37:51 -04:00
Tom Rothamel 56987e4029 lint: Fix error when adding additional information.
Fixes #2040.
2019-10-15 20:37:37 -04:00
Maxwell Paul Brickner ce71caef97 Updated URL to avoid redirect to HTTPS version
Updated URL in readme to use HTTPS instead of HTTP to avoid redirect to HTTPS version.
2019-10-15 20:37:22 -04:00
Tom Rothamel ff07cf4903 Check in entitlements.plist. 2019-10-15 20:36:04 -04:00
Tom Rothamel 93f2ec7a7d Add the audio directory to the launcher and new games. 2019-10-15 20:35:51 -04:00
Tom Rothamel 7754db33f9 Fix reference to self and not renpy.config. 2019-10-15 20:34:25 -04:00
Tom Rothamel e7a7277a91 Add config.exception_handler.
This allows creators to replace Ren'Py's exception handling with
a system of their own design.
2019-10-15 20:32:39 -04:00
Tom Rothamel fe48d45331 lint: Fix error when adding additional information.
Fixes #2040.
2019-10-15 19:57:31 -04:00
Tom Rothamel 40af08b40c py3: Run modernize on renpy.__init__ to renpy.dump 2019-10-15 18:19:43 -04:00
Tom Rothamel 66a3f97be7 Merge pull request #2039 from Andykl/fix-presplash
Rework presplash processing
2019-10-15 00:50:45 -04:00
Andy_kl 369fa14d66 Rework presplash processing 2019-10-15 04:39:04 +03:00
Tom Rothamel 3ec9628080 Reduce the .rpyc compression to 3.
This should improve write/read time in exchange for a minimal
increase in size.
2019-10-14 00:52:53 -04:00
Tom Rothamel 3f605f4c9d py3: Remove use of .encode("zlib") and .decode("zlib"). 2019-10-14 00:36:03 -04:00
Tom Rothamel 995333386b py3: Make archiver.rpy and loader.py Python 3 compatible. 2019-10-13 23:57:40 -04:00
Andy_kl 5e74207bf4 Added useful list methods from Python 3 2019-10-14 04:46:19 +03:00
Andy_kl 1f9219457a Return processing of slice-objects but only for Python 2 2019-10-14 04:39:53 +03:00
Andy_kl 1acc6efb10 Updated processing of slice-objects 2019-10-14 04:34:52 +03:00
Tom Rothamel c50226d56b doc: Fix sidebar glitch.
Fixes #2012.
2019-10-13 19:50:24 -04:00
Tom Rothamel 12ce248952 Merge pull request #2035 from mbrickn/patch-1
Updated URL to avoid redirect to HTTPS version
2019-10-12 16:43:59 -04:00
Maxwell Paul Brickner f47b4ee32e Updated URL to avoid redirect to HTTPS version
Updated URL in readme to use HTTPS instead of HTTP to avoid redirect to HTTPS version.
2019-10-12 16:43:04 -04:00
Tom Rothamel a77b7ba98f Check in entitlements.plist. 2019-10-11 20:15:56 -04:00
Tom Rothamel 28bd3d91b7 Add the audio directory to the launcher and new games. 2019-10-11 20:03:46 -04:00
Tom Rothamel 26d692714f Fix reference to self and not renpy.config. 2019-10-11 01:44:08 -04:00
Tom Rothamel c682e4f406 Add config.exception_handler.
This allows creators to replace Ren'Py's exception handling with
a system of their own design.
2019-10-11 00:13:36 -04:00
Tom Rothamel 54ec9e5c9b Import pygame_sdl2 rather than pygame, in all places. 2019-10-10 23:59:38 -04:00
Tom Rothamel f1b301efa1 Move package path updates into each package.
This is intended to make it possible to import modules on their
own, for code analysis purposes.
2019-10-10 20:54:06 -04:00
Tom Rothamel cf9d238729 Minor changes to improve code analysis. 2019-10-09 20:21:55 -04:00
Tom Rothamel 04179212a2 Bump version. 2019-10-09 20:20:16 -04:00
Tom Rothamel 5a130d4a4d Merge pull request #2020 from wchill/py3_change_file_constructor
[Py3] Use open() instead of file()
2019-10-09 19:32:08 -04:00
Tom Rothamel 2b81c2501a Merge pull request #2019 from wchill/py3_fix_1
[Py3] Import print_function, remove tuple unpacking
2019-10-09 19:31:50 -04:00
Tom Rothamel f87e17d1a7 Merge pull request #2018 from wchill/replace_exec_execfile_reload
[Py3] Replace exec, execfile, reload with Py3 compatible versions
2019-10-09 19:31:29 -04:00
Tom Rothamel f49a04468b Merge pull request #2017 from wchill/py3_ints
[Py3] Make Python 3 integer related changes
2019-10-09 19:30:49 -04:00
Tom Rothamel d337e47e1f Fix changelog. 2019-10-07 21:05:29 -04:00
Tom Rothamel d10d81647b Fix changelog typo. 2019-10-07 20:52:27 -04:00
Tom Rothamel e7708c23fb Merge pull request #2030 from Andykl/fix-dynamic-image
Fix dynamic image
2019-10-07 20:13:05 -04:00
Andy_kl cc45453f4a More correct clear target on prefix change 2019-10-08 03:11:48 +03:00
Andy_kl 4dba39c57a More correct comment 2019-10-08 00:16:09 +03:00
Andy_kl c570d96458 Remove debug print 2019-10-08 00:07:04 +03:00
Andy_kl 0888c1ae1c Set target back if changing the prefix refers to the same image. 2019-10-08 00:04:27 +03:00
Andy_kl 9222ca20c6 Do not lose target after lock 2019-10-07 23:34:11 +03:00
Andy_kl 4ad03d0f98 Set _duplicatable flag before first targeting 2019-10-07 23:31:40 +03:00
Tom Rothamel de33e805d4 Revert glGet of FBO.
This prevents having to query the GPU, which would force a thread
synchronization in a multithreaded GPU driver.
2019-10-06 13:35:04 -04:00
Tom Rothamel dab57aeec3 Update changelog ad documentation. 2019-10-05 21:45:16 -04:00
Tom Rothamel 82caa0a66a Allow "[prefix_]" to be used in non-style DynamicImages..
Fixes #2016.
2019-10-05 21:26:14 -04:00
Tom Rothamel fe3c6908ea Merge pull request #1932 from Andykl/sl2-fixes
CDSL displayables should allow 'if' statements inside self.
2019-10-04 23:26:10 -04:00
Tom Rothamel 0c39b34c79 Merge pull request #2021 from Andykl/fix-translate
Fix line in Russian translate
2019-10-04 23:24:42 -04:00
Tom Rothamel 05b35745a1 lint: Do not pass formatted text into report.
Fixes #2027.
2019-10-04 22:48:31 -04:00
Tom Rothamel 77c04ac67d Fix docstrings for DragGroup. 2019-10-04 21:47:12 -04:00
Tom Rothamel bb4154c25f Perform FLATTEN during the render-to-texture pass.
This prevents it from leaving single-frame artifacts.
2019-10-03 21:59:38 -04:00
Andy_kl d8ad65e912 Fix line 2019-10-03 13:35:00 +03:00
Tom Rothamel be678bd4ba Update changelog. 2019-10-03 01:42:01 -04:00
Tom Rothamel e12c00ee6d Merge pull request #2015 from Andykl/fix-drag-issues
Set the style prefix for dragged set even after update screen
2019-10-03 01:32:25 -04:00
Tom Rothamel b22c4c1379 Drop textures when changing fullscreen mode on windows.
Fixes a bug where obsolete textures are used, causing the wrong
texture to be displayed.
2019-10-03 00:57:39 -04:00
Tom Rothamel 3a58834de0 Fix issues caused by a double-RTT with shared resources. 2019-10-02 23:44:46 -04:00
Eric Ahn 7287bec5d1 Change file constructor to open 2019-10-02 18:39:32 -07:00
Eric Ahn e8325d852a Fix print statements again 2019-10-02 18:38:50 -07:00
Eric Ahn 85bb261af3 Remove tuple unpacking in parameter lists 2019-10-02 18:38:50 -07:00
Eric Ahn 9336778f25 Feature detect reload 2019-10-02 18:27:55 -07:00
Eric Ahn 06543a8d8d Replace reload 2019-10-02 18:23:58 -07:00
Eric Ahn 7e10b963bb Replace exec 2019-10-02 18:23:58 -07:00
Eric Ahn 4d98761abd Replace execfile 2019-10-02 18:23:58 -07:00
Tom Rothamel d2b96c0eab Bump version. 2019-10-02 20:26:12 -04:00
Eric Ahn f452540ad0 Add version check and define the long type if needed 2019-10-02 16:15:02 -07:00
Eric Ahn 2b65a69611 Import the int builtin as long 2019-10-02 15:48:04 -07:00
Eric Ahn 8c37264d84 Remove long constants and use new octal syntax 2019-10-02 15:40:53 -07:00
Eric Ahn 8ab711722c Fix integer division and remove long type 2019-10-02 15:24:42 -07:00
Andy_kl b3b4036955 Update Drag's prefix of the current dragging even after restart_interaction
Per #2014
2019-10-02 23:18:49 +03:00
Andy_kl 544dde6d5c Set the style prefix for dragged set even after update screen
Per #2014
2019-10-02 16:16:00 +03:00
Tom Rothamel 3002a1b019 Merge pull request #2011 from lunalucid/typo-fixes
Some typo fixes on config.rst and displayables.rst
2019-10-01 01:00:02 -04:00
lunalucid 08a621fdcf Some typo fixes on config.rst and displayables.rst 2019-09-30 22:53:06 -06:00
Tom Rothamel 3ba9569ace Allow character to call a function to supply its name.
Fixes #2007.
2019-09-30 22:46:25 -04:00
Tom Rothamel 166807fc76 Update credits. 2019-09-30 19:56:55 -04:00
Tom Rothamel 628a09d187 Merge pull request #2010 from lunalucid/correct-linespacing
Correct preference 'font vertical spacing' to 'font line spacing'
2019-09-30 01:58:16 -04:00
lunalucid e4348c52d6 correct preference 'font vertical spacing' to 'font line spacing' 2019-09-29 22:38:41 -06:00
Tom Rothamel 8f62aac732 Update credits. 2019-09-29 19:39:55 -04:00
Tom Rothamel 9f0a05fc6b Remove manual notarization.
It's now integrated into the app/dmg signing scripts, making it
a walk-away process.
2019-09-29 10:36:38 -04:00
Tom Rothamel d492249835 Merge pull request #2005 from Herpior/viewport-edgescroll-fix
Clear edgescroll timer when mouse moved out of bounds
2019-09-28 21:40:05 -04:00
Tom Rothamel dcfc23d2f3 Fix matrix.is_unit_aligned.
The implementation was wrong, and so it would never return true.
2019-09-28 18:43:37 -04:00
Beuc ad5e11c710 Typos 2019-09-28 10:06:54 +02:00
Tom Rothamel 5354bb0762 Fix a problem that prevents installing the android sdk. 2019-09-28 00:45:36 -04:00
Tom Rothamel f721662ef9 Merge pull request #2006 from renpy/Beuc-patch-1
config.cache_surfaces is False by default
2019-09-27 16:23:24 -04:00
Beuc c6641e53fe config.cache_surfaces is False by default 2019-09-27 22:20:04 +02:00
Roope Herpiö b97b29d894 Clear edgescroll timer when mouse moved out of bounds 2019-09-27 15:08:02 +03:00
Tom Rothamel 32eb7be5a1 Fix name. 2019-09-27 01:24:50 -04:00
Andy_kl 836238de5c CDSL displayables should allow 'if' statements inside self. 2019-07-12 00:06:40 +03:00
Joshua Fehler f82c2e9f28 Replace 'open()' with 'with open()' 2018-02-25 13:41:50 -05:00
596 changed files with 45223 additions and 27712 deletions
+25
View File
@@ -1,3 +1,15 @@
# macOS-related files
.DS_Store
.AppleDouble
.LSOverride
# Windows-related files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
[Dd]esktop.ini
*.rpyc
*.rpyb
*.rpymc
@@ -31,8 +43,12 @@ styles.txt
/*testing*
/screenshot*
/renpy.exe
/renpy-32.exe
/renpy.sh
/lib
/lib.old
/lib2
/lib3
/doc
/.pydevproject
/.pydevproject.bak
@@ -84,3 +100,12 @@ tutorial/game/tutorial_director.rpy
launcher/theme
module/emscripten-static/
web/
cubism
glexperiment
live2d
rapt2
rapt3
renios2
renios3
notarized
+12 -5
View File
@@ -52,7 +52,7 @@ the command::
apt-get install virtualenvwrapper python-dev libavcodec-dev libavformat-dev \
libavresample-dev libswresample-dev libswscale-dev libfreetype6-dev libglew1.6-dev \
libfribidi-dev libsdl2-dev libsdl2-image-dev libsdl2-gfx-dev \
libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-turbo8-dev
libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-dev
We strongly suggest installing the Ren'Py modules into a Python
virtualenv. To create a new virtualenv, open a new terminal and run::
@@ -63,9 +63,9 @@ To return to this virtualenv later, run::
workon renpy
After activating the virtualenv, install cython::
After activating the virtualenv, install cython, future, and six::
pip install -U cython
pip install -U cython future six
Then, install pygame_sdl2 by running the following commands::
@@ -80,7 +80,7 @@ Next, set RENPY_DEPS_INSTALL To a \:-separated (\;-separated on Windows)
list of paths containing the dependencies, and RENPY_CYTHON to the name
of the cython command::
export RENPY_DEPS_INSTALL="/usr:/usr/lib/x86_64-linux-gnu/"
export RENPY_DEPS_INSTALL="/usr:/usr/lib/$(uname -m)-linux-gnu/"
export RENPY_CYTHON=cython
Finally, use setup.py in the Ren'Py ``module`` directory to compile and
@@ -104,7 +104,7 @@ Building
Building the documentation requires Ren'Py to work. You'll either need to
link in a nightly build, or compile the modules as described above. You'll
also need the `Sphinx <http://sphinx-doc.org/>`_ documentation generator.
also need the `Sphinx <https://www.sphinx-doc.org>`_ documentation generator.
If you have pip working, install Sphinx using::
pip install -U sphinx
@@ -164,3 +164,10 @@ Contributing
For bug fixes, documentation improvements, and simple changes, just
make a pull request. For more complex changes, it might make sense
to file an issue first so we can discuss the design.
License
=======
For the complete licensing terms, please read:
https://www.renpy.org/doc/html/license.html
+2 -7
View File
@@ -6,13 +6,11 @@ import os
import subprocess
import sys
from renpy import version_tuple # @UnresolvedImport
from renpy import version_tuple # @UnresolvedImport
SOURCE = [
"/home/tom/ab/renpy",
"/home/tom/ab/android/",
"/home/tom/ab/ripe/renios",
"/home/tom/ab/renpy-deps",
"/home/tom/ab/renpy-build",
"/home/tom/ab/pygame_sdl2",
"/home/tom/ab/renpyweb",
]
@@ -95,7 +93,6 @@ if tag:
subprocess.check_call([ "git", "tag", "-a", tag, "-m", "Tagging Ren'Py + " + version + " release." ])
os.chdir("/home/tom/ab/renpy/dl")
for i in links:
@@ -103,11 +100,9 @@ for i in links:
os.unlink(i)
os.symlink(short_version, i)
os.chdir("/home/tom/ab/website")
subprocess.check_call("./upload.sh")
os.chdir("/home/tom/ab/renpy/sphinx")
if args.release:
subprocess.check_call("./upload.sh")
+1
View File
@@ -12,4 +12,5 @@ if [ "$1" != "" ]; then
ln -s "$1/lib" "$ROOT/lib"
ln -s "$1/renpy.app" "$ROOT"
ln -s "$1/renpy.exe" "$ROOT"
ln -s "$1/renpy.sh" "$ROOT"
fi
+19 -31
View File
@@ -9,6 +9,13 @@ import compileall
import shutil
import subprocess
import argparse
import time
try:
# reload is built-in in Python 2, in importlib in Python 3
reload
except NameError:
from importlib import reload
if not sys.flags.optimize:
raise Exception("Optimization disabled.")
@@ -22,27 +29,24 @@ def copy_tutorial_file(src, dest):
"# end-tutorial-only" comments are omitted from the copy.
"""
sf = open(src, "rb")
df = open(dest, "wb")
# True if we want to copy the line.
copy = True
for l in sf:
if "# tutorial-only" in l:
copy = False
elif "# end-tutorial-only" in l:
copy = True
else:
if copy:
df.write(l)
sf.close()
df.close()
with open(src, "rb") as sf, open(dest, "wb") as df:
for l in sf:
if "# tutorial-only" in l:
copy = False
elif "# end-tutorial-only" in l:
copy = True
else:
if copy:
df.write(l)
def main():
start = time.time()
if not sys.flags.optimize:
raise Exception("Not running with python optimization.")
@@ -257,23 +261,7 @@ def main():
print()
if args.sign and not args.notarized:
shutil.copy(sdk + ".tar.bz2", ROOT + "/notarized/in/renpy.tar.bz2")
print("Next steps:")
print()
print(" mac: ./scripts/notarize_app_1.sh")
print(" mac: ./scripts/notarize_app_2.sh")
print(" linux: ./distribute.py --notarized")
print()
elif args.sign and args.notarized:
print("Next steps:")
print()
print(" mac: ./scripts/notarize_dmg_1.sh", args.version)
print(" mac: ./scripts/notarize_dmg_2.sh", args.version)
print()
print("Distribute took {:.0f} seconds.".format(time.time() - start))
if __name__ == "__main__":
+2 -2
View File
@@ -435,8 +435,8 @@ init python:
## Adjust the location of the textbox.
gui.textbox_height = gui.scale(240)
gui.name_xpos = gui.scale(80)
gui.text_xpos = gui.scale(90)
gui.text_width = gui.scale(1100)
gui.dialogue_xpos = gui.scale(90)
gui.dialogue_width = gui.scale(1100)
## Change the size and spacing of various things.
gui.slider_size = gui.scale(36)
+1 -5
View File
@@ -566,10 +566,6 @@ screen about():
text _("Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]")
## This is redefined in options.rpy to add text to the about screen.
define gui.about = ""
style about_label is gui_label
style about_label_text is gui_label_text
style about_text is gui_text
@@ -923,7 +919,7 @@ screen history():
## This determines what tags are allowed to be displayed on the history
## screen.
define gui.history_allow_tags = set()
define gui.history_allow_tags = { "alt", "noalt" }
style history_window is empty
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -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 64-bit/x64 Java 8 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_JDK_TEXT = _("A 64-bit/x64 Java 8 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=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}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.")
@@ -162,7 +162,7 @@ init python:
filename = os.path.join(p.path, ".android.json")
with open(filename, "r") as f:
with open(filename, "rb") as f:
android_json = json.load(f)
old_android_json = dict(android_json)
@@ -183,7 +183,7 @@ init python:
if android_json != old_android_json:
with open(filename, "w") as f:
with open(filename, "wb") as f:
json.dump(android_json, f)
+7 -4
View File
@@ -18,6 +18,7 @@ init python hide:
__("Launching app.")
__("The build seems to have succeeded.")
__("The arm64-v8a version works on newer Android devices, the armeabi-v7a version works on older devices, and the x86_64 version works on the simulator and chromebooks.")
__("The universal version works everywhere but is larger.")
__("What is the full name of your application? This name will appear in the list of installed applications.")
__("What is the short name of your application? This name will be used in the launcher, and for application shortcuts.")
__("What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot.")
@@ -41,16 +42,17 @@ init python hide:
__("Both, in one app.")
__("Neither.")
__("Would you like to create an expansion APK?")
__("Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}.")
__("No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded.")
__("Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)")
__("Do you want to allow the app to access the Internet?")
__("Do you want to automatically update the generated project?")
__("Do you want to automatically update the Java source code?")
__("Yes. This is the best choice for most projects.")
__("No. This may require manual updates when Ren'Py or the project configuration changes.")
__("Unknown configuration variable: {}")
__("I'm compiling a short test program, to see if you have a working JDK on your system.")
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue.")
__("The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java.")
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue.")
__("The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java.")
__("The JDK is present and working. Good!")
__("The Android SDK has already been unpacked.")
__("Do you accept the Android SDK Terms and Conditions?")
@@ -59,12 +61,13 @@ init python hide:
__("I've finished unpacking the Android SDK.")
__("I'm about to download and install the required Android packages. This might take a while.")
__("I was unable to accept the Android licenses.")
__("I was unable to accept the Android licenses.")
__("I was unable to install the required Android packages.")
__("I've finished installing the required Android packages.")
__("You set the keystore yourself, so I'll assume it's how you want it.")
__("You've already created an Android keystore, so I won't create a new one for you.")
__("I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?")
__("I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\n\You also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?")
__("I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?")
__("Please enter your name or the name of your organization.")
__("Could not create android.keystore. Is keytool in your path?")
__("I've finished creating android.keystore. Please back it up, and keep it in a safe place.")
+4 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -28,8 +28,9 @@ init python in archiver:
import sys
import random
import glob
import zlib
from cPickle import dumps, HIGHEST_PROTOCOL
from pickle import dumps, HIGHEST_PROTOCOL
class Archive(object):
@@ -76,7 +77,7 @@ init python in archiver:
indexoff = self.f.tell()
self.f.write(dumps(self.index, HIGHEST_PROTOCOL).encode("zlib"))
self.f.write(zlib.compress(dumps(self.index, HIGHEST_PROTOCOL)))
self.f.seek(0)
self.f.write(b"RPA-3.0 %016x %08x\n" % (indexoff, self.key))
File diff suppressed because it is too large Load Diff
+52 -46
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -19,7 +19,6 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# http://www.csn.ul.ie/~caolan/publink/winresdump/winresdump/doc/pefile.html
# Contains a reasonable description of the format.
@@ -28,7 +27,7 @@ from __future__ import print_function
import struct
import sys
import array
import pefile # @UnresolvedImport
import pefile # @UnresolvedImport
# This class performs various operations on memory-loaded binary files,
# including modifications.
@@ -37,24 +36,24 @@ import pefile # @UnresolvedImport
class BinFile(object):
def set_u32(self, addr, value):
self.a[addr+0] = (value >> 0) & 0xff
self.a[addr+1] = (value >> 8) & 0xff
self.a[addr+2] = (value >> 16) & 0xff
self.a[addr+3] = (value >> 24) & 0xff
self.a[addr + 0] = (value >> 0) & 0xff
self.a[addr + 1] = (value >> 8) & 0xff
self.a[addr + 2] = (value >> 16) & 0xff
self.a[addr + 3] = (value >> 24) & 0xff
def u32(self):
addr = self.addr
rv = self.a[addr]
rv |= self.a[addr+1] << 8
rv |= self.a[addr+2] << 16
rv |= self.a[addr+3] << 24
rv |= self.a[addr + 1] << 8
rv |= self.a[addr + 2] << 16
rv |= self.a[addr + 3] << 24
self.addr += 4
return rv
def u16(self):
addr = self.addr
rv = self.a[addr]
rv |= self.a[addr+1] << 8
rv |= self.a[addr + 1] << 8
self.addr += 2
return rv
@@ -78,8 +77,8 @@ class BinFile(object):
def tostring(self):
return self.a.tostring()
def substring(self, start, len): # @ReservedAssignment
return self.a[start:start+len].tostring()
def substring(self, start, len): # @ReservedAssignment
return self.a[start:start + len].tostring()
def __init__(self, data):
self.a = array.array(b'B')
@@ -89,6 +88,7 @@ class BinFile(object):
# These functions parse data out of the file. In these functions, offset is
# relative to the start of the file.
# The virtual address of the resource segment.
resource_virtual = 0
@@ -116,10 +116,10 @@ def parse_data(bf, offset):
def parse_directory(bf, offset):
bf.seek(offset)
char = bf.u32() # @UnusedVariable
timedate = bf.u32() # @UnusedVariable
major = bf.u16() # @UnusedVariable
minor = bf.u16() # @UnusedVariable
char = bf.u32() # @UnusedVariable
timedate = bf.u32() # @UnusedVariable
major = bf.u16() # @UnusedVariable
minor = bf.u16() # @UnusedVariable
n_named = bf.u16()
n_id = bf.u16()
@@ -241,7 +241,7 @@ class Packer(object):
def load_icon(fn):
f = BinFile(file(fn, "rb").read())
f = BinFile(open(fn, "rb").read())
f.seek(0)
f.u16()
@@ -301,9 +301,10 @@ def change_icons(oldexe, icofn):
physize = rsrc_section.SizeOfRawData
virsize = rsrc_section.Misc_VirtualSize
f = file(oldexe, "rb")
f.seek(base)
f = open(oldexe, "rb")
basedata = f.read(base)
data = f.read(physize)
f.close()
bf = BinFile(data)
@@ -315,44 +316,49 @@ def change_icons(oldexe, icofn):
rsrc = Packer().pack(resources)
alignment = pe.OPTIONAL_HEADER.SectionAlignment
# print("Alignment is", alignment)
if len(rsrc) % alignment:
pad = alignment - (len(rsrc) % alignment)
padding = b"RENPYVNE" * (pad / 8 + 1)
padding = padding[:pad]
rsrc += padding
newsize = len(rsrc)
rsrc_section.Misc_VirtualSize += newsize - virsize
rsrc_section.Misc_PhysicalAddress += newsize - virsize
rsrc_section.Misc += newsize - virsize
rsrc_section.SizeOfRawData += newsize - physize
if newsize < physize:
pe.OPTIONAL_HEADER.SizeOfInitializedData += newsize - physize
while len(rsrc) < physize:
rsrc = rsrc + rsrc
# Resource size.
pe.OPTIONAL_HEADER.DATA_DIRECTORY[2].Size += newsize - virsize
rsrc = rsrc[:physize]
# Compute the total size of the image.
total_size = 0
return basedata + rsrc
for i in pe.sections:
else:
sec_size = i.Misc_VirtualSize
sec_size = sec_size - (sec_size % alignment) + alignment
alignment = pe.OPTIONAL_HEADER.SectionAlignment
total_size += sec_size
# print("Alignment is", alignment)
pe.OPTIONAL_HEADER.SizeOfImage = total_size
if len(rsrc) % alignment:
pad = alignment - (len(rsrc) % alignment)
padding = b"\0" * (pad / 8 + 1)
padding = padding[:pad]
rsrc += padding
newsize = len(rsrc)
delta = newsize - physize
rsrc_section.Misc_VirtualSize += delta
rsrc_section.Misc_PhysicalAddress += delta
rsrc_section.Misc += delta
rsrc_section.SizeOfRawData += delta
pe.OPTIONAL_HEADER.SizeOfInitializedData += delta
# Resource size.
pe.OPTIONAL_HEADER.DATA_DIRECTORY[2].Size += delta
pe.OPTIONAL_HEADER.SizeOfImage += delta
return pe.write()[:base] + rsrc
return pe.write()[:base] + rsrc
if __name__ == "__main__":
f = file(sys.argv[3], "wb")
f = open(sys.argv[3], "wb")
f.write(change_icons(sys.argv[1], sys.argv[2]))
f.close()
+56 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -19,8 +19,25 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
if renpy.windows:
import EasyDialogsWin as EasyDialogs
else:
EasyDialogs = None
pyobjus = None
if renpy.macintosh:
try:
import pyobjus
except:
pass
def directory_is_writable(path):
test = os.path.join(path, "renpy test do not use")
@@ -67,11 +84,46 @@ init python:
else:
path = None
elif pyobjus:
from pyobjus import autoclass
from pyobjus.dylib_manager import load_framework, INCLUDE
load_framework(INCLUDE.AppKit)
NSURL = autoclass('NSURL')
NSOpenPanel = autoclass('NSOpenPanel')
panel = NSOpenPanel.openPanel()
panel.setCanChooseDirectories_(True)
panel.setCanChooseFiles_(False)
panel.setCanCreateDirectories_(True)
if default_path:
url = NSURL.fileURLWithPath_(default_path)
panel.setDirectoryURL_(url)
if panel.runModal():
path = panel.filename().UTF8String().decode("utf-8")
else:
path = None
else:
try:
cmd = [ "/usr/bin/python", os.path.join(config.gamedir, "tkaskdir.py"), renpy.fsencode(default_path) ]
if renpy.macintosh:
# tkinter is broken on Python 3, so use it as a last resort - maybe apple fixed it?
system_pythons = [ "/usr/bin/python2", "/usr/bin/python", "/usr/bin/python3" ]
else:
system_pythons = [ "/usr/bin/python3", "/usr/bin/python2", "/usr/bin/python" ]
for system_python in system_pythons:
if os.path.exists(system_python):
break
else:
system_python = system_pythons[0]
cmd = [ system_python, os.path.join(config.gamedir, "tkaskdir.py"), renpy.fsencode(default_path) ]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
choice = p.stdout.read()
@@ -85,10 +137,10 @@ init python:
choice = ""
path = None
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
if code:
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
elif choice:
path = choice.decode("utf-8")
+3 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -24,6 +24,7 @@ init python:
import codecs
import re
import sys
import future.utils
def theme_names():
"""
@@ -97,7 +98,7 @@ init python:
return
renpy.style.restore(style_backup)
exec theme_data.THEME[theme][scheme] in globals()
future.utils.exec_(theme_data.THEME[theme][scheme], globals(), globals())
# Rebuild the style cache.
renpy.style.rebuild(False)
+6 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -74,11 +74,13 @@ init python:
self.f.close()
os.chmod(self.fn, 0o755)
command = renpy.fsencode('"{}"'.format(self.fn.replace("\"", "\\\"")))
if renpy.windows:
subprocess.Popen([ renpy.fsencode(self.fn) ], shell=True)
subprocess.Popen([ command ], shell=True)
elif renpy.macintosh:
subprocess.Popen([ "open", "-a", "Terminal", renpy.fsencode(self.fn) ])
subprocess.Popen([ "open", "-a", "Terminal", command ])
else:
subprocess.Popen([ "x-terminal-emulator", "-e", renpy.fsencode(self.fn) ])
subprocess.Popen([ "x-terminal-emulator", "-e", command ])
interface.interaction(_("INFORMATION"), _("The command is being run in a new operating system console window."), pause=2.5)
+106 -54
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -308,23 +308,19 @@ init python in distribute:
def mac_lib_transform(self, app, duplicate):
"""
Moves the mac lib into position. If duplicate is set, the
Creates a new file list that has lib/darwin-x86_64 and lib/pythonlib2.7
copied into the mac app, the latter iff it's not duplicated elsewhere.
copied into the mac app, the latter iff it's not duplicated elsewhere or
duplicate is set.
"""
for f in list(self):
if f.name.startswith("lib/darwin-x86_64/lib/python2.7"):
name = app + "/Contents/MacOS/lib/darwin-x86_64/Lib" + f.name[31:]
elif f.name.startswith("lib/pythonlib2.7") and (not duplicate):
name = app + "/Contents/MacOS/lib/darwin-x86_64/Lib" + f.name[16:]
elif f.name.startswith("lib/darwin-x86_64"):
if f.name.startswith("lib/python2.7") and (not duplicate):
name = app + "/Contents/MacOS/" + f.name
elif f.name.startswith("lib/mac-x86_64"):
name = app + "/Contents/MacOS/" + f.name[15:]
else:
continue
@@ -493,6 +489,7 @@ init python in distribute:
# The various executables, which change names based on self.executable_name.
self.app = self.executable_name + ".app"
self.exe = self.executable_name + ".exe"
self.exe32 = self.executable_name + "-32.exe"
self.sh = self.executable_name + ".sh"
self.py = self.executable_name + ".py"
@@ -545,6 +542,9 @@ init python in distribute:
# Assign the x-bit as necessary.
self.mark_executable()
# Merge file lists, as needed.
self.merge_file_lists()
# Rename the executable-like files.
if not build['renpy']:
self.rename()
@@ -618,12 +618,12 @@ init python in distribute:
if match(match_name, pattern):
break
else:
print(match_name.encode("utf-8"), "doesn't match anything.", file=self.log)
print(str(match_name), "doesn't match anything.", file=self.log)
pattern = None
file_list = None
print(match_name.encode("utf-8"), "matches", pattern, "(" + str(file_list) + ").", file=self.log)
print(str(match_name), "matches", str(pattern), "(" + str(file_list) + ").", file=self.log)
if file_list is None:
return
@@ -643,6 +643,17 @@ init python in distribute:
for fn in os.listdir(directory):
walk(fn, os.path.join(directory, fn))
def merge_file_lists(self):
"""
For each (old, new) in self.build['merge'], merge the old list
into the new list.
"""
for old, new in self.build['merge']:
self.file_lists[new] = FileList.merge([
self.file_lists[old],
self.file_lists[new]])
def rescan(self, oldlist, directory):
"""
Scans `directory`, and produces a filelist from it. Returns the
@@ -793,7 +804,7 @@ init python in distribute:
script_version_txt = self.temp_filename("script_version.txt")
with open(script_version_txt, "w") as f:
f.write(repr(renpy.renpy.version_tuple[:-1]))
f.write(unicode(repr(renpy.renpy.version_tuple[:-1])))
self.add_file("all", "game/script_version.txt", script_version_txt)
@@ -804,7 +815,7 @@ init python in distribute:
tfn = self.temp_filename(list_name + "_hash.txt")
with open(tfn, "w") as tf:
with open(tfn, "wb") as tf:
tf.write(self.file_lists[list_name].hash(self))
self.add_file("binary", "launcher/game/" + list_name + "_hash.txt", tfn)
@@ -825,7 +836,7 @@ init python in distribute:
data = f.read()
with open(tmp_fn, "wb") as f:
f.write("#!/usr/bin/env python2\n")
f.write(b"#!/usr/bin/env python2\n")
f.write(data)
self.add_file("source_only", "renpy.py", tmp_fn, True)
@@ -846,7 +857,7 @@ init python in distribute:
CFBundleName=display_name,
CFBundlePackageType="APPL",
CFBundleShortVersionString=version,
CFBundleVersion="1.0.{0}".format(int(time.time())),
CFBundleVersion=time.strftime("%Y.%m%d.%H%M%S"),
LSApplicationCategoryType="public.app-category.simulation-games",
CFBundleDocumentTypes = [
{
@@ -867,6 +878,8 @@ init python in distribute:
if self.build.get('allow_integrated_gpu', False):
plist["NSSupportsAutomaticGraphicsSwitching"] = True
plist.update(self.build.get("mac_info_plist", { }))
rv = self.temp_filename("Info.plist")
plistlib.writePlist(plist, rv)
return rv
@@ -876,27 +889,29 @@ init python in distribute:
if self.build['renpy']:
windows = 'binary'
linux = 'binary'
linux_i686 = 'binary'
mac = 'binary'
raspi = 'raspi'
else:
windows = 'windows'
linux = 'linux'
linux_i686 = 'linux_i686'
mac = 'mac'
raspi = 'linux'
self.add_file(
linux,
linux_i686,
"lib/linux-i686/" + self.executable_name,
os.path.join(config.renpy_base, "lib/linux-i686/pythonw"),
os.path.join(config.renpy_base, "lib/linux-i686/renpy"),
True)
self.add_file(
linux,
"lib/linux-x86_64/" + self.executable_name,
os.path.join(config.renpy_base, "lib/linux-x86_64/pythonw"),
os.path.join(config.renpy_base, "lib/linux-x86_64/renpy"),
True)
armfn = os.path.join(config.renpy_base, "lib/linux-armv7l/pythonw")
armfn = os.path.join(config.renpy_base, "lib/linux-armv7l/renpy")
if os.path.exists(armfn):
@@ -909,14 +924,10 @@ init python in distribute:
self.add_file(
mac,
"lib/darwin-x86_64/" + self.executable_name,
os.path.join(config.renpy_base, "lib/darwin-x86_64/pythonw"),
"lib/mac-x86_64/" + self.executable_name,
os.path.join(config.renpy_base, "lib/mac-x86_64/renpy"),
True)
# self.add_file(
# windows,
# "lib/windows-i686/" + self.executable_name + ".exe",
# os.path.join(config.renpy_base, "lib/windows-i686/renpy.exe"))
def add_mac_files(self):
"""
@@ -936,7 +947,9 @@ init python in distribute:
plist_fn = self.write_plist()
self.add_file(filelist, contents + "/Info.plist", plist_fn)
self.add_file(filelist, contents + "/MacOS/" + self.executable_name, os.path.join(config.renpy_base, "renpy.sh"))
self.add_file(filelist,
contents + "/MacOS/" + self.executable_name,
os.path.join(config.renpy_base, "lib/mac-x86_64/renpy"))
custom_fn = os.path.join(self.project.path, "icon.icns")
default_fn = os.path.join(config.renpy_base, "launcher/icon.icns")
@@ -951,16 +964,10 @@ init python in distribute:
self.add_directory(filelist, resources)
self.add_file(filelist, resources + "/icon.icns", icon_fn)
self.add_directory(filelist, contents + "/MacOS/lib")
self.add_directory(filelist, contents + "/MacOS/lib/darwin-x86_64")
self.add_directory(filelist, contents + "/MacOS/lib/darwin-x86_64/Lib")
self.add_directory(filelist, contents + "/MacOS/lib/darwin-x86_64/Modules")
sfn = self.temp_filename("Setup")
with open(sfn, "wb") as f:
pass
self.add_file(filelist, contents + "/MacOS/lib/darwin-x86_64/Modules/Setup", sfn)
if not self.build['renpy']:
self.add_directory(filelist, contents + "/MacOS/lib")
self.add_directory(filelist, contents + "/MacOS/lib/mac-x86_64")
self.add_directory(filelist, contents + "/MacOS/lib/python2.7")
self.file_lists[filelist].mac_lib_transform(self.app, self.build['renpy'])
@@ -971,30 +978,45 @@ init python in distribute:
if self.build['renpy']:
windows = 'binary'
windows_i686 = 'binary'
else:
windows = 'windows'
windows_i686 = 'windows_i686'
icon_fn = os.path.join(self.project.path, "icon.ico")
old_exe_fn = os.path.join(config.renpy_base, "renpy.exe")
old_main_fn = os.path.join(config.renpy_base, "lib/windows-i686/renpy.exe")
if os.path.exists(icon_fn) and os.path.exists(old_exe_fn):
exe_fn = self.temp_filename("renpy.exe")
main_fn = self.temp_filename("main.exe")
with open(exe_fn, "wb") as f:
f.write(change_icons(old_exe_fn, icon_fn))
def write_exe(src, dst, tmp, fl):
"""
Write the exe found at `src` (taken as relative to renpy-base)
as `dst` (in the distribution). `tmp` is the name of a tempfile
that is written if one is needed.
"""
with open(main_fn, "wb") as f:
f.write(change_icons(old_main_fn, icon_fn))
if fl == "windows_i686":
should_change_icon = self.build["change_icon_i686"]
else:
should_change_icon = True
else:
exe_fn = old_exe_fn
main_fn = old_main_fn
src = os.path.join(config.renpy_base, src)
tmp = self.temp_filename(tmp)
if os.path.exists(exe_fn):
self.add_file(windows, self.exe, exe_fn)
self.add_file(windows, "lib/windows-i686/" + self.exe, main_fn)
if should_change_icon and os.path.exists(icon_fn) and os.path.exists(src):
with open(tmp, "wb") as f:
f.write(change_icons(src, icon_fn))
else:
tmp = src
if os.path.exists(tmp):
self.add_file(fl, dst, tmp)
write_exe("lib/windows-i686/renpy.exe", self.exe32, self.exe32, windows_i686)
write_exe("lib/windows-i686/pythonw.exe", "lib/windows-i686/pythonw.exe", "pythonw-32.exe", windows_i686)
write_exe("lib/windows-x86_64/renpy.exe", self.exe, self.exe, windows)
write_exe("lib/windows-x86_64/pythonw.exe", "lib/windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
def add_main_py(self):
if self.build['renpy']:
@@ -1002,7 +1024,6 @@ init python in distribute:
self.add_file("web", "main.py", os.path.join(config.renpy_base, "renpy.py"))
def mark_executable(self):
"""
Marks files as executable.
@@ -1142,6 +1163,29 @@ init python in distribute:
dmg=dmg,
)
def workaround_mac_notarization(self, fl):
"""
This works around mac notarization by compressing the unsigned,
un-notarized, binaries in lib/mac-x86_64.
"""
fl = fl.copy()
for f in fl:
if "/lib/mac-x86_64/" in f.name:
with open(f.path, "rb") as inf:
data = inf.read()
tempfile = self.temp_filename(os.path.basename(f.name) + ".macho")
with open(tempfile, "wb") as outf:
outf.write(b"RENPY" + data)
f.name += ".macho"
f.path = tempfile
return fl
def prepare_file_list(self, format, file_lists):
"""
Prepares a master list of files, given the format and file lists.
@@ -1319,6 +1363,9 @@ init python in distribute:
shutil.rmtree(path)
pkg = DMGPackage(path, make_dmg)
fl = self.workaround_mac_notarization(fl)
elif directory:
pkg = DirectoryPackage(path)
@@ -1359,6 +1406,11 @@ init python in distribute:
index = { }
# Ren'Py 7.4.1 forgot to include mac zsync, so it needs to be downloaded before the update
# can occur.
if self.build['renpy']:
index["monkeypatch"] = "def mac_fix():\n import renpy\n if not renpy.macintosh:\n return\n\n import os\n mac = os.path.join(renpy.config.renpy_base, \"lib\", \"mac-x86_64\")\n zsync = os.path.join(mac, \"zsync\")\n\n if not os.path.isdir(mac):\n return\n\n if os.path.isdir(zsync):\n return\n\n import requests\n\n response = requests.get(\"https://www.renpy.org/dl/mac-fix/zsync\")\n\n with open(zsync + \".new\", \"w\") as f:\n f.write(response.content)\n \n os.chmod(zsync + \".new\", 0o755)\n os.rename(zsync + \".new\", zsync)\n\nmac_fix()\n"
def add_variant(variant):
digest = self.build_cache[self.base_name + "-" + variant + ".update"][0]
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+19 -5
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -21,11 +21,27 @@
init python:
import urllib2
import urllib.request
import os
import threading
import time
ssl_context_cache = None
def ssl_context():
"""
Returns the SSL context.
"""
global ssl_context_cache
if ssl_context_cache is None:
import ssl
import certifi
ssl_context_cache = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=certifi.where())
return ssl_context_cache
class Downloader(object):
def __init__(self, url, dest):
@@ -57,9 +73,7 @@ init python:
try:
# Open the URL.
import ssl
context = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=renpy.loader.transfn("cacert.pem"))
self.urlfile = urllib2.urlopen(url, context=context)
self.urlfile = urllib.request.urlopen(url, context=ssl_context())
t = threading.Thread(target=self.thread)
t.daemon = True
+8 -41
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -173,39 +173,6 @@ init 1 python in editor:
fei.append(e)
# Editra.
ED = _("A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input.")
EDL = _("A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython.")
if renpy.windows:
dlc = "editra-windows"
installed = os.path.exists(os.path.join(config.basedir, "editra/editra.exe"))
description = ED
error_message = None
elif renpy.macintosh:
dlc = "editra-mac"
installed = os.path.exists(os.path.join(config.basedir, "editra/Editra-mac.app"))
description = ED
error_message = None
else:
dlc = "editra-linux"
installed = os.path.exists(os.path.join(config.basedir, "editra/Editra"))
description = EDL
error_message = _("This may have occured because wxPython is not installed on this system.")
e = FancyEditorInfo(
1,
"Editra",
description,
dlc,
_("Up to 22 MB download required."),
error_message)
e.installed = e.installed and installed
fei.append(e)
# jEdit
fei.append(FancyEditorInfo(
2,
@@ -223,7 +190,7 @@ init 1 python in editor:
None))
for k in editors:
if k in [ "Atom", "Editra", "jEdit", "System Editor", "None" ]:
if k in [ "Atom", "jEdit", "System Editor", "None" ]:
continue
fei.append(FancyEditorInfo(
@@ -266,13 +233,13 @@ init 1 python in editor:
if i.name == persistent.editor:
if i.installed and i.name in editors:
ei = editors[i.name]
os.environ[b"RENPY_EDIT_PY"] = renpy.fsencode(os.path.abspath(ei.filename))
os.environ["RENPY_EDIT_PY"] = renpy.fsencode(os.path.abspath(ei.filename))
error_message = i.error_message
break
else:
persistent.editor = None
os.environ.pop(b"RENPY_EDIT_PY", None)
os.environ.pop("RENPY_EDIT_PY", None)
renpy.editor.init()
@@ -382,7 +349,7 @@ init 1 python in editor:
e.open(fn, line=self.line)
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
@@ -428,7 +395,7 @@ init 1 python in editor:
e.open(self.filename, line=self.line)
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
@@ -466,7 +433,7 @@ init 1 python in editor:
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
@@ -489,7 +456,7 @@ init 1 python in editor:
e.open_project(project.current.path)
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
</dict>
</plist>
Binary file not shown.
Binary file not shown.
@@ -1,91 +0,0 @@
네이버 나눔글꼴의 지적 재산권은 NHN에 있습니다.
네이버 나눔글꼴은 개인 및 기업 사용자를 포함한 모든 사용자에게 무료로 제공되며
자유롭게 수정하고 재배포하실 수 있습니다.
단, 글꼴 자체를 유료로 판매하는 것은 금지하며, 네이버 나눔글꼴 라이선스 전문을 포함하기만 한다면
자유롭게 다른 소프트웨어에 번들하여 유료로 판매하거나 또는 재 배포하실 수도 있습니다.
네이버 나눔글꼴 라이선스 전문을 포함하기 어려울 경우,
나눔글꼴의 출처 표기를 부탁 드립니다. 예) 이 페이지에는 네이버에서 제공한 나눔글꼴이 적용되어 있습니다
네이버 나눔글꼴을 사용한 인쇄물, 광고물(온라인 포함)의 이미지는 나눔글꼴 프로모션을 위해 활용될 수 있습니다.
이를 원치 않는 사용자는 언제든지 당사에 요청하실 수 있습니다.
정확한 사용 조건은 아래 네이버 나눔글꼴 라이선스 전문을 참고하시기 바랍니다.
Copyright (c) 2010, NHN Corporation (http://www.nhncorp.com),
with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,
Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
SIL OPEN FONT LICENSE
Version 1.1 - 26 February 2007
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,
to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework
in which fonts may be shared and improved in partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold
by themselves.
The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided
that any reserved names are not used by derivative works.
The fonts and derivatives, however, cannot be released under any other type of license.
The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,
embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,
may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,
provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,
human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields
can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written
permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented
to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise
any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit
written permission.
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed
under any other license. The requirement for fonts to remain under this license does not apply to any document created using
the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.
IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE
OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -195,8 +195,8 @@ screen front_page_project:
textbutton _("game") action OpenDirectory("game")
textbutton _("base") action OpenDirectory(".")
textbutton _("images") action OpenDirectory("game/images")
textbutton _("audio") action OpenDirectory("game/audio")
textbutton _("gui") action OpenDirectory("game/gui")
# textbutton _("save") action None style "l_list"
vbox:
if persistent.show_edit_funcs:
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+6 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -36,10 +36,12 @@ def generate_gui(p):
CodeGenerator(p).copy_script("script.rpy")
CodeGenerator(p).copy_files()
images = os.path.join(p.prefix, "images")
for dn in [ "images", "audio" ]:
if not os.path.exists(images):
os.mkdir(images)
fulldn = os.path.join(p.prefix, dn)
if not os.path.exists(fulldn):
os.mkdir(fulldn)
def generate_gui_command():
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -280,8 +280,8 @@ class CodeGenerator(object):
for l in self.lines:
l = re.sub(ur'_\((\".*?\")\)', replace, l)
l = re.sub(ur'_\((\'.*?\')\)', replace, l)
l = re.sub(r'_\((\".*?\")\)', replace, l)
l = re.sub(r'_\((\'.*?\')\)', replace, l)
lines.append(l)
@@ -372,7 +372,7 @@ class CodeGenerator(object):
if os.path.exists(dst):
return
language = renpy.store._preferences.language # @UndefinedVariable
language = renpy.store._preferences.language # @UndefinedVariable
if language is None:
language = "None"
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+186
View File
@@ -0,0 +1,186 @@
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
import fnmatch
import re
import zipfile
def install_from_zip(name, zipglob, patterns):
# Determine the filename matching the zipglob, and put it into filename.
filenames = [ i for i in os.listdir(config.renpy_base) if fnmatch.fnmatch(i.lower(), zipglob.lower()) ]
if not filenames:
interface.error(
_("Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."),
label="install",
name=name,
zipglob=zipglob,
)
filenames.sort(key=lambda a : a.lower())
filename = filenames[-1]
# The zipfile.
zf = zipfile.ZipFile(os.path.join(config.renpy_base, filename))
for fn in zf.namelist():
matchfn = fn.replace("\\", "/")
dstfn = None
renpy.write_log(fn)
for src, dst in patterns:
if re.match(src, matchfn):
dstfn = re.sub(src, dst, matchfn)
break
if not dstfn:
continue
dstfn = os.path.join(config.renpy_base, dstfn)
if not os.path.exists(os.path.dirname(dstfn)):
continue
renpy.write_log(fn + " -> " + dstfn)
data = zf.read(fn)
with open(dstfn, "wb") as f:
f.write(data)
try:
os.chmod(dstfn, 0o755)
except:
pass
interface.info(_("Successfully installed [name!t]."), name=name)
label install_live2d:
python hide:
patterns = [
(r".*/Core/dll/linux/x86_64/(libLive2DCubismCore.so)", r"lib/linux-x86_64/\1"),
(r".*/Core/dll/windows/x86_64/(Live2DCubismCore.dll)", r"lib/windows-x86_64/\1"),
(r".*/Core/dll/windows/x86/(Live2DCubismCore.dll)", r"lib/windows-i686/\1"),
(r".*/Core/dll/macos/(libLive2DCubismCore.dylib)", r"lib/mac-x86_64/\1"),
(r".*/Core/dll/experimental/rpi/(libLive2DCubismCore.so)", r"lib/linux-armv7l/\1"),
(r".*/Core/dll/android/(armeabi-v7a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
(r".*/Core/dll/android/(arm64-v8a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
# This doesn't exist yet.
# (r".*/Core/dll/android/(x86_64/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
]
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-4-*.zip", patterns)
jump front_page
screen install():
frame:
style_group "l"
style "l_root"
window:
has vbox
label _("Install Libraries")
add HALF_SPACER
hbox:
frame:
style "l_indent"
xfill True
viewport:
scrollbars "vertical"
mousewheel True
has vbox
text _("This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed.")
add HALF_SPACER
add SPACER
textbutton _("Install Live2D Cubism SDK for Native"):
action Jump("install_live2d")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc.")
add SPACER
text _("Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support.")
add SPACER
if not achievement.has_steam:
textbutton _("Install Steam Support"):
action Jump("install_steam")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}.")
else:
textbutton _("Install Steam Support")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("Steam support has already been installed.")
textbutton _("Cancel") action Return(False) style "l_left_button"
textbutton _("Open Ren'Py SDK Directory") action OpenDirectory(config.renpy_base, absolute=True) style "l_right_button"
timer 2.0 action renpy.restart_interaction repeat True
label install:
call screen install
jump preferences
label install_steam:
$ add_dlc("steam", restart=True)
jump install
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -399,9 +399,9 @@ init python in interface:
import string
DIGITS_LETTERS = string.digits
PROJECT_LETTERS = DIGITS_LETTERS + string.ascii_letters + " _"
PROJECT_LETTERS = string.digits + string.ascii_letters + " _"
FILENAME_LETTERS = PROJECT_LETTERS + "\\/"
TRANSLATE_LETTERS = string.ascii_letters + "_"
TRANSLATE_LETTERS = string.ascii_letters + string.digits + "_"
def input(title, message, filename=False, sanitize=True, cancel=None, allow=None, default=""):
"""
+56 -14
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -105,12 +105,15 @@ init python:
xcode_name_cache[s] = s
return s
def xcode_project(p=None):
def xcode_project(p=None, target=None):
"""
Return the path to the Xcode project corresponding to `p`, or the current
project if `p` is None
"""
if target is not None:
return target
if p is None:
p = project.current
@@ -119,16 +122,22 @@ init python:
return os.path.join(persistent.xcode_projects_directory, xcode_name(p.name))
def ios_create(p=None, gui=True):
project.current.update_dump(force=True)
def ios_create(p=None, gui=True, target=None):
project.current.update_dump(force=True, gui=gui)
name = project.current.dump.get("name", None)
version = project.current.dump.get("version", None)
dest = xcode_project(p)
dest = xcode_project(p, target)
if gui:
iface = MobileInterface("ios")
else:
iface = rapt.interface.Interface()
if os.path.exists(dest):
interface.yesno(_("The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?"), no=Jump("ios"))
if not iface.yesno(_("The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?")):
return
i = 0
while True:
@@ -139,12 +148,11 @@ init python:
os.rename(dest, backup)
iface = MobileInterface("ios")
renios.create.create_project(iface, dest, name, version)
ios_populate(p, gui=gui)
ios_populate(p, gui=gui, target=target)
def ios_populate(p=None, gui=True):
def ios_populate(p=None, gui=True, target=None):
"""
This actually builds the package.
"""
@@ -154,7 +162,7 @@ init python:
if p is None:
p = project.current
dist = os.path.join(xcode_project(p), "base")
dist = os.path.join(xcode_project(p, target), "base")
if os.path.exists(dist):
shutil.rmtree(dist)
@@ -192,12 +200,12 @@ init python:
os.unlink(py_fn)
ios_image(p, "ios-icon.png", "Media.xcassets/AppIcon.appiconset", True)
ios_image(p, "ios-launchimage.png", "Media.xcassets/LaunchImage.launchimage", False)
ios_image(p, "ios-icon.png", "Media.xcassets/AppIcon.appiconset", True, target)
# ios_image(p, "ios-launchimage.png", "Media.xcassets/LaunchImage.launchimage", False, target)
def ios_image(p, source, destination, scale):
def ios_image(p, source, destination, scale, target):
source = os.path.join(p.path, source)
destination = os.path.join(xcode_project(p), destination)
destination = os.path.join(xcode_project(p, target), destination)
renios.image.generate(source, destination, scale)
@@ -386,3 +394,37 @@ label update_xcode_project:
$ ios_populate(None, True)
jump ios
init python:
def ios_create_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("project", help="The path to the Ren'Py project.")
ap.add_argument("destination", help="The path the iOS project that will be created.")
args = ap.parse_args()
p = project.Project(args.project)
ios_create(p, False, args.destination)
return False
renpy.arguments.register_command("ios_create", ios_create_command)
def ios_populate_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("project", help="The path to the Ren'Py project.")
ap.add_argument("destination", help="The path the iOS project that will be created.")
args = ap.parse_args()
p = project.Project(args.project)
ios_populate(p, False, args.destination)
return False
renpy.arguments.register_command("ios_populate", ios_populate_command)
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -48,11 +48,11 @@ init python:
pass
import urllib2
import ssl
with interface.error_handling(_("Downloading the itch.io butler.")):
context = ssl._create_unverified_context()
response = urllib2.urlopen("https://broth.itch.ovh/butler/{}/LATEST/archive/default".format(platform), context=context)
url = "https://broth.itch.ovh/butler/{}/LATEST/archive/default".format(platform)
req = urllib2.Request(url, headers={'User-Agent' : "Renpy"})
response = urllib2.urlopen(req, context=ssl_context())
with open(zip, "wb") as f:
while True:
+55
View File
@@ -0,0 +1,55 @@
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python hide:
import os
macapp = os.path.join(config.renpy_base, "renpy.app/Contents/MacOS")
maclib = os.path.join(config.renpy_base, "lib/mac-x86_64")
if os.path.exists(maclib):
for fn in os.listdir(maclib):
try:
fn = os.path.join(maclib, fn)
if fn.endswith(".macho"):
nfn = fn.rpartition(".")[0]
with open(fn, "rb") as f:
f.read(5)
data = f.read()
with open(nfn, "wb") as f:
f.write(data)
os.chmod(nfn, 0o755)
os.unlink(fn)
except:
pass
macpython = os.path.join(maclib, "python")
if sys.executable.startswith(macapp) and os.path.exists(macpython):
sys.executable = macpython
+6 -6
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -91,7 +91,7 @@ init -1 python:
def log(self, msg):
with open(self.filename, "a") as f:
f.write("\n")
f.write(msg)
f.write(unicode(msg))
f.write("\n")
def info(self, prompt):
@@ -170,7 +170,7 @@ init -1 python:
self.cmd = cmd
f = open(self.filename, "a")
f = open(self.filename, "ab")
f.write("\n\n\n")
@@ -190,13 +190,12 @@ init -1 python:
interface.processing(self.info_msg, show_screen=True, cancel=cancel_action)
kwargs = { }
if yes:
kwargs["stdin"] = subprocess.PIPE
try:
self.process = subprocess.Popen(cmd, cwd=renpy.fsencode(RAPT_PATH), stdout=f, stderr=f, stdin=subprocess.PIPE, startupinfo=startupinfo, **kwargs)
# avoid SIGTTIN caused by e.g. gradle doing empty read on terminal stdin
self.process.stdin.close()
if not yes:
self.process.stdin.close()
except:
import traceback
traceback.print_exc(file=f)
@@ -217,6 +216,7 @@ init -1 python:
if yes and self.yes_thread:
self.run_yes = False
self.yes_thread.join()
self.process.stdin.close()
self.process = None
self.yes_thread = None
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+13 -23
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -183,9 +183,7 @@ init -1 python hide:
config.sound = False
config.quit_action = Quit(confirm=False)
config.gl_resize = False
config.window_icon = "images/logo.png"
config.windows_icon = "images/logo32.png"
config.has_autosave = False
config.log_enable = False
config.mouse_hide_time = None
@@ -248,8 +246,8 @@ init python:
# Mac signing options.
import os
build.mac_identity = os.environ.get("RENPY_MAC_IDENTITY", None)
build.mac_codesign_command = [ "/home/tom/ab/renpy-deps/mac/mac_sign_client.sh", "{identity}", "{app}" ]
build.mac_create_dmg_command = [ "/home/tom/ab/renpy-deps/mac/mac_dmg_client.sh", "{identity}", "{volname}", "{sourcedir}", "{dmg}" ]
build.mac_codesign_command = [ config.renpy_base + "/scripts/mac/mac_sign_client.sh", "{identity}", "{app}" ]
build.mac_create_dmg_command = [ config.renpy_base + "/scripts/mac/mac_dmg_client.sh", "{identity}", "{volname}", "{sourcedir}", "{dmg}" ]
build.mac_codesign_dmg_command = [ "/bin/true" ]
@@ -285,6 +283,7 @@ init python:
except:
pass
build.classify_renpy("rapt/**/libLive2DCubismCore.so", None)
build.classify_renpy("rapt/**", "rapt")
build.executable("rapt/prototype/gradlew")
@@ -308,6 +307,7 @@ init python:
build.classify_renpy("**/log.txt", None)
build.classify_renpy("**/traceback.txt", None)
build.classify_renpy("**/errors.txt", None)
build.classify_renpy("**/steam_appid.txt", None)
build.classify_renpy("**/saves/", None)
build.classify_renpy("**/tmp/", None)
build.classify_renpy("**/.Editra", None)
@@ -373,10 +373,9 @@ init python:
build.classify_renpy("module/fribidi-src/**", "source")
# all-platforms binary.
build.classify_renpy("lib/**/_renpysteam*", None)
build.classify_renpy("lib/**/*steam_api*", None)
build.classify_renpy("lib/*/renpy", None)
build.classify_renpy("lib/*/renpy.exe", None)
build.classify_renpy("lib/**/_renpysteam*", "steam")
build.classify_renpy("lib/**/*steam_api*", "steam")
build.classify_renpy("lib/**/*Live2D*", None)
build.classify_renpy("lib/linux-armv7l/", "raspi")
build.classify_renpy("lib/linux-armv7l/**", "raspi")
build.classify_renpy("lib/**", "binary")
@@ -386,29 +385,16 @@ init python:
# jedit rules.
build.classify_renpy("jedit/**", "jedit")
# editra rules.
build.classify_renpy("editra/", "editra-all")
build.classify_renpy("editra/Editra.edit.py", "editra-all")
build.classify_renpy("editra/Editra/**", "editra-linux editra-windows")
build.classify_renpy("editra/Editra-mac.app/**", "editra-mac")
build.classify_renpy("editra/lib/**", "editra-windows")
build.classify_renpy("editra/editra.exe", "editra-windows")
build.executable("editra/Editra/Editra")
# Packages.
build.packages = [ ]
build.package("sdk", "zip tar.bz2 dmg", "source binary")
build.package("source", "tar.bz2", "source source_only", update=False)
build.package("raspi", "tar.bz2", "raspi", dlc=True, update=False)
build.package("steam", "zip", "steam", dlc=True)
build.package("jedit", "zip", "jedit", dlc=True)
build.package("editra-linux", "tar.bz2", "editra-all editra-linux", dlc=True)
build.package("editra-mac", "zip", "editra-all editra-mac", dlc=True)
build.package("editra-windows", "zip", "editra-all editra-windows", dlc=True)
build.package("atom-linux", "tar.bz2", "atom-all atom-linux", dlc=True)
build.package("atom-mac", "zip", "atom-all atom-mac", dlc=True)
build.package("atom-windows", "zip", "atom-all atom-windows", dlc=True)
@@ -423,3 +409,7 @@ define config.translate_launcher = True
# Reduce the rate of screen updates.
default preferences.gl_powersave = True
# Disable steam.
python early:
config.enable_steam = False
+21 -14
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -28,10 +28,17 @@ init python in distribute:
import struct
import stat
import shutil
import sys
import threading
from renpy import six
from zipfile import crc32
# Since the long type doesn't exist on py3, define it here
if six.PY3:
long = int
zlib.Z_DEFAULT_COMPRESSION = 5
class ZipFile(zipfile.ZipFile):
@@ -156,9 +163,9 @@ init python in distribute:
zi.create_system = 3
if xbit:
zi.external_attr = long(0100755) << 16
zi.external_attr = long(0o100755) << 16
else:
zi.external_attr = long(0100644) << 16
zi.external_attr = long(0o100644) << 16
self.zipfile.write_with_info(zi, path)
@@ -170,7 +177,7 @@ init python in distribute:
zi.date_time = self.get_date_time(path)
zi.compress_type = zipfile.ZIP_STORED
zi.create_system = 3
zi.external_attr = (long(0040755) << 16) | 0x10
zi.external_attr = (long(0o040755) << 16) | 0x10
self.zipfile.write_with_info(zi, path)
@@ -201,9 +208,9 @@ init python in distribute:
info.type = tarfile.DIRTYPE
if xbit:
info.mode = 0755
info.mode = 0o755
else:
info.mode = 0644
info.mode = 0o644
info.uid = 1000
info.gid = 1000
@@ -267,10 +274,14 @@ init python in distribute:
def mkdir(self, path):
if not os.path.isdir(path):
os.makedirs(path, 0755)
os.makedirs(path, 0o755)
def __init__(self, path):
self.path = path
if os.path.isdir(path):
shutil.rmtree(path)
self.mkdir(path)
def add_file(self, name, path, xbit):
@@ -282,9 +293,9 @@ init python in distribute:
shutil.copy2(path, fn)
if xbit:
os.chmod(fn, 0755)
os.chmod(fn, 0o755)
else:
os.chmod(fn, 0644)
os.chmod(fn, 0o644)
def add_directory(self, name, path):
fn = os.path.join(self.path, name)
@@ -389,14 +400,10 @@ init python in distribute:
break
t += 1
print(t, " ".join(sorted([ i.what for i in alive ])))
print("\r " + str(t) + " " + " ".join(sorted([ i.what for i in alive ])))
time.sleep(1)
for i in parallel_threads:
if i.done:
i.done()
+710 -876
View File
File diff suppressed because it is too large Load Diff
+27 -26
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -20,11 +20,6 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
if persistent.gl_enable is None:
persistent.gl_enable = True
config.gl_enable = persistent.gl_enable
if persistent.show_edit_funcs is None:
persistent.show_edit_funcs = True
@@ -41,7 +36,12 @@ init python:
rv = [ ( "English", None) ]
for i in languages:
rv.append((i.replace("_", " ").title(), i))
rv.append((i.title(), i))
for i in (("Schinese", "schinese"), ("Tchinese", "tchinese")):
if i in rv:
rv.remove(i)
rv.append(({"schinese": "Simplified Chinese", "tchinese": "Traditional Chinese"}.get(i[1]), i[1]))
rv.sort()
@@ -129,6 +129,22 @@ screen preferences:
add SPACER
add SEPARATOR2
frame:
style "l_indent"
yminimum 75
has vbox
text _("Actions:")
add HALF_SPACER
textbutton _("Install libraries") style "l_nonbox" action Jump("install")
textbutton _("Open launcher project") style "l_nonbox" action [ project.Select("launcher"), Jump("front_page") ]
textbutton _("Reset window size") style "l_nonbox" action Preference("display", 1.0)
frame:
style "l_indent"
xmaximum ONETHIRD
@@ -161,7 +177,6 @@ screen preferences:
add HALF_SPACER
textbutton _("Hardware rendering") style "l_checkbox" action ToggleField(persistent, "gl_enable")
textbutton _("Show edit file section") style "l_checkbox" action ToggleField(persistent, "show_edit_funcs")
textbutton _("Large fonts") style "l_checkbox" action [ ToggleField(persistent, "large_print"), renpy.utter_restart ]
@@ -181,30 +196,16 @@ screen preferences:
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
frame:
style "l_indent"
xmaximum ONETHIRD
xfill True
has vbox
add SEPARATOR2
if translations:
frame:
style "l_indent"
yminimum 75
xmaximum ONETHIRD
xfill True
has vbox
text _("Actions:")
add HALF_SPACER
textbutton _("Open launcher project") style "l_nonbox" action [ project.Select("launcher"), Jump("front_page") ]
if translations:
add SPACER
# Text editor selection.
add SEPARATOR2
+26 -13
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -22,15 +22,10 @@
# Code that manages projects.
init python:
if renpy.windows:
import EasyDialogsWin as EasyDialogs
else:
EasyDialogs = None
import os
init python in project:
from store import persistent, config, Action, renpy, _preferences
from store import persistent, config, Action, renpy, _preferences, MultiPersistent
import store.util as util
import store.interface as interface
@@ -41,6 +36,8 @@ init python in project:
import re
import tempfile
multipersistent = MultiPersistent("launcher.renpy.org")
if persistent.blurb is None:
persistent.blurb = 0
@@ -104,15 +101,13 @@ init python in project:
def load_data(self):
try:
f = open(os.path.join(self.path, "project.json"), "rb")
self.data = json.load(f)
f.close()
with open(os.path.join(self.path, "project.json"), "rb") as f:
self.data = json.load(f)
except:
self.data = { }
self.update_data()
def save_data(self):
"""
Saves the project data.
@@ -337,12 +332,14 @@ init python in project:
for l, line in enumerate(data):
l += 1
line = line[:1024]
try:
line = line.decode("utf-8")
except:
continue
m = re.search(ur".*#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
m = re.search(r"#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
if m is None:
continue
@@ -364,6 +361,8 @@ init python in project:
Unelides the filename relative to the project base.
"""
fn = os.path.normpath(fn)
fn1 = os.path.join(self.path, fn)
if os.path.exists(fn1):
return fn1
@@ -431,9 +430,18 @@ init python in project:
global current
if persistent.projects_directory is None:
if multipersistent.projects_directory is not None:
persistent.projects_directory = multipersistent.projects_directory
if (persistent.projects_directory is not None) and not os.path.isdir(persistent.projects_directory):
persistent.projects_directory = None
if persistent.projects_directory is not None:
if multipersistent.projects_directory is None:
multipersistent.projects_directory = persistent.projects_directory
multipersistent.save()
self.projects_directory = persistent.projects_directory
self.projects = [ ]
@@ -768,6 +776,8 @@ label choose_projects_directory:
interface.info(_("Ren'Py has set the projects directory to:"), "[path!q]", path=path)
persistent.projects_directory = path
project.multipersistent.projects_directory = path
project.multipersistent.save()
project.manager.scan()
@@ -782,6 +792,8 @@ init python:
args = ap.parse_args()
persistent.projects_directory = renpy.fsdecode(args.projects)
project.multipersistent.projects_directory = persistent.projects_directory
project.multipersistent.save()
renpy.save_persistent()
return False
@@ -792,7 +804,8 @@ init python:
ap = renpy.arguments.ArgumentParser()
args = ap.parse_args()
print renpy.fsencode(persistent.projects_directory)
if persistent.projects_directory is not None:
print(persistent.projects_directory)
return False
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -534,7 +534,7 @@ init python in theme_data:
THEME_FUNCTIONS.add(function)
THEME_SCREEN_OPERATIONS[theme] = roundrect_screen_ops
for scheme, colors in ROUNDRECT_SCHEMES.iteritems():
for scheme, colors in ROUNDRECT_SCHEMES.items():
subs = dict(colors)
subs["function"] = function
subs["theme"] = theme
@@ -587,7 +587,7 @@ init python in theme_data:
THEME_SCREEN_OPERATIONS["A White Tulip"] = awt_screen_ops
for scheme, colors in ROUNDRECT_SCHEMES.iteritems():
for scheme, colors in ROUNDRECT_SCHEMES.items():
subs = dict(colors)
subs["scheme"] = scheme
+38 -19
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -26,29 +26,48 @@
import sys
# Python3 and Python2-style imports.
try:
from tkinter import Tk
from tkinter.filedialog import askdirectory
except ImportError:
from Tkinter import Tk
from tkFileDialog import askdirectory
# Binary mode stdout for python3.
try:
sys.stdout = sys.stdout.buffer
except:
pass
# Gtk generally has better support than TKinter on various Linux distributions
def gtk_select_directory(title):
dialog = Gtk.FileChooserNative(title=title,
action=Gtk.FileChooserAction.SELECT_FOLDER)
# Create the TK canvas.
dialog.run()
if __name__ == "__main__":
return dialog.get_filename()
# Fall back to TKinter if Gtk isn't available
def tk_select_directory(initialdir, title):
root = Tk()
root.withdraw()
result = askdirectory(initialdir=sys.argv[1], parent=root, title="Select Ren'Py Projects Directory")
return askdirectory(initialdir=initialdir, parent=root, title=title)
if result == ():
result = ""
sys.stdout.write(result.encode("utf8"))
try:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
def select_directory(title):
result = gtk_select_directory(title)
return result if result else ''
except:
# Python3 and Python2-style imports.
try:
from tkinter import Tk
from tkinter.filedialog import askdirectory
except ImportError:
from Tkinter import Tk
from tkFileDialog import askdirectory
def select_directory(title):
return tk_select_directory(title, sys.argv[1])
if __name__ == '__main__':
directory = select_directory('Select Ren\'Py Projects Directory')
sys.stdout.write(directory)
+2 -2
View File
@@ -102,8 +102,8 @@ translate arabic strings:
new "يتم تهيئة [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "الرجاء ضغط الزر او تحريك [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "الرجاء ضغط الزر او تحريك [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -102,8 +102,8 @@ translate finnish strings:
new "Kalibroidaan [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Paina tai liikuta [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Paina tai liikuta [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -102,8 +102,8 @@ translate french strings:
new "Calibrage de [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Pressez ou déplacez le [kind] [control!r]."
old "Press or move the [control!s] [kind]."
new "Pressez ou déplacez le [kind] [control!s]."
# 00gamepad.rpy:66
old "Skip (A)"
+3 -3
View File
@@ -819,7 +819,7 @@ translate french strings:
# navigation.rpy:249
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
new "Aucun commentaire «TODO» trouvé.\n\nPour en créer un, écrivez \"# TODO\" dans le script."
new "Aucun commentaire « TODO » trouvé.\n\nPour en créer un, écrivez \"# TODO\" dans le script."
# navigation.rpy:256
old "The list of names is empty."
@@ -919,7 +919,7 @@ translate french strings:
# preferences.rpy:173
old "Show templates"
new "Afficher les modèles"
new "Afficher les modèles"
# preferences.rpy:174
old "Show edit file section"
@@ -1115,7 +1115,7 @@ translate french strings:
# updater.rpy:108
old "A preview of the next version of Ren'Py that can be used for testing and taking advantage of new features, but not for final releases of games."
new "Un aperçu de la prochaine version de RenPy qui peut être utilisée pour faire des tests et profiter de toutes nouvelles fonctionnalités, mais par pour créer de nouveaux jeux."
new "Un aperçu de la prochaine version de RenPy qui peut être utilisée pour faire des tests et profiter de toutes nouvelles fonctionnalités, mais pas pour créer de nouveaux jeux."
# updater.rpy:114
old "Experimental"
+2 -2
View File
@@ -102,8 +102,8 @@ translate german strings:
new "Calibrating [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Press or move the [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Press or move the [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -102,8 +102,8 @@ translate greek strings:
new "Ρυθμίζεται το [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Πατήστε ή κουνήστε το [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Πατήστε ή κουνήστε το [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -101,8 +101,8 @@
new "Mengkalibrasi [nama] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Tekan atau gerakan [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Tekan atau gerakan [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -102,8 +102,8 @@ translate italian strings:
new "Calibrazione [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Premi o muovi [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Premi o muovi [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+15
View File
@@ -742,6 +742,10 @@ translate japanese strings:
old "Debug"
new "デバッグ"
# renpy/common/00accessibility.rpy:191
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "このメニューのオプションはアクセス性を改善するためのものです。すべてのゲームで動作するわけではなく、特定の組合せではゲームを正常にレンダリングしないでしょう。これはゲームやエンジンの問題ではありません。フォント変更時に最良の結果を得るには、テキストサイズをオリジナルのままにしてください。"
# renpy/common/00preferences.rpy:430
old "font transform"
new "フォント変換"
@@ -774,3 +778,14 @@ translate japanese strings:
old "Show deleted"
new "消去済みを表示する"
translate japanese strings:
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "自己発話音量"
# renpy/common/00preferences.rpy:384
old "self voicing volume drop"
new "セルフボイシングボリュームを下げる"
+15
View File
@@ -185,3 +185,18 @@ translate japanese strings:
old "long: Print the full representation of objects on the console."
new "long: コンソール上のオブジェクトを全て表現する"
translate japanese strings:
# renpy/common/00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "watch <expression>: python式をウォッチ\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: ユニコード文字列中でのユニコードシンボルのエスケープを有効化"
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: ユニコード文字列中でのユニコードシンボルのエスケープを無効化し (default) として表示"
+41 -2
View File
@@ -102,8 +102,8 @@ translate japanese strings:
new "キャリブレート [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "[control!r] [kind] を押すか、倒すかしてください。"
old "Press or move the [control!s] [kind]."
new "[control!s] [kind] を押すか、倒すかしてください。"
# 00gamepad.rpy:66
old "Skip (A)"
@@ -259,3 +259,42 @@ translate japanese strings:
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "クリップボードに errors.txt を Discord に適した Markdown 形式でコピーする。"
translate japanese strings:
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "GLレンダリングを強制"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "ANGLEレンダリングを強制"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "GLESレンダリングを強制"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "GL2レンダリングを強制"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "ANGLE2レンダリングを強制"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "GLES2レンダリングを強制"
# renpy/common/00gltest.rpy:245
old "This game requires use of GL2 that can't be initialised."
new "このゲームはGL2を必要としますが初期化できません。"
# renpy/common/00gltest.rpy:256
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "詳しい修正方法は{a=[url]}documentation{/a}を参照してください。"
# renpy/common/00gltest.rpy:273
old "Change render options"
new "レンダリング設定を変更"
+62 -7
View File
@@ -35,7 +35,7 @@ translate japanese strings:
# android.rpy:31
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 ランチャーを再起動して下さい。"
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."
@@ -1011,7 +1011,7 @@ translate japanese strings:
# translations.rpy:170
old "Merge String Translations"
new "文字列の翻訳を合"
new "文字列の翻訳を合"
# translations.rpy:175
old "Replace existing translations"
@@ -1027,7 +1027,7 @@ translate japanese strings:
# translations.rpy:200
old "The extract command allows you to extract string translations from an existing project into a temporary file.\n\nThe merge command merges extracted translations into another project."
new "抽出コマンドは、既存のプロジェクトから文字列の翻訳(台詞以外の翻訳)を一時ファイルとして抽出します。\n\n合コマンドは、抽出した翻訳をのプロジェクトに合します。"
new "抽出コマンドは、のプロジェクトから文字列の翻訳(台詞以外の翻訳)を一時ファイルとして抽出します。\n\n合コマンドは、抽出した翻訳をのプロジェクトに合します。"
# translations.rpy:224
old "Ren'Py is generating translations...."
@@ -1047,11 +1047,11 @@ translate japanese strings:
# translations.rpy:271
old "Ren'Py is merging string translations..."
new "Ren'Py は文字列の翻訳を合しています…"
new "Ren'Py は文字列の翻訳を合しています…"
# translations.rpy:274
old "Ren'Py has finished merging [language] string translations."
new "Ren'Py は [language] の文字列の翻訳を合しました。"
new "Ren'Py は [language] の文字列の翻訳を合しました。"
# translations.rpy:282
old "Updating default interface translations..."
@@ -1331,7 +1331,7 @@ translate japanese strings:
# game/android.rpy:31
old "A 64-bit/x64 Java 8 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 "ウィンドウズでアンドロイドパッケージをビルドするには、 64-bit/x64 Java 8 Development Kit が必要になります。 JDK は JRE とは違うもので、Java には含まれていません。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}から JDK をダンロードしてインストールし{/a}、それから Ren'Py ランチャーを再起動してください。"
new "ウィンドウズでアンドロイドパッケージをビルドするには、 64-bit/x64 Java 8 Development Kit が必要になります。 JDK は JRE とは違うもので、Java には含まれていません。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK{/a}をダンロードインストールしから Ren'Py ランチャーを再起動してください。"
# game/android.rpy:50
old "Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device."
@@ -1582,7 +1582,7 @@ translate japanese strings:
new "アプリケーションに署名するキーを発行できます。このキーでアプリケーションに署名すると、アンドロイドマーケットや他のストアで配布できるようになります。\n\nキーを作成しますか?"
# game/androidstrings.rpy:67
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\n\\You also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "android.keystore ファイルを作成します。\n\nこのファイルはバックアップしてください。もし失くした場合はアプリをアップグレードすることが出来なくなります。\n\nまた、このファイルは安全な場所に保管してください。このファイルが悪意のある人間の手に渡ると、アプリのフェイクバージョンを作られたり、ユーザーデータを盗まれる恐れがあります。\n\nandroid.keystore のバックアップを作成し、安全な場所に保存しますか?"
# game/androidstrings.rpy:68
@@ -1613,6 +1613,10 @@ translate japanese strings:
old "(Beta)"
new "(Beta)"
# game/front_page.rpy:198
old "audio"
new "audio"
# game/gui7.rpy:429
old "creating a new project"
new "新しいプロジェクトを作成しています。"
@@ -1697,3 +1701,54 @@ translate japanese strings:
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "ウェブアプリをパッケージングするために、RenPyWeb (Ren'Py's web support) をダウンロードする必要があります。 RenPyWeb をダウンロードしますか?"
translate japanese strings:
# game/androidstrings.rpy:47
old "Do you want to automatically update the Java source code?"
new "Javaのソースコードを自動的に更新したいですか?"
# game/choose_directory.rpy:93
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Ren'Pyはpythonでtkinterkを実行してディレクトリを選択できません。python3-tkまたはtkinterパッケージをインストールしてください。"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "Ren'Py SDKディレクトリに[zipglob]にマッチするファイルが見つからなかったため、[name!t]をインストールできませんでした。"
# game/install.rpy:76
old "Successfully installed [name!t]."
new "[name!t]のインストールに成功しました。"
# game/install.rpy:104
old "Install Libraries"
new "ライブラリのインストール"
# game/install.rpy:119
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "この画面ではRen'pyと共に配布できないライブラリをダウンロードします。これらのライブラリの一部は使用や配布前にサードパーティーのライセンスに同意が必要です。"
# game/install.rpy:134
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Custom SDK for Native {/a}はLive2Dモデルの表示サポートを追加します。Ren'Py SDK ディレクトリにCubismSdkForNative-4-{i}version{/i}.zipを置き、クリックしてインストールしてください。Live2Dと共にゲームを配布するには Live2D Inc.のライセンスに同意が必要です。"
# game/install.rpy:138
old "Open Ren'Py SDK Directory"
new "Ren'Py SDKディレクトリを開く"
# game/preferences.rpy:138
old "Install libraries"
new "ライブラリのインストール"
# game/preferences.rpy:140
old "Reset window size"
new "ウィンドウサイズリセット"
# game/web.rpy:242
old "Preparing progressive download"
new "プログレッシブダウンロードの準備"
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "画像と音声がプレイ中にダウンロード可能です。 'progressive_download.txt' ファイルが作成されるのでこれを編集して振舞を設定できます。"
+4
View File
@@ -694,3 +694,7 @@ translate japanese strings:
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
# gui/game/screens.rpy:333
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## 終了ボタンはiOSでは使用できません。また、AndroidやWebでは必要ありません。"
+1 -1
View File
@@ -1,5 +1,5 @@
init python:
translate_font("japanese", "MTLc3m.ttf")
translate_font("japanese", "SourceHanSansLite.ttf")
translate_define("japanese", "gui.language", "'japanese-normal'")
translate japanese python:
+25 -12
View File
@@ -716,54 +716,63 @@
old "Show deleted"
new "삭제항목 보이기"
# 00accessibility.rpy:76
# 00accessibility.rpy:128
old "Font Override"
new "글꼴 덮어쓰기"
# 00accessibility.rpy:80
# 00accessibility.rpy:132
old "Default"
new "기본"
# 00accessibility.rpy:84
# 00accessibility.rpy:136
old "DejaVu Sans"
new "DejaVu Sans"
# 00accessibility.rpy:88
# 00accessibility.rpy:140
old "Opendyslexic"
new "Opendyslexic"
# 00accessibility.rpy:94
# 00accessibility.rpy:146
old "Text Size Scaling"
new "글자 크기 조절"
# 00accessibility.rpy:100
# 00accessibility.rpy:152
old "Reset"
new "초기화"
# 00accessibility.rpy:105
# 00accessibility.rpy:158
old "Line Spacing Scaling"
new "줄 간격 조절"
# 00accessibility.rpy:117
# 00accessibility.rpy:171
old "Self-Voicing"
new "대사 읽기"
# 00accessibility.rpy:121
# 00accessibility.rpy:175
old "Off"
new "끄기"
# 00accessibility.rpy:125
# 00accessibility.rpy:179
old "Text-to-speech"
new "텍스트 음성 변환"
# 00accessibility.rpy:129
# 00accessibility.rpy:183
old "Clipboard"
new "클립보드"
# 00accessibility.rpy:146
# 00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "대사 읽기 음소거"
# 00accessibility.rpy:202
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "이 메뉴의 옵션은 접근성을 향상시키기 위한 것입니다. 모든 게임에서 작동하지 않을 수 있고 일부 옵션 조합은 게임을 플레이할 수 없게 만들 수 있으며 이러한 경우 게임이나 엔진의 문제가 아닙니다. 글꼴을 변경할 때 최상의 결과를 얻으려면 글자 크기를 원래대로 유지하십시오."
# 00preferences.rpy:388
old "self voicing volume drop"
new "대사 읽기 음소거"
# 00preferences.rpy:430
old "font transform"
new "글꼴 변형"
@@ -775,3 +784,7 @@
# 00preferences.rpy:441
old "font line spacing"
new "글꼴 줄 간격"
# 00preferences.rpy:464
old "system cursor"
new "시스템 커서"
+8 -4
View File
@@ -129,8 +129,8 @@
new "[name]를 보정 중입니다. ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "[control!r] [kind]를 누르거나 이동합니다."
old "Press or move the [control!s] [kind]."
new "[control!s] [kind]를 누르거나 이동합니다."
# 00gamepad.rpy:66
old "Skip (A)"
@@ -173,14 +173,18 @@
new "무시"
# _errorhandling.rpym:591
old "Ignores the exception, allowing you to continue."
new "예외를 무시하고 게임을 계속합니다."
# _errorhandling.rpym:593
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "예외를 무시하고 게임을 계속합니다. 간혹 오류가 추가 발생할 수 있습니다."
# _errorhandling.rpym:593
# _errorhandling.rpym:597
old "Reload"
new "다시 불러오기"
# _errorhandling.rpym:597
# _errorhandling.rpym:599
old "Reloads the game from disk, saving and restoring game state if possible."
new "현재 상태를 저장한 뒤 복원하여 게임을 디스크에서 다시 불러옵니다."
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -210,7 +210,7 @@
# screens.rpy:558
old "Version [config.version!t]\n"
new "버 [config.version!t]\n"
new "버 [config.version!t]\n"
# screens.rpy:560
old "## gui.about is usually set in options.rpy."
+1 -1
View File
@@ -1,5 +1,5 @@
init python:
translate_font("korean", "NanumGothic.ttf")
translate_font("korean", "SourceHanSansLite.ttf")
translate korean python:
gui.REGULAR_BOLD = True
+2 -2
View File
@@ -129,8 +129,8 @@
new "Menentuukur [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Tekan atau gerakkan [kind] [control!r]."
old "Press or move the [control!s] [kind]."
new "Tekan atau gerakkan [kind] [control!s]."
# 00gamepad.rpy:66
old "Skip (A)"
+106 -94
View File
@@ -73,31 +73,35 @@ translate piglatin strings:
old "Reset"
new "Esetray"
# renpy/common/00accessibility.rpy:157
# renpy/common/00accessibility.rpy:158
old "Line Spacing Scaling"
new "Inelay Pacingsay Calingsay"
# renpy/common/00accessibility.rpy:169
# renpy/common/00accessibility.rpy:171
old "Self-Voicing"
new "Elfsay-Oicingvay"
# renpy/common/00accessibility.rpy:173
# renpy/common/00accessibility.rpy:175
old "Off"
new "Ffoay"
# renpy/common/00accessibility.rpy:177
# renpy/common/00accessibility.rpy:179
old "Text-to-speech"
new "Exttay-otay-peechsay"
# renpy/common/00accessibility.rpy:181
# renpy/common/00accessibility.rpy:183
old "Clipboard"
new "Lipboardcay"
# renpy/common/00accessibility.rpy:185
# renpy/common/00accessibility.rpy:187
old "Debug"
new "Ebugday"
# renpy/common/00accessibility.rpy:191
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "Elfsay-Oicingvay Olumevay Ropday"
# renpy/common/00accessibility.rpy:202
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "Hetay optionsay onay histay enumay areay intendeday otay improveay accessibilityay. Heytay aymay otnay orkway ithway allay amesgay, anday omesay ombinationscay ofay optionsay aymay enderray hetay amegay unplayableay. Histay isay otnay anay issueay ithway hetay amegay oray engineay. Orfay hetay estbay esultsray henway angingchay ontsfay, ytray otay eepkay hetay exttay izesay hetay amesay asay itay originallyay asway."
@@ -269,39 +273,39 @@ translate piglatin strings:
old "Delete slot [text]"
new "Eleteday otslay [text]"
# renpy/common/00action_file.rpy:569
# renpy/common/00action_file.rpy:566
old "File page auto"
new "Ilefay agepay autoay"
# renpy/common/00action_file.rpy:571
# renpy/common/00action_file.rpy:568
old "File page quick"
new "Ilefay agepay uickqay"
# renpy/common/00action_file.rpy:573
# renpy/common/00action_file.rpy:570
old "File page [text]"
new "Ilefay agepay [text]"
# renpy/common/00action_file.rpy:772
# renpy/common/00action_file.rpy:769
old "Next file page."
new "Extnay ilefay agepay."
# renpy/common/00action_file.rpy:845
# renpy/common/00action_file.rpy:842
old "Previous file page."
new "Reviouspay ilefay agepay."
# renpy/common/00action_file.rpy:906
# renpy/common/00action_file.rpy:903
old "Quick save complete."
new "Uickqay avesay ompletecay."
# renpy/common/00action_file.rpy:924
# renpy/common/00action_file.rpy:921
old "Quick save."
new "Uickqay avesay."
# renpy/common/00action_file.rpy:943
# renpy/common/00action_file.rpy:940
old "Quick load."
new "Uickqay oadlay."
# renpy/common/00action_other.rpy:355
# renpy/common/00action_other.rpy:375
old "Language [text]"
new "Anguagelay [text]"
@@ -397,51 +401,51 @@ translate piglatin strings:
old "Audio Filename:"
new "Udioaay Ilenamefay:"
# renpy/common/00gui.rpy:371
# renpy/common/00gui.rpy:374
old "Are you sure?"
new "Reaay ouyay uresay?"
# renpy/common/00gui.rpy:372
# renpy/common/00gui.rpy:375
old "Are you sure you want to delete this save?"
new "Reaay ouyay uresay ouyay antway otay eleteday histay avesay?"
# renpy/common/00gui.rpy:373
# renpy/common/00gui.rpy:376
old "Are you sure you want to overwrite your save?"
new "Reaay ouyay uresay ouyay antway otay overwriteay ouryay avesay?"
# renpy/common/00gui.rpy:374
# renpy/common/00gui.rpy:377
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?"
# renpy/common/00gui.rpy:375
# renpy/common/00gui.rpy:378
old "Are you sure you want to quit?"
new "Reaay ouyay uresay ouyay antway otay uitqay?"
# renpy/common/00gui.rpy:376
# renpy/common/00gui.rpy:379
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."
# renpy/common/00gui.rpy:377
# renpy/common/00gui.rpy:380
old "Are you sure you want to end the replay?"
new "Reaay ouyay uresay ouyay antway otay enday hetay eplayray?"
# renpy/common/00gui.rpy:378
# renpy/common/00gui.rpy:381
old "Are you sure you want to begin skipping?"
new "Reaay ouyay uresay ouyay antway otay eginbay kippingsay?"
# renpy/common/00gui.rpy:379
# renpy/common/00gui.rpy:382
old "Are you sure you want to skip to the next choice?"
new "Reaay ouyay uresay ouyay antway otay kipsay otay hetay extnay oicechay?"
# renpy/common/00gui.rpy:380
# renpy/common/00gui.rpy:383
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?"
# renpy/common/00keymap.rpy:267
# renpy/common/00keymap.rpy:301
old "Failed to save screenshot as %s."
new "Ailedfay otay avesay creenshotsay asay %say."
# renpy/common/00keymap.rpy:279
# renpy/common/00keymap.rpy:313
old "Saved screenshot as %s."
new "Avedsay creenshotsay asay %say."
@@ -453,267 +457,275 @@ translate piglatin strings:
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 "Histay rogrampay ontainscay eefray oftwaresay underay aay umbernay ofay icenseslay, includingay hetay Itmay Icenselay anday Nugay Esserlay Eneralgay Ublicpay Icenselay. Aay ompletecay istlay ofay oftwaresay, includingay inkslay otay ullfay ourcesay odecay, ancay ebay oundfay {a=https://www.renpy.org/l/license}erehay{/a}."
# renpy/common/00preferences.rpy:233
# renpy/common/00preferences.rpy:240
old "display"
new "isplayday"
# renpy/common/00preferences.rpy:245
# renpy/common/00preferences.rpy:252
old "transitions"
new "ansitionstray"
# renpy/common/00preferences.rpy:254
# renpy/common/00preferences.rpy:261
old "skip transitions"
new "kipsay ansitionstray"
# renpy/common/00preferences.rpy:256
# renpy/common/00preferences.rpy:263
old "video sprites"
new "ideovay pritessay"
# renpy/common/00preferences.rpy:265
# renpy/common/00preferences.rpy:272
old "show empty window"
new "owshay emptyay indowway"
# renpy/common/00preferences.rpy:274
# renpy/common/00preferences.rpy:281
old "text speed"
new "exttay peedsay"
# renpy/common/00preferences.rpy:282
# renpy/common/00preferences.rpy:289
old "joystick"
new "oystickjay"
# renpy/common/00preferences.rpy:282
# renpy/common/00preferences.rpy:289
old "joystick..."
new "oystickjay..."
# renpy/common/00preferences.rpy:289
# renpy/common/00preferences.rpy:296
old "skip"
new "kipsay"
# renpy/common/00preferences.rpy:292
# renpy/common/00preferences.rpy:299
old "skip unseen [text]"
new "kipsay unseenay [text]"
# renpy/common/00preferences.rpy:297
# renpy/common/00preferences.rpy:304
old "skip unseen text"
new "kipsay unseenay exttay"
# renpy/common/00preferences.rpy:299
# renpy/common/00preferences.rpy:306
old "begin skipping"
new "eginbay kippingsay"
# renpy/common/00preferences.rpy:303
# renpy/common/00preferences.rpy:310
old "after choices"
new "afteray oiceschay"
# renpy/common/00preferences.rpy:310
# renpy/common/00preferences.rpy:317
old "skip after choices"
new "kipsay afteray oiceschay"
# renpy/common/00preferences.rpy:312
# renpy/common/00preferences.rpy:319
old "auto-forward time"
new "autoay-orwardfay imetay"
# renpy/common/00preferences.rpy:326
# renpy/common/00preferences.rpy:333
old "auto-forward"
new "autoay-orwardfay"
# renpy/common/00preferences.rpy:333
# renpy/common/00preferences.rpy:340
old "Auto forward"
new "Utoaay orwardfay"
# renpy/common/00preferences.rpy:336
# renpy/common/00preferences.rpy:343
old "auto-forward after click"
new "autoay-orwardfay afteray ickclay"
# renpy/common/00preferences.rpy:345
# renpy/common/00preferences.rpy:352
old "automatic move"
new "automaticay ovemay"
# renpy/common/00preferences.rpy:354
# renpy/common/00preferences.rpy:361
old "wait for voice"
new "aitway orfay oicevay"
# renpy/common/00preferences.rpy:363
# renpy/common/00preferences.rpy:370
old "voice sustain"
new "oicevay ustainsay"
# renpy/common/00preferences.rpy:372
# renpy/common/00preferences.rpy:379
old "self voicing"
new "elfsay oicingvay"
# renpy/common/00preferences.rpy:381
# renpy/common/00preferences.rpy:388
old "self voicing volume drop"
new "elfsay oicingvay olumevay ropday"
# renpy/common/00preferences.rpy:396
old "clipboard voicing"
new "ipboardclay oicingvay"
# renpy/common/00preferences.rpy:390
# renpy/common/00preferences.rpy:405
old "debug voicing"
new "ebugday oicingvay"
# renpy/common/00preferences.rpy:399
# renpy/common/00preferences.rpy:414
old "emphasize audio"
new "emphasizeay audioay"
# renpy/common/00preferences.rpy:408
# renpy/common/00preferences.rpy:423
old "rollback side"
new "ollbackray idesay"
# renpy/common/00preferences.rpy:418
# renpy/common/00preferences.rpy:433
old "gl powersave"
new "glay owersavepay"
# renpy/common/00preferences.rpy:424
# renpy/common/00preferences.rpy:439
old "gl framerate"
new "glay ameratefray"
# renpy/common/00preferences.rpy:427
# renpy/common/00preferences.rpy:442
old "gl tearing"
new "glay earingtay"
# renpy/common/00preferences.rpy:430
# renpy/common/00preferences.rpy:445
old "font transform"
new "ontfay ansformtray"
# renpy/common/00preferences.rpy:433
# renpy/common/00preferences.rpy:448
old "font size"
new "ontfay izesay"
# renpy/common/00preferences.rpy:441
# renpy/common/00preferences.rpy:456
old "font line spacing"
new "ontfay inelay pacingsay"
# renpy/common/00preferences.rpy:460
# renpy/common/00preferences.rpy:464
old "system cursor"
new "ystemsay ursorcay"
# renpy/common/00preferences.rpy:484
old "music volume"
new "usicmay olumevay"
# renpy/common/00preferences.rpy:461
# renpy/common/00preferences.rpy:485
old "sound volume"
new "oundsay olumevay"
# renpy/common/00preferences.rpy:462
# renpy/common/00preferences.rpy:486
old "voice volume"
new "oicevay olumevay"
# renpy/common/00preferences.rpy:463
# renpy/common/00preferences.rpy:487
old "mute music"
new "utemay usicmay"
# renpy/common/00preferences.rpy:464
# renpy/common/00preferences.rpy:488
old "mute sound"
new "utemay oundsay"
# renpy/common/00preferences.rpy:465
# renpy/common/00preferences.rpy:489
old "mute voice"
new "utemay oicevay"
# renpy/common/00preferences.rpy:466
# renpy/common/00preferences.rpy:490
old "mute all"
new "utemay allay"
# renpy/common/00preferences.rpy:547
# renpy/common/00preferences.rpy:571
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Lipboardcay oicingvay enableday. Resspay 'iftshay+Cay' otay isableday."
# renpy/common/00preferences.rpy:549
# renpy/common/00preferences.rpy:573
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."
# renpy/common/00preferences.rpy:551
# renpy/common/00preferences.rpy:575
old "Self-voicing enabled. Press 'v' to disable."
new "Elfsay-oicingvay enableday. Resspay 'vay' otay isableday."
# renpy/common/00iap.rpy:217
# renpy/common/00iap.rpy:219
old "Contacting App Store\nPlease Wait..."
new "Ontactingcay Ppaay Toresay\nLeasepay Aitway..."
# renpy/common/00updater.rpy:375
# renpy/common/00updater.rpy:374
old "The Ren'Py Updater is not supported on mobile devices."
new "Hetay Enray'Ypay Pdateruay isay otnay upportedsay onay obilemay evicesday."
# renpy/common/00updater.rpy:494
# renpy/common/00updater.rpy:493
old "An error is being simulated."
new "Naay erroray isay eingbay imulatedsay."
# renpy/common/00updater.rpy:678
# renpy/common/00updater.rpy:677
old "Either this project does not support updating, or the update status file was deleted."
new "Ithereay histay rojectpay oesday otnay upportsay updatingay, oray hetay updateay atusstay ilefay asway eletedday."
# renpy/common/00updater.rpy:692
# renpy/common/00updater.rpy:691
old "This account does not have permission to perform an update."
new "Histay accountay oesday otnay avehay ermissionpay otay erformpay anay updateay."
# renpy/common/00updater.rpy:695
# renpy/common/00updater.rpy:694
old "This account does not have permission to write the update log."
new "Histay accountay oesday otnay avehay ermissionpay otay riteway hetay updateay oglay."
# renpy/common/00updater.rpy:722
# renpy/common/00updater.rpy:721
old "Could not verify update signature."
new "Ouldcay otnay erifyvay updateay ignaturesay."
# renpy/common/00updater.rpy:997
# renpy/common/00updater.rpy:992
old "The update file was not downloaded."
new "Hetay updateay ilefay asway otnay ownloadedday."
# renpy/common/00updater.rpy:1015
# renpy/common/00updater.rpy:1010
old "The update file does not have the correct digest - it may have been corrupted."
new "Hetay updateay ilefay oesday otnay avehay hetay orrectcay igestday - itay aymay avehay eenbay orruptedcay."
# renpy/common/00updater.rpy:1071
# renpy/common/00updater.rpy:1064
old "While unpacking {}, unknown type {}."
new "Hileway unpackingay {}, unknownay ypetay {}."
# renpy/common/00updater.rpy:1439
# renpy/common/00updater.rpy:1430
old "Updater"
new "Pdateruay"
# renpy/common/00updater.rpy:1450
# renpy/common/00updater.rpy:1441
old "This program is up to date."
new "Histay rogrampay isay upay otay ateday."
# renpy/common/00updater.rpy:1452
# renpy/common/00updater.rpy:1443
old "[u.version] is available. Do you want to install it?"
new "[u.version] isay availableay. Oday ouyay antway otay installay itay?"
# renpy/common/00updater.rpy:1454
# renpy/common/00updater.rpy:1445
old "Preparing to download the updates."
new "Reparingpay otay ownloadday hetay updatesay."
# renpy/common/00updater.rpy:1456
# renpy/common/00updater.rpy:1447
old "Downloading the updates."
new "Ownloadingday hetay updatesay."
# renpy/common/00updater.rpy:1458
# renpy/common/00updater.rpy:1449
old "Unpacking the updates."
new "Npackinguay hetay updatesay."
# renpy/common/00updater.rpy:1462
# renpy/common/00updater.rpy:1453
old "The updates have been installed. The program will restart."
new "Hetay updatesay avehay eenbay installeday. Hetay rogrampay illway estartray."
# renpy/common/00updater.rpy:1464
# renpy/common/00updater.rpy:1455
old "The updates have been installed."
new "Hetay updatesay avehay eenbay installeday."
# renpy/common/00updater.rpy:1466
# renpy/common/00updater.rpy:1457
old "The updates were cancelled."
new "Hetay updatesay ereway ancelledcay."
# renpy/common/00gallery.rpy:592
# renpy/common/00gallery.rpy:590
old "Image [index] of [count] locked."
new "Mageiay [index] ofay [count] ockedlay."
# renpy/common/00gallery.rpy:612
# renpy/common/00gallery.rpy:610
old "prev"
new "revpay"
# renpy/common/00gallery.rpy:613
# renpy/common/00gallery.rpy:611
old "next"
new "extnay"
# renpy/common/00gallery.rpy:614
# renpy/common/00gallery.rpy:612
old "slideshow"
new "ideshowslay"
# renpy/common/00gallery.rpy:615
# renpy/common/00gallery.rpy:613
old "return"
new "eturnray"
+34 -26
View File
@@ -85,27 +85,27 @@ translate piglatin strings:
old "Position copied to clipboard."
new "Ositionpay opiedcay otay ipboardclay."
# renpy/common/_developer/developer.rpym:507
# renpy/common/_developer/developer.rpym:506
old "Type to filter: "
new "Ypetay otay ilterfay: "
# renpy/common/_developer/developer.rpym:635
# renpy/common/_developer/developer.rpym:631
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Exturestay: [tex_count] ([tex_size_mb:.1f] Bmay)"
# renpy/common/_developer/developer.rpym:639
# renpy/common/_developer/developer.rpym:635
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Mageiay achecay: [cache_pct:.1f]% ([cache_size_mb:.1f] Bmay)"
# renpy/common/_developer/developer.rpym:649
# renpy/common/_developer/developer.rpym:645
old "✔ "
new "✔ "
# renpy/common/_developer/developer.rpym:652
# renpy/common/_developer/developer.rpym:648
old "✘ "
new "✘ "
# renpy/common/_developer/developer.rpym:657
# renpy/common/_developer/developer.rpym:653
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}✔ redictedpay imageay (oodgay){/color}\n{color=#fcc}✘ unpredicteday imageay (adbay){/color}\n{color=#fff}Ragday otay ovemay.{/color}"
@@ -145,75 +145,83 @@ translate piglatin strings:
old "<repr() failed>"
new "<eprray() ailedfay>"
# renpy/common/00console.rpy:273
# renpy/common/00console.rpy:492
old "Press <esc> to exit console. Type help for help.\n"
new "Resspay <escay> otay exitay onsolecay. Ypetay elphay orfay elphay.\n"
# renpy/common/00console.rpy:277
# renpy/common/00console.rpy:496
old "Ren'Py script enabled."
new "Enray'Ypay criptsay enableday."
# renpy/common/00console.rpy:279
# renpy/common/00console.rpy:498
old "Ren'Py script disabled."
new "Enray'Ypay criptsay isabledday."
# renpy/common/00console.rpy:526
# renpy/common/00console.rpy:745
old "help: show this help"
new "elphay: owshay histay elphay"
# renpy/common/00console.rpy:531
# renpy/common/00console.rpy:750
old "commands:\n"
new "ommandscay:\n"
# renpy/common/00console.rpy:541
# renpy/common/00console.rpy:760
old " <renpy script statement>: run the statement\n"
new " <enpyray criptsay atementstay>: unray hetay atementstay\n"
# renpy/common/00console.rpy:543
# renpy/common/00console.rpy:762
old " <python expression or statement>: run the expression or statement"
new " <ythonpay expressionay oray atementstay>: unray hetay expressionay oray atementstay"
# renpy/common/00console.rpy:551
# renpy/common/00console.rpy:770
old "clear: clear the console history"
new "earclay: earclay hetay onsolecay istoryhay"
# renpy/common/00console.rpy:555
# renpy/common/00console.rpy:774
old "exit: exit the console"
new "exitay: exitay hetay onsolecay"
# renpy/common/00console.rpy:563
# renpy/common/00console.rpy:782
old "load <slot>: loads the game from slot"
new "oadlay <otslay>: oadslay hetay amegay omfray otslay"
# renpy/common/00console.rpy:576
# renpy/common/00console.rpy:795
old "save <slot>: saves the game in slot"
new "avesay <otslay>: avessay hetay amegay inay otslay"
# renpy/common/00console.rpy:587
# renpy/common/00console.rpy:806
old "reload: reloads the game, refreshing the scripts"
new "eloadray: eloadsray hetay amegay, efreshingray hetay criptssay"
# renpy/common/00console.rpy:595
old "watch <expression>: watch a python expression"
new "atchway <expressionay>: atchway aay ythonpay expressionay"
# renpy/common/00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "atchway <expressionay>: atchway aay ythonpay expressionay\n atchway ortshay: akesmay hetay epresentationray ofay acedtray expressionsay ortshay (efaultday)\n atchway onglay: akesmay hetay epresentationray ofay acedtray expressionsay asay isay"
# renpy/common/00console.rpy:621
# renpy/common/00console.rpy:849
old "unwatch <expression>: stop watching an expression"
new "unwatchay <expressionay>: opstay atchingway anay expressionay"
# renpy/common/00console.rpy:652
# renpy/common/00console.rpy:884
old "unwatchall: stop watching all expressions"
new "unwatchallay: opstay atchingway allay expressionsay"
# renpy/common/00console.rpy:669
# renpy/common/00console.rpy:901
old "jump <label>: jumps to label"
new "umpjay <abellay>: umpsjay otay abellay"
# renpy/common/00console.rpy:685
# renpy/common/00console.rpy:917
old "short: Shorten the representation of objects on the console (default)."
new "ortshay: Hortensay hetay epresentationray ofay objectsay onay hetay onsolecay (efaultday)."
# renpy/common/00console.rpy:690
# renpy/common/00console.rpy:921
old "long: Print the full representation of objects on the console."
new "onglay: Rintpay hetay ullfay epresentationray ofay objectsay onay hetay onsolecay."
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escapeay: Nableseay escapingay ofay unicodeay ymbolssay inay unicodeay ringsstay."
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescapeay: Isablesday escapingay ofay unicodeay ymbolssay inay unicodeay ringsstay anday rintpay itay asay isay (efaultday)."
+70 -86
View File
@@ -1,121 +1,105 @@
translate piglatin strings:
# renpy/common/00gltest.rpy:70
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Endererray"
# renpy/common/00gltest.rpy:74
# renpy/common/00gltest.rpy:93
old "Automatically Choose"
new "Utomaticallyaay Hoosecay"
# renpy/common/00gltest.rpy:79
old "Force Angle/DirectX Renderer"
new "Orcefay Ngleaay/Irectxday Endererray"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Orcefay Lgay Endererray"
# renpy/common/00gltest.rpy:83
old "Force OpenGL Renderer"
new "Orcefay Pengloay Endererray"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Orcefay Ngleaay Endererray"
# renpy/common/00gltest.rpy:87
old "Force Software Renderer"
new "Orcefay Oftwaresay Endererray"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "Orcefay Lesgay Endererray"
# renpy/common/00gltest.rpy:93
old "NPOT"
new "Potnay"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Orcefay L2gay Endererray"
# renpy/common/00gltest.rpy:97
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "Orcefay Ngle2aay Endererray"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "Orcefay Les2gay Endererray"
# renpy/common/00gltest.rpy:136
old "Enable"
new "Nableeay"
# renpy/common/00gltest.rpy:131
# renpy/common/00gltest.rpy:155
old "Powersave"
new "Owersavepay"
# renpy/common/00gltest.rpy:145
# renpy/common/00gltest.rpy:169
old "Framerate"
new "Rameratefay"
# renpy/common/00gltest.rpy:149
# renpy/common/00gltest.rpy:173
old "Screen"
new "Creensay"
# renpy/common/00gltest.rpy:153
# renpy/common/00gltest.rpy:177
old "60"
new "06ay"
# renpy/common/00gltest.rpy:157
# renpy/common/00gltest.rpy:181
old "30"
new "03ay"
# renpy/common/00gltest.rpy:163
# renpy/common/00gltest.rpy:187
old "Tearing"
new "Earingtay"
# renpy/common/00gltest.rpy:179
# renpy/common/00gltest.rpy:203
old "Changes will take effect the next time this program is run."
new "Hangescay illway aketay effectay hetay extnay imetay histay rogrampay isay unray."
# renpy/common/00gltest.rpy:213
# renpy/common/00gltest.rpy:238
old "Performance Warning"
new "Erformancepay Arningway"
# renpy/common/00gltest.rpy:218
# renpy/common/00gltest.rpy:243
old "This computer is using software rendering."
new "Histay omputercay isay usingay oftwaresay enderingray."
# renpy/common/00gltest.rpy:220
old "This computer is not using shaders."
new "Histay omputercay isay otnay usingay adersshay."
# renpy/common/00gltest.rpy:245
old "This game requires use of GL2 that can't be initialised."
new "Histay amegay equiresray useay ofay L2gay hattay ancay'tay ebay initialiseday."
# renpy/common/00gltest.rpy:222
old "This computer is displaying graphics slowly."
new "Histay omputercay isay isplayingday aphicsgray owlyslay."
# renpy/common/00gltest.rpy:224
# renpy/common/00gltest.rpy:247
old "This computer has a problem displaying graphics: [problem]."
new "Histay omputercay ashay aay roblempay isplayingday aphicsgray: [problem]."
# renpy/common/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 "Tsiay aphicsgray riversday aymay ebay outay ofay ateday oray otnay operatingay orrectlycay. Histay ancay eadlay otay owslay oray incorrectay aphicsgray isplayday. Pdatinguay Irectxday ouldcay ixfay histay roblempay."
# renpy/common/00gltest.rpy:231
# renpy/common/00gltest.rpy:251
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "Tsiay aphicsgray riversday aymay ebay outay ofay ateday oray otnay operatingay orrectlycay. Histay ancay eadlay otay owslay oray incorrectay aphicsgray isplayday."
# renpy/common/00gltest.rpy:236
old "Update DirectX"
new "Pdateuay Irectxday"
# renpy/common/00gltest.rpy:256
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "Oremay etailsday onay owhay otay ixfay histay ancay ebay oundfay inay hetay {a=[url]}ocumentationday{/a}."
# renpy/common/00gltest.rpy:242
# renpy/common/00gltest.rpy:261
old "Continue, Show this warning again"
new "Ontinuecay, Howsay histay arningway againay"
# renpy/common/00gltest.rpy:246
# renpy/common/00gltest.rpy:265
old "Continue, Don't show warning again"
new "Ontinuecay, Onday'tay owshay arningway againay"
# renpy/common/00gltest.rpy:264
old "Updating DirectX."
new "Pdatinguay Irectxday."
# renpy/common/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 "Irectxday ebway etupsay ashay eenbay artedstay. Tiay aymay artstay inimizedmay inay hetay askbartay. Leasepay ollowfay hetay romptspay otay installay Irectxday."
# renpy/common/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}Otenay:{/b} Icrosoftmay'say Irectxday ebway etupsay rogrampay illway, ybay efaultday, installay hetay Ingbay oolbartay. Fiay ouyay oday otnay antway histay oolbartay, uncheckay hetay appropriateay oxbay."
# renpy/common/00gltest.rpy:276
old "When setup finishes, please click below to restart this program."
new "Henway etupsay inishesfay, easeplay ickclay elowbay otay estartray histay rogrampay."
# renpy/common/00gltest.rpy:278
old "Restart"
new "Estartray"
# renpy/common/00gltest.rpy:273
old "Change render options"
new "Hangecay enderray optionsay"
# renpy/common/00gamepad.rpy:32
old "Select Gamepad to Calibrate"
@@ -130,98 +114,98 @@ translate piglatin strings:
new "Alibratingcay [name] ([i]/[total])"
# renpy/common/00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Resspay oray ovemay hetay [control!r] [kind]."
old "Press or move the '[control!s]' [kind]."
new "Resspay oray ovemay hetay '[control!s]' [kind]."
# renpy/common/00gamepad.rpy:66
# renpy/common/00gamepad.rpy:68
old "Skip (A)"
new "Kipsay (Aay)"
# renpy/common/00gamepad.rpy:69
# renpy/common/00gamepad.rpy:71
old "Back (B)"
new "Ackbay (Bay)"
# renpy/common/_errorhandling.rpym:538
# renpy/common/_errorhandling.rpym:540
old "Open"
new "Penoay"
# renpy/common/_errorhandling.rpym:540
# renpy/common/_errorhandling.rpym:542
old "Opens the traceback.txt file in a text editor."
new "Pensoay hetay acebacktray.xttay ilefay inay aay exttay editoray."
# renpy/common/_errorhandling.rpym:542
# renpy/common/_errorhandling.rpym:544
old "Copy BBCode"
new "Opycay Bcodebay"
# renpy/common/_errorhandling.rpym:544
# renpy/common/_errorhandling.rpym:546
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "Opiescay hetay acebacktray.xttay ilefay otay hetay ipboardclay asay Bcodebay orfay orumsfay ikelay ttpshay://emmasoftlay.enairay.usay/."
# renpy/common/_errorhandling.rpym:546
# renpy/common/_errorhandling.rpym:548
old "Copy Markdown"
new "Opycay Arkdownmay"
# renpy/common/_errorhandling.rpym:548
# renpy/common/_errorhandling.rpym:550
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "Opiescay hetay acebacktray.xttay ilefay otay hetay ipboardclay asay Arkdownmay orfay Iscordday."
# renpy/common/_errorhandling.rpym:577
# renpy/common/_errorhandling.rpym:579
old "An exception has occurred."
new "Naay exceptionay ashay occurreday."
# renpy/common/_errorhandling.rpym:597
# renpy/common/_errorhandling.rpym:602
old "Rollback"
new "Ollbackray"
# renpy/common/_errorhandling.rpym:599
# renpy/common/_errorhandling.rpym:604
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Ttemptsaay aay ollray ackbay otay aay riorpay imetay, allowingay ouyay otay avesay oray oosechay aay ifferentday oicechay."
# renpy/common/_errorhandling.rpym:602
# renpy/common/_errorhandling.rpym:607
old "Ignore"
new "Gnoreiay"
# renpy/common/_errorhandling.rpym:606
# renpy/common/_errorhandling.rpym:611
old "Ignores the exception, allowing you to continue."
new "Gnoresiay hetay exceptionay, allowingay ouyay otay ontinuecay."
# renpy/common/_errorhandling.rpym:608
# renpy/common/_errorhandling.rpym:613
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Gnoresiay hetay exceptionay, allowingay ouyay otay ontinuecay. Histay oftenay eadslay otay additionalay errorsay."
# renpy/common/_errorhandling.rpym:612
# renpy/common/_errorhandling.rpym:617
old "Reload"
new "Eloadray"
# renpy/common/_errorhandling.rpym:614
# renpy/common/_errorhandling.rpym:619
old "Reloads the game from disk, saving and restoring game state if possible."
new "Eloadsray hetay amegay omfray iskday, avingsay anday estoringray amegay atestay ifay ossiblepay."
# renpy/common/_errorhandling.rpym:617
# renpy/common/_errorhandling.rpym:622
old "Console"
new "Onsolecay"
# renpy/common/_errorhandling.rpym:619
# renpy/common/_errorhandling.rpym:624
old "Opens a console to allow debugging the problem."
new "Pensoay aay onsolecay otay alloway ebuggingday hetay roblempay."
# renpy/common/_errorhandling.rpym:629
# renpy/common/_errorhandling.rpym:637
old "Quits the game."
new "Uitsqay hetay amegay."
# renpy/common/_errorhandling.rpym:653
# renpy/common/_errorhandling.rpym:658
old "Parsing the script failed."
new "Arsingpay hetay criptsay ailedfay."
# renpy/common/_errorhandling.rpym:679
# renpy/common/_errorhandling.rpym:684
old "Opens the errors.txt file in a text editor."
new "Pensoay hetay errorsay.xttay ilefay inay aay exttay editoray."
# renpy/common/_errorhandling.rpym:683
# renpy/common/_errorhandling.rpym:688
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "Opiescay hetay errorsay.xttay ilefay otay hetay ipboardclay asay Bcodebay orfay orumsfay ikelay ttpshay://emmasoftlay.enairay.usay/."
# renpy/common/_errorhandling.rpym:687
# renpy/common/_errorhandling.rpym:692
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "Opiescay hetay errorsay.xttay ilefay otay hetay ipboardclay asay Arkdownmay orfay Iscordday."
+241 -193
View File
@@ -230,302 +230,310 @@ translate piglatin strings:
new "Hetay arm64ay-8avay ersionvay orksway onay ewernay Ndroidaay evicesday, hetay armeabiay-7avay ersionvay orksway onay olderay evicesday, anday hetay 86_64xay ersionvay orksway onay hetay imulatorsay anday romebookschay."
# game/androidstrings.rpy:21
old "The universal version works everywhere but is larger."
new "Hetay universalay ersionvay orksway everywhereay utbay isay argerlay."
# game/androidstrings.rpy:22
old "What is the full name of your application? This name will appear in the list of installed applications."
new "Hatway isay hetay ullfay amenay ofay ouryay applicationay? Histay amenay illway appearay inay hetay istlay ofay installeday applicationsay."
# game/androidstrings.rpy:22
# game/androidstrings.rpy:23
old "What is the short name of your application? This name will be used in the launcher, and for application shortcuts."
new "Hatway isay hetay ortshay amenay ofay ouryay applicationay? Histay amenay illway ebay useday inay hetay auncherlay, anday orfay applicationay ortcutsshay."
# game/androidstrings.rpy:23
# game/androidstrings.rpy:24
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
new "Hatway isay hetay amenay ofay hetay ackagepay?\n\nHistay isay usuallyay ofay hetay ormfay omcay.omainday.rogrampay oray omcay.omainday.emailay.rogrampay. Tiay aymay onlyay ontaincay Sciiaay etterslay anday otsday. Tiay ustmay ontaincay atay eastlay oneay otday."
# game/androidstrings.rpy:24
# game/androidstrings.rpy:25
old "The package name may not be empty."
new "Hetay ackagepay amenay aymay otnay ebay emptyay."
# game/androidstrings.rpy:25
# game/androidstrings.rpy:26
old "The package name may not contain spaces."
new "Hetay ackagepay amenay aymay otnay ontaincay pacessay."
# game/androidstrings.rpy:26
# game/androidstrings.rpy:27
old "The package name must contain at least one dot."
new "Hetay ackagepay amenay ustmay ontaincay atay eastlay oneay otday."
# game/androidstrings.rpy:27
# game/androidstrings.rpy:28
old "The package name may not contain two dots in a row, or begin or end with a dot."
new "Hetay ackagepay amenay aymay otnay ontaincay wotay otsday inay aay owray, oray eginbay oray enday ithway aay otday."
# game/androidstrings.rpy:28
# game/androidstrings.rpy:29
old "Each part of the package name must start with a letter, and contain only letters, numbers, and underscores."
new "Acheay artpay ofay hetay ackagepay amenay ustmay artstay ithway aay etterlay, anday ontaincay onlyay etterslay, umbersnay, anday underscoresay."
# game/androidstrings.rpy:29
# game/androidstrings.rpy:30
old "{} is a Java keyword, and can't be used as part of a package name."
new "{} isay aay Avajay eywordkay, anday ancay'tay ebay useday asay artpay ofay aay ackagepay amenay."
# game/androidstrings.rpy:30
# game/androidstrings.rpy:31
old "What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots."
new "Hatway isay hetay applicationay'say ersionvay?\n\nHistay ouldshay ebay hetay umanhay-eadableray ersionvay hattay ouyay ouldway resentpay otay aay ersonpay. Tiay ustmay ontaincay onlyay umbersnay anday otsday."
# game/androidstrings.rpy:31
# game/androidstrings.rpy:32
old "The version number must contain only numbers and dots."
new "Hetay ersionvay umbernay ustmay ontaincay onlyay umbersnay anday otsday."
# game/androidstrings.rpy:32
# game/androidstrings.rpy:33
old "What is the version code?\n\nThis must be a positive integer number, and the value should increase between versions."
new "Hatway isay hetay ersionvay odecay?\n\nHistay ustmay ebay aay ositivepay integeray umbernay, anday hetay aluevay ouldshay increaseay etweenbay ersionsvay."
# game/androidstrings.rpy:33
# game/androidstrings.rpy:34
old "The numeric version must contain only numbers."
new "Hetay umericnay ersionvay ustmay ontaincay onlyay umbersnay."
# game/androidstrings.rpy:34
# game/androidstrings.rpy:35
old "How would you like your application to be displayed?"
new "Owhay ouldway ouyay ikelay ouryay applicationay otay ebay isplayedday?"
# game/androidstrings.rpy:35
# game/androidstrings.rpy:36
old "In landscape orientation."
new "Niay andscapelay orientationay."
# game/androidstrings.rpy:36
# game/androidstrings.rpy:37
old "In portrait orientation."
new "Niay ortraitpay orientationay."
# game/androidstrings.rpy:37
# game/androidstrings.rpy:38
old "In the user's preferred orientation."
new "Niay hetay useray'say referredpay orientationay."
# game/androidstrings.rpy:38
# game/androidstrings.rpy:39
old "Which app store would you like to support in-app purchasing through?"
new "Hichway appay orestay ouldway ouyay ikelay otay upportsay inay-appay urchasingpay hroughtay?"
# game/androidstrings.rpy:39
# game/androidstrings.rpy:40
old "Google Play."
new "Ooglegay Laypay."
# game/androidstrings.rpy:40
# game/androidstrings.rpy:41
old "Amazon App Store."
new "Mazonaay Ppaay Toresay."
# game/androidstrings.rpy:41
# game/androidstrings.rpy:42
old "Both, in one app."
new "Othbay, inay oneay appay."
# game/androidstrings.rpy:42
# game/androidstrings.rpy:43
old "Neither."
new "Eithernay."
# game/androidstrings.rpy:43
# game/androidstrings.rpy:44
old "Would you like to create an expansion APK?"
new "Ouldway ouyay ikelay otay reatecay anay expansionay Pkaay?"
# game/androidstrings.rpy:44
# game/androidstrings.rpy:45
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
new "Utomaticallyaay installingay expansionay Pksaay {a=https://issuetracker.google.com/issues/160942333}aymay otnay orkway onay Ndroidaay 11ay{/a}."
# game/androidstrings.rpy:46
old "No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded."
new "Onay. Izesay imitlay ofay 001ay Bmay onay Ooglegay Laypay, utbay ancay ebay istributedday hroughtay otheray oresstay anday ideloadedsay."
# game/androidstrings.rpy:45
# game/androidstrings.rpy:47
old "Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)"
new "Esyay. 2ay Bgay izesay imitlay, utbay onway'tay orkway outsideay ofay Ooglegay Laypay. (Eadray hetay ocumentationday otay etgay histay otay orkway.)"
# game/androidstrings.rpy:46
# game/androidstrings.rpy:48
old "Do you want to allow the app to access the Internet?"
new "Oday ouyay antway otay alloway hetay appay otay accessay hetay Nternetiay?"
# game/androidstrings.rpy:47
old "Do you want to automatically update the generated project?"
new "Oday ouyay antway otay automaticallyay updateay hetay eneratedgay rojectpay?"
# game/androidstrings.rpy:49
old "Do you want to automatically update the Java source code?"
new "Oday ouyay antway otay automaticallyay updateay hetay Avajay ourcesay odecay?"
# game/androidstrings.rpy:48
# game/androidstrings.rpy:50
old "Yes. This is the best choice for most projects."
new "Esyay. Histay isay hetay estbay oicechay orfay ostmay rojectspay."
# game/androidstrings.rpy:49
# game/androidstrings.rpy:51
old "No. This may require manual updates when Ren'Py or the project configuration changes."
new "Onay. Histay aymay equireray anualmay updatesay henway Enray'Ypay oray hetay rojectpay onfigurationcay angeschay."
# game/androidstrings.rpy:50
# game/androidstrings.rpy:52
old "Unknown configuration variable: {}"
new "Nknownuay onfigurationcay ariablevay: {}"
# game/androidstrings.rpy:51
# game/androidstrings.rpy:53
old "I'm compiling a short test program, to see if you have a working JDK on your system."
new "Iay'may ompilingcay aay ortshay esttay rogrampay, otay eesay ifay ouyay avehay aay orkingway Dkjay onay ouryay ystemsay."
# game/androidstrings.rpy:52
# game/androidstrings.rpy:54
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue."
new "Iay asway unableay otay useay avacjay otay ompilecay aay esttay ilefay. Fiay ouyay avenhay'tay installeday hetay Avajay Evelopmentday Itkay etyay, easeplay ownloadday itay omfray:\n\nttphay://wwway.oracleay.omcay/echnetworktay/avajay/avasejay/ownloadsday/dk8jay-ownloadsday-1331512ay.tmlhay\n\nHetay Dkjay isay ifferentday omfray hetay Rejay, osay itay'say ossiblepay ouyay avehay Avajay ithoutway avinghay hetay Dkjay. Ithoutway aay orkingway Dkjay, Iay ancay'tay ontinuecay."
# game/androidstrings.rpy:53
# game/androidstrings.rpy:55
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "Hetay ersionvay ofay Avajay onay ouryay omputercay oesday otnay appearay otay ebay Dkjay 8ay, hichway isay hetay onlyay ersionvay upportedsay ybay hetay Ndroidaay Dksay. Fiay ouyay eednay otay installay Dkjay 8ay, ouyay ancay ownloadday itay omfray:\n\nttphay://wwway.oracleay.omcay/echnetworktay/avajay/avasejay/ownloadsday/dk8jay-ownloadsday-1331512ay.tmlhay\n\nOuyay ancay alsoay etsay hetay Ava_homejay environmentay ariablevay otay useay aay ifferentday ersionvay ofay Avajay."
# game/androidstrings.rpy:54
# game/androidstrings.rpy:56
old "The JDK is present and working. Good!"
new "Hetay Dkjay isay resentpay anday orkingway. Oodgay!"
# game/androidstrings.rpy:55
# game/androidstrings.rpy:57
old "The Android SDK has already been unpacked."
new "Hetay Ndroidaay Dksay ashay alreadyay eenbay unpackeday."
# game/androidstrings.rpy:56
# game/androidstrings.rpy:58
old "Do you accept the Android SDK Terms and Conditions?"
new "Oday ouyay acceptay hetay Ndroidaay Dksay Ermstay anday Onditionscay?"
# game/androidstrings.rpy:57
# game/androidstrings.rpy:59
old "I'm downloading the Android SDK. This might take a while."
new "Iay'may ownloadingday hetay Ndroidaay Dksay. Histay ightmay aketay aay hileway."
# game/androidstrings.rpy:58
# game/androidstrings.rpy:60
old "I'm extracting the Android SDK."
new "Iay'may extractingay hetay Ndroidaay Dksay."
# game/androidstrings.rpy:59
# game/androidstrings.rpy:61
old "I've finished unpacking the Android SDK."
new "Iay'evay inishedfay unpackingay hetay Ndroidaay Dksay."
# game/androidstrings.rpy:60
# game/androidstrings.rpy:62
old "I'm about to download and install the required Android packages. This might take a while."
new "Iay'may aboutay otay ownloadday anday installay hetay equiredray Ndroidaay ackagespay. Histay ightmay aketay aay hileway."
# game/androidstrings.rpy:61
# game/androidstrings.rpy:63
old "I was unable to accept the Android licenses."
new "Iay asway unableay otay acceptay hetay Ndroidaay icenseslay."
# game/androidstrings.rpy:62
# game/androidstrings.rpy:65
old "I was unable to install the required Android packages."
new "Iay asway unableay otay installay hetay equiredray Ndroidaay ackagespay."
# game/androidstrings.rpy:63
# game/androidstrings.rpy:66
old "I've finished installing the required Android packages."
new "Iay'evay inishedfay installingay hetay equiredray Ndroidaay ackagespay."
# game/androidstrings.rpy:64
# game/androidstrings.rpy:67
old "You set the keystore yourself, so I'll assume it's how you want it."
new "Ouyay etsay hetay eystorekay ourselfyay, osay Iay'llay assumeay itay'say owhay ouyay antway itay."
# game/androidstrings.rpy:65
# game/androidstrings.rpy:68
old "You've already created an Android keystore, so I won't create a new one for you."
new "Ouyay'evay alreadyay reatedcay anay Ndroidaay eystorekay, osay Iay onway'tay reatecay aay ewnay oneay orfay ouyay."
# game/androidstrings.rpy:66
# game/androidstrings.rpy:69
old "I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?"
new "Iay ancay reatecay anay applicationay igningsay eykay orfay ouyay. Igningsay anay applicationay ithway histay eykay allowsay itay otay ebay acedplay inay hetay Ndroidaay Arketmay anday otheray appay oresstay.\n\nOday ouyay antway otay reatecay aay eykay?"
# game/androidstrings.rpy:67
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\n\\You also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Iay illway reatecay hetay eykay inay hetay androiday.eystorekay ilefay.\n\nOuyay eednay otay ackbay histay ilefay upay. Fiay ouyay oselay itay, ouyay illway otnay ebay ableay otay upgradeay ouryay applicationay.\n\n\\Ouyay alsoay eednay otay eepkay hetay eykay afesay. Fiay evilay eoplepay etgay histay ilefay, heytay ouldcay akemay akefay ersionsvay ofay ouryay applicationay, anday otentiallypay ealstay ouryay usersay' ataday.\n\nIllway ouyay akemay aay ackupbay ofay androiday.eystorekay, anday eepkay itay inay aay afesay aceplay?"
# game/androidstrings.rpy:70
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Iay illway reatecay hetay eykay inay hetay androiday.eystorekay ilefay.\n\nOuyay eednay otay ackbay histay ilefay upay. Fiay ouyay oselay itay, ouyay illway otnay ebay ableay otay upgradeay ouryay applicationay.\n\nOuyay alsoay eednay otay eepkay hetay eykay afesay. Fiay evilay eoplepay etgay histay ilefay, heytay ouldcay akemay akefay ersionsvay ofay ouryay applicationay, anday otentiallypay ealstay ouryay usersay' ataday.\n\nIllway ouyay akemay aay ackupbay ofay androiday.eystorekay, anday eepkay itay inay aay afesay aceplay?"
# game/androidstrings.rpy:68
# game/androidstrings.rpy:71
old "Please enter your name or the name of your organization."
new "Leasepay enteray ouryay amenay oray hetay amenay ofay ouryay organizationay."
# game/androidstrings.rpy:69
# game/androidstrings.rpy:72
old "Could not create android.keystore. Is keytool in your path?"
new "Ouldcay otnay reatecay androiday.eystorekay. Siay eytoolkay inay ouryay athpay?"
# game/androidstrings.rpy:70
# game/androidstrings.rpy:73
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
new "Iay'evay inishedfay reatingcay androiday.eystorekay. Leasepay ackbay itay upay, anday eepkay itay inay aay afesay aceplay."
# game/androidstrings.rpy:71
# game/androidstrings.rpy:74
old "It looks like you're ready to start packaging games."
new "Tiay ookslay ikelay ouyay'eray eadyray otay artstay ackagingpay amesgay."
# game/choose_directory.rpy:88
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."
new "Enray'Ypay asway unableay otay unray ythonpay ithway kintertay otay oosechay hetay irectoryday. Leasepay installay hetay ythonpay-ktay oray kintertay ackagepay."
# game/choose_directory.rpy:93
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Enray'Ypay asway unableay otay unray ythonpay ithway kintertay otay oosechay hetay irectoryday. Leasepay installay hetay ython3pay-ktay oray kintertay ackagepay."
# game/choose_directory.rpy:106
# game/choose_directory.rpy:111
old "The selected projects directory is not writable."
new "Hetay electedsay rojectspay irectoryday isay otnay ritableway."
# game/choose_theme.rpy:303
# game/choose_theme.rpy:304
old "Could not change the theme. Perhaps options.rpy was changed too much."
new "Ouldcay otnay angechay hetay hemetay. Erhapspay optionsay.pyray asway angedchay ootay uchmay."
# game/choose_theme.rpy:370
# game/choose_theme.rpy:371
old "Planetarium"
new "Lanetariumpay"
# game/choose_theme.rpy:425
# game/choose_theme.rpy:426
old "Choose Theme"
new "Hoosecay Hemetay"
# game/choose_theme.rpy:438
# game/choose_theme.rpy:439
old "Theme"
new "Hemetay"
# game/choose_theme.rpy:463
# game/choose_theme.rpy:464
old "Color Scheme"
new "Olorcay Chemesay"
# game/choose_theme.rpy:495
# game/choose_theme.rpy:496
old "Continue"
new "Ontinuecay"
# game/choose_theme.rpy:507
# game/choose_theme.rpy:508
old "changing the theme"
new "angingchay hetay hemetay"
# game/consolecommand.rpy:84
# game/consolecommand.rpy:86
old "INFORMATION"
new "Nformationiay"
# game/consolecommand.rpy:84
# game/consolecommand.rpy:86
old "The command is being run in a new operating system console window."
new "Hetay ommandcay isay eingbay unray inay aay ewnay operatingay ystemsay onsolecay indowway."
# game/distribute.rpy:445
# game/distribute.rpy:448
old "Scanning project files..."
new "Canningsay rojectpay ilesfay..."
# game/distribute.rpy:461
# game/distribute.rpy:464
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
new "Uildingbay istributionsday ailedfay:\n\nHetay uildbay.irectory_nameday ariablevay aymay otnay includeay hetay pacesay, oloncay, oray emicolonsay aracterschay."
# game/distribute.rpy:506
# game/distribute.rpy:510
old "No packages are selected, so there's nothing to do."
new "Onay ackagespay areay electedsay, osay heretay'say othingnay otay oday."
# game/distribute.rpy:518
# game/distribute.rpy:522
old "Scanning Ren'Py files..."
new "Canningsay Enray'Ypay ilesfay..."
# game/distribute.rpy:577
# game/distribute.rpy:581
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
new "Llaay ackagespay avehay eenbay uiltbay.\n\nUeday otay hetay resencepay ofay ermissionpay informationay, unpackingay anday epackingray hetay Inuxlay anday Acintoshmay istributionsday onay Indowsway isay otnay upportedsay."
# game/distribute.rpy:760
# game/distribute.rpy:764
old "Archiving files..."
new "Rchivingaay ilesfay..."
# game/distribute.rpy:1082
# game/distribute.rpy:1091
old "Unpacking the Macintosh application for signing..."
new "Npackinguay hetay Acintoshmay applicationay orfay igningsay..."
# game/distribute.rpy:1092
# game/distribute.rpy:1101
old "Signing the Macintosh application...\n(This may take a long time.)"
new "Igningsay hetay Acintoshmay applicationay...\n(Histay aymay aketay aay onglay imetay.)"
# game/distribute.rpy:1114
# game/distribute.rpy:1124
old "Creating the Macintosh DMG..."
new "Reatingcay hetay Acintoshmay Mgday..."
# game/distribute.rpy:1123
# game/distribute.rpy:1135
old "Signing the Macintosh DMG..."
new "Igningsay hetay Acintoshmay Mgday..."
# game/distribute.rpy:1318
# game/distribute.rpy:1356
old "Writing the [variant] [format] package."
new "Ritingway hetay [variant] [format] ackagepay."
# game/distribute.rpy:1331
# game/distribute.rpy:1369
old "Making the [variant] update zsync file."
new "Akingmay hetay [variant] updateay synczay ilefay."
# game/distribute.rpy:1441
# game/distribute.rpy:1479
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "Rocessedpay {b}[complete]{/b} ofay {b}[total]{/b} ilesfay."
@@ -613,63 +621,47 @@ translate piglatin strings:
old "Up to 150 MB download required."
new "Puay otay 501ay Bmay ownloadday equiredray."
# game/editor.rpy:178
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input."
new "Aay aturemay editoray. Ditraeay ackslay hetay Meiay upportsay equiredray orfay Hinesecay, Apanesejay, anday Oreankay exttay inputay."
# game/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 "Aay aturemay editoray. Ditraeay ackslay hetay Meiay upportsay equiredray orfay Hinesecay, Apanesejay, anday Oreankay exttay inputay. Noay Inuxlay, Ditraeay equiresray xPythonway."
# game/editor.rpy:195
old "This may have occured because wxPython is not installed on this system."
new "Histay aymay avehay occureday ecausebay xPythonway isay otnay installeday onay histay ystemsay."
# game/editor.rpy:197
old "Up to 22 MB download required."
new "Puay otay 22ay Bmay ownloadday equiredray."
# game/editor.rpy:210
# game/editor.rpy:177
old "A mature editor that requires Java."
new "Aay aturemay editoray hattay equiresray Avajay."
# game/editor.rpy:210
# game/editor.rpy:177
old "1.8 MB download required."
new "1ay.8ay Bmay ownloadday equiredray."
# game/editor.rpy:210
# game/editor.rpy:177
old "This may have occured because Java is not installed on this system."
new "Histay aymay avehay occureday ecausebay Avajay isay otnay installeday onay histay ystemsay."
# game/editor.rpy:219
# game/editor.rpy:186
old "System Editor"
new "Ystemsay Ditoreay"
# game/editor.rpy:219
# game/editor.rpy:186
old "Invokes the editor your operating system has associated with .rpy files."
new "Nvokesiay hetay editoray ouryay operatingay ystemsay ashay associateday ithway .pyray ilesfay."
# game/editor.rpy:235
# game/editor.rpy:202
old "None"
new "Onenay"
# game/editor.rpy:235
# game/editor.rpy:202
old "Prevents Ren'Py from opening a text editor."
new "Reventspay Enray'Ypay omfray openingay aay exttay editoray."
# game/editor.rpy:338
# game/editor.rpy:305
old "Edit [text]."
new "Diteay [text]."
# game/editor.rpy:387
# game/editor.rpy:354
old "An exception occured while launching the text editor:\n[exception!q]"
new "Naay exceptionay occureday hileway aunchinglay hetay exttay editoray:\n[exception!q]"
# game/editor.rpy:519
# game/editor.rpy:486
old "Select Editor"
new "Electsay Ditoreay"
# game/editor.rpy:534
# game/editor.rpy:501
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
new "Aay exttay editoray isay hetay rogrampay ouyay'llay useay otay editay Enray'Ypay criptsay ilesfay. Erehay, ouyay ancay electsay hetay editoray Enray'Ypay illway useay. Fiay otnay alreadyay resentpay, hetay editoray illway ebay automaticallyay ownloadedday anday installeday."
@@ -730,6 +722,10 @@ translate piglatin strings:
new "imagesay"
# game/front_page.rpy:198
old "audio"
new "audioay"
# game/front_page.rpy:199
old "gui"
new "uigay"
@@ -877,6 +873,50 @@ translate piglatin strings:
old "activating the new project"
new "activatingay hetay ewnay rojectpay"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "Ouldcay otnay installay [name!t], asay aay ilefay atchingmay [zipglob] asway otnay oundfay inay hetay Enray'Ypay Dksay irectoryday."
# game/install.rpy:76
old "Successfully installed [name!t]."
new "Uccessfullysay installeday [name!t]."
# game/install.rpy:110
old "Install Libraries"
new "Nstalliay Ibrarieslay"
# game/install.rpy:125
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "Histay creensay allowsay ouyay otay installay ibrarieslay hattay ancay'tay ebay istributedday ithway Enray'Ypay. Omesay ofay hesetay ibrarieslay aymay equireray ouyay otay agreeay otay aay hirdtay-artypay icenselay eforebay eingbay useday oray istributedday."
# game/install.rpy:131
old "Install Live2D Cubism SDK for Native"
new "Nstalliay Ive2dlay Ubismcay Dksay orfay Ativenay"
# game/install.rpy:140
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "Hetay {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Ubismcay Dksay orfay Ativenay{/a} addsay upportsay orfay isplayingday Ive2dlay odelsmay. Lacepay Ubismsdkfornativecay-4ay-{i}ersionvay{/i}.ipzay inay hetay Enray'Ypay Dksay irectoryday, anday hentay ickclay Nstalliay. Istributingday aay amegay ithway Ive2dlay equiresray ouyay otay acceptay aay icenselay omfray Ive2dlay, Nciay."
# game/install.rpy:144
old "Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support."
new "Ive2dlay inay Enray'Ypay oesnday'tay upportsay hetay Ebway, Ndroidaay 86_64xay (includingay emulatorsay anday Hromecay Soay), anday ustmay ebay addeday otay iOSay rojectspay anuallymay. Ive2dlay ustmay ebay einstalledray afteray upgradingay Enray'Ypay oray installingay Ndroidaay upportsay."
# game/install.rpy:151
old "Install Steam Support"
new "Nstalliay Teamsay Upportsay"
# game/install.rpy:160
old "Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}."
new "Eforebay installingay Teamsay upportsay, easeplay akemay uresay ouyay areay aay {a=https://partner.steamgames.com/}Teamsay artnerpay{/a}."
# game/install.rpy:172
old "Steam support has already been installed."
new "Teamsay upportsay ashay alreadyay eenbay installeday."
# game/install.rpy:176
old "Open Ren'Py SDK Directory"
new "Penoay Enray'Ypay Dksay Irectoryday"
# game/interface.rpy:119
old "Documentation"
new "Ocumentationday"
@@ -993,55 +1033,55 @@ translate piglatin strings:
old "Opens the directory containing Xcode projects."
new "Pensoay hetay irectoryday ontainingcay Codexay rojectspay."
# game/ios.rpy:131
# game/ios.rpy:139
old "The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?"
new "Hetay Codexay rojectpay alreadyay existsay. Ouldway ouyay ikelay otay enameray hetay olday rojectpay, anday eplaceray itay ithway aay ewnay oneay?"
# game/ios.rpy:225
# game/ios.rpy:233
old "iOS: [project.current.display_name!q]"
new "iOSay: [project.current.display_name!q]"
# game/ios.rpy:254
# game/ios.rpy:262
old "iPhone"
new "iPhoneay"
# game/ios.rpy:258
# game/ios.rpy:266
old "iPad"
new "iPaday"
# game/ios.rpy:278
# game/ios.rpy:286
old "Select Xcode Projects Directory"
new "Electsay Codexay Rojectspay Irectoryday"
# game/ios.rpy:282
# game/ios.rpy:290
old "Create Xcode Project"
new "Reatecay Codexay Rojectpay"
# game/ios.rpy:286
# game/ios.rpy:294
old "Update Xcode Project"
new "Pdateuay Codexay Rojectpay"
# game/ios.rpy:291
# game/ios.rpy:299
old "Launch Xcode"
new "Aunchlay Codexay"
# game/ios.rpy:326
# game/ios.rpy:334
old "Open Xcode Projects Directory"
new "Penoay Codexay Rojectspay Irectoryday"
# game/ios.rpy:359
# game/ios.rpy:367
old "Before packaging iOS apps, you'll need to download renios, Ren'Py's iOS support. Would you like to download renios now?"
new "Eforebay ackagingpay iOSay appsay, ouyay'llay eednay otay ownloadday eniosray, Enray'Ypay'say iOSay upportsay. Ouldway ouyay ikelay otay ownloadday eniosray ownay?"
# game/ios.rpy:368
# game/ios.rpy:376
old "XCODE PROJECTS DIRECTORY"
new "Codexay Rojectspay Irectoryday"
# game/ios.rpy:368
# game/ios.rpy:376
old "Please choose the Xcode Projects Directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
new "Leasepay oosechay hetay Codexay Rojectspay Irectoryday usingay hetay irectoryday ooserchay.\n{b}Hetay irectoryday ooserchay aymay avehay openeday ehindbay histay indowway.{/b}"
# game/ios.rpy:373
# game/ios.rpy:381
old "Ren'Py has set the Xcode Projects Directory to:"
new "Enray'Ypay ashay etsay hetay Codexay Rojectspay Irectoryday otay:"
@@ -1233,75 +1273,79 @@ translate piglatin strings:
old "Text editor: [text]"
new "Exttay editoray: [text]"
# game/preferences.rpy:145
old "Navigation Options:"
new "Avigationnay Ptionsoay:"
# game/preferences.rpy:143
old "Install libraries"
new "Nstalliay ibrarieslay"
# game/preferences.rpy:149
old "Include private names"
new "Ncludeiay rivatepay amesnay"
# game/preferences.rpy:150
old "Include library names"
new "Ncludeiay ibrarylay amesnay"
# game/preferences.rpy:160
old "Launcher Options:"
new "Auncherlay Ptionsoay:"
# game/preferences.rpy:164
old "Hardware rendering"
new "Ardwarehay enderingray"
# game/preferences.rpy:165
old "Show edit file section"
new "Howsay editay ilefay ectionsay"
# game/preferences.rpy:166
old "Large fonts"
new "Argelay ontsfay"
# game/preferences.rpy:169
old "Console output"
new "Onsolecay outputay"
# game/preferences.rpy:173
old "Force new tutorial"
new "Orcefay ewnay utorialtay"
# game/preferences.rpy:177
old "Legacy options"
new "Egacylay optionsay"
# game/preferences.rpy:180
old "Show templates"
new "Howsay emplatestay"
# game/preferences.rpy:182
old "Sponsor message"
new "Ponsorsay essagemay"
# game/preferences.rpy:202
# game/preferences.rpy:144
old "Open launcher project"
new "Penoay auncherlay rojectpay"
# game/preferences.rpy:216
# game/preferences.rpy:145
old "Reset window size"
new "Esetray indowway izesay"
# game/preferences.rpy:161
old "Navigation Options:"
new "Avigationnay Ptionsoay:"
# game/preferences.rpy:165
old "Include private names"
new "Ncludeiay rivatepay amesnay"
# game/preferences.rpy:166
old "Include library names"
new "Ncludeiay ibrarylay amesnay"
# game/preferences.rpy:176
old "Launcher Options:"
new "Auncherlay Ptionsoay:"
# game/preferences.rpy:180
old "Show edit file section"
new "Howsay editay ilefay ectionsay"
# game/preferences.rpy:181
old "Large fonts"
new "Argelay ontsfay"
# game/preferences.rpy:184
old "Console output"
new "Onsolecay outputay"
# game/preferences.rpy:188
old "Force new tutorial"
new "Orcefay ewnay utorialtay"
# game/preferences.rpy:192
old "Legacy options"
new "Egacylay optionsay"
# game/preferences.rpy:195
old "Show templates"
new "Howsay emplatestay"
# game/preferences.rpy:197
old "Sponsor message"
new "Ponsorsay essagemay"
# game/preferences.rpy:217
old "Language:"
new "Anguagelay:"
# game/project.rpy:49
# game/project.rpy:51
old "After making changes to the script, press shift+R to reload your game."
new "Fteraay akingmay angeschay otay hetay criptsay, resspay iftshay+Ray otay eloadray ouryay amegay."
# game/project.rpy:49
# game/project.rpy:51
old "Press shift+O (the letter) to access the console."
new "Resspay iftshay+Oay (hetay etterlay) otay accessay hetay onsolecay."
# game/project.rpy:49
# game/project.rpy:51
old "Press shift+D to access the developer menu."
new "Resspay iftshay+Day otay accessay hetay eveloperday enumay."
# game/project.rpy:49
# game/project.rpy:51
old "Have you backed up your projects recently?"
new "Avehay ouyay ackedbay upay ouryay rojectspay ecentlyray?"
@@ -1317,23 +1361,23 @@ translate piglatin strings:
old "Ren'Py is scanning the project..."
new "Enray'Ypay isay canningsay hetay rojectpay..."
# game/project.rpy:729
# game/project.rpy:742
old "Launching"
new "Aunchinglay"
# game/project.rpy:763
# game/project.rpy:776
old "PROJECTS DIRECTORY"
new "Rojectspay Irectoryday"
# game/project.rpy:763
# game/project.rpy:776
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}"
# game/project.rpy:763
# game/project.rpy:776
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."
# game/project.rpy:768
# game/project.rpy:781
old "Ren'Py has set the projects directory to:"
new "Enray'Ypay ashay etsay hetay rojectspay irectoryday otay:"
@@ -1541,55 +1585,59 @@ translate piglatin strings:
old "Fetching the list of update channels"
new "Etchingfay hetay istlay ofay updateay annelschay"
# game/updater.rpy:194
# game/updater.rpy:193
old "downloading the list of update channels"
new "ownloadingday hetay istlay ofay updateay annelschay"
# game/updater.rpy:198
# game/updater.rpy:196
old "parsing the list of update channels"
new "arsingpay hetay istlay ofay updateay annelschay"
# game/web.rpy:118
# game/web.rpy:242
old "Preparing progressive download"
new "Reparingpay rogressivepay ownloadday"
# game/web.rpy:277
old "Web: [project.current.display_name!q]"
new "Ebway: [project.current.display_name!q]"
# game/web.rpy:148
# game/web.rpy:307
old "Build Web Application"
new "Uildbay Ebway Pplicationaay"
# game/web.rpy:149
# game/web.rpy:308
old "Build and Open in Browser"
new "Uildbay anday Penoay inay Rowserbay"
# game/web.rpy:150
# game/web.rpy:309
old "Open in Browser"
new "Penoay inay Rowserbay"
# game/web.rpy:151
# game/web.rpy:310
old "Open build directory"
new "Penoay uildbay irectoryday"
# game/web.rpy:155
# game/web.rpy:314
old "Support:"
new "Upportsay:"
# game/web.rpy:163
# game/web.rpy:322
old "RenPyWeb Home"
new "Enpywebray Omehay"
# game/web.rpy:164
# game/web.rpy:323
old "Beuc's Patreon"
new "Eucbay'say Atreonpay"
# game/web.rpy:182
old "Ren'Py web applications require the entire game to be downloaded to the player's computer before it can start."
new "Enray'Ypay ebway applicationsay equireray hetay entireay amegay otay ebay ownloadedday otay hetay ayerplay'say omputercay eforebay itay ancay artstay."
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Magesiay anday usicsmay ancay ebay ownloadedday hileway ayingplay. Aay 'rogressive_downloadpay.xttay' ilefay illway ebay reatedcay osay ouyay ancay onfigurecay histay ehaviorbay."
# game/web.rpy:186
# game/web.rpy:345
old "Current limitations in the web platform mean that loading large images, audio files, or movies may cause audio or framerate glitches, and lower performance in general."
new "Urrentcay imitationslay inay hetay ebway atformplay eanmay hattay oadinglay argelay imagesay, audioay ilesfay, oray oviesmay aymay ausecay audioay oray ameratefray itchesglay, anday owerlay erformancepay inay eneralgay."
# game/web.rpy:195
# game/web.rpy:354
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "Eforebay ackagingpay ebway appsay, ouyay'llay eednay otay ownloadday Enpywebray, Enray'Ypay'say ebway upportsay. Ouldway ouyay ikelay otay ownloadday Enpywebray ownay?"
+2 -6
View File
@@ -189,15 +189,11 @@ translate piglatin strings:
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## Ilesfay atchingmay ocumentationday atternspay areay uplicatedday inay aay acmay appay uildbay, osay heytay appearay inay othbay hetay appay anday hetay ipzay ilefay."
# gui/game/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 "## Etsay histay otay aay ringstay ontainingcay ouryay Ppleaay Eveloperday Diay Pplicationaay otay enableay odesigningcay onay hetay Acmay. Ebay uresay otay angechay itay otay ouryay ownay Ppleaay-issueday Diay."
# gui/game/options.rpy:209
# gui/game/options.rpy:203
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 "## Aay Ooglegay Laypay icenselay eykay isay equiredray otay ownloadday expansionay ilesfay anday erformpay inay-appay urchasespay. Tiay ancay ebay oundfay onay hetay \"Ervicessay & Pisaay\" agepay ofay hetay Ooglegay Laypay eveloperday onsolecay."
# gui/game/options.rpy:216
# gui/game/options.rpy:210
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Hetay usernameay anday rojectpay amenay associateday ithway anay itchay.ioay rojectpay, eparatedsay ybay aay ashslay."
+130 -134
View File
@@ -157,519 +157,515 @@ translate piglatin strings:
old "Help"
new "Elphay"
# gui/game/screens.rpy:331
old "## The quit button is banned on iOS and unnecessary on Android."
new "## Hetay uitqay uttonbay isay annedbay onay iOSay anday unnecessaryay onay Ndroidaay."
# gui/game/screens.rpy:333
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## Hetay uitqay uttonbay isay annedbay onay iOSay anday unnecessaryay onay Ndroidaay anday Ebway."
# gui/game/screens.rpy:332
# gui/game/screens.rpy:334
old "Quit"
new "Uitqay"
# gui/game/screens.rpy:346
# gui/game/screens.rpy:348
old "## Main Menu screen"
new "## Ainmay Enumay creensay"
# gui/game/screens.rpy:348
# gui/game/screens.rpy:350
old "## Used to display the main menu when Ren'Py starts."
new "## Seduay otay isplayday hetay ainmay enumay henway Enray'Ypay artsstay."
# gui/game/screens.rpy:350
# gui/game/screens.rpy:352
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#ainmay-enumay"
# gui/game/screens.rpy:354
# gui/game/screens.rpy:356
old "## This ensures that any other menu screen is replaced."
new "## Histay ensuresay hattay anyay otheray enumay creensay isay eplacedray."
# gui/game/screens.rpy:361
# gui/game/screens.rpy:363
old "## This empty frame darkens the main menu."
new "## Histay emptyay amefray arkensday hetay ainmay enumay."
# gui/game/screens.rpy:365
# gui/game/screens.rpy:367
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## Hetay useay atementstay includesay anotheray creensay insideay histay oneay. Hetay actualay ontentscay ofay hetay ainmay enumay areay inay hetay avigationnay creensay."
# gui/game/screens.rpy:408
# gui/game/screens.rpy:410
old "## Game Menu screen"
new "## Amegay Enumay creensay"
# gui/game/screens.rpy:410
# gui/game/screens.rpy:412
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
new "## Histay ayslay outay hetay asicbay ommoncay ructurestay ofay aay amegay enumay creensay. Tiay'say alledcay ithway hetay creensay itletay, anday isplaysday hetay ackgroundbay, itletay, anday avigationnay."
# gui/game/screens.rpy:413
# gui/game/screens.rpy:415
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## Hetay crollsay arameterpay ancay ebay Onenay, oray oneay ofay \"iewportvay\" oray \"pgridvay\". Henway histay creensay isay intendeday otay ebay useday ithway oneay oray oremay ildrenchay, hichway areay anscludedtray (acedplay) insideay itay."
# gui/game/screens.rpy:431
# gui/game/screens.rpy:433
old "## Reserve space for the navigation section."
new "## Eserveray pacesay orfay hetay avigationnay ectionsay."
# gui/game/screens.rpy:473
# gui/game/screens.rpy:475
old "Return"
new "Eturnray"
# gui/game/screens.rpy:536
# gui/game/screens.rpy:538
old "## About screen"
new "## Boutaay creensay"
# gui/game/screens.rpy:538
# gui/game/screens.rpy:540
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## Histay creensay ivesgay reditcay anday opyrightcay informationay aboutay hetay amegay anday Enray'Ypay."
# gui/game/screens.rpy:541
# gui/game/screens.rpy:543
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## Heretay'say othingnay pecialsay aboutay histay creensay, anday encehay itay alsoay ervessay asay anay exampleay ofay owhay otay akemay aay ustomcay creensay."
# gui/game/screens.rpy:548
# gui/game/screens.rpy:550
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 "## Histay useay atementstay includesay hetay ame_menugay creensay insideay histay oneay. Hetay boxvay ildchay isay hentay includeday insideay hetay iewportvay insideay hetay ame_menugay creensay."
# gui/game/screens.rpy:558
# gui/game/screens.rpy:560
old "Version [config.version!t]\n"
new "Ersionvay [config.version!t]\n"
# gui/game/screens.rpy:560
# gui/game/screens.rpy:562
old "## gui.about is usually set in options.rpy."
new "## uigay.aboutay isay usuallyay etsay inay optionsay.pyray."
# gui/game/screens.rpy:564
# gui/game/screens.rpy:566
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Ademay ithway {a=https://www.renpy.org/}Enray'Ypay{/a} [renpy.version_only].\n\n[renpy.license!t]"
# gui/game/screens.rpy:567
old "## This is redefined in options.rpy to add text to the about screen."
new "## Histay isay edefinedray inay optionsay.pyray otay adday exttay otay hetay aboutay creensay."
# gui/game/screens.rpy:579
# gui/game/screens.rpy:577
old "## Load and Save screens"
new "## Oadlay anday Avesay creenssay"
# gui/game/screens.rpy:581
# gui/game/screens.rpy:579
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## Hesetay creenssay areay esponsibleray orfay ettinglay hetay ayerplay avesay hetay amegay anday oadlay itay againay. Incesay heytay areshay earlynay everythingay inay ommoncay, othbay areay implementeday inay ermstay ofay aay hirdtay creensay, ile_slotsfay."
# gui/game/screens.rpy:585
# gui/game/screens.rpy:583
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#avesay ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#oadlay"
# gui/game/screens.rpy:604
# gui/game/screens.rpy:602
old "Page {}"
new "Agepay {}"
# gui/game/screens.rpy:604
# gui/game/screens.rpy:602
old "Automatic saves"
new "Utomaticaay avessay"
# gui/game/screens.rpy:604
# gui/game/screens.rpy:602
old "Quick saves"
new "Uickqay avessay"
# gui/game/screens.rpy:610
# gui/game/screens.rpy:608
old "## This ensures the input will get the enter event before any of the buttons do."
new "## Histay ensuresay hetay inputay illway etgay hetay enteray eventay eforebay anyay ofay hetay uttonsbay oday."
# gui/game/screens.rpy:614
# gui/game/screens.rpy:612
old "## The page name, which can be edited by clicking on a button."
new "## Hetay agepay amenay, hichway ancay ebay editeday ybay ickingclay onay aay uttonbay."
# gui/game/screens.rpy:626
# gui/game/screens.rpy:624
old "## The grid of file slots."
new "## Hetay idgray ofay ilefay otsslay."
# gui/game/screens.rpy:646
# gui/game/screens.rpy:644
old "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%Aay, %Bay %day %Yay, %Hay:%May"
# gui/game/screens.rpy:646
# gui/game/screens.rpy:644
old "empty slot"
new "emptyay otslay"
# gui/game/screens.rpy:654
# gui/game/screens.rpy:652
old "## Buttons to access other pages."
new "## Uttonsbay otay accessay otheray agespay."
# gui/game/screens.rpy:663
# gui/game/screens.rpy:661
old "<"
new "<"
# gui/game/screens.rpy:666
# gui/game/screens.rpy:664
old "{#auto_page}A"
new "{#auto_page}Aay"
# gui/game/screens.rpy:669
# gui/game/screens.rpy:667
old "{#quick_page}Q"
new "{#quick_page}Qay"
# gui/game/screens.rpy:671
# gui/game/screens.rpy:669
old "## range(1, 10) gives the numbers from 1 to 9."
new "## angeray(1ay, 01ay) ivesgay hetay umbersnay omfray 1ay otay 9ay."
# gui/game/screens.rpy:675
# gui/game/screens.rpy:673
old ">"
new ">"
# gui/game/screens.rpy:710
# gui/game/screens.rpy:708
old "## Preferences screen"
new "## Referencespay creensay"
# gui/game/screens.rpy:712
# gui/game/screens.rpy:710
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## Hetay referencespay creensay allowsay hetay ayerplay otay onfigurecay hetay amegay otay etterbay uitsay hemselvestay."
# gui/game/screens.rpy:715
# gui/game/screens.rpy:713
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#referencespay"
# gui/game/screens.rpy:732
# gui/game/screens.rpy:730
old "Display"
new "Isplayday"
# gui/game/screens.rpy:733
# gui/game/screens.rpy:731
old "Window"
new "Indowway"
# gui/game/screens.rpy:734
# gui/game/screens.rpy:732
old "Fullscreen"
new "Ullscreenfay"
# gui/game/screens.rpy:738
# gui/game/screens.rpy:736
old "Rollback Side"
new "Ollbackray Idesay"
# gui/game/screens.rpy:739
# gui/game/screens.rpy:737
old "Disable"
new "Isableday"
# gui/game/screens.rpy:740
# gui/game/screens.rpy:738
old "Left"
new "Eftlay"
# gui/game/screens.rpy:741
# gui/game/screens.rpy:739
old "Right"
new "Ightray"
# gui/game/screens.rpy:746
# gui/game/screens.rpy:744
old "Unseen Text"
new "Nseenuay Exttay"
# gui/game/screens.rpy:747
# gui/game/screens.rpy:745
old "After Choices"
new "Fteraay Hoicescay"
# gui/game/screens.rpy:748
# gui/game/screens.rpy:746
old "Transitions"
new "Ransitionstay"
# gui/game/screens.rpy:750
# gui/game/screens.rpy:748
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Dditionalaay boxesvay ofay ypetay \"adio_prefray\" oray \"eck_prefchay\" ancay ebay addeday erehay, otay adday additionalay reatorcay-efinedday referencespay."
# gui/game/screens.rpy:761
# gui/game/screens.rpy:759
old "Text Speed"
new "Exttay Peedsay"
# gui/game/screens.rpy:765
# gui/game/screens.rpy:763
old "Auto-Forward Time"
new "Utoaay-Orwardfay Imetay"
# gui/game/screens.rpy:772
# gui/game/screens.rpy:770
old "Music Volume"
new "Usicmay Olumevay"
# gui/game/screens.rpy:779
# gui/game/screens.rpy:777
old "Sound Volume"
new "Oundsay Olumevay"
# gui/game/screens.rpy:785
# gui/game/screens.rpy:783
old "Test"
new "Esttay"
# gui/game/screens.rpy:789
# gui/game/screens.rpy:787
old "Voice Volume"
new "Oicevay Olumevay"
# gui/game/screens.rpy:800
# gui/game/screens.rpy:798
old "Mute All"
new "Utemay Llaay"
# gui/game/screens.rpy:876
# gui/game/screens.rpy:874
old "## History screen"
new "## Istoryhay creensay"
# gui/game/screens.rpy:878
# gui/game/screens.rpy:876
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## Histay isay aay creensay hattay isplaysday hetay ialogueday istoryhay otay hetay ayerplay. Hileway heretay isnay'tay anythingay pecialsay aboutay histay creensay, itay oesday avehay otay accessay hetay ialogueday istoryhay oredstay inay history_list_ay."
# gui/game/screens.rpy:882
# gui/game/screens.rpy:880
old "## https://www.renpy.org/doc/html/history.html"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/istoryhay.tmlhay"
# gui/game/screens.rpy:888
# gui/game/screens.rpy:886
old "## Avoid predicting this screen, as it can be very large."
new "## Voidaay redictingpay histay creensay, asay itay ancay ebay eryvay argelay."
# gui/game/screens.rpy:899
# gui/game/screens.rpy:897
old "## This lays things out properly if history_height is None."
new "## Histay ayslay hingstay outay roperlypay ifay istory_heighthay isay Onenay."
# gui/game/screens.rpy:909
# gui/game/screens.rpy:907
old "## Take the color of the who text from the Character, if set."
new "## Aketay hetay olorcay ofay hetay howay exttay omfray hetay Haractercay, ifay etsay."
# gui/game/screens.rpy:918
# gui/game/screens.rpy:916
old "The dialogue history is empty."
new "Hetay ialogueday istoryhay isay emptyay."
# gui/game/screens.rpy:921
# gui/game/screens.rpy:919
old "## This determines what tags are allowed to be displayed on the history screen."
new "## Histay eterminesday hatway agstay areay alloweday otay ebay isplayedday onay hetay istoryhay creensay."
# gui/game/screens.rpy:968
# gui/game/screens.rpy:966
old "## Help screen"
new "## Elphay creensay"
# gui/game/screens.rpy:970
# gui/game/screens.rpy:968
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## Aay creensay hattay ivesgay informationay aboutay eykay anday ousemay indingsbay. Tiay usesay otheray creenssay (eyboard_helpkay, ouse_helpmay, anday amepad_helpgay) otay isplayday hetay actualay elphay."
# gui/game/screens.rpy:989
# gui/game/screens.rpy:987
old "Keyboard"
new "Eyboardkay"
# gui/game/screens.rpy:990
# gui/game/screens.rpy:988
old "Mouse"
new "Ousemay"
# gui/game/screens.rpy:993
# gui/game/screens.rpy:991
old "Gamepad"
new "Amepadgay"
# gui/game/screens.rpy:1006
# gui/game/screens.rpy:1004
old "Enter"
new "Ntereay"
# gui/game/screens.rpy:1007
# gui/game/screens.rpy:1005
old "Advances dialogue and activates the interface."
new "Dvancesaay ialogueday anday activatesay hetay interfaceay."
# gui/game/screens.rpy:1010
# gui/game/screens.rpy:1008
old "Space"
new "Pacesay"
# gui/game/screens.rpy:1011
# gui/game/screens.rpy:1009
old "Advances dialogue without selecting choices."
new "Dvancesaay ialogueday ithoutway electingsay oiceschay."
# gui/game/screens.rpy:1014
# gui/game/screens.rpy:1012
old "Arrow Keys"
new "Rrowaay Eyskay"
# gui/game/screens.rpy:1015
# gui/game/screens.rpy:1013
old "Navigate the interface."
new "Avigatenay hetay interfaceay."
# gui/game/screens.rpy:1018
# gui/game/screens.rpy:1016
old "Escape"
new "Scapeeay"
# gui/game/screens.rpy:1019
# gui/game/screens.rpy:1017
old "Accesses the game menu."
new "Ccessesaay hetay amegay enumay."
# gui/game/screens.rpy:1022
# gui/game/screens.rpy:1020
old "Ctrl"
new "Trlcay"
# gui/game/screens.rpy:1023
# gui/game/screens.rpy:1021
old "Skips dialogue while held down."
new "Kipssay ialogueday hileway eldhay ownday."
# gui/game/screens.rpy:1026
# gui/game/screens.rpy:1024
old "Tab"
new "Abtay"
# gui/game/screens.rpy:1027
# gui/game/screens.rpy:1025
old "Toggles dialogue skipping."
new "Ogglestay ialogueday kippingsay."
# gui/game/screens.rpy:1030
# gui/game/screens.rpy:1028
old "Page Up"
new "Agepay Puay"
# gui/game/screens.rpy:1031
# gui/game/screens.rpy:1029
old "Rolls back to earlier dialogue."
new "Ollsray ackbay otay earlieray ialogueday."
# gui/game/screens.rpy:1034
# gui/game/screens.rpy:1032
old "Page Down"
new "Agepay Ownday"
# gui/game/screens.rpy:1035
# gui/game/screens.rpy:1033
old "Rolls forward to later dialogue."
new "Ollsray orwardfay otay aterlay ialogueday."
# gui/game/screens.rpy:1039
# gui/game/screens.rpy:1037
old "Hides the user interface."
new "Ideshay hetay useray interfaceay."
# gui/game/screens.rpy:1043
# gui/game/screens.rpy:1041
old "Takes a screenshot."
new "Akestay aay creenshotsay."
# gui/game/screens.rpy:1047
# gui/game/screens.rpy:1045
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Ogglestay assistiveay {a=https://www.renpy.org/l/voicing}elfsay-oicingvay{/a}."
# gui/game/screens.rpy:1053
# gui/game/screens.rpy:1051
old "Left Click"
new "Eftlay Lickcay"
# gui/game/screens.rpy:1057
# gui/game/screens.rpy:1055
old "Middle Click"
new "Iddlemay Lickcay"
# gui/game/screens.rpy:1061
# gui/game/screens.rpy:1059
old "Right Click"
new "Ightray Lickcay"
# gui/game/screens.rpy:1065
# gui/game/screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "Ousemay Heelway Puay\nLickcay Ollbackray Idesay"
# gui/game/screens.rpy:1069
# gui/game/screens.rpy:1067
old "Mouse Wheel Down"
new "Ousemay Heelway Ownday"
# gui/game/screens.rpy:1076
# gui/game/screens.rpy:1074
old "Right Trigger\nA/Bottom Button"
new "Ightray Riggertay\nAay/Ottombay Uttonbay"
# gui/game/screens.rpy:1080
# gui/game/screens.rpy:1078
old "Left Trigger\nLeft Shoulder"
new "Eftlay Riggertay\nEftlay Houldersay"
# gui/game/screens.rpy:1084
# gui/game/screens.rpy:1082
old "Right Shoulder"
new "Ightray Houldersay"
# gui/game/screens.rpy:1089
# gui/game/screens.rpy:1087
old "D-Pad, Sticks"
new "Day-Adpay, Tickssay"
# gui/game/screens.rpy:1093
# gui/game/screens.rpy:1091
old "Start, Guide"
new "Tartsay, Uidegay"
# gui/game/screens.rpy:1097
# gui/game/screens.rpy:1095
old "Y/Top Button"
new "Yay/Optay Uttonbay"
# gui/game/screens.rpy:1100
# gui/game/screens.rpy:1098
old "Calibrate"
new "Alibratecay"
# gui/game/screens.rpy:1128
# gui/game/screens.rpy:1126
old "## Additional screens"
new "## Dditionalaay creenssay"
# gui/game/screens.rpy:1132
# gui/game/screens.rpy:1130
old "## Confirm screen"
new "## Onfirmcay creensay"
# gui/game/screens.rpy:1134
# gui/game/screens.rpy:1132
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## Hetay onfirmcay creensay isay alledcay henway Enray'Ypay antsway otay askay hetay ayerplay aay esyay oray onay uestionqay."
# gui/game/screens.rpy:1137
# gui/game/screens.rpy:1135
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#onfirmcay"
# gui/game/screens.rpy:1141
# gui/game/screens.rpy:1139
old "## Ensure other screens do not get input while this screen is displayed."
new "## Nsureeay otheray creenssay oday otnay etgay inputay hileway histay creensay isay isplayedday."
# gui/game/screens.rpy:1165
# gui/game/screens.rpy:1163
old "Yes"
new "Esyay"
# gui/game/screens.rpy:1166
# gui/game/screens.rpy:1164
old "No"
new "Onay"
# gui/game/screens.rpy:1168
# gui/game/screens.rpy:1166
old "## Right-click and escape answer \"no\"."
new "## Ightray-ickclay anday escapeay answeray \"onay\"."
# gui/game/screens.rpy:1195
# gui/game/screens.rpy:1193
old "## Skip indicator screen"
new "## Kipsay indicatoray creensay"
# gui/game/screens.rpy:1197
# gui/game/screens.rpy:1195
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## Hetay kip_indicatorsay creensay isay isplayedday otay indicateay hattay kippingsay isay inay rogresspay."
# gui/game/screens.rpy:1200
# gui/game/screens.rpy:1198
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#kipsay-indicatoray"
# gui/game/screens.rpy:1212
# gui/game/screens.rpy:1210
old "Skipping"
new "Kippingsay"
# gui/game/screens.rpy:1219
# gui/game/screens.rpy:1217
old "## This transform is used to blink the arrows one after another."
new "## Histay ansformtray isay useday otay inkblay hetay arrowsay oneay afteray anotheray."
# gui/game/screens.rpy:1246
# gui/game/screens.rpy:1244
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
new "## Eway avehay otay useay aay ontfay hattay ashay hetay Lackbay Ightray-Ointingpay Mallsay Riangletay yphglay inay itay."
# gui/game/screens.rpy:1251
# gui/game/screens.rpy:1249
old "## Notify screen"
new "## Otifynay creensay"
# gui/game/screens.rpy:1253
# gui/game/screens.rpy:1251
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## Hetay otifynay creensay isay useday otay owshay hetay ayerplay aay essagemay. (Orfay exampleay, henway hetay amegay isay uicksavedqay oray aay creenshotsay ashay eenbay akentay.)"
# gui/game/screens.rpy:1256
# gui/game/screens.rpy:1254
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#otifynay-creensay"
# gui/game/screens.rpy:1290
# gui/game/screens.rpy:1288
old "## NVL screen"
new "## Vlnay creensay"
# gui/game/screens.rpy:1292
# gui/game/screens.rpy:1290
old "## This screen is used for NVL-mode dialogue and menus."
new "## Histay creensay isay useday orfay Vlnay-odemay ialogueday anday enusmay."
# gui/game/screens.rpy:1294
# gui/game/screens.rpy:1292
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#vlnay"
# gui/game/screens.rpy:1305
# gui/game/screens.rpy:1303
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Isplaysday ialogueday inay eitheray aay pgridvay oray hetay boxvay."
# gui/game/screens.rpy:1318
# gui/game/screens.rpy:1316
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Isplaysday hetay enumay, ifay ivengay. Hetay enumay aymay ebay isplayedday incorrectlyay ifay onfigcay.arrator_menunay isay etsay otay Ruetay, asay itay isay aboveay."
# gui/game/screens.rpy:1348
# gui/game/screens.rpy:1346
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## Histay ontrolscay hetay aximummay umbernay ofay Vlnay-odemay entriesay hattay ancay ebay isplayedday atay onceay."
# gui/game/screens.rpy:1410
# gui/game/screens.rpy:1408
old "## Mobile Variants"
new "## Obilemay Ariantsvay"
# gui/game/screens.rpy:1417
# gui/game/screens.rpy:1415
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## Incesay aay ousemay aymay otnay ebay resentpay, eway eplaceray hetay uickqay enumay ithway aay ersionvay hattay usesay ewerfay anday iggerbay uttonsbay hattay areay easieray otay ouchtay."
# gui/game/screens.rpy:1435
# gui/game/screens.rpy:1433
old "Menu"
new "Enumay"
+12
View File
@@ -880,3 +880,15 @@ translate russian strings:
# renpy/common/00accessibility.rpy:191
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "Параметры этого меню предназначены для увеличения доступности. Они могут работать не со всеми играми, а некоторые комбинации опций могут сделать игру отображаемой некорректно. Это не проблема с игрой или движком. Для достижения наилучших результатов при изменении шрифтов старайтесь сохранять размер текста таким, каким он был изначально."
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "Уменьшение громкости при озвучке через синтезатор речи"
# renpy/common/00preferences.rpy:384
old "self voicing volume drop"
new "уменьшение громкости при озвучке через синтезатор речи"
# renpy/common/00preferences.rpy:464
old "system cursor"
new "системный курсор"
+12
View File
@@ -72,3 +72,15 @@ translate russian strings:
# 00console.rpy:690
old "long: Print the full representation of objects on the console."
new "long: Выводить полное представление обектов (repr) в консоли."
# renpy/common/00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "watch <выражение>: наблюдать за выражением python\n watch short: укорачивает отображение отслеживаемых выражений (по умолчанию)\n watch long: делает отображение отслеживаемых выражений как есть"
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: Включает экранирование Unicode символов в строках unicode."
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: Выключает экранирование Unicode символов в строках unicode и выводит их как есть (по умолчанию)."
+42 -2
View File
@@ -130,8 +130,8 @@ translate russian strings:
new "Калибрую [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Нажмите или передвиньте [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Нажмите или передвиньте [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
@@ -236,3 +236,43 @@ translate russian strings:
# _errorhandling.rpym:687
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "Копирует файл errors.txt в буфер обмена как Markdown для Дискорда."
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Принудительный GL рендеринг"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Принудительный ANGLE рендеринг"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "Принудительный GLES рендеринг"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Принудительный GL2 рендеринг"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "Принудительный ANGLE2 рендеринг"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "Принудительный GLES2 рендеринг"
# renpy/common/00gltest.rpy:245
old "This game requires use of GL2 that can't be initialised."
new "Эта игра требует использование GL2 который не может быть инициализирован."
# renpy/common/00gltest.rpy:256
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "Больше информации о том как это может быть исправлено смотрите в {a=[url]}документации{/a}."
# renpy/common/00gltest.rpy:273
old "Change render options"
new "Изменить настройки рендеринга"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Нажмите или сдвиньте [kind] '[control!s]'"
+82 -2
View File
@@ -418,8 +418,8 @@ translate russian strings:
new "Я могу создать для вас ключ для подписи приложения. Подпись приложения этим ключом позволит разместить его в Android Market и других магазинах приложений.\n\nХотите создать ключ?"
# androidstrings.rpy:66
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\n\\You also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Я создам ключ в файле android.keystore.\n\nВам нужно сохранить этот файл. Если вы его потеряете, то не сможете обновлять ваше приложение. n.\n\n\\Также вам нужно держать ваш ключ в безопасность. Если злоумышленникам удастся получить его, они потенциально могут создать вредоносную версию приложения и красть данные ваших пользователей.\n\nБудете ли вы хранить android.keystore и держать его в надёжном месте?"
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Я создам ключ в файле android.keystore.\n\nВам нужно сохранить этот файл. Если вы его потеряете, то не сможете обновлять ваше приложение.\n\nТакже вам нужно держать ваш ключ в безопасность. Если злоумышленникам удастся получить его, они потенциально могут создать вредоносную версию приложения и красть данные ваших пользователей.\n\nБудете ли вы хранить android.keystore и держать его в надёжном месте?"
# androidstrings.rpy:67
old "Please enter your name or the name of your organization."
@@ -1604,3 +1604,83 @@ translate russian strings:
# game/web.rpy:151
old "Open build directory"
new "Открыть папку сборки"
# game/androidstrings.rpy:47
old "Do you want to automatically update the Java source code?"
new "Вы хотите автоматически обновлять исходный код Java?"
# game/choose_directory.rpy:93
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Ren'Py не смог запустить python с tkinter для выбора каталога. Пожалуйста, установите модуль python3-tk или tkinter."
# game/front_page.rpy:198
old "audio"
new "звук"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "Установка [name!t] провалилась, так как файл, соответствующий [zipglob] не был найден в папке Ren'Py SDK."
# game/install.rpy:76
old "Successfully installed [name!t]."
new "Успешно установлен [name!t]."
# game/install.rpy:104
old "Install Libraries"
new "Установка библиотек"
# game/install.rpy:119
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "Этот экран позволяет установить библиотеки, которые не могут распространяться вместе с Ren'Py. Некоторые из этих библиотек могут потребовать от вас принятия сторонней лицензии для использования или распространения."
# game/install.rpy:131
old "Install Live2D Cubism SDK for Native"
new "Установить Live2D Cubism SDK for Native"
# game/install.rpy:134
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} добавляет поддержку отображения моделей Live2D. Поместите CubismSdkForNative-4-{i}версия{/i}.zip в папку Ren'Py SDK, а затем нажмите кнопку Установить. Для распространения игры с Live2D необходимо принять лицензию от Live2D, Inc."
# game/install.rpy:138
old "Open Ren'Py SDK Directory"
new "Открыть папку Ren'Py SDK"
# game/preferences.rpy:138
old "Install libraries"
new "Установить библиотеки"
# game/preferences.rpy:140
old "Reset window size"
new "Сбросить размер окна"
# game/install.rpy:144
old "Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support."
new "Live2D в Ren'Py не поддерживается на Web, Android x86_64 (включая эмуляторы и Chrome OS), а также должен добавлятся в iOS проекты вручную. Live2D должен быть установлен заново после обновления Ren'Py и/или установки пакета поддержки Android."
# game/install.rpy:151
old "Install Steam Support"
new "Установить поддержку Steam"
# game/install.rpy:160
old "Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}."
new "Перед установкой поддержки Steam убедитесь что вы являетесь {a=https://partner.steamgames.com/}партнёром Steam{/a}."
# game/install.rpy:172
old "Steam support has already been installed."
new "Поддержка Steam уже установлена."
# game/web.rpy:242
old "Preparing progressive download"
new "Подготовка прогрессивной загрузки"
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Изображения и музыка могут загружаться во время игры. Будет создан файл 'progressive_download.txt', чтобы вы могли настроить такое поведение."
# game/androidstrings.rpy:21
old "The universal version works everywhere but is larger."
new "Универсальная версия работает на всех устройствах но занимает больше места."
# game/androidstrings.rpy:45
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
new "Автоматическая установка APK-расширения {a=https://issuetracker.google.com/issues/160942333}может не работать на Android 11{/a}."
+2 -3
View File
@@ -158,8 +158,8 @@ translate russian strings:
new "Помощь"
# screens.rpy:331
old "## The quit button is banned on iOS and unnecessary on Android."
new "## Кнопка выхода блокирована в iOS и не нужна на Android."
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## Кнопка выхода блокирована в iOS и не нужна на Android и в веб-версии."
# screens.rpy:332
old "Quit"
@@ -672,4 +672,3 @@ translate russian strings:
# screens.rpy:1431
old "Menu"
new "Меню"
@@ -1,5 +1,109 @@

translate simplified_chinese strings:
translate schinese strings:
# 00accessibility.rpy:28
old "Self-voicing disabled."
new "自动朗读已关闭。"
# 00accessibility.rpy:29
old "Clipboard voicing enabled. "
new "剪贴板朗读已开启。"
# 00accessibility.rpy:30
old "Self-voicing enabled. "
new "自动朗读已开启。"
# 00accessibility.rpy:32
old "bar"
new "bar"
# 00accessibility.rpy:33
old "selected"
new "selected"
# 00accessibility.rpy:34
old "viewport"
new "viewport"
# 00accessibility.rpy:35
old "horizontal scroll"
new "horizontal scroll"
# 00accessibility.rpy:36
old "vertical scroll"
new "vertical scroll"
# 00accessibility.rpy:37
old "activate"
new "activate"
# 00accessibility.rpy:38
old "deactivate"
new "deactivate"
# 00accessibility.rpy:39
old "increase"
new "increase"
# 00accessibility.rpy:40
old "decrease"
new "decrease"
# 00accessibility.rpy:128
old "Font Override"
new "字体替代"
# 00accessibility.rpy:132
old "Default"
new "默认"
# 00accessibility.rpy:136
old "DejaVu Sans"
new "DejaVu Sans"
# 00accessibility.rpy:140
old "Opendyslexic"
new "Opendyslexic"
# 00accessibility.rpy:146
old "Text Size Scaling"
new "字号缩放"
# 00accessibility.rpy:152
old "Reset"
new "重置"
# 00accessibility.rpy:158
old "Line Spacing Scaling"
new "行距缩放"
# 00accessibility.rpy:171
old "Self-Voicing"
new "自动朗读"
# 00accessibility.rpy:175
old "Off"
new "关闭"
# 00accessibility.rpy:179
old "Text-to-speech"
new "文字转语音"
# 00accessibility.rpy:183
old "Clipboard"
new "剪贴板"
# 00accessibility.rpy:187
old "Debug"
new "调试"
# 00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "自动朗读音量下降"
# 00accessibility.rpy:202
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "此菜单上的选项旨在改善辅助功能。这些选项可能不适用于所有游戏,并且某些选项组合可能会导致游戏无法游玩。这不是游戏或引擎的问题。为了在更改字体时获得最佳效果,请尝试保持文字大小与原始大小相同。"
# 00action_file.rpy:26
old "{#weekday}Monday"
@@ -155,7 +259,7 @@ translate simplified_chinese strings:
# 00action_file.rpy:240
old "%b %d, %H:%M"
new "%m%d日,%H:%M"
new "%m-%d %H:%M"
# 00action_file.rpy:353
old "Save slot %s: [text]"
@@ -169,39 +273,39 @@ translate simplified_chinese strings:
old "Delete slot [text]"
new "删除存档 [text]"
# 00action_file.rpy:569
# 00action_file.rpy:566
old "File page auto"
new "自动存档页"
# 00action_file.rpy:571
# 00action_file.rpy:568
old "File page quick"
new "快速存档页"
# 00action_file.rpy:573
# 00action_file.rpy:570
old "File page [text]"
new "第 [text] 存档页"
# 00action_file.rpy:763
# 00action_file.rpy:769
old "Next file page."
new "下一存档页。"
# 00action_file.rpy:827
# 00action_file.rpy:842
old "Previous file page."
new "上一存档页。"
# 00action_file.rpy:889
# 00action_file.rpy:903
old "Quick save complete."
new "快速保存完成。"
# 00action_file.rpy:907
# 00action_file.rpy:921
old "Quick save."
new "快速保存。"
# 00action_file.rpy:926
# 00action_file.rpy:940
old "Quick load."
new "快速读取。"
# 00action_other.rpy:355
# 00action_other.rpy:375
old "Language [text]"
new "语言 [text]"
@@ -297,518 +401,498 @@ translate simplified_chinese strings:
old "Audio Filename:"
new "音频文件:"
# 00gui.rpy:370
# 00gui.rpy:374
old "Are you sure?"
new "您确定吗?"
# 00gui.rpy:371
# 00gui.rpy:375
old "Are you sure you want to delete this save?"
new "您确定要删除此存档吗?"
# 00gui.rpy:372
# 00gui.rpy:376
old "Are you sure you want to overwrite your save?"
new "您确定要覆盖此存档吗?"
# 00gui.rpy:373
# 00gui.rpy:377
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "读取存档将会使未保存的进度丢失。\n您确定要继续吗?"
# 00gui.rpy:374
# 00gui.rpy:378
old "Are you sure you want to quit?"
new "您确定要退出吗?"
# 00gui.rpy:375
# 00gui.rpy:379
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "您确定要返回到标题面吗?\n此操作将会使未保存的进度丢失。"
new "您确定要返回到标题面吗?\n此操作将会使未保存的进度丢失。"
# 00gui.rpy:376
# 00gui.rpy:380
old "Are you sure you want to end the replay?"
new "您确定要结束回放吗?"
# 00gui.rpy:377
# 00gui.rpy:381
old "Are you sure you want to begin skipping?"
new "您确定要开始快进吗?"
# 00gui.rpy:378
# 00gui.rpy:382
old "Are you sure you want to skip to the next choice?"
new "您确定要直接快进到下个选项吗?"
# 00gui.rpy:379
# 00gui.rpy:383
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "您确定要跳过未读对话,直接快进到下个选项吗?"
# 00keymap.rpy:258
# 00keymap.rpy:280
old "Failed to save screenshot as %s."
new "截图保存到以下位置时失败:%s"
# 00keymap.rpy:270
# 00keymap.rpy:292
old "Saved screenshot as %s."
new "截图已保存到以下位置:%s"
# 00library.rpy:146
old "Self-voicing disabled."
new "自动朗读已关闭。"
# 00library.rpy:147
old "Clipboard voicing enabled. "
new "剪贴板朗读已开启。"
# 00library.rpy:148
old "Self-voicing enabled. "
new "自动朗读已开启。"
# 00library.rpy:150
old "bar"
new "bar"
# 00library.rpy:151
old "selected"
new "selected"
# 00library.rpy:152
old "viewport"
new "viewport"
# 00library.rpy:153
old "horizontal scroll"
new "horizontal scroll"
# 00library.rpy:154
old "vertical scroll"
new "vertical scroll"
# 00library.rpy:155
old "activate"
new "activate"
# 00library.rpy:156
old "deactivate"
new "deactivate"
# 00library.rpy:157
old "increase"
new "increase"
# 00library.rpy:158
old "decrease"
new "decrease"
# 00library.rpy:193
# 00library.rpy:195
old "Skip Mode"
new "快进"
# 00library.rpy:279
# 00library.rpy:281
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 "本程序包含了由数个许可证授权的免费软件,包括 MIT 许可证和 GNU 宽松通用公共许可证。完整软件列表及源代码链接,请{a=https://www.renpy.org/l/license}访问此处{/a}。"
# 00preferences.rpy:207
# 00preferences.rpy:240
old "display"
new "display"
# 00preferences.rpy:219
# 00preferences.rpy:252
old "transitions"
new "transitions"
# 00preferences.rpy:228
# 00preferences.rpy:261
old "skip transitions"
new "skip transitions"
# 00preferences.rpy:230
# 00preferences.rpy:263
old "video sprites"
new "video sprites"
# 00preferences.rpy:239
# 00preferences.rpy:272
old "show empty window"
new "show empty window"
# 00preferences.rpy:248
# 00preferences.rpy:281
old "text speed"
new "text speed"
# 00preferences.rpy:256
# 00preferences.rpy:289
old "joystick"
new "joystick"
# 00preferences.rpy:256
# 00preferences.rpy:289
old "joystick..."
new "joystick..."
# 00preferences.rpy:263
# 00preferences.rpy:296
old "skip"
new "skip"
# 00preferences.rpy:266
# 00preferences.rpy:299
old "skip unseen [text]"
new "skip unseen [text]"
# 00preferences.rpy:271
# 00preferences.rpy:304
old "skip unseen text"
new "skip unseen text"
# 00preferences.rpy:273
# 00preferences.rpy:306
old "begin skipping"
new "begin skipping"
# 00preferences.rpy:277
# 00preferences.rpy:310
old "after choices"
new "after choices"
# 00preferences.rpy:284
# 00preferences.rpy:317
old "skip after choices"
new "skip after choices"
# 00preferences.rpy:286
# 00preferences.rpy:319
old "auto-forward time"
new "auto-forward time"
# 00preferences.rpy:300
# 00preferences.rpy:333
old "auto-forward"
new "auto-forward"
# 00preferences.rpy:307
# 00preferences.rpy:340
old "Auto forward"
new "自动前进"
# 00preferences.rpy:310
# 00preferences.rpy:343
old "auto-forward after click"
new "auto-forward after click"
# 00preferences.rpy:319
# 00preferences.rpy:352
old "automatic move"
new "automatic move"
# 00preferences.rpy:328
# 00preferences.rpy:361
old "wait for voice"
new "wait for voice"
# 00preferences.rpy:337
# 00preferences.rpy:370
old "voice sustain"
new "voice sustain"
# 00preferences.rpy:346
# 00preferences.rpy:379
old "self voicing"
new "self voicing"
# 00preferences.rpy:355
# 00preferences.rpy:388
old "self voicing volume drop"
new "self voicing volume drop"
# 00preferences.rpy:396
old "clipboard voicing"
new "clipboard voicing"
# 00preferences.rpy:364
# 00preferences.rpy:405
old "debug voicing"
new "debug voicing"
# 00preferences.rpy:373
# 00preferences.rpy:414
old "emphasize audio"
new "emphasize audio"
# 00preferences.rpy:382
# 00preferences.rpy:423
old "rollback side"
new "rollback side"
# 00preferences.rpy:392
# 00preferences.rpy:433
old "gl powersave"
new "gl powersave"
# 00preferences.rpy:398
# 00preferences.rpy:439
old "gl framerate"
new "gl framerate"
# 00preferences.rpy:401
# 00preferences.rpy:442
old "gl tearing"
new "gl tearing"
# 00preferences.rpy:413
# 00preferences.rpy:445
old "font transform"
new "font transform"
# 00preferences.rpy:448
old "font size"
new "font size"
# 00preferences.rpy:456
old "font line spacing"
new "font line spacing"
# 00preferences.rpy:464
old "system cursor"
new "system cursor"
# 00preferences.rpy:484
old "music volume"
new "music volume"
# 00preferences.rpy:414
# 00preferences.rpy:485
old "sound volume"
new "sound volume"
# 00preferences.rpy:415
# 00preferences.rpy:486
old "voice volume"
new "voice volume"
# 00preferences.rpy:416
# 00preferences.rpy:487
old "mute music"
new "mute music"
# 00preferences.rpy:417
# 00preferences.rpy:488
old "mute sound"
new "mute sound"
# 00preferences.rpy:418
# 00preferences.rpy:489
old "mute voice"
new "mute voice"
# 00preferences.rpy:419
# 00preferences.rpy:490
old "mute all"
new "mute all"
# 00preferences.rpy:500
# 00preferences.rpy:571
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "剪贴板朗读已开启。按 Shift+C 来关闭。"
# 00preferences.rpy:502
# 00preferences.rpy:573
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "自动朗读将开始朗读“[renpy.display.tts.last]”。按 Alt+Shift+V 来关闭。"
# 00preferences.rpy:504
# 00preferences.rpy:575
old "Self-voicing enabled. Press 'v' to disable."
new "自动朗读已开启。按 V 来关闭。"
# _compat\gamemenu.rpym:198
# _compat/gamemenu.rpym:198
old "Empty Slot."
new "空存档位。"
# _compat\gamemenu.rpym:355
# _compat/gamemenu.rpym:355
old "Previous"
new "上一页"
# _compat\gamemenu.rpym:362
# _compat/gamemenu.rpym:362
old "Next"
new "下一页"
# _compat\preferences.rpym:428
# _compat/preferences.rpym:428
old "Joystick Mapping"
new "手柄映射"
# _developer\developer.rpym:38
# _developer/developer.rpym:38
old "Developer Menu"
new "开发者菜单"
# _developer\developer.rpym:43
# _developer/developer.rpym:43
old "Interactive Director (D)"
new "互动导演 (D)"
# _developer\developer.rpym:45
# _developer/developer.rpym:45
old "Reload Game (Shift+R)"
new "重新加载游戏 (Shift+R)"
# _developer\developer.rpym:47
# _developer/developer.rpym:47
old "Console (Shift+O)"
new "控制台 (Shift+O)"
# _developer\developer.rpym:49
# _developer/developer.rpym:49
old "Variable Viewer"
new "变量查看器"
# _developer\developer.rpym:51
# _developer/developer.rpym:51
old "Image Location Picker"
new "图像坐标提取器"
# _developer\developer.rpym:53
# _developer/developer.rpym:53
old "Filename List"
new "文件列表"
# _developer\developer.rpym:57
# _developer/developer.rpym:57
old "Show Image Load Log (F4)"
new "显示图像加载日志 (F4)"
# _developer\developer.rpym:60
# _developer/developer.rpym:60
old "Hide Image Load Log (F4)"
new "隐藏图像加载日志 (F4)"
# _developer\developer.rpym:63
# _developer/developer.rpym:63
old "Image Attributes"
new "图像属性"
# _developer\developer.rpym:90
# _developer/developer.rpym:90
old "[name] [attributes] (hidden)"
new "[name] [attributes](隐藏)"
# _developer\developer.rpym:94
# _developer/developer.rpym:94
old "[name] [attributes]"
new "[name] [attributes]"
# _developer\developer.rpym:137
# _developer/developer.rpym:143
old "Nothing to inspect."
new "无对象可查验。"
# _developer\developer.rpym:265
# _developer/developer.rpym:154
old "Hide deleted"
new "隐藏已删除项"
# _developer/developer.rpym:154
old "Show deleted"
new "显示已删除项"
# _developer/developer.rpym:278
old "Return to the developer menu"
new "返回到开发者菜单"
# _developer\developer.rpym:425
# _developer/developer.rpym:443
old "Rectangle: %r"
new "矩形参数:%r"
# _developer\developer.rpym:430
# _developer/developer.rpym:448
old "Mouse position: %r"
new "鼠标坐标:%r"
# _developer\developer.rpym:435
# _developer/developer.rpym:453
old "Right-click or escape to quit."
new "右键点击或按下 Esc 键来退出。"
# _developer\developer.rpym:467
# _developer/developer.rpym:485
old "Rectangle copied to clipboard."
new "矩形参数已复制到剪贴板。"
# _developer\developer.rpym:470
# _developer/developer.rpym:488
old "Position copied to clipboard."
new "坐标已复制到剪贴板。"
# _developer\developer.rpym:489
# _developer/developer.rpym:506
old "Type to filter: "
new "输入关键字过滤:"
# _developer\developer.rpym:617
# _developer/developer.rpym:631
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "贴图:[tex_count] ([tex_size_mb:.1f] MB)"
# _developer\developer.rpym:621
# _developer/developer.rpym:635
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "图像缓存:[cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# _developer\developer.rpym:631
# _developer/developer.rpym:645
old "✔ "
new "✔ "
# _developer\developer.rpym:634
# _developer/developer.rpym:648
old "✘ "
new "✘ "
# _developer\developer.rpym:639
# _developer/developer.rpym:653
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ 已预载图像(良好){/color}\n{color=#fcc}✘ 未预载图像(糟糕){/color}\n{color=#fff}拖动来移动位置。{/color}"
# _developer\inspector.rpym:38
# _developer/inspector.rpym:38
old "Displayable Inspector"
new "可视组件查验器"
# _developer\inspector.rpym:61
# _developer/inspector.rpym:61
old "Size"
new "大小"
# _developer\inspector.rpym:65
# _developer/inspector.rpym:65
old "Style"
new "样式"
# _developer\inspector.rpym:71
# _developer/inspector.rpym:71
old "Location"
new "坐标"
# _developer\inspector.rpym:122
# _developer/inspector.rpym:122
old "Inspecting Styles of [displayable_name!q]"
new "正在查验 [displayable_name!q] 的样式"
# _developer\inspector.rpym:139
# _developer/inspector.rpym:139
old "displayable:"
new "displayable:"
# _developer\inspector.rpym:145
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
new " (可视组件尚无属性关联)"
# _developer\inspector.rpym:147
# _developer/inspector.rpym:147
old " (default properties omitted)"
new " (已省略默认属性)"
# _developer\inspector.rpym:185
# _developer/inspector.rpym:185
old "<repr() failed>"
new "<repr() failed>"
# _layout\classic_load_save.rpym:170
# _layout/classic_load_save.rpym:170
old "a"
new "a"
# _layout\classic_load_save.rpym:179
# _layout/classic_load_save.rpym:179
old "q"
new "q"
# 00iap.rpy:217
# 00iap.rpy:219
old "Contacting App Store\nPlease Wait..."
new "正在联系 App Store\n请稍后……"
new "正在连线 App Store\n请稍后……"
# 00updater.rpy:375
# 00updater.rpy:374
old "The Ren'Py Updater is not supported on mobile devices."
new "Py 更新器尚不支持移动设备。"
new "Ren'Py 尚不支持移动设备上执行更新。"
# 00updater.rpy:494
# 00updater.rpy:493
old "An error is being simulated."
new "已模拟一个错误。"
# 00updater.rpy:678
# 00updater.rpy:677
old "Either this project does not support updating, or the update status file was deleted."
new "此工程不支持更新,或者是更新状态文件已被删除。"
# 00updater.rpy:692
# 00updater.rpy:691
old "This account does not have permission to perform an update."
new "此帐号没有执行更新的权限。"
# 00updater.rpy:695
# 00updater.rpy:694
old "This account does not have permission to write the update log."
new "此帐号没有写入更新日志的权限。"
# 00updater.rpy:722
# 00updater.rpy:721
old "Could not verify update signature."
new "无法验证更新签名。"
# 00updater.rpy:997
# 00updater.rpy:992
old "The update file was not downloaded."
new "更新文件未能下载。"
# 00updater.rpy:1015
# 00updater.rpy:1010
old "The update file does not have the correct digest - it may have been corrupted."
new "更新文件校验失败。文件可能已损坏。"
# 00updater.rpy:1071
# 00updater.rpy:1064
old "While unpacking {}, unknown type {}."
new "解压 {} 时出现未知错误 {}。"
# 00updater.rpy:1439
# 00updater.rpy:1430
old "Updater"
new "更新"
new "更新程序"
# 00updater.rpy:1450
# 00updater.rpy:1441
old "This program is up to date."
new "此程序已是最新版本。"
# 00updater.rpy:1452
# 00updater.rpy:1443
old "[u.version] is available. Do you want to install it?"
new "[u.version] 现已可用。您希望现在安装吗?"
# 00updater.rpy:1454
# 00updater.rpy:1445
old "Preparing to download the updates."
new "正在准备下载更新。"
# 00updater.rpy:1456
# 00updater.rpy:1447
old "Downloading the updates."
new "正在下载更新。"
# 00updater.rpy:1458
# 00updater.rpy:1449
old "Unpacking the updates."
new "正在解压更新。"
# 00updater.rpy:1462
# 00updater.rpy:1453
old "The updates have been installed. The program will restart."
new "此更新已安装。程序将重新启动。"
# 00updater.rpy:1464
# 00updater.rpy:1455
old "The updates have been installed."
new "更新已安装。"
# 00updater.rpy:1466
# 00updater.rpy:1457
old "The updates were cancelled."
new "更新已取消。"
# 00gallery.rpy:585
# 00gallery.rpy:590
old "Image [index] of [count] locked."
new "图片 [count] / [index] 尚未解锁。"
# 00gallery.rpy:605
# 00gallery.rpy:610
old "prev"
new "上一页"
# 00gallery.rpy:606
# 00gallery.rpy:611
old "next"
new "下一页"
# 00gallery.rpy:607
# 00gallery.rpy:612
old "slideshow"
new "幻灯片"
# 00gallery.rpy:608
# 00gallery.rpy:613
old "return"
new "返回"
+82
View File
@@ -0,0 +1,82 @@

translate schinese strings:
# 00console.rpy:492
old "Press <esc> to exit console. Type help for help.\n"
new "按 Esc 来退出控制台。输入 help 来查看帮助。\n"
# 00console.rpy:496
old "Ren'Py script enabled."
new "Ren'Py 脚本已开启。"
# 00console.rpy:498
old "Ren'Py script disabled."
new "Ren'Py 脚本已关闭。"
# 00console.rpy:745
old "help: show this help"
new "help:显示此帮助信息"
# 00console.rpy:750
old "commands:\n"
new "命令:\n"
# 00console.rpy:760
old " <renpy script statement>: run the statement\n"
new " <renpy 脚本语句>:运行此语句\n"
# 00console.rpy:762
old " <python expression or statement>: run the expression or statement"
new " <python 表达式或语句>:运行此表达式或语句"
# 00console.rpy:770
old "clear: clear the console history"
new "clear:清除控制台历史记录"
# 00console.rpy:774
old "exit: exit the console"
new "exit:退出控制台"
# 00console.rpy:782
old "load <slot>: loads the game from slot"
new "load <档位>:读取该档位的存档"
# 00console.rpy:795
old "save <slot>: saves the game in slot"
new "save <档位>:存储存档到该档位"
# 00console.rpy:806
old "reload: reloads the game, refreshing the scripts"
new "reload:重新加载游戏,并重新整理脚本"
# 00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "watch <表达式>:监视该 python 表达式\n watch short:简短表征所跟踪的表达式(默认)\n watch long:按原样表征所跟踪的表达式"
# 00console.rpy:849
old "unwatch <expression>: stop watching an expression"
new "unwatch <表达式>:停止监视该表达式"
# 00console.rpy:884
old "unwatchall: stop watching all expressions"
new "unwatchall:停止监视所有表达式"
# 00console.rpy:901
old "jump <label>: jumps to label"
new "jump <标签>:跳转到此标签"
# 00console.rpy:917
old "short: Shorten the representation of objects on the console (default)."
new "short:在控制台中缩短对象的表征(默认)。"
# 00console.rpy:921
old "long: Print the full representation of objects on the console."
new "long:在控制台中打印出对象的完整表征。"
# 00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape:启用转义 Unicode 字符串中的 Unicode 符号。"
# 00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape:禁止转义 Unicode 字符串中的 Unicode 符号,并按原样显示(默认)。"
+210
View File
@@ -0,0 +1,210 @@

translate schinese strings:
# 00gltest.rpy:89
old "Renderer"
new "渲染器"
# 00gltest.rpy:93
old "Automatically Choose"
new "自动选择"
# 00gltest.rpy:100
old "Force GL Renderer"
new "强制 GL 渲染"
# 00gltest.rpy:105
old "Force ANGLE Renderer"
new "强制 ANGLE 渲染"
# 00gltest.rpy:110
old "Force GLES Renderer"
new "强制 GLES 渲染"
# 00gltest.rpy:116
old "Force GL2 Renderer"
new "强制 GL2 渲染"
# 00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "强制 ANGLE2 渲染"
# 00gltest.rpy:126
old "Force GLES2 Renderer"
new "强制 GLES2 渲染"
# 00gltest.rpy:136
old "Enable"
new "启用"
# 00gltest.rpy:155
old "Powersave"
new "省电模式"
# 00gltest.rpy:169
old "Framerate"
new "帧率"
# 00gltest.rpy:173
old "Screen"
new "根据屏幕"
# 00gltest.rpy:177
old "60"
new "60"
# 00gltest.rpy:181
old "30"
new "30"
# 00gltest.rpy:187
old "Tearing"
new "画面撕裂"
# 00gltest.rpy:203
old "Changes will take effect the next time this program is run."
new "更改将会在下次启动程序时生效。"
# 00gltest.rpy:238
old "Performance Warning"
new "性能影响警告"
# 00gltest.rpy:243
old "This computer is using software rendering."
new "此计算机正在使用软件渲染。"
# 00gltest.rpy:245
old "This game requires use of GL2 that can't be initialised."
new "此游戏需要使用 GL2,但其无法初始化。"
# 00gltest.rpy:247
old "This computer has a problem displaying graphics: [problem]."
new "此计算机显示图形时出错:[problem]"
# 00gltest.rpy:251
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "目前图形驱动程序版本可能过旧或未正确运行。这会导致图形显示缓慢或者错误。"
# 00gltest.rpy:256
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "关于如何解决该问题的更多详情可以在{a=[url]}文档{/a}中找到。"
# 00gltest.rpy:261
old "Continue, Show this warning again"
new "继续,下次继续显示该警告"
# 00gltest.rpy:265
old "Continue, Don't show warning again"
new "继续,不再显示该警告"
# 00gltest.rpy:273
old "Change render options"
new "更改渲染选项"
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "选择手柄来校准"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "无可用手柄"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "正在校准 [name][i]/[total]"
# 00gamepad.rpy:58
old "Press or move the [control!s] [kind]."
new "按下或移动 [control!s] [kind]。"
# 00gamepad.rpy:66
old "Skip (A)"
new "跳过(A"
# 00gamepad.rpy:69
old "Back (B)"
new "返回(B"
# _errorhandling.rpym:540
old "Open"
new "打开"
# _errorhandling.rpym:542
old "Opens the traceback.txt file in a text editor."
new "在文本编辑器中打开追溯报告(traceback.txt)。"
# _errorhandling.rpym:544
old "Copy BBCode"
new "复制 BBCode"
# _errorhandling.rpym:546
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "复制追溯报告(traceback.txt)的内容到剪贴板,作为 https://lemmasoft.renai.us/ 等论坛的 BBcode。"
# _errorhandling.rpym:548
old "Copy Markdown"
new "复制 Markdown"
# _errorhandling.rpym:550
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "复制追溯报告(traceback.txt)的内容到剪贴板,作为 Discord 的 Markdown。"
# _errorhandling.rpym:579
old "An exception has occurred."
new "发生异常。"
# _errorhandling.rpym:602
old "Rollback"
new "回滚"
# _errorhandling.rpym:604
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "尝试回滚到先前的状态,使您可以存档或者选择不同选项。"
# _errorhandling.rpym:607
old "Ignore"
new "忽略"
# _errorhandling.rpym:611
old "Ignores the exception, allowing you to continue."
new "忽略异常,让您可以继续。"
# _errorhandling.rpym:613
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "忽略异常,让您可以继续。但这通常会引起更多错误。"
# _errorhandling.rpym:617
old "Reload"
new "重新加载"
# _errorhandling.rpym:619
old "Reloads the game from disk, saving and restoring game state if possible."
new "从硬盘重新加载游戏,尝试保存和恢复游戏状态。"
# _errorhandling.rpym:622
old "Console"
new "控制台"
# _errorhandling.rpym:624
old "Opens a console to allow debugging the problem."
new "打开控制台,允许您对问题进行调试。"
# _errorhandling.rpym:637
old "Quits the game."
new "退出游戏。"
# _errorhandling.rpym:658
old "Parsing the script failed."
new "解析脚本失败。"
# _errorhandling.rpym:684
old "Opens the errors.txt file in a text editor."
new "在文本编辑器中打开追溯报告(traceback.txt)。"
# _errorhandling.rpym:688
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "复制解析错误文件(errors.txt)到剪贴板,作为 https://lemmasoft.renai.us/ 等论坛的 BBcode。"
# _errorhandling.rpym:692
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "复制解析错误文件(errors.txt)到剪贴板,作为 Discord 的 Markdown。"
@@ -1,5 +1,5 @@

translate simplified_chinese strings:
translate schinese strings:
# gui.rpy:2
old "## Initialization"
@@ -159,19 +159,19 @@ translate simplified_chinese strings:
# gui.rpy:145
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."
new "## 这些变量以及 gui/button 中的图像文件控制着按钮显示方式。"
# gui.rpy:148
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."
new "## 按钮的宽度和高度像素数。如果为 None,则 Ren'Py 将计算大小。"
# gui.rpy:152
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."
new "## 按钮两侧的边框,按左、上、右、下的顺序排列。"
# gui.rpy:155
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."
new "## 若为 True,则平铺背景图像。若为False,则背景图像将线性缩放。"
# gui.rpy:159
old "## The font used by the button."
@@ -183,23 +183,23 @@ translate simplified_chinese strings:
# gui.rpy:165
old "## The color of button text in various states."
new "## The color of button text in various states."
new "## 按钮文本在各种状态下的颜色。"
# gui.rpy:171
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## 按钮文本的水平对齐方式。(0.0 为左对齐,0.5 为居中显示,1.0 为右对齐)。"
new "## 按钮文本的水平对齐方式。(0.0 为左对齐,0.5 为居中对齐,而 1.0 为右对齐)。"
# 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 "## 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 "## 这些变量将覆盖不同类型按钮的设置。请参阅 gui 文档,了解可用的按钮种类以及每个按钮的用途。"
# gui.rpy:180
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
new "## 这些定制由默认界面使用:"
# 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 "## 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 "## 您还可以通过添加正确命名的变量来添加自己的自定义项。例如,您可以将以下几行取消注释来设置导航按钮的宽度。"
# gui.rpy:202
old "## Choice Buttons"
@@ -209,226 +209,226 @@ translate simplified_chinese strings:
old "## Choice buttons are used in the in-game menus."
new "## 用于游戏内菜单的选项按钮。"
# gui.rpy:217
# gui.rpy:218
old "## File Slot Buttons"
new "## 存档按钮"
# gui.rpy:219
# gui.rpy:220
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."
new "## 存档按钮是一种特殊的按钮。它包含一个缩略图和描述该存档内容的文本。存档使用 gui/button 中的图像文件,就像其他类型的按钮一样。"
# gui.rpy:223
# gui.rpy:224
old "## The save slot button."
new "## 存档位按钮。"
# gui.rpy:233
# 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."
new "## 存档所用缩略图的宽度和高度。"
# gui.rpy:237
# 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."
new "## 存档网格中的列数和行数。"
# gui.rpy:242
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
new "## 定位和间距"
# gui.rpy:244
# 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."
new "## 这些变量控制各种用户界面元素的位置和间距。"
# gui.rpy:247
# 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."
new "## 导航按钮左侧相对于屏幕左侧的位置。"
# gui.rpy:251
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
new "## 快进指示器的垂直位置。"
# gui.rpy:254
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
new "## 通知界面的垂直位置。"
# gui.rpy:257
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
new "## 菜单选项之间的间距。"
# gui.rpy:260
# 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."
new "## 标题菜单和游戏菜单的导航部分中的按钮。"
# gui.rpy:263
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
new "## 控制设置项目之间的间隔量。"
# gui.rpy:266
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
new "## 控制设置按钮之间的间距。"
# gui.rpy:269
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
new "## 存档页面按钮之间的间距。"
# gui.rpy:272
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
new "## 存档按钮之间的间距。"
# gui.rpy:275
# gui.rpy:276
old "## The position of the main menu text."
new "## 标题菜单文本的位置。"
# gui.rpy:279
# gui.rpy:280
old "## Frames"
new "## Frames"
new "## 框架"
# gui.rpy:281
# gui.rpy:282
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."
new "## 这些变量控制在不存在覆盖层或窗口时可以包含用户界面组件的框架的外观。"
# gui.rpy:284
# gui.rpy:285
old "## Generic frames."
new "## Generic frames."
new "## 通用框架。"
# gui.rpy:287
# gui.rpy:288
old "## The frame that is used as part of the confirm screen."
new "## The frame that is used as part of the confirm screen."
new "## 用作确认界面部分的框架。"
# gui.rpy:290
# gui.rpy:291
old "## The frame that is used as part of the skip screen."
new "## The frame that is used as part of the skip screen."
new "## 用作快进界面部分的框架。"
# gui.rpy:293
# gui.rpy:294
old "## The frame that is used as part of the notify screen."
new "## The frame that is used as part of the notify screen."
new "## 用作通知界面部分的框架。"
# gui.rpy:296
# gui.rpy:297
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
new "## 框架背景是否应平铺?"
# gui.rpy:300
# gui.rpy:301
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
new "## 条,滚动条和滑块"
# gui.rpy:302
# gui.rpy:303
old "## These control the look and size of bars, scrollbars, and sliders."
new "## These control the look and size of bars, scrollbars, and sliders."
new "## 这些语句控制条,滚动条和滑块的外观和大小。"
# gui.rpy:304
# gui.rpy:305
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## 默认的GUI仅使用滑块和垂直滚动条。所有其他栏仅在创建者编写的屏幕中使用。"
# gui.rpy:307
# gui.rpy:308
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."
new "## 水平条,滚动条和滑块的高度。垂直条,滚动条和滑块的宽度。"
# gui.rpy:313
# gui.rpy:314
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."
new "## 如果条图应平铺,则为 True。 如果应该线性缩放,则为 False。"
# gui.rpy:318
# gui.rpy:319
old "## Horizontal borders."
new "## Horizontal borders."
new "## 水平边框。"
# gui.rpy:323
# gui.rpy:324
old "## Vertical borders."
new "## Vertical borders."
new "## 垂直边框。"
# gui.rpy:328
# gui.rpy:329
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."
new "## 如何处理 GUI 中不可滚动的滚动条。“hide”隐藏,“None”显示。"
# gui.rpy:333
# gui.rpy:334
old "## History"
new "## 历史"
# gui.rpy:335
# gui.rpy:336
old "## The history screen displays dialogue that the player has already dismissed."
new "## 历史记录屏幕显示玩家已经阅读过的对话。"
# gui.rpy:337
# gui.rpy:338
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## Ren'Py 将保留的对话历史块数。"
# gui.rpy:340
# gui.rpy:341
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## 历史屏幕条目的高度,或设置为“None”以使高度变量自适应。"
# gui.rpy:344
# gui.rpy:345
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## 所指定叙述角色的标签的坐标、宽度和对齐方式。"
# gui.rpy:351
# gui.rpy:352
old "## The position, width, and alignment of the dialogue text."
new "## 对话文本的坐标、宽度和对齐方式。"
# gui.rpy:358
# gui.rpy:359
old "## NVL-Mode"
new "## NVL 模式"
# gui.rpy:360
# gui.rpy:361
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## NVL 模式屏幕显示 NVL 模式的角色所产生的对话。"
# gui.rpy:362
# gui.rpy:363
old "## The borders of the background of the NVL-mode background window."
new "## The borders of the background of the NVL-mode background window."
new "## NVL 模式背景窗口的背景边框。"
# gui.rpy:365
# gui.rpy:366
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 "## 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 "## Ren'Py 所显示的 NVL 模式条目的最大数量。如果要显示更多条目,则最早的条目将被删除。"
# gui.rpy:369
# gui.rpy:370
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."
new "## NVL 模式条目的高度。将此设置为 None 可使条目动态调整高度。"
# gui.rpy:373
# gui.rpy:374
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."
new "## gui.nvl_height None 时,NVL 模式条目之间的间距,以及 NVL 模式条目和 NVL 模式菜单之间的间距。"
# gui.rpy:390
# gui.rpy:391
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.)"
new "## nvl_thought 文本(由 nvl_narrator 字符表示的文本)的位置,宽度和对齐方式。"
# gui.rpy:397
# gui.rpy:398
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
new "## NVL menu_buttons 的位置。"
# gui.rpy:401
# gui.rpy:402
old "## Localization"
new "## 本地化"
# gui.rpy:403
# gui.rpy:404
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 "## 该变量控制允许在何时换行。默认值适用于大多数语言。可用的值请参见 https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui.rpy:411
# gui.rpy:412
old "## Mobile devices"
new "## 移动设备"
# gui.rpy:416
# gui.rpy:417
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## 该变量增加快捷菜单按钮的尺寸来使它们在平板和手机上更容易按到。"
# gui.rpy:422
# gui.rpy:423
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## 该变量更改各个 GUI 元素的尺寸和间距来确保它们在手机上更容易识别。"
# gui.rpy:426
# gui.rpy:427
old "## Font sizes."
new "## 字体大小。"
# gui.rpy:434
# gui.rpy:435
old "## Adjust the location of the textbox."
new "## 调整对话框的位置。"
# gui.rpy:440
# gui.rpy:441
old "## Change the size and spacing of various things."
new "## 更改各元素的尺寸和间距。"
# gui.rpy:453
# gui.rpy:454
old "## File button layout."
new "## 文件按钮布局。"
# gui.rpy:457
# gui.rpy:458
old "## NVL-mode."
new "## NVL 模式。"
@@ -1,4 +1,5 @@
translate simplified_chinese strings:

translate schinese strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
@@ -26,7 +27,7 @@
# 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 "## 决定上面给出的标题是否显示在界面屏幕。设置为 False 来隐藏标题。"
new "## 决定上面给出的标题是否显示在标题界面屏幕。设置为 False 来隐藏标题。"
# options.rpy:26
old "## The version of the game."
@@ -54,7 +55,7 @@
# 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 "## 将以下语句取消注释就可以设置界面播放的背景音乐文件。此文件将在整个游戏中持续播放,直至音乐停止或其他文件开始播放。"
new "## 将以下语句取消注释就可以设置标题界面播放的背景音乐文件。此文件将在整个游戏中持续播放,直至音乐停止或其他文件开始播放。"
# options.rpy:70
old "## Transitions"
@@ -186,16 +187,12 @@
# 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 "## 匹配为文档模式的文件,将在 Mac 应用生成中复制,因此它们同时存在于 app 和 zip 文件中。"
new "## 匹配为文档模式的文件在 Mac 应用生成中重复出现,所以它们同时出现在 app 和 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 "## 在 Mac 上将此设置为包含有您 Apple Developer ID Application 的字符串来启用代码签名。确保将其更改为您自己的,由苹果签发的 ID。"
# options.rpy:209
# options.rpy:203
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 "## 需要一个 Google Play 授权密钥来下载扩展文件并执行应用内购。授权密钥可以在 Google Play 开发者控制台的“服务和 API”页面找到。"
# options.rpy:216
# options.rpy:210
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## 与 itch.io 工程关联的用户名和工程名,以斜杠分隔。"
@@ -1,5 +1,5 @@

translate simplified_chinese strings:
translate schinese strings:
# screens.rpy:9
old "## Styles"
@@ -7,27 +7,27 @@ translate simplified_chinese strings:
# screens.rpy:81
old "## In-game screens"
new "## 游戏内屏幕"
new "## 游戏内界面"
# screens.rpy:85
old "## Say screen"
new "## Say 屏幕"
new "## 对话界面"
# screens.rpy:87
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## Say 屏幕用于向玩家显示对话。它需要两个参数,“who”和“what”,分别是叙述人的名称和所叙述的内容。(如果没有名称,参数“who”可以是“None”。)"
new "## 对话界面用于向玩家显示对话。它需要两个参数,“who”和“what”,分别是叙述人的名称和所叙述的内容。(如果没有名称,参数“who”可以是“None”。)"
# screens.rpy:92
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
new "## 此屏幕必须创建一个 id 为“what”的文本可视控件,因为 Ren'Py 使用它来管理文本显示。它还可以创建 id 为“who”和 id 为“window”的可视控件来应用样式属性。"
new "## 此界面必须创建一个 id 为“what”的文本可视控件,因为 Ren'Py 使用它来管理文本显示。它还可以创建 id 为“who”和 id 为“window”的可视控件来应用样式属性。"
# screens.rpy:96
old "## https://www.renpy.org/doc/html/screen_special.html#say"
new "## https://www.renpy.org/doc/html/screen_special.html#say"
new "## https://www.renpy.cn/doc/screen_special.html#say"
# screens.rpy:114
old "## If there's a side image, display it above the text. Do not display on the phone variant - there's no room."
new "## 如果有侧边图像,会将其显示在文本之上。请不要在手机界面下显示这个,因为没有空间。"
new "## 如果有对话框头像,会将其显示在文本之上。请不要在手机界面下显示这个,因为没有空间。"
# screens.rpy:120
old "## Make the namebox available for styling through the Character object."
@@ -35,39 +35,39 @@ translate simplified_chinese strings:
# screens.rpy:164
old "## Input screen"
new "## 输入屏幕"
new "## 输入界面"
# screens.rpy:166
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## 此屏幕用于显示 renpy.input。“prompt”参数用于传递文本提示。"
new "## 此界面用于显示 renpy.input。“prompt”参数用于传递文本提示。"
# screens.rpy:169
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## 此屏幕必须创建一个 id 为“input”的输入可视控件来接受各种输入参数。"
new "## 此界面必须创建一个 id 为“input”的输入可视控件来接受各种输入参数。"
# screens.rpy:172
old "## https://www.renpy.org/doc/html/screen_special.html#input"
new "## https://www.renpy.org/doc/html/screen_special.html#input"
new "## https://www.renpy.cn/doc/screen_special.html#input"
# screens.rpy:199
old "## Choice screen"
new "## 选择屏幕"
new "## 选择界面"
# screens.rpy:201
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
new "## 此屏幕用于显示由“menu”语句生成的游戏内选项。参数“items”是一个对象列表,每个对象都有标题和操作字段。"
new "## 此界面用于显示由“menu”语句生成的游戏内选项。参数“items”是一个对象列表,每个对象都有标题和操作字段。"
# screens.rpy:205
old "## https://www.renpy.org/doc/html/screen_special.html#choice"
new "## https://www.renpy.org/doc/html/screen_special.html#choice"
new "## https://www.renpy.cn/doc/screen_special.html#choice"
# screens.rpy:215
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## 若为True,菜单内的叙述会使用旁白 (narrator) 角色。否则,叙述会显示为菜单内的文字说明。"
new "## 若为 True,菜单内的叙述会使用旁白角色。若为 False,叙述会显示为菜单内的文字说明。"
# screens.rpy:238
old "## Quick Menu screen"
new "## 快捷菜单屏幕"
new "## 快捷菜单界面"
# screens.rpy:240
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
@@ -75,7 +75,7 @@ translate simplified_chinese strings:
# screens.rpy:245
old "## Ensure this appears on top of other screens."
new "## 确保该菜单出现在其他屏幕之上,"
new "## 确保该菜单出现在其他界面之上,"
# screens.rpy:256
old "Back"
@@ -111,19 +111,19 @@ translate simplified_chinese strings:
# screens.rpy:266
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## 此代码确保只要玩家没有明确隐藏界面,就会在游戏中显示“quick_menu”屏幕。"
new "## 此语句确保只要玩家没有明确隐藏界面,就会在游戏中显示“quick_menu”界面。"
# screens.rpy:284
old "## Main and Game Menu Screens"
new "## 标题和游戏菜单屏幕"
new "## 标题和游戏菜单界面"
# screens.rpy:287
old "## Navigation screen"
new "## 导航屏幕"
new "## 导航界面"
# screens.rpy:289
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## 该屏幕包含在标题菜单和游戏菜单中,并提供导航到其他菜单,以及启动游戏。"
new "## 该界面包含在标题菜单和游戏菜单中,并提供导航到其他菜单,以及启动游戏。"
# screens.rpy:304
old "Start"
@@ -151,521 +151,517 @@ translate simplified_chinese strings:
# screens.rpy:328
old "## Help isn't necessary or relevant to mobile devices."
new "## “帮助”对移动设备来说并非必或相关。"
new "## “帮助”对移动设备来说并非必或相关。"
# screens.rpy:329
old "Help"
new "帮助"
# screens.rpy:331
old "## The quit button is banned on iOS and unnecessary on Android."
new "## “退出”按钮在 iOS 上被禁止使用,在安卓上也不是必需的。"
# screens.rpy:333
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## “退出”按钮在 iOS 上被禁止设置,在安卓和网页上也不是必需的。"
# screens.rpy:332
# screens.rpy:334
old "Quit"
new "退出"
# screens.rpy:346
old "## Main Menu screen"
new "## 标题菜单屏幕"
# screens.rpy:348
old "## Main Menu screen"
new "## 标题菜单界面"
# screens.rpy:350
old "## Used to display the main menu when Ren'Py starts."
new "## 用于在 Ren'Py 启动时显示标题菜单。"
# screens.rpy:350
# screens.rpy:352
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
new "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
new "## https://www.renpy.cn/doc/screen_special.html#main-menu"
# screens.rpy:354
# screens.rpy:356
old "## This ensures that any other menu screen is replaced."
new "## 此代码可确保替换掉任何其他菜单屏幕。"
new "## 此语句可确保替换掉任何其他菜单界面。"
# screens.rpy:361
# screens.rpy:363
old "## This empty frame darkens the main menu."
new "## 此空框可使标题菜单变暗。"
# screens.rpy:365
# screens.rpy:367
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## “use”语句将其他的屏幕包含进此屏幕。标题屏幕的实际内容在导航屏幕中。"
# screens.rpy:408
old "## Game Menu screen"
new "## 游戏菜单屏幕"
new "## “use”语句将其他的界面包含进此界面。标题界面的实际内容在导航界面中。"
# screens.rpy:410
old "## Game Menu screen"
new "## 游戏菜单界面"
# screens.rpy:412
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
new "## 此屏幕列出了游戏菜单的基本共同结构。此屏幕需使用屏幕标题(title调用,并显示背景、标题和导航菜单。"
new "## 此界面列出了游戏菜单的基本共同结构。可使用界面标题调用,并显示背景、标题和导航菜单。"
# screens.rpy:413
# screens.rpy:415
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## “scroll”参数可以是“None”,也可以是“viewport”或“vpgrid”。当此屏幕与一个或多个子菜单同时使用时,这些子菜单将被转移(放置)在其中。"
new "## “scroll”参数可以是“None”,也可以是“viewport”或“vpgrid”。当此界面与一个或多个子菜单同时使用时,这些子菜单将被转移(放置)在其中。"
# screens.rpy:431
# screens.rpy:433
old "## Reserve space for the navigation section."
new "## 导航部分的预留空间。"
# screens.rpy:473
# screens.rpy:475
old "Return"
new "返回"
# screens.rpy:536
old "## About screen"
new "## 关于屏幕"
# screens.rpy:538
old "## About screen"
new "## 关于界面"
# screens.rpy:540
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## 此屏幕提供有关游戏和 Ren'Py 的制作人员和版权信息。"
new "## 此界面提供有关游戏和 Ren'Py 的制作人员和版权信息。"
# screens.rpy:541
# screens.rpy:543
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## 这个屏幕没有什么特别之处,因此它也是如何制作自定义屏幕的一个例子。"
new "## 此界面没有什么特别之处,因此它也是如何制作自定义界面的一个例子。"
# screens.rpy:548
# screens.rpy:550
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”屏幕到此处。子级“vbox”将包含在“game_menu”屏幕的“viewport”内。"
new "## 此“use”语句将包含“game_menu”界面到此处。子级“vbox”将包含在“game_menu”界面的“viewport”内。"
# screens.rpy:558
# screens.rpy:560
old "Version [config.version!t]\n"
new "版本 [config.version!t]\n"
# screens.rpy:560
# screens.rpy:562
old "## gui.about is usually set in options.rpy."
new "## “gui.about”通常在 options.rpy 中设置。"
# screens.rpy:564
# screens.rpy:566
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "基于 {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "引擎:{a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only]\n\n[renpy.license!t]"
# screens.rpy:567
old "## This is redefined in options.rpy to add text to the about screen."
new "## 此变量在 options.rpy 中重新定义,来添加文本到关于屏幕。"
# screens.rpy:577
old "## Load and Save screens"
new "## 读取和保存界面"
# screens.rpy:579
old "## Load and Save screens"
new "## 读取和保存屏幕"
# screens.rpy:581
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## 这些屏幕负责允许玩家保存游戏并将其重新读取。由于它们几乎完全一样,因此它们都是以第三方屏幕“file_slots”来实现的。"
new "## 这些界面负责让玩家保存游戏并能够再次读取。由于它们几乎完全一样,因此它们都是以第三方界面“file_slots”来实现的。"
# screens.rpy:585
# screens.rpy:583
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
new "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
new "## https://www.renpy.cn/doc/screen_special.html#save https://www.renpy.cn/doc/screen_special.html#load"
# screens.rpy:604
# screens.rpy:602
old "Page {}"
new "第 {} 页"
# screens.rpy:604
# screens.rpy:602
old "Automatic saves"
new "自动存档"
# screens.rpy:604
# screens.rpy:602
old "Quick saves"
new "快速存档"
# screens.rpy:610
# screens.rpy:608
old "## This ensures the input will get the enter event before any of the buttons do."
new "## 此代码确保输入控件在任意按钮执行前可以获取“enter”事件。"
new "## 此语句确保输入控件在任意按钮执行前可以获取“enter”事件。"
# screens.rpy:614
# screens.rpy:612
old "## The page name, which can be edited by clicking on a button."
new "## 页面名称,可以通过单击按钮进行编辑。"
# screens.rpy:626
# screens.rpy:624
old "## The grid of file slots."
new "## 存档位网格。"
# screens.rpy:646
# screens.rpy:644
old "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%Y-%m-%d %H:%M"
# screens.rpy:646
# screens.rpy:644
old "empty slot"
new "空存档位"
# screens.rpy:654
# screens.rpy:652
old "## Buttons to access other pages."
new "## 用于访问其他页面的按钮。"
# screens.rpy:663
# screens.rpy:661
old "<"
new "<"
# screens.rpy:666
# screens.rpy:664
old "{#auto_page}A"
new "{#auto_page}A"
# screens.rpy:669
# screens.rpy:667
old "{#quick_page}Q"
new "{#quick_page}Q"
# screens.rpy:671
# screens.rpy:669
old "## range(1, 10) gives the numbers from 1 to 9."
new "## “range(1, 10)”给出1到9之间的数字。"
new "## “range(1, 10)”给出 1 到 9 之间的数字。"
# screens.rpy:675
# screens.rpy:673
old ">"
new ">"
# screens.rpy:710
# screens.rpy:708
old "## Preferences screen"
new "## 设置屏幕"
new "## 设置界面"
# screens.rpy:712
# screens.rpy:710
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## 设置屏幕允许玩家配置游戏以更好地适应自己。"
new "## 设置界面允许玩家配置游戏以更好地适应自己的习惯。"
# screens.rpy:715
# screens.rpy:713
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
new "## https://www.renpy.org/doc/html/screen_special.html#preferences"
new "## https://www.renpy.cn/doc/screen_special.html#preferences"
# screens.rpy:732
# screens.rpy:730
old "Display"
new "显示"
# screens.rpy:733
# screens.rpy:731
old "Window"
new "窗口"
# screens.rpy:734
# screens.rpy:732
old "Fullscreen"
new "全屏"
# screens.rpy:738
# screens.rpy:736
old "Rollback Side"
new "回退控制区"
new "回退操作区"
# screens.rpy:739
# screens.rpy:737
old "Disable"
new "禁用"
# screens.rpy:740
# screens.rpy:738
old "Left"
new "左侧"
new "屏幕左侧"
# screens.rpy:741
# screens.rpy:739
old "Right"
new "右侧"
new "屏幕右侧"
# screens.rpy:746
# screens.rpy:744
old "Unseen Text"
new "未读文本"
# screens.rpy:747
# screens.rpy:745
old "After Choices"
new "选项后继续"
# screens.rpy:748
# screens.rpy:746
old "Transitions"
new "忽略转场"
# screens.rpy:750
# screens.rpy:748
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## 可以在此处添加类型为“radio_pref”或“check_pref”的其他“vbox”,以添加其他创建者定义的首选项设置。"
# screens.rpy:761
# screens.rpy:759
old "Text Speed"
new "文字速度"
# screens.rpy:765
# screens.rpy:763
old "Auto-Forward Time"
new "自动前进时间"
# screens.rpy:772
# screens.rpy:770
old "Music Volume"
new "音乐音量"
# screens.rpy:779
# screens.rpy:777
old "Sound Volume"
new "音效音量"
# screens.rpy:785
# screens.rpy:783
old "Test"
new "测试"
# screens.rpy:789
# screens.rpy:787
old "Voice Volume"
new "语音音量"
# screens.rpy:800
# screens.rpy:798
old "Mute All"
new "全部静音"
# screens.rpy:876
# screens.rpy:874
old "## History screen"
new "## 历史屏幕"
new "## 历史界面"
# screens.rpy:878
# screens.rpy:876
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## 这是一个向玩家显示对话历史的屏幕。虽然此屏幕没有任何特殊之处,但它必须访问储存在“_history_list”中的对话历史记录。"
new "## 这是一个向玩家显示对话历史的界面。虽然此界面没有任何特殊之处,但它必须访问储存在“_history_list”中的对话历史记录。"
# screens.rpy:882
# screens.rpy:880
old "## https://www.renpy.org/doc/html/history.html"
new "## https://www.renpy.org/doc/html/history.html"
new "## https://www.renpy.cn/doc/history.html"
# screens.rpy:888
# screens.rpy:886
old "## Avoid predicting this screen, as it can be very large."
new "## 避免预缓存此屏幕,因为它可能非常大。"
new "## 避免预缓存此界面,因为它可能非常大。"
# screens.rpy:899
# screens.rpy:897
old "## This lays things out properly if history_height is None."
new "## 此代码可确保如果“history_height”为“None”的话仍可正常显示条目。"
new "## 此语句可确保如果“history_height”为“None”的话仍可正常显示条目。"
# screens.rpy:909
# screens.rpy:907
old "## Take the color of the who text from the Character, if set."
new "## 若角色颜色已设置,则从“Character”对象中读取颜色到叙述人文本中。"
# screens.rpy:918
# screens.rpy:916
old "The dialogue history is empty."
new "对话历史记录为空。"
new "尚无对话历史记录。"
# screens.rpy:921
# screens.rpy:919
old "## This determines what tags are allowed to be displayed on the history screen."
new "## 此代码决定了允许在历史记录屏幕上显示哪些标签。"
new "## 此语句决定了允许在历史记录界面上显示哪些标签。"
# screens.rpy:966
old "## Help screen"
new "## 帮助界面"
# screens.rpy:968
old "## Help screen"
new "## 帮助屏幕"
# screens.rpy:970
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## 提供有关键盘和鼠标映射信息的屏幕。它使用其它屏幕(“keyboard_help”,“mouse_help“和”gamepad_help“)来显示实际的帮助内容。"
new "## 提供有关键盘和鼠标映射信息的界面。它使用其它界面(“keyboard_help”,“mouse_help“和”gamepad_help“)来显示实际的帮助内容。"
# screens.rpy:989
# screens.rpy:987
old "Keyboard"
new "键盘"
# screens.rpy:990
# screens.rpy:988
old "Mouse"
new "鼠标"
# screens.rpy:993
# screens.rpy:991
old "Gamepad"
new "手柄"
# screens.rpy:1006
# screens.rpy:1004
old "Enter"
new "回车"
# screens.rpy:1007
# screens.rpy:1005
old "Advances dialogue and activates the interface."
new "推进对话并激活界面。"
# screens.rpy:1010
# screens.rpy:1008
old "Space"
new "空格"
# screens.rpy:1011
# screens.rpy:1009
old "Advances dialogue without selecting choices."
new "推进对话但不选择选项。"
new "推进对话但不激活选项。"
# screens.rpy:1014
# screens.rpy:1012
old "Arrow Keys"
new "方向键"
# screens.rpy:1015
# screens.rpy:1013
old "Navigate the interface."
new "导航界面。"
# screens.rpy:1018
# screens.rpy:1016
old "Escape"
new "Esc"
# screens.rpy:1019
# screens.rpy:1017
old "Accesses the game menu."
new "访问游戏菜单。"
# screens.rpy:1022
# screens.rpy:1020
old "Ctrl"
new "Ctrl"
# screens.rpy:1023
# screens.rpy:1021
old "Skips dialogue while held down."
new "按住时快进对话。"
# screens.rpy:1026
# screens.rpy:1024
old "Tab"
new "Tab"
# screens.rpy:1027
# screens.rpy:1025
old "Toggles dialogue skipping."
new "切换对话快进。"
# screens.rpy:1030
# screens.rpy:1028
old "Page Up"
new "Page Up"
# screens.rpy:1031
# screens.rpy:1029
old "Rolls back to earlier dialogue."
new "回退至先前的对话。"
# screens.rpy:1034
# screens.rpy:1032
old "Page Down"
new "Page Down"
# screens.rpy:1035
# screens.rpy:1033
old "Rolls forward to later dialogue."
new "向前至之后的对话。"
# screens.rpy:1039
# screens.rpy:1037
old "Hides the user interface."
new "隐藏用户界面。"
# screens.rpy:1043
# screens.rpy:1041
old "Takes a screenshot."
new "截图。"
# screens.rpy:1047
# screens.rpy:1045
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "切换辅助{a=https://www.renpy.org/l/voicing}自动朗读{/a}。"
# screens.rpy:1053
# screens.rpy:1051
old "Left Click"
new "左键点击"
# screens.rpy:1057
# screens.rpy:1055
old "Middle Click"
new "中键点击"
# screens.rpy:1061
# screens.rpy:1059
old "Right Click"
new "右键点击"
# screens.rpy:1065
# screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "鼠标滚轮上\n点击回退控制区"
new "鼠标滚轮上\n点击回退操作区"
# screens.rpy:1069
# screens.rpy:1067
old "Mouse Wheel Down"
new "鼠标滚轮下"
# screens.rpy:1076
# screens.rpy:1074
old "Right Trigger\nA/Bottom Button"
new "右扳机键\nA/底键"
# screens.rpy:1080
# screens.rpy:1078
old "Left Trigger\nLeft Shoulder"
new "左扳机键\n左肩键"
# screens.rpy:1084
# screens.rpy:1082
old "Right Shoulder"
new "右肩键"
# screens.rpy:1089
# screens.rpy:1087
old "D-Pad, Sticks"
new "十字键,摇杆"
# screens.rpy:1093
# screens.rpy:1091
old "Start, Guide"
new "开始,向导"
# screens.rpy:1097
# screens.rpy:1095
old "Y/Top Button"
new "Y/顶键"
# screens.rpy:1100
# screens.rpy:1098
old "Calibrate"
new "校准"
# screens.rpy:1128
# screens.rpy:1126
old "## Additional screens"
new "## 其他屏幕"
new "## 其他界面"
# screens.rpy:1130
old "## Confirm screen"
new "## 确认界面"
# screens.rpy:1132
old "## Confirm screen"
new "## 确认屏幕"
# screens.rpy:1134
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## 当 Ren'Py 需要询问玩家是非问题时,会调用确认屏幕。"
new "## 当 Ren'Py 需要询问玩家有关确定或取消的问题时,会调用确认界面。"
# screens.rpy:1137
# screens.rpy:1135
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
new "## https://www.renpy.org/doc/html/screen_special.html#confirm"
new "## https://www.renpy.cn/doc/screen_special.html#confirm"
# screens.rpy:1141
# screens.rpy:1139
old "## Ensure other screens do not get input while this screen is displayed."
new "## 显示此屏幕时,确保其他屏幕无法输入。"
new "## 显示此界面时,确保其他界面无法输入。"
# screens.rpy:1165
# screens.rpy:1163
old "Yes"
new "确定"
# screens.rpy:1166
# screens.rpy:1164
old "No"
new "取消"
# screens.rpy:1168
# screens.rpy:1166
old "## Right-click and escape answer \"no\"."
new "## 右键点击退出并答复“no”(取消)。"
# screens.rpy:1195
# screens.rpy:1193
old "## Skip indicator screen"
new "## 快进指示屏幕"
new "## 快进指示界面"
# screens.rpy:1197
# screens.rpy:1195
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## “skip_indicator”屏幕用于指示快进正在进行中。"
new "## “skip_indicator”界面用于指示快进正在进行中。"
# screens.rpy:1200
# screens.rpy:1198
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
new "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
new "## https://www.renpy.cn/doc/screen_special.html#skip-indicator"
# screens.rpy:1212
# screens.rpy:1210
old "Skipping"
new "正在快进"
# screens.rpy:1219
# screens.rpy:1217
old "## This transform is used to blink the arrows one after another."
new "## 此变换用于一个接一个地闪烁箭头。"
# screens.rpy:1246
# screens.rpy:1244
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
new "## 我们必须使用包含“BLACK RIGHT-POINTING SMALL TRIANGLE”字形的字体。"
# screens.rpy:1251
# screens.rpy:1249
old "## Notify screen"
new "## 通知屏幕"
new "## 通知界面"
# screens.rpy:1253
# screens.rpy:1251
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## 通知屏幕用于向玩家显示消息。(例如,当游戏快速保存或已截屏时。)"
new "## 通知界面用于向玩家显示消息。(例如,当游戏快速保存或已截屏时。)"
# screens.rpy:1256
# screens.rpy:1254
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
new "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
new "## https://www.renpy.cn/doc/screen_special.html#notify-screen"
# screens.rpy:1288
old "## NVL screen"
new "## NVL 模式界面"
# screens.rpy:1290
old "## NVL screen"
new "## NVL 模式屏幕"
old "## This screen is used for NVL-mode dialogue and menus."
new "## 此界面用于 NVL 模式的对话和菜单。"
# screens.rpy:1292
old "## This screen is used for NVL-mode dialogue and menus."
new "## 此屏幕用于 NVL 模式的对话和菜单。"
# screens.rpy:1294
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.cn/doc/screen_special.html#nvl"
# screens.rpy:1305
# screens.rpy:1303
old "## Displays dialogue in either a vpgrid or the vbox."
new "## 在“vpgrid”或“vbox”中显示对话框。"
# screens.rpy:1318
# screens.rpy:1316
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## 如果给定,则显示“menu”。 如果“config.narrator_menu”设置为“True”,则“menu”可能显示不正确,如前述。"
# screens.rpy:1348
# screens.rpy:1346
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## 此代码控制一次可以显示的最大 NVL 模式条目。"
new "## 此语句控制一次可以显示的 NVL 模式条目的最大数量。"
# screens.rpy:1410
# screens.rpy:1408
old "## Mobile Variants"
new "## 移动设备界面"
# screens.rpy:1417
# screens.rpy:1415
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## 由于鼠标可能不存在,我们将快捷菜单替换为更容易触摸且按钮更少更大的版本。"
+2
View File
@@ -0,0 +1,2 @@
init python:
translate_font("schinese", "SourceHanSansLite.ttf")
@@ -1,66 +0,0 @@

translate simplified_chinese strings:
# 00console.rpy:255
old "Press <esc> to exit console. Type help for help.\n"
new "按 Esc 来退出控制台。输入 help 来查看帮助。\n"
# 00console.rpy:259
old "Ren'Py script enabled."
new "Ren'Py 脚本已开启。"
# 00console.rpy:261
old "Ren'Py script disabled."
new "Ren'Py 脚本已关闭。"
# 00console.rpy:496
old "help: show this help"
new "help:显示此帮助信息"
# 00console.rpy:501
old "commands:\n"
new "命令:\n"
# 00console.rpy:511
old " <renpy script statement>: run the statement\n"
new " <renpy 脚本语句>:运行此语句\n"
# 00console.rpy:513
old " <python expression or statement>: run the expression or statement"
new " <python 表达式或语句>:运行此表达式或语句"
# 00console.rpy:521
old "clear: clear the console history"
new "clear:清除控制台历史记录"
# 00console.rpy:525
old "exit: exit the console"
new "exit:退出控制台"
# 00console.rpy:533
old "load <slot>: loads the game from slot"
new "load <档位>:读取该档位的存档"
# 00console.rpy:546
old "save <slot>: saves the game in slot"
new "save <档位>:存储存档到该档位"
# 00console.rpy:557
old "reload: reloads the game, refreshing the scripts"
new "reload:重新加载游戏,并重新整理脚本"
# 00console.rpy:565
old "watch <expression>: watch a python expression"
new "watch <表达式>:监视该 python 表达式"
# 00console.rpy:591
old "unwatch <expression>: stop watching an expression"
new "unwatch <表达式>:停止监视该表达式"
# 00console.rpy:622
old "unwatchall: stop watching all expressions"
new "unwatchall:停止监视所有表达式"
# 00console.rpy:639
old "jump <label>: jumps to label"
new "jump <标签>:跳转到此标签"
@@ -1,214 +0,0 @@

translate simplified_chinese strings:
# 00gltest.rpy:70
old "Renderer"
new "渲染器"
# 00gltest.rpy:74
old "Automatically Choose"
new "自动选择"
# 00gltest.rpy:79
old "Force Angle/DirectX Renderer"
new "强制 Angle/DirectX 渲染"
# 00gltest.rpy:83
old "Force OpenGL Renderer"
new "强制 OpenGL 渲染"
# 00gltest.rpy:87
old "Force Software Renderer"
new "强制软件渲染"
# 00gltest.rpy:93
old "NPOT"
new "NPOT"
# 00gltest.rpy:97
old "Enable"
new "启用"
# 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 "画面割裂"
# 00gltest.rpy:179
old "Changes will take effect the next time this program is run."
new "更改将会在下次启动程序时生效。"
# 00gltest.rpy:213
old "Performance Warning"
new "性能影响警告"
# 00gltest.rpy:218
old "This computer is using software rendering."
new "此计算机正在使用软件渲染。"
# 00gltest.rpy:220
old "This computer is not using shaders."
new "此计算机没有使用着色器。"
# 00gltest.rpy:222
old "This computer is displaying graphics slowly."
new "此计算机图形显示缓慢。"
# 00gltest.rpy:224
old "This computer has a problem displaying graphics: [problem]."
new "此计算机显示图形时出错:[problem]"
# 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 "目前的图形驱动程序版本可能过旧或未正确运行。这会导致图形显示缓慢或者错误。更新 DirectX 可能会解决该问题。"
# 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 "目前图形驱动程序版本可能过旧或未正确运行。这会导致图形显示缓慢或者错误。"
# 00gltest.rpy:236
old "Update DirectX"
new "更新 DirectX"
# 00gltest.rpy:242
old "Continue, Show this warning again"
new "继续,下次继续显示该警告"
# 00gltest.rpy:246
old "Continue, Don't show warning again"
new "继续,不再显示该警告"
# 00gltest.rpy:264
old "Updating DirectX."
new "正在更新 DirectX。"
# 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 "DirectX 在线安装已启动,它将会最小化至任务栏。请按照说明安装 DirectX。"
# 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}警告:{/b}微软的 DirectX 在线安装程序会默认安装 Bing 浏览器工具栏。如果您不需要安装这个工具栏,请取消勾选对应选项。"
# 00gltest.rpy:276
old "When setup finishes, please click below to restart this program."
new "当安装完成后请点击下方来重新启动程序。"
# 00gltest.rpy:278
old "Restart"
new "重新启动"
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "选择手柄来校准"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "无可用手柄"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "正在校准 [name][i]/[total]"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "按下或移动 [control!r] [kind]。"
# 00gamepad.rpy:66
old "Skip (A)"
new "跳过(A"
# 00gamepad.rpy:69
old "Back (B)"
new "返回(B"
# _errorhandling.rpym:529
old "Open"
new "打开"
# _errorhandling.rpym:531
old "Opens the traceback.txt file in a text editor."
new "在文本编辑器中打开追溯报告(traceback.txt)。"
# _errorhandling.rpym:533
old "Copy"
new "复制"
# _errorhandling.rpym:535
old "Copies the traceback.txt file to the clipboard."
new "复制追溯报告(traceback.txt)的内容到剪贴板。"
# _errorhandling.rpym:562
old "An exception has occurred."
new "发生异常。"
# _errorhandling.rpym:582
old "Rollback"
new "回滚"
# _errorhandling.rpym:584
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "尝试回滚到先前的状态,使您可以存档或者选择不同选项。"
# _errorhandling.rpym:587
old "Ignore"
new "忽略"
# _errorhandling.rpym:591
old "Ignores the exception, allowing you to continue."
new "忽略异常,让您可以继续。"
# _errorhandling.rpym:593
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "忽略异常,让您可以继续。但这通常会引起更多错误。"
# _errorhandling.rpym:597
old "Reload"
new "重新加载"
# _errorhandling.rpym:599
old "Reloads the game from disk, saving and restoring game state if possible."
new "从硬盘重新加载游戏,尝试保存和恢复游戏状态。"
# _errorhandling.rpym:602
old "Console"
new "控制台"
# _errorhandling.rpym:604
old "Opens a console to allow debugging the problem."
new "打开控制台,允许您对问题进行调试。"
# _errorhandling.rpym:614
old "Quits the game."
new "退出游戏。"
# _errorhandling.rpym:638
old "Parsing the script failed."
new "解析脚本失败。"
# _errorhandling.rpym:664
old "Opens the errors.txt file in a text editor."
new "在文本编辑器中打开解析错误文件(errors.txt)。"
# _errorhandling.rpym:668
old "Copies the errors.txt file to the clipboard."
new "复制解析错误文件(errors.txt)到剪贴板。"
@@ -1 +0,0 @@
# This file intentionally left blank.
@@ -1,5 +0,0 @@
init python:
translate_font("simplified_chinese", "SourceHanSans-Light-Lite.ttf")
translate simplified_chinese python:
gui.FONT_SCALE = .9
+12
View File
@@ -738,3 +738,15 @@ translate spanish strings:
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "Las opciones en este menú están destinadas a mejorar la accesibilidad. Es posible que no funcionen con todos los juegos, y algunas combinaciones de opciones pueden hacer que el juego no se pueda jugar. Esto no es un problema con el juego o el motor. Para obtener los mejores resultados al cambiar las fuentes, intente mantener el tamaño del texto igual al original."
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "Caída de Volumen de Voz Automática"
# renpy/common/00preferences.rpy:384
old "self voicing volume drop"
new "caída de volumen de voz automática"
# renpy/common/00preferences.rpy:464
old "system cursor"
new "cursor del sistema"
+11
View File
@@ -196,3 +196,14 @@
old "long: Print the full representation of objects on the console."
new "long: imprime la representación completa de los objetos en la consola."
# renpy/common/00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "watch <expression>: observa una expresión de Python\n watch short: hace que la representación de las expresiones rastreadas sea corta (predeterminado)\n watch long: hace que la representación de las expresiones rastreadas sea corta"
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: habilita el escape de símbolos Unicode en cadenas Unicode."
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: Desactiva el escape de símbolos Unicode en cadenas Unicode y lo imprime como está (predeterminado)."
+41 -2
View File
@@ -129,8 +129,8 @@
new "Calibrando [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Pulsa o mueve: [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Pulsa o mueve: [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
@@ -236,3 +236,42 @@
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "Copia el archivo errors.txt al portapapeles como Markdown para Discord."
# renpy/common/00gltest.rpy:77
old "Force ANGLE Renderer"
new "Force renderizador ANGLE"
# renpy/common/00gltest.rpy:81
old "Force GL Renderer"
new "Force renderizador GL"
# renpy/common/00gltest.rpy:85
old "Force GLES Renderer"
new "Force renderizador GLES"
# renpy/common/00gltest.rpy:90
old "Force ANGLE2 Renderer"
new "Force renderizador ANGLE2"
# renpy/common/00gltest.rpy:94
old "Force GL2 Renderer"
new "Force renderizador GL2"
# renpy/common/00gltest.rpy:98
old "Force GLES2 Renderer"
new "Force renderizador GLES2"
# renpy/common/00gltest.rpy:218
old "This game requires use of GL2 that can't be initialised."
new "Este juego requiere el uso de GL2 que no se puede inicializar."
# renpy/common/00gltest.rpy:229
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "Puede encontrar más detalles sobre cómo solucionar este problema en la {a=[url]} documentación {/a}."
# renpy/common/00gltest.rpy:246
old "Change render options"
new "Cambiar las opciones de renderizado"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Presiona o mueve el '[control!s]' [kind]."
+87 -6
View File
@@ -310,7 +310,7 @@
# distribute_gui.rpy:194
old "Add from clauses to calls, once"
new "Añadir desde cláusulas a las llamadas, una vez"
new "Añadir cláusulas 'from' a 'calls', una vez"
# distribute_gui.rpy:195
old "Refresh"
@@ -334,7 +334,7 @@
# distribute_gui.rpy:241
old "Add from clauses to calls"
new "Añadir cláusulas 'from' a las llamadas"
new "Añadir cláusulas 'from' a 'calls'"
# distribute_gui.rpy:242
old "Force Recompile"
@@ -1408,7 +1408,7 @@ translate spanish strings:
# game/androidstrings.rpy:38
old "Which app store would you like to support in-app purchasing through?"
new "¿En qué tienda de aplicaciones te gustaría soporte paracompras desde la aplicación?"
new "¿En qué tienda de aplicaciones te gustaría soporte para compras desde la aplicación?"
# game/androidstrings.rpy:39
old "Google Play."
@@ -1520,11 +1520,11 @@ translate spanish strings:
# game/androidstrings.rpy:66
old "I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?"
new "Puedo crear una clave de firma de la aplicación para usted. Firmar una aplicación con esta clave le permite ubicarla en Android Market y otras tiendas de aplicaciones. \ N \ n¿Desea crear una clave?"
new "Puedo crear una clave de firma de la aplicación para ti. Firmar una aplicación con esta clave le permite ubicarla en Android Market y otras tiendas de aplicaciones.\n\n¿Desea crear una clave?"
# game/androidstrings.rpy:67
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\n\\You also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Crearé la clave en el archivo android.keystore.\n\nTienes que hacer una copia de seguridad de este archivo. Si lo pierdes, no podrás actualizar tu aplicación.\n\n\\También debes mantener la clave segura. Si la gente malvada obtiene este archivo, podrían crear versiones falsas de su aplicación y, posiblemente, robar los datos de sus usuarios.\n\n¿Harás una copia de seguridad de android.keystore y la mantendrás en un lugar seguro?"
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Crearé la clave en el archivo android.keystore.\n\nTienes que hacer una copia de seguridad de este archivo. Si lo pierdes, no podrás actualizar tu aplicación.\n\nTambién debes mantener la clave segura. Si la gente malvada obtiene este archivo, podrían crear versiones falsas de su aplicación y, posiblemente, robar los datos de sus usuarios.\n\n¿Harás una copia de seguridad de android.keystore y la mantendrás en un lugar seguro?"
# game/androidstrings.rpy:68
old "Please enter your name or the name of your organization."
@@ -1650,3 +1650,84 @@ translate spanish strings:
old "Open build directory"
new "Abrir directorio de construcción"
# game/front_page.rpy:198
old "audio"
new "audio"
# game/androidstrings.rpy:47
old "Do you want to automatically update the Java source code?"
new "¿Quiere actualizar automáticamente el código fuente de Java?"
# game/choose_directory.rpy:93
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Ren'Py no pudo ejecutar Python con tkinter para elegir el directorio. Instale el paquete python3-tk o tkinter."
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "No se pudo instalar [name!t], ya que no se encontró un archivo que coincida con [zipglob] en el directorio del SDK de Ren'Py."
# game/install.rpy:76
old "Successfully installed [name!t]."
new "[name!t] se instaló correctamente."
# game/install.rpy:104
old "Install Libraries"
new "Instalar bibliotecas"
# game/install.rpy:119
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "Esta pantalla le permite instalar bibliotecas que no se pueden distribuir con Ren'Py. Algunas de estas bibliotecas pueden requerir que acepte una licencia de terceros antes de ser utilizadas o distribuidas."
# game/install.rpy:134
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} agrega soporte para mostrar modelos Live2D. Coloque CubismSdkForNative-4-{i}version{/i}.zip en el directorio Ren'Py SDK y luego haga clic en Instalar. La distribución de un juego con Live2D requiere que acepte una licencia de Live2D, Inc."
# game/install.rpy:138
old "Open Ren'Py SDK Directory"
new "Abrir el directorio del SDK de Ren'Py"
# game/preferences.rpy:138
old "Install libraries"
new "Instalar bibliotecas"
# game/preferences.rpy:140
old "Reset window size"
new "Restablecer el tamaño de la ventana"
# game/web.rpy:242
old "Preparing progressive download"
new "Preparando descarga progresiva"
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Las imágenes y las músicas se pueden descargar mientras juega. Se creará un archivo 'progress_download.txt' para que pueda configurar este comportamiento."
# game/install.rpy:144
old "Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support."
new "Live2D en Ren'Py no tiene soporte en Web, Android x86_64 (incluidos emuladores y Chrome OS) y debe agregarse a los proyectos de iOS manualmente. Live2D debe reinstalarse después de actualizar Ren'Py o instalar el soporte de Android."
# game/install.rpy:131
old "Install Live2D Cubism SDK for Native"
new "Instalar Live2D Cubism SDK for Native"
# game/install.rpy:151
old "Install Steam Support"
new "Instalar el Soporte de Steam"
# game/install.rpy:160
old "Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}."
new "Antes de instalar el soporte de Steam, asegúrate de ser un {a=https://partner.steamgames.com/}socio de Steam{/a}.."
# game/install.rpy:172
old "Steam support has already been installed."
new "El soporte de Steam ya está instalado."
# game/androidstrings.rpy:21
old "The universal version works everywhere but is larger."
new "La versión universal funciona en todas partes pero es más grande."
# game/androidstrings.rpy:45
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
new "Es posible que la instalación automática de APK de expansión {a=https://issuetracker.google.com/issues/160942333} no funcione en Android 11 {/a}."

Some files were not shown because too many files have changed in this diff Show More