Compare commits

...

1064 Commits

Author SHA1 Message Date
Tom Rothamel 26dac5d067 Bump versions. 2021-10-08 08:57:30 -04:00
Tom Rothamel cbcc517294 Revert "gl2: Require GL 2.1 again."
This reverts commit 73713248bc.

Problem was solved with a reboot.
2021-10-06 19:58:41 -04:00
Tom Rothamel 73713248bc gl2: Require GL 2.1 again.
An attempt to fix a problem where many GL functions were missing.
2021-10-06 19:32:53 -04:00
Tom Rothamel 1d76c599fe Print the screen size on mobile. 2021-10-06 01:27:22 -04:00
Tom Rothamel 1bd115d97f Create directories when installing files. 2021-10-05 18:29:11 -04:00
Tom Rothamel 8a4471b440 Add credit. 2021-10-04 19:26:56 -04:00
Tom Rothamel 3946a7d733 Merge pull request #3075 from multimokia/FixScopeDel
Fix scope deletion in screen.py
2021-10-04 19:25:58 -04:00
Tom Rothamel f671520c8d Include the final CTC when laying out text.
This will help prevent strangness caused by text changing size
when the last block is shown.

Fixes #3073.
2021-10-04 19:21:43 -04:00
multimokia f830206df2 no except 2021-10-04 13:18:24 -04:00
multimokia 2653797d82 make other scope pops safe 2021-10-04 12:45:24 -04:00
multimokia 8ed9e07ab6 remove error suppression, safe dict rm, log 2021-10-04 11:56:40 -04:00
Tom Rothamel 6eb20a4422 Give the render (and not displayable) to blit in DynamicDisplayable.
Fixes #3070.
2021-10-04 10:47:44 -04:00
Tom Rothamel c24dc05329 Try to restore gl2 compatibility with gl 2.0 + EXT_framebuffer_object. 2021-10-03 23:22:12 -04:00
Tom Rothamel e435b636ba Doc: Changelog and keywords. 2021-10-02 15:18:11 -04:00
Tom Rothamel 0a536cd522 Merge pull request #3062 from Andykl/bar-released-action
Add `released` action to Bar
2021-10-02 14:48:04 -04:00
Tom Rothamel 5b0a55239c Merge pull request #3067 from Gouvernathor/patch-3
Patch doc
2021-10-02 14:47:23 -04:00
Tom Rothamel 071a6fb715 Make Context.music always a dict.
There wasn't much of a point in making it a RevertableDict, as
far as I can tell - since it's not reachable from a root, it should
never actually participate in rollback.

Fixes #3064.
2021-10-02 14:45:07 -04:00
Tom Rothamel b51ef49536 Avoid allocating audio channels that won't be used. 2021-10-02 14:41:57 -04:00
Tom Rothamel f0f05873ed Quit audio when reloading Ren'Py.
Fixes #3065.

This fixes #3065, where a channel could be assigned a different
number, and remain playing after a reload.
2021-10-02 14:19:02 -04:00
Tom Rothamel 1ab3be2101 DynamicDisplayable should create a Render.
This brings it more inline with the rest of Ren'Py, where displayables
create Renders rather than reusing child renders.
2021-10-02 14:15:50 -04:00
Gouvernathor a5c2fc40b1 Document key statement taking key lists
fix #3066
2021-10-02 19:40:10 +02:00
Tom Rothamel 47cea86c88 Some changes to DynamicDisplayable.
* It now only changes its child if the raw value is different.
* Transform state is propagated.
* Documentation.
2021-10-01 22:03:52 -04:00
Tom Rothamel 89f01113e9 Revert "Fix potential rollback problem"
This reverts commit 68cbf3d87d.

I don't believe this is right - when rollback happens, the context
will be replaced by an older copy of the context. So there's no
reason to rollback this dict.
2021-10-01 08:38:15 -04:00
Tom Rothamel dd29c7317c Limit error handling text to 401 lines.
Fixes #3060.
2021-10-01 08:37:14 -04:00
Andy_kl c8131e04e3 Add released action to Bar 2021-09-30 20:22:34 +02:00
Andy_kl 68cbf3d87d Fix potential rollback problem 2021-09-30 17:10:39 +02:00
Tom Rothamel 5295de43fd Mark traceback.txt as readable. 2021-09-30 01:04:29 -04:00
Tom Rothamel 1b2b319f28 Document how to add files to Android.
Fixes #3058.
2021-09-30 01:01:06 -04:00
Tom Rothamel 7993865619 Document the android permissions change. 2021-09-29 23:12:29 -04:00
Tom Rothamel 578e14471e Explicitly manage the permissions of files on Androd.
This lets the player access their files to move them to other systems.
2021-09-29 23:03:41 -04:00
Tom Rothamel 167322e45d Improve renpy.memory.find_parents.
Mostly by avoiding creating a closure that would show up when
searching for parents.
2021-09-28 02:12:20 -04:00
Tom Rothamel 372d6d026e render: Break cycles in kill_cache.
This ensures that the reference counting gc can reclaim
renders quickly. While the main motivation is to make sure
textures are collected before the texture loader is reset,
this should also prevent GC pauses.
2021-09-28 02:02:12 -04:00
Tom Rothamel 6453f2ca0a gl2: Remove cycle between uniform and program. 2021-09-27 21:37:50 -04:00
Tom Rothamel bb9a6651ad Merge pull request #3052 from Andykl/fix-persistent
Do not unpickle persistent just after the save
2021-09-27 19:33:40 -04:00
Tom Rothamel 2327421152 Changelog the fix to the black screenshot issue. 2021-09-27 19:32:30 -04:00
Tom Rothamel 5b5127627b gl2: Respect the flip parameter to draw_screen.
This is an attempt to fix #3009, and it doesn't look like it
could hurt.
2021-09-27 00:33:04 -04:00
Tom Rothamel 313fe391dd Update changelog. 2021-09-26 11:45:29 -04:00
Tom Rothamel a2b83bafdb Update credits.
This also merges in the credits for renpy-build.
2021-09-26 11:27:01 -04:00
Tom Rothamel 53d3b26a2b Merge pull request #3055 from Neyunse/master
Added TogglePause on MusicRoom
2021-09-26 03:49:45 -04:00
Tom Rothamel 19378110cb ios: Launch the correct .xcodeproj file. 2021-09-26 02:24:18 -04:00
Neyunse 91e427b9b9 Fixed 00musicroom.rpy 2021-09-25 22:15:55 -03:00
Neyunse 7904a2819a Merge branch 'renpy:master' into master 2021-09-25 22:12:59 -03:00
Neyunse 3c1e0067c6 Undo Update 2021-09-25 22:12:47 -03:00
Tom Rothamel 5bfecbf921 Do not copy permissions when making a directory package.
This makes it possible to build ios over the network.
2021-09-25 20:10:35 -04:00
Neyunse bc846c8dd5 Update 00musicroom.rpy 2021-09-25 21:06:16 -03:00
Tom Rothamel ad8ff33bd4 Add MusicRoom.TogglePause.
Fixes #3054.
2021-09-25 18:34:00 -04:00
Tom Rothamel a9fc8109f6 Handle cropping to 0-size polygons properly.
Fixes #3057.
2021-09-25 15:53:52 -04:00
Tom Rothamel 6a4caa1c8c Visit all displayables when first shown.
Fixes #3056, by using visit as a lightweight replacement to
the removed _show that doesn't require time or execution.
2021-09-25 03:15:42 -04:00
Neyunse 4aae4f87f2 Added TogglePause
If music is currently playing it will pause, otherwise it will resume from where it stopped.
In case a music has already finished, the queue will play the music again from the beginning the next time it is called.
If the music is playing the button will receive the selected status and when paused it will be removed.

Note:
__MusicRoomTogglePause is based on __MusicRoomStop, because in some tests in my project, if __MusicRoomTogglePause was the same as __MusicRoomTogglePlay it caused some data about the music being played added with add(action=[SetVariable("jb_title", title)]), such as the music name, artist and the music image, not to be displayed.
2021-09-24 20:44:47 -03:00
Tom Rothamel f2868b0228 Hide now keeps a displayable in the current store.
Fixes #3054, where hide could reevaluate a screen in the new
store.
2021-09-23 22:20:01 -04:00
Andy_kl 4cf0998bf5 sl2: Properly analyze also custom sl statements containing a transclude.
Per ##3034.
2021-09-24 04:07:20 +02:00
Tom Rothamel 121b510761 sl2: Properly analyze use statements containing a transclude.
Fixes #3034.
2021-09-23 20:02:19 -04:00
Andy_kl b2ba026d84 Do not unpickle persistent just after the save 2021-09-24 00:51:19 +02:00
Tom Rothamel 2fbb7be5be Pick a less-spammy site for icon conversion. 2021-09-22 22:31:21 -04:00
Tom Rothamel 6f79af3931 Update credits. 2021-09-22 22:29:39 -04:00
Andy_kl 8ea063ec7c Fix missed AndroidStateText case 2021-09-23 03:07:09 +02:00
Andy_kl 9af96b859d Update Russian translation 2021-09-23 03:04:02 +02:00
Tom Rothamel 9920c7bbcb Add polish translation, by Reptile. 2021-09-21 10:22:11 -04:00
Tom Rothamel bc73ff9acb Fix #3043. 2021-09-21 01:32:02 -04:00
Tom Rothamel c37d7d7f6f rapt: Try to order things more clearly. 2021-09-20 21:11:47 -04:00
Tom Rothamel 93f86de061 On mobile, unfocus the current displayable when the player moves their finger. 2021-09-19 18:38:11 -04:00
Tom Rothamel dded5b159c When perspective is true, create a mesh after applying matrices.
This helps mesh and perspective coexist.

Per https://lemmasoft.renai.us/forums/viewtopic.php?p=546676#p546676.
2021-09-19 15:58:05 -04:00
Tom Rothamel d49225fd47 Merge pull request #3045 from Andykl/fix-persistent-leak
Make ChoiceActionBase.chosen a property
2021-09-18 20:14:58 -04:00
Andy_kl 91f5a87091 Make ChoiceActionBase.chosen a property 2021-09-19 02:01:14 +02:00
Tom Rothamel d0572739fa Add the --safe-mode conmand line flag.
Which forces Ren'Py to start in safe mode.
2021-09-18 01:09:24 -04:00
Tom Rothamel 5c2d9ebbaa Special case ATL "pause 0" to show a single frame.
Per #3041.
2021-09-17 03:18:02 -04:00
Tom Rothamel e25a6ac623 Merge pull request #3039 from Neyunse/master
Fixed Spanish TL: Personalizas
2021-09-16 18:24:03 -04:00
Tom Rothamel 591a01aba2 Mute mutes Movies.
Fixes #3033.
2021-09-15 17:46:28 -04:00
Neyunse 08319c9aab Fixed Spanish TL: Personalizas
Personalizas is not correct on Spanish
Corrected at: Personalizado
Another Corrected form: Personalizar
line: gui7.rpy:358
2021-09-15 15:18:34 -03:00
Tom Rothamel 91974793b8 Copy the context into the rollback created after load.
Fixes #3036, references #2942.
2021-09-14 21:42:54 -04:00
Tom Rothamel ad55381e58 Avoid autoreloading after the autoreload flag is cleared.
Fixes #3037.
2021-09-13 18:02:49 -04:00
Tom Rothamel 56de8d1935 doc: Some of the limitations/changes of perspective. 2021-09-12 02:48:22 -04:00
Tom Rothamel b79adf37a4 transform: Make perspective False the same thing as perspective None. 2021-09-12 02:27:12 -04:00
Tom Rothamel f675f2b92a transform: Allow rotate and perspective to coexist. 2021-09-12 02:15:46 -04:00
Tom Rothamel 8150c47a37 doc: Fix MainMenu documentation.
Fixes #3032.
2021-09-12 00:28:39 -04:00
Tom Rothamel 144e4b614d doc: Detect bad docstrings. 2021-09-11 23:10:01 -04:00
Tom Rothamel 279464d87f Update credit.
Per a twitter request.
2021-09-11 13:11:57 -04:00
Tom Rothamel 89aa1fdc67 doc: Changelog tts changes. 2021-09-10 23:19:31 -04:00
Tom Rothamel e477a1d6d8 tts: Compat the ordering change. 2021-09-10 22:46:40 -04:00
Tom Rothamel 788a39de76 tts: Modal screens stop tts processing.
The idea being to not read out things that are blocked by a modal
dialogue.

Fixes #3030.
2021-09-10 22:34:03 -04:00
Tom Rothamel 123fb78052 tts: Change the order in which layer and displayables on layers are read.
Now, the layers are read with the displayable closest to the player
first, as it's likely to be the most relevant. This would control
the order in which screens are read, but not the screen itself,
as the screen should be read first to last.
2021-09-10 21:48:02 -04:00
Tom Rothamel f581c5b39c Update translations. 2021-09-09 21:36:57 -04:00
Tom Rothamel 4328a11988 Merge pull request #3022 from Moshibit/master
Update Spanish translation
2021-09-09 21:31:02 -04:00
Tom Rothamel 528227a33b ShowIf should prevent tts if the condition is false.
Fixes #3029.
2021-09-09 21:29:26 -04:00
Tom Rothamel 05ff0e1dd5 rapt: Update translation strings. 2021-09-09 17:25:52 -04:00
Tom Rothamel d2b70b5396 rapt: Add list devices, disconnect.
Deals with multiple wifi device connection issues.
2021-09-09 01:07:26 -04:00
Gouvernathor 5a3f6fcfb7 Fix typo 2021-09-08 23:59:31 +02:00
Tom Rothamel ee1b3580b3 Do not pass non-focusable displayables to the keyboard focus system.
Fixes #3027.
2021-09-08 01:10:39 -04:00
Tom Rothamel 342151b1b0 Update the sponsors documentation. 2021-09-08 00:56:22 -04:00
Tom Rothamel e7af259178 Do not quote the pause command on windows.
Or the read command on Linux.
2021-09-07 02:39:55 -04:00
Tom Rothamel b727211a25 android: Fix cancelling pairing operations. 2021-09-07 01:16:59 -04:00
Tom Rothamel 14c0e7c2ee layeredimage: Ignore unavailable optional attributes.
This fixes an issue introduced by #3105, where it became
possible for LayeredImage._choose_attributes to return
None if a nonexistent attribute was given to optional,
as might be the case when switching between semi-related
sets of attributes.
2021-09-06 23:54:31 -04:00
Tom Rothamel 81fe396c6c Remove debugging. 2021-09-06 17:12:35 -04:00
Tom Rothamel a5007536ee doc: Update credits. 2021-09-06 16:01:26 -04:00
Tom Rothamel 57dd2a004d doc: Changes in android keys. 2021-09-06 15:40:57 -04:00
Tom Rothamel 0a5e763ebc transform: Supply gl properties to a model when created.
This allows the model to get properties that will affect how
textures are loaded, allowing the ATL properties to control
texture loading.
2021-09-06 01:33:26 -04:00
Tom Rothamel c0158696b5 doc: Improve documentation of how mesh, Model, and gl_ properties interact.
Per #3024.
2021-09-05 00:44:35 -04:00
Tom Rothamel bb943d6465 Fix the fit parameter to Model.child(). 2021-09-05 00:43:13 -04:00
Tom Rothamel d2050447da Merge pull request #3025 from mal/fix-model-props
Exception when setting GL props on Model displayable
2021-09-05 00:13:06 -04:00
Tom Rothamel 8007446ee1 Clear the atl state when clearing the atl timebase.
This ensures the two match up. Fixes #3008.
2021-09-05 00:12:47 -04:00
Mal Graty 814480cc30 Rename setter to avoid conflict with property 2021-09-04 22:53:04 +01:00
Moshibit cfde71aba8 Merge branch 'renpy:master' into master 2021-09-04 04:50:52 -05:00
Moshibit 4c59b37433 Merge pull request #1 from Moshibit/Moshibit-patch-1
Update Spanish translation
2021-09-04 04:50:19 -05:00
Tom Rothamel c85168a684 Merge pull request #3021 from Gouvernathor/patch-5
Edit and fix documentation
2021-09-04 01:33:46 -04:00
Tom Rothamel 4c0b4aca64 Document changelog. 2021-09-04 01:30:27 -04:00
Tom Rothamel 6d82cf9fcb Simplify the IAP documentation. 2021-09-04 01:24:26 -04:00
Tom Rothamel f99a2dcca9 Document that Pyjnius and Pyobjus are available. 2021-09-04 01:22:38 -04:00
Tom Rothamel 22500fa2c3 Document android permissions. 2021-09-04 01:11:57 -04:00
Tom Rothamel 370a025ede Update keyword list. 2021-09-04 01:09:17 -04:00
Tom Rothamel 5442bff2ce rapt: Add renpy.check_permission and renpy.request_permission.
These are functions used to check permissions on Androuid,
and request permissions that do not exist.
2021-09-04 00:56:54 -04:00
Tom Rothamel 68ede22fa9 rapt: Support build.android_permissions.
This is a variable that takes a list of android permissions
to grant to the app.
2021-09-04 00:56:14 -04:00
Tom Rothamel f851bb0221 Clear the video texture cache when clearing textures.
Fixes #3018.
2021-09-03 22:31:16 -04:00
Tom Rothamel 094c184b1c Merge pull request #3010 from mal/lint-temp-attrs
Ensure lint checks temporary say attributes
2021-09-03 19:54:50 -04:00
Tom Rothamel e6a6a33fbe Merge pull request #3019 from Gouvernathor/patch-4
Update french translations
2021-09-03 19:53:35 -04:00
Gouvernathor 647dc7a98a Add offscreenleft and offscreenright to the graph 2021-09-04 00:02:38 +02:00
Gouvernathor 0e6bb55396 Tweak transform-conserving rules 2021-09-03 23:58:58 +02:00
Gouvernathor 17c46a9e4f Fix displaying_images 2021-09-03 23:22:28 +02:00
Gouvernathor c60d0657e9 Document automatic name generating 2021-09-03 22:58:02 +02:00
Moshibit eef96e5193 Update Spanish translation 2021-09-03 08:27:46 -05:00
Asriel Senna 68f51bc4d9 add translations 2021-09-03 13:52:30 +02:00
Gouvernathor a6a8a0962f Update options.rpy 2021-09-03 13:50:25 +02:00
Tom Rothamel c52d7c645c rapt: Update translations. 2021-09-03 01:05:10 -04:00
Tom Rothamel 8f282be21f Merge pull request #3015 from mal/li-dupe-attrs
Prevent duplicate attributes breaking LIs
2021-09-02 22:44:59 -04:00
Tom Rothamel 2b02c7b7a8 Merge pull request #3017 from Gouvernathor/patch-4
Reorder launcher preferences
2021-09-02 22:26:38 -04:00
Gouvernathor 723166a373 Reorder preferences 2021-09-03 03:18:34 +02:00
Tom Rothamel 8319d68157 Report errors if a comment translation is malformed. 2021-09-02 20:10:08 -04:00
Mal Graty 8e7aa365b5 Prevent duplicate attributes breaking LIs 2021-09-02 18:11:12 +01:00
Mal Graty 2afe32ab13 Ensure lint checks temporary say attributes 2021-09-02 01:15:14 +01:00
Tom Rothamel c3830b39ec Remove blank lines. 2021-09-01 01:49:15 -04:00
Tom Rothamel a463d25b12 Merge pull request #3003 from Gouvernathor/patch-4
Add xycenter and xysize, modify xsize and ysize
2021-08-31 22:11:06 -04:00
Gouvernathor 151be8cd36 Merge branch 'master' into patch-4 2021-08-31 16:55:08 +02:00
Asriel Senna 18aafef005 document offset and fix types and default values 2021-08-31 11:22:12 +02:00
Asriel Senna 7372792a11 fix xcenter and ycenter types 2021-08-31 11:21:39 +02:00
Asriel Senna 35dce1fab6 Add xycenter documentation 2021-08-31 11:21:12 +02:00
Asriel Senna b42d67a2b5 priority typo 2021-08-31 10:33:35 +02:00
Asriel Senna adb289e000 add changelog 2021-08-31 10:27:01 +02:00
Asriel Senna 490757322a add documentation 2021-08-31 10:26:53 +02:00
Asriel Senna 06180ad776 apply reviews 2021-08-31 10:17:39 +02:00
Tom Rothamel 60ddd0fbba Update translations. 2021-08-31 01:30:40 -04:00
Tom Rothamel 3aec878b99 Merge pull request #3001 from Moshibit/master
Update Spanish translation
2021-08-30 19:51:10 -04:00
Moshibit f501f7bd0c Update Spanish translation 2021-08-30 10:46:30 -05:00
Moshibit 21a052d6fb Update Spanish translate
Since the most current nighty does not contain the update of the Android strings, I generate the lines manually, I hope there are no missing lines.
2021-08-30 10:40:29 -05:00
Moshibit 2265f1daa7 Update Spanish translation 2021-08-30 10:07:49 -05:00
Moshibit 4c3ee87f8c Update Spanish Translation 2021-08-30 10:03:32 -05:00
Moshibit 3a193cc1d6 Update Spanish Translation 2021-08-30 09:54:43 -05:00
Moshibit 0ab35ec85b Update Spanish Translation 2021-08-30 09:27:59 -05:00
Tom Rothamel 95e72c8036 Update the android strings. 2021-08-30 10:24:43 -04:00
Moshibit 7aaeee895c Update Spanish translation 2021-08-30 09:24:12 -05:00
Moshibit 487e6bf5c1 Update Spansih translate 2021-08-30 09:19:49 -05:00
Moshibit 67c8d7f13b Update Spanish translation 2021-08-30 09:16:29 -05:00
Moshibit de7dd02431 Update Spanish translation 2021-08-30 09:11:44 -05:00
Moshibit abf0a3b4ea Update Spanish translation 2021-08-30 08:50:05 -05:00
Moshibit 120f33d4d7 Update Spanish translation 2021-08-30 08:37:21 -05:00
Tom Rothamel 702ec8d021 Add the accessibility menu to the default gui. 2021-08-29 20:35:37 -04:00
Tom Rothamel aa4b0c13f2 doc: Add android-downloading.jpg to the changelog. 2021-08-29 20:29:54 -04:00
Tom Rothamel 9800ad1556 Properly document build.include_update. 2021-08-29 20:17:55 -04:00
Tom Rothamel 848b1804a0 Document android-downloading.jpg. 2021-08-29 17:39:42 -04:00
Tom Rothamel e6da0a2f26 Create the game/ directory on android if it doesn't exist.
This fixes a problem where if it didn't exist, files/ would be put
into the searchpath, and all sorts of problems would ensue.
2021-08-29 16:22:41 -04:00
Gouvernathor 7a4a4d2459 Fix implementation 2021-08-29 20:45:12 +02:00
Tom Rothamel cf37f3426a Only display the choice screen once.
Fixes #2594, thanks Andrí.
2021-08-29 09:49:07 -04:00
Tom Rothamel 32494c4577 Reset the ui stack before console error handling.
Fixes #3004.
2021-08-28 21:54:16 -04:00
Moshibit cbc6943729 Update Spanish translate 2021-08-28 10:46:08 -05:00
Moshibit 95316526d5 Update Spanish translation 2021-08-28 10:39:09 -05:00
Tom Rothamel d11632db59 Update sponsor documentation. 2021-08-27 22:45:56 -04:00
Tom Rothamel d504b4c635 Update the changelog. 2021-08-27 22:40:33 -04:00
Gouvernathor c08f7efa3c Change xsize and ysize types 2021-08-28 01:13:05 +02:00
Gouvernathor 4ded371224 Implement xsize and ysize behavioral changes 2021-08-28 01:11:24 +02:00
Gouvernathor df96e1a3d8 Move the compat mechanism out of the transform cls 2021-08-28 00:56:06 +02:00
Gouvernathor b6fa5c402d Add the xysize and xycenter tprop and modify size 2021-08-28 00:03:48 +02:00
Gouvernathor 180b668fb2 Compat the old_size_tpref config variable 2021-08-27 23:59:47 +02:00
Gouvernathor 01ce078e1c Add the old_size_tpref config variable 2021-08-27 23:59:01 +02:00
Moshibit e11c49f59f Update Spanish translation 2021-08-26 08:40:22 -05:00
Moshibit 76a3f34cfa Update Spanish translation 2021-08-26 08:38:27 -05:00
Moshibit 79ab89f6ec Update Spanish translation 2021-08-26 08:34:19 -05:00
Tom Rothamel 6827c6fab7 Include a version number suffix.
u = unofficial builds.
n = nightly builds.
2021-08-26 04:24:48 -04:00
Tom Rothamel dd35de1679 Improvements to #2970.
* Remove animation of update indicator. (An annoyance if the creator
  wants to be informed, but isn't ready to update.)
* Check for updates in a different thread. (Prevents slow internet
  from blocking launcher start.)
* Use requests to check update channels.
2021-08-25 20:59:07 -04:00
Tom Rothamel 214f4d41b6 Merge pull request #2970 from Gouvernathor/patch-6
Update notification
2021-08-25 20:40:33 -04:00
Tom Rothamel 06d4f2c944 Merge pull request #2991 from Gouvernathor/patch-4
Update the parsing error screen
2021-08-25 20:37:21 -04:00
Tom Rothamel 42080e8926 Only allow rollback to be fixed when there is a current statement.
Attempts to fix #2994.
2021-08-25 20:34:02 -04:00
Tom Rothamel b8436cd0b5 Only respect default_focus at the start of an interaction.
Fixes #2964.
2021-08-25 20:28:22 -04:00
Tom Rothamel 0411aa0cf2 a11y: Slightly recolor selected/hovered text in high contrast mode. 2021-08-25 20:15:24 -04:00
Gouvernathor 747c75a14b Opt-out of matrixcolor when needed 2021-08-25 22:17:48 +02:00
Tom Rothamel feb9b6e180 Fix archive directory test. 2021-08-25 10:11:35 -04:00
Tom Rothamel 8be52cd0e4 a11y: Implement high contrast text.
This displays text in white with a black box behind it.
2021-08-25 01:48:00 -04:00
Tom Rothamel df72d29625 a11y: Add high contrast text preference. 2021-08-25 01:19:38 -04:00
Tom Rothamel cbbc84bcda Change where defaults are applied on load/rollback.
By applying them inside the rollback function, we can avoid
rollback reverting the default.

Fixes #2997.
2021-08-25 00:30:37 -04:00
Tom Rothamel df227fd163 Allow a subsurface to be taken of a render with perspective.
This isn't great, as the fix is to do a render to texture,
and then subsurface that. Still, the transition from perspective
to no perspective should be rare-ish, and this allows transitions
and other things that need to subsurface to work, rather than
failing entirely.

Fixes #2998.
2021-08-25 00:01:00 -04:00
Tom Rothamel f8d76fb76a Merge pull request #2996 from RubenGarcia/master
Mention that parameters with default values are possible.
2021-08-24 10:51:41 -04:00
Ruben Jesus Garcia-Hernandez 51c300234f Mention that parameters with default values are possible. 2021-08-24 16:46:32 +02:00
Tom Rothamel afe10a6fe7 Edit down the last commit. 2021-08-23 23:10:56 -04:00
Tom Rothamel 720ad70e0c Merge pull request #2993 from Gouvernathor/patch-5
Document screens' _with_none kwarg and the call screen's with behavior
2021-08-23 23:05:45 -04:00
Tom Rothamel 59f08318fb pyanalysis: Remove unused analyses.
This prevents pyanalysis.rpyb from growing unconstrained.
2021-08-23 22:50:46 -04:00
Tom Rothamel 34ccfe62df Lower the compression level on analysis files.
This should make games load faster, at least on fast storage,
for a minimal increase in size.
2021-08-23 22:31:47 -04:00
Tom Rothamel fe796bbc9c Add the gamedir to the android searchpath. 2021-08-23 22:06:16 -04:00
Tom Rothamel 3d887c787b Handle timing in a move in a transformed layer.
This introduces a new displayable, MatchTimes that passes st and at
to an adjusttimes inside it. This has the effect of undoing the
timing changes that are caused by the transforms in the layer
at list, and making the timing match the transition.
2021-08-23 21:56:04 -04:00
Tom Rothamel 6587085cad Move layer/camera_at_list application into a function.
This is part 1 of making move work in conjunction with the
at lists, which involves move repeating the transformations.
2021-08-23 21:37:55 -04:00
Gouvernathor 7c11e8ed37 Document _with_none and the call's with behavior
fixes #2139
2021-08-23 03:37:10 +02:00
Gouvernathor 2e58ce4544 Update the _parse_errors screen 2021-08-22 14:56:34 +02:00
Tom Rothamel 969cf58a38 Round up viewports to fully contain children.
Fixes #2987.
2021-08-22 01:44:13 -04:00
Tom Rothamel f9234bed69 Prevent the mouse from slowing down AlphaMask.
Fixes #2988, Fixes #2458.
2021-08-21 21:35:22 -04:00
Tom Rothamel 12d14b0fc0 Only scan for .rpas if a directory exists. 2021-08-20 21:31:53 -04:00
Tom Rothamel 307a47c470 Merge pull request #2927 from korden32/patch-1
Search archives in all searchpaths, not just gamedir
2021-08-20 21:26:02 -04:00
Tom Rothamel 5a78f17e92 Merge pull request #2958 from Gouvernathor/patch-4
Fix labels in changelog
2021-08-19 21:31:59 -04:00
Tom Rothamel 70bd11ef6e Merge pull request #2967 from Gouvernathor/patch-5
Document config.has_channel side-effects
2021-08-19 21:20:13 -04:00
Tom Rothamel eccd5855d0 Merge pull request #2965 from RubenGarcia/master
Fix typo.
2021-08-19 21:19:51 -04:00
Tom Rothamel f54c5174b8 Fix updater race conditions.
Fixes #2986.
2021-08-18 19:48:32 -04:00
Tom Rothamel a03fbf8188 Do not show the window when not showing alt dialogue.
Fixes #2984, by treating the alt dialogue the same way
we treat a character with the condition false.
2021-08-17 18:41:52 -04:00
Tom Rothamel f7574a34c1 Allow who.statement_name to be callable.
This makes it possible to extend a function with a method that
selects the statement name. See the next change for the use
case.
2021-08-17 18:41:52 -04:00
Tom Rothamel 82eb7ec134 Merge pull request #2979 from mal/adjust-attrs-lint
Make lint config.adjust_attributes aware
2021-08-17 18:21:21 -04:00
Tom Rothamel 895490ffc0 Merge pull request #2976 from Gouvernathor/patch-7
Update french translations
2021-08-17 18:20:58 -04:00
Andy_kl 394e9d8e48 Keep invariant Node.linenumber refers to the actual string in file for menu Say statement 2021-08-17 19:40:41 +02:00
Tom Rothamel bb4c150c6a android: Documentation. 2021-08-16 23:10:02 -04:00
Tom Rothamel 4d6b91606f android: Report when the bundle key doesn't exist. 2021-08-16 23:10:02 -04:00
Tom Rothamel e59ec61c74 Merge pull request #2983 from mal/fix-gl-prop
Small transform GL property issues
2021-08-16 20:33:23 -04:00
Mal Graty bd7ceb9527 Fix documented name of gl_color_mask 2021-08-16 22:30:15 +01:00
Mal Graty db042399de Order transform gl properties alphabetically 2021-08-16 21:30:11 +01:00
Mal Graty 9c118eb780 Add missing transform gl property 2021-08-16 21:29:34 +01:00
Mal Graty 3ed4291a23 Fix gl_property typo in Transform 2021-08-16 21:28:04 +01:00
Mal Graty f0336b9ec8 Make lint config.adjust_attributes aware
Applies the function when checking a recognised image, and stashes the
original name so that the error report will match the line in the script
being referenced (rather than reporting the adjusted version).
2021-08-15 04:51:02 +01:00
Gouvernathor 8f43ef46fd Update common.rpy 2021-08-14 08:30:57 +02:00
Gouvernathor 263299d37a Update launcher.rpy 2021-08-14 08:30:18 +02:00
Tom Rothamel d1727e0137 doc: Fix typo. 2021-08-13 00:04:33 -04:00
Tom Rothamel 6494b3ddb1 Support loading game assets from Android packs. 2021-08-12 22:41:42 -04:00
Tom Rothamel e044a37a69 android: Interface changes.
* Support selecting and building bundles.
* Support Android 11+ Wi-Fi pair and connect.
2021-08-11 18:14:14 -04:00
Gouvernathor 55c628eff1 Add default value
Without it, the selected clause would not apply since it would be None, and the button would appear enabled because of its list-formed action.
2021-08-10 10:56:53 +02:00
Gouvernathor 9f7b7eec09 Neater code 2021-08-10 10:50:02 +02:00
Gouvernathor f278ae1f6b Fix version comparison
That way only more advanced versions trigger the glowing
2021-08-10 10:46:01 +02:00
Gouvernathor e24f022642 Turn has_upgrade into persistent 2021-08-10 10:39:43 +02:00
Gouvernathor daecb82080 Cleanup and turn has_update into persistent 2021-08-10 10:36:56 +02:00
Gouvernathor 5d25d1b5ef Update the has_update variable at every check 2021-08-10 10:35:23 +02:00
Gouvernathor fb1882e23f Add visual feedback when there is an update
fixes #2961

The transform stuff makes the textbutton glow, the commented-out lines would just make it the color of the Sponsor Information textbutton.
2021-08-10 10:14:37 +02:00
Gouvernathor 8a16dde182 Add update check preference 2021-08-10 10:11:49 +02:00
Gouvernathor 64637d7e84 add update check to the front_page label 2021-08-10 10:10:09 +02:00
Gouvernathor 27f4dbaf55 isolate update check as a function 2021-08-10 10:08:09 +02:00
Gouvernathor f19431c516 Document config.has_channel side-effects 2021-08-09 05:17:25 +02:00
Tom Rothamel 551aebb22b Allow utter_restart to restart Ren'Py without reinitializing.
The goal is to support file downloaders that might restart Ren'Py,
but will redo it without changing the screen information.
2021-08-08 14:04:56 -04:00
Ruben Jesus Garcia-Hernandez 1e9d134e4a Fix typo. 2021-08-08 19:42:58 +02:00
Tom Rothamel 7da3c35dba Fix rt select in the case of a bad link. 2021-08-07 23:31:11 -04:00
Tom Rothamel 96c1510991 Revert "Move finding archives into its own function."
This reverts commit 3a03525490.
2021-08-07 22:47:33 -04:00
Tom Rothamel 3a03525490 Move finding archives into its own function. 2021-08-07 21:51:03 -04:00
Tom Rothamel f63b608baa updater: Allow non-patching updates.
Thes download the entire game, but don't require a web server that's
compatible with zsync.
2021-08-06 20:36:24 -04:00
Tom Rothamel 010dbe9ea8 Play the activate_sound when a bar is activated.
Fixes #2960.
2021-08-05 21:18:20 -04:00
Tom Rothamel 05b89d189e Store base displayables and main displayables separately.
Fixes #2959, a regression introduced by
d49cb97e19 , by separating out the
base displayable that gets focus from the main displayable that
takes scope.
2021-08-04 21:51:44 -04:00
Tom Rothamel ba97538363 Use the correct events for viewport scrolling. 2021-08-03 22:17:38 -04:00
Tom Rothamel 5884eac7b4 atl: Remove prefixes when dispatching events.
This is mainly for selected_hover and selected_idle, which will
become hover and idle if not handled, matching the way these prefixes
are handled in the rest of Ren'Py.

Fixes #2957.
2021-08-03 19:58:29 -04:00
Gouvernathor 62adce9c9e Fix labels in changelog 2021-08-03 05:21:24 +02:00
Tom Rothamel 9dda311e68 Bump version to 7.4.9. 2021-08-02 20:04:39 -04:00
Tom Rothamel 52d0d57e7b Add a way to hide the exceptions produced by the fix for #2945. 2021-08-01 00:50:20 -04:00
Tom Rothamel 7d69b973ac Only access atl_st_offset on an ATLTransform.
Fixes #2952.
2021-07-31 23:05:17 -04:00
Tom Rothamel 86af67b0b2 Update changelog. 2021-07-31 20:02:40 -04:00
Tom Rothamel 899584ea0e Document how transforms inherit properties. 2021-07-31 19:45:03 -04:00
Tom Rothamel d7cbf76f0c Update sponsors doc. 2021-07-31 17:58:21 -04:00
Tom Rothamel 078e65030a Rename 7.4.8. 2021-07-31 17:55:57 -04:00
Tom Rothamel fde3d3757a Agument any non-empty exception. 2021-07-31 17:34:31 -04:00
Tom Rothamel 305abf48bf Merge pull request #2936 from Meithal/patch-1
Update loadsave.py
2021-07-31 17:20:40 -04:00
Tom Rothamel 37826e4403 Merge pull request #2937 from Moshibit/master
fix skins documentation
2021-07-31 17:20:18 -04:00
Tom Rothamel 082f119f16 Make sure text surfaces have an integer size. 2021-07-31 17:09:22 -04:00
Tom Rothamel e186df3e5a Report errors parameterizing an image, if config.developer is True
Fixes #2945.
2021-07-31 16:58:20 -04:00
Tom Rothamel 87692792ac Do not auto-show the dialogue window on centered/vcentered.
This introduces the ability for a character to define its own
statement_name, and uses that ability to create a new statement
that keeps the dialogue window hidden.
2021-07-31 16:25:38 -04:00
Tom Rothamel cfd8530cf2 Store the final width/height of a Viewport.
This needs to be correct for edgescrolling and other things to work.
2021-07-31 15:54:19 -04:00
Tom Rothamel f6e05f532e Allow changing the case of a save on a case-insensitive filesystem.
Fixes #2948.
2021-07-31 15:35:00 -04:00
Tom Rothamel 0af3eaa86e Document how the Android presplash is scaled.
Fixes #2950.
2021-07-31 15:18:20 -04:00
Tom Rothamel 362b815503 Add a not_greedy rollback mode.
This is used by the console to prevent the changes the console
makes from being elimiated when the creator rolls back to the
statement where the changes have been made.
2021-07-31 15:13:54 -04:00
Tom Rothamel 9e93f30109 Create a new Rollback object once rollback is done.
This prevents problems that are caused by a single
rollback object being completed once. Fixes #2942, hopefully
for good this time.
2021-07-31 14:54:40 -04:00
Tom Rothamel c1c7b6259d Clear the list of mutated objects when a rollback occurs.
Fixes #2942.
2021-07-31 12:27:34 -04:00
Tom Rothamel 45e9f2741e Ensure clipping can't hide the caret.
Fixes #2949.
2021-07-31 12:21:48 -04:00
Tom Rothamel 263ee6cac8 Better computation of Button/Window xymaximum. 2021-07-30 22:34:01 -04:00
Tom Rothamel 1e449a1509 Document that gl_depth doesn't consider transparency.
Fixes #2947.
2021-07-30 17:36:34 -04:00
Tom Rothamel d80f614620 Do not zero out at_st_offset on hide.
After the changes in 7.4.7, the st that is passed to ATL is
has the adjustment, so there's no need to reset it.
2021-07-29 22:05:12 -04:00
Tom Rothamel 40fcc752a1 Call update_state to compute ATL transform delay.
Fixes #2939.
2021-07-28 22:31:29 -04:00
Tom Rothamel 2228c4c0d3 Add missing version to changelog. 2021-07-28 20:40:01 -04:00
Tom Rothamel aad66b4240 Add config.single_movie_channel.
This is here to make it easy to have all movies play on a single
channel, making them easier to pause and unpause.
2021-07-27 16:54:32 -04:00
Tom Rothamel 4caf54a288 ffmedia: Support pausing video. 2021-07-27 16:43:47 -04:00
Tom Rothamel 49e4a115e8 ffmedia: Pass pause into ffmedia, use to update an offset time. 2021-07-27 14:26:54 -04:00
Tom Rothamel 8b0cd77a54 Do not suppress non-mouse events on init.
This ensures Ren'Py will get to process events like CONTROLLERADDED.
2021-07-26 21:53:40 -04:00
Tom Rothamel 5841dfb7aa Fix type of the unwritable log file. 2021-07-26 01:43:30 -04:00
Moshibit e828d3ff36 Merge branch 'renpy:master' into master 2021-07-25 22:53:49 -05:00
Meithal 283633200e Update loadsave.py
While stuck in an infinite loop during saving, trying to break from it with a keyboard interrupt causes a crash because that exception args is an empty tuple, so we get an uncaught exception here, this checks that looking args[0] or args[1:] won't lead to a crash.
2021-07-25 19:01:10 +02:00
Tom Rothamel be2ac1f31a Bump version. 2021-07-25 12:03:22 -04:00
Tom Rothamel 0653bd9893 Merge pull request #2922 from Gouvernathor/patch-4
Typos
2021-07-24 15:33:23 -04:00
Tom Rothamel 2284bcb7ef Fix hiding Model()s.
Fixes #2932.
2021-07-24 10:18:07 -04:00
Tom Rothamel 7e6570db8d Add a way to access the accessibility and renderer menus. 2021-07-23 23:08:10 -04:00
Moshibit dd901ceefb Update skins.rst 2021-07-23 15:47:48 -05:00
Tom Rothamel 54b7c25b1f Merge pull request #2929 from Moshibit/master
Fix custom theme
2021-07-23 16:36:32 -04:00
Moshibit f509835746 Update skins.rst 2021-07-23 15:34:32 -05:00
Tom Rothamel 0776a68814 Merge pull request #2930 from Gouvernathor/patch-5
Typos on the changelog
2021-07-23 15:58:04 -04:00
Gouvernathor 9d62705ae9 Fix typos
and de-document the use of windows+left/right keystrokes on windows
2021-07-23 20:57:04 +02:00
Tom Rothamel c61933e37e Document renpy.IgnoreEvent. 2021-07-22 23:03:45 -04:00
Tom Rothamel b934c17fbf Fix links to old documentation. 2021-07-22 22:50:41 -04:00
Tom Rothamel 1f982784d0 doc: Move udd -> cdd. 2021-07-22 22:48:23 -04:00
Moshibit f6eb12a850 Update skins.rst 2021-07-22 20:31:07 -05:00
Moshibit 46d637369f Update skins.rst 2021-07-22 20:30:30 -05:00
Moshibit fe1ee915ac Update skins.rst 2021-07-22 20:26:53 -05:00
Moshibit 57d6832fde Update skins.rst 2021-07-22 20:24:49 -05:00
Moshibit d0f578cda6 Update skins.rst 2021-07-22 20:23:21 -05:00
Moshibit dfbfdd42cd Update skins.rst 2021-07-22 20:22:39 -05:00
Moshibit 16669a8ecd Update skins.rst 2021-07-22 20:22:16 -05:00
Moshibit 4973bb7d5d Update style.rpy 2021-07-22 20:02:04 -05:00
Moshibit 0b63d11f1f Delete skin.rpy 2021-07-22 20:01:24 -05:00
Moshibit 9105255f7b Update style.rpy 2021-07-22 19:20:19 -05:00
Moshibit ed1c6cf8f6 Update skins.rst 2021-07-22 19:15:03 -05:00
Moshibit f1509e1d25 Update skins.rst 2021-07-22 19:14:04 -05:00
Moshibit fad7c1e761 Update skin.rpy 2021-07-22 19:11:40 -05:00
Tom Rothamel efa4bde27c Treat focus changes via renpy.set_focus as non-default.
Fixes #2924.
2021-07-21 23:02:38 -04:00
Tom Rothamel 0a88cdfa14 Fix changing character expressions.
orz.

Fixes #2926.
2021-07-21 22:42:22 -04:00
Tom Rothamel 4e821c0124 Clear pending events when Ren'Py starts.
Fixes #2925.
2021-07-21 18:34:29 -04:00
Tom Rothamel 0117526793 Merge pull request #2928 from midgethetree/fix-credits-typo
Update credits.rst
2021-07-21 17:10:39 -04:00
midgethetree effab2f56b Update credits.rst 2021-07-21 17:08:46 -04:00
KorDen 3d9596e9dc Search archives in all searchpaths, not just gamedir
It makes possible to put rpa archives in Android overwrite folder
2021-07-22 00:06:56 +03:00
Tom Rothamel 149f5a3788 Same fix, but in DynamicImage itself. 2021-07-21 00:13:14 -04:00
Tom Rothamel 972f612cda Prevent crashes during prediction from breaking a DynamicImage invariant. 2021-07-21 00:07:31 -04:00
Tom Rothamel 9556d15707 Document webkit issues. 2021-07-20 22:46:01 -04:00
Tom Rothamel e9a2370802 Fix add.py. 2021-07-20 22:45:41 -04:00
Gouvernathor 23cade695c Typos
the line breaks caused huge font increases
2021-07-21 04:38:55 +02:00
Tom Rothamel 64c936d083 Update changelog. 2021-07-20 22:30:19 -04:00
Tom Rothamel c4e6b8e6b5 Add renpy.set_focus.
This lets the focus be overriden.
2021-07-20 22:24:29 -04:00
Tom Rothamel 834f1bef8b Rename renpy.get_widget{,_properties} to renpy.get_displayable{,_properties}
Keep the old names, for compatibility purposes, but in general we don't
use the name widget anymore.
2021-07-20 22:20:33 -04:00
Tom Rothamel d49cb97e19 The main widget of a textbutton should be the button. 2021-07-20 22:19:05 -04:00
Tom Rothamel a21b8da9bb Update the changelog and incompatible changes. 2021-07-20 22:07:28 -04:00
Tom Rothamel 785c869886 Update the keymap documentation. 2021-07-20 20:50:23 -04:00
Tom Rothamel 0d0646efba Merge pull request #2804 from kobaltcore/better-input-editing
Add quality-of-life editing abilities to the Input field
2021-07-20 20:45:13 -04:00
Tom Rothamel 54d008aed3 Merge pull request #2921 from mal/plug-the-leak
Avoid using a dict as a default argument value
2021-07-20 20:43:53 -04:00
Mal Graty f063bd7097 Avoid using a dict as a default argument value
It's dangerous as it becomes trivial to accidentally pollute what is
expected to be a clean dictionary.
2021-07-21 00:36:24 +01:00
cobaltcore 4fb8cc6f5f Use osctrl for delete binding 2021-07-20 11:06:15 +02:00
cobaltcore b0e66a675c Remove conditional in keymap 2021-07-20 11:06:15 +02:00
cobaltcore 3091b59d45 Implement CUA keybinds 2021-07-20 11:06:15 +02:00
cobaltcore c2d187b9ae Improvement: Add osctrl modifier keybind
This acts like `CMD` on macOS and like `Ctrl` anywhere else.
2021-07-20 11:06:15 +02:00
cobaltcore b568f00270 Add common editing abilities to the Input field 2021-07-20 11:06:15 +02:00
Tom Rothamel 2fc403fc27 Update credits and sponsor docs. 2021-07-20 00:11:27 -04:00
Tom Rothamel dd5bbaf70f layeredimage: Revert now-unneeded change. 2021-07-19 22:12:27 -04:00
Tom Rothamel 1cad875471 layeredimage: Deal with not all group properties being ATL.
Fixes #2916, again.
2021-07-19 22:09:29 -04:00
Tom Rothamel 05f39bde9d Merge pull request #2917 from Gouvernathor/patch-3
Fix #2916
2021-07-19 20:33:17 -04:00
Gouvernathor 742f21beca Take variant and prefix from group_args
if they're not in kwargs, which in the current state of the code they never will.
2021-07-19 18:44:58 +02:00
Gouvernathor 1f700dc1a9 Default group_properties to dict instead of None
Fixes #2916
2021-07-19 16:16:33 +02:00
Tom Rothamel 417e67d1c7 Merge pull request #2912 from Gouvernathor/patch-4
Document access to the warper functions
2021-07-19 00:14:44 -04:00
Tom Rothamel 56fb31c979 layeredimage: Attribute properties take preference over group properties.
Fixes #2915.
2021-07-18 22:48:12 -04:00
Tom Rothamel a3defaf161 Ensure transforms run at least once when replaced.
This means that each transform will get at least one shot to
update the state before replacement, such that showing a
transform and immediately replacing it has an effect.

Fixes #2914.
2021-07-18 22:31:04 -04:00
Gouvernathor 02fa805355 add pause and instant warpers 2021-07-19 03:37:23 +02:00
Gouvernathor 753d5762b3 fix typo 2021-07-19 03:36:30 +02:00
Gouvernathor 0340857237 Switch to _warper 2021-07-19 03:35:00 +02:00
Gouvernathor 9c38331682 Switch to _warpers 2021-07-19 03:33:29 +02:00
Tom Rothamel 62e4f3017b Maintain the invariant that RollbackLog.current = RollbackLog.log[-1]
This was broken by some rollbacks, especially the sort of minimal rollbacks
that hapened in the console. This would cause the game to lose some
rollback information immediately after a rollback, causing problems.

Fixes #2907.
2021-07-18 19:14:47 -04:00
Tom Rothamel 564a491948 Document that "with None" doesn't update screens.
Fixes #2913.
2021-07-18 17:32:32 -04:00
Tom Rothamel 0a2e29eb33 Forcibly round outlines to integers.
Fixes #2911.
2021-07-18 17:17:50 -04:00
Tom Rothamel a9f89e56ca Add a disclaimer for the M1 simulator.
There seems to be a problem with Apple's OpenGL implementation
where it will crash during a dissolve transform. Documenting
this for now to get 7.4.7 out the door.
2021-07-18 17:09:33 -04:00
Gouvernathor 4a9c9f1158 Link transition classes to warpers 2021-07-18 07:58:31 +02:00
Gouvernathor 37d9e3ce4f Document warper functions dictionary 2021-07-18 07:50:57 +02:00
Tom Rothamel 849426917e Fix use of reverse when None.
This manifested in renpyweb, but could potentially affect all
platforms.

Fixes renpy/renpyweb#17.
2021-07-17 19:16:54 -04:00
Tom Rothamel c7ebc46bcc Window: Only apply xmaximum/ymaximum if set.
This means that in the usual case where it's not set, it doesn't
get forced to (0, 0), which fails in the case of a button inside
a viewport.

Fixes #2910.
2021-07-16 22:06:13 -04:00
Tom Rothamel eba15b1e83 gl2: Store the max mipmap level.
An attempt to address #2847 in the blind.
2021-07-16 17:55:41 -04:00
Tom Rothamel 6b640bf6a7 Pad out text to 32px.
This makes it similar to most other images Ren'Py loads, which
have this sort of padding.

An attempt to address #2847, without being able to repeat it.
2021-07-16 17:53:54 -04:00
Tom Rothamel 3001a8aa90 Document that keyup_a doesn't work. (No unicode, use keyup_K_a.) 2021-07-16 17:35:03 -04:00
Tom Rothamel 7708bf0cbb input: Use a dedicated displayable for caret blinking.
This allows us to reset the blinking when the caret is moved,
which is helpful, as the caret needs to be seen to know where it is.
2021-07-15 22:51:33 -04:00
Tom Rothamel 49017f2df8 input: Use a space rather than ZWSP if no content.
This ensures there is always room for the caret to be
drawn.
2021-07-15 22:04:13 -04:00
Tom Rothamel a15a418a02 Merge pull request #2891 from Gouvernathor/patch-4
Upgrade input's caret
2021-07-15 21:54:08 -04:00
Tom Rothamel 2c99d9df45 Update a DynamicDisplayable before visiting its children.
Fixes #2905.
2021-07-14 23:57:59 -04:00
Gouvernathor f8c89541dc Fix dynamic default value 2021-07-15 05:18:21 +02:00
Gouvernathor 13cdf98fe4 Disable caret blink for older code versions 2021-07-15 05:08:21 +02:00
Gouvernathor f92e9548b4 Catch up with bf1a591 2021-07-15 05:04:17 +02:00
Tom Rothamel baf646e350 Document the animation statement.
Fixes #2906.
2021-07-14 22:15:25 -04:00
Tom Rothamel 5b915758cd Merge pull request #2904 from midgethetree/fix-focus-nearest
Fix focus_nearest bug that ignored keyboard_focus
2021-07-13 22:54:40 -04:00
Tom Rothamel ba9a3f24a2 Merge pull request #2903 from midgethetree/fix-gui-preference-rebuild
Fixed SetPreference rebuild attribute
2021-07-13 22:54:22 -04:00
midgethetree 64db00a54a Update focus.py
Minor tweak to previous commit.
2021-07-13 18:50:59 -04:00
midgethetree 54759af09c Fix focus_nearest bug that ignored keyboard_focus
If buttons with keyboard_focus True are shown but the first focusable element has keyboard_focus False, the focus_nearest function would focus on that first element when not focused on anything. This commit fixes that.
2021-07-13 18:46:51 -04:00
Tom Rothamel 734db16d1c gui: Indicate how to get Ren'Py to overwite some files.
Fixes #2898.
2021-07-13 17:27:02 -04:00
midgethetree 6af6694cae Fixed SetPreference rebuild attribute
Now when SetPreference is defined with rebuild=False the rebuild function won't be called, as said in the documentation.
2021-07-13 16:22:27 -04:00
Tom Rothamel 14bb2d0fff Merge pull request #2893 from Moshibit/master
Improve Skins documentation.
2021-07-12 19:21:58 -04:00
Tom Rothamel 3ec83dae1c Merge pull request #2902 from Siege-Wizard/patch-1
Add mark_*_seen and mark_*_unseen functions
2021-07-12 19:20:35 -04:00
Siege-Wizard 4d3dec4e80 Add mark_*_seen and mark_*_unseen functions 2021-07-12 17:26:24 +02:00
Gouvernathor 51eacdd597 Merge branch 'master' into patch-4 2021-07-12 16:30:01 +02:00
Tom Rothamel bf1a591e2d Remove support for config.key_repeat.
This isn't implemented in SDL2, and hence hasn't worked in some
time.

Fixes #2899.
2021-07-11 20:44:45 -04:00
Tom Rothamel f2be07a13d Reset key modifiers when the keymap changes.
This works around a problem on windows where the windows+space
combination changes the keymap, and hence the lifting of the
windows key is not detected.

Fixes #2849.
2021-07-11 20:29:36 -04:00
Tom Rothamel 77e7b6a9a5 gl2: Compute the location of the text rectangle in virtual space.
Fixes #2848.
2021-07-11 14:43:58 -04:00
Tom Rothamel 65d719ecac Propagate transform state between children of an imagebutton.
Fixes #2864.
2021-07-10 03:41:42 -04:00
Gouvernathor ba8496de63 Merge branch 'master' into patch-4 2021-07-10 04:23:17 +02:00
Tom Rothamel 40fdecc0e0 Start the ATL ST Timebase when first shown.
Rather than at the time a containing screen is first shown.
2021-07-09 22:17:27 -04:00
Moshibit 39a12ae54d Merge pull request #3 from Moshibit/Moshibit-patch-1
Improve Skins documentation.
2021-07-09 16:49:32 -05:00
Tom Rothamel 730a23255f Merge pull request #2881 from midgethetree/input-autosave
autosave on input config variable
2021-07-08 22:26:28 -04:00
Tom Rothamel addda74f6f Merge pull request #2892 from RubenGarcia/master
Fix typo.
2021-07-08 22:26:13 -04:00
Ruben Jesus Garcia-Hernandez cd859fc572 Fix typo. 2021-07-08 18:15:55 +02:00
midgethetree 3f7831794f Documented config.autosave_on_input 2021-07-08 00:25:36 -04:00
Tom Rothamel 3187445cbe Merge pull request #2882 from Moshibit/master
Update launcher spanish translation
2021-07-07 22:30:22 -04:00
Gouvernathor 9784180a5f Betterer blink rewrite
Co-authored-by: Mal Graty <mal.graty@googlemail.com>
2021-07-08 03:41:05 +02:00
Gouvernathor 39b8d1621a Indentation mismatch 2021-07-08 02:31:00 +02:00
Gouvernathor 6fb1562ce7 Update renpy/display/behavior.py
I didn't test that partial function, I'm assuming it's correct

Co-authored-by: Mal Graty <mal.graty@googlemail.com>
2021-07-08 01:12:30 +02:00
Gouvernathor 57e6b93934 Update caret_blink meaning 2021-07-07 06:14:09 +02:00
Gouvernathor fc98fbb311 Update the meaning of config.input_caret_blink 2021-07-07 06:13:08 +02:00
Gouvernathor 6a1160db1e Change default value type 2021-07-07 06:10:21 +02:00
Gouvernathor 354e145f7a Recreating the blink function 2021-07-07 06:08:46 +02:00
Gouvernathor 9bcff3dada Reimplement with a function-based Transform 2021-07-07 05:17:04 +02:00
Gouvernathor 16012cd54b Document the caret_blink opt-out kwarg 2021-07-07 04:29:31 +02:00
Gouvernathor cef7cad98f Document config.input_caret_blink 2021-07-07 04:26:02 +02:00
Gouvernathor 9b95f5682e Add caret blinking with two opt-outs
Three actually, if you count replacing the caret entirely via the style property
2021-07-07 04:24:47 +02:00
Gouvernathor ec8aec642a Add the input_caret_blink config variable 2021-07-07 04:21:33 +02:00
Gouvernathor c18bb66f7b Document the caret's blinking 2021-07-07 04:20:07 +02:00
Tom Rothamel f1b04dd944 Report when a positional argument follows keyword argument.
Fixes #2887, after a recompile.
2021-07-06 20:40:37 -04:00
Tom Rothamel 9778498bf1 Fix and compat last commit.
Per #2890.
2021-07-06 02:29:24 -04:00
Tom Rothamel 8de11ad0d1 Fix issues with floating point x/ysize.
The main issue was basically that xmaxmium was applied twice,
first in renpy.display.render.render, and then again in Window.render.
There was also a problem with xminimum, which would be scaled to
the smaller xmaximum.

Fixes #2890.
2021-07-05 21:53:35 -04:00
Tom Rothamel 1d57acd021 Merge pull request #2888 from Gouvernathor/patch-4
Update (and fix) launcher french translation
2021-07-04 20:11:28 -04:00
Gouvernathor eaa5d6d7eb Fix typo 2021-07-04 21:39:11 +02:00
Gouvernathor 025ffb4a51 Update french translation 2021-07-04 21:38:33 +02:00
Tom Rothamel 0e4521a629 Report empty parameter defaults as an error.
Fixes #2886.
2021-07-03 23:01:32 -04:00
Tom Rothamel 04dbdd8f30 Remove all use of Displayable._show().
After removing it from Transform, the remaining use (in Viewport)
could be trivally inlined, and so it can be remove, simplifying
Ren'Py.
2021-07-03 22:29:51 -04:00
Tom Rothamel ea977dcf47 Remove Transform.show()/ATLTransform._show()
These methods don't do much in the current Ren'Py. ATL
images are predicted by .visit(), while Transform's child is set
when it's added. The only think it's used for is setting the
default_transform's state, and that was fixed by a direct call
to update_state.()

What's more, _show() has caused problems, first #2834, and now
2021-07-03 22:09:27 -04:00
Tom Rothamel db0fba0159 Document persistent._clear(). 2021-07-02 17:59:24 -04:00
Moshibit cc4f4caf12 Improve Skins documentation. 2021-07-01 22:12:38 -05:00
Moshibit 46248b7e9b Update launcher spanish translation 2021-07-01 21:49:21 -05:00
midgethetree 24f5304412 autosave on input config variable
Almost all places where Ren'Py autosaves have a configuration variable that can be set to False to prevent Ren'Py from autosaving at that time. The exception is the input function. This commit creates a new config variable autosave_on_input which can be set to False to disable autosaving when players input text.
2021-07-01 21:25:23 -04:00
Tom Rothamel af7195faab Merge pull request #2850 from Gouvernathor/patch-2
Doc typos
2021-07-01 19:23:11 -04:00
Tom Rothamel 6ec97b72fd Merge pull request #2866 from Moshibit/master
Launcher's custom theme and fix typos in matrix documentation
2021-07-01 19:21:06 -04:00
Moshibit 6c813493bb Update skins.rst 2021-07-01 15:34:57 -05:00
Moshibit 64ff95c824 Update skins.rst 2021-07-01 12:42:37 -05:00
Moshibit 2c1155af7e Update skins.rst 2021-07-01 12:34:59 -05:00
Moshibit ca47f6c42d custom theme update 2021-07-01 12:15:26 -05:00
Moshibit 298f586565 custom theme update 2021-07-01 12:12:45 -05:00
Moshibit 5d9ac79bc2 custom theme update 2021-07-01 12:11:44 -05:00
Moshibit ed2eb6dfb7 Merge branch 'renpy:master' into master 2021-07-01 12:06:42 -05:00
Tom Rothamel 8747f6b724 Document the audio/ directory.
Fixes #2875.
2021-06-30 21:59:17 -04:00
Tom Rothamel 2d7dfc293d Document that ui.adjustment.ranged can be called more than once.
Fixes #2876.
2021-06-30 21:41:16 -04:00
Tom Rothamel 7a657b6299 Automatically enable dummy drivers for most commands. 2021-06-29 21:27:01 -04:00
Tom Rothamel 997438e86a Say.get_code(): Place with after arguments.
Fixes #2874.
2021-06-28 21:16:12 -04:00
Tom Rothamel a5b01b102f Avoid copying the lists that make up layers.
This fixes a class of problem that could be caused by mixing
show and hide in a single operation, with the copy during hide
stopping things from working.

Fixes #2865.
2021-06-27 20:03:07 -04:00
Tom Rothamel fa2268b2c0 Merge pull request #2872 from Siege-Wizard/patch-1
Fix single achievement progress clear
2021-06-26 18:09:36 -04:00
Siege-Wizard ce3e819404 Fix single achievement progress clear
The code to clear a single achievement was treating dicts as sets.
Additionally, only clearing if the achievement was granted means that the progress is not cleared for half-progress achievements.
2021-06-26 15:24:03 +02:00
Tom Rothamel 32eaef1e36 web: Tweak disclaimers. 2021-06-25 19:39:14 -04:00
Tom Rothamel 5cd716f79d webaudio: Unlock the audio context, where needed. 2021-06-24 00:59:50 -04:00
Tom Rothamel d52a2845c2 Alphabetize. 2021-06-24 00:58:38 -04:00
Tom Rothamel 82af0d31ca Add config.audio_filename_callback. 2021-06-24 00:57:23 -04:00
Tom Rothamel 6e35507663 webaudio: Another fix. 2021-06-23 23:15:12 -04:00
Tom Rothamel 28b1a25143 Fix an issue when the first-played sound loops. 2021-06-23 22:45:31 -04:00
Tom Rothamel 262f939b2c webaudio: Fix minor issues. 2021-06-23 22:38:19 -04:00
Tom Rothamel fa19d60610 webaudio: tts. 2021-06-23 21:45:55 -04:00
Tom Rothamel a2dc2a5166 webaudio: Document that opus and ogg aren't supported in Safari. 2021-06-23 21:36:28 -04:00
Tom Rothamel 7a97807fbd webaudio: Write an error to the console if a file can't be decoded. 2021-06-23 21:32:51 -04:00
Tom Rothamel 912e72346d webaudio: Panning. 2021-06-23 21:27:18 -04:00
Tom Rothamel 92cae35954 webaudio: Cancel fades when a new fade occurs. 2021-06-23 21:10:51 -04:00
Tom Rothamel 381bb2d9eb audio: Change the audio API to remove the use of ms as a unit. 2021-06-23 21:01:59 -04:00
Tom Rothamel ee91d6b5e6 webaudio: Support tight fadeouts. 2021-06-23 20:54:30 -04:00
Tom Rothamel 6dc18a7b10 webaudio: Fadein/out. 2021-06-23 01:06:15 -04:00
Tom Rothamel 6e8074e360 webaudio: Allow a channel to start paused. 2021-06-22 00:59:17 -04:00
Moshibit 62add895b4 Fix typos 2021-06-21 11:48:36 -05:00
Tom Rothamel 6dd32af79d webaudio: Implement more of the methods. 2021-06-21 03:01:44 -04:00
Tom Rothamel 92871c75ae webaudio: Multichannel playback with queue. 2021-06-20 23:07:54 -04:00
Tom Rothamel 9403b74113 webaudio: Proxy audio calls from Python to JS. 2021-06-19 22:49:41 -04:00
Tom Rothamel 08a35003b8 webaudio: Allow audio to be routed through the webaudio module. 2021-06-18 21:49:10 -04:00
Tom Rothamel 6d864f1504 Add _screenshot_pattern.
A way to change the screenshot pattern at runtime.

Per #2857.
2021-06-17 17:52:20 -04:00
Tom Rothamel 9594127c28 Fix regression in last commit. 2021-06-17 00:12:38 -04:00
Tom Rothamel 6c2d2eca77 Audio improvements.
* Do not prefix/suffix silence.ogg.
* Do not attempt to parse flags out of AudioData.

Fixes #2855.
2021-06-15 20:52:49 -04:00
Tom Rothamel 44243cb8ff Change the release name. 2021-06-14 20:55:23 -04:00
Tom Rothamel 74b2ffffb3 Check in an empty 00shaders.rpy.
This will prevent a legacy 00shaders.rpyc from causing problems.
2021-06-12 14:33:44 -04:00
Tom Rothamel 5a1e2aae83 Fix example. 2021-06-12 14:28:00 -04:00
Tom Rothamel 373b421bc8 Fix missing camera_list and camera_transform errors.
Per https://lemmasoft.renai.us/forums/viewtopic.php?p=543637#p543637
2021-06-12 13:17:30 -04:00
Tom Rothamel 739a8f5a47 Remove link to renpy.beuc.net, as it appears to be unmaintained. 2021-06-12 12:29:29 -04:00
Tom Rothamel db30a5a590 Fix ATLTransform._show()
* Do not set the atl_state. (It can set it wrong if the times are 0)
* Do not double-call update state.

This addresses #2834.
2021-06-12 02:48:53 -04:00
Tom Rothamel f7c9058e19 Update sponsor docs. 2021-06-11 20:28:51 -04:00
Tom Rothamel bde233af40 Reload project data when the launcher is reloaded.
This allows reload to happen on more screens.
2021-06-10 18:08:52 -04:00
Tom Rothamel a484cfcb88 Avoid reloading the build info after a build happens, as it was just loaded. 2021-06-09 22:44:21 -04:00
Tom Rothamel 5c8d259258 Move to using startfile to start batch/command files. 2021-06-09 22:21:10 -04:00
Tom Rothamel 2aec07d6b9 Quiet down compileall. 2021-06-09 19:19:44 -04:00
Tom Rothamel bee4359ef1 Jump back to the build screen when distribute is done. 2021-06-09 19:12:16 -04:00
Tom Rothamel 78033f953f Update the macOS icon. 2021-06-09 19:08:34 -04:00
Tom Rothamel a98d2df66a Fix console commands (like the itch butler) on mac. 2021-06-09 18:56:12 -04:00
Tom Rothamel 4917544cd8 A pause without a delay causes a checkpoint. 2021-06-08 21:49:26 -04:00
Tom Rothamel 6b7ebbad7c Change the name.
(So it doesn't feel like an entirely different tool.)
2021-06-07 17:52:10 -04:00
Tom Rothamel 05914ae568 doc: Fix title of mouse.rst. 2021-06-07 17:50:28 -04:00
Tom Rothamel 01b3592167 Update changelog. 2021-06-07 00:59:47 -04:00
Tom Rothamel adc575285a Use the approprate timebase when determining if we're on the first ATL frame.
Fixes #2843.
2021-06-06 20:22:58 -04:00
Tom Rothamel 7355c73382 Better error reporting for duplicate labels. 2021-06-06 16:56:02 -04:00
Tom Rothamel 7528e10f28 Prevent infinite loop of pauses. 2021-06-06 16:23:04 -04:00
Gouvernathor 212820c18a Fix typo 2021-06-06 20:49:19 +02:00
Tom Rothamel a56ffb7efe Documentation improvements. 2021-06-06 12:04:04 -04:00
Tom Rothamel 05016c1ee9 Update keywords. 2021-06-06 11:47:31 -04:00
Tom Rothamel 92f9c15c49 Add the camera statement.
This is similar to the show layer statement, except that
the camera list is used rather than the layer_at_list.
2021-06-06 10:50:26 -04:00
Tom Rothamel 521d0b3b13 Add the concept of the camera_list.
This is essentially the same thing as the layer_at_list, except
that it is not cleared when the scene changes, making it suitable
for a set-and-forget 3d stage.
2021-06-06 10:48:25 -04:00
Tom Rothamel 1f1d7cd5b3 Change the default of scene_clears_layer_at_list to True.
This was producing too many obscure errors, and so the camera
statement will be introduced.
2021-06-06 10:41:02 -04:00
Tom Rothamel cf558e1af3 Fixes to model. 2021-06-05 21:21:55 -04:00
Tom Rothamel 4c098064ee Allow the u_renpy variables to be set through transforms. 2021-06-05 01:44:46 -04:00
Tom Rothamel f26e3cc462 Initial checkin of untested Model displayable. 2021-06-05 01:19:55 -04:00
Tom Rothamel 3178495acd gl2: Rename Model to GL2Model.
This shouldn't exist in a save file, and will free the name Model
for a displayable that constructs Models.
2021-06-04 19:45:35 -04:00
Tom Rothamel 0ad0778796 Document controller change. 2021-06-03 22:29:42 -04:00
Tom Rothamel a9c1424f03 Hide the mouse immediately when a controller event occurs.
Fixes #2843.
2021-06-02 18:15:15 -04:00
Tom Rothamel 99d052bd0c Fix an issue loading TransformState from pre-7.4.5. 2021-06-02 02:13:46 -04:00
Tom Rothamel e37615b0be Better error handling for invalid .rpycs.
- Log .rpyc load failures to log.txt.
- Report the right filed that failed to load.
2021-06-01 18:52:20 -04:00
Tom Rothamel 554a89fc61 Document how invoke_in_thread is expected to be used.
Per the discussion in #2842.
2021-06-01 18:32:55 -04:00
Tom Rothamel 1a00655e42 Name and sponsors. 2021-06-01 00:06:23 -04:00
Tom Rothamel de045d96eb Store and reuse the default renderbuffer.
This fixes an issue on iOS where the renderbuffer doesn't default
to 0, and iOS doesn't seem to work if the renderbuffer isn't bound
to the default.
2021-05-31 21:36:00 -04:00
Tom Rothamel cd30206152 Update changelog. 2021-05-31 16:01:43 -04:00
Tom Rothamel 773694f442 Compile Ren'Py before distributing.
This will ensure that if the Python files were changed for some
reason, they'll be recompiled with the Ren'Py path, and not the
user's.

Fixes renpy/renpyweb#16.
2021-05-31 14:19:45 -04:00
Tom Rothamel a9c3afb0e4 Translate strftime piece by piece.
Passing translated strings to strftime doesn't work on Windows 10
when the locale is set to Korean, but passing the standard codes
does. So we pass the standard codes in, and just include the rest
in the final string.

Fixes #2837.
2021-05-31 01:54:21 -04:00
Tom Rothamel f6ff593501 Have the blur shader use a constant number of iterations.
This overcomes a limitation of webgl and some other gl implementations.

Fixes #2838.
2021-05-30 18:20:49 -04:00
Tom Rothamel 0f0e24936a Update changelog. 2021-05-30 11:11:38 -04:00
Tom Rothamel bd96fa9f51 A modal screen should block all events, evne if the mouse is not in Ren'Py.
Fixes #2836.
2021-05-29 19:19:30 -04:00
Tom Rothamel 7950eb6d80 Fix documentation typo. 2021-05-28 19:45:24 -04:00
Tom Rothamel 31d34a4716 Fix mouse example. 2021-05-28 01:28:12 -04:00
Tom Rothamel a87f37417f Bump version. 2021-05-27 00:04:53 -04:00
Tom Rothamel 71d2c7f2d7 Tweak emscripten_sleep timings.
This was intended to help with audio, and might help responsiveness.
2021-05-26 00:37:26 -04:00
Tom Rothamel 000e22d36e Update changelog. 2021-05-25 20:37:22 -04:00
Tom Rothamel eb83ce6a5a doc: Fix typo. 2021-05-24 22:06:07 -04:00
Tom Rothamel f0bcf007b6 Add compat for a behavior changed in 6e8d622282.
Per https://lemmasoft.renai.us/forums/viewtopic.php?f=32&t=62221&p=543 .
2021-05-24 21:29:42 -04:00
Tom Rothamel 196e7e5ae3 Move the add statement to its own section of the screens documentation. 2021-05-24 20:15:23 -04:00
Tom Rothamel a1309906d0 Document how to get out of corrupted textures.
Fixes #2823.
2021-05-24 19:37:34 -04:00
Tom Rothamel 0f28be2336 Tweak the Character documentation. 2021-05-24 18:36:10 -04:00
Tom Rothamel 2d8770ddda Merge pull request #2815 from Gouvernathor/patch-1
Document Character() not requiring a name
2021-05-24 18:20:41 -04:00
Tom Rothamel 53184c3061 Merge pull request #2825 from Gouvernathor/patch-2
Fix problems.rst problem
2021-05-24 18:19:29 -04:00
Gouvernathor 4575414038 Remove unuseful orphan sentinel 2021-05-24 17:06:45 +02:00
Gouvernathor bcadbffa41 Fix problems.rst problem 2021-05-24 17:03:46 +02:00
Tom Rothamel 2fc3721ef4 Merge branch 'master' of github.com:renpy/renpy 2021-05-23 17:41:44 -04:00
Tom Rothamel 83aee2ecfc Merge pull request #2822 from Gouvernathor/patch-2
Turn renpy.absolute into absolute
2021-05-23 16:55:19 -04:00
Gouvernathor 38564e29eb Turn renpy.absolute occurences into absolute (2/2) 2021-05-23 21:02:11 +02:00
Gouvernathor ec5f9633c1 Turn renpy.absolute occurences into absolute (1/2) 2021-05-23 21:00:46 +02:00
Tom Rothamel 0eeeaef1e3 mousearea: Loses focus to something modal above it. 2021-05-23 14:43:46 -04:00
Tom Rothamel 88c2e4843d Change how TIMEVENT w/ modal works.
Rather than propagating TIMEVENT with modal=True through the
entire tree of displayables, this marks the event as modal
when the modal test passes.

This makes it possible for a displayable to know if it has a
modal displayable in front of it.
2021-05-23 14:41:14 -04:00
Tom Rothamel fb373f00c9 Update the changelog. 2021-05-22 20:04:20 -04:00
Tom Rothamel c92151db70 Remove access to the clear theme.
Right now, it's so similar to the default theme, having two
choices is confusing.
2021-05-21 20:33:13 -04:00
Tom Rothamel e921052bec Avoid a save/reload cycle when changing launcher theme.
Makes the problem found in #2816 less severe.
2021-05-21 19:52:21 -04:00
Tom Rothamel 3ec8d8968e Disable autoreload when an update is happening.
This prevents the update from causing autoreload.
2021-05-21 19:18:41 -04:00
Tom Rothamel 18cf187f78 Merge pull request #2818 from Gouvernathor/patch-2
Fix typo in retro-compatibility mode
2021-05-21 11:24:17 -04:00
Gouvernathor 7ab1b21925 Fix typo 2021-05-21 17:22:08 +02:00
Tom Rothamel a5fd514439 Avoid double-substituting when translating who_prefix and what_prefix.
This is a behavior change, but one that seems correct - we're more
likely to want to translate the prefix and suffix directly, rather
than the previous setup where "Prefix[who]Suffix" was translated.

Compat is included.

Fixes #2817.
2021-05-20 20:51:32 -04:00
Gouvernathor 7bdc09f98e Document Character() not requiring a name 2021-05-19 12:19:36 +02:00
Tom Rothamel fe5bdffba9 Fix documentation typos. 2021-05-19 00:56:47 -04:00
Tom Rothamel 979ba6c310 Check in build artifacts. 2021-05-19 00:30:18 -04:00
Tom Rothamel d8be65b689 Merge pull request #2796 from Andykl/memory-skip-constants
Add `skip_constants` keyword for memory profile functions
2021-05-19 00:10:55 -04:00
Tom Rothamel 91a56b0050 Fix doc typos.
Per #2803.
2021-05-18 23:26:19 -04:00
Tom Rothamel 98fe346057 Reorganize documentation.
Per #2810.
2021-05-18 23:22:42 -04:00
Tom Rothamel b64c722704 Doc fixes.
Fixes #2811.
2021-05-18 23:19:56 -04:00
Tom Rothamel a8b94c5cbe Ensure runtime calls to SLScreen use the SLScreen.const_ast field.
This field stores the AST, when no transcludes are supplied.
At https://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=62163 ,
and issue was reported that was caused by code looking at the
unanalyzed ast, and not the analyzed AST taken from disk.
2021-05-18 23:17:40 -04:00
Tom Rothamel 2ed6477406 Update the GL properties documentation.
Document gl_anisotropic, gl_mipmap, and gl_texture_wrap.

Document all properties with the gl_prefix, now that it is
accepted everywhere.
2021-05-17 19:13:33 -04:00
Tom Rothamel ab53653e98 Add gl_texture_wrap.
This lets the creator define the wrap mode of a newly created
texture.

Fixes #2806.
2021-05-17 09:00:49 -04:00
Tom Rothamel e2806a0fdd Strip gl_ prefixes from Render properties.
This will allow the properties to be documented with the gl_ prefixes,
which should make the docs less confusing.
2021-05-17 08:59:37 -04:00
Tom Rothamel 97f4473510 Update changelog. 2021-05-17 08:47:23 -04:00
Tom Rothamel cd955e873e Do not attempt to draw an empty mesh.
This attempts to address renpy/renpyweb#13.
2021-05-17 01:36:03 -04:00
Tom Rothamel 3e6d9837e1 Store the virtual width and height in text.Layout.
This should cache draws and prevent re-layout of text.
2021-05-16 18:18:58 -04:00
Tom Rothamel da13ff608f Remove the android splashscreen once the first frame is up. 2021-05-16 03:09:23 -04:00
Tom Rothamel e57dbe9309 Add renpy.screenshot_to_bytes.
A way of taking a screenshot that's compatibile with im.Data.

Fixes #2808.
2021-05-14 02:02:16 -04:00
Tom Rothamel 52fd578c9b Sponsors updated. 2021-05-13 19:11:19 -04:00
Tom Rothamel 04e1b3fe1a Add renpy.music.get_loop()
Making it possible to get the current audio loop.
2021-05-13 19:06:36 -04:00
Tom Rothamel ab9b2056e2 Add support for masking out passwords.
That is, replacing the text of the password with some other
character.
2021-05-12 21:35:14 -04:00
Tom Rothamel f0e5c55a92 Save into _quit_slot when the MainMenu action is used.
Fixes #2802.
2021-05-12 20:25:49 -04:00
Tom Rothamel c476ae02d9 gl2: Fix memory leak through textures.
The texture list was getting cleared, but not freed, when the
screen was resized.

Fixes #2805.
2021-05-11 08:50:36 -04:00
Tom Rothamel 90cc7fd134 doc: Fix omitted parts of a sentence in the changelog. 2021-05-11 01:21:09 -04:00
Tom Rothamel d33f9ce8c8 Tweak the name. 2021-05-09 23:40:49 -04:00
Tom Rothamel ebf2541a2b Fix typo. 2021-05-09 23:37:19 -04:00
Tom Rothamel a10eede56b doc: Update changelog and credits. 2021-05-09 23:08:03 -04:00
Tom Rothamel 668aa78210 3dstage: Improve documentation. 2021-05-09 22:21:49 -04:00
Tom Rothamel 3341571309 Fix typo. 2021-05-09 22:16:29 -04:00
Tom Rothamel a3d225eeef Allow perspective to take a single float.
This is the distance to the 1:1 plane.
2021-05-09 22:14:12 -04:00
Tom Rothamel 6cf1d9d0bc doc: Update index. 2021-05-09 02:20:18 -04:00
Tom Rothamel 349dda4afc Change the default far-plane. 2021-05-09 02:19:11 -04:00
Tom Rothamel 991e645983 Doc improvements/fixes. 2021-05-09 02:15:57 -04:00
Tom Rothamel 723c1a2184 Add a fov argument to gui.init. 2021-05-09 02:13:24 -04:00
Tom Rothamel 1191bd44ff Document the 3d stage. 2021-05-09 02:12:35 -04:00
Tom Rothamel afa981802d Check in atl/model docs. 2021-05-08 22:00:55 -04:00
Tom Rothamel 26e0484977 Consoldate string translation scanning in a single file.
Removing a legacy function in the process.
2021-05-07 23:34:32 -04:00
Tom Rothamel 084742864b Accept newlines in single-quoted strings.
Fixes #2791.
2021-05-07 23:25:22 -04:00
Tom Rothamel 71b5316d91 Merge pull request #2799 from Gouvernathor/patch-1
Add config.pause_after_rollback to the doc
2021-05-07 23:18:05 -04:00
Gouvernathor b84c94ceb0 Add config.pause_after_rollback to the doc 2021-05-08 05:17:17 +02:00
Tom Rothamel 7cc7e6e539 Automatically switch to the dummy driver if audio doesn't start.
By enabling the dummy driver, it's possible to play video
even if the audio doesn't work.

Fixes #2793.
2021-05-07 23:04:00 -04:00
Tom Rothamel 1ae4c7724f Use soft checkpoints to fix pause problems.
Fixes #2794, fixes #2789.
2021-05-07 22:44:49 -04:00
Tom Rothamel 6088d74398 Revert "Revert "Make sure roll-forward persists through a pause skipped after rollback.""
This reverts commit 648e764afa.
2021-05-07 22:29:21 -04:00
Tom Rothamel 7910963334 Do not include a screenshot in a save if the interface has not been initialized.
This generally would be an autosave on Android, when the interface can't start
propery. Testing and analysis shows that Ren'Py can load these files without
issue.

Fixes #2797.
2021-05-06 21:01:54 -04:00
Tom Rothamel 648e764afa Revert "Make sure roll-forward persists through a pause skipped after rollback."
This reverts commit 74b8975a9f.

Temporarily, until the issues can be fixed.
2021-05-06 02:59:10 -04:00
Tom Rothamel 4443cfb4bd Merge pull request #2790 from Gouvernathor/patch-1
Add a fallback value for ConditionSwitches
2021-05-05 18:08:29 -04:00
Gouvernathor 963cbe07cf Avoid the exception only in non-developer mode 2021-05-06 00:04:58 +02:00
Andy_kl 45de3635d2 Add skip_constants keyword for memory profile functions 2021-05-05 22:47:11 +02:00
Tom Rothamel 74b8975a9f Make sure roll-forward persists through a pause skipped after rollback.
Fixes #2789.
2021-05-04 00:05:08 -04:00
Tom Rothamel 283574353e DynamicDisplayable: Clear raw_child when child is cleared.
Visit now updates the DD, but it can leave a raw_child around,
so this clears that out as part of the dupliction, leaving
the state as what it was if visit wasn't called.

Fixes #2788.
2021-05-03 23:54:15 -04:00
Tom Rothamel 1e704bf620 gl2: Use sized variants of GL_DEPTH_ATTACHMENT on gles.
The unsigned version is found on GL, the sized variants on GLES,
and it's an ANGLE-breaking errot to mix them.

Fixes #2787.
2021-05-03 20:52:49 -04:00
Gouvernathor 3bcfcc58c8 Add a fallback value for ConditionSwitches 2021-05-04 01:13:23 +02:00
Tom Rothamel 4770ddcbb7 Remove the link to the renpyweb patreon.
Now that it's ended.
2021-05-02 21:48:16 -04:00
Tom Rothamel 456d627086 Visit the child of a DynamicDisplayable.
Fixes #2781, and probably other things as well.
2021-05-02 20:41:50 -04:00
Tom Rothamel e151fd9984 Merge pull request #2721 from jsfehler/patch-2
Replace empty tuple/dict func call with literal
2021-05-02 13:10:54 -04:00
Tom Rothamel 038f5306a1 Disallow reloading in a replay.
Fixes #2314. Fixes #2587.
2021-05-02 13:09:06 -04:00
Tom Rothamel 3427c5d6c7 Merge pull request #2784 from Gouvernathor/patch-1
Keep xfit and yfit from overriding non-boolean fit_first values
2021-05-02 12:58:10 -04:00
Gouvernathor 9dde6770f8 Keep xfit and yfit from overriding str fit_first
fixes #2782
2021-05-02 06:36:44 +02:00
Tom Rothamel 8967662f44 Merge pull request #2779 from Moshibit/master
Update Spanish translation of the launcher
2021-05-02 00:13:41 -04:00
Tom Rothamel 05fbf106bc Merge pull request #2780 from CodePsy-2001/master
Fixed awkward Korean Translations
2021-05-02 00:13:30 -04:00
Tom Rothamel 1c0117d6b1 Remove unneeded depth clear. 2021-05-01 00:34:07 -04:00
Tom Rothamel 7798de30d2 Apply a matrixtransform-like offset/unoffset to zzoom. 2021-04-30 23:47:35 -04:00
Tom Rothamel c32c9182be gl2: Restore support for depth and the depth test.
Also, default to creating a 24-bit depth buffer, in gl2 mode.
2021-04-30 23:46:11 -04:00
Tom Rothamel 1149c814e4 Illusrations for 3D Stage documentation. 2021-04-30 02:57:15 -04:00
Tom Rothamel 84989713a8 Apply adjust_attributes to images that need to be parameterized. 2021-04-29 21:43:02 -04:00
Tom Rothamel ed62d691c5 Mouse docs. 2021-04-28 23:01:21 -04:00
Tom Rothamel ffa1893cbb Make MouseDisplayable.add chainable. 2021-04-28 22:12:26 -04:00
Moshibit d5f722e9e8 Update launcher.rpy 2021-04-28 21:05:02 -05:00
CodePsy 8cdc154a07 Update tutorial_screen_displayables.rpy 2021-04-29 01:44:43 +09:00
CodePsy 6512439006 Update tutorial_playing.rpy 2021-04-29 01:43:04 +09:00
CodePsy 9f96a82675 Update tutorial_distribute.rpy 2021-04-29 01:40:10 +09:00
CodePsy d27fb4e5f6 Update tutorial_director.rpy 2021-04-29 01:38:06 +09:00
CodePsy e8448d4980 Update script.rpy 2021-04-29 01:32:36 +09:00
CodePsy 31e653b449 Update indepth_translations.rpy
It contained a serious translation mistake that had not been corrected for a long time.
ex) directory: game/tl/language -> game/tl/언어 (should not be translated...)
2021-04-29 01:30:30 +09:00
CodePsy aba3ef89a3 Update indepth_transitions.rpy 2021-04-29 01:25:47 +09:00
CodePsy 2f7cee7364 Update indepth_text.rpy 2021-04-29 01:19:57 +09:00
CodePsy 295d2bec3e Update indepth_style.rpy 2021-04-29 01:16:53 +09:00
CodePsy 0d43c13a13 Update indepth_minigame.rpy 2021-04-29 01:11:30 +09:00
CodePsy 9b244ccaaa Update indepth_displayables.rpy 2021-04-29 01:07:22 +09:00
CodePsy 487c75a7db KoreanTranslationUpdated
Fixed awkward translations...
2021-04-29 01:04:15 +09:00
Moshibit 31ae188341 Update launcher.rpy 2021-04-28 07:05:35 -05:00
Moshibit 5ad5c86adf Update Spansih translation 2021-04-28 07:04:41 -05:00
Moshibit 696e7edeac Merge pull request #2 from renpy/master
update from renpy-master
2021-04-28 07:02:01 -05:00
Tom Rothamel c667a3d33f Update changelog. 2021-04-28 01:02:35 -04:00
Tom Rothamel 83bda35820 Merge pull request #2484 from Andykl/py-3-threading
Make threading function names consistent to snake_case
2021-04-27 23:43:11 -04:00
Tom Rothamel b4ea1268b8 Update sponsors doc. 2021-04-27 23:41:53 -04:00
Tom Rothamel a21c85e3f8 Various fixes to renpy.get_mouse_name() 2021-04-27 01:25:27 -04:00
Tom Rothamel c5d1729352 Reset the mouse when a default mouse is not given.
Fixes #2776.
2021-04-27 01:23:35 -04:00
Tom Rothamel 747a47bb74 steam: Improve MacOS steam support.
* Put steam_appid.txt in the MacOS directory.
* Ignore steam_appid.txt wherever it is.
2021-04-26 20:47:38 -04:00
Tom Rothamel d801dc9f7a Add caveat. 2021-04-25 22:33:28 -04:00
Tom Rothamel d32c6c2a4f Add config.adjust_attributes.
Per #2775.
2021-04-25 22:24:46 -04:00
Tom Rothamel 0c6d5e8092 lint: Only set the error code if an option are giving.
Setting the error code breaks the launcher, and while it could be
fixed, it also breaks existing CI tooling. So make the change for

Fixes #2772.
2021-04-25 21:32:35 -04:00
Tom Rothamel 10bd81ef50 mousedisplayable: Allow changing and animated mice. 2021-04-24 22:08:33 -04:00
Tom Rothamel d0e4b33f4b Change the default for u_lod_bias to -.5, and make if configurable.
The goal of this is to make sure we're always scaling down, but only
by one mipmap level, so as much information as possible is represented
in the final image, without any being lost by a too-big mipmap.

Per #2764.
2021-04-23 22:44:25 -04:00
Tom Rothamel 4a74d3a763 Open errors and tracebacks in an editor if Ren'Py is run from the launcher. 2021-04-22 22:24:44 -04:00
Tom Rothamel 80eeb9ae1f Add the Swing transition to Ren'Py. 2021-04-21 20:24:31 -04:00
Tom Rothamel b175042357 Allow anything with a __doc__ string to be documented. 2021-04-21 20:24:06 -04:00
Tom Rothamel 213e027b3c Merge pull request #2703 from Gouvernathor/patch-2
Launcher Dark Theme
2021-04-20 22:06:04 -04:00
Tom Rothamel e3a69e21b6 Merge pull request #2771 from midgethetree/bug-hard-pause-unfocused-dismiss
make hard pause undismissable
2021-04-20 22:03:03 -04:00
midgethetree de350efca3 make hard pause undismissable
In projects where 'dismiss_unfocused' has been provided keys, these keys will also dismiss unfocused hard pauses. Generally this is undesirable, so this commit makes it so hard pauses use an empty list for the dismiss_unfocused parameter of the say behavior.
2021-04-19 11:31:07 -04:00
Tom Rothamel 47765c703e stage: Camera movement. 2021-04-19 02:03:03 -04:00
Tom Rothamel 58d73e9ea3 Check and document order of operations for rotation. 2021-04-18 17:21:24 -04:00
Tom Rothamel f2a30b8a02 perspective: Fix anchor coordinates. 2021-04-18 15:32:21 -04:00
Andy_kl 836bc3dfc6 Fix default value of transform property nearest
Per #2770
2021-04-18 19:40:01 +02:00
Tom Rothamel efd6a5d042 Add the MouseDisplayable displayable.
This moves an image around to where the mouse cursor would be,
making it possible to emulate the mouse cursor using displayables.
(And probably other effects.)
2021-04-18 00:13:33 -04:00
Tom Rothamel 293d07f539 Add config.mouse_displayable.
This allows the mouse to be drawn by a displayable, as an alternative
to the default or hardware-accelerated mouse cursors.
2021-04-17 23:57:09 -04:00
Tom Rothamel 758131f5fd Undocument PerspectiveMatrix. 2021-04-17 22:22:30 -04:00
Tom Rothamel fd6cdffa43 gl1: Avoid the texture test after the first start.
Fixes #2762.
2021-04-16 23:51:19 -04:00
Tom Rothamel 163f696d3f If a renderer is given by the environment, override config.gl2.
This is for testing purposes.
2021-04-16 23:51:19 -04:00
Tom Rothamel 4da0ec62cb Merge pull request #2718 from lent1-andrealphusgames/layeredimages_unknown_tags
Avoid unknown attributes warning in layeredimage
2021-04-15 15:46:34 -04:00
Tom Rothamel 391dc101b7 Clear any residual events at android start.
This probably fixes #2768.
2021-04-14 01:34:39 -04:00
Tom Rothamel f63be5c57a gl2: Use the correct internal type when creating a RenderBuffer.
This fixes display on Android.
2021-04-14 01:24:14 -04:00
Tom Rothamel 1103d0397e Reload the game without saving when at the main menu.
Fixes #2761.
2021-04-14 00:35:27 -04:00
Tom Rothamel 77b7a9e116 Improvements to transitions on layers.
* When a layer transition is occuring, use the old (rather than new)
  state for the global transition.
* Allow layer transitions to persist between interactions.
* The scene statement clears layer transitions.

Fixes #2763.
2021-04-14 00:25:09 -04:00
Tom Rothamel ccdb23c6bd Document incompatible changes. 2021-04-13 20:00:47 -04:00
Tom Rothamel ecdfda0a08 Change the behavior of scene to not clear the layer at list.
The goal of this change is that the 3d stage can be set up once,
and then left for the entire game.

Fixes #2766.
2021-04-13 19:52:43 -04:00
Tom Rothamel a38e8c2a05 Add the zzoom property.
If true, the image is scaled so it's 1:1, even if it's not on the
1:1 plane.
2021-04-13 01:19:31 -04:00
Tom Rothamel 14b4a49e01 Fix {x,y}{pos,anchor} inheritance.
Setting these variables to None is required to have diff4 work
properly.
2021-04-13 00:25:09 -04:00
Tom Rothamel 05c5db7e11 Redo how z works.
Now, the distance to the 1:1 z plane is specified as part of the
perspective, which means zanchor (and its weirdness) can go
away.
2021-04-12 21:58:11 -04:00
Tom Rothamel 1220be752c Remove development test. 2021-04-12 21:55:17 -04:00
Tom Rothamel 2b34259319 Centralize the definition of transform properties.
This extends the work done for the uniforms and gl_properties
by making all non-alias properties defined in a single place
in transform.py, and then updating the other data structures
required.
2021-04-12 21:06:55 -04:00
Tom Rothamel 20a29b8047 Merge pull request #2427 from Gouvernathor/master
Porting ImageDissolve to the new matrixcolor system
2021-04-12 19:24:28 -04:00
Gouvernathor 1ece5c9c55 replace config.gl2 with display.render.models 2021-04-12 20:33:01 +02:00
Gouvernathor d50cbc33bc fix typo 2021-04-12 20:25:27 +02:00
Tom Rothamel df85cb5748 atl: Add matrixanchor.
This is the origin of the transform matrix relative to the
transform, which tends to ease writing matrix transforms.
2021-04-11 23:54:47 -04:00
Tom Rothamel 94031c2a69 Default to gl2 mode for new releases. 2021-04-11 22:33:10 -04:00
Tom Rothamel ae5b5c76bf In the mac app, move the Python library into Resources.
This will prevent codesign from trying to sign it, making
notarization possible again.

Fixes #2759.
2021-04-10 23:30:33 -04:00
Tom Rothamel f39e64fd25 Initial work on perspective rendering. 2021-04-09 22:24:00 -04:00
Tom Rothamel bf1f499678 Document size limits for config.mouse. 2021-04-08 09:53:04 -04:00
Tom Rothamel a7d0751872 Add zpos, zanchor, and perspective properties.
Just at the Transform/ATL level, as these still need to be given
meaning.
2021-04-07 21:55:01 -04:00
Tom Rothamel a8adeace3f Fix the type of the blur bias.
Fixes #2757.
2021-04-06 22:51:44 -04:00
Tom Rothamel 6f20c629f0 gl2: Use a Renderbuffer for the color attachment.
Since we're only copying from the framebuffer, we can use a renderbuffer
rather than a texture as the rendering targer. This should be a more
optimized path.
2021-04-06 21:24:15 -04:00
Tom Rothamel 624973d518 Properly match string ends wehn doing newline quoting.
This may need a force recompile to work. Fixes #2756.
2021-04-06 02:23:15 -04:00
Tom Rothamel 25403b6cdf Merge pull request #2755 from Andykl/live2d-fix-dropped-curve
Add implicit Step with last reached value till the end of the motion
2021-04-05 21:02:07 -04:00
Andy_kl 3a61739d69 Add implicit Step with last reached value till the end of the motion 2021-04-05 01:33:01 +02:00
Tom Rothamel b8fc937781 Add release_changes script.
This shows the files that were added and removed between
releases.
2021-04-04 13:26:54 -04:00
Tom Rothamel 7983d80527 lint: Do not warn when defining a builtin name the creater is expected to set.
Fixes #2753.
2021-04-03 19:47:41 -04:00
Tom Rothamel b0842a4f1b Report if a text that doesn't take a close is closed.
Fixes #2752.
2021-04-03 14:15:19 -04:00
Tom Rothamel a5920b2200 Re-add part of acc19171c3.
It was necessary to undo the combining of wait and get, as
this could lead to wait returning None when factor == 0, and
display failing.

However, the last-frame logic makes sense, so re-include it.
2021-04-02 23:16:32 -04:00
Tom Rothamel cee512ea61 Revert "Fixes for Live2D"
This reverts commit acc19171c3.
2021-04-02 23:12:07 -04:00
Tom Rothamel 8aa0cf01cd Use the field for equality comparisons in VariableValue or FieldValue.
Fixes #2747.
2021-04-01 17:53:58 -04:00
Tom Rothamel 360751b071 Set the exit code to 1 when lint fails.
Fixes #2746.
2021-03-31 17:18:39 -04:00
Tom Rothamel 3f4bee5558 Add the matrixtransform transform property.
This allows the reverse matrix to be specified, with the forward
matrix being derived from its inverse.
2021-03-30 19:44:33 -04:00
Tom Rothamel 7229cc87ef Add transform matrices. 2021-03-30 01:13:38 -04:00
Tom Rothamel 15721dce53 Fix typo. 2021-03-29 19:06:24 -04:00
Tom Rothamel 06b4acea6e matrix: Add a method to compute the inverse of a matrix. 2021-03-28 23:02:39 -04:00
Tom Rothamel 349b204405 Better documention for labels with parameters.
Per #2741.
2021-03-28 14:54:28 -04:00
Tom Rothamel 5a441def70 Indicate that renpy.windows (et al) are true/false, not True/False.
Fixes #2739.
2021-03-27 12:51:07 -04:00
Tom Rothamel 4ebf1d0df8 Allow namespaces to determine if define marks a variable as pure.
This makes older code, that might define persistent.whatever = True,
work correctly with screen optimizations.
2021-03-27 00:30:41 -04:00
Tom Rothamel b5a8ba2b1b Use the flat steam API for get_account_id.
This works around a bug on windows (but not on wine) where crashes
seem to happen when a method is called on CSteamID.
2021-03-26 00:26:47 -04:00
Tom Rothamel ba44e94bfd Commit keywords. 2021-03-25 22:55:13 -04:00
Tom Rothamel 1a0a569a12 Change how /** works at the end of a build.classify patter.
Per #2737, it's a bit confusing that excluding /** will exclude
all files in the directory. To fix this, the exclude behavior
is changed to not match a directory that is matched by the pattern
without a trailing * or **.

Fixes #2737.
2021-03-25 22:52:49 -04:00
Tom Rothamel a98c667b97 Revert "distribute: * and ** must match 1 character."
This reverts commit 10904d65c4.
2021-03-25 18:35:52 -04:00
Tom Rothamel c0ddba8c4b Improve handing of TIMEEVENT and modal.
With these changes, a modal TIMEEVENT is introduced, that is
created when a modal displayable ignores an event. This is
handled differenty, most notibly by not being used for
skipping, while still being used for pause and for
timers.
2021-03-24 23:48:46 -04:00
Tom Rothamel cdf4f71d88 Restore the handling of modal screens.
This probably is a fix for #2736, and maybe #2733.
2021-03-24 23:14:51 -04:00
Tom Rothamel 10904d65c4 distribute: * and ** must match 1 character.
Per #2737.
2021-03-23 23:26:06 -04:00
Tom Rothamel f789128208 Avoid pausing after rollbacks.
This tends to improve rollback by having it wind up on a 'real'
statement and not a pause.

Fixes #2731.
2021-03-23 23:11:18 -04:00
Tom Rothamel 639d5d9ce1 Merge pull request #2735 from xavi-mat/master
Update Spanish translation
2021-03-22 19:53:34 -04:00
xavi-mat b5d552f9b3 Update Spanish translation
Missing strings.
2021-03-22 21:43:43 +01:00
xavi-mat 8bd72ea824 Update Spanish translation
Missing strings about JDK
2021-03-22 21:42:03 +01:00
xavi-mat 9dc3152ddf Typo in Spanish translation 2021-03-22 21:27:13 +01:00
xavi-mat 0f98104e05 Typo in Spanish translation 2021-03-22 21:26:50 +01:00
xavi-mat fc4357ea02 Typo in Spanish translation 2021-03-22 21:26:11 +01:00
Tom Rothamel 02c009a859 Merge pull request #2730 from sagittaeri/feature/audio_filename_sync_channel
Can now sync to channel when playing audio
2021-03-21 14:04:25 -04:00
KG c8952a9f86 Added documentation for feature 2021-03-21 16:13:45 +11:00
Tom Rothamel 0fda299d86 Update the changelog for blend. 2021-03-20 21:36:49 -04:00
Tom Rothamel 97156ba471 atl: Add the blend property.
This selects a blend mode.
2021-03-19 22:50:24 -04:00
KG 04e8f89655 Can now sync to channel when playing audio
Ensures that we can sync the audio clip time of new music layer to a channel we specify. This will allow the music layers to remain in sync after save/load (<from X> doesn't sync after save/load).

Usage:
<sync [channel_name]>[audiofilename.ogg]
2021-03-20 12:18:18 +11:00
Tom Rothamel 50aedffdd8 Bump version. 2021-03-18 19:33:39 -04:00
Tom Rothamel ed17bcfc84 Change the name of the release. 2021-03-17 20:51:24 -04:00
Tom Rothamel b8d1b9a4dc Update changelog. 2021-03-16 23:49:48 -04:00
Tom Rothamel ea6de5a7af Update the gl2 function list. 2021-03-16 23:08:46 -04:00
Tom Rothamel 1d8f8a4220 live2d: Support additive and multiplicative blending.
Fixes #2723.
2021-03-16 22:47:17 -04:00
Tom Rothamel 040c7180de Add gl_blend_func.
This property makes it possible to use glBlendFuncSeparate and
glBlendEquationSeparate to customize how pixels are drawn to
the framebuffer.
2021-03-16 22:42:32 -04:00
Tom Rothamel e1e8deee2f Separate texture pixel-perfection from texture size limits.
Fixes #2725, the reina test, which was ultimately cause by coordinates
being wrong when an 8192x8192 texture was shrunk down to 4096x4096.
2021-03-15 23:10:32 -04:00
Tom Rothamel b782ebc0f6 Update the changelog. 2021-03-14 17:43:46 -04:00
Tom Rothamel 7c0d6e3b5f Document old-game. 2021-03-14 17:37:30 -04:00
Tom Rothamel 8f306d06f6 Update sponsor docs. 2021-03-14 17:03:53 -04:00
Tom Rothamel 51262b2062 gl1: Avoid adjusting the size of a maximized window.
Fixes #2722.
2021-03-13 23:13:22 -05:00
Joshua Fehler a1a381884d Replace empty tuple/dict func call with literal 2021-03-13 21:19:54 -05:00
Tom Rothamel 67773d9fe3 live2d: Reset opacities with other parameters. 2021-03-13 21:08:02 -05:00
Andy_kl 211f5368a4 Add Cubism zip files to ignore 2021-03-13 21:33:29 +02:00
Tom Rothamel 2f2f5a3c30 Merge pull request #2720 from Gouvernathor/patch-1
Fix persistent Achievements backend
2021-03-13 13:30:58 -05:00
Gouvernathor d2116b6216 Clear progression when clearing an achievement
Otherwise a state of limbo would happen, when you're at or above the max progression level, but you don't have the achievement. Unlocking the achievement then would require to make a progression even higher than previously recorded.
Also there wouldn't be any way to reset progression towards an achievement.
2021-03-13 19:29:13 +01:00
Gouvernathor 9b7f14aafb Avoid registering invalid values 2021-03-13 19:24:17 +01:00
Tom Rothamel 8cf969bfee Add mixer functions. 2021-03-12 17:30:57 -05:00
Lent1 130eb08652 Avoid unknown attributes warning when defining -attribute and variant in attribute_function 2021-03-12 11:41:55 +01:00
Tom Rothamel 18e87547d1 Merge pull request #2717 from Andykl/fix-l2d
Fixes for Live2D
2021-03-12 00:00:51 -05:00
Andy_kl acc19171c3 Fixes for Live2D 2021-03-12 02:08:32 +02:00
Tom Rothamel 2b90a11621 Add support for old-game.
Old-game is a new directory that stores the .rpyc files from the
last release of the game. Unlike in the rest of Ren'Py, the .rpyc
files in old-game can be checked in - they're not intended to be
changed on a regular basis. Ren'Py preferentially uses the .rpyc
files in old-game when assigning names to statements, which means
that even if something prevents the .rpyc files from being
generated, the old-game .rpycs will be used.
2021-03-10 23:14:08 -05:00
Tom Rothamel 0f7edd23e4 Correct use of config.allow_underfull_grids.
Fixes #2714.
2021-03-10 01:59:45 -05:00
Tom Rothamel e407ac2f58 Report an error for default/define renpy.x.
This is an error that causes weird errors, so it's good to prevent
it.
2021-03-09 23:00:20 -05:00
Andy_kl ef7fc34984 Fix regression of 79296865
Close #2712
2021-03-09 21:01:03 +02:00
Tom Rothamel e56319e11c Bump version. 2021-03-09 00:56:34 -05:00
Tom Rothamel 1064b88875 py3: Compat unicode. 2021-03-08 02:08:37 -05:00
Tom Rothamel beb26aac8a py3: re._pattern_type -> re.Pattern.
Per #2412.
2021-03-08 00:23:04 -05:00
Tom Rothamel 263f3caf13 Update changelog. 2021-03-07 15:34:22 -05:00
Tom Rothamel 4495531585 Merge pull request #2708 from midgethetree/improve-small-gui
Improve small gui
2021-03-07 15:30:52 -05:00
Tom Rothamel 0091838950 Report errors loading GL functions. 2021-03-07 13:31:38 -05:00
Tom Rothamel dd8739ad3f Add config.log_gl_shaders and config.log_gl_extensions.
These should make looking at log.txt files easier, as the important
information is no longer buried under lists of extensions that
Ren'Py doesn't often use.
2021-03-07 13:04:56 -05:00
Tom Rothamel bfe27a29fd Remove the use of gl.uguu.angle.
While it had been used to switch between GLES and ANGLE on windows,
in the most recent SDL2 ANGLE loads anyway. So there isn't much
use in this module, when used with renpy.exe (rather than in
a development mode).
2021-03-07 12:34:35 -05:00
Tom Rothamel 0d918778be gl/gl2: Improve handing of bad GL stacks.
- Fix failover from gl2 to angle2.
- Improve the placement of GL_FAIL_<renderer>, and add it to gl2.
2021-03-07 01:52:00 -05:00
Tom Rothamel 8a5db8b5ed Delete the window when changing renderers.
This let SDL2 create the window again after the GL/GLES settings
have been set. The window creation code is responsible for
selecting the EGL config, and so it's important that it run
in GLES mode.

Fixes #2704.
2021-03-07 01:43:48 -05:00
Tom Rothamel e4e32c1759 Fix tyop.
Fixes #2709.
2021-03-05 20:09:46 -05:00
midgethetree 312dc3ad69 changed slider_pref to slider
The slider_pref style prefix is not used anywhere in the screens. The slider prefix is presumably what was meant to be changed here.
2021-03-05 13:31:06 -05:00
midgethetree 3114f0e061 added choice button text size to small gui variants
Added a "small" variant of gui.choice_button_text_size so the text in choice buttons will by default be larger on small-screen devices.
2021-03-05 13:26:43 -05:00
Tom Rothamel 27a6157d3e Fix typo.
Fixes #2706.
2021-03-04 21:50:15 -05:00
Tom Rothamel 07925c94b4 Merge pull request #2705 from renpy/Beuc-patch-1
doc: clarify video library used
2021-03-03 22:16:17 -05:00
Beuc 9a9c682505 doc: clarify video library used 2021-03-03 21:03:49 +01:00
Gouvernathor 8c8f2ac255 remove unnecessary Action 2021-03-03 16:27:28 +01:00
Gouvernathor 70b1cc58c0 From persistent.dark_theme to persistent.theme 2/2
Now there's the default theme, with generated checkboxes and scrollbar centers but pixel-perfect to the original,
there's the clear theme, same as the default but with generated window and background,
and there's the dark theme, which is the clear theme with tweaked colors.
2021-03-03 12:17:56 +01:00
Gouvernathor c09e2e301a From persistent.dark_theme to persistent.theme 1/2 2021-03-03 12:14:39 +01:00
Tom Rothamel c3acf457f4 Initialize the field storing stats_max on PersistentBackend.
Fixes #2701, introduced by merging #2627.

Also renames the field storing stat_max to self.stat_max.
2021-03-02 23:00:07 -05:00
Tom Rothamel d056f45d84 Add config.main_menu_music_fadein. 2021-03-02 22:46:34 -05:00
Tom Rothamel 5dde40fba4 Fix missing arguments. 2021-03-02 02:11:31 -05:00
Tom Rothamel 66d74400d4 Update changelog and sponsor doc. 2021-03-02 00:16:53 -05:00
Tom Rothamel dac2dc7cb0 doc: Update credits and keywords. 2021-03-01 23:13:51 -05:00
Tom Rothamel f442d52d98 doc: Update changelog and sponsors. 2021-03-01 22:47:59 -05:00
Tom Rothamel 33b9159c06 Document that transform functions can't have side effects.
Fixes #2694.
2021-03-01 01:04:46 -05:00
Tom Rothamel aa0f055d4c Merge pull request #2627 from Gouvernathor/patch-1
Improvements to default achievement backend
2021-02-28 23:40:36 -05:00
Tom Rothamel 993f4eb6ad android: Shut down if the window is not focused on start.
This fixes a problem on the Galaxy Tab A (2016) where if the
display is not focused at start, the GL surface is created
with the wrong depth (565, or perhaps not at all, rather than
8888), and the window is black until focus is lost and gained
again.

When this happens, the app saves, quits, and is resumed on the
re-launch.
2021-02-28 22:20:34 -05:00
Tom Rothamel cbf733b873 Merge pull request #2698 from Gouvernathor/patch-4
Harmonizing and correcting french translation
2021-02-27 21:42:34 -05:00
Tom Rothamel 74387c0e8b Merge pull request #2695 from Beuc/french_update
Update common French translations
2021-02-27 21:42:26 -05:00
Gouvernathor 2e8209be9f Harmonizing and correcting french translation 2021-02-27 19:23:03 +01:00
Tom Rothamel 5b782f70fa gl1: Deallocate textures on resize.
This fixes graphical glitches with rtt/dissolve  on the Galaxy Tab A
(2016), after leaving the app and returning to it.
2021-02-26 23:58:46 -05:00
Tom Rothamel 32fbc4be6f Merge pull request #2691 from Gouvernathor/patch-4
Update french launcher translations
2021-02-26 22:41:40 -05:00
Tom Rothamel 8ae85b1f11 Ensure Window always has window_size. 2021-02-25 20:08:08 -05:00
Tom Rothamel d241f8e988 Move the Ren'Py 6 changelog to its own file. 2021-02-25 17:29:06 -05:00
Sylvain Beucler dcccfaff66 Update common French translations 2021-02-25 21:48:26 +01:00
Tom Rothamel 27bc989106 Merge pull request #2692 from midgethetree/bug-tts-order
Fix order tts reads children in
2021-02-24 23:49:42 -05:00
Tom Rothamel 287e1e7602 li: Consider attribute_function together with unknown. 2021-02-24 22:46:29 -05:00
midgethetree 59bccb876a Fix order tts reads children in
Fixed issue introduced by 3ee3794 where tts reads the children of containers in the wrong order.
2021-02-24 22:40:28 -05:00
Gouvernathor 3607755397 Update french launcher translation 2021-02-25 02:42:35 +01:00
Gouvernathor 384c0e6610 Update french launcher translations 2021-02-25 02:36:50 +01:00
Gouvernathor 330f5c96de Update french launcher translations 2021-02-25 02:34:20 +01:00
Gouvernathor 25701b1912 Update french launcher translations 2021-02-25 02:26:08 +01:00
Gouvernathor e52acc8300 Update french launcher translations 2021-02-25 02:22:03 +01:00
Gouvernathor 3b486fc570 Update french launcher translations 2021-02-25 02:16:46 +01:00
Gouvernathor c9f7766f4c Update french launcher translations 2021-02-25 02:02:17 +01:00
Gouvernathor f81483626a Add dark them option in preferences
As change are taken into account in an init block (the skin.rpy user customization sure are), there needs to be a full reload.
Luckily, for the launcher it doesn't take much time.
2021-02-25 00:00:19 +01:00
Gouvernathor 1745d47af0 Delete vscrollbar_center.png 2021-02-24 22:49:00 +01:00
Gouvernathor d069269e57 Delete scrollbar_center.png 2021-02-24 22:48:53 +01:00
Gouvernathor 08d8b7cfcf Delete checkbox_full.png 2021-02-24 22:47:05 +01:00
Gouvernathor 9babae6c85 Delete checkbox_empty.png 2021-02-24 22:46:58 +01:00
Gouvernathor e7c9ccc69e Various
Recreating l_checkbox_box (but as a transform)
Taking into account the image files put by players in the launcher directory
Remains to delete the scrollbars and the checkbox files from the launcher directory
2021-02-24 22:46:38 +01:00
Gouvernathor d587dee63b Add theme switch and fix checkbox offset
Remains to change the dark theme parameters
2021-02-24 17:29:57 +01:00
Tom Rothamel 68cc010829 Merge pull request #2640 from midgethetree/improve-mousearea
Make mouse area stay unhovered when keyboard focus being used
2021-02-24 00:12:56 -05:00
Tom Rothamel 61cc5da85e Merge pull request #2652 from Andykl/live2d-update-function
Live2D: Added ability to specifiy user function to blend parameters
2021-02-24 00:10:32 -05:00
Tom Rothamel f2889dd612 Merge pull request #2683 from AndriWilford/character_class_callable_for_string_type
Character class callable for string type
2021-02-23 17:33:46 -05:00
Gouvernathor a41ee6b0fc Avoid image and transform names spending 2021-02-23 19:01:58 +01:00
Gouvernathor 80dd973b9d Un-diskloading the launcher skin, V1
remain window and background
2021-02-23 18:49:51 +01:00
Tom Rothamel d5c11b89fa Replace O(n^2) char_map with O(n) algorithm. 2021-02-22 23:55:06 -05:00
Tom Rothamel e8cdeec6bc Editor reformats the whitespace. 2021-02-22 23:48:13 -05:00
Tom Rothamel 1d33aac4bc Merge pull request #2687 from Gouvernathor/patch-2
Add character remapping to FontGroup
2021-02-22 23:22:26 -05:00
Andy_kl a9fb537517 Added doc 2021-02-23 01:50:54 +02:00
Andy_kl 924d012963 Change blend names to match Live2D 2021-02-23 01:43:33 +02:00
Gouvernathor d8cfe62001 Add FontGroup.remap
The method is useful to remap a large set of non-contiguous characters to a single one.
2021-02-22 23:33:38 +01:00
Andy_kl 4547d1b5f0 Merge remote-tracking branch 'upstream/master' into live2d-update-function 2021-02-23 00:26:21 +02:00
Gouvernathor 5c243fe77c Fix segment method 2021-02-22 21:18:08 +01:00
Gouvernathor d4d2c6be7c Update segment method and correct add method
The character replacement isn't scheduled if the character to be replaced has already been binded to a font.
Pending : process target when another FontGroup is given
2021-02-22 19:27:14 +01:00
Gouvernathor 5fda2fc306 Add target and target_increment to the add method
Pending implementation in the segment method.
The char_map dict maps a character to replace to a character to replace it with.
For example char_map[ord('é')] = ord('e') is a nominal use case.
2021-02-22 18:51:03 +01:00
Tom Rothamel a3a5524f24 Make AlphaMask's mask focusable.
This was requested on #renpy, and allows an Input displayable
to be used as the mask in the screen, allowing stylized text.
2021-02-22 01:02:48 -05:00
Tom Rothamel f51b138f32 Allow the player to ignore missing image files. 2021-02-21 22:12:49 -05:00
Tom Rothamel aa599fb920 Use the fsencoding to decode GL error messages.
Fixes #2656.
2021-02-21 19:08:18 -05:00
Tom Rothamel c86024437e Add a pair of functions that enable SDL calls using ctypes.
Fixes #2660.
2021-02-21 15:37:06 -05:00
Tom Rothamel 556de7f2cf Support clicking to dismiss renpy.transition transitions.
Also the with clause of say and call screen.

Fixes #2666.
2021-02-21 12:50:49 -05:00
Tom Rothamel b7045998fd Ensure lint uses the system line ending.
Fixes #2684.
2021-02-21 10:33:20 -05:00
Tom Rothamel c5fec28cc1 ParameterizedText should not eval during lint.
It's possible to have things like expressions and substutions in
the ParameterizedText strings in lint mode, that use variables
that are not initialized. This check for that and avoids the
errors that occur.

Per #2684.
2021-02-21 09:59:19 -05:00
Tom Rothamel 3472c4a8db Avoid synchro start on context change.
Fixes #2681.
2021-02-20 23:17:40 -05:00
Tom Rothamel 2dfd773a0d Avoid quoting unicode in Python.
... when it's being compiled with the new arguments, where there
are unicode literals anyway.
2021-02-20 23:09:39 -05:00
Tom Rothamel be3f9cbeab Merge pull request #2685 from Gouvernathor/patch-2
Add translate_string to the doc
2021-02-20 20:52:51 -05:00
Gouvernathor 1fe40dacb4 Add translate_string to the translation doc page 2021-02-20 22:07:40 +01:00
Gouvernathor 718752b9fe Have translate_string's docstring match _ and __'s 2021-02-20 22:05:32 +01:00
AndriWilford 09c4e87385 Add function callable to string type 2021-02-20 08:29:31 -06:00
AndriWilford cfa9d42d75 Merge pull request #1 from renpy/master
pulling in all changes since initial creation
2021-02-20 08:26:49 -06:00
Tom Rothamel 97d323be2f Add the hide_windows label.
This allows script to extend or replace the hide_windows action.

Fixes #2679.
2021-02-19 22:10:41 -05:00
Tom Rothamel fd8e919262 Merge pull request #2678 from dogtopus/surrogate-on-demand-2
Fix issues that prevented #2653 from working.
2021-02-19 20:46:16 -05:00
dogtopus 3d35cae49f Add spacing between code chunks for better consistency. 2021-02-19 16:05:48 -04:00
dogtopus 914864b922 Tie more loose ends on emoji rendering.
Make font rendering variation-aware and fallback to default variation if the requested variation does not exist.
2021-02-19 15:55:03 -04:00
dogtopus b8aece362b Fix issues that prevented #2653 from working.
Specifically:

- Explicitly cast the Unicode characters to FT_ULong before doing bit ops.
- Add the decoded value by 0x10000 to get the actual Unicode value.
- Change the rest of Py_UNICODE castings to FT_ULong so the Unicode values don't get casted back to 16-bit when rendering.
- Make the decode routine easier to read.
2021-02-19 05:36:55 -04:00
Tom Rothamel ce4fa07db0 Merge pull request #2668 from xavi-mat/master
Make screen main_menu() easier to customize
2021-02-18 21:15:32 -05:00
Andy_kl dc190f6a12 Fix exception on warp window statement.
This is fix #2674
2021-02-18 22:33:50 +02:00
Andy_kl 79296865df Fix exception with renpy.map_event(ev, ["name", "name"]) 2021-02-18 18:23:47 +02:00
Tom Rothamel dceb665e35 Add Chinese credits. 2021-02-18 02:10:42 -05:00
Tom Rothamel 7ed04beae7 Merge pull request #2653 from dogtopus/surrogate-on-demand
Implement surrogate pair decoding.
2021-02-17 21:50:59 -05:00
Tom Rothamel 928b0d1898 Fix warping and screen language.
Fixes #2672.
2021-02-17 20:48:24 -05:00
Tom Rothamel a97727f896 Use the nvidia driver settings API to disable thread optimizations.
This is meant to address #2024, which seems like it might have
something to do with the NVIDA driver blocking when the GIL
is held.
2021-02-17 01:03:49 -05:00
Tom Rothamel 89fc2198b4 Make modal available on frames and windows.
Modal has been added to these two displayables, and has been
changed so that it can take a callable that provides more precise
control over what is and isn't modal.
2021-02-16 20:17:03 -05:00
Tom Rothamel 76e826ce0d doc: Fix FilePagePrevious. 2021-02-16 18:54:48 -05:00
Tom Rothamel 3ee379438e Visit the children of containers in the same order .event() will.
This prevents obscure interactions between the focus system and
the event system in the face of modal screen, where one screen
is modal and the other isn't.
2021-02-16 12:56:38 -05:00
Tom Rothamel 2299353e70 Fix and simplify 12c11e4dd2 . 2021-02-16 09:16:42 -05:00
xavi-mat b479eb40e3 Make screen main_menu() easier to customize
`screen main_menu()` is probably the most customized of all built-in screens.

Currently styles in `screen main_menu` are applied to one `frame` and one `vbox` from `style_prefix`. This way, any time a developer adds a `frame` or a `vbox` to customize their `main_menu` they will inherit some unexpected properties (like `xsize`, `yfill`, `xalign`, `yalign`, a very specific `background`...).
Actually: styles are useful to reuse the same properties in different children of the same type. BUT properties defined in `style main_menu_frame` and `style main_menu_vbox` will hardly be reused.
My proposal (I think it makes more sense) is not to use `style_prefix` in the main menu, but apply directly those two styles to the two unique children that will use them.
This way, if developers add more `vbox` or `frame` to their `main_menu`, they will behave as expected with default properties.
2021-02-16 10:33:06 +01:00
Tom Rothamel 12c11e4dd2 Merge pull request #2664 from Lezalith/master
Pass kwargs of input() to the shown screen
2021-02-15 22:42:13 -05:00
Tom Rothamel 39b1ae0762 Add the mesh_pad transform property.
This, in conjunction with pixel_perfect, makes it possible to
apply shaders to text.

Fixes #2644.
2021-02-14 22:49:14 -05:00
Tom Rothamel 7cffa6323e Avoid writing the i686 version if it's not going to be used. 2021-02-14 11:18:33 -05:00
Tom Rothamel 8209cc0daa Do not update a texure's properties on rtt.
The same texture can be rendered in multiple places.
2021-02-14 01:45:06 -05:00
Tom Rothamel 15c5c2544e Add the gl_pixel_perfect property.
When set when a mesh is created, it marks the mesh to be pixel
aligned, which ensure that text will be sharp.
2021-02-14 00:44:16 -05:00
Jan Masek 51d05d1515 kwargs with prefix _show are passed to the screen, args and kwargs not defined by input() throw an error 2021-02-14 03:38:49 +01:00
Jan Masek 2516846f1a Split properties and pass only those with show_ prefix 2021-02-14 01:01:55 +01:00
Jan Masek 352a9573e5 Pass kwargs of input() to the shown screen 2021-02-14 00:42:00 +01:00
Tom Rothamel d02f908343 gl2: Use the texture size for gl2debug, when relevant. 2021-02-13 18:41:47 -05:00
Tom Rothamel b4660f2881 gl2: Print out the right type for Models and subclasses. 2021-02-13 00:31:34 -05:00
Tom Rothamel da90ee3a93 Add default_mouse to the changelog.
Since we've been getting questions about it.
2021-02-11 22:46:36 -05:00
Tom Rothamel df9a2e7cf8 Set NSHighResolutionCapable when distributing for mac.
Fixes #2658.
2021-02-10 23:25:35 -05:00
Tom Rothamel bb4eab9747 Properly weight blur values between 0 and 1.
Fixes #2661.
2021-02-10 21:11:37 -05:00
Tom Rothamel f36fe5e98b Avoid popping the history list if it's empty.
Fixes #2651.
2021-02-09 00:26:37 -05:00
Tom Rothamel 4eea5e5825 Return the right thing when a cached angle load happens. 2021-02-09 00:18:41 -05:00
Tom Rothamel d65c743fe1 Detect if SDL_GL_LoadLibrary fails.
Fixes #2656.
2021-02-08 22:52:08 -05:00
Tom Rothamel a290978f47 Pass the game name to SDL, for use as the Pulseaudio application name. 2021-02-07 22:40:46 -05:00
Tom Rothamel e98456f28b Merge pull request #2655 from AndriWilford/add-checksum-characteristicflag
Update change_icon.py
2021-02-07 01:37:10 -05:00
AndriWilford 8187b51aff Update change_icon.py
Remove deprecated characteristic flags, per document mentioned in code comment

Add updated checksum to new file. Since the new file is created from manually-packed bits, the original PE object cannot be used for the new checksum. A second object is created for doing this.
2021-02-07 00:34:21 -06:00
Tom Rothamel a4ce5b8c52 Call renpy.fsencode on filenames when seeing if a file can be edited. 2021-02-06 23:18:59 -05:00
dogtopus e04f0b60ab Implement surrogate pair decoding.
This will only be effective when the Python enviroment was built with UCS-2 unicode type (e.g. official Ren'Py binary distribution). Once triggered, it will decode the surrogate pair to an FT_ULong before passing it to the glyph lookup routine in FreeType. Variation sequences are also handled when needed (i.e. <upper surrogate> <lower surrogate> <variation>).
2021-02-06 17:22:29 -04:00
Tom Rothamel cf5b36dc2e Integrate change_icons.py by Andrí, at least for test purposes. 2021-02-05 21:10:19 -05:00
Tom Rothamel d7afd56a94 Fix {done} and self-voicing. 2021-02-04 23:05:00 -05:00
Tom Rothamel d9163b5f49 Implement the {done} tag. 2021-02-04 22:52:08 -05:00
Tom Rothamel a9e790d7ca Merge pull request #2643 from RenpyRemix/master
Add rgba property to Color
2021-02-03 22:41:52 -05:00
midgethetree 5afb4cddf0 fixed minor bug in last commit
Using pending_focus_type to check for keyboard focus appears to have less issues when switching between keyboard and mouse.
2021-02-03 17:27:52 -05:00
Tom Rothamel 47c4f39e6c Document that queue takes fadein.
Fixes #2636.
2021-02-02 22:48:35 -05:00
Tom Rothamel 6eb1272311 Ensure that a queued fadein plays even if the old sound was tight. 2021-02-02 22:23:28 -05:00
Tom Rothamel bd3864390e Add support for fadein to the queue statement. 2021-02-02 22:15:38 -05:00
RenpyRemix 78ad48d532 Add rgba property to Color
Add attribute _rgba and property rgb to Color class and update TintMatrix to use that property
2021-02-02 16:38:53 +00:00
Tom Rothamel a42e4f8885 Document zorder manipulation functions. 2021-02-01 22:17:23 -05:00
Tom Rothamel 8eca706a79 Add functions that allow for the manipulation of zorder.
Fixes #2635.
2021-02-01 22:14:47 -05:00
midgethetree bfc8b9dbf3 Make mousearea stay unhovered when keyboard focus being used
I am of the opinion that when a player is using the keyboard to navigate the interface the location of the mouse should be ignored to avoid potentially confusing the player, but the mousearea displayable doesn't follow this principle. Ideally a mouse area would be able to tell if the keyboard-focused displayable overlaps with it and remain hovered then and only then, so it can be used to style/animate menus of buttons with built in keyboard support, but I have made the mouse area always unhovered when using the keyboard to navigate the interface as a simple solution in the meantime.
2021-02-01 18:15:01 -05:00
Tom Rothamel 1c9d65862d Bump version to 7.4.3. 2021-01-31 15:02:45 -05:00
Tom Rothamel ea86a27cf0 Add missing variables. 2021-01-31 01:13:06 -05:00
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
Gouvernathor b48635ca3e Cleanup, removing stat_modulo 2021-01-26 12:39:09 +01:00
Gouvernathor 2e09e2c4da Minor corrections 2021-01-26 12:25:52 +01:00
Gouvernathor ac868b9d45 Improvements to default achievement backend 2021-01-26 12:18:42 +01: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
Andy_kl 068fbc63f7 Initial 2021-01-26 05:00:23 +02: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
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
Gouvernathor c8fdec4ee6 Update translation.rst 2020-12-07 22:33:21 +01:00
Andy_kl 49ddd672b3 Make threading function names consistent to snake_case 2020-12-03 01:43:04 +02:00
Paul J. Martinez f3b0dbba3b Update show statement documentation 2020-11-26 12:12:30 -08:00
Gouvernathor cf199aa24e Use gl2 functionalities only when activated
Re-enabled the old implementation when config.gl2 is not active
2020-10-30 03:53:52 +01:00
Gouvernathor 6a3e264055 fixed documentation 2020-10-28 18:14:03 +01:00
Gouvernathor 64e8c8c921 Removed references to im and the old Matrix system
Allowed any (fully opaque) displayable to take the role of the image controlling the transition
2020-10-28 17:11:22 +01:00
492 changed files with 25718 additions and 14024 deletions
+2
View File
@@ -109,3 +109,5 @@ rapt3
renios2
renios3
notarized
CubismSdkForNative-4-*.zip
+1 -1
View File
@@ -12,7 +12,7 @@ SOURCE = [
"/home/tom/ab/renpy",
"/home/tom/ab/renpy-build",
"/home/tom/ab/pygame_sdl2",
"/home/tom/ab/renpyweb",
"/home/tom/ab/renpy-build/renpyweb",
]
version = ".".join(str(i) for i in version_tuple)
+15 -9
View File
@@ -74,9 +74,9 @@ def main():
import renpy
if args.version is None:
args.version = ".".join(str(i) for i in renpy.version_tuple[:-1]) # @UndefinedVariable
args.version = ".".join(str(i) for i in renpy.version_tuple[:-1]) # @UndefinedVariable
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) # @UndefinedVariable
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) # @UndefinedVariable
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", "--match", "start-" + match_version ])
parts = s.strip().split("-")
@@ -90,20 +90,26 @@ def main():
vc_version += 1
with open("renpy/vc_version.py", "w") as f:
f.write("vc_version = {}".format(vc_version))
import socket
official = socket.gethostname() == "eileen"
nightly = args.version and "nightly" in args.version
f.write("vc_version = {}\n".format(vc_version))
f.write("official = {}\n".format(official))
f.write("nightly = {}\n".format(nightly))
if args.vc_version_only:
return
try:
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
except:
import renpy.vc_version # @UnusedImport
import renpy.vc_version # @UnusedImport
reload(sys.modules['renpy'])
# Check that the versions match.
full_version = renpy.version_only # @UndefinedVariable
full_version = renpy.version_only # @UndefinedVariable
if "-" not in args.version \
and not full_version.startswith(args.version):
raise Exception("The command-line and Ren'Py versions do not match.")
@@ -142,8 +148,8 @@ def main():
sys.path.insert(0, os.path.join(ROOT, "rapt", "buildlib"))
import rapt.interface # @UnresolvedImport
import rapt.build # @UnresolvedImport
import rapt.interface # @UnresolvedImport
import rapt.build # @UnresolvedImport
interface = rapt.interface.Interface()
rapt.build.distclean(interface)
@@ -232,7 +238,7 @@ def main():
sys.stdout.write("Creating -sdk.7z")
p = subprocess.Popen([ "7z", "a", sdk +".7z", sdk], stdout=subprocess.PIPE)
p = subprocess.Popen([ "7z", "a", sdk + ".7z", sdk], stdout=subprocess.PIPE)
for i, _l in enumerate(p.stdout):
if i % 10 != 0:
continue
+1
View File
@@ -442,6 +442,7 @@ init python:
gui.slider_size = gui.scale(36)
gui.choice_button_width = gui.scale(1240)
gui.choice_button_text_size = gui.scale(30)
gui.navigation_spacing = gui.scale(20)
gui.pref_button_spacing = gui.scale(10)
+3 -3
View File
@@ -44,9 +44,9 @@ define build.name = "gui"
## Sounds and music ############################################################
## These three variables control which mixers are shown to the player
## by default. Setting one of these to False will hide the appropriate
## mixer.
## These three variables control, among other things, which mixers are
## shown to the player by default. Setting one of these to False will
## hide the appropriate mixer.
define config.has_sound = True
define config.has_music = True
+9 -5
View File
@@ -356,13 +356,11 @@ screen main_menu():
## This ensures that any other menu screen is replaced.
tag menu
style_prefix "main_menu"
add gui.main_menu_background
## This empty frame darkens the main menu.
frame:
pass
style "main_menu_frame"
## The use statement includes another screen inside this one. The actual
## contents of the main menu are in the navigation screen.
@@ -371,6 +369,8 @@ screen main_menu():
if gui.show_name:
vbox:
style "main_menu_vbox"
text "[config.name!t]":
style "main_menu_title"
@@ -1044,6 +1044,10 @@ screen keyboard_help():
label "V"
text _("Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}.")
hbox:
label "Shift+A"
text _("Opens the accessibility menu.")
screen mouse_help():
@@ -1505,10 +1509,10 @@ style vslider:
base_bar Frame("gui/phone/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile)
thumb "gui/phone/slider/vertical_[prefix_]thumb.png"
style slider_pref_vbox:
style slider_vbox:
variant "small"
xsize None
style slider_pref_slider:
style slider_slider:
variant "small"
xsize gui.scale(600)
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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-2020 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-2020 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
+146 -37
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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,19 +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.
default persistent.android_bundle = False
init python:
ANDROID_NO_RAPT = 0
ANDROID_NO_JDK = 1
ANDROID_NO_SDK = 2
ANDROID_NO_KEY = 3
ANDROID_NO_CONFIG = 4
ANDROID_OK = 5
ANDROID_NO_BUNDLE_KEY = 4
ANDROID_NO_CONFIG = 5
ANDROID_NO_BUNDLE = 6
ANDROID_OK = 7
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_BUNDLE_KEY_TEXT = _("RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore.")
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
NO_BUNDLE_TEXT = _("Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores).")
OK_TEXT = _("Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device.")
PHONE_TEXT = _("Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button.")
@@ -46,9 +52,13 @@ init python:
BUILD_INSTALL_AND_LAUNCH_TEXT = _("Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device.")
LOGCAT_TEXT = _("Retrieves the log from the Android device and writes it to a file.")
LIST_DEVICES_TEXT = _("Lists the connected devices.")
PAIR_TEXT = _("Pairs with a device over Wi-Fi, on Android 11+.")
CONNECT_TEXT = _("Connects to a device over Wi-Fi, on Android 11+.")
DISCONNECT_TEXT = _("Disconnects a device connected over Wi-Fi.")
DEBUG_TEXT = _("Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device.")
RELEASE_TEXT = _("Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device.")
PLAY_BUNDLE_TEXT = _("Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data.")
UNIVERSAL_APK_TEXT = _("Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data.")
import subprocess
@@ -102,8 +112,13 @@ init python:
return ANDROID_NO_SDK
if not os.path.exists(rapt.plat.path("project/local.properties")):
return ANDROID_NO_KEY
if not os.path.exists(rapt.plat.path("project/bundle.properties")):
return ANDROID_NO_BUNDLE_KEY
if not os.path.exists(os.path.join(project.current.path, ".android.json")):
return ANDROID_NO_CONFIG
if persistent.android_bundle is None:
return ANDROID_NO_BUNDLE
return ANDROID_OK
@@ -120,8 +135,12 @@ init python:
return NO_SDK_TEXT
if state == ANDROID_NO_KEY:
return NO_KEY_TEXT
if state == ANDROID_NO_BUNDLE_KEY:
return NO_BUNDLE_KEY_TEXT
if state == ANDROID_NO_CONFIG:
return NO_CONFIG_TEXT
if state == ANDROID_NO_BUNDLE:
return NO_BUNDLE_TEXT
if state == ANDROID_OK:
return OK_TEXT
@@ -187,7 +206,7 @@ init python:
json.dump(android_json, f)
def android_build(command, p=None, gui=True, launch=False, destination=None, opendir=False):
def android_build(p=None, gui=True, bundle=False, install=False, launch=False, destination=None, opendir=False):
"""
This actually builds the package.
"""
@@ -266,7 +285,7 @@ init python:
with interface.nolinks():
rapt.build.build(rapt_interface, dist, command, launch=launch, finished=finished)
rapt.build.build(rapt_interface, dist, bundle=bundle, install=install, launch=launch, finished=finished, permissions=p.dump['build']['android_permissions'])
def android_build_argument(cmd):
@@ -366,21 +385,6 @@ screen android:
frame style "l_indent":
has vbox
hbox:
spacing 15
textbutton _("Debug"):
action SetDict(project.current.data, "android_build", "Debug")
hovered tt.Action(DEBUG_TEXT)
textbutton _("Release"):
action SetDict(project.current.data, "android_build", "Release")
hovered tt.Action(RELEASE_TEXT)
add HALF_SPACER
textbutton _("Install SDK & Create Keys"):
action AndroidIfState(state, ANDROID_NO_SDK, Jump("android_installsdk"))
hovered tt.Action(INSTALL_SDK_TEXT)
@@ -389,6 +393,20 @@ screen android:
action AndroidIfState(state, ANDROID_NO_CONFIG, Jump("android_configure"))
hovered tt.Action(CONFIGURE_TEXT)
add SPACER
textbutton _("Play Bundle"):
action SetField(persistent, "android_bundle", True)
hovered tt.Action(PLAY_BUNDLE_TEXT)
style "l_checkbox"
textbutton _("Universal APK"):
action SetField(persistent, "android_bundle", False)
hovered tt.Action(UNIVERSAL_APK_TEXT)
style "l_checkbox"
add SPACER
textbutton _("Build Package"):
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build"))
hovered tt.Action(BUILD_TEXT)
@@ -401,7 +419,19 @@ screen android:
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
add SPACER
# add SPACER
# add SEPARATOR2
# Right side.
frame:
style "l_indent"
xmaximum ONEHALF
xfill True
has vbox
add SEPARATOR2
frame:
@@ -420,15 +450,25 @@ screen android:
action AndroidIfState(state, ANDROID_NO_KEY, Jump("logcat"))
hovered tt.Action(LOGCAT_TEXT)
textbutton _("List Devices"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_list_devices"))
hovered tt.Action(LIST_DEVICES_TEXT)
# Right side.
frame:
style "l_indent"
xmaximum ONEHALF
xfill True
textbutton _("Wi-Fi Debugging Pair"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_pair"))
hovered tt.Action(PAIR_TEXT)
has vbox
textbutton _("Wi-Fi Debugging Connect"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_connect"))
hovered tt.Action(CONNECT_TEXT)
textbutton _("Wi-Fi Debugging Disconnect"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_disconnect"))
hovered tt.Action(DISCONNECT_TEXT)
add SPACER
add SEPARATOR2
frame:
@@ -480,20 +520,20 @@ label android_configure:
label android_build:
$ android_build([ android_build_argument("assemble") ], opendir=True)
$ android_build(bundle=persistent.android_bundle, opendir=True)
jump android
label android_build_and_install:
$ android_build([ android_build_argument("install") ])
$ android_build(bundle=persistent.android_bundle, install=True, opendir=True)
jump android
label android_build_install_and_launch:
$ android_build([android_build_argument("install") ], launch=True)
$ android_build(bundle=persistent.android_bundle, install=True, launch=True, opendir=True)
jump android
@@ -508,22 +548,91 @@ label logcat:
jump android
label android_list_devices:
python hide:
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "devices")
cc.run()
jump android
label android_pair:
python hide:
pairing_code = interface.input(
_("Wi-Fi Pairing Code"),
_("If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."),
sanitize=False,
cancel=Jump("android"),
)
host = interface.input(
_("Pairing Host & Port"),
_("If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."),
sanitize=False,
cancel=Jump("android"),
)
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "pair", host, pairing_code)
cc.run()
jump android
label android_connect:
python hide:
host = interface.input(
_("IP Address & Port"),
_("If supported, this can be found in 'Developer options', 'Wireless debugging'."),
sanitize=False,
cancel=Jump("android"),
)
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "connect", host)
cc.run()
jump android
label android_disconnect:
python hide:
host = interface.input(
_("IP Address & Port"),
_("This can be found in 'List Devices'."),
sanitize=False,
cancel=Jump("android"),
)
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "disconnect", host)
cc.run()
jump android
init python:
def android_build_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("android_project", help="The path to the project directory.")
ap.add_argument("gradle_commands", help="Commands to pass to gradle. (Try 'installDebug' or 'assembleRelease'.)", nargs='+')
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install compete.")
ap.add_argument("--bundle", action="store_true", help="Builds an android app bundle.")
ap.add_argument("--install", action="store_true", help="Installs the app on a device.")
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install complete. Implies --install.")
ap.add_argument("--destination", "--dest", default=None, action="store", help="The directory where the packaged files should be placed.")
args = ap.parse_args()
if args.launch:
args.install = True
p = project.Project(args.android_project)
android_build(args.gradle_commands, p=p, gui=False, launch=args.launch, destination=args.destination)
android_build(p=p, gui=False, bundle=args.bundle, install=args.install, launch=args.launch, destination=args.destination)
return False
renpy.arguments.register_command("android_build", android_build_command)
+15 -22
View File
@@ -1,4 +1,4 @@
# This file contains strings used by RAPT, so the Ren'Py translation framework
# can find them. It's automatically generated by rapt/update_translations.py, and
# hence should not be changed by hand.
@@ -6,18 +6,18 @@
init python hide:
__("{} is not a directory.")
__("{} does not contain a Ren'Py game.")
__("{} does not contain a Ren'Py game.")
__("Run configure before attempting to build the app.")
__("Google Play support is enabled, but build.google_play_key is not defined.")
__("Updating project.")
__("Creating assets directory.")
__("Creating expansion file.")
__("Packaging internal data.")
__("I'm using Gradle to build the package.")
__("Uploading expansion file.")
__("The build seems to have failed.")
__("I'm installing the bundle.")
__("Installing the bundle appears to have failed.")
__("Launching app.")
__("Launching the app appears to have failed.")
__("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.")
__("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.")
@@ -29,28 +29,19 @@ init python hide:
__("{} is a Java keyword, and can't be used as part of a package name.")
__("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.")
__("The version number must contain only numbers and dots.")
__("What is the version code?\n\nThis must be a positive integer number, and the value should increase between versions.")
__("The numeric version must contain only numbers.")
__("How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number.")
__("The RAM size must contain only numbers.")
__("How would you like your application to be displayed?")
__("In landscape orientation.")
__("In portrait orientation.")
__("In the user's preferred orientation.")
__("Which app store would you like to support in-app purchasing through?")
__("Google Play.")
__("Amazon App Store.")
__("Both, in one app.")
__("Neither.")
__("Would you like to create an expansion APK?")
__("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 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\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\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,13 +50,15 @@ 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\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.")
__("I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\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\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?")
__("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.")
__("I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?")
__("I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?")
__("Could not create bundle.keystore. Is keytool in your path?")
__("It looks like you're ready to start packaging games.")
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
+83 -26
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -268,14 +268,17 @@ def load_icon(fn):
if not f.u32():
f.set_u32(offset + 20, 0)
rv[3][i + 1] = { 0 : (1252, f.substring(offset, size)) }
#rv[3][i + 1] = { 0 : (1252, f.substring(offset, size)) }
#I do not have justification for the 0x0409 entry ID, other than copying what other files do. Same for codepage of 0
rv[3][i + 1] = { 1033 : (0, f.substring(offset, size)) }
group += struct.pack("BBBBHHIH", width, height, colors, reserved,
planes, bpp, size, i + 1)
f.seek(addr)
rv[14] = { 1 : { 0 : (1252, group) } }
#rv[14] = { 1 : { 0 : (1252, group) } }
rv[14] = { 1 : { 1033 : (0, group) } }
return rv
@@ -305,6 +308,20 @@ def change_icons(oldexe, icofn):
basedata = f.read(base)
data = f.read(physize)
#Symbol table, I could not understand so well
# Some analysis and the little I could find on how the symbol tables were layed out show that the PE table is in two sections. One is
# a list of NumberOfSymbols*(18 bytes) symbol entries, followed immediately by a string table who's length is specified in the 4 bytes following the symbol structure list
#Again, the information *seems* to indicate that this will always follow the entire block of all sections (so be at the end of the file)
######
# As a related note, apparently this flag has been deprecated, but appears to be set (I think ..) in the renpy.exe that is used to build from..
# no idea of a consequence, just an observation
# https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#characteristics , see "IMAGE_FILE_LINE_NUMS_STRIPPED" :
# COFF line numbers have been removed. This flag is deprecated and should be zero.
# In renpy.exe, this 2-byte flag is @ 0x096 and 0x097 in little-endian
######
f.close()
bf = BinFile(data)
@@ -316,42 +333,82 @@ def change_icons(oldexe, icofn):
rsrc = Packer().pack(resources)
newsize = len(rsrc)
newExactSize = len(rsrc)
if newsize < physize:
#From note about flags above regarding image flags. These two should be 0
pe.FILE_HEADER.Characteristics = pe.FILE_HEADER.Characteristics & (~pefile.IMAGE_CHARACTERISTICS["IMAGE_FILE_LINE_NUMS_STRIPPED"])
pe.FILE_HEADER.Characteristics = pe.FILE_HEADER.Characteristics & (~pefile.IMAGE_CHARACTERISTICS["IMAGE_FILE_LOCAL_SYMS_STRIPPED"])
#Per docs, symbol table can just be removed
#https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#coff-file-header-object-and-image see "PointerToSymbolTable" and "NumberOfSymbols "
pe.FILE_HEADER.PointerToSymbolTable = 0
pe.FILE_HEADER.NumberOfSymbols = 0
rsrc += b"\0" * (physize - newsize)
#####
# Alignment requirements as I understand them
#
# SectionAlignment (misnomer.. 'memory' alignment) = 4096
# FileAlignment = 512
#
# Section, SizeOfRawData = multiple of FileAlignment (On Disk size)
# Scetion, VirtualSize is NOT aligned to any specific number, and rwdata may be > than this due to its alignment requirement (In memory size)
#
# the resource section should be padded out to meet the alignment requirement of SizeOfRawData = multiple of FileAlignment (So, in the file, since on disk)
#
#####
# RVA table virt address and size = that in the section header
#
#####
# SizeOfImage must be aligned to SectionAlignment (memory alignment)
# There is NO padding needed, the image size number simply needs to be aligned to >= the
return basedata + rsrc
memoryalignment = pe.OPTIONAL_HEADER.SectionAlignment
filealignment = pe.OPTIONAL_HEADER.FileAlignment
else:
rsrc_section.Misc_VirtualSize = newExactSize
rsrc_section.Misc_PhysicalAddress = newExactSize
rsrc_section.Misc = newExactSize
alignment = pe.OPTIONAL_HEADER.SectionAlignment
#Size of resource section (and pointer, but we're not changing anything 'above' resource) is the same as virtual address in the section table
# https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#optional-header-data-directories-image-only
pe.OPTIONAL_HEADER.DATA_DIRECTORY[2].Size = rsrc_section.Misc_VirtualSize
# print("Alignment is", alignment)
if len(rsrc) % alignment:
pad = alignment - (len(rsrc) % alignment)
padding = b"\0" * (pad / 8 + 1)
padding = padding[:pad]
rsrc += padding
#Alignment for raw data
if len(rsrc) % filealignment:
pad = filealignment - (len(rsrc) % filealignment)
padding = b"\0" * (pad)
padding = padding[:pad]
rsrc += padding
rsrc_section.SizeOfRawData = len(rsrc)
newsize = len(rsrc)
delta = newsize - physize
rsrc_section.Misc_VirtualSize += delta
rsrc_section.Misc_PhysicalAddress += delta
rsrc_section.Misc += delta
rsrc_section.SizeOfRawData += delta
#Image size is the memory size of all sections + all headers, padded to memory alignment.
#There's alread a header size, and this isn't changing headers, so just add.
#imageSize = pe.OPTIONAL_HEADER.ImageBase + pe.OPTIONAL_HEADER.SizeOfHeaders
imageSize = pe.OPTIONAL_HEADER.SizeOfHeaders
for s in pe.sections:
sectionSize = s.Misc_VirtualSize
#Align every section, so add padding to size
pad = 0
if sectionSize % memoryalignment:
pad = memoryalignment - (sectionSize % memoryalignment)
imageSize += (sectionSize + pad)
pad = 0
if imageSize % memoryalignment:
pad = memoryalignment - (imageSize % memoryalignment)
pe.OPTIONAL_HEADER.SizeOfImage = imageSize + pad
pe.OPTIONAL_HEADER.SizeOfInitializedData += delta
# Resource size.
pe.OPTIONAL_HEADER.DATA_DIRECTORY[2].Size += delta
#The symbol table is simply left off. Its size DOES factor into ImageSize, but we didn't calculate it above, so fine
#Correctly checksum the file. The entire file is involved in the calculation, so a new PE object must be generated for the calculation to work against
newFile = pe.write()[:base] + rsrc
newpe = pefile.PE(data=newFile)
newpe.OPTIONAL_HEADER.CheckSum = newpe.generate_checksum()
pe.OPTIONAL_HEADER.SizeOfImage += delta
return newpe.write()
return pe.write()[:base] + rsrc
if __name__ == "__main__":
+51 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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,14 +84,44 @@ 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:
if os.path.exists("/usr/bin/python3"):
system_python = "/usr/bin/python3"
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_python = "/usr/bin/python"
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) ]
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
+17 -12
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -34,7 +34,7 @@ init python:
if renpy.macintosh:
fn = "console.command"
nl = "\n"
prefix = "#!/bin/bash"
prefix = "#!/bin/sh"
elif renpy.windows:
fn = "console.bat"
nl = "\r\n"
@@ -49,7 +49,6 @@ init python:
self.f = open(self.fn, "wb")
self.nl = nl
self.f.write(renpy.fsencode(prefix) + nl)
def add(self, *args):
@@ -60,27 +59,33 @@ init python:
args = [ '"{}"'.format(renpy.fsencode(i)) for i in args]
self.f.write(" ".join(args) + self.nl)
def write(self, *args):
"""
Adds a command to be run.
"""
args = [ '{}'.format(renpy.fsencode(i)) for i in args]
self.f.write(" ".join(args) + self.nl)
def run(self):
"""
Runs the queued up commands.
"""
if renpy.windows:
self.add("pause")
self.write("pause")
elif renpy.linux:
self.add("echo", "Press enter to close this window...")
self.add("read")
self.write("read")
self.f.close()
os.chmod(self.fn, 0o755)
command = renpy.fsencode('"{}"'.format(self.fn.replace("\"", "\\\"")))
if renpy.windows:
subprocess.Popen([ command ], shell=True)
elif renpy.macintosh:
subprocess.Popen([ "open", "-a", "Terminal", command ])
else:
if renpy.linux:
command = renpy.fsencode('"{}"'.format(self.fn.replace("\"", "\\\"")))
subprocess.Popen([ "x-terminal-emulator", "-e", command ])
else:
command = renpy.fsencode(self.fn)
os.startfile(command)
interface.interaction(_("INFORMATION"), _("The command is being run in a new operating system console window."), pause=2.5)
+62 -13
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -316,7 +316,7 @@ init python in distribute:
for f in list(self):
if f.name.startswith("lib/python2.7") and (not duplicate):
name = app + "/Contents/MacOS/" + f.name
name = app + "/Contents/Resources/" + f.name
elif f.name.startswith("lib/mac-x86_64"):
name = app + "/Contents/MacOS/" + f.name[15:]
@@ -448,6 +448,16 @@ init python in distribute:
self.reporter.info(_("Scanning project files..."))
project.update_dump(force=True, gui=False, compile=project.data['force_recompile'])
if project.data['force_recompile']:
import compileall
compileall.compile_dir(
os.path.join(config.renpy_base, "renpy"),
ddir="renpy/",
force=True,
quiet=True,
)
if project.dump.get("error", False):
raise Exception("Could not get build data from the project. Please ensure the project runs.")
@@ -542,6 +552,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()
@@ -612,8 +625,17 @@ init python in distribute:
match_name = name
for pattern, file_list in patterns:
if match(match_name, pattern):
# When we have ('test/**', None), avoid excluding test.
if (not file_list) and is_dir:
new_pattern = pattern.rstrip("*")
if (pattern != new_pattern) and match(match_name, new_pattern):
continue
break
else:
print(str(match_name), "doesn't match anything.", file=self.log)
@@ -640,6 +662,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
@@ -859,6 +892,7 @@ init python in distribute:
"UTTypeTagSpecification" : { "public.filename-extension" : [ "rpy" ] }
},
],
NSHighResolutionCapable=True,
)
if self.build.get('allow_integrated_gpu', False):
@@ -875,16 +909,18 @@ 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/renpy"),
True)
@@ -951,7 +987,7 @@ init python in distribute:
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.add_directory(filelist, contents + "/Resources/lib/python2.7")
self.file_lists[filelist].mac_lib_transform(self.app, self.build['renpy'])
@@ -962,24 +998,31 @@ 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")
def write_exe(src, dst, tmp):
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.
"""
if fl == "windows_i686":
should_change_icon = self.build["change_icon_i686"]
else:
should_change_icon = True
src = os.path.join(config.renpy_base, src)
tmp = self.temp_filename(tmp)
if os.path.exists(icon_fn) and os.path.exists(src):
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))
@@ -988,12 +1031,14 @@ init python in distribute:
tmp = src
if os.path.exists(tmp):
self.add_file(windows, dst, tmp)
self.add_file(fl, dst, tmp)
write_exe("lib/windows-i686/renpy.exe", self.exe32, self.exe32)
write_exe("lib/windows-i686/pythonw.exe", "lib/windows-i686/pythonw.exe", "pythonw-32.exe")
write_exe("lib/windows-x86_64/renpy.exe", self.exe, self.exe)
write_exe("lib/windows-x86_64/pythonw.exe", "lib/windows-x86_64/pythonw.exe", "pythonw-64.exe")
if self.build["include_i686"]:
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']:
@@ -1001,7 +1046,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.
@@ -1384,6 +1428,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]
@@ -1545,4 +1594,4 @@ label distribute:
)
jump front_page
jump post_build
+3 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -276,6 +276,8 @@ label build_distributions:
call build_update_dump
label post_build:
if not project.current.dump["build"]["directory_name"]:
jump build_missing
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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-2020 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-2020 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
@@ -329,7 +329,7 @@ init 1 python in editor:
return True
fn = project.current.unelide_filename(self.filename)
return os.path.exists(fn)
return os.path.exists(renpy.fsencode(fn))
def __call__(self):
@@ -377,7 +377,7 @@ init 1 python in editor:
if not self.check:
return True
return os.path.exists(self.filename)
return os.path.exists(renpy.fsencode(self.filename))
def __call__(self):
+12 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -23,6 +23,8 @@ define PROJECT_ADJUSTMENT = ui.adjustment()
init python:
import datetime
import os
import subprocess
@@ -260,7 +262,16 @@ label start:
show screen bottom_info
$ dmgcheck()
jump expression renpy.session.pop("launcher_start_label", "front_page")
default persistent.has_update = False
label front_page:
if persistent.daily_update_check and ((not persistent.last_update_check) or (datetime.date.today() > persistent.last_update_check)):
python hide:
persistent.last_update_check = datetime.date.today()
renpy.invoke_in_thread(fetch_update_channels)
call screen front_page
jump front_page
+3 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -309,7 +309,8 @@ label change_gui:
project_name = project.current.name
mode = interface.choice(
_("{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"),
__("{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?") +
__("{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"),
[
("change", _("Choose new colors, then regenerate image files.")),
("regenerate", _("Regenerate the image files using the colors in gui.rpy.")),
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -323,6 +323,9 @@ class CodeGenerator(object):
m = re.match(r'## ?([ *]*)(.*)', s)
if m is None:
raise Exception("Comment translation doesn't start with '## ': {}".format(s))
prefix = m.group(1)
empty = ' ' * len(prefix)
rest = m.group(2)
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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-2020 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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 B

+5 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -60,7 +60,10 @@ init python:
dstfn = os.path.join(config.renpy_base, dstfn)
if not os.path.exists(os.path.dirname(dstfn)):
continue
try:
os.makedirs(os.path.dirname(dstfn))
except:
pass
renpy.write_log(fn + " -> " + dstfn)
+5 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -126,7 +126,10 @@ screen bottom_info:
xalign 1.0
if ability.can_update:
textbutton _("update") action Jump("update") style "l_link"
textbutton _("update") action Jump("update") style "l_link":
if persistent.has_update:
text_color "#F96854"
text_hover_color Color("#F96854").tint(.8)
textbutton _("preferences") style "l_link" action Jump("preferences")
textbutton _("quit") style "l_link" action Quit(confirm=False)
+7 -19
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -212,8 +212,8 @@ init python:
def launch_xcode():
dist = xcode_project(None)
base = os.path.basename(dist)
xcodeproj = "{}/{}.xcodeproj".format(dist, base)
name = project.current.dump.get("name", None)
xcodeproj = "{}/{}.xcodeproj".format(dist, name)
subprocess.call([ 'open', renpy.fsencode(xcodeproj) ])
@@ -300,22 +300,6 @@ screen ios:
action IOSIfState(state, IOS_OK, launch_xcode)
hovered tt.Action(IOS_XCODE_TEXT)
# textbutton _("Configure"):
# action AndroidIfState(state, ANDROID_NO_CONFIG, Jump("android_configure"))
# hovered tt.Action(CONFIGURE_TEXT)
#
# textbutton _("Build Package"):
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build"))
# hovered tt.Action(BUILD_TEXT)
#
# textbutton _("Build & Install"):
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_and_install"))
# hovered tt.Action(BUILD_AND_INSTALL_TEXT)
#
# textbutton _("Build, Install & Launch"):
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
# hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
add SPACER
add SEPARATOR2
@@ -352,6 +336,10 @@ screen ios:
add SPACER
text _("There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices.")
add SPACER
if tt.value:
text tt.value
else:
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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-2020 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-2020 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-2020 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-2020 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
+7 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -246,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" ]
@@ -409,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
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -290,7 +290,7 @@ init python in distribute:
# If this is not a directory, ensure all parent directories
# have been created
self.mkdir(os.path.dirname(fn))
shutil.copy2(path, fn)
shutil.copy(path, fn)
if xbit:
os.chmod(fn, 0o755)
+23 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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,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()
@@ -48,9 +53,15 @@ init python:
show_legacy = os.path.exists(os.path.join(config.renpy_base, "templates", "english", "game", "script.rpy"))
class RestartAtPreferences(Action):
def __call__(self):
renpy.session["launcher_start_label"] = "preferences"
renpy.utter_restart()
default persistent.legacy = False
default persistent.force_new_tutorial = False
default persistent.sponsor_message = True
default persistent.daily_update_check = False
screen preferences:
@@ -191,6 +202,16 @@ screen preferences:
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
if ability.can_update:
textbutton _("Daily check for update") style "l_checkbox" action [ToggleField(persistent, "daily_update_check"), SetField(persistent, "last_update_check", None)] selected persistent.daily_update_check
add HALF_SPACER
textbutton _("Default theme") style "l_checkbox" action [SetField(persistent, "theme", None), RestartAtPreferences() ]
# textbutton _("Clear theme") style "l_checkbox" action [SetField(persistent, "theme", "clear", None), RestartAtPreferences() ]
textbutton _("Dark theme") style "l_checkbox" action [SetField(persistent, "theme", "dark", None), RestartAtPreferences()]
textbutton _("Custom theme") style "l_checkbox" action [SetField(persistent, "theme", "custom", None), RestartAtPreferences()]
if translations:
+17 -7
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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,11 +22,6 @@
# Code that manages projects.
init python:
if renpy.windows:
import EasyDialogsWin as EasyDialogs
else:
EasyDialogs = None
import os
init python in project:
@@ -259,6 +254,8 @@ init python in project:
if persistent.navigate_library:
cmd.append("--json-dump-common")
cmd.append("--errors-in-editor")
environ = dict(os.environ)
environ["RENPY_LAUNCHER_LANGUAGE"] = _preferences.language or "english"
environ.update(env)
@@ -366,6 +363,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
@@ -764,6 +763,14 @@ init 10 python:
if not directory_is_writable(persistent.projects_directory):
persistent.projects_directory = None
label after_load:
python:
if project.current is not None:
project.current.update_dump()
return
###############################################################################
# Code to choose the projects directory.
@@ -795,7 +802,7 @@ init python:
args = ap.parse_args()
persistent.projects_directory = renpy.fsdecode(args.projects)
project.multipersistent.projects_directory = path
project.multipersistent.projects_directory = persistent.projects_directory
project.multipersistent.save()
renpy.save_persistent()
@@ -807,6 +814,9 @@ init python:
ap = renpy.arguments.ArgumentParser()
args = ap.parse_args()
if persistent.projects_directory is not None:
print(persistent.projects_directory)
return False
renpy.arguments.register_command("get_projects_directory", get_projects_directory_command)
+150 -11
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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
@@ -56,11 +56,11 @@ init -1 python:
PATTERN = "images/pattern.png"
# A displayable used for the background of everything.
BACKGROUND = "images/background.png"
BACKGROUND = "background"
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = Frame("images/window.png", 0, 0, tile=True)
WINDOW = Frame("window", 0, 0, tile=True)
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = Null()
@@ -77,9 +77,146 @@ init -1 python:
# The color of input text.
INPUT_COLOR = "#d86b45"
if persistent.theme == 'dark':
# The color of non-interactive text.
TEXT = "#ababab"
# Colors for buttons in various states.
IDLE = "#709cbe"
HOVER = "#d86b45"
DISABLED = "#7f7f7f"
# Colors for reversed text buttons (selected list entries).
REVERSE_IDLE = "#78a5c5"
REVERSE_HOVER = "#d86b45"
REVERSE_TEXT = "#0a0a0a"
# Colors for the scrollbar thumb.
SCROLLBAR_IDLE = "#282828"
SCROLLBAR_HOVER = "#d86b45"
# An image used as a separator pattern.
PATTERN = "images/pattern.png"
# A displayable used for the background of everything.
BACKGROUND = Fixed(Solid(REVERSE_TEXT), xsize=800, ysize=600)
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = Null()
# A displayable used the background of information boxes.
INFO_WINDOW = "#101010"
# Colors for the titles of information boxes.
ERROR_COLOR = "#d15353"
INFO_COLOR = "#ababab"
INTERACTION_COLOR = "#d19753"
QUESTION_COLOR = "#d19753"
# The color of input text.
INPUT_COLOR = "#d86b45"
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = Frame(Fixed(Solid(REVERSE_IDLE, xsize=4, xalign=0), Solid(INFO_WINDOW, xsize=794, xalign=1.0), xsize=800, ysize=600), 0, 0, tile=True)
elif persistent.theme == 'clear':
# The color of non-interactive text.
TEXT = "#545454"
# Colors for buttons in various states.
IDLE = "#42637b"
HOVER = "#d86b45"
DISABLED = "#808080"
# Colors for reversed text buttons (selected list entries).
REVERSE_IDLE = "#78a5c5"
REVERSE_HOVER = "#d86b45"
REVERSE_TEXT = "#ffffff"
# Colors for the scrollbar thumb.
SCROLLBAR_IDLE = "#dfdfdf"
SCROLLBAR_HOVER = "#d86b45"
# An image used as a separator pattern.
PATTERN = "images/pattern.png"
# A displayable used for the background of everything.
BACKGROUND = Fixed(Solid(REVERSE_TEXT), xsize=800, ysize=600)
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = Null()
# A displayable used the background of information boxes.
INFO_WINDOW = "#f9f9f9"
# Colors for the titles of information boxes.
ERROR_COLOR = "#d15353"
INFO_COLOR = "#545454"
INTERACTION_COLOR = "#d19753"
QUESTION_COLOR = "#d19753"
# The color of input text.
INPUT_COLOR = "#d86b45"
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = Frame(Fixed(Solid(REVERSE_IDLE, xsize=4, xalign=0), Solid(INFO_WINDOW, xsize=794, xalign=1.0), xsize=800, ysize=600), 0, 0, tile=True)
elif renpy.exists("skin.rpy") and persistent.theme == 'custom':
# The color of non-interactive text.
TEXT = custom_text
# Colors for buttons in various states.
IDLE = custom_idle
HOVER = custom_hover
DISABLED = custom_disable
# Colors for reversed text buttons (selected list entries).
REVERSE_IDLE = custom_reverse_idle
REVERSE_HOVER = reverse_hover
REVERSE_TEXT = custom_reverse_text
# Colors for the scrollbar thumb.
SCROLLBAR_IDLE = custom_scrollbar_idle
SCROLLBAR_HOVER = custom_scrollbar_hover
# An image used as a separator pattern.
PATTERN = custom_pattern
# A displayable used for the background of everything.
BACKGROUND = custom_background
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = custom_projects_window
# A displayable used the background of information boxes.
INFO_WINDOW = custom_info_window
# Colors for the titles of information boxes.
ERROR_COLOR = custom_error_color
INFO_COLOR = custom_info_color
INTERACTION_COLOR = custom_interaction_color
QUESTION_COLOR = custom_question_color
# The color of input text.
INPUT_COLOR = custom_imput_color
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = custom_window
init 1 python:
if not renpy.has_image('scrollbar_center'):
renpy.image('scrollbar_center', Fixed(Solid(REVERSE_TEXT, area=(2, 2, 2, 4)), Solid(REVERSE_TEXT, area=(8, 2, 2, 4)), Solid(REVERSE_TEXT, area=(14, 2, 2, 4)), xysize=(18, 8)))
if not renpy.has_image('vscrollbar_center'):
renpy.image('vscrollbar_center', Fixed(Solid(REVERSE_TEXT, area=(2, 2, 4, 2)), Solid(REVERSE_TEXT, area=(2, 8, 4, 2)), Solid(REVERSE_TEXT, area=(2, 14, 4, 2)), xysize=(8, 18)))
def size(n):
"""
Adjusts the font size if we're in large-print mode.
@@ -121,10 +258,13 @@ init 1 python:
ONEHALF = 377
def checkbox(full, color):
if full:
return im.Twocolor("images/checkbox_full.png", color, color, style="l_checkbox_box")
if renpy.has_image('checkbox_full'):
check = im.Twocolor(''.join(["images/checkbox_", "full" if full else "empty", ".png"]), color, color)
else:
return im.Twocolor("images/checkbox_empty.png", color, color, style="l_checkbox_box")
check = Fixed(Solid(color, xsize=1, xalign=.0), Solid(color, xsize=1, xalign=1.0), Solid(color, ysize=1, yalign=.0), Solid(color, ysize=1, yalign=1.0), xsize=10, ysize=10)
if full:
check = Fixed(check, Solid(color, xsize=6, ysize=6, align=(.5, .5)), xsize=10, ysize=10)
return At(check, l_checkbox_box)
@@ -259,11 +399,11 @@ style l_list2_text is l_list_text
style l_vscrollbar is l_default:
thumb Fixed(
Solid(SCROLLBAR_IDLE, xmaximum=8, xalign=0.5),
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
Transform('vscrollbar_center', xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
hover_thumb Fixed(
Solid(SCROLLBAR_HOVER, xmaximum=8, xalign=0.5),
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
Transform('vscrollbar_center', xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
xmaximum SCROLLBAR_SIZE
bar_vertical True
@@ -341,9 +481,8 @@ style l_checkbox is l_button:
selected_hover_background checkbox(True, HOVER)
insensitive_background checkbox(False, DISABLED)
style l_checkbox_box:
yanchor 0.5
ypos 11
transform l_checkbox_box:
ycenter 11
style l_checkbox_text is l_button_text:
selected_font light_font()
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2020 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-2020 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,6 +1,6 @@
#!/usr/bin/env python
# Copyright 2004-2020 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
+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)"
+407 -4
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
@@ -353,7 +352,7 @@ translate french strings:
# renpy/common/00accessibility.rpy:94
old "Text Size Scaling"
new "Redimensionnement du Texte"
new "Redimensionnement du texte"
# renpy/common/00accessibility.rpy:100
old "Reset"
@@ -361,7 +360,7 @@ translate french strings:
# renpy/common/00accessibility.rpy:105
old "Line Spacing Scaling"
new "Espacement Vertical"
new "Espacement vertical"
# renpy/common/00accessibility.rpy:117
old "Self-Voicing"
@@ -382,3 +381,407 @@ translate french strings:
# renpy/common/00accessibility.rpy:133
old "Debug"
new "Débogage"
# renpy/common/00accessibility.rpy:32
old "bar"
new "barre"
# renpy/common/00accessibility.rpy:33
old "selected"
new "sélectionné"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "viewport"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
new "barre de scrolling horizontal"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
new "barre de scrolling vertical"
# renpy/common/00accessibility.rpy:37
old "activate"
new "activer"
# renpy/common/00accessibility.rpy:38
old "deactivate"
new "désactiver"
# renpy/common/00accessibility.rpy:39
old "increase"
new "augmenter"
# renpy/common/00accessibility.rpy:40
old "decrease"
new "diminuer"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "Baisse de volume pendant la lecture vocale"
# 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 "Les options de ce menu ont pour objectif d'augmenter l'accessibilité. Elles peuvent ne pas fonctionner sur tous les jeux, et certaines combinations d'options peuvent rendre le jeu injouable. Le problème ne vient pas du jeu ou du moteur. Pour de meilleurs résultats en changeant la police, essayez de maintenir le texte de la même taille qu'avant."
# renpy/common/00action_file.rpy:353
old "Save slot %s: [text]"
new "Sauvegarder %s: [text]"
# renpy/common/00action_file.rpy:434
old "Load slot %s: [text]"
new "Charger %s: [text]"
# renpy/common/00action_file.rpy:487
old "Delete slot [text]"
new "Supprimer slot [text]"
# renpy/common/00action_file.rpy:566
old "File page auto"
new "Page auto"
# renpy/common/00action_file.rpy:568
old "File page quick"
new "Page rapide"
# renpy/common/00action_file.rpy:570
old "File page [text]"
new "Page [text]"
# renpy/common/00action_file.rpy:769
old "Next file page."
new "Page suivante."
# renpy/common/00action_file.rpy:841
old "Previous file page."
new "Page précédente."
# renpy/common/00action_file.rpy:920
old "Quick save."
new "Sauvegarde rapide."
# renpy/common/00action_file.rpy:939
old "Quick load."
new "Chargement rapide."
# renpy/common/00action_other.rpy:375
old "Language [text]"
new "Langue [text]"
# renpy/common/00director.rpy:708
old "The interactive director is not enabled here."
new "Le réalisateur interactif n'est pas activé ici."
# renpy/common/00director.rpy:1481
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1487
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1551
old "Done"
new "Fait"
# renpy/common/00director.rpy:1561
old "(statement)"
new "(statement)"
# renpy/common/00director.rpy:1562
old "(tag)"
new "(tag)"
# renpy/common/00director.rpy:1563
old "(attributes)"
new "(attributs)"
# renpy/common/00director.rpy:1564
old "(transform)"
new "(transform)"
# renpy/common/00director.rpy:1589
old "(transition)"
new "(transition)"
# renpy/common/00director.rpy:1601
old "(channel)"
new "(channel)"
# renpy/common/00director.rpy:1602
old "(filename)"
new "(fichier)"
# renpy/common/00director.rpy:1631
old "Change"
new "Changer"
# renpy/common/00director.rpy:1633
old "Add"
new "Ajouter"
# renpy/common/00director.rpy:1639
old "Remove"
new "Retirer"
# renpy/common/00director.rpy:1674
old "Statement:"
new "Statement :"
# renpy/common/00director.rpy:1695
old "Tag:"
new "Tag :"
# renpy/common/00director.rpy:1711
old "Attributes:"
new "Attributs :"
# renpy/common/00director.rpy:1729
old "Transforms:"
new "Transforms :"
# renpy/common/00director.rpy:1748
old "Behind:"
new "Sous :"
# renpy/common/00director.rpy:1767
old "Transition:"
new "Transition :"
# renpy/common/00director.rpy:1785
old "Channel:"
new "Channel :"
# renpy/common/00director.rpy:1803
old "Audio Filename:"
new "Fichier audio :"
# renpy/common/00keymap.rpy:300
old "Failed to save screenshot as %s."
new "Échec de sauvegarde de la capture d'écran %s."
# renpy/common/00preferences.rpy:240
old "display"
new "affichage"
# renpy/common/00preferences.rpy:252
old "transitions"
new "transitions"
# renpy/common/00preferences.rpy:261
old "skip transitions"
new "passer les transitions"
# renpy/common/00preferences.rpy:263
old "video sprites"
new "sprites vidéo"
# renpy/common/00preferences.rpy:272
old "show empty window"
new "afficher fenêtre vide"
# renpy/common/00preferences.rpy:281
old "text speed"
new "vitesse du texte"
# renpy/common/00preferences.rpy:289
old "joystick"
new "joystick"
# renpy/common/00preferences.rpy:289
old "joystick..."
new "joystick..."
# renpy/common/00preferences.rpy:296
old "skip"
new "passer"
# renpy/common/00preferences.rpy:299
old "skip unseen [text]"
new "passer [text] non lus"
# renpy/common/00preferences.rpy:304
old "skip unseen text"
new "passer le texte non lu"
# renpy/common/00preferences.rpy:306
old "begin skipping"
new "commencer à passer"
# renpy/common/00preferences.rpy:310
old "after choices"
new "après les choix"
# renpy/common/00preferences.rpy:317
old "skip after choices"
new "passer après les choix"
# renpy/common/00preferences.rpy:319
old "auto-forward time"
new "avancée du temps automatique"
# renpy/common/00preferences.rpy:333
old "auto-forward"
new "avancée automatique"
# renpy/common/00preferences.rpy:340
old "Auto forward"
new "Avancée automatique"
# renpy/common/00preferences.rpy:343
old "auto-forward after click"
new "avancée automatique après un clic"
# renpy/common/00preferences.rpy:352
old "automatic move"
new "mouvement automatique"
# renpy/common/00preferences.rpy:361
old "wait for voice"
new "attendre la voix"
# renpy/common/00preferences.rpy:370
old "voice sustain"
new "maintien de la voix"
# renpy/common/00preferences.rpy:379
old "self voicing"
new "lecture vocale"
# renpy/common/00preferences.rpy:388
old "self voicing volume drop"
new "baisse de volume pendant la lecture vocale"
# renpy/common/00preferences.rpy:396
old "clipboard voicing"
new "voix par presse-papier"
# renpy/common/00preferences.rpy:405
old "debug voicing"
new "voix de debug"
# renpy/common/00preferences.rpy:414
old "emphasize audio"
new "mise en valeur de l'audio"
# renpy/common/00preferences.rpy:423
old "rollback side"
new "côté de rollback"
# renpy/common/00preferences.rpy:433
old "gl powersave"
new "gl économie d'énergie"
# renpy/common/00preferences.rpy:439
old "gl framerate"
new "gl images par seconde"
# renpy/common/00preferences.rpy:442
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:445
old "font transform"
new "apparence de la police"
# renpy/common/00preferences.rpy:448
old "font size"
new "taille de police"
# renpy/common/00preferences.rpy:456
old "font line spacing"
new "taille d'espaces"
# renpy/common/00preferences.rpy:464
old "system cursor"
new "curseur système"
# renpy/common/00preferences.rpy:484
old "music volume"
new "volume de la musique"
# renpy/common/00preferences.rpy:485
old "sound volume"
new "volume du son"
# renpy/common/00preferences.rpy:486
old "voice volume"
new "volume des voix"
# renpy/common/00preferences.rpy:487
old "mute music"
new "couper la musique"
# renpy/common/00preferences.rpy:488
old "mute sound"
new "couper le son"
# renpy/common/00preferences.rpy:489
old "mute voice"
new "couper les voix"
# renpy/common/00preferences.rpy:490
old "mute all"
new "couper tout"
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
new "Réalisateur interactif (D)"
# renpy/common/_developer/developer.rpym:57
old "Show Image Load Log (F4)"
new "Montrer le log ne chargement des images (F4)"
# renpy/common/_developer/developer.rpym:60
old "Hide Image Load Log (F4)"
new "Masquer le log de chargement des images (F4)"
# renpy/common/_developer/developer.rpym:63
old "Image Attributes"
new "Attributs d'image"
# renpy/common/_developer/developer.rpym:90
old "[name] [attributes] (hidden)"
new "[name] [attributes] (masqué)"
# renpy/common/_developer/developer.rpym:94
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:154
old "Hide deleted"
new "Masquer les supprimés"
# renpy/common/_developer/developer.rpym:154
old "Show deleted"
new "Montrer les supprimés"
# renpy/common/_developer/developer.rpym:506
old "Type to filter: "
new "Type à filtrer : "
# renpy/common/_developer/developer.rpym:631
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Textures : [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:635
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Cache d'images : [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00preferences.rpy:480
old "renderer menu"
new "menu de rendu"
# renpy/common/00preferences.rpy:483
old "accessibility menu"
new "menu d'accessibilité"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
new "Texte en contraste élevé (surbrillance)"
# renpy/common/00preferences.rpy:493
old "high contrast text"
new "texte en contraste élevé"
+32 -14
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# _developer/developer.rpym:38
old "Developer Menu"
@@ -99,7 +98,7 @@ translate french strings:
# _developer/inspector.rpym:139
old "displayable:"
new "affichable:"
new "affichable :"
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
@@ -131,15 +130,15 @@ translate french strings:
# 00console.rpy:403
old "commands:\n"
new "commandes:\n"
new "commandes :\n"
# 00console.rpy:413
old " <renpy script statement>: run the statement\n"
new " <renpy script statement>: Exécuter cette déclaration\n"
new " <renpy script statement> : Exécuter cette déclaration\n"
# 00console.rpy:415
old " <python expression or statement>: run the expression or statement"
new " <python expression or statement>: Exécuter cette expression ou cette déclaration"
new " <python expression or statement> : Exécuter cette expression ou cette déclaration"
# 00console.rpy:423
old "clear: clear the console history"
@@ -147,33 +146,52 @@ translate french strings:
# 00console.rpy:427
old "exit: exit the console"
new "exit: quitter la console"
new "exit : quitter la console"
# 00console.rpy:435
old "load <slot>: loads the game from slot"
new "load <slot>: charger la partie de cet emplacement"
new "load <slot> : charger la partie de cet emplacement"
# 00console.rpy:448
old "save <slot>: saves the game in slot"
new "save <slot>: sauvegarder la partie dans cet emplacement "
new "save <slot> : sauvegarder la partie dans cet emplacement "
# 00console.rpy:459
old "reload: reloads the game, refreshing the scripts"
new "reload: Recharge le jeu, rafraîchit les scripts"
new "reload : Recharge le jeu, rafraîchit les scripts"
# 00console.rpy:467
old "watch <expression>: watch a python expression"
new "watch <expression>: surveiller une expression Python"
new "watch <expression> : surveiller une expression Python"
# 00console.rpy:493
old "unwatch <expression>: stop watching an expression"
new "unwatch <expression>: Arrêter la surveillance dune expression Python"
new "unwatch <expression> : arrêter la surveillance dune expression Python"
# 00console.rpy:519
old "unwatchall: stop watching all expressions"
new "unwatchall: Arrêter de surveiller toutes les expressions"
new "unwatchall : arrêter de surveiller toutes les expressions"
# 00console.rpy:536
old "jump <label>: jumps to label"
new "jump <label>: Saute jusquau label"
new "jump <label> : saute jusquau label"
# 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> : surveille une expression python\n watch short: raccourcit la représentation des expressions (par défaut)\n watch long : affiche la totalité des expressions surveillées"
# renpy/common/00console.rpy:917
old "short: Shorten the representation of objects on the console (default)."
new "short : Raccourcit la représentation des objets sur la console (par défaut)."
# renpy/common/00console.rpy:921
old "long: Print the full representation of objects on the console."
new "long : Affiche la representation entière des objets dans la console."
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape : Active l'échappage des symboles unicode dans les chaînes de caractères unicode."
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape : Désactive l'échappage des symboles unicode dans les chaînes de caractères unicode et les affiche telles quelles (par défaut)."
+82 -6
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# 00gltest.rpy:64
old "Graphics Acceleration"
@@ -102,8 +101,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)"
@@ -177,8 +176,6 @@ translate french strings:
old "Copies the errors.txt file to the clipboard."
new "Copie le contenu du fichier « errors.txt » dans le presse-papier."
translate french strings:
# renpy/common/_errorhandling.rpym:542
old "Copy BBCode"
new "Copier en BBCode"
@@ -215,3 +212,82 @@ translate french strings:
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "Copie le fichier errors.txt dans le presse-papier au format Markdown pour Discord."
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Moteur de rendu"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Forcer le moteur de rendu GL"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Forcer le moteur de rendu ANGLE"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "Forcer le moteur de rendu GLES"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Forcer le moteur de rendu GL2"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "Forcer le moteur de rendu ANGLE2"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "Forcer le moteur de rendu GLES2"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "Activer (Sans Blocklist)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Économie d'énergie"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Images par seconde"
# renpy/common/00gltest.rpy:177
old "Screen"
new "Écran"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Tearing"
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
new "Ce jeu nécessite l'usage de GL2, qui ne peut pas être initialisé."
# renpy/common/00gltest.rpy:259
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
new "Le fichier {a=edit:1:log.txt}log.txt{/a} peut contenir des informations pour vous aider à déterminer ce qui ne va pas avec votre ordinateur."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "Plus de détails sur comment réparer ça dans la {a=[url]}documentation{/a}."
# renpy/common/00gltest.rpy:281
old "Change render options"
new "Changer les options de rendu"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Appuyez sur le [kind] '[control!s]'."
# renpy/common/_errorhandling.rpym:542
old "Open"
new "Ouvrir"
+48 -2
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# gui.rpy:2
old "## Initialization"
@@ -409,3 +408,50 @@ translate french strings:
old "## Quick buttons."
new "## Bouton daccès rapide."
# gui/game/gui.rpy:5
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
new "## L'instruction init offset fait exécuter les instructions d'initialisation de ce fichier tavant les instructions init des autres fichiers."
# gui/game/gui.rpy:17
old "## GUI Configuration Variables"
new "## Variables de Configuration du GUI"
# gui/game/gui.rpy:165
old "## The color of button text in various states."
new "## La couleur du texte des boutons dans différents états."
# gui/game/gui.rpy:171
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## L'alignement horizontal du texte des boutons. (0.0 est à gauche, 0.5 est au centre, 1.0 est à droite)."
# gui/game/gui.rpy:276
old "## The position of the main menu text."
new "## La position du texte du menu principal."
# gui/game/gui.rpy:285
old "## Generic frames."
new "## Frames génériques."
# gui/game/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 "## Le GUI par défaut utilise uniquement des sliders et des barres de scrolling verticales. Toutes les autres barres ne sont utilisées que dans des screens écrits par l'utilisateur."
# gui/game/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 "## Le nombre maximum d'entrées en mode NVL que Ren'Py affichera. Quand plus d'entrées sont affichées, les plus anciennes seront retirées."
# gui/game/gui.rpy:402
old "## Localization"
new "## Localisation (traduction et adaptation aux langues et cultures)"
# gui/game/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 "## Ceci contrôle où un saut de ligne est autorisé. La valeur par défaut convient à la plupart des langues. Une liste des valeurs disponible peut être trouvée sur https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui/game/gui.rpy:412
old "## Mobile devices"
new "## Appareils mobiles"
# gui/game/gui.rpy:441
old "## Change the size and spacing of various things."
new "## Changer la taille et l'espacement de diverses choses."
+689 -2
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# about.rpy:39
old "[version!q]"
@@ -1184,3 +1183,691 @@ translate french strings:
# updater.rpy:195
old "Proceed"
new "Continuer"
# game/add_file.rpy:37
old "The file name may not be empty."
new "Le nom de fichier ne peut pas être vide."
# 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=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un kit de développement Java 8 64-bit/x64 est requis pour construire des paquets Android depuis Windows. Le JDK est différent du JRE, donc il est possible d'avoir Java sans avoir le JDK.\n\n{a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}Téléchargez et installez le JDK{/a}, puis redémarrez 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."
new "Selectionne le build de Debug, qui peut être atteint depuis Android Studio. Passer d'un build debug à un build release nécessitera une désinstallation sur votre appareil."
# game/android.rpy:51
old "Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device."
new "Sélectionne le build de Release, qui peut être posté sur des magasins d'applications. Passer d'un build debug à un build release nécessitera une désinstallation sur votre appareil."
# game/android.rpy:313
old "Android: [project.current.display_name!q]"
new "Android : [project.current.display_name!q]"
# game/androidstrings.rpy:7
old "{} is not a directory."
new "{} n'est pas un répertoire."
# game/androidstrings.rpy:8
old "{} does not contain a Ren'Py game."
new "{} ne contient pas un jeu Ren'Py."
# game/androidstrings.rpy:9
old "Run configure before attempting to build the app."
new "Lancez la configuration avant d'essayer de construire l'app."
# game/androidstrings.rpy:10
old "Google Play support is enabled, but build.google_play_key is not defined."
new "Le support Google Play est activé, mais build.google_play_key n'est pas défini."
# game/androidstrings.rpy:11
old "Updating project."
new "Mise à jour du projet."
# game/androidstrings.rpy:12
old "Creating assets directory."
new "Création du répertoire d'assets."
# game/androidstrings.rpy:13
old "Creating expansion file."
new "Création du fihier d'expansion."
# game/androidstrings.rpy:14
old "Packaging internal data."
new "Paquetage des données internes."
# game/androidstrings.rpy:15
old "I'm using Gradle to build the package."
new "J'utilise Gradle pour construire le package."
# game/androidstrings.rpy:16
old "Uploading expansion file."
new "Téléversement du fichier d'expansion."
# game/androidstrings.rpy:17
old "The build seems to have failed."
new "Le build semble avoir échoué."
# game/androidstrings.rpy:18
old "Launching app."
new "Lancement de l'app."
# game/androidstrings.rpy:19
old "The build seems to have succeeded."
new "Le build semble avoir réussi."
# game/androidstrings.rpy:20
old "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."
new "La version arm64-v8a fonctionne sur les appareils Android les plus récents, la version armeabi-v7a fonctionne sur les plus anciens, et la version x86_64 version fonctionne sur les simulateurs et chromebooks."
# game/androidstrings.rpy:21
old "The universal version works everywhere but is larger."
new "La version universelle fonctionne partout mais pèse plus lourd."
# game/androidstrings.rpy:22
old "What is the full name of your application? This name will appear in the list of installed applications."
new "quel est le nom complet de votre application ? Ce nom apparaîtra dans la liste des applications installées."
# 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 "Quel est le nom court de votre application ? Ce nom sera utilisé dans le launcher, et pour les raccourcis d'application."
# 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 "Quel est le nom du package?\n\nIl est généralement de la forme com.domain.program ou com.domain.email.program. Il doit uniquement contenir des lettres ASCII et des points. Il doit contenir au moins un point."
# game/androidstrings.rpy:25
old "The package name may not be empty."
new "Le nom du package ne peut pas être vide."
# game/androidstrings.rpy:26
old "The package name may not contain spaces."
new "Le nom de package ne peut pas contenir d'espaces."
# game/androidstrings.rpy:27
old "The package name must contain at least one dot."
new "Le nom du package doit contenir au moins un point."
# game/androidstrings.rpy:28
old "The package name may not contain two dots in a row, or begin or end with a dot."
new "Le nom du package ne peut pas contenir deux points de suite, ni commencer ni finir par un point."
# game/androidstrings.rpy:29
old "Each part of the package name must start with a letter, and contain only letters, numbers, and underscores."
new "Chaque partie du nom de package doit commencer par une lettre, et ne contenir que des lettres, chiffres, et tirets de soulignement."
# game/androidstrings.rpy:30
old "{} is a Java keyword, and can't be used as part of a package name."
new "{} est un mot-clé Java, et ne peut pas faire partie d'un nom de package."
# 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 "Quelle est la version de l'application ?\n\nCe devrait être la version lisible par un humain que vous présentez à une personne. Il doit contenir uniquement des chiffres et des points."
# game/androidstrings.rpy:32
old "The version number must contain only numbers and dots."
new "Le numéro de version ne peut contenir que des nombres et des points."
# 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 "Quel est le code de version ?\n\nCe doit être un nombre entier positif, et la valeur devrait augmenter entre les versions."
# game/androidstrings.rpy:34
old "The numeric version must contain only numbers."
new "Le numéro de version ne peut contenir que des chiffres."
# game/androidstrings.rpy:35
old "How would you like your application to be displayed?"
new "Comment voulez-vous que l'application soit affichée ?"
# game/androidstrings.rpy:36
old "In landscape orientation."
new "En orientation paysage."
# game/androidstrings.rpy:37
old "In portrait orientation."
new "En orientation portrait."
# game/androidstrings.rpy:38
old "In the user's preferred orientation."
new "Dans l'orientation préférée de l'utilisateur."
# game/androidstrings.rpy:39
old "Which app store would you like to support in-app purchasing through?"
new "Sur quel magasin d'applications voulez-vous vous baser pour les achats dans l'application ?"
# game/androidstrings.rpy:40
old "Google Play."
new "Google Play."
# game/androidstrings.rpy:41
old "Amazon App Store."
new "Amazon App Store."
# game/androidstrings.rpy:42
old "Both, in one app."
new "Les deux, en une seule app."
# game/androidstrings.rpy:43
old "Neither."
new "Aucun."
# game/androidstrings.rpy:44
old "Would you like to create an expansion APK?"
new "Voulez-vous créer un APK d'expansion ?"
# game/androidstrings.rpy:45
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
new "Les APK d'expansion s'installant automatiquement {a=https://issuetracker.google.com/issues/160942333}peuvent ne pas fonctionner sur Android 11{/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 "Non. Limite de taille de 100 MB sur Google Play, mais il peut être distribué sur d'autres magasins et installé directement."
# 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 "Oui. Limite de taille de 2 GB, mais ne marchera pas en-dehors de Google Play. (Lisez la documentation pour le faire marcher.)"
# game/androidstrings.rpy:48
old "Do you want to allow the app to access the Internet?"
new "Voulez-vous autoriser l'app à accéder à Internet ?"
# game/androidstrings.rpy:49
old "Do you want to automatically update the Java source code?"
new "Voulez-vous mettre à jour le code source de Java automatiquement ?"
# game/androidstrings.rpy:50
old "Yes. This is the best choice for most projects."
new "Oui. C'est le meilleur choix pour la plupart des projets."
# game/androidstrings.rpy:51
old "No. This may require manual updates when Ren'Py or the project configuration changes."
new "Non. Cela pourra nécessiter des mises à jour manuelles quand Ren'Py ou la configuration du projet changeront."
# game/androidstrings.rpy:52
old "Unknown configuration variable: {}"
new "Variable de configuration inconnue : {}"
# game/androidstrings.rpy:53
old "I'm compiling a short test program, to see if you have a working JDK on your system."
new "Je compile un petit programme de test, pour voir si un JDK fonctionnel est installé sur votre système."
# 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\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."
new "L'usage de javac pour compiler un programme de test a échoué. Si vous n'avez pas encore installé le JDK, téléchargez-le :\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nLe JDK est différent du JRE, il est donc possible que vous ayiez Java sans avoir le JDK. Sans un JDK en état de marche, je ne peux pas continuer."
# 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\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "La version de Java sur votre ordinateur n'a pas l'air d'être JDK 8, qui est la seule version supportée par le SDK Android. Si vous avez besoin d'installer JDK 8, vous pouvez le télécharger depuis :\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nVous pouvez aussi aussi modifier la variable d'environnement JAVA_HOME pour utiliiser une différente version de Java."
# game/androidstrings.rpy:56
old "The JDK is present and working. Good!"
new "Le JDK est présent et il marche. Super !"
# game/androidstrings.rpy:57
old "The Android SDK has already been unpacked."
new "Le SDK Android a été dépaqueté."
# game/androidstrings.rpy:58
old "Do you accept the Android SDK Terms and Conditions?"
new "Acceptez-vous les termes et conditions du SDK Android ?"
# game/androidstrings.rpy:59
old "I'm downloading the Android SDK. This might take a while."
new "Je télécharge le SDK Android, ce qui peut prendre un moment."
# game/androidstrings.rpy:60
old "I'm extracting the Android SDK."
new "J'extrais le SDK Android."
# game/androidstrings.rpy:61
old "I've finished unpacking the Android SDK."
new "J'ai terminé d'extraire le SDK Android."
# game/androidstrings.rpy:62
old "I'm about to download and install the required Android packages. This might take a while."
new "Je suis sur le point de télécharger et d'installer les paquets Android requis, ce qui peut prendre un moment."
# game/androidstrings.rpy:63
old "I was unable to accept the Android licenses."
new "L'acceptation des licences Android."
# game/androidstrings.rpy:65
old "I was unable to install the required Android packages."
new "L'installation des paquets Android requis a échoué."
# game/androidstrings.rpy:66
old "I've finished installing the required Android packages."
new "L'installation des paquets Android requis est terminée."
# game/androidstrings.rpy:67
old "You set the keystore yourself, so I'll assume it's how you want it."
new "Vous avez vous-même spécifié un keystore, donc je vais supposer que vous le voulez."
# game/androidstrings.rpy:68
old "You've already created an Android keystore, so I won't create a new one for you."
new "Vous avez déjà créé un keystore Android, donc je ne vais pas en créer un pour vous."
# 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 "Je peux créer une clé de signature d'application pour vous. Signer une application avec cette clé lui permet d'être placée sur l'Android Market et d'autres magasins d'applications.\n\nVoulez-vous crer une clé ?"
# 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 "Je vais créer une clé dans le fichier android.keystore.\n\nVous devez créer une sauvegarde de ce fichier. Si vous le perdez, vous ne pourrez plus mettre à jour votre application.\n\nVous devez aussi garder cette clé secrète. Si de mauvaises personnes y ont accès, ils pourraient faire de fausses versions de votre application, et potentiellement voler les données de vos utilisateurs.\n\nAllez-vous faire une sauvegarde de android.keystore, et le arder dans un endroit sûr ?"
# game/androidstrings.rpy:71
old "Please enter your name or the name of your organization."
new "Entrez votre nom ou celui de votre organisation."
# game/androidstrings.rpy:72
old "Could not create android.keystore. Is keytool in your path?"
new "Impossible de créer android.keystore. Est-ce que le keytool est dans votre PATH ?"
# game/androidstrings.rpy:73
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
new "J'ai terminé la création de android.keystore. Faites-en une sauvegarde, et gardez-le secret."
# game/androidstrings.rpy:74
old "It looks like you're ready to start packaging games."
new "Il semblerait que vous êtes prêt à commencer à empaqueter des jeux."
# game/choose_directory.rpy:140
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 n'a pas été capable de lancer python avec tkinter pour choisir le répertoire. Installer le package python3-tk ou tkinter."
# game/choose_directory.rpy:158
old "The selected projects directory is not writable."
new "Le répertoire de projets sélectionné n'est pas ouvert en écriture."
# game/choose_theme.rpy:508
old "changing the theme"
new "changer le thème"
# game/distribute.rpy:1126
old "Signing the Macintosh application...\n(This may take a long time.)"
new "Signature de l'application Macintosh...\n(Ceci peut prendre longtemps.)"
# game/distribute_gui.rpy:157
old "Build Distributions: [project.current.display_name!q]"
new "Construire les Distributions : [project.current.display_name!q]"
# game/dmgcheck.rpy:50
old "Ren'Py is running from a read only folder. Some functionality will not work."
new "Ren'Py est lancé depuis un dossier en lecture seule. Certaines fonctionnalités ne fonctionneront pas."
# game/dmgcheck.rpy:50
old "This is probably because Ren'Py is running directly from a Macintosh drive image. To fix this, quit this launcher, copy the entire %s folder somewhere else on your computer, and run Ren'Py again."
new "C'est probablement parce que Ren'Py est lancé directement depuis une image disque Macintosh. Quittez le lanceur, copier le dossier %s entier quelque part d'autre sur votre ordinateur et relancez Ren'Py."
# game/editor.rpy:152
old "(Recommended) A modern and approachable text editor."
new "(Recommandé) Un éditeur de texte moderne et ergonomique."
# game/editor.rpy:164
old "Up to 150 MB download required."
new "Jusqu'à 150 MB requis pour le téléchargement."
# game/editor.rpy:186
old "System Editor"
new "Éditeur de texte du système"
# game/editor.rpy:202
old "None"
new "Aucun"
# game/editor.rpy:305
old "Edit [text]."
new "Modifier [text]."
# game/front_page.rpy:91
old "PROJECTS:"
new "PROJETS :"
# game/front_page.rpy:198
old "audio"
new "audio"
# game/front_page.rpy:215
old "Open project"
new "Ouvrir le projet"
# game/front_page.rpy:221
old "Actions"
new "Actions"
# game/front_page.rpy:252
old "Web"
new "Web"
# game/front_page.rpy:252
old "(Beta)"
new "(Béta)"
# game/gui7.rpy:339
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
new "Personnalisé. Le GUI est optimié pour un ratio de cadre 16:9."
# game/gui7.rpy:355
old "WIDTH"
new "LARGEUR"
# game/gui7.rpy:355
old "Please enter the width of your game, in pixels."
new "Entrez la largeur de votre jeu, en pixels."
# game/gui7.rpy:365
old "The width must be a number."
new "La largeur doit être un nombre."
# game/gui7.rpy:371
old "HEIGHT"
new "HAUTEUR"
# game/gui7.rpy:371
old "Please enter the height of your game, in pixels."
new "Entrez la hauteur de votre jeu, en pixels."
# game/gui7.rpy:381
old "The height must be a number."
new "La hauteur doit être un nombre."
# game/gui7.rpy:429
old "creating a new project"
new "création d'un nouveau projet"
# game/gui7.rpy:433
old "activating the new project"
new "activation du nouevau projet"
# 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 "Impossible d'installer [name!t], car aucunun fichier correspondant à [zipglob] n'a été trouvé dans le répertoire de Ren'Py."
# game/install.rpy:76
old "Successfully installed [name!t]."
new "Installé [name!t] avec succès."
# game/install.rpy:110
old "Install Libraries"
new "Installer les Bibliothèques"
# 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 "Ce menu vous permet d'installer des bibliothèques qui ne peuvent pas être distribuées avec Ren'Py. Certaines peuvent requérir d'accepter une licence tierce avant d'être utilisées ou distribuées."
# game/install.rpy:131
old "Install Live2D Cubism SDK for Native"
new "Installer le SDK Live2D Cubism for Native"
# 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 "Le {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}SDK Cubism for Native{/a} ajoute le support pour l'affichage de modèles Live2D. Placez CubismSdkForNative-4-{i}version{/i}.zip dans le répertoire de Ren'Py, puis cliquez sur Installer. Publier un jeu avec Live2D nécessite d'accepter une licence de Live2D, Inc."
# 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 dans Ren'Py ne supporte pas le Web, Android x86_64 (y compris les émulateurs et Chrome OS), et doit être ajouté aux projets iOS manuellement. Live2D doit être réinstallé après avoir mis à jour Ren'Py ou installé le support Android."
# game/install.rpy:151
old "Install Steam Support"
new "Installer le upport 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 "Avant d'installer le support Steam, vérifiez que vous êtes bien un {a=https://partner.steamgames.com/}partenaire Steam{/a}."
# game/install.rpy:172
old "Steam support has already been installed."
new "Le support Steam a déjà été installé."
# game/install.rpy:176
old "Open Ren'Py SDK Directory"
new "Ouvrir le répertoire de Ren'Py"
# game/interface.rpy:136
old "Ren'Py Sponsor Information"
new "Information sur les sponsors de Ren'Py Sponsor"
# game/interface.rpy:372
old "opening the log file"
new "ouverture du fichier log"
# game/ios.rpy:233
old "iOS: [project.current.display_name!q]"
new "iOS : [project.current.display_name!q]"
# game/itch.rpy:43
old "Downloading the itch.io butler."
new "Téléchargement du butler itch.io."
# game/navigation.rpy:168
old "Navigate: [project.current.display_name!q]"
new "Explorer : [project.current.display_name!q]"
# game/new_project.rpy:81
old "You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."
new "Vous allez créer un projet en [new_project_language]{#this substitution may be localized}. Changez la langue du launcher dans les préférences pour créer un projet dans une autre langue."
# game/preferences.rpy:143
old "Install libraries"
new "Installer les bibliothèques"
# game/preferences.rpy:145
old "Reset window size"
new "Réinisialiser la taille de la fenêtre"
# game/preferences.rpy:188
old "Force new tutorial"
new "Forcer le nouveau tutoriel"
# game/preferences.rpy:192
old "Legacy options"
new "Options de compatibilité"
# game/preferences.rpy:197
old "Sponsor message"
new "Message des sponsors"
# game/preferences.rpy:199
old "Dark theme"
new "Thème sombre"
# game/translations.rpy:91
old "Translations: [project.current.display_name!q]"
new "Traductions : [project.current.display_name!q]"
# game/translations.rpy:342
old "Extract Dialogue: [project.current.display_name!q]"
new "Extraire les dialogues : [project.current.display_name!q]"
# game/updater.rpy:101
old "The update channel controls the version of Ren'Py the updater will download."
new "Les canaux de mise à jour contrôlent la version de Ren'Py qui sera téléchargée."
# game/updater.rpy:110
old "• This version is installed and up-to-date."
new "• Cette version est installée et à jour."
# game/updater.rpy:118
old "%B %d, %Y"
new "%d %B %Y"
# game/updater.rpy:188
old "Fetching the list of update channels"
new "Vérification de la liste des canaux de mise à jour"
# game/updater.rpy:193
old "downloading the list of update channels"
new "téléchargement de la liste des canaux de mise à jour"
# game/updater.rpy:196
old "parsing the list of update channels"
new "compulsion de la liste des canaux de mise à jour"
# game/web.rpy:242
old "Preparing progressive download"
new "Préparation du téléchargement progressif"
# game/web.rpy:277
old "Web: [project.current.display_name!q]"
new "Web : [project.current.display_name!q]"
# game/web.rpy:307
old "Build Web Application"
new "Construire l'application Web"
# game/web.rpy:308
old "Build and Open in Browser"
new "Construire et ouvrir dans le navigateur"
# game/web.rpy:309
old "Open in Browser"
new "Ouvrir dans le navigateur"
# game/web.rpy:310
old "Open build directory"
new "Ouvrir le répertoire des distributions"
# game/web.rpy:314
old "Support:"
new "Support :"
# game/web.rpy:322
old "RenPyWeb Home"
new "Accueil RenPyWeb"
# game/web.rpy:323
old "Beuc's Patreon"
new "Patreon de Beuc"
# 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 "Les images et musiques peuvent être téléchargées pendant le jeu. Un fichier 'progressive_download.txt' sera créé pour contrôler cette fonctionnalité."
# 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 "Les limitations actuelles de la platforme web implique que changer de gros images, fichiers audio ou films peuvent causer des bugs audio ou des pertes de fps, et une baisse de performance en général."
# 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 "Avant l'empaquetage des apps web, vous devrez télécharger RenPyWeb, le support web de Ren'Py. Voulez-vous télécharger RenPyWeb maintenant ?"
# game/preferences.rpy:206
old "Default theme"
new "Thème par défaut"
# game/preferences.rpy:209
old "Custom theme"
new "Thème personnalisé"
# game/web.rpy:330
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Les images et la musique peuvent être téléchargées pendant le jeu. Un fichier 'progressive_download.txt' sera créé pour configurer cette fonction."
# game/web.rpy:334
old "Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported."
new "Les limitations actuelles de la platforme web signifient que le chargement de grandes images peuvent causer des bugs audio ou des saccades. Les objets 'Movies' ne sont pas supportés."
# game/web.rpy:338
old "There are known issues with Safari and other Webkit-based browsers that may prevent games from running."
new "Des bugs connus avec Safari et d'autres navigateurs basés sur Webkit peuvent empêcher des jeux de fonctionner."
# game/android.rpy:38
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
new "Faites le choix entre un Play Bundle (pour Google Play), ou un Universal APK (pour d'autres librairies d'applications)."
# game/android.rpy:53
old "Pairs with a device over Wi-Fi, on Android 11+."
new "Appaire un autre appareil par Wi-Fi, sur Android 11+."
# game/android.rpy:54
old "Connects to a device over Wi-Fi, on Android 11+."
new "Se connecte à un appareil par Wi-Fi, sur Android 11+."
# game/android.rpy:56
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
new "Construit un Android App Bundle (ABB), fait pour être uploadé sur Google Play. Peut inclure jusqu'à 2GB de données."
# game/android.rpy:57
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
new "Construit un paquet Universal APK, fait pour d'autres librairies que Google Play. Peut inclure jusqu'à 2GB de données."
# game/android.rpy:384
old "Play Bundle"
new "Play Bundle"
# game/android.rpy:388
old "Universal APK"
new "Universal APK"
# game/android.rpy:445
old "Wi-Fi Debugging Pair"
new "Debug d'appairage Wi-Fi"
# game/android.rpy:449
old "Wi-Fi Debugging Connect"
new "Debug de connexion Wi-Fi"
# game/android.rpy:537
old "Wi-Fi Pairing Code"
new "Code d'appairage Wi-Fi"
# game/android.rpy:537
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
new "Si supporté, peut être trouvé dans 'Options de développement', 'Débogage sans fil', 'Appairer appareil avec un code'."
# game/android.rpy:544
old "Pairing Host & Port"
new "Hôte d'appairage & Port"
# game/android.rpy:560
old "IP Address & Port"
new "Addresse IP & Port"
# game/android.rpy:560
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
new "Si supporté, peut être trouvé dans 'Options de développement', 'Débogage sans fil'."
# game/gui7.rpy:311
old "{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"
new "{size=-4}\n\nCeci ne remplacera pas gui/main_menu.png, gui/game_menu.png, ou gui/window_icon.png, mais créera des fichiers s'ils n'existent pas.{/size}"
# game/ios.rpy:339
old "There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices."
new "Des erreurs sont rapportées sur le simulateur d'iOS sur Apple Silicon. Préférez des appareils x86_64 ou iOS."
# game/android.rpy:38
old "RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore."
new "RAPT a été installé, mais aucune clé de paquet n'a été configurée. Créez une nouvelle clé, ou restaurez bundle.keystore."
# game/androidstrings.rpy:16
old "I'm installing the bundle."
new "J'installe le paquet."
# game/androidstrings.rpy:30
old "How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number."
new "Combien de RAM voulez-vous allouer à Gradle ?\n\nEntrez un nombre entier positif."
# game/androidstrings.rpy:31
old "The RAM size must contain only numbers."
new "La taille de RAM ne doit contenir que des chiffres."
# game/androidstrings.rpy:55
old "I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?"
new "Je paux vous créer une clé de signature d'application. Cette clé est nécessaire pour créer des Universal APK pour des autres stores que Google Play.\n\nVoulez-vous créer une clé ?"
# game/androidstrings.rpy:59
old "I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?"
new "Je peux vous créer une clé de signature de paquets. Cette clé est nécessaire pour construire un Android App Bundle (AAB) pour uploader sur Google Play.\n\nVoulez-vous créer une clé ?"
# game/androidstrings.rpy:60
old "I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?"
new "Je vais créer la clé dans le fichier bundle.keystore.\n\nVous devez conserver ce fichier. Sans lui, vous ne pourrez plus mettre à jour votre application.\n\nVous devez aussi la garder cachée. Si des malotrus accèdent à ce fichier, ils pourront faire des faussez versions de votre application, et potentiellement voler les données des utilisateurs.\n\nAllez-vous faire une sauvegarde de bundle.keystore, et le garder bien caché ?"
# game/androidstrings.rpy:61
old "Could not create bundle.keystore. Is keytool in your path?"
new "Impossible de créer bundle.keystore. Est-ce que le keytool est dans votre path ?"
# game/preferences.rpy:206
old "Daily check for update"
new "Vérification quotidienne des mises à jour"
+1 -3
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# _layout/classic_joystick_preferences.rpym:94
old "Joystick Mapping"
@@ -24,4 +23,3 @@ translate french strings:
# _compat/gamemenu.rpym:362
old "Next"
new "Suivant"
+16 -5
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
@@ -45,9 +44,9 @@ translate french strings:
old "## Sounds and music"
new "## Sons et musiques"
# options.rpy:46
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Ces trois variables contrôlent quels mixeurs sont affichés au joueur par défaut. Configurer lun de ceux-ci à False (Faux) cachera le mixeur concerné."
# gui/game/options.rpy:47
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Ces trois variables contrôlent, entre autres, quels mixeurs sont affichés au joueur par défaut. Configurer lun de ceux-ci à False (Faux) cachera le mixeur concerné."
# options.rpy:55
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
@@ -192,3 +191,15 @@ translate french strings:
# options.rpy:203
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Le nom dutilisateur et du projet associé au projet itch.io, séparé par un slash."
# gui/game/options.rpy:31
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
new "## Texte placé sur l'écran \"À propos\" du jeu. Placez le texte entre triples guillemets, et laissez une ligne entre les paragraphes."
# gui/game/options.rpy:82
old "## Between screens of the game menu."
new "## Entre les écrans du menu du jeu."
# gui/game/options.rpy:152
old "## Icon"
new "## Icône"
+81 -2
View File
@@ -1,5 +1,4 @@
translate french strings:
translate french strings:
# screens.rpy:9
old "## Styles"
@@ -640,3 +639,83 @@ translate french strings:
# screens.rpy:1429
old "Menu"
new "Menu"
# gui/game/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 "## Si il y a une side image, l'afficher au-dessus du texte. Ne pas l'afficher sur la version téléphone - pas assez de place."
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
new "## Rendre la boîte du nom personnalisable à travers l'objet Character."
# gui/game/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"
# gui/game/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"
# gui/game/screens.rpy:245
old "## Ensure this appears on top of other screens."
new "## Assure qu'il apparaît au-dessus des autres screens."
# gui/game/screens.rpy:284
old "## Main and Game Menu Screens"
new "## Screens du menu principal et du menu de jeu"
# gui/game/screens.rpy:333
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## Le bouton pour quitter est banni sur iOS et inutile sur Android et sur le Web."
# gui/game/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"
# gui/game/screens.rpy:356
old "## This ensures that any other menu screen is replaced."
new "## Ceci assure que tout autre screen de menu est remplacé."
# gui/game/screens.rpy:361
old "## This empty frame darkens the main menu."
new "## Cette frame vide obscurcit le menu principal."
# gui/game/screens.rpy:433
old "## Reserve space for the navigation section."
new "## Réserve de l'expace pour la section de navigation."
# gui/game/screens.rpy:612
old "## The page name, which can be edited by clicking on a button."
new "## Le nom de la page, qui peut être modifié en cliquant sur un bouton."
# gui/game/screens.rpy:669
old "## range(1, 10) gives the numbers from 1 to 9."
new "## range(1, 10) donne les nombres de 1 à 9."
# gui/game/screens.rpy:919
old "## This determines what tags are allowed to be displayed on the history screen."
new "## Ceci détermine quels tags peuvent être affichés sur le screen de l'historique."
# gui/game/screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "Molette vers le haut\nClic sur le côté du Rollback"
# gui/game/screens.rpy:1078
old "Left Trigger\nLeft Shoulder"
new "Gâchettes gauche"
# gui/game/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"
# gui/game/screens.rpy:1244
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
new "## Nous devons utiliser une police qui a le glyphe BLACK RIGHT-POINTING SMALL TRIANGLE."
# gui/game/screens.rpy:1292
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:1049
old "Opens the accessibility menu."
new "Ouvre le menu d'accessibilité."
+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)"
+2 -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)"
+2 -2
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."
@@ -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."
+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 "시스템 커서"
+2 -2
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)"
File diff suppressed because it is too large Load Diff
+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)"
+120 -100
View File
@@ -49,59 +49,67 @@ translate piglatin strings:
old "decrease"
new "ecreaseday"
# renpy/common/00accessibility.rpy:128
# renpy/common/00accessibility.rpy:138
old "Font Override"
new "Ontfay Verrideoay"
# renpy/common/00accessibility.rpy:132
# renpy/common/00accessibility.rpy:142
old "Default"
new "Efaultday"
# renpy/common/00accessibility.rpy:136
# renpy/common/00accessibility.rpy:146
old "DejaVu Sans"
new "Ejavuday Anssay"
# renpy/common/00accessibility.rpy:140
# renpy/common/00accessibility.rpy:150
old "Opendyslexic"
new "Pendyslexicoay"
# renpy/common/00accessibility.rpy:146
# renpy/common/00accessibility.rpy:156
old "Text Size Scaling"
new "Exttay Izesay Calingsay"
# renpy/common/00accessibility.rpy:152
# renpy/common/00accessibility.rpy:162
old "Reset"
new "Esetray"
# renpy/common/00accessibility.rpy:158
# renpy/common/00accessibility.rpy:168
old "Line Spacing Scaling"
new "Inelay Pacingsay Calingsay"
# renpy/common/00accessibility.rpy:171
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
new "Ighhay Ontrastcay Exttay"
# renpy/common/00accessibility.rpy:182
old "Enable"
new "Nableeay"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing"
new "Elfsay-Oicingvay"
# renpy/common/00accessibility.rpy:175
# renpy/common/00accessibility.rpy:197
old "Off"
new "Ffoay"
# renpy/common/00accessibility.rpy:179
# renpy/common/00accessibility.rpy:201
old "Text-to-speech"
new "Exttay-otay-peechsay"
# renpy/common/00accessibility.rpy:183
# renpy/common/00accessibility.rpy:205
old "Clipboard"
new "Lipboardcay"
# renpy/common/00accessibility.rpy:187
# renpy/common/00accessibility.rpy:209
old "Debug"
new "Ebugday"
# renpy/common/00accessibility.rpy:193
# renpy/common/00accessibility.rpy:215
old "Self-Voicing Volume Drop"
new "Elfsay-Oicingvay Olumevay Ropday"
# renpy/common/00accessibility.rpy:202
# renpy/common/00accessibility.rpy:224
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."
@@ -257,51 +265,51 @@ translate piglatin strings:
old "{#month_short}Dec"
new "{#month_short}Ecday"
# renpy/common/00action_file.rpy:240
# renpy/common/00action_file.rpy:250
old "%b %d, %H:%M"
new "%bay %day, %Hay:%May"
# renpy/common/00action_file.rpy:353
# renpy/common/00action_file.rpy:363
old "Save slot %s: [text]"
new "Avesay otslay %say: [text]"
# renpy/common/00action_file.rpy:434
# renpy/common/00action_file.rpy:444
old "Load slot %s: [text]"
new "Oadlay otslay %say: [text]"
# renpy/common/00action_file.rpy:487
# renpy/common/00action_file.rpy:497
old "Delete slot [text]"
new "Eleteday otslay [text]"
# renpy/common/00action_file.rpy:566
# renpy/common/00action_file.rpy:576
old "File page auto"
new "Ilefay agepay autoay"
# renpy/common/00action_file.rpy:568
# renpy/common/00action_file.rpy:578
old "File page quick"
new "Ilefay agepay uickqay"
# renpy/common/00action_file.rpy:570
# renpy/common/00action_file.rpy:580
old "File page [text]"
new "Ilefay agepay [text]"
# renpy/common/00action_file.rpy:769
# renpy/common/00action_file.rpy:779
old "Next file page."
new "Extnay ilefay agepay."
# renpy/common/00action_file.rpy:842
# renpy/common/00action_file.rpy:851
old "Previous file page."
new "Reviouspay ilefay agepay."
# renpy/common/00action_file.rpy:903
# renpy/common/00action_file.rpy:912
old "Quick save complete."
new "Uickqay avesay ompletecay."
# renpy/common/00action_file.rpy:921
# renpy/common/00action_file.rpy:930
old "Quick save."
new "Uickqay avesay."
# renpy/common/00action_file.rpy:940
# renpy/common/00action_file.rpy:949
old "Quick load."
new "Uickqay oadlay."
@@ -401,51 +409,51 @@ translate piglatin strings:
old "Audio Filename:"
new "Udioaay Ilenamefay:"
# renpy/common/00gui.rpy:374
# renpy/common/00gui.rpy:384
old "Are you sure?"
new "Reaay ouyay uresay?"
# renpy/common/00gui.rpy:375
# renpy/common/00gui.rpy:385
old "Are you sure you want to delete this save?"
new "Reaay ouyay uresay ouyay antway otay eleteday histay avesay?"
# renpy/common/00gui.rpy:376
# renpy/common/00gui.rpy:386
old "Are you sure you want to overwrite your save?"
new "Reaay ouyay uresay ouyay antway otay overwriteay ouryay avesay?"
# renpy/common/00gui.rpy:377
# renpy/common/00gui.rpy:387
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:378
# renpy/common/00gui.rpy:388
old "Are you sure you want to quit?"
new "Reaay ouyay uresay ouyay antway otay uitqay?"
# renpy/common/00gui.rpy:379
# renpy/common/00gui.rpy:389
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:380
# renpy/common/00gui.rpy:390
old "Are you sure you want to end the replay?"
new "Reaay ouyay uresay ouyay antway otay enday hetay eplayray?"
# renpy/common/00gui.rpy:381
# renpy/common/00gui.rpy:391
old "Are you sure you want to begin skipping?"
new "Reaay ouyay uresay ouyay antway otay eginbay kippingsay?"
# renpy/common/00gui.rpy:382
# renpy/common/00gui.rpy:392
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:383
# renpy/common/00gui.rpy:393
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:280
# renpy/common/00keymap.rpy:306
old "Failed to save screenshot as %s."
new "Ailedfay otay avesay creenshotsay asay %say."
# renpy/common/00keymap.rpy:292
# renpy/common/00keymap.rpy:318
old "Saved screenshot as %s."
new "Avedsay creenshotsay asay %say."
@@ -457,179 +465,191 @@ 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:240
# renpy/common/00preferences.rpy:254
old "display"
new "isplayday"
# renpy/common/00preferences.rpy:252
# renpy/common/00preferences.rpy:266
old "transitions"
new "ansitionstray"
# renpy/common/00preferences.rpy:261
# renpy/common/00preferences.rpy:275
old "skip transitions"
new "kipsay ansitionstray"
# renpy/common/00preferences.rpy:263
# renpy/common/00preferences.rpy:277
old "video sprites"
new "ideovay pritessay"
# renpy/common/00preferences.rpy:272
# renpy/common/00preferences.rpy:286
old "show empty window"
new "owshay emptyay indowway"
# renpy/common/00preferences.rpy:281
# renpy/common/00preferences.rpy:295
old "text speed"
new "exttay peedsay"
# renpy/common/00preferences.rpy:289
# renpy/common/00preferences.rpy:303
old "joystick"
new "oystickjay"
# renpy/common/00preferences.rpy:289
# renpy/common/00preferences.rpy:303
old "joystick..."
new "oystickjay..."
# renpy/common/00preferences.rpy:296
# renpy/common/00preferences.rpy:310
old "skip"
new "kipsay"
# renpy/common/00preferences.rpy:299
# renpy/common/00preferences.rpy:313
old "skip unseen [text]"
new "kipsay unseenay [text]"
# renpy/common/00preferences.rpy:304
# renpy/common/00preferences.rpy:318
old "skip unseen text"
new "kipsay unseenay exttay"
# renpy/common/00preferences.rpy:306
# renpy/common/00preferences.rpy:320
old "begin skipping"
new "eginbay kippingsay"
# renpy/common/00preferences.rpy:310
# renpy/common/00preferences.rpy:324
old "after choices"
new "afteray oiceschay"
# renpy/common/00preferences.rpy:317
# renpy/common/00preferences.rpy:331
old "skip after choices"
new "kipsay afteray oiceschay"
# renpy/common/00preferences.rpy:319
# renpy/common/00preferences.rpy:333
old "auto-forward time"
new "autoay-orwardfay imetay"
# renpy/common/00preferences.rpy:333
# renpy/common/00preferences.rpy:347
old "auto-forward"
new "autoay-orwardfay"
# renpy/common/00preferences.rpy:340
# renpy/common/00preferences.rpy:354
old "Auto forward"
new "Utoaay orwardfay"
# renpy/common/00preferences.rpy:343
# renpy/common/00preferences.rpy:357
old "auto-forward after click"
new "autoay-orwardfay afteray ickclay"
# renpy/common/00preferences.rpy:352
# renpy/common/00preferences.rpy:366
old "automatic move"
new "automaticay ovemay"
# renpy/common/00preferences.rpy:361
# renpy/common/00preferences.rpy:375
old "wait for voice"
new "aitway orfay oicevay"
# renpy/common/00preferences.rpy:370
# renpy/common/00preferences.rpy:384
old "voice sustain"
new "oicevay ustainsay"
# renpy/common/00preferences.rpy:379
# renpy/common/00preferences.rpy:393
old "self voicing"
new "elfsay oicingvay"
# renpy/common/00preferences.rpy:388
# renpy/common/00preferences.rpy:402
old "self voicing volume drop"
new "elfsay oicingvay olumevay ropday"
# renpy/common/00preferences.rpy:396
# renpy/common/00preferences.rpy:410
old "clipboard voicing"
new "ipboardclay oicingvay"
# renpy/common/00preferences.rpy:405
# renpy/common/00preferences.rpy:419
old "debug voicing"
new "ebugday oicingvay"
# renpy/common/00preferences.rpy:414
# renpy/common/00preferences.rpy:428
old "emphasize audio"
new "emphasizeay audioay"
# renpy/common/00preferences.rpy:423
# renpy/common/00preferences.rpy:437
old "rollback side"
new "ollbackray idesay"
# renpy/common/00preferences.rpy:433
# renpy/common/00preferences.rpy:447
old "gl powersave"
new "glay owersavepay"
# renpy/common/00preferences.rpy:439
# renpy/common/00preferences.rpy:453
old "gl framerate"
new "glay ameratefray"
# renpy/common/00preferences.rpy:442
# renpy/common/00preferences.rpy:456
old "gl tearing"
new "glay earingtay"
# renpy/common/00preferences.rpy:445
# renpy/common/00preferences.rpy:459
old "font transform"
new "ontfay ansformtray"
# renpy/common/00preferences.rpy:448
# renpy/common/00preferences.rpy:462
old "font size"
new "ontfay izesay"
# renpy/common/00preferences.rpy:456
# renpy/common/00preferences.rpy:470
old "font line spacing"
new "ontfay inelay pacingsay"
# renpy/common/00preferences.rpy:464
# renpy/common/00preferences.rpy:478
old "system cursor"
new "ystemsay ursorcay"
# renpy/common/00preferences.rpy:484
# renpy/common/00preferences.rpy:487
old "renderer menu"
new "endererray enumay"
# renpy/common/00preferences.rpy:490
old "accessibility menu"
new "accessibilityay enumay"
# renpy/common/00preferences.rpy:493
old "high contrast text"
new "ighhay ontrastcay exttay"
# renpy/common/00preferences.rpy:512
old "music volume"
new "usicmay olumevay"
# renpy/common/00preferences.rpy:485
# renpy/common/00preferences.rpy:513
old "sound volume"
new "oundsay olumevay"
# renpy/common/00preferences.rpy:486
# renpy/common/00preferences.rpy:514
old "voice volume"
new "oicevay olumevay"
# renpy/common/00preferences.rpy:487
# renpy/common/00preferences.rpy:515
old "mute music"
new "utemay usicmay"
# renpy/common/00preferences.rpy:488
# renpy/common/00preferences.rpy:516
old "mute sound"
new "utemay oundsay"
# renpy/common/00preferences.rpy:489
# renpy/common/00preferences.rpy:517
old "mute voice"
new "utemay oicevay"
# renpy/common/00preferences.rpy:490
# renpy/common/00preferences.rpy:518
old "mute all"
new "utemay allay"
# renpy/common/00preferences.rpy:571
# renpy/common/00preferences.rpy:599
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Lipboardcay oicingvay enableday. Resspay 'iftshay+Cay' otay isableday."
# renpy/common/00preferences.rpy:573
# renpy/common/00preferences.rpy:601
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:575
# renpy/common/00preferences.rpy:603
old "Self-voicing enabled. Press 'v' to disable."
new "Elfsay-oicingvay enableday. Resspay 'vay' otay isableday."
@@ -637,75 +657,75 @@ translate piglatin strings:
old "Contacting App Store\nPlease Wait..."
new "Ontactingcay Ppaay Toresay\nLeasepay Aitway..."
# renpy/common/00updater.rpy:374
# renpy/common/00updater.rpy:391
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:493
# renpy/common/00updater.rpy:520
old "An error is being simulated."
new "Naay erroray isay eingbay imulatedsay."
# renpy/common/00updater.rpy:677
# renpy/common/00updater.rpy:704
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:691
# renpy/common/00updater.rpy:718
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:694
# renpy/common/00updater.rpy:721
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:721
# renpy/common/00updater.rpy:746
old "Could not verify update signature."
new "Ouldcay otnay erifyvay updateay ignaturesay."
# renpy/common/00updater.rpy:992
# renpy/common/00updater.rpy:1013
old "The update file was not downloaded."
new "Hetay updateay ilefay asway otnay ownloadedday."
# renpy/common/00updater.rpy:1010
# renpy/common/00updater.rpy:1031
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:1064
# renpy/common/00updater.rpy:1181
old "While unpacking {}, unknown type {}."
new "Hileway unpackingay {}, unknownay ypetay {}."
# renpy/common/00updater.rpy:1430
# renpy/common/00updater.rpy:1553
old "Updater"
new "Pdateruay"
# renpy/common/00updater.rpy:1441
# renpy/common/00updater.rpy:1564
old "This program is up to date."
new "Histay rogrampay isay upay otay ateday."
# renpy/common/00updater.rpy:1443
# renpy/common/00updater.rpy:1566
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:1445
# renpy/common/00updater.rpy:1568
old "Preparing to download the updates."
new "Reparingpay otay ownloadday hetay updatesay."
# renpy/common/00updater.rpy:1447
# renpy/common/00updater.rpy:1570
old "Downloading the updates."
new "Ownloadingday hetay updatesay."
# renpy/common/00updater.rpy:1449
# renpy/common/00updater.rpy:1572
old "Unpacking the updates."
new "Npackinguay hetay updatesay."
# renpy/common/00updater.rpy:1453
# renpy/common/00updater.rpy:1576
old "The updates have been installed. The program will restart."
new "Hetay updatesay avehay eenbay installeday. Hetay rogrampay illway estartray."
# renpy/common/00updater.rpy:1455
# renpy/common/00updater.rpy:1578
old "The updates have been installed."
new "Hetay updatesay avehay eenbay installeday."
# renpy/common/00updater.rpy:1457
# renpy/common/00updater.rpy:1580
old "The updates were cancelled."
new "Hetay updatesay ereway ancelledcay."
+17 -17
View File
@@ -157,71 +157,71 @@ translate piglatin strings:
old "Ren'Py script disabled."
new "Enray'Ypay criptsay isabledday."
# renpy/common/00console.rpy:745
# renpy/common/00console.rpy:747
old "help: show this help"
new "elphay: owshay histay elphay"
# renpy/common/00console.rpy:750
# renpy/common/00console.rpy:752
old "commands:\n"
new "ommandscay:\n"
# renpy/common/00console.rpy:760
# renpy/common/00console.rpy:762
old " <renpy script statement>: run the statement\n"
new " <enpyray criptsay atementstay>: unray hetay atementstay\n"
# renpy/common/00console.rpy:762
# renpy/common/00console.rpy:764
old " <python expression or statement>: run the expression or statement"
new " <ythonpay expressionay oray atementstay>: unray hetay expressionay oray atementstay"
# renpy/common/00console.rpy:770
# renpy/common/00console.rpy:772
old "clear: clear the console history"
new "earclay: earclay hetay onsolecay istoryhay"
# renpy/common/00console.rpy:774
# renpy/common/00console.rpy:776
old "exit: exit the console"
new "exitay: exitay hetay onsolecay"
# renpy/common/00console.rpy:782
# renpy/common/00console.rpy:784
old "load <slot>: loads the game from slot"
new "oadlay <otslay>: oadslay hetay amegay omfray otslay"
# renpy/common/00console.rpy:795
# renpy/common/00console.rpy:797
old "save <slot>: saves the game in slot"
new "avesay <otslay>: avessay hetay amegay inay otslay"
# renpy/common/00console.rpy:806
# renpy/common/00console.rpy:808
old "reload: reloads the game, refreshing the scripts"
new "eloadray: eloadsray hetay amegay, efreshingray hetay criptssay"
# renpy/common/00console.rpy:814
# renpy/common/00console.rpy:816
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:849
# renpy/common/00console.rpy:851
old "unwatch <expression>: stop watching an expression"
new "unwatchay <expressionay>: opstay atchingway anay expressionay"
# renpy/common/00console.rpy:884
# renpy/common/00console.rpy:886
old "unwatchall: stop watching all expressions"
new "unwatchallay: opstay atchingway allay expressionsay"
# renpy/common/00console.rpy:901
# renpy/common/00console.rpy:903
old "jump <label>: jumps to label"
new "umpjay <abellay>: umpsjay otay abellay"
# renpy/common/00console.rpy:917
# renpy/common/00console.rpy:919
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:921
# renpy/common/00console.rpy:923
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
# renpy/common/00console.rpy:927
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
# renpy/common/00console.rpy:931
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)."
+44 -52
View File
@@ -34,70 +34,74 @@ translate piglatin strings:
new "Orcefay Les2gay Endererray"
# renpy/common/00gltest.rpy:136
old "Enable"
new "Nableeay"
old "Enable (No Blocklist)"
new "Nableeay (Onay Locklistbay)"
# renpy/common/00gltest.rpy:155
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Owersavepay"
# renpy/common/00gltest.rpy:169
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Rameratefay"
# renpy/common/00gltest.rpy:173
# renpy/common/00gltest.rpy:177
old "Screen"
new "Creensay"
# renpy/common/00gltest.rpy:177
# renpy/common/00gltest.rpy:181
old "60"
new "06ay"
# renpy/common/00gltest.rpy:181
# renpy/common/00gltest.rpy:185
old "30"
new "03ay"
# renpy/common/00gltest.rpy:187
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Earingtay"
# renpy/common/00gltest.rpy:203
# renpy/common/00gltest.rpy:207
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:238
# renpy/common/00gltest.rpy:242
old "Performance Warning"
new "Erformancepay Arningway"
# renpy/common/00gltest.rpy:243
# renpy/common/00gltest.rpy:247
old "This computer is using software rendering."
new "Histay omputercay isay usingay oftwaresay enderingray."
# renpy/common/00gltest.rpy:245
# renpy/common/00gltest.rpy:249
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:247
# renpy/common/00gltest.rpy:251
old "This computer has a problem displaying graphics: [problem]."
new "Histay omputercay ashay aay roblempay isplayingday aphicsgray: [problem]."
# renpy/common/00gltest.rpy:251
# renpy/common/00gltest.rpy:255
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:256
# renpy/common/00gltest.rpy:259
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
new "Hetay {a=edit:1:log.txt}oglay.xttay{/a} ilefay aymay ontaincay informationay otay elphay ouyay etermineday hatway isay rongway ithway ouryay omputercay."
# renpy/common/00gltest.rpy:264
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:261
# renpy/common/00gltest.rpy:269
old "Continue, Show this warning again"
new "Ontinuecay, Howsay histay arningway againay"
# renpy/common/00gltest.rpy:265
# renpy/common/00gltest.rpy:273
old "Continue, Don't show warning again"
new "Ontinuecay, Onday'tay owshay arningway againay"
# renpy/common/00gltest.rpy:273
# renpy/common/00gltest.rpy:281
old "Change render options"
new "Hangecay enderray optionsay"
@@ -114,98 +118,86 @@ 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:540
# renpy/common/_errorhandling.rpym:542
old "Open"
new "Penoay"
# renpy/common/_errorhandling.rpym:542
# renpy/common/_errorhandling.rpym:544
old "Opens the traceback.txt file in a text editor."
new "Pensoay hetay acebacktray.xttay ilefay inay aay exttay editoray."
# renpy/common/_errorhandling.rpym:544
# renpy/common/_errorhandling.rpym:546
old "Copy BBCode"
new "Opycay Bcodebay"
# renpy/common/_errorhandling.rpym:546
# renpy/common/_errorhandling.rpym:548
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:548
# renpy/common/_errorhandling.rpym:550
old "Copy Markdown"
new "Opycay Arkdownmay"
# renpy/common/_errorhandling.rpym:550
# renpy/common/_errorhandling.rpym:552
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:579
# renpy/common/_errorhandling.rpym:581
old "An exception has occurred."
new "Naay exceptionay ashay occurreday."
# renpy/common/_errorhandling.rpym:602
# renpy/common/_errorhandling.rpym:604
old "Rollback"
new "Ollbackray"
# renpy/common/_errorhandling.rpym:604
# renpy/common/_errorhandling.rpym:606
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:607
# renpy/common/_errorhandling.rpym:609
old "Ignore"
new "Gnoreiay"
# renpy/common/_errorhandling.rpym:611
# renpy/common/_errorhandling.rpym:613
old "Ignores the exception, allowing you to continue."
new "Gnoresiay hetay exceptionay, allowingay ouyay otay ontinuecay."
# renpy/common/_errorhandling.rpym:613
# renpy/common/_errorhandling.rpym:615
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:617
# renpy/common/_errorhandling.rpym:619
old "Reload"
new "Eloadray"
# renpy/common/_errorhandling.rpym:619
# renpy/common/_errorhandling.rpym:621
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:622
# renpy/common/_errorhandling.rpym:624
old "Console"
new "Onsolecay"
# renpy/common/_errorhandling.rpym:624
# renpy/common/_errorhandling.rpym:626
old "Opens a console to allow debugging the problem."
new "Pensoay aay onsolecay otay alloway ebuggingday hetay roblempay."
# renpy/common/_errorhandling.rpym:637
# renpy/common/_errorhandling.rpym:639
old "Quits the game."
new "Uitsqay hetay amegay."
# renpy/common/_errorhandling.rpym:658
# renpy/common/_errorhandling.rpym:660
old "Parsing the script failed."
new "Arsingpay hetay criptsay ailedfay."
# 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: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: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."
+2 -2
View File
@@ -425,11 +425,11 @@ translate piglatin strings:
old "## Change the size and spacing of various things."
new "## Hangecay hetay izesay anday pacingsay ofay ariousvay hingstay."
# gui/game/gui.rpy:454
# gui/game/gui.rpy:455
old "## File button layout."
new "## Ilefay uttonbay ayoutlay."
# gui/game/gui.rpy:458
# gui/game/gui.rpy:459
old "## NVL-mode."
new "## Vlnay-odemay."
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -46,8 +46,8 @@ translate piglatin strings:
new "## Oundssay anday usicmay"
# gui/game/options.rpy:47
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Hesetay hreetay ariablesvay ontrolcay hichway ixersmay areay ownshay otay hetay ayerplay ybay efaultday. Ettingsay oneay ofay hesetay otay Alsefay illway idehay hetay appropriateay ixermay."
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Hesetay hreetay ariablesvay ontrolcay, amongay otheray hingstay, hichway ixersmay areay ownshay otay hetay ayerplay ybay efaultday. Ettingsay oneay ofay hesetay otay Alsefay illway idehay hetay appropriateay ixermay."
# gui/game/options.rpy:56
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
+44 -40
View File
@@ -181,11 +181,11 @@ translate piglatin strings:
old "## This ensures that any other menu screen is replaced."
new "## Histay ensuresay hattay anyay otheray enumay creensay isay eplacedray."
# gui/game/screens.rpy:363
# gui/game/screens.rpy:361
old "## This empty frame darkens the main menu."
new "## Histay emptyay amefray arkensday hetay ainmay enumay."
# gui/game/screens.rpy:367
# gui/game/screens.rpy:365
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."
@@ -517,155 +517,159 @@ translate piglatin strings:
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:1051
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
new "Pensoay hetay accessibilityay enumay."
# gui/game/screens.rpy:1055
old "Left Click"
new "Eftlay Lickcay"
# gui/game/screens.rpy:1055
# gui/game/screens.rpy:1059
old "Middle Click"
new "Iddlemay Lickcay"
# gui/game/screens.rpy:1059
# gui/game/screens.rpy:1063
old "Right Click"
new "Ightray Lickcay"
# gui/game/screens.rpy:1063
# gui/game/screens.rpy:1067
old "Mouse Wheel Up\nClick Rollback Side"
new "Ousemay Heelway Puay\nLickcay Ollbackray Idesay"
# gui/game/screens.rpy:1067
# gui/game/screens.rpy:1071
old "Mouse Wheel Down"
new "Ousemay Heelway Ownday"
# gui/game/screens.rpy:1074
# gui/game/screens.rpy:1078
old "Right Trigger\nA/Bottom Button"
new "Ightray Riggertay\nAay/Ottombay Uttonbay"
# gui/game/screens.rpy:1078
# gui/game/screens.rpy:1082
old "Left Trigger\nLeft Shoulder"
new "Eftlay Riggertay\nEftlay Houldersay"
# gui/game/screens.rpy:1082
# gui/game/screens.rpy:1086
old "Right Shoulder"
new "Ightray Houldersay"
# gui/game/screens.rpy:1087
# gui/game/screens.rpy:1091
old "D-Pad, Sticks"
new "Day-Adpay, Tickssay"
# gui/game/screens.rpy:1091
# gui/game/screens.rpy:1095
old "Start, Guide"
new "Tartsay, Uidegay"
# gui/game/screens.rpy:1095
# gui/game/screens.rpy:1099
old "Y/Top Button"
new "Yay/Optay Uttonbay"
# gui/game/screens.rpy:1098
# gui/game/screens.rpy:1102
old "Calibrate"
new "Alibratecay"
# gui/game/screens.rpy:1126
# gui/game/screens.rpy:1130
old "## Additional screens"
new "## Dditionalaay creenssay"
# gui/game/screens.rpy:1130
# gui/game/screens.rpy:1134
old "## Confirm screen"
new "## Onfirmcay creensay"
# gui/game/screens.rpy:1132
# gui/game/screens.rpy:1136
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:1135
# gui/game/screens.rpy:1139
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:1139
# gui/game/screens.rpy:1143
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:1163
# gui/game/screens.rpy:1167
old "Yes"
new "Esyay"
# gui/game/screens.rpy:1164
# gui/game/screens.rpy:1168
old "No"
new "Onay"
# gui/game/screens.rpy:1166
# gui/game/screens.rpy:1170
old "## Right-click and escape answer \"no\"."
new "## Ightray-ickclay anday escapeay answeray \"onay\"."
# gui/game/screens.rpy:1193
# gui/game/screens.rpy:1197
old "## Skip indicator screen"
new "## Kipsay indicatoray creensay"
# gui/game/screens.rpy:1195
# gui/game/screens.rpy:1199
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:1198
# gui/game/screens.rpy:1202
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:1210
# gui/game/screens.rpy:1214
old "Skipping"
new "Kippingsay"
# gui/game/screens.rpy:1217
# gui/game/screens.rpy:1221
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:1244
# gui/game/screens.rpy:1248
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:1249
# gui/game/screens.rpy:1253
old "## Notify screen"
new "## Otifynay creensay"
# gui/game/screens.rpy:1251
# gui/game/screens.rpy:1255
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:1254
# gui/game/screens.rpy:1258
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:1288
# gui/game/screens.rpy:1292
old "## NVL screen"
new "## Vlnay creensay"
# gui/game/screens.rpy:1290
# gui/game/screens.rpy:1294
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:1292
# gui/game/screens.rpy:1296
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:1303
# gui/game/screens.rpy:1307
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Isplaysday ialogueday inay eitheray aay pgridvay oray hetay boxvay."
# gui/game/screens.rpy:1316
# gui/game/screens.rpy:1320
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:1346
# gui/game/screens.rpy:1350
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:1408
# gui/game/screens.rpy:1412
old "## Mobile Variants"
new "## Obilemay Ariantsvay"
# gui/game/screens.rpy:1415
# gui/game/screens.rpy:1419
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:1433
# gui/game/screens.rpy:1437
old "Menu"
new "Enumay"
+907
View File
@@ -0,0 +1,907 @@
translate polish strings:
# renpy/common/00accessibility.rpy:28
old "Self-voicing disabled."
new "Własna-wypowiedź wyłączone (self-voicing)."
# renpy/common/00accessibility.rpy:29
old "Clipboard voicing enabled. "
new "Wypowiedź schowku włączona. "
# renpy/common/00accessibility.rpy:30
old "Self-voicing enabled. "
new "Własna-wypowiedź włączona (self-voicing)."
# renpy/common/00accessibility.rpy:32
old "bar"
new "pasek"
# renpy/common/00accessibility.rpy:33
old "selected"
new "zaznaczono"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "Rzutnia"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
new "Przewijanie w poziomie"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
new "przewijanie w pionie"
# renpy/common/00accessibility.rpy:37
old "activate"
new "Włącz"
# renpy/common/00accessibility.rpy:38
old "deactivate"
new "Wyłącz"
# renpy/common/00accessibility.rpy:39
old "increase"
new "zwiększ"
# renpy/common/00accessibility.rpy:40
old "decrease"
new "zmniejsz"
# renpy/common/00accessibility.rpy:128
old "Font Override"
new "Zastąpienie czcionki"
# renpy/common/00accessibility.rpy:132
old "Default"
new "Domyślna"
# renpy/common/00accessibility.rpy:136
old "DejaVu Sans"
new "DejaVu Sans"
# renpy/common/00accessibility.rpy:140
old "Opendyslexic"
new "Opendyslexic"
# renpy/common/00accessibility.rpy:146
old "Text Size Scaling"
new "Skalowanie rozmiaru tekstu"
# renpy/common/00accessibility.rpy:152
old "Reset"
new "Reset"
# renpy/common/00accessibility.rpy:158
old "Line Spacing Scaling"
new "Skalowanie interlinii"
# renpy/common/00accessibility.rpy:171
old "Self-Voicing"
new "Własna wypowiedź"
# renpy/common/00accessibility.rpy:175
old "Off"
new "Off"
# renpy/common/00accessibility.rpy:179
old "Text-to-speech"
new "Terkst-na-mowę"
# renpy/common/00accessibility.rpy:183
old "Clipboard"
new "Schowek"
# renpy/common/00accessibility.rpy:187
old "Debug"
new "Debug"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "Własna-wypowiedź wyciszenie"
# 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 "Opcje tego menu mają na celu poprawę dostępności. Mogą nie działać we wszystkich grach, a niektóre kombinacje opcji mogą uniemożliwić grę. To nie jest problem z grą ani silnikiem. Aby uzyskać najlepsze wyniki podczas zmiany czcionek, staraj się zachować taki sam rozmiar tekstu, jaki był pierwotnie."
# renpy/common/00action_file.rpy:26
old "{#weekday}Monday"
new "{#weekday}Poniedziałek"
# renpy/common/00action_file.rpy:26
old "{#weekday}Tuesday"
new "{#weekday}Wtorek"
# renpy/common/00action_file.rpy:26
old "{#weekday}Wednesday"
new "{#weekday}Środa"
# renpy/common/00action_file.rpy:26
old "{#weekday}Thursday"
new "{#weekday}Czwartek"
# renpy/common/00action_file.rpy:26
old "{#weekday}Friday"
new "{#weekday}Piątek"
# renpy/common/00action_file.rpy:26
old "{#weekday}Saturday"
new "{#weekday}Sobota"
# renpy/common/00action_file.rpy:26
old "{#weekday}Sunday"
new "{#weekday}Niedziela"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Mon"
new "{#weekday_short}Pn."
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Tue"
new "{#weekday_short}Wt."
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Wed"
new "{#weekday_short}Śr."
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Thu"
new "{#weekday_short}Czw."
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Fri"
new "{#weekday_short}Pt."
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Sat"
new "{#weekday_short}Sb."
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Sun"
new "{#weekday_short}N."
# renpy/common/00action_file.rpy:47
old "{#month}January"
new "{#month}Styczeń"
# renpy/common/00action_file.rpy:47
old "{#month}February"
new "{#month}Luty"
# renpy/common/00action_file.rpy:47
old "{#month}March"
new "{#month}Marzec"
# renpy/common/00action_file.rpy:47
old "{#month}April"
new "{#month}Kwiecień"
# renpy/common/00action_file.rpy:47
old "{#month}May"
new "{#month}Maj"
# renpy/common/00action_file.rpy:47
old "{#month}June"
new "{#month}Czerwiec"
# renpy/common/00action_file.rpy:47
old "{#month}July"
new "{#month}Lipiec"
# renpy/common/00action_file.rpy:47
old "{#month}August"
new "{#month}Sierpień"
# renpy/common/00action_file.rpy:47
old "{#month}September"
new "{#month}Wrzesień"
# renpy/common/00action_file.rpy:47
old "{#month}October"
new "{#month}Październik"
# renpy/common/00action_file.rpy:47
old "{#month}November"
new "{#month}Listopad"
# renpy/common/00action_file.rpy:47
old "{#month}December"
new "{#month}Grudzień"
# renpy/common/00action_file.rpy:63
old "{#month_short}Jan"
new "{#month_short}St."
# renpy/common/00action_file.rpy:63
old "{#month_short}Feb"
new "{#month_short}Lut."
# renpy/common/00action_file.rpy:63
old "{#month_short}Mar"
new "{#month_short}Mrz."
# renpy/common/00action_file.rpy:63
old "{#month_short}Apr"
new "{#month_short}Kw."
# renpy/common/00action_file.rpy:63
old "{#month_short}May"
new "{#month_short}Maj"
# renpy/common/00action_file.rpy:63
old "{#month_short}Jun"
new "{#month_short}Cz."
# renpy/common/00action_file.rpy:63
old "{#month_short}Jul"
new "{#month_short}Lip."
# renpy/common/00action_file.rpy:63
old "{#month_short}Aug"
new "{#month_short}Sier."
# renpy/common/00action_file.rpy:63
old "{#month_short}Sep"
new "{#month_short}Wrz."
# renpy/common/00action_file.rpy:63
old "{#month_short}Oct"
new "{#month_short}Paź."
# renpy/common/00action_file.rpy:63
old "{#month_short}Nov"
new "{#month_short}Lis."
# renpy/common/00action_file.rpy:63
old "{#month_short}Dec"
new "{#month_short}Gr."
# renpy/common/00action_file.rpy:250
old "%b %d, %H:%M"
new "%b %d, %H:%M"
# renpy/common/00action_file.rpy:363
old "Save slot %s: [text]"
new "Zapisz plik %s: [text]"
# renpy/common/00action_file.rpy:444
old "Load slot %s: [text]"
new "Wczytaj plik %s: [text]"
# renpy/common/00action_file.rpy:497
old "Delete slot [text]"
new "Usuń plik [text]"
# renpy/common/00action_file.rpy:576
old "File page auto"
new "Zapis automatyczny"
# renpy/common/00action_file.rpy:578
old "File page quick"
new "Zapis szybki"
# renpy/common/00action_file.rpy:580
old "File page [text]"
new "Pliki [text]"
# renpy/common/00action_file.rpy:779
old "Next file page."
new "Następna strona."
# renpy/common/00action_file.rpy:851
old "Previous file page."
new "Poprzednia strona."
# renpy/common/00action_file.rpy:912
old "Quick save complete."
new "Wykonano szybki zapis."
# renpy/common/00action_file.rpy:930
old "Quick save."
new "Szybki zapis."
# renpy/common/00action_file.rpy:949
old "Quick load."
new "Szybkie wczytanie."
# renpy/common/00action_other.rpy:375
old "Language [text]"
new "Język [text]"
# renpy/common/00director.rpy:708
old "The interactive director is not enabled here."
new "Interakcja nie jest tutaj dostępna."
# renpy/common/00director.rpy:1481
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1487
old "⬇"
new "⬆"
# renpy/common/00director.rpy:1551
old "Done"
new "Gotowe"
# renpy/common/00director.rpy:1561
old "(statement)"
new "(statement)"
# renpy/common/00director.rpy:1562
old "(tag)"
new "(tag)"
# renpy/common/00director.rpy:1563
old "(attributes)"
new "(attributes)"
# renpy/common/00director.rpy:1564
old "(transform)"
new "(transform)"
# renpy/common/00director.rpy:1589
old "(transition)"
new "(transition)"
# renpy/common/00director.rpy:1601
old "(channel)"
new "(channel)"
# renpy/common/00director.rpy:1602
old "(filename)"
new "(filename)"
# renpy/common/00director.rpy:1631
old "Change"
new "Zmiana"
# renpy/common/00director.rpy:1633
old "Add"
new "Dodaj"
# renpy/common/00director.rpy:1636
old "Cancel"
new "Anuluj"
# renpy/common/00director.rpy:1639
old "Remove"
new "Usuń"
# renpy/common/00director.rpy:1674
old "Statement:"
new "Komunikat:"
# renpy/common/00director.rpy:1695
old "Tag:"
new "Tag:"
# renpy/common/00director.rpy:1711
old "Attributes:"
new "Atrybuty:"
# renpy/common/00director.rpy:1729
old "Transforms:"
new "Przekształcenia:"
# renpy/common/00director.rpy:1748
old "Behind:"
new "Za:"
# renpy/common/00director.rpy:1767
old "Transition:"
new "Przejście:"
# renpy/common/00director.rpy:1785
old "Channel:"
new "Kanał:"
# renpy/common/00director.rpy:1803
old "Audio Filename:"
new "Nazwa pliku audio:"
# renpy/common/00gui.rpy:384
old "Are you sure?"
new "Czy na pewno?"
# renpy/common/00gui.rpy:385
old "Are you sure you want to delete this save?"
new "Czy na pewno chcesz usunąć ten zapis?"
# renpy/common/00gui.rpy:386
old "Are you sure you want to overwrite your save?"
new "Czy na pewno chcesz nadpisać twój zapis?"
# renpy/common/00gui.rpy:387
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Wczytywanie spowoduje utratę niezapisanego progresu.\nCzy na pewno chcesz to zrobić?"
# renpy/common/00gui.rpy:388
old "Are you sure you want to quit?"
new "Czy na pewno chcesz wyjść?"
# renpy/common/00gui.rpy:389
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Czy na pewno chcesz wrócić do menu głównego?\nSpowoduje to utratę niezapisanych postępów."
# renpy/common/00gui.rpy:390
old "Are you sure you want to end the replay?"
new "Czy na pewno chcesz zakończyć powtórkę?"
# renpy/common/00gui.rpy:391
old "Are you sure you want to begin skipping?"
new "Czy na pewno chcesz zacząć pomijać?"
# renpy/common/00gui.rpy:392
old "Are you sure you want to skip to the next choice?"
new "Czy na pewno chcesz pominąć do następnego wyboru?"
# renpy/common/00gui.rpy:393
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "Czy na pewno chcesz pominąć nie spotkane dialogi do następnego wyboru?"
# renpy/common/00keymap.rpy:306
old "Failed to save screenshot as %s."
new "Nie udało się zapisać zrzutu ekranu jako %s."
# renpy/common/00keymap.rpy:318
old "Saved screenshot as %s."
new "Zapisano zrzut ekranu jako %s."
# renpy/common/00library.rpy:195
old "Skip Mode"
new "Tryb pomijania"
# renpy/common/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 "Ten program zawiera wolne oprogramowanie na wielu licencjach, w tym Licencji MIT i GNU Lesser General Public License. Pełną listę oprogramowania, w tym linki do pełnego kodu źródłowego, można znaleźć {a=https://www.renpy.org/l/license}tutaj{/a}."
# renpy/common/00preferences.rpy:247
old "display"
new "wyświetl"
# renpy/common/00preferences.rpy:259
old "transitions"
new "przejście"
# renpy/common/00preferences.rpy:268
old "skip transitions"
new "pomiń przejście"
# renpy/common/00preferences.rpy:270
old "video sprites"
new "sprity wideo"
# renpy/common/00preferences.rpy:279
old "show empty window"
new "Wyświetl puste okno"
# renpy/common/00preferences.rpy:288
old "text speed"
new "szybkość tekstu"
# renpy/common/00preferences.rpy:296
old "joystick"
new "joystick"
# renpy/common/00preferences.rpy:296
old "joystick..."
new "joystick..."
# renpy/common/00preferences.rpy:303
old "skip"
new "pomiń"
# renpy/common/00preferences.rpy:306
old "skip unseen [text]"
new "pomiń nieprzeczytane [text]"
# renpy/common/00preferences.rpy:311
old "skip unseen text"
new "pomiń nieprzeczytany tekst"
# renpy/common/00preferences.rpy:313
old "begin skipping"
new "rozpocznij pomijanie"
# renpy/common/00preferences.rpy:317
old "after choices"
new "po wyborze"
# renpy/common/00preferences.rpy:324
old "skip after choices"
new "pomiń po wyborach"
# renpy/common/00preferences.rpy:326
old "auto-forward time"
new "auto-przewijanie czas"
# renpy/common/00preferences.rpy:340
old "auto-forward"
new "auto-przewijanie"
# renpy/common/00preferences.rpy:347
old "Auto forward"
new "Auto przewijanie"
# renpy/common/00preferences.rpy:350
old "auto-forward after click"
new "auto-przewijanie po naciśnięciu"
# renpy/common/00preferences.rpy:359
old "automatic move"
new "ruch automatyczny"
# renpy/common/00preferences.rpy:368
old "wait for voice"
new "czekaj na dźwięk"
# renpy/common/00preferences.rpy:377
old "voice sustain"
new "podtrzymywanie dźwięku"
# renpy/common/00preferences.rpy:386
old "self voicing"
new "własna wypowiedź"
# renpy/common/00preferences.rpy:395
old "self voicing volume drop"
new "własna wypowiedź wyciszenie"
# renpy/common/00preferences.rpy:403
old "clipboard voicing"
new "wypowiedź schowku"
# renpy/common/00preferences.rpy:412
old "debug voicing"
new "wypowiedź debug"
# renpy/common/00preferences.rpy:421
old "emphasize audio"
new "uwydatnij dźwięk"
# renpy/common/00preferences.rpy:430
old "rollback side"
new "strona cofania"
# renpy/common/00preferences.rpy:440
old "gl powersave"
new "gl powersave"
# renpy/common/00preferences.rpy:446
old "gl framerate"
new "gl framerate"
# renpy/common/00preferences.rpy:449
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:452
old "font transform"
new "transformacja czcionki"
# renpy/common/00preferences.rpy:455
old "font size"
new "rozmiar czcionki"
# renpy/common/00preferences.rpy:463
old "font line spacing"
new "interlinia czcionki"
# renpy/common/00preferences.rpy:471
old "system cursor"
new "kursor systemu"
# renpy/common/00preferences.rpy:480
old "renderer menu"
new "menu renderowania"
# renpy/common/00preferences.rpy:483
old "accessibility menu"
new "menu dostępu"
# renpy/common/00preferences.rpy:496
old "music volume"
new "głośność muzyki"
# renpy/common/00preferences.rpy:497
old "sound volume"
new "głośność dźwięku"
# renpy/common/00preferences.rpy:498
old "voice volume"
new "głośność głosu"
# renpy/common/00preferences.rpy:499
old "mute music"
new "wycisz muzykę"
# renpy/common/00preferences.rpy:500
old "mute sound"
new "wycisz dźwięk"
# renpy/common/00preferences.rpy:501
old "mute voice"
new "wycisz głos"
# renpy/common/00preferences.rpy:502
old "mute all"
new "wycisz wszystko"
# renpy/common/00preferences.rpy:583
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Dźwięki w schowku włączone. Naciśnij 'shift+C', aby wyłączyć"
# renpy/common/00preferences.rpy:585
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "Własna-wypowiedź powiedziałaby \"[renpy.display.tts.last]\". Naciśnij 'alt+shift+V', aby wyłączyć."
# renpy/common/00preferences.rpy:587
old "Self-voicing enabled. Press 'v' to disable."
new "Własna-wypowiedź włączona. Naciśnij 'v' aby wyłączyć."
# renpy/common/_compat/gamemenu.rpym:198
old "Empty Slot."
new "Puste"
# renpy/common/_compat/gamemenu.rpym:355
old "Previous"
new "Poprzednie"
# renpy/common/_compat/gamemenu.rpym:362
old "Next"
new "Następne"
# renpy/common/_compat/preferences.rpym:428
old "Joystick Mapping"
new "Mapowanie joysticka"
# renpy/common/_developer/developer.rpym:38
old "Developer Menu"
new "Menu developera"
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
new "Reżyser interaktywny (D)"
# renpy/common/_developer/developer.rpym:45
old "Reload Game (Shift+R)"
new "Wczytaj grę {Shift+R)"
# renpy/common/_developer/developer.rpym:47
old "Console (Shift+O)"
new "Konsola (Shift+O)"
# renpy/common/_developer/developer.rpym:49
old "Variable Viewer"
new "Wyswietl zmienne"
# renpy/common/_developer/developer.rpym:51
old "Image Location Picker"
new "Selektor lokalizacji obrazu"
# renpy/common/_developer/developer.rpym:53
old "Filename List"
new "Lista nazwy plików"
# renpy/common/_developer/developer.rpym:57
old "Show Image Load Log (F4)"
new "Pokaż dziennik wczytanych obrazów (F4)"
# renpy/common/_developer/developer.rpym:60
old "Hide Image Load Log (F4)"
new "Schowaj dziennik wczytanych obrazów (F4)"
# renpy/common/_developer/developer.rpym:63
old "Image Attributes"
new "Atrybuty obrazu"
# renpy/common/_developer/developer.rpym:90
old "[name] [attributes] (hidden)"
new "[name] [attributes] (hidden)"
# renpy/common/_developer/developer.rpym:94
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:143
old "Nothing to inspect."
new "Nic do sprawdzenia"
# renpy/common/_developer/developer.rpym:154
old "Hide deleted"
new "Schowaj usunięte"
# renpy/common/_developer/developer.rpym:154
old "Show deleted"
new "Wyświetl usunięte"
# renpy/common/_developer/developer.rpym:278
old "Return to the developer menu"
new "Powrót do menu developera"
# renpy/common/_developer/developer.rpym:443
old "Rectangle: %r"
new "Prostokąt: %r"
# renpy/common/_developer/developer.rpym:448
old "Mouse position: %r"
new "Położenie myszki: %r"
# renpy/common/_developer/developer.rpym:453
old "Right-click or escape to quit."
new "Prawy przycisk myszy lub Escape, aby wyjść."
# renpy/common/_developer/developer.rpym:485
old "Rectangle copied to clipboard."
new "Prostokąt skopiowany do schowka."
# renpy/common/_developer/developer.rpym:488
old "Position copied to clipboard."
new "Pozycja skopiowana do schowka."
# renpy/common/_developer/developer.rpym:506
old "Type to filter: "
new "Typ do filtrowania:"
# renpy/common/_developer/developer.rpym:631
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Tekstury: [tex_count] ([tex_size_mb:.1f] MB"
# renpy/common/_developer/developer.rpym:635
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Pamięć cache obrazów: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:645
old "✔ "
new "✔ "
# renpy/common/_developer/developer.rpym:648
old "✘ "
new "✘ "
# 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}✔ przewidywany obraz (good){/color}\n{color=#fcc}✘ nieprzewidziany obraz (bad){/color}\n{color=#fff}Przeciągnij, aby przenieść."
# renpy/common/_developer/inspector.rpym:38
old "Displayable Inspector"
new "Wyświetlany inspektor"
# renpy/common/_developer/inspector.rpym:61
old "Size"
new "Rozmiar"
# renpy/common/_developer/inspector.rpym:65
old "Style"
new "Styl"
# renpy/common/_developer/inspector.rpym:71
old "Location"
new "Lokalizacja"
# renpy/common/_developer/inspector.rpym:122
old "Inspecting Styles of [displayable_name!q]"
new "Sprawdzanie stylów [displayable_name!q]"
# renpy/common/_developer/inspector.rpym:139
old "displayable:"
new "wyświetlenie:"
# renpy/common/_developer/inspector.rpym:145
old " (no properties affect the displayable)"
new " (no properties affect the displayable)"
# renpy/common/_developer/inspector.rpym:147
old " (default properties omitted)"
new " (default properties omitted)"
# renpy/common/_developer/inspector.rpym:185
old "<repr() failed>"
new "<repr() failed>"
# renpy/common/_layout/classic_load_save.rpym:170
old "a"
new "a"
# renpy/common/_layout/classic_load_save.rpym:179
old "q"
new "q"
# renpy/common/00iap.rpy:219
old "Contacting App Store\nPlease Wait..."
new "Kontakt z App Store\nProszę czekać..."
# renpy/common/00updater.rpy:374
old "The Ren'Py Updater is not supported on mobile devices."
new "Aktualizator Ren'Py nie wspiera urządzenia mobilne."
# renpy/common/00updater.rpy:496
old "An error is being simulated."
new "Przebieg symulacji błędu."
# renpy/common/00updater.rpy:680
old "Either this project does not support updating, or the update status file was deleted."
new "Albo ten projekt nie obsługuje aktualizacji, albo plik stanu aktualizacji został usunięty."
# renpy/common/00updater.rpy:694
old "This account does not have permission to perform an update."
new "To konto nie ma uprawnień do przeprowadzenia aktualizacji."
# renpy/common/00updater.rpy:697
old "This account does not have permission to write the update log."
new "To konto nie ma uprawnień do zapisywania dziennika aktualizacji."
# renpy/common/00updater.rpy:724
old "Could not verify update signature."
new "Nie można zweryfikować podpisu aktualizacji."
# renpy/common/00updater.rpy:995
old "The update file was not downloaded."
new "Aktualizacja nie została pobrana."
# renpy/common/00updater.rpy:1013
old "The update file does not have the correct digest - it may have been corrupted."
new "Plik aktualizacji nie zawiera poprawnego skrótu - mógł być uszkodzony."
# renpy/common/00updater.rpy:1067
old "While unpacking {}, unknown type {}."
new "Podczas rozpakowywania {}, niewiadomy rodzaj {}."
# renpy/common/00updater.rpy:1433
old "Updater"
new "Aktualizator"
# renpy/common/00updater.rpy:1444
old "This program is up to date."
new "Program jest aktualny."
# renpy/common/00updater.rpy:1446
old "[u.version] is available. Do you want to install it?"
new "Wersja [u.version] jest dostępna. Czy chcesz ją zainstalować? "
# renpy/common/00updater.rpy:1448
old "Preparing to download the updates."
new "Przygotowanie do pobrania aktualizacji."
# renpy/common/00updater.rpy:1450
old "Downloading the updates."
new "Pobieranie aktualizacji."
# renpy/common/00updater.rpy:1452
old "Unpacking the updates."
new "Rozpakowywanie aktualizacji."
# renpy/common/00updater.rpy:1456
old "The updates have been installed. The program will restart."
new "Aktualizacja została zainstalowana. Program zostanie uruchomiony ponownie."
# renpy/common/00updater.rpy:1458
old "The updates have been installed."
new "Aktualizacja została zainstalowana"
# renpy/common/00updater.rpy:1460
old "The updates were cancelled."
new "Aktualizacja została anulowana"
# renpy/common/00gallery.rpy:590
old "Image [index] of [count] locked."
new "Zablokowane obrazy: [index] z [count]."
# renpy/common/00gallery.rpy:610
old "prev"
new "poprzednie"
# renpy/common/00gallery.rpy:611
old "next"
new "następne"
# renpy/common/00gallery.rpy:612
old "slideshow"
new "pokaz slajdów"
# renpy/common/00gallery.rpy:613
old "return"
new "powrót"
+83
View File
@@ -0,0 +1,83 @@
translate polish strings:
# renpy/common/00console.rpy:492
old "Press <esc> to exit console. Type help for help.\n"
new "Naciśnij <esc> aby wyjść z konsoli. Wpisz 'help', aby wyświetlić pomoc."
# renpy/common/00console.rpy:496
old "Ren'Py script enabled."
new "Ren'Py skrypty - włączone (ON)."
# renpy/common/00console.rpy:498
old "Ren'Py script disabled."
new "Ren'Py skrypty - wyłączone (OFF)."
# renpy/common/00console.rpy:745
old "help: show this help"
new "help: wyświetla tę pomoc"
# renpy/common/00console.rpy:750
old "commands:\n"
new "commands:\n"
# renpy/common/00console.rpy:760
old " <renpy script statement>: run the statement\n"
new " <renpy script statement>: uruchomienie twierdzenia\n"
# renpy/common/00console.rpy:762
old " <python expression or statement>: run the expression or statement"
new " <python expression or statement>: uruchomienie wyrażenia lub twierdzenia"
# renpy/common/00console.rpy:770
old "clear: clear the console history"
new "clear: czyści historię w konsoli"
# renpy/common/00console.rpy:774
old "exit: exit the console"
new "exit: zamknięcie konsoli"
# renpy/common/00console.rpy:782
old "load <slot>: loads the game from slot"
new "load <slot>: wczytanie gry z stasnu (slot)"
# renpy/common/00console.rpy:795
old "save <slot>: saves the game in slot"
new "save <slot>: zapisanie gry do stanu (slot)"
# renpy/common/00console.rpy:806
old "reload: reloads the game, refreshing the scripts"
new "reload: ponownie ładuje grę, odświeżenie skryptów"
# 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>: obejżyj wyrażenie Pythona\n watch short: reprezentacja wyrażeń jest krótka (domyślnie)\n watch long: reprezentacja wyrażeń jest taka jaka jest"
# renpy/common/00console.rpy:849
old "unwatch <expression>: stop watching an expression"
new "unwatch <expression>: zatrzymanie reprezentacji"
# renpy/common/00console.rpy:884
old "unwatchall: stop watching all expressions"
new "unwatchall: zatrzymanie wszystkich reprezentacji"
# renpy/common/00console.rpy:901
old "jump <label>: jumps to label"
new "jump <label>: przejście do etykiety"
# renpy/common/00console.rpy:917
old "short: Shorten the representation of objects on the console (default)."
new "short: skróć reprezentację obiektów na konsoli (domyślnie)."
# renpy/common/00console.rpy:921
old "long: Print the full representation of objects on the console."
new "long: wyświetl pełną reprezentację obiektów na konsoli."
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: umożliwia ucieczkę symboli Unicode w ciągach Unicode."
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: uniemożliwia ucieczkę symboli Unicode w ciągach Unicode i wyświetla je bez zmian (domyślnie)."
+219
View File
@@ -0,0 +1,219 @@
translate polish strings:
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Renderer"
# renpy/common/00gltest.rpy:93
old "Automatically Choose"
new "Wybór automatyczny"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Wymuś Renderer GL"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Wymuś Renderer ANGLE"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "Wymuś Renderer GLES"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Wymuś Renderer GL2"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "Wymuś Renderer ANGLE2"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "Wymuś Renderer GLES2"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "Włącz (brak zablokowanych)"
# renpy/common/00gltest.rpy:140
old "Enable"
new "Włącz"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Oszczędzanie energii"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Częstotliwość klatek"
# renpy/common/00gltest.rpy:177
old "Screen"
new "Ekran"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Rozdzierający"
# renpy/common/00gltest.rpy:207
old "Changes will take effect the next time this program is run."
new "Wprowadzone zmiany będą zastosowane przy następnym uruchomieniu programu."
# renpy/common/00gltest.rpy:242
old "Performance Warning"
new "Ostrzeżenie wydajności"
# renpy/common/00gltest.rpy:247
old "This computer is using software rendering."
new "Komputer używa renderowania programowego."
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
new "Ta gra wymaga użycia GL2, którego nie można zainicjować."
# renpy/common/00gltest.rpy:251
old "This computer has a problem displaying graphics: [problem]."
new "Komputer posiada problem przy wyświetleniu grafiki: [problem]."
# renpy/common/00gltest.rpy:255
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "Sterowniki graficzne mogą być nieaktualne bądź nie działają poprawnie. Może to prowadzić do spowolnień lub nieprawidłowego wyświetlenia grafiki."
# renpy/common/00gltest.rpy:259
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
new "Plik {a=edit:1:log.txt}log.txt{/a} może zawierać informacje, które pomogą Ci określić, co jest nie tak z Twoim komputerem."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "Więcej informacji o tym, jak to naprawić, można znaleźć w {a=[url]}documentation{/a}."
# renpy/common/00gltest.rpy:269
old "Continue, Show this warning again"
new "Kontynuuj (jakby co, ponownie pokaż to ostrzeżenie)"
# renpy/common/00gltest.rpy:273
old "Continue, Don't show warning again"
new "Kontynuuj (i nie pokazuj tego ostrzeżenia ponownie)"
# renpy/common/00gltest.rpy:281
old "Change render options"
new "Zmień opcję renderowania"
# renpy/common/00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "Wybierz gamepada do kalibracji"
# renpy/common/00gamepad.rpy:35
old "No Gamepads Available"
new "Brak gamepada"
# renpy/common/00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "Kalibrowanie [name] ([i]/[total])"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Naciśnij lub rusz '[control!s]' [kind]."
# renpy/common/00gamepad.rpy:68
old "Skip (A)"
new "Pomiń (A)"
# renpy/common/00gamepad.rpy:71
old "Back (B)"
new "Wstecz (B)"
# renpy/common/_errorhandling.rpym:542
old "Open"
new "Otwórz"
# renpy/common/_errorhandling.rpym:544
old "Opens the traceback.txt file in a text editor."
new "Otwórz plik traceback.txt w edytorze tekstu."
# renpy/common/_errorhandling.rpym:546
old "Copy BBCode"
new "Kopiuj BBCode (Forum)"
# renpy/common/_errorhandling.rpym:548
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "Kopiuje plik traceback.txt do schowka jako BBcode dla forum, jak https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:550
old "Copy Markdown"
new "Kopiuj Markdown (Discord)"
# renpy/common/_errorhandling.rpym:552
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "Kopiuje plik traceback.txt do schowka jako Markdown (format kodu) dla Discordów."
# renpy/common/_errorhandling.rpym:581
old "An exception has occurred."
new "Wystąpił wyjątek"
# renpy/common/_errorhandling.rpym:604
old "Rollback"
new "Cofnij"
# renpy/common/_errorhandling.rpym:606
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Próba cofnięcia do wcześniejszego czasu, co pozwala zapisać lub wybrać inny wybór."
# renpy/common/_errorhandling.rpym:609
old "Ignore"
new "Ignoruj"
# renpy/common/_errorhandling.rpym:613
old "Ignores the exception, allowing you to continue."
new "Ignoruje wyjątek, umożliwiając kontynuowanie."
# renpy/common/_errorhandling.rpym:615
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignoruje wyjątek, umożliwiając kontynuowanie. Prowadzi to często do dodatkowych błędów."
# renpy/common/_errorhandling.rpym:619
old "Reload"
new "Przeładuj"
# renpy/common/_errorhandling.rpym:621
old "Reloads the game from disk, saving and restoring game state if possible."
new "Ponownie wczytuje grę z dysku, zapisując i przywracając stan gry, jeśli to możliwe"
# renpy/common/_errorhandling.rpym:624
old "Console"
new "Konsola"
# renpy/common/_errorhandling.rpym:626
old "Opens a console to allow debugging the problem."
new "Otwiera konsolę umożliwiającą debugowanie problemu"
# renpy/common/_errorhandling.rpym:639
old "Quits the game."
new "Zamknięcie gry."
# renpy/common/_errorhandling.rpym:660
old "Parsing the script failed."
new "Przetwarzanie skryptu nie powiodło się."
# renpy/common/_errorhandling.rpym:686
old "Opens the errors.txt file in a text editor."
new "Otwiera plik errors.txt w edytorze tekstu."
# renpy/common/_errorhandling.rpym:690
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "Kopiowanie pliku error.txt do schowka jako BBcode dla forum, jak https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:694
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "Kopiuje plik error.txt do schowka jako Markdown (format kodu) dla Discordów."
+435
View File
@@ -0,0 +1,435 @@
translate polish strings:
# gui/game/gui.rpy:2
old "## Initialization"
new "## Inicjalizacja"
# gui/game/gui.rpy:5
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
new "## Wyrażenie przesunięcia początkowego powoduje, że wyrażenie inicjalizajci w tym pliku są uruchamiane przed instrukcjami w jakimkolwiek innym pliku."
# gui/game/gui.rpy:9
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## Wywołanie gui.init zresetuje style do rozsądnych wartości domyślnych oraz ustawia szerokość i wysokość gry."
# gui/game/gui.rpy:17
old "## GUI Configuration Variables"
new "## Zmienne konfiguracyjne GUI"
# gui/game/gui.rpy:21
old "## Colors"
new "## Kolory"
# gui/game/gui.rpy:23
old "## The colors of text in the interface."
new "## Kolory tekstu w interfejsie."
# gui/game/gui.rpy:25
old "## An accent color used throughout the interface to label and highlight text."
new "## Kolor akcentujący używany w całym interfejsie do oznaczania i wyróżniania tekstu."
# gui/game/gui.rpy:29
old "## The color used for a text button when it is neither selected nor hovered."
new "## Kolor używany dla przycisku tekstowego, gdy nie jest on zaznaczony ani najechany."
# gui/game/gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## Mały kolor jest używany do małego tekstu, który musi być jaśniejszy/ciemniejszy, aby osiągnąć ten sam efekt."
# gui/game/gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## Kolor używany dla przycisków i pasków, które są zaznaczone (najechane)."
# gui/game/gui.rpy:39
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
new "## Kolor używany dla przycisku tekstowego, gdy jest on zaznaczony, ale nie skupiony. Przycisk jest wybrany, jeśli jest to bieżący ekran lub wartość preferencji."
# gui/game/gui.rpy:43
old "## The color used for a text button when it cannot be selected."
new "## Kolor używany do przycisku tekstowego, gdy nie można go wybrać."
# gui/game/gui.rpy:46
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
new "## Kolory używane dla części pasków, które nie są wypełnione. Nie są używane bezpośrednio, ale są używane podczas ponownego generowania plików obrazów pasków."
# gui/game/gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## Kolory używane w tekstach dialogów i menu wyboru."
# gui/game/gui.rpy:56
old "## Fonts and Font Sizes"
new "## Czcionki i ich rozmiary"
# gui/game/gui.rpy:58
old "## The font used for in-game text."
new "## Czcionka używana do tekstu w grze."
# gui/game/gui.rpy:61
old "## The font used for character names."
new "## Czcionka używana do nazw postaci."
# gui/game/gui.rpy:64
old "## The font used for out-of-game text."
new "## Czcionka używana w tekście poza grą."
# gui/game/gui.rpy:67
old "## The size of normal dialogue text."
new "## Rozmiar normalnego tekstu dialogowego."
# gui/game/gui.rpy:70
old "## The size of character names."
new "## Rozmiar imion postaci."
# gui/game/gui.rpy:73
old "## The size of text in the game's user interface."
new "## Rozmiar tekstu w interfejsie użytkownika gry."
# gui/game/gui.rpy:76
old "## The size of labels in the game's user interface."
new "## Rozmiar etykiet w interfejsie użytkownika gry."
# gui/game/gui.rpy:79
old "## The size of text on the notify screen."
new "## Rozmiar tekstu na ekranie powiadomień."
# gui/game/gui.rpy:82
old "## The size of the game's title."
new "## Rozmiar tytułu gry"
# gui/game/gui.rpy:86
old "## Main and Game Menus"
new "## Menu główna oraz menu gry "
# gui/game/gui.rpy:88
old "## The images used for the main and game menus."
new "## Obrazy używane w menu głównym i menu gry."
# gui/game/gui.rpy:93
old "## Dialogue"
new "## Dialog"
# gui/game/gui.rpy:95
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## Zmienne te kontrolują sposób wyświetlania dialogu na ekranie, wiersz po wierszu."
# gui/game/gui.rpy:98
old "## The height of the textbox containing dialogue."
new "## Wysokość pola tekstowego zawierającego dialog."
# gui/game/gui.rpy:101
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## Umieszczenie pola tekstowego pionowo na ekranie. 0.0 to góra, 0.5 to środek, a 1.0 to dół."
# gui/game/gui.rpy:106
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## Umieszczenie nazwy postaci mówiącej w stosunku do pola tekstowego. Może to być cała liczba pikseli od lewej lub od góry albo 0,5 do środka."
# gui/game/gui.rpy:111
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## Poziome wyrównanie imienia postaci. Może to być 0,0 dla wyrównania do lewej, 0,5 do wyśrodkowania i 1,0 do wyrównania do prawej."
# gui/game/gui.rpy:115
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## Szerokość, wysokość i krawędzie pola zawierającego nazwę postaci lub Brak, aby automatycznie zmienić jej rozmiar."
# gui/game/gui.rpy:120
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## Obramowanie pola zawierającego imię postaci w kolejności od lewej, od góry, od prawej, od dołu."
# gui/game/gui.rpy:124
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## Jeśli 'True' (prawda), tło pola nazwy zostanie ułożone sąsiadująco, jeśli 'False' (fałsz), tło pola nazwy zostanie przeskalowane."
# gui/game/gui.rpy:129
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
new "## Umieszczenie dialogu względem pola tekstowego. Może to być całkowita liczba pikseli względem lewej lub górnej części pola tekstowego lub 0,5 względem środka."
# gui/game/gui.rpy:135
old "## The maximum width of dialogue text, in pixels."
new "## Maksymalna szerokość tekstu dialogowego w pikselach"
# gui/game/gui.rpy:138
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## Poziome wyrównanie tekstu dialogu. Może to być 0,0 dla wyrównanego do lewej, 0,5 dla wyśrodkowanego i 1,0 dla wyrównanego do prawej."
# gui/game/gui.rpy:143
old "## Buttons"
new "## PRzyciski"
# gui/game/gui.rpy:145
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## Te zmienne, wraz z plikami graficznymi w gui/button, kontrolują aspekty wyświetlania przycisków."
# gui/game/gui.rpy:148
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## Szerokość i wysokość przycisku w pikselach. Jeśli brak, Ren'Py oblicza rozmiar."
# gui/game/gui.rpy:152
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## Ramki po każdej stronie przycisku, w kolejności lewej, górnej, prawej, dolnej."
# gui/game/gui.rpy:155
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## Jeśli 'True' (prawda), obraz tła zostanie ułożony sąsiadująco. Jeśli 'False' (fałsz), obraz tła będzie skalowany liniowo"
# gui/game/gui.rpy:159
old "## The font used by the button."
new "## Czcionka używana przez przycisk."
# gui/game/gui.rpy:162
old "## The size of the text used by the button."
new "## Rozmiar tekstu używanego przez przycisk."
# gui/game/gui.rpy:165
old "## The color of button text in various states."
new "## Kolor tekstu przycisku w różnych stanach."
# gui/game/gui.rpy:171
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## Poziome wyrównanie tekstu przycisku. (0.0 to lewe, 0.5 to środek, 1.0 to prawy)."
# gui/game/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 "## Zmienne zastępują ustawienia dla różnych rodzajów przycisków. Zapoznaj się z dokumentacją gui, aby dowiedzieć się, jakie rodzaje przycisków są dostępne i do czego służą."
# gui/game/gui.rpy:180
old "## These customizations are used by the default interface:"
new "## Poniższe ustawienia są używane przez domyślny interfejs:"
# gui/game/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 "## Możesz także dodać własne dostosowania, dodając odpowiednio nazwane zmienne. Na przykład możesz odkomentować następujący wiersz, aby ustawić szerokość przycisku nawigacyjnego."
# gui/game/gui.rpy:202
old "## Choice Buttons"
new "## Przyciski wyboru"
# gui/game/gui.rpy:204
old "## Choice buttons are used in the in-game menus."
new "## Przyciski wyboru są używane w menu w grze."
# gui/game/gui.rpy:218
old "## File Slot Buttons"
new "## Przycisk pliku zapisu"
# gui/game/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 "## Przycisk na pliki zapisu (slot) jest specjalnym rodzejem przycisku. Zawiera obraz miniatury oraz tekst opisujący zawartość slotu zapisu. Slot zapisu wykorzystuje pliki graficzne w gui/button, podobnie jak inne rodzaje przycisków."
# gui/game/gui.rpy:224
old "## The save slot button."
new "## Przycisk zapisu "
# gui/game/gui.rpy:234
old "## The width and height of thumbnails used by the save slots."
new "## Szerokość i wysokość miniatur używanych przez sloty zapisu."
# gui/game/gui.rpy:238
old "## The number of columns and rows in the grid of save slots."
new "## Liczba kolumn i wierszy w siatce slotów zapisu."
# gui/game/gui.rpy:243
old "## Positioning and Spacing"
new "## Pozycjonowanie i odstępy"
# gui/game/gui.rpy:245
old "## These variables control the positioning and spacing of various user interface elements."
new "## Te zmienne kontrolują położenie i odstępy różnych elementów interfejsu użytkownika."
# gui/game/gui.rpy:248
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## Położenie lewej strony przycisków nawigacyjnych względem lewej strony ekranu.."
# gui/game/gui.rpy:252
old "## The vertical position of the skip indicator."
new "## Pozycja pionowa wskaźnika pominięcia."
# gui/game/gui.rpy:255
old "## The vertical position of the notify screen."
new "## Pionowa pozycja ekranu powiadomień"
# gui/game/gui.rpy:258
old "## The spacing between menu choices."
new "## Odstępy między opcjami menu."
# gui/game/gui.rpy:261
old "## Buttons in the navigation section of the main and game menus."
new "## Przyciski w sekcji nawigacji menu głównego i menu gry."
# gui/game/gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Kontroluje ilość odstępów między preferencjami."
# gui/game/gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Steruje odległością między przyciskami preferencji."
# gui/game/gui.rpy:270
old "## The spacing between file page buttons."
new "## Odstępy między przyciskami strony pliku."
# gui/game/gui.rpy:273
old "## The spacing between file slots."
new "## Odstępy między plikami zapisu (slotami)."
# gui/game/gui.rpy:276
old "## The position of the main menu text."
new "## Pozycja tekstu menu głównego."
# gui/game/gui.rpy:280
old "## Frames"
new "## Klatki"
# gui/game/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 "## Te zmienne sterują wyglądem ramek, które mogą zawierać komponenty interfejsu użytkownika, gdy nie ma nakładki lub okna."
# gui/game/gui.rpy:285
old "## Generic frames."
new "## Ramki ogólne."
# gui/game/gui.rpy:288
old "## The frame that is used as part of the confirm screen."
new "## Ramka używana jako część ekranu potwierdzenia."
# gui/game/gui.rpy:291
old "## The frame that is used as part of the skip screen."
new "## Ramka używana jako część ekranu pomijania."
# gui/game/gui.rpy:294
old "## The frame that is used as part of the notify screen."
new "## Ramka używana jako część ekranu powiadomień."
# gui/game/gui.rpy:297
old "## Should frame backgrounds be tiled?"
new "## Czy tła ramek powinny być kafelkowe?"
# gui/game/gui.rpy:301
old "## Bars, Scrollbars, and Sliders"
new "## Paski, paski przewijania i suwaki"
# gui/game/gui.rpy:303
old "## These control the look and size of bars, scrollbars, and sliders."
new "## Kontrolują one wygląd i rozmiar pasków, pasków przewijania i suwaków."
# gui/game/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 "## Domyślny GUI używa tylko suwaków i pionowych pasków przewijania. Wszystkie pozostałe paski są używane tylko na ekranach napisanych przez twórców."
# gui/game/gui.rpy:308
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## Wysokość poziomych pasków, pasków przewijania i suwaków. Szerokość pionowych pasków, pasków przewijania i suwaków"
# gui/game/gui.rpy:314
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## 'True' (prawda), jeśli obrazy pasków powinny być kafelkowane. 'False' (fałsz), jeśli powinny być skalowane liniowo."
# gui/game/gui.rpy:319
old "## Horizontal borders."
new "## Granice poziome."
# gui/game/gui.rpy:324
old "## Vertical borders."
new "## Granice pionowe."
# gui/game/gui.rpy:329
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## Ustawienie pasków GUI, które nie posiadają przewijania. Ustawienie \"hide\" (schowaj), ukryje owe paski, natomiast \"None\" (brak), wyświetli je."
# gui/game/gui.rpy:334
old "## History"
new "## Historia"
# gui/game/gui.rpy:336
old "## The history screen displays dialogue that the player has already dismissed."
new "## Ekran historii wyświetla dialog, który gracz już odrzucił."
# gui/game/gui.rpy:338
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## Liczba bloków historii dialogów, które Ren'Py zachowa."
# gui/game/gui.rpy:341
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## Wysokość wpisu na ekranie historii lub \"None\" (brak), aby wysokość była zmienna kosztem wydajności."
# gui/game/gui.rpy:345
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## Pozycja, szerokość i wyrównanie etykiety podającej nazwę postaci mówiącej."
# gui/game/gui.rpy:352
old "## The position, width, and alignment of the dialogue text."
new "## Pozycja, szerokość i wyrównanie tekstu dialogu."
# gui/game/gui.rpy:359
old "## NVL-Mode"
new "## Opcja NVL-Mode"
# gui/game/gui.rpy:361
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## Ekran trybu NVL wyświetla dialog wypowiadany przez postacie trybu NVL"
# gui/game/gui.rpy:363
old "## The borders of the background of the NVL-mode background window."
new "## Granice tła okna tła trybu NVL."
# gui/game/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 "## Wyświetlona zostanie maksymalna liczba wpisów trybu NVL Ren'Py. W przypadku wyświetlenia większej liczby wpisów, najstarszy wpis zostanie usunięty."
# gui/game/gui.rpy:370
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## Wysokość wpisu trybu NVL. Ustaw to na Brak, aby wpisy dynamicznie dostosowywały wysokość."
# gui/game/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 "## Odstępy między wpisami trybu NVL, gdy gui.nvl_height ma wartość \"None\" (brak) oraz między wpisami trybu NVL a menu trybu NVL."
# gui/game/gui.rpy:391
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## Pozycja, szerokość i wyrównanie tekstu nvl_thought (tekst wypowiadany przez postać nvl_narrator)."
# gui/game/gui.rpy:398
old "## The position of nvl menu_buttons."
new "## Pozycja przycisków menu nvl (menu_buttons)."
# gui/game/gui.rpy:402
old "## Localization"
new "## Lokalizacja"
# gui/game/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 "## Kontroluje to, gdzie dozwolone jest łamanie wiersza. Ustawienie domyślne jest odpowiednie dla większości języków. Listę dostępnych wartości można znaleźć pod adresem https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui/game/gui.rpy:412
old "## Mobile devices"
new "## Urządzenia mobilne"
# gui/game/gui.rpy:417
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## Zwiększa to rozmiar szybkich przycisków, aby ułatwić ich dotykanie na tabletach i telefonach."
# gui/game/gui.rpy:423
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## Zmienia to rozmiar i odstępy różnych elementów GUI, aby były dobrze widoczne na telefonach."
# gui/game/gui.rpy:427
old "## Font sizes."
new "## Roozmiar czcionki"
# gui/game/gui.rpy:435
old "## Adjust the location of the textbox."
new "## Dostosuj położenie pola tekstowego."
# gui/game/gui.rpy:441
old "## Change the size and spacing of various things."
new "## Zmieniaj rozmiar i odstępy różnych rzeczy."
# gui/game/gui.rpy:455
old "## File button layout."
new "## Układ przycisku pliku."
# gui/game/gui.rpy:459
old "## NVL-mode."
new "## Opcja NVL-mode."
File diff suppressed because it is too large Load Diff
+199
View File
@@ -0,0 +1,199 @@
translate polish strings:
# gui/game/options.rpy:1
old "## This file contains options that can be changed to customize your game."
new "## Ten plik zawiera opcję, które można zmienić, aby dostosować grę."
# gui/game/options.rpy:4
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Linie zaczynające się od dwóch znaków '#' są komentarzami i nie należy ich odkomentować. Wiersze zaczynające się od pojedynczego znaku '#' są kodem zakomentowanym i możesz chcieć je odkomentować, gdy jest to właściwe. "
# gui/game/options.rpy:10
old "## Basics"
new "## Podstawy"
# gui/game/options.rpy:12
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
new "## Czytelna dla człowieka nazwa gry. Służy do ustawiania domyślnego tytułu okna i pojawia się w interfejsie oraz raportach o błędach."
# gui/game/options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
new "## Znak _() otaczający ciąg znaków oznacza go jako kwalifikujący się do tłumaczenia."
# gui/game/options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 domyślne GUI"
# gui/game/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 "## Określa, czy tytuł podany powyżej jest wyświetlany na ekranie menu głównego. Ustaw to na 'False', aby ukryć tytuł."
# gui/game/options.rpy:26
old "## The version of the game."
new "## Wersja gry."
# gui/game/options.rpy:31
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
new "## Tekst, który jest umieszczony na ekranie, w sekcji o grze. Umieść tekst między potrójnymi cudzysłowami i zostaw pustą linię między akapitami."
# gui/game/options.rpy:38
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
new "## Krótka nazwa gry używana dla plików wykonywalnych i katalogów w zbudowanej dystrybucji. Musi zawierać tylko ASCII i nie może zawierać spacji, dwukropków ani średników."
# gui/game/options.rpy:45
old "## Sounds and music"
new "## Dźwięki i muzyka"
# gui/game/options.rpy:47
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Te trzy zmienne określają, które miksery są domyślnie pokazywane graczowi. Ustawienie jednego z nich na 'False' spowoduje ukrycie odpowiedniego miksera."
# gui/game/options.rpy:56
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
new "## Aby umożliwić użytkownikowi odtworzenie dźwięku testowego na kanale dźwiękowym lub głosowym, odkomentuj poniższą linię i użyj jej do ustawienia przykładowego dźwięku do odtworzenia."
# gui/game/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 "## Odkomentuj następującą linię, aby ustawić plik audio, który będzie odtwarzany, gdy odtwarzacz jest w menu głównym. Ten plik będzie odtwarzany w grze, dopóki nie zostanie zatrzymany lub odtworzony inny plik."
# gui/game/options.rpy:70
old "## Transitions"
new "## Przejście"
# gui/game/options.rpy:72
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## Te zmienne ustawiają przejścia, które są używane w przypadku wystąpienia określonych zdarzeń. Każda zmienna powinna być ustawiona na przejście lub brak (None), aby wskazać, że żadne przejście nie powinno być używane."
# gui/game/options.rpy:76
old "## Entering or exiting the game menu."
new "## Menu gry - wejście/wyjście"
# gui/game/options.rpy:82
old "## Between screens of the game menu."
new "## Menu gry - między scenami"
# gui/game/options.rpy:87
old "## A transition that is used after a game has been loaded."
new "## Przejście używane po wczytaniu gry."
# gui/game/options.rpy:92
old "## Used when entering the main menu after the game has ended."
new "## Przejście do menu głównego po zakończeniu gry."
# gui/game/options.rpy:97
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
new "## Zmienna do ustawienia przejścia używanego podczas uruchamiania gry nie istnieje. Zamiast tego po pokazaniu początkowej sceny użyj wyrażenia z (use a with statement)."
# gui/game/options.rpy:102
old "## Window management"
new "## Zarządzanie oknem"
# gui/game/options.rpy:104
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## Opcja odpowiada za okno dialogowe. Jeżeli ustawiono \"show\" (pokaż), to będzie zawsze wyświetlone. Jeżeli ustawiono \"hide\" (ukryj), to zostanie wyświetlone kiedy będzie dialog. Jeżeli ustawiono \"auto\" to okno jest ukrywane przed wypowiedziami scen i ponownie wyświetlane po wyświetleniu dialogu."
# gui/game/options.rpy:109
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## Po uruchomieniu gry, ustawienie te można zmienić za pomocą komend \"window show\", \"window hide\" oraz \"window auto\". "
# gui/game/options.rpy:115
old "## Transitions used to show and hide the dialogue window"
new "## Przejścia używane do pokazywania i ukrywania okna dialogowego"
# gui/game/options.rpy:121
old "## Preference defaults"
new "## Ustawienia domyślne"
# gui/game/options.rpy:123
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Opcja odpowiada za domyślną szybkość tekstu. Wartość domyślna, 0, jest nieskończona, podczas gdy każda inna liczba to liczba znaków na sekundę do wpisania. "
# gui/game/options.rpy:129
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## Domyślne opóźnienie automatycznego przewijania. Większe liczby prowadzą do dłuższych czasów oczekiwania, przy czym prawidłowym zakresem jest od 0 do 30"
# gui/game/options.rpy:135
old "## Save directory"
new "## Katalog zapisu"
# gui/game/options.rpy:137
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
new "## Ustawienie katalogu, w którym Ren'Py umieści pliki zapisu dla tej gry. Pliki zapisu zostaną umieszczone w:"
# gui/game/options.rpy:140
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
new "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
# gui/game/options.rpy:142
old "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
new "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
# gui/game/options.rpy:144
old "## Linux: $HOME/.renpy/<config.save_directory>"
new "## Linux: $HOME/.renpy/<config.save_directory>"
# gui/game/options.rpy:146
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## Opcji tej zazwyczaj nie należy zmieniać. Jeżeli jest zmiana, to należy zastosować dosłowny ciąg, a nie wyrażenie."
# gui/game/options.rpy:152
old "## Icon"
new "## Ikona"
# gui/game/options.rpy:154
old "## The icon displayed on the taskbar or dock."
new "## Ikona wyświetlana na pasku zadań lub doku"
# gui/game/options.rpy:159
old "## Build configuration"
new "## Konfiguracja kompilacji "
# gui/game/options.rpy:161
old "## This section controls how Ren'Py turns your project into distribution files."
new "## Sekcja odpoaiwada za sposób w jaki Ren'Py zamienia Twój projekt w pliki dystrybucyjne."
# gui/game/options.rpy:166
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## Poniższe funkcje przyjmują wzorce plików. Wzorce plików nie uwzględniają wielkości liter i są dopasowywane do ścieżki względem katalogu bazowego, z wiodącymi lub bez /. Jeśli pasuje wiele wzorów, używany jest pierwszy."
# gui/game/options.rpy:171
old "## In a pattern:"
new "## Wzór:"
# gui/game/options.rpy:173
old "## / is the directory separator."
new "## znak / jest separatorem katalogów."
# gui/game/options.rpy:175
old "## * matches all characters, except the directory separator."
new "## * uwzględnia wszystkie znaki, z wyjątkiem separatora katalogu."
# gui/game/options.rpy:177
old "## ** matches all characters, including the directory separator."
new "## ** uwzględnia wszystkie znaki, łącznie z separatorem katalogu."
# gui/game/options.rpy:179
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## Na przykład \"*.txt\" dopasowuje pliki txt w katalogu podstawowym, \"game/**.ogg\" dopasowuje pliki ogg w katalogu gry lub dowolnym z jego podkatalogów, a \"**.psd\" dopasowuje pliki psd w dowolnym miejscu projektu."
# gui/game/options.rpy:183
old "## Classify files as None to exclude them from the built distributions."
new "## Klasyfikuj pliki jako Brak (None), aby wykluczyć je ze zbudowanych dystrybucji"
# gui/game/options.rpy:191
old "## To archive files, classify them as 'archive'."
new "## Aby zarchiwizować pliki, sklasyfikuj je jako 'archive' (archiwum)."
# gui/game/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 "## Pliki pasujące do wzorców dokumentacji są duplikowane w kompilacji aplikacji na komputery Mac, więc pojawiają się zarówno w aplikacji, jak i pliku zip."
# 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 "## Klucz licencyjny Google Play jest wymagany do pobierania plików rozszerzeń i dokonywania zakupów w aplikacji. Można go znaleźć na stronie usługi i interfejsy API (Services & APIs) w konsoli programisty Google Play."
# gui/game/options.rpy:210
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Nazwa użytkownika i nazwa projektu powiązane z projektem itch.io, oddzielone ukośnikiem"
+671
View File
@@ -0,0 +1,671 @@
translate polish strings:
# gui/game/screens.rpy:9
old "## Styles"
new "## Style"
# gui/game/screens.rpy:81
old "## In-game screens"
new "## Sceny podczas gry"
# gui/game/screens.rpy:85
old "## Say screen"
new "## Scena rozmowy"
# gui/game/screens.rpy:87
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## Ekran rozmowy jest używany do wyświetlania dialogu. Wymagane są dwa parametry, kto i co, które są odpowiednio nazwą postaci mówiącej i tekstem, który ma być wyświetlany. Parametr \"who\" (kto) może mieć wartość \"None\" (brak), jeśli nie podano nazwy. "
# gui/game/screens.rpy:92
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
new "## Ten ekran musi tworzyć tekst do wyświetlenia z id \"what\" (co), ponieważ Ren'Py używa go do zarządzania wyświetlaniem tekstu. Może również tworzyć elementy do wyświetlania z id \"who\" (kto) i id \"window\" (okno), aby zastosować właściwości stylu."
# gui/game/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"
# gui/game/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 "## Jeśli jest obraz boczny, wyświetl go nad tekstem. Nie wyświetlaj w wariancie telefonu - nie ma miejsca"
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
new "## Udostępnij pole nazwy do stylizacji za pomocą obiektu Character."
# gui/game/screens.rpy:164
old "## Input screen"
new "## Scena wprowadzenia"
# gui/game/screens.rpy:166
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## Ten ekran służy do wyświetlania renpy.input. Parametr monitu służy do przekazywania monitu tekstowego."
# gui/game/screens.rpy:169
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## Ten ekran musi utworzyć dane wejściowe wyświetlane z identyfikatorem \"input\", aby zaakceptować różne parametry wejściowe."
# gui/game/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"
# gui/game/screens.rpy:199
old "## Choice screen"
new "## Ekran wyboru"
# gui/game/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 "## Ten ekran służy do wyświetlania wyborów w grze przedstawionych w instrukcji menu. Jeden parametr, items, to lista obiektów, każdy z polami podpisu i akcji."
# gui/game/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"
# gui/game/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 "## Gdy ustawiono \"true\" (prawda), napisy menu zostaną wypowiedziane przez narratora. Gdy ustawiono \"false\" (fałsz), napisy menu zostaną wyświetlone jako puste przyciski."
# gui/game/screens.rpy:238
old "## Quick Menu screen"
new "## Szybkie menu"
# gui/game/screens.rpy:240
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## Szybkie menu jest wyświetlane w grze, aby zapewnić łatwy dostęp do menu poza grą."
# gui/game/screens.rpy:245
old "## Ensure this appears on top of other screens."
new "## Upewnij się, że pojawia się nad innymi scenami."
# gui/game/screens.rpy:256
old "Back"
new "Powrót"
# gui/game/screens.rpy:257
old "History"
new "Historia"
# gui/game/screens.rpy:258
old "Skip"
new "Pomiń"
# gui/game/screens.rpy:259
old "Auto"
new "Auto"
# gui/game/screens.rpy:260
old "Save"
new "Zapis"
# gui/game/screens.rpy:261
old "Q.Save"
new "S.Zapis"
# gui/game/screens.rpy:262
old "Q.Load"
new "S.Wczytaj"
# gui/game/screens.rpy:263
old "Prefs"
new "Opcje"
# gui/game/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 "## Ten kod zapewnia, że ekran quick_menu jest wyświetlany w grze, gdy gracz nie ukrył jawnie interfejsu."
# gui/game/screens.rpy:284
old "## Main and Game Menu Screens"
new "## Ekrany główne i menu gry"
# gui/game/screens.rpy:287
old "## Navigation screen"
new "## Ekran nawigacji"
# gui/game/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 "## Ten ekran jest zawarty w menu głównym i menu gry i zapewnia nawigację do innych menu oraz rozpoczęcie gry."
# gui/game/screens.rpy:304
old "Start"
new "Start"
# gui/game/screens.rpy:312
old "Load"
new "Wczytaj"
# gui/game/screens.rpy:314
old "Preferences"
new "Preferencje"
# gui/game/screens.rpy:318
old "End Replay"
new "Zakończ powtórkę"
# gui/game/screens.rpy:322
old "Main Menu"
new "Menu główne"
# gui/game/screens.rpy:324
old "About"
new "Informacje"
# gui/game/screens.rpy:328
old "## Help isn't necessary or relevant to mobile devices."
new "## Pomoc nie jest potrzebna ani nie dotyczy urządzeń mobilnych."
# gui/game/screens.rpy:329
old "Help"
new "Pomoc"
# gui/game/screens.rpy:333
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## Przycisk zamknij (quit) jest zabroniony w iOS, niepotrzebny w Androidzie i przeglądarkach."
# gui/game/screens.rpy:334
old "Quit"
new "Zamknij"
# gui/game/screens.rpy:348
old "## Main Menu screen"
new "## Ekran głównego menu"
# gui/game/screens.rpy:350
old "## Used to display the main menu when Ren'Py starts."
new "## Służy do wyświetlania menu głównego po uruchomieniu Ren'Py"
# gui/game/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"
# gui/game/screens.rpy:356
old "## This ensures that any other menu screen is replaced."
new "## Zapewnienie, że każdy inny ekran menu zostanie zastąpiony."
# gui/game/screens.rpy:361
old "## This empty frame darkens the main menu."
new "## Ta pusta ramka przyciemnia menu główne."
# gui/game/screens.rpy:365
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## Wyrażenie \"use\" zawiera kolejny ekran(scenę) wewnątrz tego. Rzeczywista zawartość menu głównego znajduje się na ekranie nawigacji."
# gui/game/screens.rpy:410
old "## Game Menu screen"
new "## Ekran menu gry"
# 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 "## Podstawową wspólna struktura ekranu menu gry. Jest wywoływany z razem z ekranem tytułowym, wyświetla tło, tytuł i nawigację."
# 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 "## Parametr przewijania może mieć wartość \"None\" (Brak) lub \"viewport\" albo \"vpgrid\". Gdy ten ekran ma być używany z jednym lub większą liczbą dzieci, które są transkludowane (umieszczane) wewnątrz niego."
# gui/game/screens.rpy:433
old "## Reserve space for the navigation section."
new "## Zarezerwowane miejsce na sekcję nawigacji"
# gui/game/screens.rpy:475
old "Return"
new "Powrót"
# gui/game/screens.rpy:538
old "## About screen"
new "## Ekran o (np. o grze)"
# gui/game/screens.rpy:540
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## Ten ekran zawiera informacje (podziękowania - creditsy), prawach autorskich dotyczących gry i Ren'Py"
# 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 "## Nie ma nic specjalnego w tym ekranie, dlatego służy on również jako przykład, jak zrobić niestandardowy ekran."
# 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 "## Wyrażenie use zawiera ekran game_menu wewnątrz tego. Potomek vbox jest następnie dołączany do okna widoku na ekranie menu gry."
# gui/game/screens.rpy:560
old "Version [config.version!t]\n"
new "Wersja [config.version!t]\n"
# gui/game/screens.rpy:562
old "## gui.about is usually set in options.rpy."
new "## gui.about zazwyczaj jest ustawiony w options.rpy."
# 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 "Wykonano przy pomocy {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
# gui/game/screens.rpy:577
old "## Load and Save screens"
new "## Ekran wczytania i zapisu"
# 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 "## Ekrany te są odpowiedzialne za umożliwienie graczowi zapisania gry i ponownego jej wczytania. Ponieważ mają prawie wszystko wspólne, oba są zaimplementowane w postaci trzeciego ekranu, file_slots."
# 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 "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
# gui/game/screens.rpy:602
old "Page {}"
new "Strona {}"
# gui/game/screens.rpy:602
old "Automatic saves"
new "Automatyczny zapis"
# gui/game/screens.rpy:602
old "Quick saves"
new "Szybki zapis"
# gui/game/screens.rpy:608
old "## This ensures the input will get the enter event before any of the buttons do."
new "## Opcja zapewnie wejście zdarzeniu wprowadzającemu, zanim to zrobi którykolwiek z przycisków."
# gui/game/screens.rpy:612
old "## The page name, which can be edited by clicking on a button."
new "## Nazwa strony, którą można edytować, klikając przycisk."
# gui/game/screens.rpy:624
old "## The grid of file slots."
new "## Siatka plików zapisów (file slots)."
# gui/game/screens.rpy:644
old "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%A, %B %d %Y, %H:%M"
# gui/game/screens.rpy:644
old "empty slot"
new "Puste miejsce"
# gui/game/screens.rpy:652
old "## Buttons to access other pages."
new "## Przyciski dostępu do innych stron."
# gui/game/screens.rpy:661
old "<"
new "<"
# gui/game/screens.rpy:664
old "{#auto_page}A"
new "{#auto_page}A"
# gui/game/screens.rpy:667
old "{#quick_page}Q"
new "{#quick_page}Q"
# gui/game/screens.rpy:669
old "## range(1, 10) gives the numbers from 1 to 9."
new "## range(1, 10), zasięg zwraca liczby od 1 do 9."
# gui/game/screens.rpy:673
old ">"
new ">"
# gui/game/screens.rpy:708
old "## Preferences screen"
new "## Ekran preferencji"
# gui/game/screens.rpy:710
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## Ekran preferencji pozwala graczowi skonfigurować grę, by grało się wygodniej."
# gui/game/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"
# gui/game/screens.rpy:730
old "Display"
new "Wyświetlenie"
# gui/game/screens.rpy:731
old "Window"
new "Okno"
# gui/game/screens.rpy:732
old "Fullscreen"
new "Pełny ekran"
# gui/game/screens.rpy:736
old "Rollback Side"
new "Strona cofania"
# gui/game/screens.rpy:737
old "Disable"
new "Wyłącz"
# gui/game/screens.rpy:738
old "Left"
new "Lewo"
# gui/game/screens.rpy:739
old "Right"
new "Prawo"
# gui/game/screens.rpy:744
old "Unseen Text"
new "Tekst niewidoczny"
# gui/game/screens.rpy:745
old "After Choices"
new "Tekst po wyborze"
# gui/game/screens.rpy:746
old "Transitions"
new "Przejścia"
# 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 "## Miejsce na dodatkowe vboksy typu \"radio_pref\" lub \"check_pref\", aby dodać dodatkowe preferencje zdefiniowane przez twórcę"
# gui/game/screens.rpy:759
old "Text Speed"
new "Szybkość tekstu"
# gui/game/screens.rpy:763
old "Auto-Forward Time"
new "Czas automatycznego przewijania"
# gui/game/screens.rpy:770
old "Music Volume"
new "Głośność muzyki"
# gui/game/screens.rpy:777
old "Sound Volume"
new "Głośność dźwięku"
# gui/game/screens.rpy:783
old "Test"
new "Test"
# gui/game/screens.rpy:787
old "Voice Volume"
new "Głośność głosu"
# gui/game/screens.rpy:798
old "Mute All"
new "Wycisz wszystko"
# gui/game/screens.rpy:874
old "## History screen"
new "## Ekran historii"
# 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 "## Jest to ekran, który wyświetla graczowi historię dialogów. Chociaż nie ma nic specjalnego w tym ekranie, musi on mieć dostęp do historii dialogów przechowywanej w _history_list."
# gui/game/screens.rpy:880
old "## https://www.renpy.org/doc/html/history.html"
new "## https://www.renpy.org/doc/html/history.html"
# gui/game/screens.rpy:886
old "## Avoid predicting this screen, as it can be very large."
new "## Unikaj przewidywania tego ekranu, ponieważ może być bardzo duży."
# gui/game/screens.rpy:897
old "## This lays things out properly if history_height is None."
new "## Wszystko jest wyświetlone poprawnie jeżeli history_height jest ustawione na None"
# gui/game/screens.rpy:907
old "## Take the color of the who text from the Character, if set."
new "## Pobranie koloru dla who postaci, jeżeli jest ustawione."
# gui/game/screens.rpy:916
old "The dialogue history is empty."
new "Historia dialogu jest pusta."
# gui/game/screens.rpy:919
old "## This determines what tags are allowed to be displayed on the history screen."
new "## Określa to, jakie tagi mogą być wyświetlane na ekranie historii."
# gui/game/screens.rpy:966
old "## Help screen"
new "## Ekran pomocy"
# 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 "## Ekran wyświetlający informacje o ustawieniach klawiatury i myszy. Używa innych ekranów (keyboard_help, mouse_help i gamepad_help) do wyświetlania aktualnej pomocy."
# gui/game/screens.rpy:987
old "Keyboard"
new "Klawiatura"
# gui/game/screens.rpy:988
old "Mouse"
new "Mysz"
# gui/game/screens.rpy:991
old "Gamepad"
new "Gamepad"
# gui/game/screens.rpy:1004
old "Enter"
new "Enter"
# gui/game/screens.rpy:1005
old "Advances dialogue and activates the interface."
new "Rozwija dialog i aktywuje interfejs"
# gui/game/screens.rpy:1008
old "Space"
new "Spacja"
# gui/game/screens.rpy:1009
old "Advances dialogue without selecting choices."
new "Rozwija dialog bez wybierania opcji."
# gui/game/screens.rpy:1012
old "Arrow Keys"
new "Strzałki"
# gui/game/screens.rpy:1013
old "Navigate the interface."
new "Poruszanie się po interfejsie."
# gui/game/screens.rpy:1016
old "Escape"
new "Escape"
# gui/game/screens.rpy:1017
old "Accesses the game menu."
new "Uruchomienie menu gry."
# gui/game/screens.rpy:1020
old "Ctrl"
new "Ctrl"
# gui/game/screens.rpy:1021
old "Skips dialogue while held down."
new "Pomija dialog, gdy jest wciśnięty."
# gui/game/screens.rpy:1024
old "Tab"
new "Tab"
# gui/game/screens.rpy:1025
old "Toggles dialogue skipping."
new "Przełącza pomijanie dialogów."
# gui/game/screens.rpy:1028
old "Page Up"
new "Page Up"
# gui/game/screens.rpy:1029
old "Rolls back to earlier dialogue."
new "Wraca do wcześniejszego dialogu."
# gui/game/screens.rpy:1032
old "Page Down"
new "Page Down"
# gui/game/screens.rpy:1033
old "Rolls forward to later dialogue."
new "Przechodzi do późniejszego dialogu."
# gui/game/screens.rpy:1037
old "Hides the user interface."
new "Ukrywa interfejs użytkownika."
# gui/game/screens.rpy:1041
old "Takes a screenshot."
new "Wykonanie zrzutu ekranu."
# gui/game/screens.rpy:1045
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Przełącza wspomaganie {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
# gui/game/screens.rpy:1051
old "Left Click"
new "Lewy przycisk"
# gui/game/screens.rpy:1055
old "Middle Click"
new "Środkowy przycisk"
# gui/game/screens.rpy:1059
old "Right Click"
new "Prawy przycisk"
# gui/game/screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "Kółko myszy w górę\nKliknij stronę wycofania"
# gui/game/screens.rpy:1067
old "Mouse Wheel Down"
new "Kółko myszy w dół"
# gui/game/screens.rpy:1074
old "Right Trigger\nA/Bottom Button"
new "Prawy spust\nA/dolny przycisk"
# gui/game/screens.rpy:1078
old "Left Trigger\nLeft Shoulder"
new "Lewy spust\nLewe ramię (L)"
# gui/game/screens.rpy:1082
old "Right Shoulder"
new "Prawe ramię (R)"
# gui/game/screens.rpy:1087
old "D-Pad, Sticks"
new "D-Pad, Gałka"
# gui/game/screens.rpy:1091
old "Start, Guide"
new "Start, Guide"
# gui/game/screens.rpy:1095
old "Y/Top Button"
new "Y/górny przycisk"
# gui/game/screens.rpy:1098
old "Calibrate"
new "Kalibracja"
# gui/game/screens.rpy:1126
old "## Additional screens"
new "## Dodatkowe ekrany"
# gui/game/screens.rpy:1130
old "## Confirm screen"
new "## Ekran potwierdzenia"
# 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 "## Ekran potwierdzenia jest wywoływany, gdy Ren'Py chce zadać graczowi pytanie tak lub nie."
# gui/game/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"
# gui/game/screens.rpy:1139
old "## Ensure other screens do not get input while this screen is displayed."
new "## Upewnienie, że inne ekrany nie otrzymają danych wejściowych, podczas wyświetlenia tego ekranu."
# gui/game/screens.rpy:1163
old "Yes"
new "Tak"
# gui/game/screens.rpy:1164
old "No"
new "Nie"
# gui/game/screens.rpy:1166
old "## Right-click and escape answer \"no\"."
new "## Prawy przycisk i Escape wybiera odpowiedź \"Nie\"."
# gui/game/screens.rpy:1193
old "## Skip indicator screen"
new "## Pomiń ekran wskaźnika"
# gui/game/screens.rpy:1195
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## Wyświetlany jest ekran skip_indicator, który wskazuje, że pomijanie jest w toku."
# gui/game/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"
# gui/game/screens.rpy:1210
old "Skipping"
new "Pomijanie"
# gui/game/screens.rpy:1217
old "## This transform is used to blink the arrows one after another."
new "## Transformacja służy do migania strzałek jedna po drugiej"
# gui/game/screens.rpy:1244
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
new "## Należy użyć czcionki, która zawiera mały czarny trójkącik (BLACK RIGHT-POINTING SMALL TRIANGLE glyph)."
# gui/game/screens.rpy:1249
old "## Notify screen"
new "## Ekran powiadomień"
# 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 "## Ekran powiadomień służy do pokazywania graczowi wiadomości. (Na przykład, gdy gra została szybko zapisana lub zrobiono zrzut ekranu)."
# gui/game/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"
# gui/game/screens.rpy:1288
old "## NVL screen"
new "## Ekran NVL"
# gui/game/screens.rpy:1290
old "## This screen is used for NVL-mode dialogue and menus."
new "## Ten ekran jest używany do dialogów i menu w trybie NVL"
# gui/game/screens.rpy:1292
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:1303
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Wyświetla dialog w vpgrid lub vbox."
# 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 "## Wyświetla menu, jeśli jest podane. Menu może być wyświetlane niepoprawnie, jeśli config.narrator_menu jest ustawione na True, tak jak powyżej"
# gui/game/screens.rpy:1346
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## Kontrola maksymalnej liczbę wpisów w trybie NVL, które można wyświetlić jednocześnie."
# gui/game/screens.rpy:1408
old "## Mobile Variants"
new "## Warianty mobilne"
# 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 "## Ponieważ mysz może nie być obecna, zastępujemy szybkie menu wersją, która używa mniejszej liczby i większych przycisków, które są łatwiejsze w dotyku."
# gui/game/screens.rpy:1433
old "Menu"
new "Menu"
+33
View File
@@ -0,0 +1,33 @@
# The script of the game goes in this file.
# Declare characters used by this game. The color argument colorizes the
# name of the character.
define e = Character("Eileen")
# The game starts here.
label start:
# Show a background. This uses a placeholder by default, but you can
# add a file (named either "bg room.png" or "bg room.jpg") to the
# images directory to show it.
scene bg room
# This shows a character sprite. A placeholder is used, but you can
# replace it by adding a file named "eileen happy.png" to the images
# directory.
show eileen happy
# These display lines of dialogue.
e "You've created a new Ren'Py game."
e "Once you add a story, pictures, and music, you can release it to the world!"
# This ends the game.
return
+16
View File
@@ -892,3 +892,19 @@ translate russian strings:
# renpy/common/00preferences.rpy:464
old "system cursor"
new "системный курсор"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
new "Высококонтрастный текст"
# renpy/common/00preferences.rpy:487
old "renderer menu"
new "меню рендерера"
# renpy/common/00preferences.rpy:490
old "accessibility menu"
new "меню специальных возможностей"
# renpy/common/00preferences.rpy:493
old "high contrast text"
new "высококонтрастный текст"
+14 -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)"
@@ -272,3 +272,15 @@ translate russian strings:
# 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]'"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "Включить (игнорировать блоклист)"
# renpy/common/00gltest.rpy:259
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
new "Файл {a=edit:1:log.txt}log.txt{/a} может содержать информацию, которая поможет вам определить, что не так с вашим компьютером."
+172
View File
@@ -1676,3 +1676,175 @@ translate russian strings:
# 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}."
# game/android.rpy:35
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=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Для сборки пакетов Android под Windows требуется 64-bit/x64 Java 8 Development Kit. JDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK.\n\n{a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}Cкачайте и установите JDK{/a}, затем перезапустите лаунчер Ren'Py."
# game/android.rpy:38
old "RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore."
new "RAPT был установлен, но ключ Bundle не был настроен. Пожалуйста, создайте новый ключ или восстановите bundle.keystore."
# game/android.rpy:40
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
new "Пожалуйста, выберите, хотите ли вы создать Play Bundle (для Google Play) или универсальный APK (для других магазинов приложений и распространения локально)."
# game/android.rpy:55
old "Lists the connected devices."
new "Список подключенных устройств."
# game/android.rpy:56
old "Pairs with a device over Wi-Fi, on Android 11+."
new "Сопряжение с устройством по Wi-Fi, на Android 11+"
# game/android.rpy:57
old "Connects to a device over Wi-Fi, on Android 11+."
new "Подключение к устройству по Wi-Fi, на Android 11+"
# game/android.rpy:58
old "Disconnects a device connected over Wi-Fi."
new "Отключение от устройства по Wi-Fi, на Android 11+"
# game/android.rpy:60
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
new "Создает пакет приложений для Android (ABB), предназначенный для загрузки в Google Play. Он может включать до 2 ГБ данных."
# game/android.rpy:61
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
new "Создает универсальный APK, предназначенный для магазинов, отличных от Google Play и локального распространения. Он может включать до 2 ГБ данных."
# game/android.rpy:396
old "Play Bundle"
new "Play Bundle"
# game/android.rpy:401
old "Universal APK"
new "Универсальный APK"
# game/android.rpy:451
old "List Devices"
new "Список устройств"
# game/android.rpy:455
old "Wi-Fi Debugging Pair"
new "Отладка сопряжения по Wi-Fi"
# game/android.rpy:459
old "Wi-Fi Debugging Connect"
new "Отладка подключения по Wi-Fi"
# game/android.rpy:463
old "Wi-Fi Debugging Disconnect"
new "Отладка отключения от Wi-Fi"
# game/android.rpy:562
old "Wi-Fi Pairing Code"
new "Код сопряжения по Wi-Fi"
# game/android.rpy:562
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
new "Если поддерживается, это можно найти в 'Настройки разработчика', 'Отладка беспроводной сети', 'Сопряжение устройства кодом сопряжения'."
# game/android.rpy:569
old "Pairing Host & Port"
new "Сопряжение через хост и порт"
# game/android.rpy:585
old "IP Address & Port"
new "IP-адрес и порт"
# game/android.rpy:585
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
new "Если поддерживается, это можно найти в 'Настройки разработчика', 'Отладка беспроводной сети'."
# game/android.rpy:601
old "This can be found in 'List Devices'."
new "Это можно найти в 'Список устройств'."
# game/androidstrings.rpy:16
old "I'm installing the bundle."
new "Установка Bundle."
# game/androidstrings.rpy:17
old "Installing the bundle appears to have failed."
new "Установка Bundle, похоже, не удалась."
# game/androidstrings.rpy:19
old "Launching the app appears to have failed."
new "Запуск приложения, похоже, не удался."
# game/androidstrings.rpy:32
old "How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number."
new "Сколько оперативной памяти вы хотите выделить Gradle?\n\nЭто должно быть целое положительное число."
# game/androidstrings.rpy:33
old "The RAM size must contain only numbers."
new "Размер оперативной памяти должен содержать только числа."
# game/androidstrings.rpy:43
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\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."
new "Не удалось использовать javac для компиляции тестового файла. Если вы еще не установили Java Development Kit, пожалуйста, скачайте его с:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nJDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK. Без работающего JDK невозможно продолжить."
# game/androidstrings.rpy:44
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\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "Версия Java на вашем компьютере, похоже, не JDK 8, которая является единственной версией, поддерживаемой Android SDK. Если вам нужно установить JDK 8, вы можете загрузить его с:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nВы также можете установить переменную среды JAVA_HOME, чтобы использовать другую версию Java."
# game/androidstrings.rpy:57
old "I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?"
new ""
# game/androidstrings.rpy:61
old "I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?"
new "Я могу создать для вас ключ подписи приложения. Этот ключ необходим для создания универсального APK для магазинов, отличных от Google Play и локального распространения.\n\n Хотите создать ключ?"
# game/androidstrings.rpy:62
old "I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?"
new "Я создам ключ в файле bundle.keystore.\n\nВам нужно создать резервную копию этого файла. Если вы потеряете его, вы не сможете обновить ваше приложение.\n\nВы также должны хранить ключ в безопасности. Если злоумышленники получат этот файл, они могут создать поддельную версию вашего приложения и, возможно, украсть данные ваших пользователей.\n\nСделаете ли вы резервную копию bundle.keystore и сохраните ее в безопасном месте?"
# game/androidstrings.rpy:63
old "Could not create bundle.keystore. Is keytool in your path?"
new "Не удалось создать bundle.keystore. Проверьте, есть ли keytool в path?"
# game/gui7.rpy:311
old "{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"
new "{size=-4}\n\пЭто не перезапишет gui/main_menu.png, gui/game_menu.png, и gui/window_icon.png, но создаст несуществующие файлы.{/size}"
# game/ios.rpy:339
old "There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices."
new "Существуют проблемы с симулятором iOS на Apple Silicon. Пожалуйста, протестируйте на x86_64 или iOS-устройствах."
# game/preferences.rpy:206
old "Daily check for update"
new "Ежедневная проверка обновлений"
# game/preferences.rpy:210
old "Default theme"
new "Тема по умолчанию"
# game/preferences.rpy:212
old "Dark theme"
new "Тёмная тема"
# game/preferences.rpy:213
old "Custom theme"
new "Пользовательская тема"
# game/web.rpy:330
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Изображения и музыка могут быть загружаемы во время игры. В созданном файле 'progressive_download.txt', вы можете настроить это поведение."
# game/web.rpy:334
old "Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported."
new "Текущие ограничения веб-платформы означают, что загрузка больших изображений может привести к сбоям звука или частоты кадров, а также к снижению производительности в целом. Видео-файлы не поддерживаются."
# game/web.rpy:338
old "There are known issues with Safari and other Webkit-based browsers that may prevent games from running."
new "Существуют проблемы с Safari и другими браузерами на базе Webkit, которые могут не позволить запустить игру."
+3
View File
@@ -201,3 +201,6 @@ translate russian strings:
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Имя пользователя и название проекта, ассоциированные с проектом на itch.io, разделённые дробью."
# gui/game/options.rpy:47
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Эти три переменные управляют, среди прочего, тем, какие микшеры показываются игроку по умолчанию. Установка одной из них в False скроет соответствующий микшер."
+4
View File
@@ -672,3 +672,7 @@ translate russian strings:
# screens.rpy:1431
old "Menu"
new "Меню"
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
new "Открывает меню специальных возможностей."
@@ -1,5 +1,5 @@

translate simplified_chinese strings:
translate schinese strings:
# 00accessibility.rpy:28
old "Self-voicing disabled."
@@ -73,38 +73,38 @@ translate simplified_chinese strings:
old "Reset"
new "重置"
# 00accessibility.rpy:157
# 00accessibility.rpy:158
old "Line Spacing Scaling"
new "行距缩放"
# 00accessibility.rpy:169
# 00accessibility.rpy:171
old "Self-Voicing"
new "自动朗读"
# 00accessibility.rpy:173
# 00accessibility.rpy:175
old "Off"
new "关闭"
# 00accessibility.rpy:177
# 00accessibility.rpy:179
old "Text-to-speech"
new "文字转语音"
# 00accessibility.rpy:181
# 00accessibility.rpy:183
old "Clipboard"
new "剪贴板"
# 00accessibility.rpy:185
# 00accessibility.rpy:187
old "Debug"
new "调试"
# 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 "此菜单上的选项旨在改善辅助功能。这些选项可能不适用于所有游戏,并且某些选项组合可能会导致游戏无法游玩。这不是游戏或引擎的问题。为了在更改字体时获得最佳效果,请尝试保持文字大小与原始大小相同。"
# 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"
new "{#weekday}星期一"
@@ -273,35 +273,35 @@ 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:772
# 00action_file.rpy:769
old "Next file page."
new "下一存档页。"
# 00action_file.rpy:845
# 00action_file.rpy:842
old "Previous file page."
new "上一存档页。"
# 00action_file.rpy:906
# 00action_file.rpy:903
old "Quick save complete."
new "快速保存完成。"
# 00action_file.rpy:924
# 00action_file.rpy:921
old "Quick save."
new "快速保存。"
# 00action_file.rpy:943
# 00action_file.rpy:940
old "Quick load."
new "快速读取。"
@@ -441,11 +441,11 @@ translate simplified_chinese strings:
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "您确定要跳过未读对话,直接快进到下个选项吗?"
# 00keymap.rpy:267
# 00keymap.rpy:280
old "Failed to save screenshot as %s."
new "截图保存到以下位置时失败:%s"
# 00keymap.rpy:279
# 00keymap.rpy:292
old "Saved screenshot as %s."
new "截图已保存到以下位置:%s"
@@ -457,175 +457,179 @@ translate simplified_chinese 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 "本程序包含了由数个许可证授权的免费软件,包括 MIT 许可证和 GNU 宽松通用公共许可证。完整软件列表及源代码链接,请{a=https://www.renpy.org/l/license}访问此处{/a}。"
# 00preferences.rpy:233
# 00preferences.rpy:240
old "display"
new "display"
# 00preferences.rpy:245
# 00preferences.rpy:252
old "transitions"
new "transitions"
# 00preferences.rpy:254
# 00preferences.rpy:261
old "skip transitions"
new "skip transitions"
# 00preferences.rpy:256
# 00preferences.rpy:263
old "video sprites"
new "video sprites"
# 00preferences.rpy:265
# 00preferences.rpy:272
old "show empty window"
new "show empty window"
# 00preferences.rpy:274
# 00preferences.rpy:281
old "text speed"
new "text speed"
# 00preferences.rpy:282
# 00preferences.rpy:289
old "joystick"
new "joystick"
# 00preferences.rpy:282
# 00preferences.rpy:289
old "joystick..."
new "joystick..."
# 00preferences.rpy:289
# 00preferences.rpy:296
old "skip"
new "skip"
# 00preferences.rpy:292
# 00preferences.rpy:299
old "skip unseen [text]"
new "skip unseen [text]"
# 00preferences.rpy:297
# 00preferences.rpy:304
old "skip unseen text"
new "skip unseen text"
# 00preferences.rpy:299
# 00preferences.rpy:306
old "begin skipping"
new "begin skipping"
# 00preferences.rpy:303
# 00preferences.rpy:310
old "after choices"
new "after choices"
# 00preferences.rpy:310
# 00preferences.rpy:317
old "skip after choices"
new "skip after choices"
# 00preferences.rpy:312
# 00preferences.rpy:319
old "auto-forward time"
new "auto-forward time"
# 00preferences.rpy:326
# 00preferences.rpy:333
old "auto-forward"
new "auto-forward"
# 00preferences.rpy:333
# 00preferences.rpy:340
old "Auto forward"
new "自动前进"
# 00preferences.rpy:336
# 00preferences.rpy:343
old "auto-forward after click"
new "auto-forward after click"
# 00preferences.rpy:345
# 00preferences.rpy:352
old "automatic move"
new "automatic move"
# 00preferences.rpy:354
# 00preferences.rpy:361
old "wait for voice"
new "wait for voice"
# 00preferences.rpy:363
# 00preferences.rpy:370
old "voice sustain"
new "voice sustain"
# 00preferences.rpy:372
# 00preferences.rpy:379
old "self voicing"
new "self voicing"
# 00preferences.rpy:381
old "clipboard voicing"
new "clipboard voicing"
# 00preferences.rpy:384
# 00preferences.rpy:388
old "self voicing volume drop"
new "self voicing volume drop"
# 00preferences.rpy:390
# 00preferences.rpy:396
old "clipboard voicing"
new "clipboard voicing"
# 00preferences.rpy:405
old "debug voicing"
new "debug voicing"
# 00preferences.rpy:399
# 00preferences.rpy:414
old "emphasize audio"
new "emphasize audio"
# 00preferences.rpy:408
# 00preferences.rpy:423
old "rollback side"
new "rollback side"
# 00preferences.rpy:418
# 00preferences.rpy:433
old "gl powersave"
new "gl powersave"
# 00preferences.rpy:424
# 00preferences.rpy:439
old "gl framerate"
new "gl framerate"
# 00preferences.rpy:427
# 00preferences.rpy:442
old "gl tearing"
new "gl tearing"
# 00preferences.rpy:430
# 00preferences.rpy:445
old "font transform"
new "font transform"
# 00preferences.rpy:433
# 00preferences.rpy:448
old "font size"
new "font size"
# 00preferences.rpy:441
# 00preferences.rpy:456
old "font line spacing"
new "font line spacing"
# 00preferences.rpy:460
# 00preferences.rpy:464
old "system cursor"
new "system cursor"
# 00preferences.rpy:484
old "music volume"
new "music volume"
# 00preferences.rpy:461
# 00preferences.rpy:485
old "sound volume"
new "sound volume"
# 00preferences.rpy:462
# 00preferences.rpy:486
old "voice volume"
new "voice volume"
# 00preferences.rpy:463
# 00preferences.rpy:487
old "mute music"
new "mute music"
# 00preferences.rpy:464
# 00preferences.rpy:488
old "mute sound"
new "mute sound"
# 00preferences.rpy:465
# 00preferences.rpy:489
old "mute voice"
new "mute voice"
# 00preferences.rpy:466
# 00preferences.rpy:490
old "mute all"
new "mute all"
# 00preferences.rpy:547
# 00preferences.rpy:571
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "剪贴板朗读已开启。按 Shift+C 来关闭。"
# 00preferences.rpy:549
# 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:551
# 00preferences.rpy:575
old "Self-voicing enabled. Press 'v' to disable."
new "自动朗读已开启。按 V 来关闭。"
@@ -729,27 +733,27 @@ translate simplified_chinese strings:
old "Position copied to clipboard."
new "坐标已复制到剪贴板。"
# _developer/developer.rpym:507
# _developer/developer.rpym:506
old "Type to filter: "
new "输入关键字过滤:"
# _developer/developer.rpym:635
# _developer/developer.rpym:631
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "贴图:[tex_count] ([tex_size_mb:.1f] MB)"
# _developer/developer.rpym:639
# _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:649
# _developer/developer.rpym:645
old "✔ "
new "✔ "
# _developer/developer.rpym:652
# _developer/developer.rpym:648
old "✘ "
new "✘ "
# _developer/developer.rpym:657
# _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}"
@@ -797,98 +801,98 @@ translate simplified_chinese strings:
old "q"
new "q"
# 00iap.rpy:217
# 00iap.rpy:219
old "Contacting App Store\nPlease Wait..."
new "正在连线 App Store\n请稍后……"
# 00updater.rpy:375
# 00updater.rpy:374
old "The Ren'Py Updater is not supported on mobile devices."
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 "更新程序"
# 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:592
# 00gallery.rpy:590
old "Image [index] of [count] locked."
new "图片 [count] / [index] 尚未解锁。"
# 00gallery.rpy:612
# 00gallery.rpy:610
old "prev"
new "上一页"
# 00gallery.rpy:613
# 00gallery.rpy:611
old "next"
new "下一页"
# 00gallery.rpy:614
# 00gallery.rpy:612
old "slideshow"
new "幻灯片"
# 00gallery.rpy:615
# 00gallery.rpy:613
old "return"
new "返回"
@@ -1,82 +1,82 @@

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

translate simplified_chinese strings:
translate schinese strings:
# 00gltest.rpy:70
# 00gltest.rpy:89
old "Renderer"
new "渲染器"
# 00gltest.rpy:74
# 00gltest.rpy:93
old "Automatically Choose"
new "自动选择"
# 00gltest.rpy:77
old "Force ANGLE Renderer"
new "强制 ANGLE 渲染"
# 00gltest.rpy:81
# 00gltest.rpy:100
old "Force GL Renderer"
new "强制 GL 渲染"
# 00gltest.rpy:85
# 00gltest.rpy:105
old "Force ANGLE Renderer"
new "强制 ANGLE 渲染"
# 00gltest.rpy:110
old "Force GLES Renderer"
new "强制 GLES 渲染"
# 00gltest.rpy:90
old "Force ANGLE2 Renderer"
new "强制 ANGLE2 渲染"
# 00gltest.rpy:94
# 00gltest.rpy:116
old "Force GL2 Renderer"
new "强制 GL2 渲染"
# 00gltest.rpy:98
# 00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "强制 ANGLE2 渲染"
# 00gltest.rpy:126
old "Force GLES2 Renderer"
new "强制 GLES2 渲染"
# 00gltest.rpy:97
# 00gltest.rpy:136
old "Enable"
new "启用"
# 00gltest.rpy:131
# 00gltest.rpy:155
old "Powersave"
new "省电模式"
# 00gltest.rpy:145
# 00gltest.rpy:169
old "Framerate"
new "帧率"
# 00gltest.rpy:149
# 00gltest.rpy:173
old "Screen"
new "根据屏幕"
# 00gltest.rpy:153
# 00gltest.rpy:177
old "60"
new "60"
# 00gltest.rpy:157
# 00gltest.rpy:181
old "30"
new "30"
# 00gltest.rpy:163
# 00gltest.rpy:187
old "Tearing"
new "画面撕裂"
# 00gltest.rpy:179
# 00gltest.rpy:203
old "Changes will take effect the next time this program is run."
new "更改将会在下次启动程序时生效。"
# 00gltest.rpy:213
# 00gltest.rpy:238
old "Performance Warning"
new "性能影响警告"
# 00gltest.rpy:218
# 00gltest.rpy:243
old "This computer is using software rendering."
new "此计算机正在使用软件渲染。"
@@ -77,39 +77,23 @@ translate simplified_chinese strings:
old "This game requires use of GL2 that can't be initialised."
new "此游戏需要使用 GL2,但其无法初始化。"
# 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
# 00gltest.rpy:247
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
# 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:236
old "Update DirectX"
new "更新 DirectX"
# 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:242
# 00gltest.rpy:261
old "Continue, Show this warning again"
new "继续,下次继续显示该警告"
# 00gltest.rpy:246
# 00gltest.rpy:265
old "Continue, Don't show warning again"
new "继续,不再显示该警告"
@@ -117,26 +101,6 @@ translate simplified_chinese strings:
old "Change render options"
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 "选择手柄来校准"
@@ -150,8 +114,8 @@ translate simplified_chinese 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)"
@@ -161,86 +125,86 @@ translate simplified_chinese strings:
old "Back (B)"
new "返回(B"
# _errorhandling.rpym:538
# _errorhandling.rpym:540
old "Open"
new "打开"
# _errorhandling.rpym:540
# _errorhandling.rpym:542
old "Opens the traceback.txt file in a text editor."
new "在文本编辑器中打开追溯报告(traceback.txt)。"
# _errorhandling.rpym:542
# _errorhandling.rpym:544
old "Copy BBCode"
new "复制 BBCode"
# _errorhandling.rpym:544
# _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:546
# _errorhandling.rpym:548
old "Copy Markdown"
new "复制 Markdown"
# _errorhandling.rpym:548
# _errorhandling.rpym:550
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "复制追溯报告(traceback.txt)的内容到剪贴板,作为 Discord 的 Markdown。"
# _errorhandling.rpym:577
# _errorhandling.rpym:579
old "An exception has occurred."
new "发生异常。"
# _errorhandling.rpym:597
# _errorhandling.rpym:602
old "Rollback"
new "回滚"
# _errorhandling.rpym:599
# _errorhandling.rpym:604
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "尝试回滚到先前的状态,使您可以存档或者选择不同选项。"
# _errorhandling.rpym:602
# _errorhandling.rpym:607
old "Ignore"
new "忽略"
# _errorhandling.rpym:606
# _errorhandling.rpym:611
old "Ignores the exception, allowing you to continue."
new "忽略异常,让您可以继续。"
# _errorhandling.rpym:608
# _errorhandling.rpym:613
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "忽略异常,让您可以继续。但这通常会引起更多错误。"
# _errorhandling.rpym:612
# _errorhandling.rpym:617
old "Reload"
new "重新加载"
# _errorhandling.rpym:614
# _errorhandling.rpym:619
old "Reloads the game from disk, saving and restoring game state if possible."
new "从硬盘重新加载游戏,尝试保存和恢复游戏状态。"
# _errorhandling.rpym:617
# _errorhandling.rpym:622
old "Console"
new "控制台"
# _errorhandling.rpym:619
# _errorhandling.rpym:624
old "Opens a console to allow debugging the problem."
new "打开控制台,允许您对问题进行调试。"
# _errorhandling.rpym:629
# _errorhandling.rpym:637
old "Quits the game."
new "退出游戏。"
# _errorhandling.rpym:653
# _errorhandling.rpym:658
old "Parsing the script failed."
new "解析脚本失败。"
# _errorhandling.rpym:679
# _errorhandling.rpym:684
old "Opens the errors.txt file in a text editor."
new "在文本编辑器中打开追溯报告(traceback.txt)。"
# _errorhandling.rpym:683
# _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:687
# _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"
@@ -1,5 +1,5 @@

translate simplified_chinese strings:
translate schinese strings:
# about.rpy:39
old "[version!q]"
@@ -433,167 +433,167 @@ translate simplified_chinese strings:
old "It looks like you're ready to start packaging games."
new "看起来您已准备好开始打包游戏了。"
# choose_directory.rpy:88
# 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 包。"
# choose_directory.rpy:106
# choose_directory.rpy:111
old "The selected projects directory is not writable."
new "所选的工程目录无法执行写操作。"
# choose_theme.rpy:303
# choose_theme.rpy:304
old "Could not change the theme. Perhaps options.rpy was changed too much."
new "无法更改主题。可能 options.rpy 已被过度修改。"
# choose_theme.rpy:370
# choose_theme.rpy:371
old "Planetarium"
new "Planetarium"
# choose_theme.rpy:425
# choose_theme.rpy:426
old "Choose Theme"
new "选择主题"
# choose_theme.rpy:438
# choose_theme.rpy:439
old "Theme"
new "主题"
# choose_theme.rpy:463
# choose_theme.rpy:464
old "Color Scheme"
new "配色方案"
# choose_theme.rpy:495
# choose_theme.rpy:496
old "Continue"
new "继续"
# choose_theme.rpy:507 此处与 While 连用
# choose_theme.rpy:508 此处与 While 连用
old "changing the theme"
new "更改主题"
# consolecommand.rpy:84
# consolecommand.rpy:86
old "INFORMATION"
new "信息"
# consolecommand.rpy:84
# consolecommand.rpy:86
old "The command is being run in a new operating system console window."
new "此命令正在新的操作系统控制台窗口中运行。"
# distribute.rpy:452
# distribute.rpy:448
old "Scanning project files..."
new "正在扫描工程文件……"
# distribute.rpy:468
# distribute.rpy:464
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
new "生成分发版失败:\n\n变量 build.directory_name 不能包含空格、冒号和分号。"
# distribute.rpy:513
# distribute.rpy:510
old "No packages are selected, so there's nothing to do."
new "因未选择任何打包平台,故未执行任何操作。"
# distribute.rpy:525
# distribute.rpy:523
old "Scanning Ren'Py files..."
new "正在扫描 Ren'Py 文件……"
# distribute.rpy:584
# 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 "已生成所有的分发包。\n\n由于包内写入了权限信息,因此不支持在 Windows 上解包并重新打包 Linux 和 Macintosh 分发版。"
# distribute.rpy:767
# distribute.rpy:764
old "Archiving files..."
new "正在封装文件……"
# distribute.rpy:1092
# distribute.rpy:1091
old "Unpacking the Macintosh application for signing..."
new "正在解包 Macintosh 应用并签名……"
# distribute.rpy:1102
# distribute.rpy:1101
old "Signing the Macintosh application...\n(This may take a long time.)"
new "正在签名 Macintosh 应用……\n(可能需要很长时间。)"
# distribute.rpy:1125
# distribute.rpy:1124
old "Creating the Macintosh DMG..."
new "正在创建 Macintosh DMG……"
# distribute.rpy:1136
# distribute.rpy:1135
old "Signing the Macintosh DMG..."
new "正在签名 Macintosh DMG……"
# distribute.rpy:1331
# distribute.rpy:1356
old "Writing the [variant] [format] package."
new "正在写入 [variant] 版 [format] 包。"
# distribute.rpy:1344
# distribute.rpy:1369
old "Making the [variant] update zsync file."
new "正在制作 [variant] 版更新同步文件。"
# distribute.rpy:1454
# distribute.rpy:1479
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "已处理 {b}[complete]{/b} / {b}[total]{/b} 个文件。"
# distribute_gui.rpy:160
# distribute_gui.rpy:157
old "Build Distributions: [project.current.display_name!q]"
new "生成分发版:[project.current.display_name!q]"
# distribute_gui.rpy:174
# distribute_gui.rpy:171
old "Directory Name:"
new "目录名:"
# distribute_gui.rpy:178
# distribute_gui.rpy:175
old "Executable Name:"
new "可执行程序名:"
# distribute_gui.rpy:188
# distribute_gui.rpy:185
old "Actions:"
new "操作:"
# distribute_gui.rpy:196
# distribute_gui.rpy:193
old "Edit options.rpy"
new "编辑 options.rpy"
# distribute_gui.rpy:197
# distribute_gui.rpy:194
old "Add from clauses to calls, once"
new "向 call 语句添加 from 从句,执行一次"
# distribute_gui.rpy:198
# distribute_gui.rpy:195
old "Refresh"
new "刷新"
# distribute_gui.rpy:202
# distribute_gui.rpy:199
old "Upload to itch.io"
new "上传到 itch.io"
# distribute_gui.rpy:218
# distribute_gui.rpy:215
old "Build Packages:"
new "生成分发包:"
# distribute_gui.rpy:237
# distribute_gui.rpy:234
old "Options:"
new "选项:"
# distribute_gui.rpy:242
# distribute_gui.rpy:239
old "Build Updates"
new "生成更新"
# distribute_gui.rpy:244
# distribute_gui.rpy:241
old "Add from clauses to calls"
new "向 call 语句添加 from 从句"
# distribute_gui.rpy:245
# distribute_gui.rpy:242
old "Force Recompile"
new "强制重新编译"
# distribute_gui.rpy:265
# distribute_gui.rpy:246
old "Build"
new "生成"
# distribute_gui.rpy:269
# distribute_gui.rpy:250
old "Adding from clauses to call statements that do not have them."
new "正在向 call 语句添加缺失的 from 从句。"
# distribute_gui.rpy:290
# distribute_gui.rpy:271
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
new "运行工程时检测到错误。请在生成分发版之前确保工程能够正常运行。"
# distribute_gui.rpy:307
# distribute_gui.rpy:288
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
new "您的工程尚未包含生成信息。您希望在 options.rpy 末端添加生成信息吗?"
@@ -613,63 +613,47 @@ translate simplified_chinese strings:
old "Up to 150 MB download required."
new "需要下载最多 150 MB 的文件。"
# editor.rpy:178
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input."
new "一个成熟的编辑器。Editra 缺乏对中日韩输入法的良好支持。"
# editor.rpy:179
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "一个成熟的编辑器。Editra 缺乏对中日韩输入法的良好支持。在 Linux 系统运行 Editra 需要安装 wxPython。"
# editor.rpy:195
old "This may have occured because wxPython is not installed on this system."
new "这可能是由于您的系统中尚未安装 wxPython 造成的。"
# editor.rpy:197
old "Up to 22 MB download required."
new "需要下载最多 22 MB 的文件。"
# editor.rpy:210
# editor.rpy:177
old "A mature editor that requires Java."
new "一个成熟的编辑器,需要安装 Java。"
# editor.rpy:210
# editor.rpy:177
old "1.8 MB download required."
new "需要下载 1.8 MB 的文件。"
# editor.rpy:210
# editor.rpy:177
old "This may have occured because Java is not installed on this system."
new "这可能是由于您的系统中尚未安装 Java 造成的。"
# editor.rpy:219
# editor.rpy:186
old "System Editor"
new "操作系统编辑器"
# editor.rpy:219
# editor.rpy:186
old "Invokes the editor your operating system has associated with .rpy files."
new "调用您操作系统已关联到 .rpy 文件的编辑器。"
# editor.rpy:235
# editor.rpy:202
old "None"
new "无"
# editor.rpy:235
# editor.rpy:202
old "Prevents Ren'Py from opening a text editor."
new "禁止 Ren'Py 自动打开文本编辑器。"
# editor.rpy:338
# editor.rpy:305
old "Edit [text]."
new "编辑 [text]。"
# editor.rpy:387
# editor.rpy:354
old "An exception occured while launching the text editor:\n[exception!q]"
new "启动编辑器时出现异常:\n[exception!q]"
# editor.rpy:519
# editor.rpy:486
old "Select Editor"
new "选择编辑器"
# editor.rpy:534
# 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 "文本编辑器是指您用来编辑 Ren'Py 脚本的程序。在这里您可以选择 Ren'Py 要使用的编辑器。若您选择的编辑器不存在,Ren'Py 将会自动下载并安装此编辑器。"
@@ -831,7 +815,7 @@ translate simplified_chinese strings:
# gui7.rpy:311
old "Regenerate the image files using the colors in gui.rpy."
new ""
new "使用 gui.rpy 中的配色重新生成图像文件。"
# gui7.rpy:339
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of 1280x720 is a reasonable compromise."
@@ -885,23 +869,43 @@ translate simplified_chinese strings:
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "无法安装 [name!t],因为在 Ren'Py SDK 目录中找不到与 [zipglob] 匹配的文件。"
# install.rpy:73
# install.rpy:76
old "Successfully installed [name!t]."
new "已成功安装 [name!t]。"
# install.rpy:101
# install.rpy:110
old "Install Libraries"
new "安装库"
# install.rpy:116
# 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 "本界面将引导您安装 Ren'Py 无法分发的库。其中一些库可能会要求您在使用或分发之前同意第三方许可证。"
# install.rpy:131
old "Install Live2D Cubism SDK for Native"
new "安装 Live2D Cubism SDK for Native"
# 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 "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} 增加了对显示 Live2D 模型的支持。将 CubismSdkForNative-4-{i}version{/i}.zip 放在 Ren'Py SDK 目录中,然后单击“安装”。使用 Live2D 分发游戏需要您接受 Live2D 公司的许可。"
# install.rpy:135
# 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 "Ren'Py 中的 Live2D 不支持网页版和安卓 x86_64(包括模拟器和 Chrome OS),且必须手动添加至 iOS 工程。更新 Ren'Py 或安装安卓支持包后需要重新安装 Live2D。"
# install.rpy:151
old "Install Steam Support"
new "安装 Steam 支持包"
# 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}。"
# install.rpy:172
old "Steam support has already been installed."
new " Steam 支持包已安装。"
# install.rpy:176
old "Open Ren'Py SDK Directory"
new "打开 Ren'Py SDK 目录"
@@ -1021,55 +1025,55 @@ translate simplified_chinese strings:
old "Opens the directory containing Xcode projects."
new "打开包含 Xcode 工程的目录。"
# ios.rpy:131
# 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 "Xcode 工程已经存在。您希望重命名旧工程,并用新工程将其替换吗?"
# ios.rpy:225
# ios.rpy:233
old "iOS: [project.current.display_name!q]"
new "iOS[project.current.display_name!q]"
# ios.rpy:254
# ios.rpy:262
old "iPhone"
new "iPhone"
# ios.rpy:258
# ios.rpy:266
old "iPad"
new "iPad"
# ios.rpy:278
# ios.rpy:286
old "Select Xcode Projects Directory"
new "指定 Xcode 工程目录"
# ios.rpy:282
# ios.rpy:290
old "Create Xcode Project"
new "创建 Xcode 工程"
# ios.rpy:286
# ios.rpy:294
old "Update Xcode Project"
new "更新 Xcode 工程"
# ios.rpy:291
# ios.rpy:299
old "Launch Xcode"
new "启动 Xcode"
# ios.rpy:326
# ios.rpy:334
old "Open Xcode Projects Directory"
new "打开 Xcode 工程目录"
# ios.rpy:359
# 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 "在打包 iOS 应用之前,您需要先下载 renios,即 Ren'Py iOS 支持包。您希望现在就开始下载 renios 吗?"
# ios.rpy:368
# ios.rpy:376
old "XCODE PROJECTS DIRECTORY"
new "XCODE 工程目录"
# ios.rpy:368
# 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 "请使用弹出的目录选择窗口来指定 Xcode 工程目录。\n{b}目录选择窗口可能会被本窗口覆盖。{/b}"
# ios.rpy:373
# ios.rpy:381
old "Ren'Py has set the Xcode Projects Directory to:"
new "Ren'Py 已将 Xcode 工程目录设置为:"
@@ -1097,7 +1101,7 @@ translate simplified_chinese strings:
old "The name of the itch project has not been set."
new "尚未设置 itch 工程名。"
# itch.rpy:151
# itch.rpy:149
old "Please {a=https://itch.io/game/new}create your project{/a}, then add a line like \n{vspace=5}define build.itch_project = \"user-name/game-name\"\n{vspace=5} to options.rpy."
new "请{a=https://itch.io/game/new}创建您的工程{/a},并在 options.rpy 里添加诸如以下内容的语句:\n{vspace=5}define build.itch_project = \"user-name/game-name\""
@@ -1265,79 +1269,75 @@ translate simplified_chinese strings:
old "Install libraries"
new "安装库"
# preferences.rpy:140
old "Reset window size"
new "重置窗口大小"
# preferences.rpy:145
old "Navigation Options:"
new "定位选项:"
# preferences.rpy:149
old "Include private names"
new "包含私有名称"
# preferences.rpy:150
old "Include library names"
new "包含库名称"
# preferences.rpy:160
old "Launcher Options:"
new "启动器选项:"
# preferences.rpy:164
old "Hardware rendering"
new "硬件渲染"
# preferences.rpy:165
old "Show edit file section"
new "显示编辑文件部件"
# preferences.rpy:166
old "Large fonts"
new "大字体"
# preferences.rpy:169
old "Console output"
new "控制台输出"
# preferences.rpy:173
old "Force new tutorial"
new "强制新手教程"
# preferences.rpy:177
old "Legacy options"
new "传统选项"
# preferences.rpy:180
old "Show templates"
new "显示模板"
# preferences.rpy:182
old "Sponsor message"
new "赞助者信息"
# preferences.rpy:202
# preferences.rpy:144
old "Open launcher project"
new "打开启动器工程"
# preferences.rpy:216
# preferences.rpy:145
old "Reset window size"
new "重置窗口大小"
# preferences.rpy:161
old "Navigation Options:"
new "定位选项:"
# preferences.rpy:165
old "Include private names"
new "包含私有名称"
# preferences.rpy:166
old "Include library names"
new "包含库名称"
# preferences.rpy:176
old "Launcher Options:"
new "启动器选项:"
# preferences.rpy:180
old "Show edit file section"
new "显示编辑文件部件"
# preferences.rpy:181
old "Large fonts"
new "大字体"
# preferences.rpy:184
old "Console output"
new "控制台输出"
# preferences.rpy:188
old "Force new tutorial"
new "强制新手教程"
# preferences.rpy:192
old "Legacy options"
new "传统选项"
# preferences.rpy:195
old "Show templates"
new "显示模板"
# preferences.rpy:197
old "Sponsor message"
new "赞助者信息"
# preferences.rpy:217
old "Language:"
new "语言:"
# project.rpy:49
# project.rpy:51
old "After making changes to the script, press shift+R to reload your game."
new "在对脚本进行更改之后,按 Shift+R 来重新载入游戏。"
# project.rpy:49
# project.rpy:51
old "Press shift+O (the letter) to access the console."
new "按 Shift+O(字母 O)来打开控制台。"
# project.rpy:49
# project.rpy:51
old "Press shift+D to access the developer menu."
new "按 Shift+D 打开开发者菜单。"
# project.rpy:49
# project.rpy:51
old "Have you backed up your projects recently?"
new "您最近备份过您的工程吗?"
@@ -1353,23 +1353,23 @@ translate simplified_chinese strings:
old "Ren'Py is scanning the project..."
new "Ren'Py 正在扫描工程……"
# project.rpy:729
# project.rpy:740
old "Launching"
new "启动中"
# project.rpy:763
# project.rpy:774
old "PROJECTS DIRECTORY"
new "工程目录"
# project.rpy:763
# project.rpy:774
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
new "请使用弹出的目录选择窗口来指定工程目录。\n{b}目录选择窗口可能会被本窗口覆盖。{/b}"
# project.rpy:763
# project.rpy:774
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 "该启动器将会在此目录里扫描工程、创建新工程以及将生成的工程放置在此。"
# project.rpy:768
# project.rpy:779
old "Ren'Py has set the projects directory to:"
new "Ren'Py 已将工程目录设置为:"
@@ -1386,8 +1386,8 @@ translate simplified_chinese strings:
new "为翻译生成空字串"
# translations.rpy:176
old "Generates or updates translation files. The files will be placed in game/tl/[persistent.translate_language!q]."
new "生成或更新翻译文件。文件将放置在 game/tl/[persistent.translate_language!q]。"
old "Generates or updates translation files. The files will be placed in tl/[persistent.translate_language!q]."
new "生成或更新翻译文件。文件将放置在 tl/[persistent.translate_language!q]。"
# translations.rpy:196
old "Extract String Translations"
@@ -1577,65 +1577,61 @@ translate simplified_chinese strings:
old "Fetching the list of update channels"
new "正在获取更新通道列表"
# updater.rpy:194 此处与 While 连用
# updater.rpy:193 此处与 While 连用
old "downloading the list of update channels"
new "下载更新通道列表"
# updater.rpy:198 此处与 While 连用
# updater.rpy:196 此处与 While 连用
old "parsing the list of update channels"
new "解析更新通道列表"
# web.rpy:119
old "Web: [project.current.display_name!q]"
new "网页:[project.current.display_name!q]"
# web.rpy:149
old "Build Web Application"
new "生成网页应用"
# web.rpy:150
old "Build and Open in Browser"
new "生成应用并在浏览器中打开"
# web.rpy:151
old "Open in Browser"
new "在浏览器中打开"
# web.rpy:152
old "Open build directory"
new "打开生成目录"
# web.rpy:156
old "Support:"
new "支持:"
# web.rpy:164
old "RenPyWeb Home"
new "RenPyWeb 主页"
# web.rpy:165
old "Beuc's Patreon"
new "Beuc 的 Patreon"
# web.rpy:183
old "Ren'Py web applications require the entire game to be downloaded to the player's computer before it can start."
new "Ren'Py 网页应用要求将整个游戏下载到玩家的计算机上之后才能启动。"
# web.rpy:187
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 "当前在网页平台中的限制意味着加载较大图像、音频文件或视频时可能会导致声音或帧数抖动,并且通常会降低性能。"
# web.rpy:196
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "在打包网页应用之前,您需要先下载 RenPyWeb,即 Ren'Py 网页支持包。您希望现在就开始下载 RenPyWeb 吗?"
# web.rpy:242
old "Preparing progressive download"
new "正在准备渐进式下载"
# web.rpy:277
old "Web: [project.current.display_name!q]"
new "网页:[project.current.display_name!q]"
# web.rpy:307
old "Build Web Application"
new "生成网页应用"
# web.rpy:308
old "Build and Open in Browser"
new "生成应用并在浏览器中打开"
# web.rpy:309
old "Open in Browser"
new "在浏览器中打开"
# web.rpy:310
old "Open build directory"
new "打开生成目录"
# web.rpy:314
old "Support:"
new "支持:"
# web.rpy:322
old "RenPyWeb Home"
new "RenPyWeb 主页"
# web.rpy:323
old "Beuc's Patreon"
new "Beuc 的 Patreon"
# 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”的文件,以便您配置此行为。"
# 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 "当前在网页平台中的限制意味着加载较大图像、音频文件或视频时可能会导致声音或帧数抖动,并且通常会降低性能。"
# 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 "在打包网页应用之前,您需要先下载 RenPyWeb,即 Ren'Py 网页支持包。您希望现在就开始下载 RenPyWeb 吗?"
old "Web (Beta)"
new "网页(测试版)"
@@ -1,5 +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."
@@ -1,5 +1,5 @@

translate simplified_chinese strings:
translate schinese strings:
# screens.rpy:9
old "## Styles"
@@ -237,438 +237,434 @@ translate simplified_chinese strings:
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]"
# screens.rpy:569
old "## This is redefined in options.rpy to add text to the about screen."
new "## 此变量在 options.rpy 中重新定义,来添加文本到关于界面。"
# screens.rpy:581
# screens.rpy:577
old "## Load and Save screens"
new "## 读取和保存界面"
# screens.rpy:583
# 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 "## 这些界面负责让玩家保存游戏并能够再次读取。由于它们几乎完全一样,因此它们都是以第三方界面“file_slots”来实现的。"
# screens.rpy:587
# 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.cn/doc/screen_special.html#save https://www.renpy.cn/doc/screen_special.html#load"
# screens.rpy:606
# screens.rpy:602
old "Page {}"
new "第 {} 页"
# screens.rpy:606
# screens.rpy:602
old "Automatic saves"
new "自动存档"
# screens.rpy:606
# screens.rpy:602
old "Quick saves"
new "快速存档"
# screens.rpy:612
# screens.rpy:608
old "## This ensures the input will get the enter event before any of the buttons do."
new "## 此语句确保输入控件在任意按钮执行前可以获取“enter”事件。"
# screens.rpy:616
# screens.rpy:612
old "## The page name, which can be edited by clicking on a button."
new "## 页面名称,可以通过单击按钮进行编辑。"
# screens.rpy:628
# screens.rpy:624
old "## The grid of file slots."
new "## 存档位网格。"
# screens.rpy:648
# screens.rpy:644
old "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%Y-%m-%d %H:%M"
# screens.rpy:648
# screens.rpy:644
old "empty slot"
new "空存档位"
# screens.rpy:656
# screens.rpy:652
old "## Buttons to access other pages."
new "## 用于访问其他页面的按钮。"
# screens.rpy:665
# screens.rpy:661
old "<"
new "<"
# screens.rpy:668
# screens.rpy:664
old "{#auto_page}A"
new "{#auto_page}A"
# screens.rpy:671
# screens.rpy:667
old "{#quick_page}Q"
new "{#quick_page}Q"
# screens.rpy:673
# screens.rpy:669
old "## range(1, 10) gives the numbers from 1 to 9."
new "## “range(1, 10)”给出 1 到 9 之间的数字。"
# screens.rpy:677
# screens.rpy:673
old ">"
new ">"
# screens.rpy:712
# screens.rpy:708
old "## Preferences screen"
new "## 设置界面"
# screens.rpy:714
# screens.rpy:710
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## 设置界面允许玩家配置游戏以更好地适应自己的习惯。"
# screens.rpy:717
# screens.rpy:713
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
new "## https://www.renpy.cn/doc/screen_special.html#preferences"
# screens.rpy:734
# screens.rpy:730
old "Display"
new "显示"
# screens.rpy:735
# screens.rpy:731
old "Window"
new "窗口"
# screens.rpy:736
# screens.rpy:732
old "Fullscreen"
new "全屏"
# screens.rpy:740
# screens.rpy:736
old "Rollback Side"
new "回退操作区"
# screens.rpy:741
# screens.rpy:737
old "Disable"
new "禁用"
# screens.rpy:742
# screens.rpy:738
old "Left"
new "屏幕左侧"
# screens.rpy:743
# screens.rpy:739
old "Right"
new "屏幕右侧"
# screens.rpy:748
# screens.rpy:744
old "Unseen Text"
new "未读文本"
# screens.rpy:749
# screens.rpy:745
old "After Choices"
new "选项后继续"
# screens.rpy:750
# screens.rpy:746
old "Transitions"
new "忽略转场"
# screens.rpy:752
# 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:763
# screens.rpy:759
old "Text Speed"
new "文字速度"
# screens.rpy:767
# screens.rpy:763
old "Auto-Forward Time"
new "自动前进时间"
# screens.rpy:774
# screens.rpy:770
old "Music Volume"
new "音乐音量"
# screens.rpy:781
# screens.rpy:777
old "Sound Volume"
new "音效音量"
# screens.rpy:787
# screens.rpy:783
old "Test"
new "测试"
# screens.rpy:791
# screens.rpy:787
old "Voice Volume"
new "语音音量"
# screens.rpy:802
# screens.rpy:798
old "Mute All"
new "全部静音"
# screens.rpy:878
# screens.rpy:874
old "## History screen"
new "## 历史界面"
# screens.rpy:880
# 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”中的对话历史记录。"
# screens.rpy:884
# screens.rpy:880
old "## https://www.renpy.org/doc/html/history.html"
new "## https://www.renpy.cn/doc/history.html"
# screens.rpy:890
# screens.rpy:886
old "## Avoid predicting this screen, as it can be very large."
new "## 避免预缓存此界面,因为它可能非常大。"
# screens.rpy:901
# screens.rpy:897
old "## This lays things out properly if history_height is None."
new "## 此语句可确保如果“history_height”为“None”的话仍可正常显示条目。"
# screens.rpy:911
# screens.rpy:907
old "## Take the color of the who text from the Character, if set."
new "## 若角色颜色已设置,则从“Character”对象中读取颜色到叙述人文本中。"
# screens.rpy:920
# screens.rpy:916
old "The dialogue history is empty."
new "尚无对话历史记录。"
# screens.rpy:923
# screens.rpy:919
old "## This determines what tags are allowed to be displayed on the history screen."
new "## 此语句决定了允许在历史记录界面上显示哪些标签。"
# screens.rpy:970
# screens.rpy:966
old "## Help screen"
new "## 帮助界面"
# screens.rpy:972
# 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 "## 提供有关键盘和鼠标映射信息的界面。它使用其它界面(“keyboard_help”,“mouse_help“和”gamepad_help“)来显示实际的帮助内容。"
# screens.rpy:991
# screens.rpy:987
old "Keyboard"
new "键盘"
# screens.rpy:992
# screens.rpy:988
old "Mouse"
new "鼠标"
# screens.rpy:995
# screens.rpy:991
old "Gamepad"
new "手柄"
# screens.rpy:1008
# screens.rpy:1004
old "Enter"
new "回车"
# screens.rpy:1009
# screens.rpy:1005
old "Advances dialogue and activates the interface."
new "推进对话并激活界面。"
# screens.rpy:1012
# screens.rpy:1008
old "Space"
new "空格"
# screens.rpy:1013
# screens.rpy:1009
old "Advances dialogue without selecting choices."
new "推进对话但不激活选项。"
# screens.rpy:1016
# screens.rpy:1012
old "Arrow Keys"
new "方向键"
# screens.rpy:1017
# screens.rpy:1013
old "Navigate the interface."
new "导航界面。"
# screens.rpy:1020
# screens.rpy:1016
old "Escape"
new "Esc"
# screens.rpy:1021
# screens.rpy:1017
old "Accesses the game menu."
new "访问游戏菜单。"
# screens.rpy:1024
# screens.rpy:1020
old "Ctrl"
new "Ctrl"
# screens.rpy:1025
# screens.rpy:1021
old "Skips dialogue while held down."
new "按住时快进对话。"
# screens.rpy:1028
# screens.rpy:1024
old "Tab"
new "Tab"
# screens.rpy:1029
# screens.rpy:1025
old "Toggles dialogue skipping."
new "切换对话快进。"
# screens.rpy:1032
# screens.rpy:1028
old "Page Up"
new "Page Up"
# screens.rpy:1033
# screens.rpy:1029
old "Rolls back to earlier dialogue."
new "回退至先前的对话。"
# screens.rpy:1036
# screens.rpy:1032
old "Page Down"
new "Page Down"
# screens.rpy:1037
# screens.rpy:1033
old "Rolls forward to later dialogue."
new "向前至之后的对话。"
# screens.rpy:1041
# screens.rpy:1037
old "Hides the user interface."
new "隐藏用户界面。"
# screens.rpy:1045
# screens.rpy:1041
old "Takes a screenshot."
new "截图。"
# screens.rpy:1049
# 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:1055
# screens.rpy:1051
old "Left Click"
new "左键点击"
# screens.rpy:1059
# screens.rpy:1055
old "Middle Click"
new "中键点击"
# screens.rpy:1063
# screens.rpy:1059
old "Right Click"
new "右键点击"
# screens.rpy:1067
# screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "鼠标滚轮上\n点击回退操作区"
# screens.rpy:1071
# screens.rpy:1067
old "Mouse Wheel Down"
new "鼠标滚轮下"
# screens.rpy:1078
# screens.rpy:1074
old "Right Trigger\nA/Bottom Button"
new "右扳机键\nA/底键"
# screens.rpy:1082
# screens.rpy:1078
old "Left Trigger\nLeft Shoulder"
new "左扳机键\n左肩键"
# screens.rpy:1086
# screens.rpy:1082
old "Right Shoulder"
new "右肩键"
# screens.rpy:1091
# screens.rpy:1087
old "D-Pad, Sticks"
new "十字键,摇杆"
# screens.rpy:1095
# screens.rpy:1091
old "Start, Guide"
new "开始,向导"
# screens.rpy:1099
# screens.rpy:1095
old "Y/Top Button"
new "Y/顶键"
# screens.rpy:1102
# screens.rpy:1098
old "Calibrate"
new "校准"
# screens.rpy:1130
# screens.rpy:1126
old "## Additional screens"
new "## 其他界面"
# screens.rpy:1134
# screens.rpy:1130
old "## Confirm screen"
new "## 确认界面"
# screens.rpy:1136
# screens.rpy:1132
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## 当 Ren'Py 需要询问玩家有关确定或取消的问题时,会调用确认界面。"
# screens.rpy:1139
# screens.rpy:1135
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
new "## https://www.renpy.cn/doc/screen_special.html#confirm"
# screens.rpy:1143
# screens.rpy:1139
old "## Ensure other screens do not get input while this screen is displayed."
new "## 显示此界面时,确保其他界面无法输入。"
# screens.rpy:1167
# screens.rpy:1163
old "Yes"
new "确定"
# screens.rpy:1168
# screens.rpy:1164
old "No"
new "取消"
# screens.rpy:1170
# screens.rpy:1166
old "## Right-click and escape answer \"no\"."
new "## 右键点击退出并答复“no”(取消)。"
# screens.rpy:1197
# screens.rpy:1193
old "## Skip indicator screen"
new "## 快进指示界面"
# screens.rpy:1199
# screens.rpy:1195
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## “skip_indicator”界面用于指示快进正在进行中。"
# screens.rpy:1202
# screens.rpy:1198
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
new "## https://www.renpy.cn/doc/screen_special.html#skip-indicator"
# screens.rpy:1214
# screens.rpy:1210
old "Skipping"
new "正在快进"
# screens.rpy:1221
# screens.rpy:1217
old "## This transform is used to blink the arrows one after another."
new "## 此变换用于一个接一个地闪烁箭头。"
# screens.rpy:1248
# 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:1253
# screens.rpy:1249
old "## Notify screen"
new "## 通知界面"
# screens.rpy:1255
# 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 "## 通知界面用于向玩家显示消息。(例如,当游戏快速保存或已截屏时。)"
# screens.rpy:1258
# screens.rpy:1254
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
new "## https://www.renpy.cn/doc/screen_special.html#notify-screen"
# screens.rpy:1292
# screens.rpy:1288
old "## NVL screen"
new "## NVL 模式界面"
# screens.rpy:1294
# screens.rpy:1290
old "## This screen is used for NVL-mode dialogue and menus."
new "## 此界面用于 NVL 模式的对话和菜单。"
# screens.rpy:1296
# screens.rpy:1292
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.cn/doc/screen_special.html#nvl"
# screens.rpy:1307
# screens.rpy:1303
old "## Displays dialogue in either a vpgrid or the vbox."
new "## 在“vpgrid”或“vbox”中显示对话框。"
# screens.rpy:1320
# 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:1350
# screens.rpy:1346
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## 此语句控制一次可以显示的 NVL 模式条目的最大数量。"
# screens.rpy:1412
# screens.rpy:1408
old "## Mobile Variants"
new "## 移动设备界面"
# screens.rpy:1419
# 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 "## 由于鼠标可能不存在,我们将快捷菜单替换为更容易触摸且按钮更少更大的版本。"
# screens.rpy:1437
# screens.rpy:1433
old "Menu"
new "菜单"
+2
View File
@@ -0,0 +1,2 @@
init python:
translate_font("schinese", "SourceHanSansLite.ttf")
@@ -1 +0,0 @@
# This file intentionally left blank.
@@ -1,2 +0,0 @@
init python:
translate_font("simplified_chinese", "SourceHanSansLite.ttf")
+16 -1
View File
@@ -692,7 +692,7 @@ translate spanish strings:
# 00accessibility.rpy:129
old "Clipboard"
new "Potapapeles"
new "Portapapeles"
# 00accessibility.rpy:133
old "Debug"
@@ -750,3 +750,18 @@ translate spanish strings:
old "system cursor"
new "cursor del sistema"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
new "Texto de Alto Contraste"
# renpy/common/00preferences.rpy:487
old "renderer menu"
new "menú de renderizado"
# renpy/common/00preferences.rpy:490
old "accessibility menu"
new "menú de accesibilidad"
# renpy/common/00preferences.rpy:493
old "high contrast text"
new "texto de alto contraste"
+23 -10
View File
@@ -10,15 +10,15 @@
# 00gltest.rpy:79
old "Force Angle/DirectX Renderer"
new "Forzar 'Angle/DirectX Renderer'"
new "Forzar Renderizador 'Angle/DirectX'"
# 00gltest.rpy:83
old "Force OpenGL Renderer"
new "Forzar 'OpenGL Renderer'"
new "Forzar Renderizador 'OpenGL'"
# 00gltest.rpy:87
old "Force Software Renderer"
new "Forzar 'Software Renderer'"
new "Forzar Renderizado por Software"
# 00gltest.rpy:93
old "NPOT"
@@ -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)"
@@ -242,23 +242,23 @@
# renpy/common/00gltest.rpy:81
old "Force GL Renderer"
new "Force renderizador GL"
new "Forzar renderizador GL"
# renpy/common/00gltest.rpy:85
old "Force GLES Renderer"
new "Force renderizador GLES"
new "Forzar renderizador GLES"
# renpy/common/00gltest.rpy:90
old "Force ANGLE2 Renderer"
new "Force renderizador ANGLE2"
new "Forzar renderizador ANGLE2"
# renpy/common/00gltest.rpy:94
old "Force GL2 Renderer"
new "Force renderizador GL2"
new "Forzar renderizador GL2"
# renpy/common/00gltest.rpy:98
old "Force GLES2 Renderer"
new "Force renderizador GLES2"
new "Forzar renderizador GLES2"
# renpy/common/00gltest.rpy:218
old "This game requires use of GL2 that can't be initialised."
@@ -271,3 +271,16 @@
# 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]."
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "Habilitar (sin Blocklist)"
# renpy/common/00gltest.rpy:259
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
new "El archivo {a=edit:1:log.txt}log.txt{/a} puede contener información para ayudarte a encontrar el problema en tu ordenador."

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