Compare commits

...

607 Commits

Author SHA1 Message Date
Tom Rothamel db12aca24b Add a mode to show files that have changed size. 2024-06-12 01:35:35 -04:00
Tom Rothamel 4248ea0b18 doc: Changelog. 2024-06-11 22:59:11 -04:00
Tom Rothamel e976763457 doc: Changelog. 2024-06-11 21:47:14 -04:00
Tom Rothamel 95c3070bd2 doc: Update sponsors. 2024-06-11 21:23:20 -04:00
Tom Rothamel 6e5d3b926b Scale up the interface styles on small devices.
This makes the accessibility menu more usable on phones.
2024-06-11 00:06:35 -04:00
Tom Rothamel fed3bbf2c1 tts: Allow tts on Android and iOS. 2024-06-10 23:41:10 -04:00
Tom Rothamel 4decefb7c4 On touch platforms, allow a gesture to access the accessibility menu. 2024-06-10 23:03:33 -04:00
Tom Rothamel 0b257c3505 Tweak the LOD setting.
This changes when it triggers, as .5 is too close to sizes a
creator might use.

Fixes #5466.
2024-06-09 21:16:46 -04:00
Tom Rothamel bf04173e44 tts: Fallback if the selected voice can't be used.
Fixes #5556. Probably only works on Linux and Mac, as on Windows
this is the default.
2024-06-09 16:21:09 -04:00
Tom Rothamel 33818ecd5b Include the version at the end of blocks of variables.
This should help with merges.
2024-06-09 01:01:50 -04:00
Tom Rothamel 90398b5604 android: Use armOnStop and FinishOnStop.
Per renpy/renpy-build@c6253f81ad
2024-06-08 23:02:35 -04:00
Tom Rothamel 8486ab06bf Fix translations. 2024-06-07 22:49:15 -04:00
Zout141 4b888f0c89 Try To Update Existing SChinese and TChinese Translation,Fix A Little Problem Of Korean Translation (#5524)
Co-authored-by: Liu Wenyuan <15816141883@163.com>
Co-authored-by: 复予 <clonewith@qq.com>
2024-06-07 22:25:54 -04:00
Tom Rothamel cc97832772 Us a style to control image error placement.
And update the style to something more modern.
2024-06-07 00:19:37 -04:00
Tom Rothamel 4bcb365a78 Stop raising image exceptions if the player choses to ignore. 2024-06-06 21:54:58 -04:00
Tom Rothamel cbf17de9bc Add config.raise_image_load_exceptions.
This lets the creator control when image load exceptions
occur.
2024-06-06 21:50:17 -04:00
Tom Rothamel 1c39200c17 Add config.python_exit_callbacks.
Functions that are called when Ren'Py is shutting down, to allow
Python modules to be deinitialized.
2024-06-05 22:37:41 -04:00
Tom Rothamel f549453214 Undocument config.at_exit_callbacks.
This is a really poorly named callback that has little purpose
(other than saving jsondbs) as it runs between when the game
store has been loaded and when the init data is removed.
2024-06-05 22:09:50 -04:00
Tom Rothamel 6e46f2bb6a Restore _with_none to renpy.call_screen.
See discussion in #5536.
2024-06-04 22:22:03 -04:00
Tom Rothamel 72437e55fa Remove _with_none from argument signatures.
It was never useful, and it's obsolete at this point.

Fixes #5536.
2024-06-04 21:58:57 -04:00
Tom Rothamel 968c6059df doc: Fix typo. 2024-06-03 23:05:11 -04:00
Tom Rothamel ab09cd29f0 tts: Queue up and allow forced tts.
Queuing up allow multiple messages with renpy.alt to be queued up
before the next tts. And this fix allows renpy.alt(force=True) to
work where it had been broken.

Fixes #5545.
2024-06-03 23:01:38 -04:00
Tom Rothamel 3b8194dd5e Prevent xfill and yfill from shrinking frames.
Fixes #5424.
2024-06-03 02:17:05 -04:00
Tom Rothamel 823c168154 Work around an issue where harfbuzz couldn't get font height.
Fixes #5416.
2024-06-02 11:25:01 -04:00
Tom Rothamel d7a10778ee Treat the use of default_focus as an explicit focus.
That causes hovered handlers to run. Fixes #5477.
2024-05-31 22:25:50 -04:00
Tom Rothamel 7886c536ec live2d: Always apply attribute_filter.
Fixes #5415.
2024-05-29 20:36:38 -04:00
Tom Rothamel 2eddbd9712 Fadeout audio when stopping sounds for rollback.
Fixes #5497.
2024-05-29 01:50:34 -04:00
Tom Rothamel 2c7bf8aed4 Use config.fadeout_audio on play/stop sound.
Per #5497.
2024-05-29 01:08:46 -04:00
Tom Rothamel e2cb92540f live2d: Properly encode and suggest cause of errors from missing symbols.
Fixes #5485.
2024-05-28 22:48:29 -04:00
Tom Rothamel fd9fee113e Clear after_rollback even if an interaction aborts early.
Fixes #5511
2024-05-28 01:47:45 -04:00
Tom Rothamel 920921e87d Merge pull request #5522 from renpy/live2d-auxiliaryout
Allow to have the same model with 2 different default_fade
2024-05-27 21:35:48 -04:00
Tom Rothamel 3907f95a1c Fix newlines in config.log.
Fixes #5535.
2024-05-26 21:09:41 -04:00
Tom Rothamel f8383eef39 Add config.log_events.
A way of logging pygame events.
2024-05-25 23:30:35 -04:00
Tom Rothamel 53f5445f82 Merge pull request #5529 from mal/optimise-str-interpolation
Skip unnecessary conditionals during interpolation
2024-05-21 20:08:26 -04:00
Tom Rothamel 392fd5c3da Merge pull request #5528 from mal/respect-save-game-suffix
Respect config.savegame_suffix in sync
2024-05-21 20:07:09 -04:00
Mal Graty 92a00f1183 Skip unnecessary conditionals during interpolation
We already bail early when inside parens, and taking the same approach
with brackets allows us to short-circuit further character checks.
2024-05-19 22:05:48 +01:00
Mal Graty 02e654e855 Respect config.savegame_suffix in sync 2024-05-19 22:04:04 +01:00
Andy_kl 3318d23a8d Allow to have the same model with 2 different default_fade 2024-05-18 10:24:42 +04:00
Tom Rothamel 98dee5f007 Move to a different approach to pausing on Android and iOS.
This is a (more or less) direct call of SDL_PauseAudio, without
any locking.

Per #5292.
2024-05-17 01:21:14 -04:00
OleSTEEP e57117ec90 Fix renpy.exports.get_sdl_dll() for Android 2024-05-16 18:57:21 -04:00
Tom Rothamel 19b8cfb9aa Look for live2d ion the main executable on ios.
Per #5502.
2024-05-10 21:50:32 -04:00
Tom Rothamel 5d862887dc doc: Fix typos in updater documentation.
Fixes #5500.
2024-05-08 23:29:21 -04:00
Tom Rothamel ea34d8f995 Allow Transform to take a Transform Matrix.
Fixes #5487.
2024-04-29 00:57:10 -04:00
Tom Rothamel 5bbbd688af Restore removed line.
Fixes #5469.
2024-04-24 21:03:47 -04:00
Tom Rothamel 3674f45efe doc: Fixes.
Mostly the aftermath of undocumenting mode.

Fixes #5469.
2024-04-23 21:35:16 -04:00
Tom Rothamel fb58d699f5 Properly filter the axis text tag.
Fixes #5470.
2024-04-22 22:23:16 -04:00
Tom Rothamel ff8e0a0cb0 Ensure the vibration time is above a minimum value.
Fixes #5474.
2024-04-22 21:45:45 -04:00
Tom Rothamel 9cb8b904b9 Improve and document config.statement_callbacks. 2024-04-18 22:16:57 -04:00
Tom Rothamel 980c7cfb1f Undocument mode callbacks. 2024-04-18 21:45:58 -04:00
Tom Rothamel 2c09515c4d Add some safety to MouseDisplayable, by using the default if the mouse isn't defined. 2024-04-18 21:37:02 -04:00
Tom Rothamel 94a8647291 Document last. 2024-04-18 01:01:02 -04:00
Tom Rothamel 66ab709373 Better integrate window show/hide/auto and nvl show/hide.
The two had been largely independent. The result of these changes
is that nvl operations now adjust the window show/hide state, while
the nvl <-> adv transitions won't happen if the window is hidden.

If the window is hidden, then window show will happen instead.
2024-04-17 23:50:00 -04:00
Tom Rothamel 51393042b4 Fix downloader instructions.
Fixes #5421.
2024-04-11 01:19:49 -04:00
Tom Rothamel 10c02a4caf Do not end an interpolation expression inside brackers or parens.
This fixes an issue I caught myself where trying to slice inside an
interpolation would cause an error, because:

"[l[:100]]"

would be parsed as an expression of l[ and a format string of
:100], which is wrong.
2024-04-07 22:21:30 -04:00
Tom Rothamel 0ab547dd34 Document fixes. 2024-04-07 00:37:53 -04:00
Tom Rothamel f9ccc4b2e0 Generate string translations from _ren.py files.
Fixes #5458.
2024-04-06 22:15:05 -04:00
Tom Rothamel 1e5845b5b6 Typecheck achievement names. 2024-04-06 21:26:56 -04:00
Tom Rothamel d932e09cd4 Clean invalid achievement names out of persistent._achievements.
Fixes #5457.
2024-04-06 21:20:05 -04:00
Tom Rothamel bc2c137c18 doc: Replace eileen mad with eileen concerned.
Fixes #5454.
2024-04-05 01:03:12 -04:00
Tom Rothamel af2e9e2b0a Mark RPY nodes as weakly reachable.
Fixes #5447.
2024-04-02 23:05:14 -04:00
Tom Rothamel 5c5475a1fa py2: Fix weakref pickling.
NoneType isn't a function in Python 2, so one is provided.

Fixes #5446.
2024-04-02 22:28:38 -04:00
Elckarow 1c29911877 check for warp_function as well 2024-03-31 10:17:35 -04:00
Elckarow 044c608354 fix nvl hide 2024-03-30 00:34:27 -04:00
Tom Rothamel 2f8325a773 Disable sound in the launcher.
Per #5429.
2024-03-27 23:10:12 -04:00
minger0 184be0b5ec Add to web.rst the details where to find the generated web files 2024-03-18 14:14:26 -04:00
Tom Rothamel 83aecea50b Revert "Remove duplicate say-related functions from 00library."
This reverts commit 122dbf2619.

Fixes #5409.
2024-03-10 17:04:58 -04:00
Tom Rothamel 32a372a56e Merge pull request #5398 from DipeshAggarwal/fix
Update transistions.rst and atl.rst
2024-03-09 15:42:01 -05:00
Bas Couwenberg 11c4a4e7f1 Fix 'if' typo
Replace 'inf' with 'if'.
2024-03-09 15:39:34 -05:00
Dipesh Aggarwal 928387e2d8 Update atl.rst 2024-03-07 17:27:30 +05:30
Dipesh Aggarwal cb8b5d3de8 Update transitions.rst
Fix a broken ref to dialogue-window-management
2024-03-07 17:09:08 +05:30
Dipesh Aggarwal c8b76750c3 Update template_projects.rst
config.build_name doesn't exist. Replaced it with build.name
2024-03-06 01:27:07 -05:00
Dipesh Aggarwal 754d50c345 Update changelog.rst
Fix link to the vertical property and remove unncessary ` after renpy.fetch
2024-03-06 01:26:58 -05:00
Dipesh Aggarwal d836d94bac Update template_projects.rst
config.build_name doesn't exist. Replaced it with build.name
2024-03-06 00:03:36 +05:30
Dipesh Aggarwal e156bae357 Update changelog.rst
Fix link to the vertical property and remove unncessary ` after renpy.fetch
2024-03-05 23:58:25 +05:30
Tom Rothamel e0fd979c54 Bump version. 2024-03-05 01:39:20 -05:00
Tom Rothamel 60eaa0877b doc: Fix incorrect caveat. 2024-03-04 22:45:05 -05:00
Tom Rothamel 1a30d4dd8e doc: Credits and sponsors. 2024-03-04 21:13:46 -05:00
Tom Rothamel dcbfe5ce0d doc: Document changes from renpy-build. 2024-03-04 21:03:04 -05:00
Tichq 85b71f2295 fix: nvl_hide transition 2024-03-04 20:59:39 -05:00
Tom Rothamel 1ee2ee468f Undocument gl_powersave = "auto".
It hasn't been supported for a while.

Fixes #5387.
2024-03-04 20:57:41 -05:00
Tom Rothamel b239050801 Merge pull request #5382 from mal/snap-back-fix
Avoid trying to snap when not snapping
2024-03-04 20:54:28 -05:00
Tom Rothamel b7abc2bbc9 doc: Changes. 2024-03-04 20:53:39 -05:00
Tom Rothamel 51b5df3ea6 Documentation. 2024-03-04 00:53:13 -05:00
Tom Rothamel 8816700e78 font: Avoid translating the rotated glyph. 2024-03-03 21:18:14 -05:00
Tom Rothamel b29b132245 font: Fix the rotation of glyphs when computing bounds. 2024-03-03 20:38:17 -05:00
Tom Rothamel c049a5cff2 text: Get text metrics through harfbuzz.
This makes it much more straightforward to get the vertical metrics,
when those are required.

Harfbuzz seems to place underlines a bit differently, but since it
doesn't look bad, this is acceptable.
2024-03-02 02:59:07 -05:00
Tom Rothamel 74cd45f434 text: Improve some terminology.
Most notably, x_offset was used for both harfbuzz's offsets, and
for the amount that Ren'Py adjusted text to match drawable to
virtual layout.

Also make clear that the names refer to horizontal text, and
are reversed for vertical text.
2024-03-01 22:47:53 -05:00
Tom Rothamel 123b3bfa1d Add robustness to shader errors being in any encoding. 2024-02-29 22:30:34 -05:00
Tom Rothamel f3f67cab04 Correct underline and strikeout when glyph.advance is non-integer.
Fixes #5332.
2024-02-29 21:08:36 -05:00
do10HM c8175ea75a Fix typo in code example 2024-02-26 20:42:19 -05:00
Tom Rothamel 1754fdd458 lint: Avoid erroring out due to incomplete images.
It's possible to have an an image (in this case, a layered image)
that isn't complete at runtime, but is at runtime. These shouldn't
cause errors when unknown attributes are used - that's the creator's
problem.
2024-02-26 20:39:58 -05:00
Mal Graty 8a7daec3bc drag: Avoid trying to snap when not snapping 2024-02-26 18:09:32 +00:00
Tom Rothamel 097e680064 doc gen: Generate documetation for cython w/o :args:.
Per discussion on #5356.
2024-02-24 21:52:55 -05:00
ImJustAQ d57ea734cb Fix typos 2024-02-23 20:53:04 -05:00
Tom Rothamel 5a4a320f49 Remove symlinks when opening files in the editor.
Fixes #5379.
2024-02-23 20:41:55 -05:00
Tom Rothamel 3898c1ed32 atl: Warn the user when a spline is given the wrong type.
Fixes #5367.
2024-02-21 21:09:29 -05:00
Tom Rothamel abbbd7bfaf Actually use the renios interface package.
Not just import it.
2024-02-20 01:53:23 -05:00
Tom Rothamel 2dc533170d Use a renios-specific text-mode interface object.
Fixes #5372.
2024-02-19 20:54:45 -05:00
Tom Rothamel 6226014005 Allow weakrefs to be pickled.
Or rather, allow them to be pickled, but then broken during pickling.

Fixes #5365.
2024-02-19 02:05:54 -05:00
Tom Rothamel e596f42338 launchjer: Only delete template files that exist.
Fixes #5368.
2024-02-19 01:55:36 -05:00
Tom Rothamel f4b3f14f13 Allow blur == 0, and clamp blur to >= 0.
Fixes #5369.
2024-02-18 22:10:02 -05:00
Tom Rothamel 14595ec106 Revert "Relax what Ren'Py considers to be a keyword."
This reverts commit e29854e0b4.
2024-02-17 23:19:06 -05:00
Tom Rothamel 4d3b8dd790 Revert "Document image name specific keywords."
This reverts commit 6a9a0c5d59.
2024-02-17 23:18:56 -05:00
Tom Rothamel 6a9a0c5d59 Document image name specific keywords. 2024-02-16 22:16:48 -05:00
Tom Rothamel e29854e0b4 Relax what Ren'Py considers to be a keyword.
Names that Ren'Py uses in other places (like image) are illegal
becase those names are keywords, when there's no need to be. So
this removes most keywords, and makes other words only keywords
when used in image specifiers.

This is largely informed by the way the language has been evolving
to mostly use Python names as keywords, and also by the way Python
now has some soft keywords.

Per #5366.
2024-02-16 22:08:11 -05:00
Tom Rothamel cf3163d37b Adding a new focus should cause the focus to update.
Fixes #5358.
2024-02-15 22:48:50 -05:00
Tom Rothamel 609930bedb Mark newly created transforms as unique.
In the various layer transform functions. This is a speedup, and also
a somewhat hacky fix - as it means the transform will be used, rather
than copied, and hence the state available to be propagated.

Fixes #5358.
2024-02-14 01:46:05 -05:00
Tom Rothamel d779f385d9 When processing at-lists, check for ATL after transforms. 2024-02-14 01:45:57 -05:00
Dipesh Aggarwal 8ba903c319 Update transitions.rst 2024-02-13 10:05:50 -05:00
Tom Rothamel d49f402ad9 Hide transient replaced text with "replaced", not "hide".
Fixes #5351.
2024-02-12 22:47:12 -05:00
Tom Rothamel b04e8c6838 Add an API to change the event used to hide a transient displayable. 2024-02-12 22:46:58 -05:00
Tom Rothamel 9ae3d31d53 Remove debug print. 2024-02-11 23:13:17 -05:00
Tom Rothamel 40a8869842 Use the new texture functions in Model. 2024-02-11 14:17:09 -05:00
Tom Rothamel 713d56021c Add renpy.display.im.render_for_texture.
An internal API that's used to grab a GL2Texture, if possible, and
a Render if not.
2024-02-10 23:20:01 -05:00
Abdul 51caec89d1 Fix typos 2024-02-10 15:34:24 -05:00
Abdul 21ebaaa633 Fix typos 2024-02-10 15:33:55 -05:00
Tom Rothamel 7072ca6d6e fetch: Allow fetch to take params.
To make it easier to just pass GET parameters to a website, without
having to remember the right way to encode them.
2024-02-10 15:26:12 -05:00
Tom Rothamel 3d1d42f856 Make renpy.fetch work in more places.
It now works:

* During the init phase.
* Inside an interaction.
* And as before, outside an interaction.
2024-02-10 15:26:03 -05:00
Tom Rothamel 634ff223a0 doc: Recent changes. 2024-02-09 23:32:36 -05:00
Tom Rothamel 6b379eb1a7 live2d: Automatically adjust config.max_texture_size.
To prevent live2d textures from being loaded small.
2024-02-09 22:22:18 -05:00
Tom Rothamel 43dcd36d45 live2d: Directly use unoptimized textures.
Unoptimized means that we don't have transparent pixels cropped
out. This is the format live2d expects, and so using it will
ensure that the texture can be used directly avoiding a
render-to-texture.
2024-02-09 22:22:12 -05:00
Tom Rothamel 5e14531909 Rename config.fbo_size to config.max_texture_size, and doc.
Some games want to use very large textures in live2d, so this needs
to be available.
2024-02-09 22:16:17 -05:00
Tom Rothamel 84eb4303f9 Allow template games to work with missing .rpy files.
Fixes #5342.
2024-02-05 21:36:52 -05:00
Tom Rothamel fb2e9d49b5 Fix the documented names of build.time and build.info. 2024-02-05 18:31:40 -05:00
Tom Rothamel 9e922b23ea update: Include the current version when fetching the channels URL.
This will let the server be able to choose to offer a different
set of downloads based on what version of Ren'Py is in use.
2024-02-03 12:09:34 -05:00
Gouvernathor dd740a8b95 Fix ukr translation
fixes #5333
See c2c094fbf6 for the regex
2024-02-03 18:08:30 +01:00
Tom Rothamel fc89fc4c05 update, py2: Monkeypatch os.makedirs, so 7.7 can update.
This lets 7.7 work despite calling os.makedirs with exist_ok=True.
2024-02-01 18:52:13 -05:00
Tom Rothamel 50f912e9ca update, py2: Make the updater py2 compatible.
By removing the use of exist_ok in os.makedirs.
2024-02-01 18:23:14 -05:00
iivusly 96ccfe1028 Update chromeos.rst spelling mistakes 2024-02-01 13:18:33 -05:00
Tom Rothamel fefa4c07ed Document the updater changes. 2024-01-31 23:39:03 -05:00
Tom Rothamel 559343a591 update: Only accept identity encoding.
The streaming downloader can't handle non-identity encodings, and
the rpu format won't benefit from it anyway.

This also adds a timeout.
2024-01-31 23:11:33 -05:00
Tom Rothamel 56b07a6ab0 distribute: Write update.ecdsa in binary mode.
This fixes a problem on Windows where the file was being signed
in binary mode, but written in text mode, preventing the update
from proceeding.
2024-01-31 22:24:01 -05:00
Tom Rothamel 272f0819fb Add _scene_show_hide_transition to the list of non-builtins.
Fixes #5321.
2024-01-29 22:52:05 -05:00
Tom Rothamel c3f38087ab Remove the build cache.
This was only used for building Ren'Py, and mostly used because
building atom took forever. With RPU updates, this causes problems,
so I'm removing it.

Fixes #5315.
2024-01-29 08:56:31 -05:00
Tom Rothamel 75b49e7f24 doc: Typo in changelog. 2024-01-28 11:06:30 -05:00
Tom Rothamel 318fd0e96e Update fix branch, start new master branch. 2024-01-27 22:21:15 -05:00
Tom Rothamel 259fa14f8c Deal with transparent animated presplashes.
Fixes #5313.
2024-01-27 00:33:52 -05:00
Tom Rothamel 0a5cadc008 Merge pull request #5312 from mal/fix-rollback-a-little-more
Ensure that all checkpoints are tracked
2024-01-26 19:25:06 -05:00
Mal Graty d684670e6a rb: Ensure that all checkpoints are tracked
Once the hard_rollback_limit is exceeded, hard checkpoints are added to
the number of blocked checkpoints, ensuring that when totalled limit and
block counts total the number of hard checkpoints currently in the log.

Now that the entire log is counted, it makes it safe to count hard
checkpoints out of the log, first from the blocked count, and then from
the limit count, never dropping below zero.
2024-01-27 00:13:20 +00:00
Andy_kl 951e59b1f5 lint: Fix language statisitcs count for TranslateSay nodes. 2024-01-26 21:33:48 +04:00
Mal Graty 5aff29acaf Fix compat for transitions_use_child_placement
Fixes #5309.
2024-01-26 11:39:36 +00:00
Tom Rothamel 12759d454e Fix circular import. 2024-01-25 23:01:49 -05:00
Tom Rothamel b2720b81b7 On read, simplify the position type to int, absolute, or float.
If possible (when not mixing types).
2024-01-25 22:56:24 -05:00
Tom Rothamel 181247a8c0 Fix crop_relative False.
Fixes #5307.
2024-01-25 22:25:51 -05:00
Tom Rothamel 14355c457f Always call absolute.compute_raw.
Fixes #5306.
2024-01-25 18:22:58 -05:00
Tom Rothamel cf6312c40d Pass Live2D style properites to a copied displayable.
Fixes #5302.
2024-01-25 00:45:40 -05:00
Tom Rothamel 825b3bd665 Prevent divide by 0 if euler-slerping similar angles.
Prevents #5305, assuming it's just bad luck.
2024-01-24 23:11:51 -05:00
Tom Rothamel 2e7af86757 Merge pull request #5304 from mal/translate-say-predict
Fully prep for prediction in TranslateSay
2024-01-24 19:36:01 -05:00
Mal Graty ab6f4a78a4 Fully prep for prediction in TranslateSay
By calling up to the Say class which holds the logic for dealing with
say attributes and other aspects of Say statements which we need to
proxy though.
2024-01-24 21:27:50 +00:00
Tom Rothamel c74871a414 Merge pull request #5283 from Elckarow/Elckarow-doc-periodic-callbacks
doc `periodic_callbacks` rather than `periodic_callback`
2024-01-23 21:22:54 -05:00
Tom Rothamel 4b7183188d Merge pull request #5300 from mal/translate-say-scry
Fix TranslateSay scrying
2024-01-23 13:09:05 -05:00
Mal Graty 7d2ab0d5cc Scry correctly from TranslateSay nodes 2024-01-23 17:47:03 +00:00
Mal Graty df9491fc05 Let TranslateSay node recognise themselves 2024-01-23 17:38:31 +00:00
Tom Rothamel 3a3d271404 rapt: Defer onPause ending until save is finished.
This will hopefully fix #5292, which might have been caused by onPause
ending while the save was still happening.
2024-01-23 02:37:23 -05:00
Tom Rothamel 77e4e90061 rapt: Use finishAndRemoveTask to end the process.
As we do in core.py.
2024-01-23 02:35:39 -05:00
Tom Rothamel 8f33273c36 Forcibly terminate Ren'Py on Android.
This prevents crashes in cleanup code that runs after Python exits.

Fixes #5280.
2024-01-22 22:23:45 -05:00
Tom Rothamel a007bfca59 Get the translation ids of TranslateSay statments.
Fixes #5298
2024-01-22 01:22:35 -05:00
Tom Rothamel 01e6522090 Prevent a crash when the projects directory isn't set.
Fixes #5299.
2024-01-22 00:50:28 -05:00
Tom Rothamel 8f5ea6c785 Minor fixes.
* Fix incorrect variable name in documentation.
* Fix valid-but-wrong indentation.
2024-01-21 18:28:45 -05:00
Tom Rothamel c771322c31 Add some debugging to going to sleep on Android and iOS. 2024-01-20 22:47:32 -05:00
Tom Rothamel 4706495e17 Avoid including a screenshot with the android saves.
This prevents things from blocking if it's no longer possible to
draw.
2024-01-20 01:36:29 -05:00
Tom Rothamel 287b9a227b Fix backwards compatibility of ParameterInfo. 2024-01-19 23:16:15 -05:00
Tom Rothamel 18937ddba0 Fix looking up SayTranslations in the None language.
Fixes #5281.
2024-01-19 01:13:41 -05:00
Tom Rothamel c4674da478 Document arc and ellipse aren't implemented.
In Render.canvas.

Per #5291.
2024-01-18 23:11:57 -05:00
Tom Rothamel 01c9d148a1 Allow Ren'Py to install Cubism 5.
It's not supported yet, but this will allow it when it's the main
version.

Fixes #5287.
2024-01-18 22:55:56 -05:00
Tom Rothamel ddbe005427 Merge pull request #5290 from mal/keep-rollback-sync
Prevent negative rollback counters
2024-01-18 22:29:09 -05:00
Mal Graty 96efe0277d Prevent negative rollback counters
As we pop from the end of the log we decrement the limit until it is
exhausted, before continuing to decrement the block count as further
entries are popped in an effort to find a place to end rollback.
2024-01-19 00:21:52 +00:00
Elckarow 89b85b6a24 Update config.rst 2024-01-18 03:31:24 +01:00
Tom Rothamel 72febe4b1b Use the region to decide simplified vs traditional Chinese.
Simplifed for PRC and Singapore, Traditional for Hong Kong,
Taiwan, and Macao. (Based on some googling.)

Fixes #5282.
2024-01-17 19:26:20 -05:00
Tom Rothamel e91f753b16 Properly compute the inverse of the live2d scaling matrix.
Fixes #5278.
2024-01-17 01:07:02 -05:00
Ren'Py Bot 4a9acf6f7a Merge branch 'fix' 2024-01-16 04:30:57 -05:00
Tom Rothamel 60322da470 Use the local version of layers.
Fixes an issue that would prevent transitions (especially the move
transition) from terminating.
2024-01-16 02:25:34 -05:00
Tom Rothamel c53ea5e6a8 Mild improvements to #5270. 2024-01-16 01:13:09 -05:00
Tom Rothamel 8481aea8f1 Prioritize fullscreen movies over movies in displayables.
Because the former will be shown, and the latter will not.
2024-01-15 22:37:51 -05:00
Tom Rothamel f1222ae358 Merge pull request #5129 from renpy/pause-predict
doc: Clarify renpy.pause's parameters
2024-01-15 21:12:52 -05:00
Tom Rothamel 8aadaf5fb3 Merge pull request #5270 from mal/limit-transform-event-propagation
Filter events propagated through containers
2024-01-15 21:07:04 -05:00
Tom Rothamel 2f3e8193aa Change the type of offset to absolute. 2024-01-15 21:03:46 -05:00
Tom Rothamel 941ff812ef Merge pull request #5275 from mal/fix-spline-interpolation-types
Retain correct types during spline interpolation
2024-01-15 20:55:10 -05:00
Tom Rothamel 269c50c815 Merge pull request #5273 from mal/lint-font-none
lint: Allow emoji_font to be None
2024-01-15 20:16:21 -05:00
Tom Rothamel 270f0f36be webaudio: Fix unpause.
Fixes #5276.
2024-01-15 20:12:39 -05:00
Mal Graty 5f8485a6da Cheat align types to allow spline interpolation 2024-01-15 23:01:07 +00:00
Mal Graty 9e28e89272 Retain correct types during spline interpolation 2024-01-15 23:01:07 +00:00
Mal Graty 89ab6bc81f Revert "Simplify ALIASES and nuke dualangle_or_float_or_none"
This reverts commit 8d5b1b55c0.
2024-01-15 23:01:07 +00:00
Mal Graty 0ed5eeec9e lint: Allow emoji_font to be None 2024-01-15 21:41:17 +00:00
Mal Graty 225d4fa337 Filter events propagated through containers 2024-01-15 20:36:13 +00:00
Gouvernathor aa006323eb doc: fix typo in e19a29f #5268 2024-01-15 20:49:59 +01:00
Tom Rothamel eeedd53371 Force MultiBox to adjust times.
Fixes #5266.
2024-01-14 19:40:51 -05:00
Tom Rothamel cb21214076 Return a correct value from get_change.
Fixes #5266.
2024-01-14 18:53:44 -05:00
Gouvernathor 0d9f0a2267 doc: typos incompat
the first one is a common mistake (it sounds the same in czech)
2024-01-14 19:26:26 +01:00
Tom Rothamel 4ffb254e1c Include downloader in docs. 2024-01-14 11:53:46 -05:00
Tom Rothamel 5f77630b7e doc: Credits, changelog, deprecations. 2024-01-14 11:50:18 -05:00
Tom Rothamel c1f906fcba Fix an issue computing store changes.
It would trigger if there were previous changes, but no new changes.

The traceback is in a comment in #5263, but it doesn't fix the main
issue.
2024-01-14 10:45:27 -05:00
Tom Rothamel 46cc847ca2 doc: Sponsors. 2024-01-14 02:17:01 -05:00
Tom Rothamel 38d90a1ef0 Generate file: urls; Remove the schinese specific URL.
Use urllib functions to ensure file urls are quoted properly.

Remove the schinese url, because it can overwrite the main URL, and
it'll be rarely used now.
2024-01-14 01:06:54 -05:00
Gouvernathor fc45b09ed3 Make the doc URLs local when it's available (#5082)
Rather than using the web copy.

---------

Co-authored-by: Tom Rothamel <pytom@bishoujo.us>
2024-01-13 23:51:26 -05:00
Tom Rothamel 63cb631d52 Retain_after_load should disable greedy rollback.
To prevent non-retain_after_load rollbackness from overwriting
retained data.
2024-01-13 18:22:12 -05:00
Tom Rothamel 03bddfe289 Doc fix. 2024-01-13 15:45:53 -05:00
Gouvernathor 0959631c44 doc: update pause 2024-01-13 21:45:44 +01:00
Tom Rothamel f695788eb8 Remove debug print. 2024-01-13 15:17:58 -05:00
Tom Rothamel 966613f7db Add config.layer_transforms.
The new config.layer_transforms variable allows you to supply
a list of transforms that will be applied to all layers, or to the
combination of all layers in config.layers.

The intent is to prevent people from having to repeat transforms
in camera statements.

Fixes #4562.
2024-01-13 14:58:11 -05:00
Tom Rothamel e576d4d47a renpy.display_menu should take layer as an argument, not from scope.
This is my go at improving #5261, which improves on #4848.

Closes #5261.
2024-01-12 23:39:04 -05:00
Tom Rothamel 9f5b3ffb4b Merge pull request #4848 from renpy/nvl-menu-layer
Enable the _layer parameter for the menu statement and add config.nvl_choice_layer
2024-01-12 21:43:54 -05:00
Tom Rothamel 44d62b4b3e Merge pull request #4924 from mal/alpha-mask-shader
Implement AlphaMask using shader
2024-01-12 21:42:43 -05:00
Tom Rothamel fd96903e03 live2d: Fix create common.
Fixes #5256.
2024-01-12 21:34:49 -05:00
Andy_kl 6b3bde2f15 Update Russian translation. 2024-01-13 01:09:15 +04:00
Tom Rothamel bad18bbd36 doc: Include websockets in the changelog. 2024-01-12 01:01:57 -05:00
Tom Rothamel 398d1aa4b0 doc: Changelog. 2024-01-11 00:19:31 -05:00
Tom Rothamel 29c22ba0aa Changelog and fix translations. 2024-01-10 23:46:54 -05:00
Tom Rothamel 461b9ed8de doc: Changelog. 2024-01-10 23:43:35 -05:00
Tom Rothamel 45c8af418a Merge pull request #5209 from symegac/master
Danish translation of the launcher and The Question
2024-01-10 23:43:19 -05:00
Tom Rothamel ad43a1e39d Document the Android downloader. 2024-01-10 22:37:36 -05:00
Tom Rothamel 9a1a3b8235 Add the dependencies for chromeos. 2024-01-10 21:50:06 -05:00
Tom Rothamel 537569477e Further translation fixes. 2024-01-10 10:27:38 -05:00
Tom Rothamel dbecaefad6 Swap release names. 2024-01-10 10:14:50 -05:00
Tom Rothamel 4b9b22c009 Add names for 8.2 and 7.7. 2024-01-09 23:25:15 -05:00
Tom Rothamel cc7cde5100 Fix translations. 2024-01-09 23:24:35 -05:00
Tom Rothamel 077bebea95 Update piglatin translation. 2024-01-09 23:23:03 -05:00
Tom Rothamel 6f5558c160 Correct for translation change. 2024-01-09 23:09:16 -05:00
Tom Rothamel 360dd86310 Remove mention of rollback side in the help screen.
Fixes #5254.
2024-01-09 22:47:26 -05:00
Tom Rothamel d26c052da5 Merge pull request #5252 from renpy/fix-polar-anchor
Fix polar anchor and some ATL docs improvements
2024-01-09 22:43:30 -05:00
Gouvernathor ecd1e59b41 Do the same with align's getter 2024-01-10 00:14:14 +01:00
Gouvernathor 232ad293a2 Recommend not using the weird behavior 2024-01-09 20:44:48 +01:00
Gouvernathor 2e79eb49ce Make the xycenter getters more honest 2024-01-09 20:05:36 +01:00
Tom Rothamel 6845c59738 Merge pull request #5251 from mal/web-cli
Add CLI for web builds
2024-01-09 01:47:18 -05:00
Gouvernathor 546942640a More documentation tweaks 2024-01-09 00:32:09 +01:00
Mal Graty af6721c5ef launcher: Add CLI for web builds 2024-01-08 23:12:57 +00:00
Gouvernathor 2184e27214 Doc pass on polars 2024-01-08 23:25:07 +01:00
Gouvernathor cc14f31b64 Simplify get_xycenter to nonexistence 2024-01-08 23:20:21 +01:00
Gouvernathor 6830882bbe Remove never-read variables 2024-01-08 22:54:49 +01:00
Gouvernathor ef8a1b6ee3 Add anchor polar to the condition and kick xaround 2024-01-08 22:49:52 +01:00
symegac f291cd8bd2 Updated translation of The Question 2024-01-08 16:44:17 +01:00
symegac c2711b26f7 Updated translation of launcher 2024-01-08 16:43:12 +01:00
symegac 8ad22f6a0a Merge branch 'renpy:master' into master 2024-01-08 16:41:51 +01:00
Tom Rothamel 3e659a58e3 doc: Rewrite the documentation for get_side_image. 2024-01-08 02:37:03 -05:00
Tom Rothamel f294b9e936 Merge pull request #5250 from renpy/3994-misc
Misc lints
2024-01-08 00:48:14 -05:00
Tom Rothamel 22e1e892a1 Merge pull request #5249 from renpy/doc-file
Use the :file: role a lot
2024-01-08 00:47:11 -05:00
Tom Rothamel dccb7b2af4 Merge pull request #5248 from renpy/cleanup-dualangle-and-aliases
Simplify renpy.transform.ALIASES and nuke dualangle_or_float_or_none
2024-01-08 00:47:04 -05:00
Tom Rothamel c068640633 Force _side_image_attributes to non-None.
The last commit is the real fix, but this fixes #5027, fixes #5242.
2024-01-07 22:38:05 -05:00
Tom Rothamel 251b4f7e88 Fix an interaction between RollbackLog.complete and Context.make_dynamic.
In the case where:

* A new Rollback begins.
* A variable has it's value changed.
* A new context is created, with rollback disabled.
* The variable is made dynamic.
* The variable is set back to it's original value.
* A Rollback is completed.

It would be possible to have a variable that was set and not rolled
back. To fix this, the Rollback is completed on entering a context,
and a rollback can be completed multiple times.

This manifested on _side_image_attributes, so this adresses #5242
and #5207.
2024-01-07 22:34:36 -05:00
Gouvernathor d2aa3b9fbc Hotfix polar anchor 2024-01-08 01:18:40 +01:00
Gouvernathor 239b8c0022 Moar (and whitespace)
I didn't do them all, but still quite a number
2024-01-08 00:41:56 +01:00
Gouvernathor c1c5cc4cf7 Merge branch 'master' into doc-file 2024-01-07 23:20:29 +01:00
Gouvernathor 8d5b1b55c0 Simplify ALIASES and nuke dualangle_or_float_or_none
DualAngle.from_any is already dualangle_or_float, and anchorangles (if not None) cannot be a tuple of None, it can only be a tuple of float (from older versions of renpy) or DualAngle
ALIASES's values were never read, because the only read values of PROPERTIES are those also present in diff2_properties or diff4_properties, both of which are only populated by add_property
2024-01-07 21:42:18 +01:00
Tom Rothamel f3652281a2 doc: Fix missing word. 2024-01-07 14:28:08 -05:00
Tom Rothamel 3504ae1bd8 bubble: Document how transforms work with the bubble screen. 2024-01-07 01:49:36 -05:00
Tom Rothamel 564cc0e0cd Screen hide and replace events run to completion.
Even if the same screen is shown again. This makes it possible to use
transform events with screens that may be shown again immediately,
like the say or bubble screens.
2024-01-06 23:51:58 -05:00
Tom Rothamel 582e467f22 Fix out-of-date comment. 2024-01-06 21:35:46 -05:00
Tom Rothamel 5d54d6f2d8 It helps to save before committing. 2024-01-06 21:29:12 -05:00
Tom Rothamel 8b4fdf015a Supply the "replace" (rather than "show") event to say screens after {w}.
This makes it possible for screens (like the bubble screen) to
have one transition on initial show, and another on clicks through
{w}.

Fixes #4735.
2024-01-06 21:26:10 -05:00
Tom Rothamel 6a651ff299 Fix modal and tts not working properly together.
The issue was that tts would read the modal screen and everything
below it, not above it. (This had to do with the change in order
for layers a while back.)
2024-01-06 19:25:26 -05:00
Tom Rothamel 423b8baf92 Improve the tts-accessibility of the accessibility menu.
Fixes #4499.
2024-01-06 19:10:52 -05:00
Tom Rothamel e19a29f20a Pass transform events to children of containers.
This makes it possible of the children of containers to respond
to a button changing state differenty. Fixes #4578.
2024-01-06 18:47:34 -05:00
Tom Rothamel 7dc7184fdb Document that MouseMove may not work.
Closes #4023.
2024-01-06 18:25:26 -05:00
Tom Rothamel e1ed5ad6f1 Repeat MouseMove over 4/60ths of a second.
In case a mousemove on button release overrides it.
2024-01-06 18:24:07 -05:00
Tom Rothamel 01ffb18b4f Clean up, change, and changelog #5245. 2024-01-05 23:36:14 -05:00
Tom Rothamel e4b78f47d1 Merge pull request #5245 from Neyunse/continue
action Continue(): re-PR
2024-01-05 23:16:57 -05:00
KagariSoft-Dev 2dad3acf35 restore: the Update the ShowMenu doc entry 2024-01-06 01:01:53 -03:00
KagariSoft-Dev 565a2da69e restore doc: Fix gui documentation typo. 2024-01-06 01:01:02 -03:00
KagariSoft-Dev f127d3eda6 minor fix 2024-01-06 00:49:31 -03:00
KagariSoft-Dev 2773c0dbed fixed year 2024-01-06 00:48:41 -03:00
ねゆんせ 02fc331a2c action Continue(): re-PR 2024-01-06 00:38:21 -03:00
Tom Rothamel 69d3a85597 Add ruby_line_leading.
This allow lines with ruby to get additional leading, while
non-ruby lines do not.

Fixes #4997.
2024-01-05 01:48:08 -05:00
Tom Rothamel 113a60faa5 Update the copyright for 2024. 2024-01-05 00:31:12 -05:00
Tom Rothamel d37242fd38 Fix spanish translation. 2024-01-05 00:29:51 -05:00
Tom Rothamel bf0993097a Only predict_show a screen by name when not transient.
This fixes #4999 while trying to keep #4834 fixed. There is a
very minor behavior changes here:

When a screen has been called, renpy.showing will not return
true for a screen's name if the screen has a tag.

This seems fine, because renpy.showing is only documented to work
with tags, not names - working with screens by name has been the
job of renpy.get_screen. So it's only a change to undocumented
behavior.
2024-01-05 00:08:00 -05:00
Tom Rothamel ee06cbca48 Always pass the tag to predict_show, not the image/screen name.
This was always the case for normal images, but screens pass the
screen name as name. This could cause a problem (#4999), where
a transient screen going away would leave the tag (but see the next
commit.)
2024-01-05 00:02:13 -05:00
Tom Rothamel b0a7b3a6d8 Merge pull request #5243 from Moshibit/master
Update Spanish trasnlation
2024-01-04 22:06:51 -05:00
Tom Rothamel 926ca22963 web: Remove logging print. 2024-01-04 21:51:51 -05:00
Gouvernathor 62d6e50a9e doc: tweaks, typos, whitespace, use the exc and file roles
fixes #5227
2024-01-05 00:14:06 +01:00
Moshibit 1fd3aa2c5d Update launcher.rpy 2024-01-04 12:32:09 -06:00
Moshibit 702c6e1f75 Update screens.rpy 2024-01-04 12:12:40 -06:00
Moshibit 3b83d45544 Update developer.rpy 2024-01-04 11:56:44 -06:00
Moshibit c912a451ae Update common.rpy 2024-01-04 11:53:26 -06:00
Tom Rothamel 45d952fc4e Make _vol public. 2024-01-03 19:26:20 -05:00
Tom Rothamel 6b87244193 Add a fallback mode for f-string style interpolations.
This is intended to allow creators to migrate their games
piecemeal.

Per #5236.
2024-01-03 01:15:29 -05:00
Tom Rothamel 840f0e8de9 Acclelerate the most common formatting case.
A simple variable, which is just looked up and doesn't need
to be evaled all the time.
2024-01-03 00:51:12 -05:00
Tom Rothamel 9df57291d6 Add the ability to reset preferences.
Fixes #5000.
2024-01-03 00:19:34 -05:00
Tom Rothamel 0273af7c4f Run default persistent.var = ... statements on persistent._clear.
This adds support for re-running default statements in the special
namespaces, and then enables that for persistent. It also adds a
call to renpy.execute_default_statement in persistent._clear.

Per #5000.
2024-01-02 23:48:31 -05:00
Tom Rothamel 9c6bf97f21 Merge pull request #5240 from qTich/fix/translatesay-predict
fix: `TranslateSay.predict`
2024-01-02 22:30:02 -05:00
Tichq 2160e8d31f fix: TranslateSay.predict 2024-01-03 05:57:06 +03:00
Gouvernathor 0b1c017150 doc: fixes and markup improvements 2024-01-02 23:45:03 +01:00
Mal Graty d1452e50c3 Treat string interpolations as Python expressions (#5036)
* Move away from Formatter for string interpolation

As we were already overriding the C parser, the only advantage we were
taking advantage of was the C field name parser. We continue to use this
but by moving away from the string.Formatter template we can ignore
a bunch of things that we aren't interested in (such as which fields
from the supplied scope were used).

* Whitespace

* Manage conversion flags with sets

* Update interpolation parser to support expressions

This change allows strings and nested brackets, braces, and parens to be
within an interpolation without breaking out. It also allows conversions
to be specified before the format (in line with Python), with graceful
fallback to ensure existing interpolations continue to work as intended.

* Treat interpolation as Python expressions

* Add support for debug interpolations

This apes fstring functionality where a trailing = symbol is used to
denote that the expression part of an interpolation should be included
with the output and, when no conversion or format are specified, imply
the result should be run through repr.

* Update interpolation documentation for expressions

* Add interpolation expressions to changelog
2024-01-01 23:34:44 -05:00
Gouvernathor 583034a53a Better document conflicting properties (#5235)
doc: better document conflicting properties
2024-01-01 21:12:49 -05:00
Ren'Py Bot c2daeca774 Merge branch 'fix' 2024-01-01 20:17:55 -05:00
Tom Rothamel fb15ba501e Merge remote-tracking branch 'origin/publish-position'
Fixes #5234.
2024-01-01 20:17:02 -05:00
Tom Rothamel 30dd810b3a Merge remote-tracking branch 'origin/movetrans-warpers' (#4998) 2024-01-01 20:15:34 -05:00
Gouvernathor ba8f13af9c Publish the position type in the default store 2024-01-02 02:05:33 +01:00
Gouvernathor 82ccd35d48 Adapt the spline interpolation to the mixed position type (#5233)
* Patch and adapt interpolate_spline with mixed position type

* Tweak the code
2024-01-01 20:05:15 -05:00
Gouvernathor 147073eaf1 Various improvements around warpers (#4995)
* doc: clarify MoveTransition and add examples

* doc: various things loosely related to warpers
2024-01-01 19:57:35 -05:00
Tom Rothamel 9c272b9d45 atl: A few more documentaiton changes. 2024-01-01 18:34:00 -05:00
Tom Rothamel 4a53c80c3c atl: Organize the transition proprties. 2024-01-01 18:25:22 -05:00
Gouvernathor 851471373f Dual-angle fix for polar transform properties under the new position type (#5179)
* Change the type of xanchoraround and yanchoraround

* Try to implement anchoraround

* Avoid calling position_or_none at all

type(spline[-1]) comes from before 5123
It should work until a deeper examination completely clears the issue.

* DualAngle solution to the mixed-types polar anchor system

* Factorize the common end part of the setters

* Factorize the common first part of the getters

* Allow the common first part to be cached/skipped

* Hasten set_anchorradius without slowing down set_anchorangle

* Kick out the former helper functions

* Inner documentation

* Convert polar pos to using absolute and positions without double angles

Basically reuse the architecture from polar anchor, but convert everything to absolute as soon as possible and avoid duplicating everything (including the angle) between an absolute and a relative metric.
I think the issue could have been solved by removing the "divisor" thing and have absolutes always returned, but I'm not sure.
To be tested, maybe the divisor thing was necessary for interpolations of pos inside a container of interpolated size.

* Simplify calculations when the polar vector is 0

The exact same skip can't be done for anchor, because the two radii are independent and the get_anchorradius calculates them both
2024-01-01 17:09:26 -05:00
Tom Rothamel 8d170c45ab Allow webinput in fullscreen mode.
Fixes #5231.
2024-01-01 16:29:23 -05:00
Tichq ca7641be56 feature: search control before initialization (#5222)
feature: search control before initialization

Currently, the search can be modified, but the initial initialization of the archives is done with the initial paths.
2024-01-01 11:11:11 -05:00
Ren'Py Bot 5a562cc660 Merge branch 'fix' 2024-01-01 04:30:56 -05:00
Tom Rothamel 95bb3a108d web: Enable the anisotropy extension for webgl.
Fixes #5230.
2024-01-01 01:12:21 -05:00
Tom Rothamel 5db965a709 Resume the audio context when it's not running.
Most notably, when it goes into the "interrupted" state after
an iOS devices goes to sleep.

Fixes #5027.
2024-01-01 00:05:26 -05:00
Tom Rothamel 8b5cff47c4 Remove last PY2 check. 2023-12-31 22:24:19 -05:00
Tom Rothamel 5b1c251f3f Enable the new fullscreen api on python2. 2023-12-31 22:08:43 -05:00
Tom Rothamel 540a853d38 Re-enable fullscreen in safari.
The new approach seems to work well in Safari too.

Fixes #4988.
2023-12-31 21:52:35 -05:00
Tom Rothamel 6d4a104b8d web: Use renpy-specific fullscreen api.
This fixes issues with fullscreen, especially on mobile platforms
where the device can rotate while fullscreen is enabled. At the
same time, Ren'Py has been handling web-resize well.

So, we simply requestFullscreen on the html element, and let it
bring the window fullscreen, resizing the canvas as it does so.
2023-12-31 21:43:57 -05:00
Tom Rothamel 0d3e9c9358 Always enable the console in the question.
I use it a lot as a test game, so it makes sense to keep the
console available.

Also, cheat modes.
2023-12-31 21:43:22 -05:00
Tom Rothamel 2e73149782 Document that presplash webps can be animated.
Per #5004.
2023-12-31 16:40:37 -05:00
Tom Rothamel d3af25da6c Stop the music on load or rollback whenever the loop changes.
Fixes #4787.
2023-12-31 16:36:06 -05:00
Tom Rothamel 8412929688 Transitions use child placements.
Fixes #4867.
2023-12-31 15:54:02 -05:00
Tom Rothamel 4a8a991913 Fix typo. 2023-12-31 15:53:54 -05:00
Tom Rothamel 9b621e8b1f Allow inputs inside buttons to get KEY* events.
These were suppressed to help out Keymap (the key statement), but
doing su suppressed the events for Input as well.

Fixes #5205.
2023-12-31 12:18:04 -05:00
kyouryuukunn ada4635073 Merge pull request #5228 from kyouryuukunn/translate_japanese_231231
translate japanese 231231
2023-12-31 17:58:03 +09:00
kyouryuukunn 90840d3ccb translate japanese 231231 2023-12-31 17:41:29 +09:00
the66F95 2f38077f67 let a viewport/vpgrid respect the force_step argument of a used ui.adjustment (#4841) 2023-12-30 20:00:51 -05:00
Tom Rothamel 18eb94c673 Document command line tools.
Fixes #4257.
2023-12-30 11:14:58 -05:00
Tom Rothamel 81f932631c Scroll actions should only be sensitive if scrolling is possible.
Fixes #2702.
2023-12-30 00:24:21 -05:00
Tom Rothamel 40671c36e5 Allow an adjustment to restart the interaction when reaching limits.
This is required to support the next commit.
2023-12-30 00:23:46 -05:00
Tom Rothamel 73d96cf91b Incrementally maintain the image cache size.
Per #3381.
2023-12-29 23:12:13 -05:00
Tom Rothamel 83ef97dd53 Remove the pin cache.
Per #3381.
2023-12-29 22:32:59 -05:00
Tom Rothamel 45a3c60999 Allow inputs inside buttons to get KEY* events.
These were suppressed to help out Keymap (the key statement), but
doing su suppressed the events for Input as well.

Fixes #5205.
2023-12-29 00:14:32 -05:00
Tom Rothamel 42751a1fd9 Merge pull request #5210 from qTich/fix/android-load-archives
fix: loading sequence
2023-12-28 22:05:16 -05:00
symegac 7007b2a292 Merge branch 'renpy:master' into master 2023-12-28 23:16:36 +01:00
Ren'Py Bot f244d521be Merge branch 'fix' 2023-12-28 04:30:08 -05:00
Tom Rothamel 94d1b573e1 ffmedia: Return AVERROR_EOF for end of file.
Fixes #5207.
2023-12-28 02:14:21 -05:00
Tom Rothamel 9d0c347c0f ffmedia: Return AVERROR_EOF for end of file.
Fixes #5207.
2023-12-28 02:09:22 -05:00
Tom Rothamel d2f2022558 Do not encode source before compiling or returning.
Fixes #5213.
2023-12-27 23:25:58 -05:00
Tom Rothamel a90d563648 Merge pull request #5216 from renpy/fix-oldgame-merge
Fix incorrect old-game proccessing if file directory was Windows-styled path.
2023-12-27 22:04:31 -05:00
Andy_kl 59dbb7ac50 Fix incorrect old-game proccessing if file directory was Windows-styled path. 2023-12-27 23:54:27 +04:00
Tom Rothamel 03082f4ab5 doc: Add seealso. 2023-12-27 01:12:19 -05:00
Tom Rothamel cbf2d8fab0 Fix the sense of the defer_tl_scripts test.
Fixes #5211.
2023-12-26 22:03:40 -05:00
Tichq 1206508a2e fix: loading sequence
Loading the file from the archive inside `config.searchpath` on Android will be ignored, as the file is most likely also contained in `apk`.
2023-12-26 15:43:25 +03:00
symegac cbd2576e71 Fixed wording 2023-12-26 04:49:11 +01:00
symegac 7c1e71beb9 Fixed another small typo 2023-12-26 04:14:27 +01:00
symegac 2de93067c7 Fixed small typo 2023-12-26 04:10:31 +01:00
symegac ab5aa1a0e0 Removed stray comment and added period 2023-12-26 04:06:45 +01:00
symegac c67480b6d9 Added Danish translation of the launcher 2023-12-26 04:04:20 +01:00
symegac b9fb74bbc5 Removed TODO note 2023-12-26 03:55:12 +01:00
symegac 3aa3a3edb4 Added Danish to prefs and reordered langs 2023-12-26 03:51:38 +01:00
symegac b7e7a501f1 Added Danish translation 2023-12-26 03:49:45 +01:00
Tom Rothamel 71c52e96f4 Remove use of renpy.file (in favor of renpy.open_file).
Fixes #5201.
2023-12-25 00:00:57 -05:00
Tom Rothamel 97528f2b55 doc: That rapt requires JDK 21. 2023-12-25 00:00:34 -05:00
Tom Rothamel 9a60c796d6 rapt: Update translations. 2023-12-24 09:34:07 -05:00
Tom Rothamel eb7816f508 Merge pull request #5196 from kyouryuukunn/fix_warp_to_line
fix warp_to_line behavior
2023-12-23 22:09:51 -05:00
Tom Rothamel 94c5e4fa5f Remove uses of gui.button_text_properties.
Which duplicates gui.text_properties.

Fixes #5197.
2023-12-23 16:39:11 -05:00
kyouryuukunn ce791bdcf4 fix warp_to_line behavior 2023-12-23 18:01:12 +09:00
Tom Rothamel 0e616a52e3 Merge pull request #5191 from mal/improve-rollback-tracking
Track hard checkpoints that have been blocked
2023-12-23 00:18:42 -05:00
Tom Rothamel 0387f19dae Ignore the warp command line argument after it's been run once.
Fixes #5194.
2023-12-22 22:46:14 -05:00
Mal Graty cdd19ea7c4 Upgrade rollback blocks gracefully
Recalculates rollback_limit and rollback_block to ensure both values are
sane and reflect the current state of the log.
2023-12-22 11:26:40 +00:00
Mal Graty 89895ea29d Track hard checkpoints that have been blocked
This is necessary so they can be counted out as the log is truncated,
keeping rollback_limit accurate. This results in correct reporting from
renpy.can_rollback in the scenario where config.rollback_length has been
exceeded.
2023-12-22 11:26:40 +00:00
Tom Rothamel 8115ef96fb Merge pull request #5192 from qTich/fix/webaudio-broken-file
fix: filename after implementation `RWopsIO`
2023-12-22 01:14:37 -05:00
Tom Rothamel 519a0c56a4 doc: Android. 2023-12-21 23:23:50 -05:00
Tom Rothamel 2c6fba5fda rapt: Supply the version to the build process.
Fixes #5188.
2023-12-21 23:16:13 -05:00
Tichq f72f0e9a22 use: config.debug_sound in webaudio 2023-12-22 04:47:19 +03:00
Tichq 369471fd23 fix: filename after implementation RWopsIO 2023-12-22 04:40:09 +03:00
Tom Rothamel 2a62b88aeb Reduce the rollback length when the rollback log is popped.
Fixes #5041.
2023-12-21 00:45:51 -05:00
Tom Rothamel abe63137e7 Add back line removed incorrectly. 2023-12-21 00:45:34 -05:00
Tom Rothamel d847636c51 Clear out pending events on start.
Particularly, the start after a shift+R reload, where keyboard
events during the reload could be queued up.

Fixes #5187.
2023-12-20 22:47:31 -05:00
Tom Rothamel 7123215f9c Document renpy.register_statement's translation a argument. 2023-12-19 20:58:29 -05:00
Tom Rothamel 08261082c3 doc: TranslateSay. 2023-12-19 01:11:20 -05:00
Tom Rothamel c9ca6e6339 translatesay: Support generating translations. 2023-12-19 01:11:20 -05:00
Tom Rothamel 1045a85b97 translatesay: Lint support. 2023-12-19 01:11:20 -05:00
Tom Rothamel 2f11472982 translatesay: Minor fixes. 2023-12-19 01:11:20 -05:00
Tom Rothamel b580aef310 translatesay: Eliminate many EndTranslates. 2023-12-19 01:11:20 -05:00
Tom Rothamel c92757e769 translatesay: Replace Translate and Say with a single statement. 2023-12-19 01:11:20 -05:00
Ren'Py Bot 626351486e Merge branch 'fix' 2023-12-18 04:30:08 -05:00
Tom Rothamel fd65876e75 Do not call statement_callbacks on translate statements.
Most are internally generated, and so don't really feel like
they should trigger a callback.
2023-12-18 00:27:58 -05:00
Tom Rothamel 492d1a3b55 Add interning.
This interns certain common strings to save memory. Interned are
Lexer.names (which will get things like image attributes), and
simple cases of Say.who.

Per #3759.
2023-12-17 23:54:28 -05:00
Tom Rothamel 36568b72ea Avoid stripping PyExprs in Say. 2023-12-17 22:44:57 -05:00
Tom Rothamel c9278e6aad Merge pull request #5150 from renpy/lint-check_conflicting_properties
Lint check_conflicting_properties
2023-12-17 22:05:54 -05:00
Tom Rothamel 213a74cd90 Merge branch 'fix' into lint-check_conflicting_properties 2023-12-17 22:05:11 -05:00
Tom Rothamel 8187836d7f Allow shift+D to close the developer menu.
Close #5185.
2023-12-16 23:13:45 -05:00
Tom Rothamel a9520b96a1 doc: Template projects.
Finishes a sequence of commits that can close #3877.
2023-12-16 02:06:37 -05:00
Tom Rothamel 2cfef37844 Show template projects in the launcher.
And don't scan for templates in the old location.
2023-12-16 01:53:24 -05:00
Tom Rothamel 91859af328 Add creating a project from a template to the launcher. 2023-12-16 01:46:04 -05:00
Tom Rothamel 4fa61874eb Copy all files, not just generated ones. 2023-12-16 00:11:59 -05:00
Tom Rothamel 7de37450d4 launcher: Add the ability to make a new project from a template.
This reuses portions of the gui mechanism, but only updates the
most basic information, like the title and save directory, as
well as the translation-relate information.
2023-12-15 23:41:57 -05:00
Tom Rothamel 2b1888e0af launcher: Remove the ability to create legacy projects. 2023-12-15 22:32:12 -05:00
Tom Rothamel af4cf6509a Make new types unique. 2023-12-14 18:39:56 -05:00
Tom Rothamel f651702f0e Documentation can't be generated on python 2. 2023-12-14 18:38:24 -05:00
Tom Rothamel 30fe36010c Remove debug print. 2023-12-14 18:38:14 -05:00
Tom Rothamel 96e6975e9f Add a new defaultdict class.
This is similar to Python's collections.defaultdict, except it
participates in rollback.
2023-12-14 01:38:53 -05:00
Tom Rothamel 00ad151a23 Add the MultiRevertable class.
This makes it possible to have a class that is a child of
dict, det, or list, and is still a revertable object.

Per #4498.
2023-12-14 01:17:50 -05:00
Tom Rothamel dad92c5821 Improve the contrast of newly-generated games.
Fixes #5172.
2023-12-14 00:28:14 -05:00
Tom Rothamel 79f1d9f651 Restore accesibility to shift+A only.
Fixes #5177.
2023-12-13 21:21:18 -05:00
Tom Rothamel aeb3d4fb94 Draggable viewports aren't focusable.
A focusable viewport will steal focus from its children, which
is a problem for keyboard and gamepad nav. So now we have
grabbble-only viewportsm which fix the problem.

Fixes #5173.
2023-12-13 21:19:06 -05:00
Tom Rothamel 84d4aebc92 Allow displayables to be grabbed but not focusable.
This is meant for viewports, which can grab focus when dragged,
but shouldn't be focusable otherwise.
2023-12-13 21:13:19 -05:00
Tom Rothamel 9556e9615e ssh: Add to the no-ssh statements. 2023-12-13 02:15:06 -05:00
Gouvernathor 8545260133 doc: fix seealso 2023-12-12 08:32:20 +01:00
Tom Rothamel f2d911fe7c ssh: Document. 2023-12-11 23:33:48 -05:00
Tom Rothamel 17701d3827 Merge pull request #5168 from renpy/fix-5165
Fix #5165
2023-12-11 22:08:24 -05:00
Tom Rothamel d0fd529ad4 Revert "Avoid ever deleting the pixel buffer."
This reverts commit 355fc4f0af.
2023-12-11 22:04:16 -05:00
Tom Rothamel 7c0fb49df2 ssh: Do not do ssh transitions when in a menu or common. 2023-12-11 22:04:16 -05:00
Tom Rothamel 5733c0b81b Merge pull request #5167 from mal/constant-store-definitions
Move constant definitions into individual stores
2023-12-11 21:40:33 -05:00
Tom Rothamel 8c0470a1b5 Merge pull request #5169 from qTich/fix/tts-hover-alt
fix: based on `Style` defined as `_hover_alt`
2023-12-11 21:40:14 -05:00
Tichq 48e8a0f89e fix: based on Style defined as _hover_alt 2023-12-12 05:15:30 +03:00
Gouvernathor 8b3375c7e5 Fix various issues 2023-12-11 20:26:24 +01:00
Mal Graty a3a408ccd1 Move constant definitions into individual stores
Makes it much more obvious which stores are constant when reading the
code that defines those stores.
2023-12-11 18:54:35 +00:00
Tom Rothamel d22f24fa82 Merge pull request #5165 from jsfehler/docs_sdl2
Tweak get_sdl_dll() documentation
2023-12-11 11:30:56 -05:00
Tom Rothamel 573ebd183e Merge pull request #5164 from jsfehler/changlog_tyops
Fix tyops in the changlog
2023-12-11 11:30:33 -05:00
Joshua Fehler e1df1ba894 Tweak get_sdl_dll() documentation 2023-12-11 10:32:24 -05:00
Joshua Fehler 495b19fabc Fix tyops in the changlog 2023-12-11 09:28:43 -05:00
Tom Rothamel 0c0e9b50cd ssh: Do not do ssh after rollback. 2023-12-11 01:22:26 -05:00
Tom Rothamel 3260643769 Add _scene_show_hide_transition.
This is a transition that is run between the scene show and hide
statements, and other statements, if there is not intervening
with statement. This allows transitions to be created to run
when images are shown.

Per #2064, needs to be documented.
2023-12-11 01:15:13 -05:00
Tom Rothamel e2023d28d4 Add config.pass_controller events, document config.pass_joystick_events. 2023-12-10 22:13:01 -05:00
Tom Rothamel 2c99d91ed4 Disable fullscreen on Safari.
This is due to several problems that don't seem to occur on other
browsers. While the visibility problems were patched away, once
we went fullscreen, it was impossible to show anything else, like
the web_input textbox.

After a weekend working on it, no luck - so Fullscreen is disabled.

Fixes #5038.
2023-12-10 21:06:02 -05:00
Tom Rothamel 81de185a88 Bind to 127.0.0.1. 2023-12-10 20:03:35 -05:00
Tom Rothamel 25ec9105bb Browser shouldn't start in fullscreen by default. 2023-12-10 20:00:04 -05:00
Gouvernathor e8c9d6af2b Fix the last part 2023-12-10 19:30:24 -05:00
Tom Rothamel 7cede5ff44 Make it possible to bind the webserver publically.
To make testing easier.
2023-12-09 23:31:38 -05:00
Mal Graty 8014d196f8 Clean up redundant conditional
The child is already ensured to be a drag at the top of the method, no
need to check again.
2023-12-09 18:32:39 +00:00
Tom Rothamel b6c39be680 Avoid unnecessary recompilation of PyExprs.
Specifically, PyExprs loaded from .rpyc files that are only loaded
for the purpose of being upgraded from a .rpy file.
2023-12-09 01:11:31 -05:00
Tom Rothamel 0c6f3bd521 Lint formatting changes.
* Make the per-character stats optional, but use the complete
  version when there.

* Make the problem lists less humanized, and easier to scan by
  lining things up vertically.
2023-12-08 22:51:12 -05:00
Tom Rothamel f06b15023f Include Python warnings in lint. 2023-12-08 01:54:56 -05:00
Tom Rothamel 1082fe614e Store warning info in the bytecode cache. 2023-12-08 01:32:33 -05:00
Tom Rothamel badbd49bff Move parameter and argument handling into its own module. 2023-12-07 23:08:28 -05:00
Tom Rothamel dc6967b44b Remove the privating.
(Not needed in a class that's not intended to be inherited from, and
sends the wrong message.)
2023-12-07 22:41:14 -05:00
Tom Rothamel d30eae0ea9 Merge pull request #5160 from renpy/fix-5159
Fix interpolation of move transitions wrt the position type
2023-12-07 19:30:08 -05:00
Gouvernathor a0517be533 Cleanup 2023-12-08 00:33:11 +01:00
Gouvernathor 61b50b15b1 Fix last 2023-12-07 16:22:41 +01:00
Ren'Py Bot 990ec9f1fe Merge branch 'fix' 2023-12-07 04:30:08 -05:00
Tom Rothamel c54180ac8d Add the ability to force Python to be compiled.
Eventually leading to warnings being emitted.
2023-12-07 01:42:56 -05:00
Tom Rothamel e784f2733f Remove debug print. 2023-12-07 01:41:53 -05:00
Tom Rothamel fa7876055e Merge pull request #5062 from mal/fix-mouse-rel
Update rel values of combined mouse events
2023-12-06 22:29:55 -05:00
Tom Rothamel 84860185c5 Merge pull request #5084 from renpy/doc-dynamic-stores
Document that renpy.dynamic supports variables in stores
2023-12-06 22:25:27 -05:00
Gouvernathor 0471807ede Standalone parameterinfo (#5099)
* Convert ParameterInfo to an inspect subclass, adapt parsing

* Prettier repr for screens

Include the (pretty !) signature in the repr.
The default values are not themselves but the strings evaling to them - but who cares

* Monkeypatch ATL just enough for it to work

use .items() bc it's now a dict, access the default value the new way, and account for Parameter.empty

* Reimplement apply in a much better way

The default values are now evaluated lazily, only when needed, which is both faster and closer to the previous behavior.
The implementation of ignore_errors is not as good, but that should get improved soon.
Performances of the apply call on autorange goes from 50k-.30 to 100k-.32, which is almost a 2x speedup
The legacy apply call is at 100k-.23, we're dragging 40% slower but closing

* Copy and tweak Signature._bind to further improve perfs

apply call's autorange is now 100k-.29, so 26% slower than the former implem
we now manage the _ignore_extra_kwargs special kwarg behavior, forgotten until now
Having all the different raised exceptions now opens the door to ignoring errors all we like

* Realy implement ignore_errors

* Hasten legacy constructor and use empty uniformly

There are pros and cons of using empty or None, only one should be used (especially since now we control unpickling and binding) but let's decide that later

* Fix ignore_errors

* Simplify None barrier and avoid kwargs mutations

* Break free from inspect, make compat for py2, tweak stuff

* Rename the class to prevent unpickling on older versions

* Rephrase signature parsing errors

* Fix : allow defaulted and required kw-only in any order

and comments

* Simplify some code now that Parameter.empty is None

* Improve pyanalysis

extrapos and extrakw are now part of the list (actually dict keys) parameters
while that code would not yield exceptions, it added the same names twice which is a waste of time

* Fix and improve lint parameters check

p[0] gave the first letter of each parameter name, which invalidated the whole test
also, as with previous, extrakw and extrapos are part of the normal list of parameters

And as a bonus, separate the check for renpy and for python internals, making the report more understandable

* Mark ATL transform as needing reform

the only remaining use of extrapos and extrakw after which the properties can be removed from the Signature class

* Fix signature equality

dict equality didn't test ordering

* Hasten Signature equality

Theoretically signatures with different kw-only orderings should be considered equivalent,
but their repr is different, and no part of renpy optimizes over that
and our Signature is not hashable, so who cares, this is faster

* Patch dict ordering for py2

Otherwise a signature pickled in py3 and resurrected in py2 would have arbitrary ordering

* Todo for the future

* Remove unnecessary method

* Only report the first pos-only parameter

showing all of them in a row was bulky on the report

* Print the invalid parameters
2023-12-06 22:24:55 -05:00
Gouvernathor be3c6a0927 Fix interpolation of move transitions wrt the position type 2023-12-06 14:44:27 +01:00
Tom Rothamel d2d991a652 Document deferred translation loading. 2023-12-06 01:48:46 -05:00
Tom Rothamel 15d3719d9b Add the ability to defer the loading of translation scripts.
This speeds up the start of games with large numbers of
translations, by deferring the loading of a game's
translation scripts until the language is selected.

The downside is that these scripts are loaded out of order, but
that seems like a small price to pay for the speed boost that
can be provided.
2023-12-06 01:21:35 -05:00
Tom Rothamel 099b90feb5 Change sample code to work. 2023-12-06 01:06:33 -05:00
Tom Rothamel 064d4066c2 Allow presplash functions to be called at any time.
This simplifies scripts that may optionally call the
presplash.
2023-12-06 01:05:08 -05:00
Tom Rothamel f9a948293e Re-add support for split data in archived files.
These were used in older games to make unpacking a .rpa
harder. They're still not useful, but are necessary to play
older games in modern Ren'Py.
2023-12-05 02:31:19 -05:00
Tom Rothamel 6b1233923e Create RWopsIO directly from buffers. 2023-12-04 23:37:48 -05:00
Tom Rothamel 13cfd68491 Make the loader use RWopsIO. 2023-12-04 04:11:29 -05:00
shawna-p e0a826f06b Drag & Drop fixes and expansions (#4972)
* Fix the start x/y

* Keep the grab x/y accessible in the drop/dragged callbacks

* Can also fetch drags by name

* Documentation

* Clicked callback passes the Drag

* Can reset last_drop at the start

* Fix a typo for the drag docs

* Snap takes a warper

* More documentation

* Disallow dropping while drag is snapping

* Fixes for getting a drag by name

* Convert callable to a run call

* Add snapped callback

* Add the snapped property

* Document last_drop

* Update description

---------

Co-authored-by: Tom Rothamel <pytom@bishoujo.us>
2023-12-03 13:33:29 -05:00
Tom Rothamel 805662251e drag: Use weakrefs to refer to the DragGroup.
This prevents a reference cycle, and in doing so prevents the
garbage collector from having to run.
2023-12-03 01:08:46 -05:00
Tom Rothamel 72744a77dc drag: Add drags to a DragGroup at the top of the stack.
Fixes #5104.
2023-12-02 23:39:26 -05:00
Tom Rothamel cb67bd0e28 drag: Reset drag_move when a drag ends.
Fixes #5116.
2023-12-02 21:50:25 -05:00
Tom Rothamel 04d5381c26 Optimize is_pixel_opaque to consider Render transparency.
This is a performance improvement to focus_mask, especially in
the case where where the bounding of non-transparenty pixels is
small relative to the size of the imagebutton. In that case, the
GPU is only invoked when inside the bounding box.

This prevents expensive round trips to the GPU when we're sure
those operations will be unproductive.

Per #3612.
2023-12-02 16:28:48 -05:00
Tom Rothamel e4530d2791 Ensure that non-gl2 renderers can still be activated. 2023-12-02 16:25:48 -05:00
Tom Rothamel 13908eed30 Disable config.gl2.
This is inspired by #5152, where a large number of crashes were
caused by an issue that was fixed in GL2.

The only reason to keep GL1 in is that we promised another release
with it, but it doesn't need to be easy to use.
2023-12-02 10:58:41 -05:00
Tom Rothamel 5fb402c2d5 doc-gen: Improve scrolling.
Fixes #5153.
2023-12-01 22:08:20 -05:00
Tom Rothamel 4d67a6d93e Make "Image Attributes" list images on all layers
Fixes #5157.
2023-12-01 21:10:47 -05:00
Tom Rothamel fd62945a2a Only report label call errors in developer mode.
The rationale is that if there is nothing that can be done
about the errors, we're not helping the player by forcing
a crash.
2023-12-01 20:25:48 -05:00
Tom Rothamel 8b38433829 Merge pull request #5155 from AbdulGoodLooks/patch-2
Fix typo
2023-11-30 23:54:30 -05:00
Tom Rothamel 355fc4f0af Avoid ever deleting the pixel buffer.
This is an attempt to fix #5152, a crash in glTexImage2D.
2023-11-30 22:48:36 -05:00
Abdul cf0f979c62 Fix typo 2023-11-30 22:33:52 +00:00
Ren'Py Bot fade20a4f1 Merge branch 'fix' 2023-11-30 04:30:08 -05:00
Tom Rothamel f88267da29 py2: Add support for py2 to the position class. 2023-11-29 21:43:30 -05:00
Mal Graty 261ac30727 Merge pull request #5151 from the66F95/_enter_menu()
typo in _enter_menu()
2023-11-29 21:19:42 +00:00
the66F95 e33999e373 typo in _enter_menu()
might fix issue #5131, idk.
2023-11-29 20:54:23 +00:00
Gouvernathor b3ab78b557 Lint check_conflicting_properties 2023-11-29 21:27:26 +01:00
Ren'Py Bot 34702cec5f Merge branch 'fix' 2023-11-29 02:11:13 -05:00
Tom Rothamel 2649abec94 Improved search for the SDL dll.
This finds it on macOS, as well as the other platforms.
2023-11-29 02:10:23 -05:00
Tom Rothamel af1310f04d Improved search for the SDL dll.
This finds it on macOS, as well as the other platforms.
2023-11-29 02:04:51 -05:00
Tom Rothamel c634b5d6e4 Rename --builtins-parameters to reserved parameters. 2023-11-28 21:55:30 -05:00
Gouvernathor a36709f1c6 Better manage lint toggles V2 (#5092) 2023-11-28 21:45:09 -05:00
Gouvernathor 16e50a978e Add a general coordinate type and allow mixed-type ATL interpolation (#5123)
Add a new position type, representing the sum of an absolute position (a current int or absolute) and a relative position (a current float).

See #5013 for the rationale. Closes #5103.
2023-11-28 21:43:40 -05:00
Tom Rothamel 818c7b5daa Merge pull request #5143 from renpy/color
Allow any iterable to build a color, not just a tuple
2023-11-27 21:58:04 -05:00
Ren'Py Bot 64172bd4f2 Merge branch 'fix' 2023-11-27 04:30:08 -05:00
Tom Rothamel 524508470c doc: Fix libjpeg_turbo license.
Fixes #5147.
2023-11-27 00:48:14 -05:00
Tom Rothamel 479e9b1d4a doc: Fix bad indentation. 2023-11-26 19:30:46 -05:00
Tom Rothamel 5c52c076c4 Enable anistropy on gles.
Per #5146.
2023-11-26 18:15:46 -05:00
Tom Rothamel 02fa5ad2bf Merge pull request #5144 from mal/restore-c-conversion
Restore intended behaviour for c in conversion
2023-11-26 16:15:02 -05:00
Ren'Py Bot 53b85f2084 Merge branch 'fix' 2023-11-26 04:30:08 -05:00
Tom Rothamel 00cf974dfa Merge pull request #4799 from renpy/police-atl-params
Forbid pos-only and required kw-only parameters in ATL
2023-11-25 22:56:31 -05:00
Tom Rothamel 719ca310c9 Move the scene lists into a single file.
This simplifies core.py, making pylance analysis go faster.
2023-11-25 22:20:55 -05:00
Gouvernathor bb9c544334 doc: Add links between the two tooltips locations
The new scpref role only exists in master
2023-11-26 04:15:30 +01:00
Tom Rothamel d6b60995cc Do not parse name==... as a keyword argument.
Thanks to reflexbound on discord for pointing this out.
2023-11-25 21:09:14 -05:00
Tom Rothamel eb746dd991 Do not parse name==... as a keyword argument.
Thanks to reflexbound on discord for pointing this out.
2023-11-25 21:08:01 -05:00
Mal Graty f2441a6185 Restore intended behaviour for c in conversion
The change to str.capitalize over str.upper was to cover the case of
digraphs such as "nj" (see pydoc ref). However the remainder of the
string should remain untouched per our docs, with full str.capitalize
parity being achieved by combining the l and c conversions.

Use of capitalize does swap one quirk with another: Previously "NJ", "Nj",
and "nj" would all become "NJ"; now they will all become "Nj". The
potential down casing of the constituent J of the upper case form ends
up being a better trade off than the up casing of the J from the two
latter forms, especially within the context of the c conversion.

ref: https://docs.python.org/3/library/stdtypes.html#str.capitalize
2023-11-24 12:01:19 +00:00
Tom Rothamel cd3b7e2ec8 Change futured_files to file_compiler flags, make defaultdict. 2023-11-24 00:46:40 -05:00
Tom Rothamel b2ff055420 Merge pull request #4716 from renpy/rpy-python
Repeal the annotations future and expand the `rpy python` statement
2023-11-24 00:39:33 -05:00
Tom Rothamel 678e06ff3e Merge branch 'master' into rpy-python 2023-11-24 00:38:26 -05:00
Tom Rothamel e4520b9569 Merge pull request #4561 from Ayowel/fix/ios_create_project
Ensure ios_create uses the target project's information
2023-11-24 00:27:12 -05:00
Tom Rothamel 4c84e878e7 Merge pull request #4495 from jsfehler/docs-stylepreference
docs: Add note for StylePreference about update event getting called
2023-11-24 00:21:55 -05:00
Tom Rothamel 8396e98a43 Make the c conversion use str.capitalize.
Per #3534, closes #3534.
2023-11-24 00:12:47 -05:00
Tom Rothamel c692b098cb Use only the hover image for a hotspot's focus mask.
Fixes #5142, taking h3llra1ser's solution.
2023-11-23 21:18:16 -05:00
Tom Rothamel fe0b544df0 Use the full desktop layout when selecting window position.
This might  be a bit paranoid, but I want to be 100% sure that
the window is on a screen.
2023-11-23 00:45:45 -05:00
Gouvernathor 04a3ef76f2 Raise errors when passing an invalid color parameter 2023-11-23 00:13:11 +01:00
Gouvernathor 8130b65469 Allow Color to take any iterable
also quickens it
2023-11-23 00:09:24 +01:00
Tom Rothamel 389f6cb76c Reclaim some of the empty space in the launcher.
Some of the screens are getting packed, especially when
translations may increase the space. So remove some of the
padding around things.
2023-11-22 17:46:06 -05:00
Tom Rothamel f30cb45ca6 Make restoring the window position a preference. 2023-11-22 17:40:30 -05:00
Tom Rothamel 93e7464a54 doc: Changelog accessibility work. 2023-11-22 01:10:14 -05:00
Tom Rothamel 07b614baa7 Add extra_alt.
This is text that's spoken when the ? key is pressed and
self-voicing is enabled.
2023-11-22 01:07:06 -05:00
Tom Rothamel 00c03b137f alt: Add the group_alt property.
This specifies a group prefix that is spoken the first time a
displayable with the first group prefix is spoke, but won't
be spoken again until a displayable with a different group
prefix is spoken.
2023-11-22 00:37:51 -05:00
Tom Rothamel a04d0a7bae More revisions to wording. 2023-11-21 21:50:05 -05:00
Gouvernathor f79df3b605 Guarantee that invoke_in_main_thread calls are sequential (#5130)
doc: Guarantee that invoke_in_main_thread is sequential
2023-11-20 23:11:34 -05:00
the66F95 daf72a1a99 Fix incorrect variable use involving temporary attributes. (#5136) 2023-11-20 22:16:24 -05:00
Tom Rothamel 9e86457e1a Add the renpy.{get,set}_screen_variable methods.
Providing ways for actions to access screen variables, when
required.

Per #5135.
2023-11-20 20:30:51 -05:00
Tom Rothamel 4b209bc6b4 doc: Fix changelog. 2023-11-20 01:51:49 -05:00
Tom Rothamel 8f023aa580 Merge branch 'fix' 2023-11-20 01:50:08 -05:00
Tom Rothamel 0c7dc2405a tts: The selected_alt property shouldn't say "selected".
Previously, if selected_alt was set for a button, Ren'Py would
say "<whatever> selected." Now it will only say that if selected_alt
is the same as hover_alt.
2023-11-20 01:48:19 -05:00
Tom Rothamel 99e00e43eb doc: The alt attribute of Buttons and BarValues.
Per #5054.
2023-11-20 00:40:12 -05:00
Kassy 71878bafb7 New detection for iPad
Since iOS 13, Safari uses the desktop mode by default on iPad which removes
the "iPad" string from the User-Agent header. The new detection looks for
an Apple product with touch enabled (there is no MacOS product with touch
screens AFAIK).
2023-11-20 00:24:18 -05:00
Tom Rothamel 85c8a114c2 Ensure the current screen is set properly during transform events.
Fixes an issue with:

     screen some_on:
          default A = None
          on "show" action SomeAction("A")
          text "[A]" xalign .0 yalign .2

     init python:
          class SomeAction(Action):
               serial = 0
               def __init__(self, name):
                    self.name = name
               def __call__(self):
                    renpy.notify(f"{renpy.current_screen()=}")
                    renpy.run(SetScreenVariable(self.name, self.serial))
                    SomeAction.serial += 1
2023-11-20 00:22:00 -05:00
Tom Rothamel 9dec43ce2d webaudio: Add some defensive coding against file being None.
Tries to fix #5134.
2023-11-20 00:21:37 -05:00
Tom Rothamel 03b12abe76 Fix an issue detecting maximization on Linux.
Or more specifically, non-maximization - the test would occur
only when the window was resized, and on Linux that can happen
before the maximize flag is removed.
2023-11-20 00:21:24 -05:00
Tom Rothamel 6f8ca11f5f Add a few ways to disable window positioning. 2023-11-20 00:20:37 -05:00
Tom Rothamel 534af32307 Store the window's position in preferences.
And restore it when the game restarts, assuming the display
configuration remains the same.

This also trusts the stored window size when the display
configuration remains the same - on the grounds that if it worked
in the past, it'll work in the future.
2023-11-19 23:53:14 -05:00
Tom Rothamel dcc18305ea Fix an issue detecting maximization on Linux.
Or more specifically, non-maximization - the test would occur
only when the window was resized, and on Linux that can happen
before the maximize flag is removed.
2023-11-19 22:40:16 -05:00
Tom Rothamel f68c6954ca webaudio: Add some defensive coding against file being None.
Tries to fix #5134.
2023-11-19 20:51:55 -05:00
Tom Rothamel 57effd15c5 text: Introduce split ignore.
Text that's marked with SPLIT_IGNORE (the unicode
CL and CP classes) is text that isn't considered for the
purpose of the linebreaking algorithm. These characters tend to
be CJK punctuation and close parenthesis.

SPLIT_IGNORE text doesn't have it's size taken into account when at
the end of a line. This keeps the layout the same visual width, rather
than breaking a character and it's punctuation on the next line.

Fixes #3356, except for ー , though renpy.language_tailor could be
used to change the break class of that character if desired.
2023-11-19 00:56:12 -05:00
Gouvernathor 8e270b8d29 doc: Clarify renpy.pause's parameters 2023-11-18 23:46:00 +01:00
Tom Rothamel 332dfb510b Optimize transform when alpha == 0.
When alpha is 0, the child isn't visible. So don't bother to
draw it.
2023-11-18 00:26:02 -05:00
Tom Rothamel f573db70c2 Ensure the current screen is set properly during transform events.
Fixes an issue with:

     screen some_on:
          default A = None
          on "show" action SomeAction("A")
          text "[A]" xalign .0 yalign .2

     init python:
          class SomeAction(Action):
               serial = 0
               def __init__(self, name):
                    self.name = name
               def __call__(self):
                    renpy.notify(f"{renpy.current_screen()=}")
                    renpy.run(SetScreenVariable(self.name, self.serial))
                    SomeAction.serial += 1
2023-11-17 21:21:50 -05:00
Tom Rothamel fd437c423c Clean up log.txt a bit. 2023-11-17 00:48:35 -05:00
Tom Rothamel 270b4bbb07 Include the game name, version, and build time in logs.
Originally from #3911.
2023-11-17 00:42:36 -05:00
Tom Rothamel 3836adf7b0 build: Combine build.time and build.info into cache/build_info.json
As a way of addressing #3911. The approach there is better, so
going with it.
2023-11-17 00:26:08 -05:00
Tom Rothamel da6ce04df2 Politely berate people for still using Atom.
Per #5077.
2023-11-16 22:44:14 -05:00
Tom Rothamel c916fe311f rt: Remove guisupport when making a test game. 2023-11-16 22:28:11 -05:00
Tom Rothamel a3986b6d23 Merge pull request #5078 from renpy/cancel-atom
Stop proposing Atom as integrated editor
2023-11-16 21:32:40 -05:00
Tom Rothamel b81d985fb2 Rename function. 2023-11-16 01:35:58 -05:00
Tom Rothamel e5fcf87c8f Add build.time. 2023-11-16 01:35:10 -05:00
Tom Rothamel ea3bb8c741 Add build.info.
This lets the creator store information about the build that's
read back.
2023-11-16 01:35:10 -05:00
Tom Rothamel 4015cd7c53 Merge pull request #5121 from tessus/fix/macox-launch-error
fix(arguments): ignore -psn_0 argument on macOS
2023-11-15 22:55:36 -05:00
Tom Rothamel a50b13afa5 Merge pull request #5115 from Kassy2048/fix_5089
Differentiate between adv and nvl menus for window auto hide
2023-11-15 00:05:55 -05:00
Tom Rothamel e7db3adbab doc: Movie image/group interaction.
Fixes #5088.
2023-11-14 23:56:14 -05:00
Tom Rothamel 1fa2bb5240 controller: Make B access the game menu.
Fixes #5019
2023-11-14 21:56:41 -05:00
Helmut K. C. Tessarek e885029180 fix(arguments): ignore -psn_0 argument on macOS
On macOS a file with the quarantine flag will cause an error on game start:

```
error: unrecognized arguments: -psn_0_some_number_here
```

Unfortunately the end user has no control over how the renpy engine is packaged
and/or embedded. Thus let's ignore this argument.
2023-11-14 13:38:16 +01:00
Tom Rothamel 3811005556 Actually cache the keymap entries we compile. 2023-11-14 00:51:12 -05:00
Tom Rothamel 1720565972 Make sure #5114 is compatable with older saves. 2023-11-13 21:33:03 -05:00
Tom Rothamel 80bed537a9 Merge pull request #5114 from shawna-p/nearrect-updates
NearRect Updates
2023-11-13 21:29:57 -05:00
Ren'Py Bot 662bac0343 Merge branch 'fix' 2023-11-13 21:28:54 -05:00
Tom Rothamel eca0051a70 Merge pull request #5119 from mal/py2-sync
py2: Alternate timestamp calculation in sync
2023-11-13 21:04:23 -05:00
Mal Graty 03774c911f py2: Alternate timestamp calculation in sync 2023-11-13 23:55:53 +00:00
Ren'Py Bot 22b93bc017 Merge branch 'fix' 2023-11-13 04:30:08 -05:00
Tom Rothamel 9ff386d1d9 Precompile the keymap, makesure gamepad binding exist.
This should speed things up ever so slightly in rare cases, and
fixes #5101.
2023-11-13 01:20:37 -05:00
Tom Rothamel f3e85d6a24 Add missing colon. 2023-11-13 01:08:43 -05:00
Tom Rothamel ba25120c6c doc: That config.say_layer should be in config.context_clear_layers.
Fixes #5071.
2023-11-13 00:19:22 -05:00
Tom Rothamel 2edfdc4ca9 Make it possible to customize the sync overlay through styles.
Fixes #5112.
2023-11-13 00:14:58 -05:00
Tom Rothamel f33834a058 Range-check inertial-warper. 2023-11-12 21:02:40 -05:00
Kassy ca1ee922d5 Differentiate between adv and nvl menus for window auto hide 2023-11-12 21:14:11 +01:00
shawna-p 5294d389c5 Rename property, add to screen language 2023-11-12 13:07:48 -05:00
shawna-p fdfcde9f97 Add more preferred sides 2023-11-12 13:02:05 -05:00
Tom Rothamel 521db6b3ad Add config.save_persistent.
A way to prevent persistent from being saved.
2023-11-12 02:24:38 -05:00
Tom Rothamel 349ac2d40a Add config.save.
Which lets us disable the say system.
2023-11-12 02:21:31 -05:00
Tom Rothamel d8df2a44ee presplash: Allow 1-bit transparency. 2023-11-11 21:24:12 -05:00
Tom Rothamel 2d2e0e0b15 Merge pull request #5109 from mal/persistent-safety-encapsulation
Centralise safety features for persistent data
2023-11-10 18:14:54 -05:00
Mal Graty 51a02f5a7d Centralise safety features for persistent data
Also guard their installation with the early_developer flag to avoid
impacting production games.
2023-11-10 13:24:08 +00:00
Asriel Senna b1dda7b7a0 Doc typo 2023-11-10 10:07:47 +01:00
Asriel Senna 7a9e363fea Save some time on persistent_dumps 2023-11-10 10:06:12 +01:00
Tom Rothamel e1ee5e2a08 Merge pull request #4606 from renpy/list-operators
Bring list operator dunders in accordance with the datamodel
2023-11-10 01:41:45 -05:00
Tom Rothamel c260995ccd Merge pull request #4545 from renpy/persistent-safety
Add a type check on data saved in persistent
2023-11-10 01:40:21 -05:00
Tom Rothamel 252daadee9 doc: Fix gui documentation typo.
Fixes #5106.
2023-11-09 23:33:44 -05:00
Tom Rothamel c9c9a14957 Add renpy.invoke_in_main_thread.
This is a way for a Python thread to run things in the main
Ren'Py thread.

Per #5015
2023-11-09 23:31:03 -05:00
Tom Rothamel e7eb021eab dl: Minor cleanups.
* Do not distribute the alternate base directory.
* Improvements to the downloader screen.
2023-11-08 02:29:04 -05:00
Tom Rothamel 96d9d38890 dl: Add functions and screen for game downloading.
The culmination of the altbase and updater work - the ability to
download and install a game update from the server, and install
it onto a device.
2023-11-08 02:01:56 -05:00
Tom Rothamel 318eb7a7bd update: Make cancelling optional.
Since it doesn't make sense to cancel an altbase update.
2023-11-07 01:18:08 -05:00
Tom Rothamel 94f8dc9c13 updater: Several changes to support altbase.
* Allow an utter restart at the end of an update.
* Allow the update to restart without prompting.
* Allow the screen to be customized.
2023-11-06 01:27:31 -05:00
Tom Rothamel 45990477e5 rpu: Fix issues with multiple variants.
The problem was that segements weren't being handled properly,
which meant that the created update was corrupt.

Also, remove test harness that hasn't been used in a while.
2023-11-06 01:24:11 -05:00
Tom Rothamel 799b05de51 altbase: Allow the altbase to change during renpy.utter_restart. 2023-11-05 19:13:59 -05:00
Tom Rothamel c981c054cb doc: Fix typo. 2023-11-05 18:07:32 -05:00
Tom Rothamel 2458691fe1 doc: Fix errors. 2023-11-05 17:03:01 -05:00
Tom Rothamel 5a982ee902 altbase: Add the game-only update for mobile.
This is the data that needs to be installed by the updater into
the alternate base directory, and now it's being generated by the
build process.
2023-11-04 22:30:16 -04:00
Tom Rothamel b267552a04 rpu: Create a single set of RPUs.
With all the data shared between them. Mostly for disk space
reasons - it doesn't make a ton of sense to have a separate
set for each variant.
2023-11-04 21:37:20 -04:00
Ren'Py Bot 179c513abb Merge branch 'fix' 2023-11-04 04:30:01 -04:00
Tom Rothamel 7e268785d7 launcher: Make the rpu format a preference.
It should be the default where it's available, but we'll have a
preference for a release or two, so that we can test the updater.
2023-11-03 23:58:08 -04:00
Tom Rothamel 925769f0cd update: Document the new updater. 2023-11-03 23:34:24 -04:00
Tom Rothamel 631ac0916e update: Transfer progress to the public Updater object. 2023-11-03 23:33:55 -04:00
Tom Rothamel acf690fdec Document gui.system_font.
Fixes #5097.
2023-11-03 22:06:45 -04:00
Tom Rothamel 827fa05a7a Document gui.system_font.
Fixes #5097.
2023-11-03 22:05:57 -04:00
Mal Graty b850ed8c92 Merge pull request #5096 from brainos233/fix-lint-unclosed-tags
Fix incorrect parameter for unclosed text tags
2023-11-03 06:21:51 +00:00
Tom Rothamel d690b71c6f Add some boilerplate to projects.txt. 2023-11-03 01:15:56 -04:00
Tom Rothamel 033149c173 Merge pull request #3695 from renpy/open-projects-txt
Open/create projects.txt from the launcher preferences
2023-11-03 01:09:41 -04:00
Brainos 913a3c9239 Fix incorrect parameter for unclosed text tags 2023-11-03 12:31:40 +08:00
Tom Rothamel 629f3ffd3c Allow comments in projects.txt. 2023-11-02 23:43:37 -04:00
Tom Rothamel f99fed20e6 Merge pull request #5086 from qTich/fix/fetch-timeout
fix: `fetch_emscripten` timeout loop
2023-11-02 22:52:04 -04:00
Tom Rothamel 0dd65f3258 Merge pull request #5093 from renpy/lint-unclosed-tags
Allow linting unclosed tags
2023-11-02 22:51:49 -04:00
Ren'Py Bot 90ea141628 Merge branch 'fix' 2023-11-02 04:30:07 -04:00
Tom Rothamel c6659c7e54 Use the correct name for the old update format.
Fixes #5095.
2023-11-02 00:35:03 -04:00
Tom Rothamel 6a839b5829 Produce a better error when an inputvalue is None. 2023-11-01 23:02:48 -04:00
Gouvernathor d4914072ae Better writing 2023-11-01 13:56:29 +01:00
Gouvernathor 8bafe2a4a7 Readd checking for unclosed text tags, toggled by lint 2023-11-01 13:54:47 +01:00
Ren'Py Bot 2968a188a8 Merge branch 'fix' 2023-11-01 04:30:07 -04:00
Tom Rothamel a40cc67779 doc: Fix build. 2023-11-01 02:07:00 -04:00
Tom Rothamel ef44609fdd Undocument the long-obsolete config.missing_background. 2023-10-31 23:36:43 -04:00
Tichq 9d6249ca70 fix: fetch_emscripten timeout loop 2023-10-31 14:43:11 +03:00
Ren'Py Bot 305ab54c5d Merge branch 'fix' 2023-10-31 04:30:07 -04:00
Tom Rothamel 8f5f61bd47 Conform webaudio results with desktop audio.
For the get_pos and get_duration functions.

Per #5065.
2023-10-31 00:46:10 -04:00
Asriel Senna adc3af84ad Document that renpy.dynamic supports variables in stores 2023-10-31 01:14:27 +01:00
Asriel Senna 134fe7ffec Remove debug print 2023-10-31 00:57:52 +01:00
Gouvernathor d7080311f5 Mark editors as deprecated to stop showing them in the list 2023-10-29 00:28:13 +02:00
Gouvernathor 3aa02b7db6 Mark Atom as obsolete and hide it when not installed 2023-10-29 00:11:24 +02:00
Mal Graty 3102176697 mouse: Update rel values of combined events
Underlying mouse movement events may be merged or dropped by Ren'Py for
performance reasons. As a result, the relative movement would only be
that of the most recent mouse event, rather than an accurate measure of
movement since the last (published) event.

Instead of dropping mouse motion events outright, this change instead
opts to consume them in a tight loop accumulating their relative values.
Combined with accumulation during merges, this allows published events
to give an accurate picture of the relative movement.
2023-10-18 16:42:06 +01:00
Gouvernathor 8d009d2429 Merge branch 'master' into police-atl-params 2023-10-18 00:43:31 +02:00
Gouvernathor bcab87be37 Remove warper code duplication
we can't remove the name assignments because the compat system uses it - I could change that too but let's not touch compat
also remove unused variable
2023-09-24 04:00:35 +02:00
Mal Graty 880b47cadf Implement AlphaMask using shader 2023-08-20 02:49:33 +01:00
Gouvernathor 2141c0bbc9 Use the file role 2023-08-09 08:43:33 +02:00
Gouvernathor efbefe4388 Use the file role to avoid @ formatting into mail 2023-08-08 18:34:08 +02:00
Gouvernathor 7b160ea3ad Use the file role for file paths 2023-08-08 18:21:29 +02:00
Gouvernathor 25270211c1 Enable _layer for menu and config.nvl_choice_layer 2023-07-17 17:18:34 +02:00
Gouvernathor f317cd6a00 Remove debug print 2023-06-30 19:54:37 +02:00
Gouvernathor c19456c4f7 Verbot pos-only and required kw-only parameters in ATL 2023-06-30 19:32:35 +02:00
Gouvernathor 3601c782f9 Merge branch 'master' into rpy-python 2023-06-28 14:37:08 +02:00
Gouvernathor b687ed1315 Do not ignore unknown futures
errors should not be pass silently, unless explicitly silenced
2023-06-17 21:31:07 +02:00
Gouvernathor c682e99213 Merge branch 'master' into rpy-python 2023-06-17 16:25:41 +02:00
Gouvernathor 814fa97059 Allow multiple future flags in the same rpy statement
the get_code method of the ast node will print several lines instead of one, but I think it's fine - the node makes no sense in a translation
2023-06-09 14:04:33 +02:00
Gouvernathor 1f47a40a0e Simplify parser code 2023-06-09 13:54:48 +02:00
Gouvernathor 73a02a0c0c typo 2023-06-09 13:52:49 +02:00
Gouvernathor 5e9989d0a1 Changelog rpy python and the end of stringified annotations 2023-06-09 03:31:40 +02:00
Gouvernathor 65dce66eef Generalize the rpy python statement to explicit __future__s 2023-06-09 03:00:04 +02:00
Gouvernathor 0fa9b581ef Tweak in list.clear implem
20% tested performance boost, even higher for linger lists
2023-05-06 13:53:46 +02:00
Gouvernathor 483ec6dc0d Quicken list dunders
Exact typechecks are quicker than instance checks.

Since it's direct list methods we're wrapping (and not super calls for example), the return value is either NotImplemented or a list.
No need to complicate things further than that.
2023-05-06 03:36:50 +02:00
Ayowel dd33c939ab Ensure ios_create uses the target project's information 2023-04-23 22:40:25 +02:00
Asriel Senna 6ad43c2b8b Add a type check on data saved in persistent 2023-04-21 00:08:28 +02:00
jsfehler 62232d6cfa docs: Add note for StylePreference about update event getting called 2023-04-01 15:01:24 -04:00
Gouvernathor ed5ea70d5f Rephrase and optimize multiline statement 2022-10-26 20:19:51 +02:00
Gouvernathor cd196c0de6 Avoid reimport 2022-10-26 20:19:32 +02:00
Gouvernathor 5f2fc62b0e Clarify return value 2022-10-26 20:18:57 +02:00
Gouvernathor c12854026f Indent fix 2022-10-26 20:18:23 +02:00
Gouvernathor 0b1edb13de Update preferences.rpy 2022-06-23 16:46:51 +02:00
470 changed files with 22162 additions and 6716 deletions
+26
View File
@@ -57,6 +57,26 @@
"renpy.warnOnInvalidFilenameIssues": "Disabled",
"renpy.warnOnIndentationAndSpacingIssues": "Disabled",
"editor.tokenColorCustomizations": {
"[*Light*]": {
"textMateRules": [
{
"scope": "ref.matchtext",
"settings": {
"foreground": "#000"
}
}
]
},
"[*Dark*]": {
"textMateRules": [
{
"scope": "ref.matchtext",
"settings": {
"foreground": "#fff"
}
}
]
},
"textMateRules": [
{
"scope": "renpy.meta.plain",
@@ -208,6 +228,12 @@
"settings": {
"foreground": "#cfc"
}
},
{
"scope": "renpy.meta.color.#c00",
"settings": {
"foreground": "#c00"
}
}
]
},
+12
View File
@@ -0,0 +1,12 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "run.sh --build",
"type": "shell",
"command": "/home/tom/ab/renpy/run.sh --build",
}
]
}
+13 -14
View File
@@ -228,7 +228,7 @@ style choice_button is default:
properties gui.button_properties("choice_button")
style choice_button_text is default:
properties gui.button_text_properties("choice_button")
properties gui.text_properties("choice_button")
## Quick Menu screen ###########################################################
@@ -273,7 +273,7 @@ style quick_button:
properties gui.button_properties("quick_button")
style quick_button_text:
properties gui.button_text_properties("quick_button")
properties gui.text_properties("quick_button")
################################################################################
@@ -338,7 +338,7 @@ style navigation_button:
properties gui.button_properties("navigation_button")
style navigation_button_text:
properties gui.button_text_properties("navigation_button")
properties gui.text_properties("navigation_button")
## Main Menu screen ############################################################
@@ -709,13 +709,13 @@ style page_button:
properties gui.button_properties("page_button")
style page_button_text:
properties gui.button_text_properties("page_button")
properties gui.text_properties("page_button")
style slot_button:
properties gui.button_properties("slot_button")
style slot_button_text:
properties gui.button_text_properties("slot_button")
properties gui.text_properties("slot_button")
## Preferences screen ##########################################################
@@ -850,7 +850,7 @@ style radio_button:
foreground "gui/button/radio_[prefix_]foreground.png"
style radio_button_text:
properties gui.button_text_properties("radio_button")
properties gui.text_properties("radio_button")
style check_vbox:
spacing gui.pref_button_spacing
@@ -860,7 +860,7 @@ style check_button:
foreground "gui/button/check_[prefix_]foreground.png"
style check_button_text:
properties gui.button_text_properties("check_button")
properties gui.text_properties("check_button")
style slider_slider:
xsize gui.scale(350)
@@ -871,7 +871,7 @@ style slider_button:
left_margin gui.scale(10)
style slider_button_text:
properties gui.button_text_properties("slider_button")
properties gui.text_properties("slider_button")
style slider_vbox:
xsize gui.scale(450)
@@ -1068,7 +1068,7 @@ screen mouse_help():
text _("Accesses the game menu.")
hbox:
label _("Mouse Wheel Up\nClick Rollback Side")
label _("Mouse Wheel Up")
text _("Rolls back to earlier dialogue.")
hbox:
@@ -1090,13 +1090,12 @@ screen gamepad_help():
label _("Right Shoulder")
text _("Rolls forward to later dialogue.")
hbox:
label _("D-Pad, Sticks")
text _("Navigate the interface.")
hbox:
label _("Start, Guide")
label _("Start, Guide, B/Right Button")
text _("Accesses the game menu.")
hbox:
@@ -1117,7 +1116,7 @@ style help_button:
xmargin gui.scale(8)
style help_button_text:
properties gui.button_text_properties("help_button")
properties gui.text_properties("help_button")
style help_label:
xsize gui.scale(250)
@@ -1195,7 +1194,7 @@ style confirm_button:
properties gui.button_properties("confirm_button")
style confirm_button_text:
properties gui.button_text_properties("confirm_button")
properties gui.text_properties("confirm_button")
## Skip indicator screen #######################################################
@@ -1408,7 +1407,7 @@ style nvl_button:
xanchor gui.nvl_button_xalign
style nvl_button_text:
properties gui.button_text_properties("nvl_button")
properties gui.text_properties("nvl_button")
## Bubble screen ###############################################################
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
+11 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -278,7 +278,16 @@ init python:
with interface.nolinks():
rapt.build.build(rapt_interface, dist, p.path, bundle=bundle, install=install, launch=launch, finished=finished, permissions=p.dump['build']['android_permissions'])
rapt.build.build(
rapt_interface,
dist,
p.path,
bundle=bundle,
install=install,
launch=launch,
finished=finished,
permissions=p.dump['build']['android_permissions'],
version=p.dump['build']['version'])
def android_build_argument(cmd):
+2 -9
View File
@@ -27,8 +27,6 @@ init python hide:
__("The package name may not contain two dots in a row, or begin or end with a dot.")
__("Each part of the package name must start with a letter, and contain only letters, numbers, and underscores.")
__("{} 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.")
__("How much RAM (in GB) do you want to allocate to Gradle?\nThis must be a positive integer number.")
__("The RAM size must contain only numbers and be positive.")
__("How would you like your application to be displayed?")
@@ -45,8 +43,8 @@ init python hide:
__("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\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please make sure you installed the 'JavaSoft (Oracle) registry keys'.\n\nWithout a working JDK, I can't continue.")
__("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.")
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please install JDK [JDK_REQUIREMENT], and add it to your PATH.\n\nWithout a working JDK, I can't continue.")
__("The version of Java on your computer does not appear to be JDK [JDK_REQUIREMENT], which is required to build Android apps. If you need to install a newer JDK, you can download it from:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, and add it to your PATH.\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java.")
__("The JDK is present and working. Good!")
__("The Android SDK has already been unpacked.")
__("Do you accept the Android SDK Terms and Conditions?")
@@ -61,14 +59,9 @@ init python hide:
__("It looks like you're ready to start packaging games.")
__("Please enter your name or the name of your organization.")
__("I found an android.keystore file in the rapt directory. Do you want to use this file?")
__("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?")
__("\n\nSaying 'No' will prevent key creation.")
__("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 found a bundle.keystore file in the rapt directory. Do you want to use this file?")
__("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?")
__("\n\nSaying 'No' will prevent key creation.")
__("Could not create bundle.keystore. Is keytool in your path?")
__("I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place.")
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
+39 -74
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -61,7 +61,8 @@ init python in distribute:
minor=sys.version_info.minor,
)
# Going from 7.4 to 7.5 or 8.0, the library directory changed.
# * Going from 7.4 to 7.5 or 8.0, the library directory changed.
# * 7.7 called os.makedirs with exist_ok=True, even on Python 2.
RENPY_PATCH = py("""\
def change_renpy_executable():
import sys, os, renpy, site
@@ -70,6 +71,17 @@ def change_renpy_executable():
sys.renpy_executable = os.path.join(renpy.config.renpy_base, "lib", "py{major}-" + site.RENPY_PLATFORM, os.path.basename(sys.renpy_executable))
change_renpy_executable()
if sys.version_info.major == 2:
os.old_makedirs = getattr(os, "old_makedirs", os.makedirs)
def makedirs(name, mode=0o777, exist_ok=False):
if exist_ok and os.path.exists(name):
return
os.old_makedirs(name, mode)
os.makedirs = makedirs
""")
match_cache = { }
@@ -489,10 +501,6 @@ change_renpy_executable()
# A map from a package to a unique update version hash.
self.update_versions = { }
# Map from destination file with extension to (that file's hash,
# hash of the file list)
self.build_cache = { }
# A map from file to its hash.
self.hash_cache = { }
@@ -524,6 +532,9 @@ change_renpy_executable()
# dictionaries.
data = project.data
# Reset the RPU update builder.
RPUPackage.reset()
if scan:
self.reporter.info(_("Scanning project files..."))
project.update_dump(force=True, gui=False, compile=project.data['force_recompile'])
@@ -577,8 +588,6 @@ change_renpy_executable()
except Exception:
pass
self.load_build_cache()
self.packagedest = packagedest
self.include_update = build['include_update']
@@ -696,9 +705,6 @@ change_renpy_executable()
if self.build_update:
self.finish_updates(build_packages)
if not packagedest:
self.save_build_cache()
# Finish up.
self.log.close()
@@ -964,6 +970,16 @@ change_renpy_executable()
self.add_file("all", "game/script_version.txt", script_version_txt)
if self.build["info"]:
build_info_json = self.temp_filename("build_info.json")
with open(build_info_json, "w") as f:
json.dump(self.build["info"], f)
self.add_file("all", "game/cache/build_info.json", build_info_json)
def add_file_list_hash(self, list_name):
"""
Hashes a file list, then adds that file to the Ren'Py distribution.
@@ -1459,6 +1475,8 @@ change_renpy_executable()
"bare-tar.bz2" : (".tar.bz2", False, False, False),
"bare-zip" : (".zip", False, False, False),
"null" : ( "", True, False, False),
}
if format not in FORMATS:
@@ -1522,20 +1540,6 @@ change_renpy_executable()
full_filename = "rpu/" + variant + ".files.rpu"
path = self.destination + "/" + full_filename
if self.build['renpy']:
fl_hash = fl.hash(self)
else:
fl_hash = '<not building renpy>'
file_hash, old_fl_hash = self.build_cache.get(full_filename, ("", ""))
if (not directory) and (old_fl_hash == fl_hash) and not(self.build['renpy'] and (variant == "sdk")):
if file_hash:
self.build_cache[full_filename] = (file_hash, fl_hash)
return
def done():
"""
This is called when the build of the package is done, either
@@ -1551,15 +1555,14 @@ change_renpy_executable()
else:
file_hash = ""
if file_hash:
self.build_cache[full_filename] = (file_hash, fl_hash)
if format == "tar.bz2" or format == "bare-tar.bz2":
pkg = TarPackage(path, "w:bz2")
elif format == "update":
pkg = UpdatePackage(path, filename, self.destination)
elif format == "rpu":
pkg = RPUPackage(self.destination, variant)
elif format == "null":
pkg = NullPackage()
elif format == "zip" or format == "app-zip" or format == "bare-zip":
if self.build['renpy']:
pkg = ExternalZipPackage(path)
@@ -1629,9 +1632,9 @@ change_renpy_executable()
"renpy_version" : renpy.version_only,
}
if "update" in self.build["update_formats"]:
if "zsync" in self.build["update_formats"]:
digest = self.build_cache[self.base_name + "-" + variant + ".update"][0]
digest = hash_file(self.destination + "/" + self.base_name + "-" + variant + ".update")
sums_size = os.path.getsize(self.destination + "/" + self.base_name + "-" + variant + ".sums")
index[variant].update({
@@ -1648,17 +1651,8 @@ change_renpy_executable()
os.unlink(fn)
if "rpu" in self.build["update_formats"]:
rpu_size = 0
rpu_dir = os.path.join(self.destination, "rpu")
for i in os.listdir(rpu_dir):
rpu_size += os.path.getsize(os.path.join(rpu_dir, i))
index[variant]["rpu_url"] = "rpu/" + variant + ".files.rpu"
index[variant]["rpu_digest"] = self.build_cache["rpu/" + variant + ".files.rpu"][0]
index[variant]["rpu_size"] = rpu_size
index[variant]["rpu_digest"] = hash_file(self.destination + "/rpu/" + variant + ".files.rpu")
for p in packages:
if p["update"]:
@@ -1666,8 +1660,11 @@ change_renpy_executable()
update_data = json.dumps(index, indent=2)
if not isinstance(update_data, bytes):
update_data = update_data.encode("utf-8")
fn = renpy.fsencode(os.path.join(self.destination, "updates.json"))
with open(fn, "wb" if PY2 else "w") as f:
with open(fn, "wb") as f:
f.write(update_data)
# Write the signed file.
@@ -1678,7 +1675,7 @@ change_renpy_executable()
fn = renpy.fsencode(os.path.join(self.destination, "updates.ecdsa"))
with open(fn, "wb") as f:
f.write(signing_key.sign(update_data.encode("utf-8")))
f.write(signing_key.sign(update_data))
def find_update_pem(self):
if self.build['renpy']:
@@ -1696,38 +1693,6 @@ change_renpy_executable()
with open(key_pem, "wb") as f:
f.write(signing_key.verifying_key.to_pem())
def save_build_cache(self):
if not self.build['renpy']:
return
fn = renpy.fsencode(os.path.join(self.destination, ".build_cache"))
with open(fn, "w", encoding="utf-8") as f:
for k, v in self.build_cache.items():
l = "\t".join([k, v[0], v[1]]) + "\n"
f.write(l)
def load_build_cache(self):
if not self.build['renpy']:
return
fn = renpy.fsencode(os.path.join(self.destination, ".build_cache"))
if not os.path.exists(fn):
return
with open(fn, "rb") as f:
for l in f:
if not l:
continue
l = l.decode("utf-8").rstrip()
l = l.split("\t")
self.build_cache[l[0]] = (l[1], l[2])
os.unlink(fn)
def dump(self):
for k, v in sorted(self.file_lists.items()):
print()
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
+58 -16
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -112,7 +112,7 @@ init 1 python in editor:
editor is installed or not.
"""
def __init__(self, priority, name, description=None, dlc=None, dldescription=None, error_message=None):
def __init__(self, priority, name, description=None, dlc=None, dldescription=None, error_message=None, deprecated=False):
# The priority of the editor. Lower priorities will come later
# in the list.
self.priority = priority
@@ -135,6 +135,9 @@ init 1 python in editor:
# An error message to display if the editor failed to start.
self.error_message = error_message
# If the editor is considered deprecated for use with Ren'Py.
self.deprecated = deprecated
def fancy_scan_editors():
"""
Creates the list of FancyEditorInfo objects.
@@ -179,7 +182,7 @@ init 1 python in editor:
fei.append(e)
# Atom.
AD = _("A modern and approachable text editor.")
AD = _("Atom is deprecated and its bugs are known for corrupting games, using another editor is recommended.")
if renpy.windows:
dlc = "atom-windows"
@@ -199,23 +202,28 @@ init 1 python in editor:
AD,
"extension:atom",
_("Up to 150 MB download required."),
None)
None,
deprecated=True,
)
e.installed = e.installed and (installed or 'RENPY_ATOM' in os.environ)
fei.append(e)
# jEdit - Only present if it exists on system.
if os.path.exists(os.path.join(config.renpy_base, "jedit")):
e = FancyEditorInfo(
2,
_("jEdit"),
_("JEdit is deprecated, using another editor is recommended."),
"jedit",
_("1.8 MB download required."),
_("This may have occured because Java is not installed on this system."),
deprecated=True,
)
fei.append(FancyEditorInfo(
2,
_("jEdit"),
_("A mature editor that requires Java."),
"jedit",
_("1.8 MB download required."),
_("This may have occured because Java is not installed on this system."),
))
e.installed = e.installed and os.path.exists(os.path.join(config.renpy_base, "jedit"))
fei.append(e)
fei.append(FancyEditorInfo(
3,
@@ -253,7 +261,7 @@ init 1 python in editor:
# If we're in a linux distro or something, assume all editors work.
if not updater.can_update():
for i in fei:
if i.dlc and not i.dlc.startswith("extension:"):
if i.dlc and not i.dlc.startswith("extension:") and not i.deprecated:
i.installed = True
def fancy_activate_editor(default=False):
@@ -549,6 +557,9 @@ screen editor:
for fe in editor.fancy_editors:
if fe.deprecated and not fe.installed:
continue
add SPACER
textbutton fe.name action editor.SelectEditor(fe.name)
@@ -560,7 +571,10 @@ screen editor:
has vbox
if fe.description:
text fe.description style "l_small_text"
text fe.description:
style "l_small_text"
if fe.deprecated:
color ERROR_COLOR
if not fe.installed:
add HALF_SPACER
@@ -576,7 +590,35 @@ label reinstall_vscode:
jump editor_preference
label editor_preference:
call screen editor
jump preferences
default persistent.ignore_obsolete_editor = set()
# This label is called when the launcher starts, to check if the editor
# is obsolete, and let them change it.
label editor_check:
if persistent.editor in persistent.ignore_obsolete_editor:
jump post_editor_check
if persistent.editor == "Atom":
$ result = interface.choice(
_("The Atom text editor is no longer supported by its developers. We suggest switching to Visual Studio Code or another editor."), [
( "select", _("Select editor now.")),
( "ignore", _("Ignore until next launch.")),
( "block", _("Do not ask again.")),
], "select")
else:
jump post_editor_check
if result == "select":
$ renpy.pop_call()
jump editor_preference
elif result == "block":
$ persistent.ignore_obsolete_editor.add(persistent.editor)
jump post_editor_check
+15 -7
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -46,7 +46,7 @@ screen front_page:
right_margin 2
top_padding 20
bottom_padding 26
bottom_padding 13
side "t c b":
@@ -195,7 +195,7 @@ screen front_page_project:
has vbox
textbutton _("Navigate Script") action Jump("navigation")
textbutton _("Check Script (Lint)") action Jump("lint")
textbutton _("Check Script (Lint)") action Call("lint")
if project.current.exists("game/gui.rpy"):
textbutton _("Change/Update GUI") action Jump("change_gui")
@@ -227,13 +227,12 @@ label start:
show screen bottom_info
$ dmgcheck()
jump expression renpy.session.pop("launcher_start_label", "front_page")
jump expression renpy.session.pop("launcher_start_label", "before_front_page")
default persistent.has_chosen_language = False
default persistent.has_update = False
label front_page:
label before_front_page:
if (not persistent.has_chosen_language) or ("RENPY_CHOOSE_LANGUAGE" in os.environ):
@@ -244,6 +243,11 @@ label front_page:
$ persistent.has_chosen_language = True
call editor_check
label post_editor_check:
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()
@@ -259,6 +263,10 @@ label lint:
interface.processing(_("Checking script for potential problems..."))
lint_fn = project.current.temp_filename("lint.txt")
persistent.lint_options.discard("--orphan-tl") # compat
persistent.lint_options.discard("--builtins-parameters") # compat
persistent.lint_options.discard("--words-char-count") # compat
project.current.launch([ 'lint', lint_fn, ] + list(persistent.lint_options), wait=True)
e = renpy.editor.editor
@@ -266,7 +274,7 @@ label lint:
e.open(lint_fn)
e.end()
jump front_page
return
label rmpersistent:
+54 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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,6 +22,10 @@
define gui.project_system_font = None
define gui.asian = False
# This is set in new_project before new_template_project is called,
# and provides the full path to the template project.
default gui_template_path = None
init -1 python:
import gui7
@@ -448,3 +452,52 @@ label gui_generate_images:
project.current.launch([ 'gui_images' ], wait=True)
jump front_page
label new_template_project:
# Unused in new_template_project.
$ gui_size = (1920, 1080)
$ gui_color = (DARK_COLORS[0], "#000000", False)
python hide:
width, height = gui_size
accent, boring, light = gui_color
prefix = os.path.join(project_dir, "game")
template = os.path.join(gui_template_path, "game")
# Most of this isn't actually used.
p = gui7.GuiParameters(
prefix,
template,
width,
height,
accent,
boring,
light,
_preferences.language,
False,
True,
True,
project_name,
)
interface.processing(_("Creating the new project..."))
with interface.error_handling(_("creating a new project")):
gui7.generate_minimal(p)
# Activate the project.
with interface.error_handling(_("activating the new project")):
project.manager.scan()
project.Select(project.manager.get(project_name))()
call update_renpy_strings_common
python hide:
if gui.project_system_font:
with open(os.path.join(project.current.gamedir, "tl/None/common.rpym"), "ab") as f:
f.write("define gui.system_font = {!r}\r\n".format(gui.project_system_font).encode("utf-8"))
jump front_page
+58 -9
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -25,8 +25,18 @@ from gui7.parameters import GuiParameters
import renpy.arguments
import os
import shutil
def finish(p):
for dn in [ "images", "audio" ]:
fulldn = os.path.join(p.prefix, dn)
if not os.path.exists(fulldn):
os.mkdir(fulldn)
def generate_gui(p):
ImageGenerator(p).generate_all()
@@ -36,12 +46,40 @@ def generate_gui(p):
CodeGenerator(p).copy_script("script.rpy")
CodeGenerator(p).copy_files()
for dn in [ "images", "audio" ]:
finish(p)
fulldn = os.path.join(p.prefix, dn)
if not os.path.exists(fulldn):
os.mkdir(fulldn)
def generate_minimal(p):
# Copy the template over.
os.makedirs(os.path.dirname(p.prefix), 0o777)
shutil.copytree(p.template, p.prefix)
def delete(fn):
fn = os.path.join(p.prefix, fn)
if os.path.isdir(fn):
shutil.rmtree(fn)
elif os.path.exists(fn):
os.unlink(fn)
# Prune directories.
delete("cache")
delete("saves")
delete("tl")
# Prune files to be regenerated.
delete("gui.rpy")
delete("screens.rpy")
delete("options.rpy")
# Generate files.
CodeGenerator(p).generate_code("gui.rpy")
CodeGenerator(p).generate_code("screens.rpy")
CodeGenerator(p).generate_code("options.rpy")
CodeGenerator(p).copy_files()
finish(p)
def generate_gui_command():
@@ -60,7 +98,9 @@ def generate_gui_command():
ap.add_argument("--start", default=False, action="store_true", help="Starts a new project, replacing images and code.")
ap.add_argument("--replace-images", default=False, action="store_true", help="True if existing images should be overwritten.")
ap.add_argument("--replace-code", default=False, action="store_true", help="True if an existing gui.rpy file should be overwritten.")
ap.add_argument("--update-code", default=False, action="store_true", help="True if an existing gui.rpy file should be update.")
ap.add_argument("--update-code", default=False, action="store_true", help="True if an existing gui.rpy file should be updated.")
ap.add_argument("--minimal", default=False, action="store_true", help="Only update option.rpy and translations.")
args = ap.parse_args()
@@ -69,10 +109,16 @@ def generate_gui_command():
args.replace_code = True
args.update_code = True
if args.minimal:
args.replace_code = True
args.update_code = True
prefix = os.path.join(args.target, "game")
if not os.path.isdir(prefix):
ap.error("{} does not appear to be a Ren'Py game.".format(prefix))
if os.path.exists(args.target):
if not os.path.isdir(prefix):
ap.error("{} does not appear to be a Ren'Py game.".format(prefix))
template = os.path.join(args.template, "game")
@@ -94,6 +140,9 @@ def generate_gui_command():
os.path.basename(args.target),
)
generate_gui(p)
if args.minimal:
generate_minimal(p)
else:
generate_gui(p)
renpy.arguments.register_command("generate_gui", generate_gui_command)
+15 -6
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -121,8 +121,13 @@ class CodeGenerator(object):
else:
template = os.path.join(self.p.template, filename)
with codecs.open(template, "r", "utf-8") as f:
self.lines = [ i.rstrip().replace(u"\ufeff", "") for i in f ]
if not os.path.exists(template):
return False
else:
with codecs.open(template, "r", "utf-8") as f:
self.lines = [ i.rstrip().replace(u"\ufeff", "") for i in f ]
return True
def remove_scale(self):
@@ -386,7 +391,9 @@ class CodeGenerator(object):
if not os.path.exists(src):
src = os.path.join(self.p.template, name)
self.load_template(src)
if not self.load_template(src):
return
self.remove_scale()
self.write_target(dst)
@@ -401,7 +408,8 @@ class CodeGenerator(object):
if not self.p.update_code:
return
self.load_template(fn)
if not self.load_template(fn):
return
if defines:
self.update_gui_defines()
@@ -422,7 +430,8 @@ class CodeGenerator(object):
if os.path.exists(target):
return
self.load_template(fn)
if not self.load_template(fn):
return
self.translate_strings()
self.translate_comments()
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+6 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -61,7 +61,11 @@ class GuiParameters(object):
self.muted_color = self.accent_color.shade(.4)
self.hover_muted_color = self.accent_color.shade(.6)
self.menu_color = self.accent_color.replace_hsv_saturation(.25).replace_value(.5)
if light:
self.menu_color = self.accent_color.replace_hsv_saturation(.25).replace_value(.75)
else:
self.menu_color = self.accent_color.replace_hsv_saturation(.25).replace_value(.25)
self.title_color = self.accent_color.replace_hsv_saturation(.5).replace_value(1.0)
if light:
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -102,7 +102,7 @@ label install_live2d:
(r".*/Core/dll/windows/x86/(Live2DCubismCore.dll)", _prefix + r"windows-i686/\1"),
])
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-4-*.zip", patterns)
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-[45]-*.zip", patterns)
jump front_page
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -459,7 +459,7 @@ def manifest(url, renpy=False, insecure=False):
with open(_path("temp:manifest.py.sig"), "rb") as f:
sig = f.read()
key = ecdsa.VerifyingKey.from_pem(_renpy.exports.file("renpy_ecdsa_public.pem").read())
key = ecdsa.VerifyingKey.from_pem(_renpy.exports.open_file("renpy_ecdsa_public.pem").read())
if not key.verify(sig, manifest):
error(_("The manifest signature is not valid."))
+19 -22
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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,48 +22,45 @@
################################################################################
# Interface actions.
init python in interface:
from store import OpenURL, config, Return, _preferences
from store import OpenURL, config, Return, _preferences, persistent
import store
import os.path
import contextlib
RENPY_URL = "http://www.renpy.org"
DOC_PATH = os.path.join(config.renpy_base, "doc/index.html")
DOC_PATH = os.path.join(config.renpy_base, "doc/")
DOC_URL = "http://www.renpy.org/doc/html/"
DOC_LOCAL_URL = "file:///" + DOC_PATH
LICENSE_PATH = os.path.join(config.renpy_base, "doc/license.html")
LICENSE_URL = "http://www.renpy.org/doc/html/license.html"
local_doc_exists = os.path.exists(DOC_PATH)
if os.path.exists(DOC_PATH):
DOC_LOCAL_URL = "file:///" + DOC_PATH
else:
DOC_LOCAL_URL = None
def get_doc_url(page):
"""
Returns the URL to the documentation page.
"""
if os.path.exists(LICENSE_PATH):
LICENSE_LOCAL_URL = "file:///" + LICENSE_PATH
else:
LICENSE_LOCAL_URL = None
if local_doc_exists and not persistent.use_web_doc:
from urllib.parse import urljoin
from urllib.request import pathname2url
def OpenDocumentation():
return urljoin('file:', pathname2url(DOC_PATH + page))
else:
return DOC_URL + page
def OpenDocumentation(page="index.html"):
"""
An action that opens the documentation.
"""
if DOC_LOCAL_URL is not None:
return OpenURL(DOC_LOCAL_URL)
else:
return OpenURL(DOC_URL)
return OpenURL(get_doc_url(page))
def OpenLicense():
"""
An action that opens the license.
"""
if LICENSE_LOCAL_URL is not None:
return OpenURL(LICENSE_LOCAL_URL)
else:
return OpenURL(LICENSE_URL)
return OpenDocumentation("license.html")
def get_sponsor_url():
"""
+8 -5
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -59,6 +59,7 @@ init python:
if RENIOS_PATH:
import renios.create
import renios.image
import renios.interface
def IOSState():
if not RENIOS_PATH:
@@ -123,17 +124,19 @@ init python:
return os.path.join(persistent.xcode_projects_directory, xcode_name(p.name))
def ios_create(p=None, gui=True, target=None):
project.current.update_dump(force=True, gui=gui)
if p is None:
p = project.current
p.update_dump(force=True, gui=gui)
name = project.current.dump.get("name", None)
version = project.current.dump.get("version", None)
name = p.dump.get("name", None)
version = p.dump.get("version", None)
dest = xcode_project(p, target)
if gui:
iface = MobileInterface("ios")
else:
iface = rapt.interface.Interface()
iface = renios.interface.Interface()
if os.path.exists(dest):
if not iface.yesno(_("The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?")):
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+13 -125
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -25,34 +25,6 @@ init python:
import time
import re
def check_language_support():
language = _preferences.language
new = False
legacy = False
# Check for a translation of the words "New GUI Interface".
if (language is None) or (__("New GUI Interface") != "New GUI Interface"):
new = True
try:
if (language is None) or os.path.exists(os.path.join(config.renpy_base, "templates", language)):
legacy = True
except Exception:
pass
if new and legacy:
store.language_support = _("Both interfaces have been translated to your language.")
elif new:
store.language_support = _("Only the new GUI has been translated to your language.")
elif legacy:
store.language_support = _("Only the legacy theme interface has been translated to your language.")
else:
store.language_support = _("Neither interface has been translated to your language.")
label new_project:
@@ -66,22 +38,21 @@ label new_project:
$ interface.info(_("Warning : you are using Ren'Py 7. It is recommended to start new projects using Ren'Py 8 instead."))
python:
if persistent.legacy:
new_project_language = __("{#language name and font}")
gui_kind = "new_gui_project"
check_language_support()
# When translating this, feel free to replace [new_project_language] with the translation of your language.
interface.info(_("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."), cancel=Jump("front_page"))
gui_kind = interface.choice(
_("Which interface would you like to use? The new GUI has a modern look, supports wide screens and mobile devices, and is easier to customize. Legacy themes might be necessary to work with older example code.\n\n[language_support!t]\n\nIf in doubt, choose the new GUI, then click Continue on the bottom-right."),
[ ( 'new_gui_project', _("New GUI Interface") ), ( 'new_theme_project', _("Legacy Theme Interface")) ],
"new_gui_project",
python:
if project.manager.templates:
gui_kind, gui_template_path = interface.choice(
_("Please select a template project to use."),
[ ( ("new_gui_project", None), _("Do not use a template project.") ) ] +
[ ( ("new_template_project", p.path ), p.name) for p in project.manager.templates ],
("new_gui_project", None),
cancel=Jump("front_page"),
)
else:
new_project_language = __("{#language name and font}")
gui_kind = "new_gui_project"
# When translating this, feel free to replace [new_project_language] with the translation of your language.
interface.info(_("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."), cancel=Jump("front_page"))
)
python:
project_name = ""
@@ -111,86 +82,3 @@ label new_project:
break
jump expression gui_kind
screen select_template:
default result = project.manager.get("english")
frame:
style_group "l"
style "l_root"
window:
has vbox
label _("Choose Project Template")
hbox:
frame:
style "l_indent"
xmaximum ONETHIRD
viewport:
scrollbars "vertical"
vbox:
for p in project.manager.templates:
textbutton "[p.name!q]" action SetScreenVariable("result", p) style "l_list"
frame:
style "l_indent"
xmaximum TWOTHIRDS
text _("Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'.")
textbutton _("Return") action Jump("front_page") style "l_left_button"
textbutton _("Continue") action Return(result) style "l_right_button"
label new_theme_project:
python hide:
if len(project.manager.templates) == 1:
template = project.manager.templates[0]
else:
template = renpy.call_screen("select_template")
template_path = template.path
with interface.error_handling(_("creating a new project")):
shutil.copytree(template_path, project_dir, symlinks=False)
# Delete the tmp directory, if it exists.
if os.path.isdir(os.path.join(project_dir, "tmp")):
shutil.rmtree(os.path.join(project_dir, "tmp"))
# Delete project.json, which must exist.
os.unlink(os.path.join(project_dir, "project.json"))
# Change the save directory in options.rpy
fn = os.path.join(project_dir, "game/options.rpy")
with open(fn, "rb") as f:
options = f.read().decode("utf-8")
options = options.replace("PROJECT_NAME", project_name)
options = options.replace("UNIQUE", str(int(time.time())))
with open(fn, "wb") as f:
f.write(options.encode("utf-8"))
font = template.data.get("font", None)
if font is not None:
src = os.path.join(config.gamedir, "fonts", font)
dst = os.path.join(project_dir, "game", "tl", "None", font)
shutil.copy(src, dst)
# Activate the project.
with interface.error_handling(_("activating the new project")):
project.manager.scan()
project.Select(project.manager.get(project_name))()
call choose_theme_callable
jump front_page
+5 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -184,7 +184,10 @@ init -1 python hide:
#####################
# More customizations can go here.
config.sound = False
config.has_sound = False
config.has_music = False
config.has_voice = False
config.force_sound = False
config.quit_action = Quit(confirm=False)
config.window_icon = "images/logo.png"
config.has_autosave = False
+27 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -362,6 +362,8 @@ init python in distribute:
class RPUPackage(object):
generator = None
def __init__(self, directory, variant):
import renpy.update.common
@@ -381,7 +383,30 @@ init python in distribute:
def close(self, progress=None):
import renpy.update.generate
renpy.update.generate.BlockGenerator(self.variant, self.file_list, self.directory, progress)
if RPUPackage.generator is None:
RPUPackage.generator = renpy.update.generate.BlockGenerator(self.directory)
RPUPackage.generator.generate(self.variant, self.file_list, progress)
@staticmethod
def reset():
RPUPackage.generator = None
class NullPackage(object):
"""
A package format that doesn't create an output file,
only updates.
"""
def add_file(self, name, path, xbit):
return
def add_directory(self, name, _path):
return
def close(self, progress=None):
return
parallel_threads = [ ]
+64 -31
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -21,9 +21,8 @@
default persistent.show_edit_funcs = True
default persistent.windows_console = False
default persistent.lint_options = { # the ones which should be enabled by default
"--orphan-tl",
}
default persistent.lint_options = set()
default persistent.use_web_doc = False
init python:
from math import ceil
@@ -48,14 +47,30 @@ init python:
bound = ceil(len(rv)/3.)
return (rv[:bound], rv[bound:2*bound], rv[2*bound:])
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
class EnsureProjectsTxt(Action):
"""
Ensures the projects.txt file exists before it's opened.
"""
def __call__(self):
fn = os.path.join(project.manager.projects_directory, "projects.txt")
if os.path.exists(fn):
return
with open(fn, "w") as f:
f.write("""\
# This file can be used to add projects not in the projects directory
# by listing the full path to each project, one per line.
""")
default persistent.force_new_tutorial = False
default persistent.sponsor_message = True
default persistent.daily_update_check = True
@@ -67,6 +82,9 @@ default persistent.last_update_check = datetime.date.today()
# Should we try to skip the splashscreen?
default persistent.skip_splashscreen = False
# Should we prefer rpu updates?
default persistent.prefer_rpu = True
init python:
if not persistent.daily_update_check_once:
persistent.daily_update_check_once = True
@@ -74,14 +92,14 @@ init python:
default preference_tab = "general"
define preference_tabs = {
"general" : _("General"),
"options" : _("Options"),
"theme" : _("Theme"),
"install" : _("Install Libraries"),
"actions" : _("Actions"),
"lint" : _("Lint Options"),
}
define preference_tabs = (
("general", _("General")),
("options", _("Options")),
("theme", _("Theme")),
("install", _("Install Libraries")),
("actions", _("Actions")),
("lint", _("Lint")),
)
screen preferences():
@@ -113,7 +131,7 @@ screen preferences():
add HALF_SPACER
for i, l in preference_tabs.items():
for i, l in preference_tabs:
textbutton l action SetVariable("preference_tab", i) style "l_list"
if preference_tab == "general":
@@ -162,10 +180,7 @@ screen preferences():
add HALF_SPACER
frame style "l_indent":
if persistent.editor:
textbutton persistent.editor action Jump("editor_preference") alt _("Text editor: [text]")
else:
textbutton _("Not Set") action Jump("editor_preference") alt _("Text editor: [text]")
textbutton (persistent.editor or _("Not Set")) action Jump("editor_preference") alt _("Text editor: [text]")
add SPACER
@@ -239,10 +254,16 @@ screen preferences():
textbutton _("Show edit file section") style "l_checkbox" action ToggleField(persistent, "show_edit_funcs")
textbutton _("Large fonts") style "l_checkbox" action [ ToggleField(persistent, "large_print"), renpy.utter_restart ]
if interface.local_doc_exists:
textbutton _("Prefer the web documentation") style "l_checkbox" action ToggleField(persistent, "use_web_doc")
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
textbutton _("Restore window position") style "l_checkbox" action Preference("restore window position", "toggle")
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
textbutton _("Prefer RPU updates") style "l_checkbox" action ToggleField(persistent, "prefer_rpu")
elif preference_tab == "theme":
@@ -269,7 +290,9 @@ screen preferences():
add SPACER
text _("Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}.")
$ skins_url = interface.get_doc_url("skins.html")
text _("Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}.")
elif preference_tab == "install":
@@ -312,6 +335,14 @@ screen preferences():
add HALF_SPACER
textbutton _("Open launcher project") style "l_nonbox" action [ project.Select("launcher"), Jump("front_page") ]
textbutton _("Open projects.txt"):
style "l_nonbox"
if project.manager.projects_directory:
action [
EnsureProjectsTxt(),
editor.EditAbsolute(os.path.join(project.manager.projects_directory, "projects.txt"))
]
textbutton _("Reset window size") style "l_nonbox" action Preference("display", 1.0)
textbutton _("Clean temporary files") style "l_nonbox" action Jump("clean_tmp")
@@ -334,19 +365,21 @@ screen preferences():
add HALF_SPACER
textbutton _("Orphan translations"):
textbutton _("Check for orphan/obsolete translations"):
style "l_checkbox"
action ToggleSetMembership(persistent.lint_options, "--orphan-tl")
textbutton _("Parameters overriding builtin names"):
action InvertSelected(ToggleSetMembership(persistent.lint_options, "--no-orphan-tl"))
textbutton _("Check parameters shadowing reserved names"):
style "l_checkbox"
action ToggleSetMembership(persistent.lint_options, "--builtins-parameters")
textbutton _("Word count and character count for speaking characters"):
action ToggleSetMembership(persistent.lint_options, "--reserved-parameters")
textbutton _("Print block, word, and character counts by speaking character."):
style "l_checkbox"
action ToggleSetMembership(persistent.lint_options, "--words-char-count")
add SPACER
textbutton _("Check Script (Lint)") action Jump("lint")
action ToggleSetMembership(persistent.lint_options, "--by-character")
textbutton _("Unclosed text tags"):
style "l_checkbox"
action ToggleSetMembership(persistent.lint_options, "--check-unclosed-tags")
textbutton _("Show all unreachable blocks and orphaned translations."):
style "l_checkbox"
action ToggleSetMembership(persistent.lint_options, "--all-problems")
textbutton _("Return") action Jump("front_page") style "l_left_button"
+6 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -488,14 +488,11 @@ init python in project:
if self.projects_directory is not None:
self.scan_directory(self.projects_directory)
self.scan_directory(config.renpy_base)
self.scan_directory(os.path.join(config.renpy_base, "templates"))
self.projects.sort(key=lambda p : p.name.lower())
self.templates.sort(key=lambda p : p.name.lower())
# Select the default project.
if persistent.active_project is not None:
p = self.get(persistent.active_project)
@@ -559,6 +556,10 @@ init python in project:
for path in f:
path = path.strip()
if path.startswith("#"):
continue
if len(path) > 0:
self.scan_directory_direct(path)
@@ -597,6 +598,7 @@ init python in project:
if project_type == "hidden":
pass
elif project_type == "template":
self.projects.append(p)
self.templates.append(p)
else:
self.projects.append(p)
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -355,8 +355,8 @@ style l_left_button_text is l_right_button_text
style l_root is l_default:
background BACKGROUND
xpadding 10
top_padding 64
bottom_padding 128
top_padding 32
bottom_padding 120
# An inner window.
style l_window is l_default:
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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-2023 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2024 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
@@ -494,8 +494,8 @@ translate arabic strings:
new "النقر بالزر الأيمن"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "تحريك عجلة الفأرة لأعلى\nClick Rollback Side"
old "Mouse Wheel Up"
new "تحريك عجلة الفأرة لأعلى"
# screens.rpy:1066
old "Mouse Wheel Down"
+978
View File
@@ -0,0 +1,978 @@
translate danish strings:
# renpy/common/00accessibility.rpy:28
old "Self-voicing disabled."
new "Automatisk oplæsning deaktiveret."
# renpy/common/00accessibility.rpy:29
old "Clipboard voicing enabled. "
new "Oplæsning af udklipsholder aktiveret."
# renpy/common/00accessibility.rpy:30
old "Self-voicing enabled. "
new "Automatisk oplæsning aktiveret."
# renpy/common/00accessibility.rpy:32
old "bar"
new "bjælke"
# renpy/common/00accessibility.rpy:33
old "selected"
new "valgt"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "visningsport"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
new "vandret rulning"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
new "lodret rulning"
# renpy/common/00accessibility.rpy:37
old "activate"
new "aktivér"
# renpy/common/00accessibility.rpy:38
old "deactivate"
new "deaktiver"
# renpy/common/00accessibility.rpy:39
old "increase"
new "øg"
# renpy/common/00accessibility.rpy:40
old "decrease"
new "sænk"
# renpy/common/00accessibility.rpy:138
old "Font Override"
new "Tilsidesættelse af skrifttype"
# renpy/common/00accessibility.rpy:142
old "Default"
new "Standard"
# renpy/common/00accessibility.rpy:146
old "DejaVu Sans"
new "DejaVu Sans"
# renpy/common/00accessibility.rpy:150
old "Opendyslexic"
new "Opendyslexic"
# renpy/common/00accessibility.rpy:156
old "Text Size Scaling"
new "Skalering af skriftstørrelse"
# renpy/common/00accessibility.rpy:162
old "Reset"
new "Nulstil"
# renpy/common/00accessibility.rpy:168
old "Line Spacing Scaling"
new "Skalering af linjeafstand"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
new "Tekst med høj kontrast"
# renpy/common/00accessibility.rpy:182
old "Enable"
new "Slå til"
# renpy/common/00accessibility.rpy:186
old "Disable"
new "Slå fra"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing"
new "Automatisk oplæsning"
# renpy/common/00accessibility.rpy:197
old "Off"
new "Fra"
# renpy/common/00accessibility.rpy:201
old "Text-to-speech"
new "Tekst til tale"
# renpy/common/00accessibility.rpy:205
old "Clipboard"
new "Udklipsholder"
# renpy/common/00accessibility.rpy:209
old "Debug"
new "Fejlsøgning"
# renpy/common/00accessibility.rpy:223
old "Self-Voicing Volume Drop"
new "Lydstyrkesænkning ved automatisk oplæsning"
# renpy/common/00accessibility.rpy:234
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 "Indstillingerne i denne menu er tiltænkt at forbedre tilgængelighed. De virker muligvis ikke med alle spil, og visse kombinationer af indstillinger gør muligvis spillet uspilleligt. Dette er ikke et problem med spillet eller spilmotoren. Prøv at bevare den originale skriftstørrelse for at opnå det bedste resultat væd ændring af skrifttype."
# renpy/common/00action_file.rpy:26
old "{#weekday}Monday"
new "{#weekday}mandag"
# renpy/common/00action_file.rpy:26
old "{#weekday}Tuesday"
new "{#weekday}tirsdag"
# renpy/common/00action_file.rpy:26
old "{#weekday}Wednesday"
new "{#weekday}onsdag"
# renpy/common/00action_file.rpy:26
old "{#weekday}Thursday"
new "{#weekday}torsdag"
# renpy/common/00action_file.rpy:26
old "{#weekday}Friday"
new "{#weekday}fredag"
# renpy/common/00action_file.rpy:26
old "{#weekday}Saturday"
new "{#weekday}lørdag"
# renpy/common/00action_file.rpy:26
old "{#weekday}Sunday"
new "{#weekday}søndag"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Mon"
new "{#weekday_short}man"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Tue"
new "{#weekday_short}tir"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Wed"
new "{#weekday_short}ons"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Thu"
new "{#weekday_short}tor"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Fri"
new "{#weekday_short}fre"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Sat"
new "{#weekday_short}lør"
# renpy/common/00action_file.rpy:37
old "{#weekday_short}Sun"
new "{#weekday_short}søn"
# renpy/common/00action_file.rpy:47
old "{#month}January"
new "{#month}januar"
# renpy/common/00action_file.rpy:47
old "{#month}February"
new "{#month}februar"
# renpy/common/00action_file.rpy:47
old "{#month}March"
new "{#month}marts"
# renpy/common/00action_file.rpy:47
old "{#month}April"
new "{#month}april"
# renpy/common/00action_file.rpy:47
old "{#month}May"
new "{#month}maj"
# renpy/common/00action_file.rpy:47
old "{#month}June"
new "{#month}juni"
# renpy/common/00action_file.rpy:47
old "{#month}July"
new "{#month}juli"
# renpy/common/00action_file.rpy:47
old "{#month}August"
new "{#month}august"
# renpy/common/00action_file.rpy:47
old "{#month}September"
new "{#month}september"
# renpy/common/00action_file.rpy:47
old "{#month}October"
new "{#month}oktober"
# renpy/common/00action_file.rpy:47
old "{#month}November"
new "{#month}november"
# renpy/common/00action_file.rpy:47
old "{#month}December"
new "{#month}december"
# renpy/common/00action_file.rpy:63
old "{#month_short}Jan"
new "{#month_short}jan"
# renpy/common/00action_file.rpy:63
old "{#month_short}Feb"
new "{#month_short}feb"
# renpy/common/00action_file.rpy:63
old "{#month_short}Mar"
new "{#month_short}mar"
# renpy/common/00action_file.rpy:63
old "{#month_short}Apr"
new "{#month_short}apr"
# 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}jun"
# renpy/common/00action_file.rpy:63
old "{#month_short}Jul"
new "{#month_short}jul"
# renpy/common/00action_file.rpy:63
old "{#month_short}Aug"
new "{#month_short}aug"
# renpy/common/00action_file.rpy:63
old "{#month_short}Sep"
new "{#month_short}sep"
# renpy/common/00action_file.rpy:63
old "{#month_short}Oct"
new "{#month_short}okt"
# renpy/common/00action_file.rpy:63
old "{#month_short}Nov"
new "{#month_short}nov"
# renpy/common/00action_file.rpy:63
old "{#month_short}Dec"
new "{#month_short}dec"
# renpy/common/00action_file.rpy:258
old "%b %d, %H:%M"
new "%d. %b, %H:%M"
# renpy/common/00action_file.rpy:378
old "Save slot %s: [text]"
new "Gem plads %s: [text]"
# renpy/common/00action_file.rpy:461
old "Load slot %s: [text]"
new "Indlæs plads %s: [text]"
# renpy/common/00action_file.rpy:514
old "Delete slot [text]"
new "Slet plads [text]"
# renpy/common/00action_file.rpy:593
old "File page auto"
new "Filside auto"
# renpy/common/00action_file.rpy:595
old "File page quick"
new "Filside hurtig"
# renpy/common/00action_file.rpy:597
old "File page [text]"
new "Filside [text]"
# renpy/common/00action_file.rpy:796
old "Next file page."
new "Næste filside."
# renpy/common/00action_file.rpy:868
old "Previous file page."
new "Forrige filside."
# renpy/common/00action_file.rpy:929
old "Quick save complete."
new "Hurtiggemning fuldført."
# renpy/common/00action_file.rpy:944
old "Quick save."
new "Hurtiggem."
# renpy/common/00action_file.rpy:963
old "Quick load."
new "Hurtigindlæs."
# renpy/common/00action_other.rpy:383
old "Language [text]"
new "Sprog [text]"
# renpy/common/00action_other.rpy:724
old "Open [text] directory."
new "Åbn mappen [text]."
# renpy/common/00director.rpy:705
old "The interactive director is not enabled here."
new "Det interaktive instruktionsværktøj er ikke aktiveret her."
# renpy/common/00director.rpy:1504
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1510
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1574
old "Done"
new "Færdig"
# renpy/common/00director.rpy:1584
old "(statement)"
new "(sætning)"
# renpy/common/00director.rpy:1585
old "(tag)"
new "(mærke)"
# renpy/common/00director.rpy:1586
old "(attributes)"
new "(attributter)"
# renpy/common/00director.rpy:1587
old "(transform)"
new "(transformation)"
# renpy/common/00director.rpy:1612
old "(transition)"
new "(overgang)"
# renpy/common/00director.rpy:1624
old "(channel)"
new "(kanal)"
# renpy/common/00director.rpy:1625
old "(filename)"
new "(filnavn)"
# renpy/common/00director.rpy:1654
old "Change"
new "Ændr"
# renpy/common/00director.rpy:1656
old "Add"
new "Tilføj"
# renpy/common/00director.rpy:1659
old "Cancel"
new "Annuller"
# renpy/common/00director.rpy:1662
old "Remove"
new "Fjern"
# renpy/common/00director.rpy:1697
old "Statement:"
new "Sætning:"
# renpy/common/00director.rpy:1718
old "Tag:"
new "Mærke:"
# renpy/common/00director.rpy:1734
old "Attributes:"
new "Attributter:"
# renpy/common/00director.rpy:1745
old "Click to toggle attribute, right click to toggle negative attribute."
new "Klik for at slå attributter til/fra, højreklik for at slå negative attributter til/fra."
# renpy/common/00director.rpy:1757
old "Transforms:"
new "Transformationer:"
# renpy/common/00director.rpy:1768
old "Click to set transform, right click to add to transform list."
new "Klik for at stille transformation, højreklik for at tilføje til transformationsliste."
# renpy/common/00director.rpy:1780
old "Behind:"
new "Bagved:"
# renpy/common/00director.rpy:1789
old "Click to set, right click to add to behind list."
new "Klik for at stille, højreklik for at tilføje til bagvedliste."
# renpy/common/00director.rpy:1801
old "Transition:"
new "Overgang:"
# renpy/common/00director.rpy:1819
old "Channel:"
new "Kanal:"
# renpy/common/00director.rpy:1837
old "Audio Filename:"
new "Lydfilnavn:"
# renpy/common/00gui.rpy:446
old "Are you sure?"
new "Er du sikker?"
# renpy/common/00gui.rpy:447
old "Are you sure you want to delete this save?"
new "Vil du gerne slette denne gemmefil?"
# renpy/common/00gui.rpy:448
old "Are you sure you want to overwrite your save?"
new "Vil du gerne overskrive din gemmefil?"
# renpy/common/00gui.rpy:449
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Ved indlæsning vil ugemte fremskridt gå tabt.\nVil du gerne gøre dette?"
# renpy/common/00gui.rpy:450
old "Are you sure you want to quit?"
new "Vil du gerne afslutte?"
# renpy/common/00gui.rpy:451
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Vil du gerne vende tilbage til hovedmenuen?\nUgemte fremskridt vil gå tabt."
# renpy/common/00gui.rpy:452
old "Are you sure you want to end the replay?"
new "Vil du gerne afslutte genafspilningnen?"
# renpy/common/00gui.rpy:453
old "Are you sure you want to begin skipping?"
new "Vil du gerne påbegynde overspringning?"
# renpy/common/00gui.rpy:454
old "Are you sure you want to skip to the next choice?"
new "Vil du gerne springe videre til det næste valg?"
# renpy/common/00gui.rpy:455
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "Vil du gerne springe over uset dialog til det næste valg?"
# renpy/common/00gui.rpy:456
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
new "Denne gemmefil blev oprettet på en anden enhed. Gemmefiler konstrueret med ondsindet hensigt kan skade din computer. Stoler du på den, der har oprettet gemmefilen, og på alle, der kan have ændret filen?"
# renpy/common/00gui.rpy:457
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
new "Stoler du på enheden, som gemmefilen oprettedes på? Du bør kun vælge ja, hvis du er enhedens eneste bruger."
# renpy/common/00keymap.rpy:322
old "Failed to save screenshot as %s."
new "Kunne ikke gemme skærmbillede som %s."
# renpy/common/00keymap.rpy:334
old "Saved screenshot as %s."
new "Gemte skærmbillede som %s."
# renpy/common/00library.rpy:248
old "Skip Mode"
new "Overspringstilstand"
# renpy/common/00library.rpy:335
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 "Dette program indeholder gratis software under forskellige licenser, herunder MIT-licensen og GNU Lesser General Public License. En komplet liste over software, inklusiv links til fulde kildekoder, kan findes {a=https://www.renpy.org/l/license}her{/a}."
# renpy/common/00preferences.rpy:271
old "display"
new "skærmvisning"
# renpy/common/00preferences.rpy:287
old "transitions"
new "overgange"
# renpy/common/00preferences.rpy:296
old "skip transitions"
new "spring overgange over"
# renpy/common/00preferences.rpy:298
old "video sprites"
new "videosprites"
# renpy/common/00preferences.rpy:307
old "show empty window"
new "vis tomt vindue"
# renpy/common/00preferences.rpy:316
old "text speed"
new "teksthastighed"
# renpy/common/00preferences.rpy:324
old "joystick"
new "styrepind"
# renpy/common/00preferences.rpy:324
old "joystick..."
new "styrepind..."
# renpy/common/00preferences.rpy:331
old "skip"
new "spring over"
# renpy/common/00preferences.rpy:334
old "skip unseen [text]"
new "spring over uset [text]"
# renpy/common/00preferences.rpy:339
old "skip unseen text"
new "spring over uset tekst"
# renpy/common/00preferences.rpy:341
old "begin skipping"
new "påbegynd overspringning"
# renpy/common/00preferences.rpy:345
old "after choices"
new "efter valg"
# renpy/common/00preferences.rpy:352
old "skip after choices"
new "spring over efter valg"
# renpy/common/00preferences.rpy:354
old "auto-forward time"
new "auto-fremad-tid"
# renpy/common/00preferences.rpy:368
old "auto-forward"
new "auto-fremad"
# renpy/common/00preferences.rpy:375
old "Auto forward"
new "auto-fremad"
# renpy/common/00preferences.rpy:378
old "auto-forward after click"
new "auto-fremad efter klik"
# renpy/common/00preferences.rpy:387
old "automatic move"
new "automatisk bevægelse"
# renpy/common/00preferences.rpy:396
old "wait for voice"
new "vent på stemme"
# renpy/common/00preferences.rpy:405
old "voice sustain"
new "stemmebevarelse"
# renpy/common/00preferences.rpy:414
old "self voicing"
new "automatisk oplæsning"
# renpy/common/00preferences.rpy:423
old "self voicing volume drop"
new "lydstyrkesænkning ved automatisk oplæsning"
# renpy/common/00preferences.rpy:431
old "clipboard voicing"
new "oplæsning af udklipsholder"
# renpy/common/00preferences.rpy:440
old "debug voicing"
new "oplæsning af fejlsøgning"
# renpy/common/00preferences.rpy:449
old "emphasize audio"
new "fremhæv lyd"
# renpy/common/00preferences.rpy:458
old "rollback side"
new "tilbagerulningsside"
# renpy/common/00preferences.rpy:468
old "gl powersave"
new "gl-strømbesparelse"
# renpy/common/00preferences.rpy:474
old "gl framerate"
new "gl-billedhastighed"
# renpy/common/00preferences.rpy:477
old "gl tearing"
new "gl-overrivning"
# renpy/common/00preferences.rpy:480
old "font transform"
new "skrifttransformation"
# renpy/common/00preferences.rpy:483
old "font size"
new "skriftstørrelse"
# renpy/common/00preferences.rpy:491
old "font line spacing"
new "linjeafstand for skrift"
# renpy/common/00preferences.rpy:499
old "system cursor"
new "systemmarkør"
# renpy/common/00preferences.rpy:508
old "renderer menu"
new "optegningsmenu"
# renpy/common/00preferences.rpy:511
old "accessibility menu"
new "tilgængelighedsmenu"
# renpy/common/00preferences.rpy:514
old "high contrast text"
new "tekst med høj kontrast"
# renpy/common/00preferences.rpy:523
old "audio when minimized"
new "lyd ved minimeret tilstand"
# renpy/common/00preferences.rpy:532
old "audio when unfocused"
new "lyd ved ufokuseret tilstand"
# renpy/common/00preferences.rpy:541
old "web cache preload"
new "forudindlæsning af webcache"
# renpy/common/00preferences.rpy:556
old "voice after game menu"
new "stemme efter spilmenu"
# renpy/common/00preferences.rpy:575
old "main volume"
new "primær lydstyrke"
# renpy/common/00preferences.rpy:576
old "music volume"
new "musiklydstyrke"
# renpy/common/00preferences.rpy:577
old "sound volume"
new "lydeffektlydstyrke"
# renpy/common/00preferences.rpy:578
old "voice volume"
new "stemmelydstyrke"
# renpy/common/00preferences.rpy:579
old "mute main"
new "slå primær lyd fra"
# renpy/common/00preferences.rpy:580
old "mute music"
new "slå musik fra"
# renpy/common/00preferences.rpy:581
old "mute sound"
new "slå lydeffekter fra"
# renpy/common/00preferences.rpy:582
old "mute voice"
new "slå stemmer fra"
# renpy/common/00preferences.rpy:583
old "mute all"
new "slå alle fra"
# renpy/common/00preferences.rpy:657
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Oplæsning af udklipsholder aktiveret. Tryk på 'shift+C' for at deaktivere."
# renpy/common/00preferences.rpy:659
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "Automatisk oplæsning ville sige \"[renpy.display.tts.last]\". Tryk på 'alt+shift+V' for at deaktivere."
# renpy/common/00preferences.rpy:661
old "Self-voicing enabled. Press 'v' to disable."
new "Automatisk oplæsning aktiveret. Tryk på 'v' for at deaktivere."
# renpy/common/00speechbubble.rpy:344
old "Speech Bubble Editor"
new "Talebobleredigering"
# renpy/common/00speechbubble.rpy:349
old "(hide)"
new "(skjul)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
new "Synkronisering hentet."
# renpy/common/00sync.rpy:190
old "Could not connect to the Ren'Py Sync server."
new "Kunne ikke oprette forbindelse til Ren'Py Sync-serveren."
# renpy/common/00sync.rpy:192
old "The Ren'Py Sync server timed out."
new "Der opstod et forbindelsestimeout til Ren'Py Sync-serveren."
# renpy/common/00sync.rpy:194
old "An unknown error occurred while connecting to the Ren'Py Sync server."
new "En ukendt fejl opstod under forbindelse til Ren'Py Sync-serveren."
# renpy/common/00sync.rpy:267
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
new "Ren'Py Sync-serveren har ikke en kopi af denne synkronisering. Synkroniserings-id'er er muligvis ugyldig eller udløbet."
# renpy/common/00sync.rpy:412
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
new "Indtast venligst dit genererede synkroniserings-id.\nIndtast aldrig et synkroniserings-id, som du ikke selv har oprettet."
# renpy/common/00sync.rpy:431
old "The sync ID is not in the correct format."
new "Synkroniserings-id'et er ikke i det korrekte format."
# renpy/common/00sync.rpy:451
old "The sync could not be decrypted."
new "Synkroniseringen kunne ikke afkodes."
# renpy/common/00sync.rpy:474
old "The sync belongs to a different game."
new "Synkroniseringen tilhører et andet spil."
# renpy/common/00sync.rpy:479
old "The sync contains a file with an invalid name."
new "Synkroniseringen indeholder en fil med et ugyldigt navn."
# renpy/common/00sync.rpy:532
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
new "Dette sender dine gemmefiler til {a=https://sync.renpy.org}Ren'Py Sync-serveren{/a}.\nVil du gerne fortsætte?"
# renpy/common/00sync.rpy:561
old "Enter Sync ID"
new "Indtast Synkroniserings-id"
# renpy/common/00sync.rpy:572
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
new "Dette kontakter {a=https://sync.renpy.org}Ren'Py Sync-serveren{/a}."
# renpy/common/00sync.rpy:599
old "Sync Success"
new "Synkronisering lykkedes"
# renpy/common/00sync.rpy:602
old "The Sync ID is:"
new "Synkroniserings-id'et er:"
# renpy/common/00sync.rpy:608
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
new "Du kan bruge dette id til at hente din gemmefil på en anden enhed.\nDenne synkronisering udløber om en time.\nRen'Py Sync støttes af {a=https://www.renpy.org/sponsors.html}Ren'Pys sponsorer{/a}."
# renpy/common/00sync.rpy:612
old "Continue"
new "Fortsæt"
# renpy/common/00sync.rpy:634
old "Sync Error"
new "Synkroniseringsfejl"
# renpy/common/00iap.rpy:219
old "Contacting App Store\nPlease Wait..."
new "Kontakter App Store\nVent venligst..."
# renpy/common/00updater.rpy:419
old "The Ren'Py Updater is not supported on mobile devices."
new "Ren'Py-opdateringsprogrammet understøttes ikke på mobilenheder."
# renpy/common/00updater.rpy:548
old "An error is being simulated."
new "En fejl simuleres."
# renpy/common/00updater.rpy:738
old "Either this project does not support updating, or the update status file was deleted."
new "Enten understøtter dette projekt ikke opdatering, eller også er opdateringsstatusfilen blevet slettet."
# renpy/common/00updater.rpy:752
old "This account does not have permission to perform an update."
new "Denne bruger har ikke tilladelse til at udføre en opdatering."
# renpy/common/00updater.rpy:755
old "This account does not have permission to write the update log."
new "Denne bruger har ikke tilladelse til at skrive opdateringsloggen."
# renpy/common/00updater.rpy:783
old "Could not verify update signature."
new "Kunne ikke efterprøve opdateringssignaturen."
# renpy/common/00updater.rpy:1084
old "The update file was not downloaded."
new "Opdateringsfilen blev ikke hentet."
# renpy/common/00updater.rpy:1102
old "The update file does not have the correct digest - it may have been corrupted."
new "Opdateringsfilen har ikke det korrekte fingeraftryk - den er muligvis blevet korrupteret."
# renpy/common/00updater.rpy:1252
old "While unpacking {}, unknown type {}."
new "Under udpakning {}, ukendt type {}"
# renpy/common/00updater.rpy:1624
old "Updater"
new "Opdateringsprogram"
# renpy/common/00updater.rpy:1635
old "This program is up to date."
new "Dette program er ajour."
# renpy/common/00updater.rpy:1637
old "[u.version] is available. Do you want to install it?"
new "[u.version] er tilgængelig. Vil du gerne installere denne?"
# renpy/common/00updater.rpy:1639
old "Preparing to download the updates."
new "Forbereder hentning af opdateringerne."
# renpy/common/00updater.rpy:1641
old "Downloading the updates."
new "Henter opdateringerne."
# renpy/common/00updater.rpy:1643
old "Unpacking the updates."
new "Udpakker opdateringerne."
# renpy/common/00updater.rpy:1647
old "The updates have been installed. The program will restart."
new "Opdateringer er blevet installeret. Programmet genstarter."
# renpy/common/00updater.rpy:1649
old "The updates have been installed."
new "Opdateringerne er blevet installeret."
# renpy/common/00updater.rpy:1651
old "The updates were cancelled."
new "Opdateringerne blev annulleret."
# renpy/common/00gallery.rpy:627
old "Image [index] of [count] locked."
new "Billede [index] af [count] låst."
# renpy/common/00gallery.rpy:647
old "prev"
new "forrige"
# renpy/common/00gallery.rpy:648
old "next"
new "næste"
# renpy/common/00gallery.rpy:649
old "slideshow"
new "diasshow"
# renpy/common/00gallery.rpy:650
old "return"
new "tilbage"
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "Tilpas director.transforms for at tilføje flere transformationer."
# renpy/common/00director.rpy:1821
old "Click to set."
new "Klik for at stille."
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "Tilpas director.transitions for at tilføje flere overgange."
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "Tilpas director.audio_channels for at tilføje flere kanaler."
# renpy/common/00preferences.rpy:573
old "restore window position"
new "gendan vinduesplacering"
# renpy/common/00speechbubble.rpy:408
old "(clear retained bubbles)"
new "(opryd bibeholdte bobler)"
# renpy/common/00updater.rpy:504
old "No update methods found."
new "Ingen opdateringsmetoder fundet."
# renpy/common/00updater.rpy:551
old "Could not download file list: "
new "Kunne ikke hente filliste:"
# renpy/common/00updater.rpy:554
old "File list digest does not match."
new "Fillistens fingeraftryk matcher ikke."
# renpy/common/00updater.rpy:2072
old "Preparing to download the game data."
new "Forbereder hentning af spildataene."
# renpy/common/00updater.rpy:2074
old "Downloading the game data."
new "Henter spildataene."
# renpy/common/00updater.rpy:2076
old "The game data has been downloaded."
new "Spildataene er blevet hentet."
# renpy/common/00updater.rpy:2078
old "An error occured when trying to download game data:"
new "En fejl opstod under forsøg på hentning af spildata:"
# renpy/common/00updater.rpy:2083
old "This game cannot be run until the game data has been downloaded."
new "Dette spil kan ikke køres, indtil spildataene er blevet hentet."
# renpy/common/00updater.rpy:2090
old "Retry"
new "Prøv igen"
# renpy/common/00accessibility.rpy:120
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "Tilgængelighedsmenu. Brug op- og ned-piletasterne til at navigere og retur til at aktivere knapper og bjælker."
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
new "Vil du gerne fortsætte fra hvor du slap?"
# renpy/common/00preferences.rpy:439
old "self voicing enable"
new "aktivér automatisk oplæsning"
# renpy/common/00preferences.rpy:441
old "self voicing disable"
new "deaktiver automatisk oplæsning"
# renpy/common/00preferences.rpy:456
old "clipboard voicing enable"
new "aktivér oplæsning af udklipsholder"
# renpy/common/00preferences.rpy:458
old "clipboard voicing disable"
new "deaktiver oplæsning af udklipsholder"
# renpy/common/00preferences.rpy:465
old "debug voicing enable"
new "aktivér oplæsning af fejlsøgning"
# renpy/common/00preferences.rpy:467
old "debug voicing disable"
new "deaktiver oplæsning af fejlsøgning"
# renpy/common/00preferences.rpy:596
old "reset"
new "nulstil"
+278
View File
@@ -0,0 +1,278 @@
translate danish strings:
# renpy/common/_developer/developer.rpym:38
old "Developer Menu"
new "Udviklermenu"
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
new "Interaktivt instruktionsværktøj (D)"
# renpy/common/_developer/developer.rpym:45
old "Reload Game (Shift+R)"
new "Genindlæs spil (Shift+R)"
# renpy/common/_developer/developer.rpym:47
old "Console (Shift+O)"
new "Konsol (Shift+O)"
# renpy/common/_developer/developer.rpym:49
old "Variable Viewer"
new "Variabelviser"
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
new "Vedvarende data-viser"
# renpy/common/_developer/developer.rpym:53
old "Image Location Picker"
new "Billedplaceringsvælger"
# renpy/common/_developer/developer.rpym:55
old "Filename List"
new "Filnavneliste"
# renpy/common/_developer/developer.rpym:59
old "Show Image Load Log (F4)"
new "Vis billedindlæsningslog (F4)"
# renpy/common/_developer/developer.rpym:62
old "Hide Image Load Log (F4)"
new "Skjul billedindlæsningslog (F4)"
# renpy/common/_developer/developer.rpym:65
old "Image Attributes"
new "Billedattributter"
# renpy/common/_developer/developer.rpym:70
old "Speech Bubble Editor (Shift+B)"
new "Talebobleredigering (Shift+B)"
# renpy/common/_developer/developer.rpym:97
old "[name] [attributes] (hidden)"
new "[name] [attributes] (skjult)"
# renpy/common/_developer/developer.rpym:101
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:151
old "Nothing to inspect."
new "Intet at inspicere."
# renpy/common/_developer/developer.rpym:162
old "Hide deleted"
new "Skjul slettede"
# renpy/common/_developer/developer.rpym:162
old "Show deleted"
new "Vis slettede"
# renpy/common/_developer/developer.rpym:318
old "Rectangle copied to clipboard."
new "Rektangel kopieret til udklipsholder."
# renpy/common/_developer/developer.rpym:321
old "Position copied to clipboard."
new "Position kopieret til udklipsholder."
# renpy/common/_developer/developer.rpym:333
old "Rectangle: %r"
new "Rektangel: %r"
# renpy/common/_developer/developer.rpym:336
old "Mouse position: %r"
new "Museposition: %r"
# renpy/common/_developer/developer.rpym:341
old "Right-click or escape to quit."
new "Højreklik eller escape for at afslutte."
# renpy/common/_developer/developer.rpym:389
old "Type to filter: "
new "Skriv for at filtrere: "
# renpy/common/_developer/developer.rpym:507
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Teksturer: [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:511
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Billedcache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:521
old "✔ "
new "✔ "
# renpy/common/_developer/developer.rpym:524
old "✘ "
new "✘ "
# renpy/common/_developer/developer.rpym:529
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}✔ forudset billede (godt){/color}\n{color=#fcc}✘ uforudset billede (dårligt){/color}\n{color=#fff}Træk for at flytte.{/color}"
# renpy/common/_developer/inspector.rpym:38
old "Displayable Inspector"
new "Inspektion af visbare elementer"
# renpy/common/_developer/inspector.rpym:61
old "Size"
new "Størrelse"
# renpy/common/_developer/inspector.rpym:65
old "Style"
new "Stil"
# renpy/common/_developer/inspector.rpym:71
old "Location"
new "Placering"
# renpy/common/_developer/inspector.rpym:122
old "Inspecting Styles of [displayable_name!q]"
new "Inspicerer stile for [displayable_name!q]"
# renpy/common/_developer/inspector.rpym:139
old "displayable:"
new "visbart element:"
# renpy/common/_developer/inspector.rpym:145
old " (no properties affect the displayable)"
new " (ingen egenskaber påvirker det visbare element)"
# renpy/common/_developer/inspector.rpym:147
old " (default properties omitted)"
new " (standardegenskaber udeladt)"
# renpy/common/_developer/inspector.rpym:185
old "<repr() failed>"
new "<repr() mislykkedes>"
# renpy/common/00console.rpy:537
old "Press <esc> to exit console. Type help for help.\n"
new "Tryk <esc> for at gå ud af konsol. Skriv help for hjælp.\n"
# renpy/common/00console.rpy:541
old "Ren'Py script enabled."
new "Ren'Py-script aktiveret" #manuskripterne eller scripting?
# renpy/common/00console.rpy:543
old "Ren'Py script disabled."
new "Ren'Py-script deaktiveret." #manuskripterne eller scripting?
# renpy/common/00console.rpy:793
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
new "help: vis denne hjælp\n help <udtryk>: vis signaturen og dokumentationen for <udtryk>"
# renpy/common/00console.rpy:817
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
new "Hjælp viser muligvis udokumenterede funktioner. Tjek venligst, om den funktion\neller klasse, du gerne vil bruge, er dokumenteret.\n\n"
# renpy/common/00console.rpy:826
old "commands:\n"
new "kommandoer:\n"
# renpy/common/00console.rpy:836
old " <renpy script statement>: run the statement\n"
new " <renpy-script-ordre>: kør ordren\n"
# renpy/common/00console.rpy:838
old " <python expression or statement>: run the expression or statement"
new " <python-udtryk eller -ordre>: kør udtrykket eller ordren"
# renpy/common/00console.rpy:846
old "clear: clear the console history"
new "clear: ryd konsolhistorikken"
# renpy/common/00console.rpy:850
old "exit: exit the console"
new "exit: gå ud af konsollen"
# renpy/common/00console.rpy:858
old "stack: print the return stack"
new "stack: udskriv returstakken"
# renpy/common/00console.rpy:880
old "load <slot>: loads the game from slot"
new "load <plads>: indlæser spillet fra plads"
# renpy/common/00console.rpy:893
old "save <slot>: saves the game in slot"
new "save <plads>: gemmer spillet på plads"
# renpy/common/00console.rpy:904
old "reload: reloads the game, refreshing the scripts"
new "reload: genindlæser spiller og genopfrisker manuskripterne"
# renpy/common/00console.rpy:912
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 <udtryk>: hold øje med et python-udtryk\n watch short: gør repræsentationen af sporede udtryk kort (standard)\n watch long: gør repræsentationen af sporede udtryk, som den er"
# renpy/common/00console.rpy:949
old "unwatch <expression>: stop watching an expression"
new "unwatch <udtryk>: stop med at holde øje med et udtryk"
# renpy/common/00console.rpy:995
old "unwatchall: stop watching all expressions"
new "unwatchall: stop med at holde øje med alle udtryk"
# renpy/common/00console.rpy:1016
old "jump <label>: jumps to label"
new "jump <label>: springer til mærkat"
# renpy/common/00console.rpy:1032
old "short: Shorten the representation of objects on the console (default)."
new "short: Forkort repræsentationen af objekter i konsollen (standard)."
# renpy/common/00console.rpy:1036
old "long: Print the full representation of objects on the console."
new "long: Skriv den fulde repræsentationen af objekter til konsollen."
# renpy/common/00console.rpy:1040
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: Aktiverer omdannelsen af unicode-tegn til undvigesekvenser i unicode-strenge."
# renpy/common/00console.rpy:1044
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: Deaktiverer omdannelsen af unicode-tegn til undvigesekvenser i unicode-strenge og skriver dem, som de er (standard)."
# renpy/common/_developer/developer.rpym:69
old "Show Translation Identifiers"
new "Vis oversættelsesidentifikatorer"
# renpy/common/_developer/developer.rpym:72
old "Hide Translation Identifiers"
new "Skjul oversættelsesidentifikatorer"
# renpy/common/_developer/developer.rpym:81
old "Show Filename and Line"
new "Vil filnavn og linje"
# renpy/common/_developer/developer.rpym:84
old "Hide Filename and Line"
new "Skjul filnavn og linje"
# renpy/common/_developer/developer.rpym:127
old "Layer [l]:"
new "Lag [l]:"
# renpy/common/_developer/developer.rpym:131
old " [name] [attributes] (hidden)"
new " [name] [attributes] (skjult)"
# renpy/common/_developer/developer.rpym:135
old " [name] [attributes]"
new " [name] [attributes]"
# renpy/common/_developer/developer.rpym:606
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff}Kopieret til udklipsholder.{/color}"
# renpy/common/_developer/developer.rpym:612
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
new "\n{color=#fff}Klik for at kopiere.\nTræk for at flytte.{/color}"
# renpy/common/_developer/developer.rpym:657
old "Click to open in editor."
new "Klik for at åbne i tekstbehandler."
+202
View File
@@ -0,0 +1,202 @@
translate danish strings:
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Optegner"
# renpy/common/00gltest.rpy:93
old "Automatically Choose"
new "Vælg automatisk"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Påtving GL-optegner"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Påtving ANGLE-optegner"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "Påtving GLES-optegner"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Påtving GL2-optegner"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "Påtving ANGLE2-optegner"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "Påtving GLES2-optegner"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "Aktivér (ingen blocklist)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Strømsparing"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Billedhastighed"
# renpy/common/00gltest.rpy:177
old "Screen"
new "Skærm"
# 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 (overrivning)"
# renpy/common/00gltest.rpy:207
old "Changes will take effect the next time this program is run."
new "Ændringer træder i kraft, næste gang dette program køres."
# renpy/common/00gltest.rpy:242
old "Performance Warning"
new "Ydeevneadvarsel"
# renpy/common/00gltest.rpy:247
old "This computer is using software rendering."
new "Denne computer bruger softwareoptegning."
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
new "Dette spil kræver brugen af GL2, som ikke kan initialiseres."
# renpy/common/00gltest.rpy:251
old "This computer has a problem displaying graphics: [problem]."
new "Denne computer har et problem med visning af grafik: [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 "Dens grafikdrivere er muligvis forældede eller fungerer ikke korrekt. Dette kan føre til langsom eller ukorrkekt grafikvisning."
# 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 "Filen {a=edit:1:log.txt}log.txt{/a} indeholder muligvis information, der kan hjælpe dig med at bestemme, hvad der er galt med din computer."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "Flere detaljer om, hvordan du fikser dette, kan findes i {a=[url]}dokumentationen{/a}."
# renpy/common/00gltest.rpy:269
old "Continue, Show this warning again"
new "Fortsæt, og vis denne advarsel igen"
# renpy/common/00gltest.rpy:273
old "Continue, Don't show warning again"
new "Fortsæt, og vis ikke advarsel igen"
# renpy/common/00gltest.rpy:281
old "Change render options"
new "Ændr optegningsindstillinger"
# renpy/common/00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "Vælg spillekontrol at kalibrere"
# renpy/common/00gamepad.rpy:35
old "No Gamepads Available"
new "Ingen spillekontroller tilgængelige"
# renpy/common/00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "Kalibrerer [name] ([i]/[total])"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Tryk eller bevæg '[control!s]' [kind]."
# renpy/common/00gamepad.rpy:68
old "Skip (A)"
new "Spring over (A)"
# renpy/common/00gamepad.rpy:71
old "Back (B)"
new "Tilbage (B)"
# renpy/common/_errorhandling.rpym:555
old "Open"
new "Åbn"
# renpy/common/_errorhandling.rpym:557
old "Opens the traceback.txt file in a text editor."
new "Åbner traceback.txt-filen i en tekstbehandler."
# renpy/common/_errorhandling.rpym:559
old "Copy BBCode"
new "Kopiér BBCode"
# renpy/common/_errorhandling.rpym:561
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "Kopierer traceback.txt-filen til udkplipsholderen som BBCode til forummer som https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:563
old "Copy Markdown"
new "Kopiér Markdown"
# renpy/common/_errorhandling.rpym:565
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "Kopierer traceback.txt-filen til udkplipsholderen som Markdown til Discord."
# renpy/common/_errorhandling.rpym:594
old "An exception has occurred."
new "En undtagelse er opstået."
# renpy/common/_errorhandling.rpym:617
old "Rollback"
new "Tilbagerulning"
# renpy/common/_errorhandling.rpym:619
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Forsøger en tilbagerulning til et forrigt tidspunkt og gør det muligt for dig at gemme eller træffe et andet valg."
# renpy/common/_errorhandling.rpym:622
old "Ignore"
new "Ignorer"
# renpy/common/_errorhandling.rpym:626
old "Ignores the exception, allowing you to continue."
new "Ignorerer undtagelsen og gør dig i stand til at fortsætte."
# renpy/common/_errorhandling.rpym:628
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignorerer undtagelsen og gør dig i stand til at fortsætte. Dette fører ofte til yderligere fejl."
# renpy/common/_errorhandling.rpym:632
old "Reload"
new "Genindlæs"
# renpy/common/_errorhandling.rpym:634
old "Reloads the game from disk, saving and restoring game state if possible."
new "Genindlæser spillet fra disken, gemmer og gendanner spilstatussen hvis muligt."
# renpy/common/_errorhandling.rpym:637
old "Console"
new "Konsol"
# renpy/common/_errorhandling.rpym:639
old "Opens a console to allow debugging the problem."
new "Åbner en konsol for at muliggøre problemløsning."
# renpy/common/_errorhandling.rpym:652
old "Quits the game."
new "Afslutter spillet."
# renpy/common/_errorhandling.rpym:673
old "Parsing the script failed."
new "Fortolkning af manuskript mislykkedes."
+442
View File
@@ -0,0 +1,442 @@
translate danish strings:
# gui/game/gui.rpy:2
old "## Initialization"
new "## Initialisering"
# 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 "## Erklæringen init offset får initialiseringserklæringerne i denne fil til at køre før init-erklæringer i enhver anden fil."
# 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 "## Ved at kalde gui.init nulstilles stilene til fornuftige standardværdier, og bredden og højden af spillet indstilles."
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
new "## Aktiver tjek efter ugyldige eller ustabile egenskaber i skærme eller transformationer"
# gui/game/gui.rpy:19
old "## GUI Configuration Variables"
new "## GUI-konfigurationsvariabler"
# gui/game/gui.rpy:23
old "## Colors"
new "## Farver"
# gui/game/gui.rpy:25
old "## The colors of text in the interface."
new "## Farverne på tekst i skærmfladen."
# gui/game/gui.rpy:27
old "## An accent color used throughout the interface to label and highlight text."
new "## En accentfarve brugt gennem hele skærmfladen til at markere og fremhæve tekst."
# gui/game/gui.rpy:31
old "## The color used for a text button when it is neither selected nor hovered."
new "## Farven brugt til en tekstknap, når den hverken er valgt eller holdes henover."
# gui/game/gui.rpy:34
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## Small-farven bruges til lille tekst, som skal være lysere/mørkere for at opnå samme effekt."
# gui/game/gui.rpy:38
old "## The color that is used for buttons and bars that are hovered."
new "## Farven, der bruges til knapper og bjælker, hvor markøren holdes henover."
# gui/game/gui.rpy:41
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 "## Farven, der bruges til en tekstknap, når den er valgt men ikke i fokus. En knap er valgt, hvis den er den nuværende skærm- eller præferenceværdi."
# gui/game/gui.rpy:45
old "## The color used for a text button when it cannot be selected."
new "## Farven, der bruges til en tekstknap, når den ikke kan vælges."
# gui/game/gui.rpy:48
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 "## Farven, der bruges til de dele af bjælker, der ikke er udfyldt. Disse bruges ikke direkte, men bruges, når bjælkebilledfilerne regenereres."
# gui/game/gui.rpy:53
old "## The colors used for dialogue and menu choice text."
new "## Farverne brugt til dialogtekst og tekst i menupunkter."
# gui/game/gui.rpy:58
old "## Fonts and Font Sizes"
new "## Skrifttyper og -størrelser"
# gui/game/gui.rpy:60
old "## The font used for in-game text."
new "## Skrifttypen brugt til tekst i spillet."
# gui/game/gui.rpy:63
old "## The font used for character names."
new "## Skrifttypen brugt til figurnavne."
# gui/game/gui.rpy:66
old "## The font used for out-of-game text."
new "## Skrifttypen brugt til tekst uden for spillet."
# gui/game/gui.rpy:69
old "## The size of normal dialogue text."
new "## Størrelsen på normal dialogtekst."
# gui/game/gui.rpy:72
old "## The size of character names."
new "## Størrelsen på figurnavne."
# gui/game/gui.rpy:75
old "## The size of text in the game's user interface."
new "## Størrelsen på tekst i spillets brugerflade."
# gui/game/gui.rpy:78
old "## The size of labels in the game's user interface."
new "## Størrelsen på mærkater i spillets brugeflade."
# gui/game/gui.rpy:81
old "## The size of text on the notify screen."
new "## Størrelsen på teksten på notifikationsskærmen."
# gui/game/gui.rpy:84
old "## The size of the game's title."
new "## Størrelsen på spillets titel."
# gui/game/gui.rpy:88
old "## Main and Game Menus"
new "## Hoved- og spilmenuer"
# gui/game/gui.rpy:90
old "## The images used for the main and game menus."
new "## Billederne brugt til hoved- og spilmenuerne."
# gui/game/gui.rpy:95
old "## Dialogue"
new "## Dialog"
# gui/game/gui.rpy:97
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## Disse variabler kontrollerer, hvordan dialog vises på skærmen én linje ad gangen."
# gui/game/gui.rpy:100
old "## The height of the textbox containing dialogue."
new "## Højden af tekstboksen, der indeholder dialog."
# gui/game/gui.rpy:103
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 "## Placeringen af tekstboksen lodret på skærmen. 0.0 er i toppen, 0.5 er midti og 1.0 er i bunden."
# gui/game/gui.rpy:108
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 "## Placeringen af den talende figurs navn relativt til tekstboksen. Disse kan være et helt antal af pixels fra venstre eller toppen, eller 0.5 for centrering."
# gui/game/gui.rpy:113
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 "## Den vandrette justering af figurens navn. Denne kan være 0.0 for venstrejusteret, 0.5 for centreret og 1.0 for højrejusteret."
# gui/game/gui.rpy:117
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## Bredden, højden og kanterne på boksen, der indeholder figurens navn, eller None for automatisk at indstille størrelsen."
# gui/game/gui.rpy:122
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## Kanterne på boksen, der indeholder figurens navn, i rækkefølgen venstre, top, højre, bund."
# gui/game/gui.rpy:126
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## Ved True bliver navneboksens baggrund gentaget. Ved False bliver navneboksens baggrund skaleret."
# gui/game/gui.rpy:131
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 "## Placeringen af dialogen relativt til tekstboksen. Disse kan være et heltal af pixels relativt til venstre eller øverste side af tekstboksen, eller 0.5 for at centrere."
# gui/game/gui.rpy:137
old "## The maximum width of dialogue text, in pixels."
new "## Den maksimale bredde af dialogtekst i pixels."
# gui/game/gui.rpy:140
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 "## Den vandrette justering af dialogteksten. Dette kan være 0.0 for venstrejusteret, 0.5 for centreret og 1.0 for højrejusteret."
# gui/game/gui.rpy:145
old "## Buttons"
new "## Knapper"
# gui/game/gui.rpy:147
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## Disse variable kontrollerer sammen med billedfilerne i gui/button aspekter af, hvordan knapper vises."
# gui/game/gui.rpy:150
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## Bredden og højden af en knap i pixels. Hvis None beregner Ren'Py en størrelse."
# gui/game/gui.rpy:154
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## Kanterne på hver side af knappen i rækkefølgen venstre, top, højre, bund."
# gui/game/gui.rpy:157
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## Ved True gentages baggrundsbilledet. Ved False bliver baggrundsbilledet skaleret lineært."
# gui/game/gui.rpy:161
old "## The font used by the button."
new "## Skrifttypen brugt af knappen."
# gui/game/gui.rpy:164
old "## The size of the text used by the button."
new "## Størrelsen af tekst brugt af knappen."
# gui/game/gui.rpy:167
old "## The color of button text in various states."
new "## Farven af knappen i forskellige tilstande."
# gui/game/gui.rpy:173
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## Den vandrette justering af knapteksten. (0.0 er venstre, 0.5 er midtfor, 1.0 er højre)."
# gui/game/gui.rpy:178
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 "## Disse variabler tilsidesætter indstillinger for forskellige typer knapper. Se venligst GUI-dokumentationen for typen af knapper, der er tilgængelige, og hvad hver af dem bruges til."
# gui/game/gui.rpy:182
old "## These customizations are used by the default interface:"
new "## Disse tilpasninger bruger af standardgrænsefladen:"
# gui/game/gui.rpy:197
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 "## Du kan også tilføje dine egne tilpasninger ved at tilføje variabler med det korrekte navn. For eksempel kan du afkommentere følgende linje for at angive bredden på en navigationsknap."
# gui/game/gui.rpy:204
old "## Choice Buttons"
new "## Valgmulighedsknapper"
# gui/game/gui.rpy:206
old "## Choice buttons are used in the in-game menus."
new "## Valgmulighedsknapper bruges i menuerne i spillet."
# gui/game/gui.rpy:220
old "## File Slot Buttons"
new "## Filpladsknapper"
# gui/game/gui.rpy:222
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## En filpladsknap er en speciel slags knap. Den indeholder et miniaturebillede og tekst, der beskriver indholdet af gemmepladsen. En gemmeplads bruger billedfiler i gui/button ligesom de andre slags knapper."
# gui/game/gui.rpy:226
old "## The save slot button."
new "## Gemmepladsknappen."
# gui/game/gui.rpy:236
old "## The width and height of thumbnails used by the save slots."
new "## Bredden og højden af miniaturebilleder brugt af gemmepladserne."
# gui/game/gui.rpy:240
old "## The number of columns and rows in the grid of save slots."
new "## Antallet af søjler og rækker i gitteret med gemmepladser."
# gui/game/gui.rpy:245
old "## Positioning and Spacing"
new "## Positionering og afstand"
# gui/game/gui.rpy:247
old "## These variables control the positioning and spacing of various user interface elements."
new "## Disse variable kontrollerer placering af og afstanden mellem forskellige brugerfladeelementer."
# gui/game/gui.rpy:250
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## Placeringen af venstre side af navigationsknapperne, relativt til venstre side af skærmen."
# gui/game/gui.rpy:254
old "## The vertical position of the skip indicator."
new "## Den lodrette placering af overspringningsindikatoren."
# gui/game/gui.rpy:257
old "## The vertical position of the notify screen."
new "## Den lodrette placering af notifikationsskærmen."
# gui/game/gui.rpy:260
old "## The spacing between menu choices."
new "## Afstanden mellem menuvalg."
# gui/game/gui.rpy:263
old "## Buttons in the navigation section of the main and game menus."
new "## Knapper i navigationssektionen af hoved- og spilmenuerne."
# gui/game/gui.rpy:266
old "## Controls the amount of spacing between preferences."
new "## Kontrollerer mængden af afstand mellem præferencer."
# gui/game/gui.rpy:269
old "## Controls the amount of spacing between preference buttons."
new "## Kontrollerer mængden af afstand mellem præferenceknapper."
# gui/game/gui.rpy:272
old "## The spacing between file page buttons."
new "## Afstanden mellem filsideknapper."
# gui/game/gui.rpy:275
old "## The spacing between file slots."
new "## Afstanden mellem filpladser."
# gui/game/gui.rpy:278
old "## The position of the main menu text."
new "## Placeringen af hovedmenuteksten."
# gui/game/gui.rpy:282
old "## Frames"
new "## Rammer"
# gui/game/gui.rpy:284
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## Disse variable kontrollerer udseendet på rammer, der kan indeholde brugefladekomponenter, når en overlejring eller et vindue ikke er til stede."
# gui/game/gui.rpy:287
old "## Generic frames."
new "## Generiske rammer."
# gui/game/gui.rpy:290
old "## The frame that is used as part of the confirm screen."
new "## Rammen, der bruges som del af bekræftelsesskærmen."
# gui/game/gui.rpy:293
old "## The frame that is used as part of the skip screen."
new "## Rammen, der bruges som del af overspringningsskærmen."
# gui/game/gui.rpy:296
old "## The frame that is used as part of the notify screen."
new "## Rammen, der bruges som del af notifikationsskærmen."
# gui/game/gui.rpy:299
old "## Should frame backgrounds be tiled?"
new "## Bør rammebaggrunde gentages?"
# gui/game/gui.rpy:303
old "## Bars, Scrollbars, and Sliders"
new "## Bjælker, rullebjælker og skydere"
# gui/game/gui.rpy:305
old "## These control the look and size of bars, scrollbars, and sliders."
new "## Disse kontrollerer udseendet og størrelsen på bjælker, rullebjælker og skydere."
# gui/game/gui.rpy:307
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## Standard-GUI'en bruger kun skydere og lodrette rullebjælker. Alle de andre bjælker bruges kun i skærme skrevet af spiludvikleren."
# gui/game/gui.rpy:310
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## Højden på vandrette bjælker, rullebjælker og skydere. Bredden på lodrette bjælker, rullebjælker og skydere."
# gui/game/gui.rpy:316
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## True, hvis bjælkebilleder skal gentages. False, hvis de skal skaleres lineært."
# gui/game/gui.rpy:321
old "## Horizontal borders."
new "## Vandrette kanter."
# gui/game/gui.rpy:326
old "## Vertical borders."
new "## Lodrette kanter."
# gui/game/gui.rpy:331
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## Hvad der skal gøres ved urullelige rullebjælker i gui'en. \"hide\" skjuler dem, mens None viser dem."
# gui/game/gui.rpy:336
old "## History"
new "## Historik"
# gui/game/gui.rpy:338
old "## The history screen displays dialogue that the player has already dismissed."
new "## Historikskærmen viser dialog, som spilleren allerede er gået videre fra."
# gui/game/gui.rpy:340
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## Antallet af blokke dialoghistorik, som Ren'Py gemmer."
# gui/game/gui.rpy:343
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## Højden på et historikskærmsindlæg, eller None for at gøre højden variabel på bekostning af ydeevne."
# gui/game/gui.rpy:347
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## Placeringen, bredden og justeringen af mærkatet, der angiver navnet på den talende figur."
# gui/game/gui.rpy:354
old "## The position, width, and alignment of the dialogue text."
new "## Placeringen, bredden og justeringen af dialogteksten."
# gui/game/gui.rpy:361
old "## NVL-Mode"
new "## NVL-tilstand"
# gui/game/gui.rpy:363
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## NVL-tilstandsskærmen viser dialogen sagt af NVL-tilstandsfigurer."
# gui/game/gui.rpy:365
old "## The borders of the background of the NVL-mode background window."
new "## Kanterne på baggrunden af baggrundsvinduet i NVL-tilstand."
# gui/game/gui.rpy:368
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 "## Det maksimale antal af NVL-tilstandsindlæg, som Ren'Py viser. Når flere indlæg end disse skal vises, bliver det ældste indlæg fjernet."
# gui/game/gui.rpy:372
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## Højden på et NVL-tilstandsindlæg. Stil denne til None for at få indlæggene til dynamisk at justere højde."
# gui/game/gui.rpy:376
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## Afstanden mellem NVL-tilstandsindlæg, når gui.nvl_height er None, og mellem NVL-tilstandsindlæg og en menu i NVL-tilstand."
# gui/game/gui.rpy:393
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## Placeringen, bredden og justeringen af nvl_thought-tekst (teksten sagt af figuren nvl_narrator.)"
# gui/game/gui.rpy:400
old "## The position of nvl menu_buttons."
new "## Placeringen af nvl menu_buttons."
# gui/game/gui.rpy:405
old "## Localization"
new "## Lokalisering"
# gui/game/gui.rpy:407
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 "## Dette kontrollerer, hvor et linjeskift er tilladt. Standardinstilligen er egnet til de fleste sprog. En liste over tilgængelige værdier kan findes på https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui/game/gui.rpy:415
old "## Mobile devices"
new "## Mobilenheder"
# gui/game/gui.rpy:420
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## Dette øger størrelsen på hurtigknapperne for at gøre dem lettere at ramme på tablets og mobiler."
# gui/game/gui.rpy:427
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## Dette ændrer størrelsen på og afstanden mellem forskellige GUI-elementer for at sørge for, at de er let synlige på mobiler."
# gui/game/gui.rpy:432
old "## Font sizes."
new "## Skriftstørrelser."
# gui/game/gui.rpy:440
old "## Adjust the location of the textbox."
new "## Juster tekstboksens placering."
# gui/game/gui.rpy:446
old "## Change the size and spacing of various things."
new "## Ændr størrelsen på og afstanden mellem forskellige ting."
# gui/game/gui.rpy:460
old "## File button layout."
new "## Filknapudformning."
# gui/game/gui.rpy:464
old "## NVL-mode."
new "## NVL-tilstand."
# gui/game/gui.rpy:347
old "## Additional space to add between history screen entries."
new "## Yderligere afstand at tilføje mellem historikskærmsindlæg."
File diff suppressed because it is too large Load Diff
+26
View File
@@ -0,0 +1,26 @@
translate danish strings:
# renpy/common/_layout/classic_joystick_preferences.rpym:94
old "Joystick Mapping"
new "Styrepindskortlægning"
# renpy/common/_layout/classic_load_save.rpym:138
old "Empty Slot."
new "Tom plads."
# renpy/common/_layout/classic_load_save.rpym:170
old "a"
new "a"
# renpy/common/_layout/classic_load_save.rpym:179
old "q"
new "h"
# renpy/common/_compat/gamemenu.rpym:355
old "Previous"
new "Forrige"
# renpy/common/_compat/gamemenu.rpym:362
old "Next"
new "Næste"
+198
View File
@@ -0,0 +1,198 @@
translate danish strings:
# gui/game/options.rpy:1
old "## This file contains options that can be changed to customize your game."
new "## Denne fil indeholder indstillinger, der kan ændres for at tilpasse dit spil."
# 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 "## Linjer, der begynder med to '#'-tegn er kommentarer, og du bør ikke afkommentere dem. Linjer, der begynder med et enkelt '#'-tegn er udkommenteret kode, som du kan afkommentere i passende tilfælde."
# gui/game/options.rpy:10
old "## Basics"
new "## Grundlæggende"
# 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 "## Et menneskelæsbart navn på spillet. Dette bruges til at angive standardvinduestitlen, og det dukker op i grænsefladen og fejlrapporter."
# gui/game/options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
new "## Tegnene _(), der omringer strengen, markerer det som kvalificeret til oversættelse."
# gui/game/options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 standard-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 "## Bestemmer, om den ovenfor givne titel vises på hovedmenuskærmen. Stil dette til False for at skjule title."
# gui/game/options.rpy:26
old "## The version of the game."
new "## Spilversionen."
# 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, der placeres på spillets om-skærm. Placer teksten mellem de tredobbelte citationstegn og efterlad en tom linje mellem afsnit."
# 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 "## Et kort navn til spillet, der bruges til ekskverbare filer og mapper i den fremstillede distribution. Dette må kun være ASCII, og det må ikke indeholde mellemrum, koloner eller semikoloner."
# gui/game/options.rpy:45
old "## Sounds and music"
new "## Lyde og musik"
# 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 "## Disse tre variabler kontrollerer blandt andet, hvilke mixere der vises til spilleren som standard. Ved at stille en af disse til False skjules den tilsvarende mixer."
# 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 "## For at gøre det muligt for brugeren at afspille en testlyd på lydeffekt- eller stemmekanalen, så afkommenter en linje nedenfor og brug den til at angive en prøvelyd at afspille."
# 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 "## Afkommenter følgende linje for at angive en lydfil, der afspilles, mens spilleren er i hovedmenuen. Denne fil fortsætter med at afspille inde i spillet, indtil den stoppes, eller en anden fil afspilles."
# gui/game/options.rpy:70
old "## Transitions"
new "## Overgange"
# 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 "## Disse variable angiver overgange, der bruges, når bestemte begivenheder opstår. Hver variabel bør sættes til en overgang, eller til None for at indikere, at ingen overgang skal bruges."
# gui/game/options.rpy:76
old "## Entering or exiting the game menu."
new "## Når man går ind i eller ud af spilmenuen."
# gui/game/options.rpy:82
old "## Between screens of the game menu."
new "## Mellem skærme i spilmenuen."
# gui/game/options.rpy:87
old "## A transition that is used after a game has been loaded."
new "## En overgang, der bruges, efter et spil er blevet indlæst."
# gui/game/options.rpy:92
old "## Used when entering the main menu after the game has ended."
new "## Bruges, når man går ind i hovedmenuen, efter spillet er sluttet."
# 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 "## Der findes ingen variabel til at angive overgangen, der bruges, når spillet startes. Brug i stedet en with-sætning efter visning af den første scene."
# gui/game/options.rpy:102
old "## Window management"
new "## Vinduesstyring"
# 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 "## Dette kontrollerer, hvornår dialogvinduet vises. Ved \"show\" vises det altid. Ved \"hide\" vises det kun, når dialog er til stede. Ved \"auto\" skjules vinduet før scene-sætninger og vises igen, når dialog vises."
# 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 "## Efter spillet er startet, kan dette ændres med sætningerne \"window show\", \"window hide\", og \"window auto\"."
# gui/game/options.rpy:115
old "## Transitions used to show and hide the dialogue window"
new "## Overgange brugt til at vise og skjule dialogvinduet"
# gui/game/options.rpy:121
old "## Preference defaults"
new "## Standardpræferencer"
# 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 "## Kontrollerer standardteksthastigheden. Standarden, 0, er uendelig, mens ethvert andet tal er antallet af tegn pr. sekund, der skrives."
# 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 "## Standardforsinkelsen for auto-fremad. Større tal fører til længere ventetider, med 0 til 30 som den gyldige rækkevidde."
# gui/game/options.rpy:135
old "## Save directory"
new "## Gemmefilmappe"
# 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 "## Kontrollerer det platformspecifikke sted, hvorpå Ren'Py placerer gemmefilerne for dette spil. Gemmefilerne bliver placeret i:"
# 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 "## Dette bør generelt ikke ændres, og hvis det bliver, bør det altid være en litteral streng, ikke et udtryk."
# gui/game/options.rpy:152
old "## Icon"
new "## Ikon"
# gui/game/options.rpy:154
old "## The icon displayed on the taskbar or dock."
new "## Ikonet vises på proceslinjen eller docken."
# gui/game/options.rpy:159
old "## Build configuration"
new "## Fremstillingskonfiguration"
# gui/game/options.rpy:161
old "## This section controls how Ren'Py turns your project into distribution files."
new "## Denne sektion kontrollerer, hvordan Ren'Py laver dit projekt om til distributionsfiler."
# 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 "## De følgende funktioner tager filmønstre. I filmønstre skelnes der ikke mellem små og store bogstaver, og de matches mod filstien relativt til grundmappen med og uden et foranstående /. Hvis flere mønstre matcher, bruges det første."
# gui/game/options.rpy:171
old "## In a pattern:"
new "## I et mønster:"
# gui/game/options.rpy:173
old "## / is the directory separator."
new "## / er mappeseparatoren."
# gui/game/options.rpy:175
old "## * matches all characters, except the directory separator."
new "## * matcher alle tegn bortset fra mappeseparatoren."
# gui/game/options.rpy:177
old "## ** matches all characters, including the directory separator."
new "## ** matcher alle tegn inklusiv mappeseparatoren."
# 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 "## For eksempel matcher \"*.txt\" txt-filer i grundmappen, \"game/**.ogg\" matcher ogg-filer i mappen game eller en hvilken som helst af dens undermapper, og \"**.psd\" matcher psd-filer hvor som helst i projektet."
# gui/game/options.rpy:183
old "## Classify files as None to exclude them from the built distributions."
new "## Klassificer filer som None for at ekskludere dem fra de fremstilte distributioner."
# gui/game/options.rpy:191
old "## To archive files, classify them as 'archive'."
new "## Klassificer filer som 'archive' for at arkivere dem."
# 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 "## Filer, der matcher dokumentationsmønstre, duplikeres i fremstillingen af en mac-app, så de optræder både i appen og zip-filen."
# gui/game/options.rpy:203
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
new "## En Google Play-licensnøgle er påkrævet for at udføre in-app-betalinger. Den kan findes i Google Play-udviklerkonsollen under \"Tjen penge\" > \"Konfiguration af indtægtsgenerering\" > \"Licens\"."
# gui/game/options.rpy:210
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Brugernavnet og projektnavnen forbundet med et itch.io-projekt, adskilt med en skåstreg."
+678
View File
@@ -0,0 +1,678 @@
translate danish strings:
# gui/game/screens.rpy:9
old "## Styles"
new "## Stile"
# gui/game/screens.rpy:81
old "## In-game screens"
new "## Skærme i spillet"
# gui/game/screens.rpy:85
old "## Say screen"
new "## Dialogskærmen"
# 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 "## Dialogskærmen bruges til at vise dialog til spilleren. Den tager to parametre, who (hvem) og what (hvad), som henholdsvis er navnet på den talende figur og teksten, der skal vises. (Parametren who kan være None, hvis intet navn angives.)"
# 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 "## Denne skærm skal oprette et visbart tekstelement med id'et \"what\", da Ren'Py bruger denne til at styre tekstvisning. Den kan også oprette visbare elementer med id'et \"who\" og id'et \"window\" for at anvende stilegenskaber."
# 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 "## Hvis der er et sidebillede, så vis det over teksten. Vis ikke på mobilvarianten - der er ikke plads."
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
new "## Gør navneboksen tilgængelig for stilisering gennem Character-objektet."
# gui/game/screens.rpy:165
old "## Input screen"
new "## Inputskærmen"
# gui/game/screens.rpy:167
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## Denne skærm bruges til at vise renpy.input. Promptparameteren bruges til at føre en tekstprompt ind."
# gui/game/screens.rpy:170
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## Denne skærm skal oprette et visbart inputelement med id'et \"input\" for at acceptere de forskellige inputparametre."
# gui/game/screens.rpy:173
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:200
old "## Choice screen"
new "## Valgmulighedsskærmen"
# gui/game/screens.rpy:202
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
new "## Denne skærm bruges til at vise valg i spillet præsenteret af menu-sætningen. Den ene parameter, items, er en liste af objekter, hver med caption- og action-felter."
# gui/game/screens.rpy:206
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:234
old "## Quick Menu screen"
new "## Hurtigmenuskærmen"
# gui/game/screens.rpy:236
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## Hurtigmenuen vises i spillet for at give let adgang til menuerne uden for spillet."
# gui/game/screens.rpy:241
old "## Ensure this appears on top of other screens."
new "## Sørg for at denne vises oven på andre skærme."
# gui/game/screens.rpy:252
old "Back"
new "Tilbage"
# gui/game/screens.rpy:253
old "History"
new "Historik"
# gui/game/screens.rpy:254
old "Skip"
new "Spring over"
# gui/game/screens.rpy:255
old "Auto"
new "Auto"
# gui/game/screens.rpy:256
old "Save"
new "Gem"
# gui/game/screens.rpy:257
old "Q.Save"
new "H.gem"
# gui/game/screens.rpy:258
old "Q.Load"
new "H.indlæs"
# gui/game/screens.rpy:259
old "Prefs"
new "Præf."
# gui/game/screens.rpy:262
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## Denne kode sørger for at quick_menu-skærmen vises i spillet, når end spilleren ikke eksplicit har skjult grænsefladen."
# gui/game/screens.rpy:280
old "## Main and Game Menu Screens"
new "## Hoved- og spilmenuskærme"
# gui/game/screens.rpy:283
old "## Navigation screen"
new "## Navigationsskærmen"
# gui/game/screens.rpy:285
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## Denne skærm er inkluderet i hoved- og spilmenuerne og giver navigation til andre menuer og til at starte spillet."
# gui/game/screens.rpy:300
old "Start"
new "Start"
# gui/game/screens.rpy:308
old "Load"
new "Indlæs"
# gui/game/screens.rpy:310
old "Preferences"
new "Præferencer"
# gui/game/screens.rpy:314
old "End Replay"
new "Slut genafspilning"
# gui/game/screens.rpy:318
old "Main Menu"
new "Hovedmenu"
# gui/game/screens.rpy:320
old "About"
new "Om"
# gui/game/screens.rpy:324
old "## Help isn't necessary or relevant to mobile devices."
new "## Hjælp er ikke nødvendig eller relevant for mobilenheder."
# gui/game/screens.rpy:325
old "Help"
new "Hjælp"
# gui/game/screens.rpy:329
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## Afslut-knappen er forbudt på iOS og unødvendig på Android og web."
# gui/game/screens.rpy:330
old "Quit"
new "Afslut"
# gui/game/screens.rpy:344
old "## Main Menu screen"
new "## Hovedmenuskærmen"
# gui/game/screens.rpy:346
old "## Used to display the main menu when Ren'Py starts."
new "## Bruges til at vise hovedmenuen, når Ren'Py starter."
# gui/game/screens.rpy:348
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:352
old "## This ensures that any other menu screen is replaced."
new "## Dette sikrer, at andre eventuelle menuskærme erstattes."
# gui/game/screens.rpy:357
old "## This empty frame darkens the main menu."
new "## Denne tomme ramme mørkner hovedmenuen."
# gui/game/screens.rpy:361
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## Sætningen use inkluderer en anden skærm inde i denne. Det faktiske indhold af hovedmenuen er i navigationsskærmen."
# gui/game/screens.rpy:406
old "## Game Menu screen"
new "## Spilmenuskærmen"
# gui/game/screens.rpy:408
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
new "## Denne udlægger de grundlæggende fællesstrukturer for en spilmenuskærm. Den kaldes med screen-titlen og viser baggrunden, titlen og navigationen."
# gui/game/screens.rpy:411
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## Parameteren scroll kan være None eller en af \"viewport\" eller \"vpgrid\". Denne skærm er tiltænkt at blive brugt med et eller flere børn, som transkluderes (placeres) inde i den."
# gui/game/screens.rpy:429
old "## Reserve space for the navigation section."
new "## Reserver plads til navigationssektionen"
# gui/game/screens.rpy:471
old "Return"
new "Tilbage"
# gui/game/screens.rpy:534
old "## About screen"
new "## Om-skærmen"
# gui/game/screens.rpy:536
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## Denne skærm giver kreditering og ophavsretsinformation om spillet og Ren'Py."
# gui/game/screens.rpy:539
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## Der er intet specielt ved denne skærm, og derfor fungerer den også som et eksempel, på hvordan man laver en skræddersyet skærm."
# gui/game/screens.rpy:546
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
new "## Denne use-sætning inkluderer game_menu-skærmen inde i denne. Barnet vbox inkluderes derefter inde i visningsporten inde i game_menu-skærmen."
# gui/game/screens.rpy:556
old "Version [config.version!t]\n"
new "Version [config.version!t]\n"
# gui/game/screens.rpy:558
old "## gui.about is usually set in options.rpy."
new "## gui.about indstilles sædvanligvis i options.rpy."
# gui/game/screens.rpy:562
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Lavet med {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
# gui/game/screens.rpy:573
old "## Load and Save screens"
new "## Indlæsnings- og gemmeskærmene"
# gui/game/screens.rpy:575
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 "## Disse skærme er ansvarlige for at lade spilleren gemme spillet og indlæse det igen. Siden de har næsten alting tilfælles, implementeres begge i form af en tredje skærm, file_slots."
# gui/game/screens.rpy:579
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:598
old "Page {}"
new "Side {}"
# gui/game/screens.rpy:598
old "Automatic saves"
new "Autogemmefiler"
# gui/game/screens.rpy:598
old "Quick saves"
new "Hurtiggemmefiler"
# gui/game/screens.rpy:604
old "## This ensures the input will get the enter event before any of the buttons do."
new "## Dette sikrer, at inputtet får enter-begivenheden før nogen af knapperne gør."
# gui/game/screens.rpy:608
old "## The page name, which can be edited by clicking on a button."
new "## Sidenavnet, som kan redigeres ved at klikke på en knap."
# gui/game/screens.rpy:620
old "## The grid of file slots."
new "## Filpladsgitteret."
# gui/game/screens.rpy:640
old "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%A, %d %B %Y, %H:%M"
# gui/game/screens.rpy:640
old "empty slot"
new "tom plads"
# gui/game/screens.rpy:648
old "## Buttons to access other pages."
new "## Knapper til at tilgå andre sider."
# gui/game/screens.rpy:660
old "<"
new "<"
# gui/game/screens.rpy:663
old "{#auto_page}A"
new "{#auto_page}A"
# gui/game/screens.rpy:666
old "{#quick_page}Q"
new "{#quick_page}H"
# gui/game/screens.rpy:668
old "## range(1, 10) gives the numbers from 1 to 9."
new "## range(1, 10) giver numrene fra 1 til 9."
# gui/game/screens.rpy:672
old ">"
new ">"
# gui/game/screens.rpy:676
old "Upload Sync"
new "Send synkronisering"
# gui/game/screens.rpy:680
old "Download Sync"
new "Hent synkronisering"
# gui/game/screens.rpy:717
old "## Preferences screen"
new "## Præferenceskærmen"
# gui/game/screens.rpy:719
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## Præferenceskærmen gør det muligt for spilleren at konfigurere spillet til bedre at passe vedkommende."
# gui/game/screens.rpy:722
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:739
old "Display"
new "Skærmvisning"
# gui/game/screens.rpy:740
old "Window"
new "Vindue"
# gui/game/screens.rpy:741
old "Fullscreen"
new "Fuldskærm"
# gui/game/screens.rpy:746
old "Unseen Text"
new "Uset tekst"
# gui/game/screens.rpy:747
old "After Choices"
new "Efter valg"
# gui/game/screens.rpy:748
old "Transitions"
new "Overgange"
# gui/game/screens.rpy:750
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Yderligere vboxe af typen \"radio_pref\" eller \"check_pref\" kan tilføjes her for at tilføje yderligere udviklerdefinerede præferencer."
# gui/game/screens.rpy:761
old "Text Speed"
new "Teksthastighed"
# gui/game/screens.rpy:765
old "Auto-Forward Time"
new "Tid for auto-fremad"
# gui/game/screens.rpy:772
old "Music Volume"
new "Musiklydstyrke"
# gui/game/screens.rpy:779
old "Sound Volume"
new "Lydeffektlydstyrke"
# gui/game/screens.rpy:785
old "Test"
new "Test"
# gui/game/screens.rpy:789
old "Voice Volume"
new "Stemmelydstyrke"
# gui/game/screens.rpy:800
old "Mute All"
new "Slå alle fra"
# gui/game/screens.rpy:876
old "## History screen"
new "## Historikskærmen"
# gui/game/screens.rpy:878
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 "## Dette er en skærm, der viser dialoghistorikken til spilleren. Mens der ikke er noget særligt ved denne skærm, har den dog adgang til dialoghistorikken opbevaret i _history_list."
# gui/game/screens.rpy:882
old "## https://www.renpy.org/doc/html/history.html"
new "## https://www.renpy.org/doc/html/history.html"
# gui/game/screens.rpy:888
old "## Avoid predicting this screen, as it can be very large."
new "## Undgå at forudsige denne skærm, da den kan være meget stor."
# gui/game/screens.rpy:899
old "## This lays things out properly if history_height is None."
new "## Dette udlægger tingene korrekt, hvis history_height er None."
# gui/game/screens.rpy:909
old "## Take the color of the who text from the Character, if set."
new "## Tag farven fra who-teksten fra en Character, hvis den er angivet."
# gui/game/screens.rpy:918
old "The dialogue history is empty."
new "Dialoghistorikken er tom."
# gui/game/screens.rpy:921
old "## This determines what tags are allowed to be displayed on the history screen."
new "## Dette bestemmer, hvilke mærker der tillades at blive vist på historikskærmen."
# gui/game/screens.rpy:966
old "## Help screen"
new "## Hjælpeskærmen"
# 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 "## En skærm, der giver information om tastatur- og musetildelinger. Den bruger andre skærme (keyboard_help, mouse_help og gamepad_help) til at vise den faktiske hjælp."
# gui/game/screens.rpy:987
old "Keyboard"
new "Tastatur"
# gui/game/screens.rpy:988
old "Mouse"
new "Mus"
# gui/game/screens.rpy:991
old "Gamepad"
new "Spillekontrol"
# gui/game/screens.rpy:1004
old "Enter"
new "Retur"
# gui/game/screens.rpy:1005
old "Advances dialogue and activates the interface."
new "Går videre i dialog og aktiverer grænsefladen."
# gui/game/screens.rpy:1008
old "Space"
new "Mellemrum"
# gui/game/screens.rpy:1009
old "Advances dialogue without selecting choices."
new "Går videre i dialog uden at træffe valg."
# gui/game/screens.rpy:1012
old "Arrow Keys"
new "Piltaster"
# gui/game/screens.rpy:1013
old "Navigate the interface."
new "Navigerer i grænsefladen."
# gui/game/screens.rpy:1016
old "Escape"
new "Escape"
# gui/game/screens.rpy:1017
old "Accesses the game menu."
new "Tilgår spilmenuen."
# gui/game/screens.rpy:1020
old "Ctrl"
new "Ctrl"
# gui/game/screens.rpy:1021
old "Skips dialogue while held down."
new "Springer over dialog ved nedholdning."
# gui/game/screens.rpy:1024
old "Tab"
new "Tab"
# gui/game/screens.rpy:1025
old "Toggles dialogue skipping."
new "Slår dialogoverspringning til/fra."
# gui/game/screens.rpy:1028
old "Page Up"
new "Page Up"
# gui/game/screens.rpy:1029
old "Rolls back to earlier dialogue."
new "Ruller tilbage til tidligere dialog."
# gui/game/screens.rpy:1032
old "Page Down"
new "Page Down"
# gui/game/screens.rpy:1033
old "Rolls forward to later dialogue."
new "Ruller fremad til senere dialog."
# gui/game/screens.rpy:1037
old "Hides the user interface."
new "Skjuler brugerfladen."
# gui/game/screens.rpy:1041
old "Takes a screenshot."
new "Tager et skærmbillede."
# gui/game/screens.rpy:1045
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Slår assisterende {a=https://www.renpy.org/l/voicing}automatisk oplæsning{/a} til/fra."
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
new "Åbner tilgængelighedsmenuen."
# gui/game/screens.rpy:1055
old "Left Click"
new "Venstreklik"
# gui/game/screens.rpy:1059
old "Middle Click"
new "Midterklik"
# gui/game/screens.rpy:1063
old "Right Click"
new "Højreklik"
# gui/game/screens.rpy:1067
old "Mouse Wheel Up\nClick Rollback Side"
new "Musehjul op\nKlik på tilbagerulningsside"
# gui/game/screens.rpy:1071
old "Mouse Wheel Down"
new "Musehjul ned"
# gui/game/screens.rpy:1078
old "Right Trigger\nA/Bottom Button"
new "Højre aftrækker\nA/Nederste knap"
# gui/game/screens.rpy:1082
old "Left Trigger\nLeft Shoulder"
new "Venstre aftrækker\nVenstre skulderknap"
# gui/game/screens.rpy:1086
old "Right Shoulder"
new "Højre skulderknap"
# gui/game/screens.rpy:1091
old "D-Pad, Sticks"
new "Retningsknapper, Pinde"
# gui/game/screens.rpy:1095
old "Start, Guide"
new "Start, Guide"
# gui/game/screens.rpy:1098
old "Start, Guide, B/Right Button"
new "Start, Guide, B/Højre knap"
# gui/game/screens.rpy:1099
old "Y/Top Button"
new "Y/Øverste knap"
# gui/game/screens.rpy:1102
old "Calibrate"
new "Kalibrér"
# gui/game/screens.rpy:1130
old "## Additional screens"
new "## Yderligere skærme"
# gui/game/screens.rpy:1134
old "## Confirm screen"
new "## Bekræftelsesskærmen"
# 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 "## Bekræftelsesskærmen kaldes, når Ren'Py vil stille spilleren et ja-nej-spørgsmål."
# gui/game/screens.rpy:1139
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:1143
old "## Ensure other screens do not get input while this screen is displayed."
new "## Sørg for, at andre skærme ikke får input, mens denne skærm vises."
# gui/game/screens.rpy:1167
old "Yes"
new "Ja"
# gui/game/screens.rpy:1168
old "No"
new "Nej"
# gui/game/screens.rpy:1170
old "## Right-click and escape answer \"no\"."
new "## Højreklik og undgå svaret \"no\"."
# gui/game/screens.rpy:1197
old "## Skip indicator screen"
new "## Overspringningsindikatorskærmen"
# gui/game/screens.rpy:1199
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## Skærmen skip_indicator vises for at indikere, at overspringning er i gang."
# gui/game/screens.rpy:1202
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:1214
old "Skipping"
new "Springer over"
# gui/game/screens.rpy:1221
old "## This transform is used to blink the arrows one after another."
new "## Denne transformation bruges til at blinke med pilene en efter hinanden."
# gui/game/screens.rpy:1248
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
new "## Vi skal bruge en skrifttype, der har tegnet BLACK RIGHT-POINTING SMALL TRIANGLE i sig."
# gui/game/screens.rpy:1253
old "## Notify screen"
new "## Notifikationsskærmen"
# 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 "## Notifikationsskærmen bruges til at vise spilleren en besked. (For eksempel når spillet hurtiggemmes, eller når et skærmbillede er blevet taget.)"
# gui/game/screens.rpy:1258
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:1292
old "## NVL screen"
new "## NVL-skærmen"
# gui/game/screens.rpy:1294
old "## This screen is used for NVL-mode dialogue and menus."
new "## Denne skærm bruges til dialog og menuer i NVL-tilstand."
# gui/game/screens.rpy:1296
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:1307
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Viser dialog i enten et vpgrid eller vboxen."
# 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."
new "## Viser menuen, hvis angivet. Menuen kan muligvis vises ukorrekt, hvis config.narrator_menu er sat til True."
# gui/game/screens.rpy:1350
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## Dette kontrollerer det maksimale antal af NVL-tilstandsindlæg, der kan vises på én gang."
# gui/game/screens.rpy:1410
old "## Bubble screen"
new "## Talebobleskærmen"
# gui/game/screens.rpy:1412
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
new "## Talebobleskærmen bruges til at vise dialog til spilleren ved brug af talebobler. Talebobleskærmen tager imod de samme parametre som dialogskærmen. Den skal oprette et visbart element med id'et \"what\", og den kan oprette visbare elementer med id'erne \"namebox\", \"who\" og \"window\"."
# gui/game/screens.rpy:1417
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
# gui/game/screens.rpy:1501
old "## Mobile Variants"
new "## Mobilvarianter"
# gui/game/screens.rpy:1508
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 "## Siden en mus muligvis ikke er til stede, erstatter vi hurtigmenuen med en version, der bruger færre og større knapper, der er lettere at ramme."
# gui/game/screens.rpy:1526
old "Menu"
new "Menu"
+33
View File
@@ -0,0 +1,33 @@
# Spillets manuskript puttes i denne fil.
# Erklær figurer brugt af dette spil. Farveargumentet farver
# navnet på figuren.
define e = Character("Eileen")
# Spillet starter her.
label start:
# Vis en baggrund. Der bruges som standard en stedfortræder, men du kan
# tilføje en fil (kaldt enten "bg room.png" eller "bg room.jpg") til
# mappen images for at vise den.
scene bg room
# Dette viser en figursprite. En stedfortræder bruges, men du kan
# erstatte den ved at tilføje en fil kaldt "eileen happy.png" til
# mappen images.
show eileen happy
# Disse viser linjer med dialog.
e "Du har oprettet et nyt Ren'Py-spil."
e "Når du har tilføjet en historie, billeder og musik, kan du sende det ud i verden!"
# Dette afslutter spillet.
return
+2 -3
View File
@@ -1969,8 +1969,8 @@ translate finnish strings:
new "Mukautettu teema"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "Tietoa mukautetun teeman luomisesta löytyy {a=https://www.renpy.org/doc/html/skins.html}Ren'Pyn dokumentaatiosta{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "Tietoa mukautetun teeman luomisesta löytyy {a=[skins_url]}Ren'Pyn dokumentaatiosta{/a}."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2129,4 +2129,3 @@ translate finnish strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Yöllinen versio, joka sisältää korjauksia Ren'Pyn julkaisuversioon."
+2 -2
View File
@@ -497,8 +497,8 @@ translate finnish strings:
new "Hiiren Oikea Painike"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Hiiren Rulla Ylös\nKlikkaa Palautussivua"
old "Mouse Wheel Up"
new "Hiiren Rulla Ylös"
# screens.rpy:1066
old "Mouse Wheel Down"
+2 -2
View File
@@ -2077,8 +2077,8 @@
new "Thème du lanceur :"
# game/preferences.rpy:254
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "Plus d'informations sur comment créer un thème personnalisé se trouvent {a=https://www.renpy.org/doc/html/skins.html}dans la documentation de Ren'Py{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "Plus d'informations sur comment créer un thème personnalisé se trouvent {a=[skins_url]}dans la documentation de Ren'Py{/a}."
# game/preferences.rpy:271
old "Install Libraries:"
+2 -2
View File
@@ -697,8 +697,8 @@
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"
old "Mouse Wheel Up"
new "Molette vers le haut"
# gui/game/screens.rpy:1078
old "Left Trigger\nLeft Shoulder"
+2 -3
View File
@@ -1952,8 +1952,8 @@
new "Benutzerdefiniertes Design"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "Informationen über benutzerdefinierte Designs können {a=https://www.renpy.org/doc/html/skins.html}in der Ren'Py-Dokumentation{/a} gefunden werden."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "Informationen über benutzerdefinierte Designs können {a=[skins_url]}in der Ren'Py-Dokumentation{/a} gefunden werden."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2208,4 +2208,3 @@ translate german strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Ein nächtlicher Build mit Korrekturen für die Release-Version von Ren'Py."
+1 -1
View File
@@ -572,7 +572,7 @@ translate german strings:
new "Rechtsklick"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
old "Mouse Wheel Up"
# Automatic translation.
new "Mausrad nach oben\nKlicken Sie auf Rollback Seite"
+2 -3
View File
@@ -2045,9 +2045,9 @@ translate greek strings:
new "Προσαρμοσμένο θέμα"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
# Automatic translation.
new "Πληροφορίες σχετικά με τη δημιουργία ενός προσαρμοσμένου θέματος μπορείτε να βρείτε στη διεύθυνση {a=https://www.renpy.org/doc/html/skins.html}στην Τεκμηρίωση Ren'Py{/a}."
new "Πληροφορίες σχετικά με τη δημιουργία ενός προσαρμοσμένου θέματος μπορείτε να βρείτε στη διεύθυνση {a=[skins_url]}στην Τεκμηρίωση Ren'Py{/a}."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2217,4 +2217,3 @@ translate greek strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Ένα νυχτερινό build με διορθώσεις στην έκδοση κυκλοφορίας του Ren'Py."
+1 -1
View File
@@ -583,7 +583,7 @@ translate greek strings:
new "Δεξί κλικ"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
old "Mouse Wheel Up"
# Automatic translation.
new "Τροχός ποντικιού επάνω\nΚάντε κλικ στο Rollback Side"
+2 -3
View File
@@ -2026,9 +2026,9 @@ translate indonesian strings:
new "Tema khusus"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
# Automatic translation.
new "Informasi tentang membuat tema khusus dapat ditemukan di {a=https://www.renpy.org/doc/html/skins.html}dalam Dokumentasi Ren'Py{/a}."
new "Informasi tentang membuat tema khusus dapat ditemukan di {a=[skins_url]}dalam Dokumentasi Ren'Py{/a}."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2175,4 +2175,3 @@ translate indonesian strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Perbaikan versi malam hari untuk versi rilis Ren'Py."
+2 -2
View File
@@ -497,8 +497,8 @@ translate indonesian strings:
new "Klik Kanan"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Roda Mouse Atas\nKlik Arah Rollback"
old "Mouse Wheel Up"
new "Roda Mouse Atas"
# screens.rpy:1066
old "Mouse Wheel Down"
+2 -3
View File
@@ -2004,9 +2004,9 @@ translate italian strings:
new "Tema personalizzato"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
# Automatic translation.
new "Le informazioni sulla creazione di un tema personalizzato sono disponibili all'indirizzo {a=https://www.renpy.org/doc/html/skins.html}nella documentazione di Ren'Py{/a}."
new "Le informazioni sulla creazione di un tema personalizzato sono disponibili all'indirizzo {a=[skins_url]}nella documentazione di Ren'Py{/a}."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2176,4 +2176,3 @@ translate italian strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Una build notturna di correzioni alla versione di rilascio di Ren'Py."
+2 -2
View File
@@ -508,8 +508,8 @@ translate italian strings:
new "Click Destro"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Rotella Su\nClicca il Lato Riavvolgimento"
old "Mouse Wheel Up"
new "Rotella Su"
# screens.rpy:1066
old "Mouse Wheel Down"
+60
View File
@@ -920,3 +920,63 @@ translate japanese strings:
old "Sync Error"
new "同期エラー"
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "director.transform を設定して transform を追加できます。"
# renpy/common/00director.rpy:1821
old "Click to set."
new "クリックで設定します"
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "director.transitions を設定してトランジションを追加できます。"
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "director.audio_channels を設定してチャンネルを追加できます"
# renpy/common/00preferences.rpy:573
old "restore window position"
new "ウィンドウ位置を復元する"
# renpy/common/00speechbubble.rpy:408
old "(clear retained bubbles)"
new "(保持されている吹き出しをクリアします)"
# renpy/common/00updater.rpy:504
old "No update methods found."
new "update メソッドが見付かりません"
# renpy/common/00updater.rpy:551
old "Could not download file list: "
new "ファイルリストがダウンロードできません : "
# renpy/common/00updater.rpy:554
old "File list digest does not match."
new "File listの要約がマッチしません"
# renpy/common/00updater.rpy:2072
old "Preparing to download the game data."
new "ゲームデータのダウンロードを準備します。"
# renpy/common/00updater.rpy:2074
old "Downloading the game data."
new "ゲームデータをダウンロードしています"
# renpy/common/00updater.rpy:2076
old "The game data has been downloaded."
new "ゲームデータがダウンロードされました"
# renpy/common/00updater.rpy:2078
old "An error occured when trying to download game data:"
new "ゲームデータダウンロード中にエラーが発生しました:"
# renpy/common/00updater.rpy:2083
old "This game cannot be run until the game data has been downloaded."
new "このゲームはゲームデータのダウンロードまでは実行できません"
# renpy/common/00updater.rpy:2090
old "Retry"
new "リトライ"
+40 -3
View File
@@ -201,9 +201,6 @@ translate japanese strings:
old "stack: print the return stack"
new "stack: リターンスタックの出力"
translate japanese strings:
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
new "永続データビューア"
@@ -220,3 +217,43 @@ translate japanese strings:
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
new "ヘルプでは、文書化されていない機能が表示されることがあります。ドキュメントで使用したい関数や\nクラスを確認してください。\n\n"
# renpy/common/_developer/developer.rpym:69
old "Show Translation Identifiers"
new "飜訳識別子を表示します"
# renpy/common/_developer/developer.rpym:72
old "Hide Translation Identifiers"
new "飜訳識別子を非表示します"
# renpy/common/_developer/developer.rpym:81
old "Show Filename and Line"
new "ファイル名と行を表示します"
# renpy/common/_developer/developer.rpym:84
old "Hide Filename and Line"
new "ファイル名と行を非表示します"
# renpy/common/_developer/developer.rpym:127
old "Layer [l]:"
new "Layer [l]:"
# renpy/common/_developer/developer.rpym:131
old " [name] [attributes] (hidden)"
new " [name] [attributes] (hidden)"
# renpy/common/_developer/developer.rpym:135
old " [name] [attributes]"
new " [name] [attributes]"
# renpy/common/_developer/developer.rpym:606
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff}クリップボードにコピー{/color}"
# renpy/common/_developer/developer.rpym:612
old "\n{color=#fff}クリックでコピー.\nドラッグで移動します{/color}"
new ""
# renpy/common/_developer/developer.rpym:657
old "Click to open in editor."
new "エディターで開く"
+5 -2
View File
@@ -458,8 +458,11 @@ translate japanese strings:
new "## NVL モードにおける、一度に表示されるエントリー(1台詞)の最大数。この値以上のエントリーを表示しようとすると、一番古いエントリーが取り除かれます。"
translate japanese strings:
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
new "## スクリーンやトランスフォームのプロパティが無効または不安定であることをチェックできるようにする。"
# gui/game/gui.rpy:347
old "## Additional space to add between history screen entries."
new "## history screen の追加の行間を設定します。"
+133 -4
View File
@@ -2032,8 +2032,8 @@
new "ランチャーテーマ:"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "カスタムテーマ作成情報は {a=https://www.renpy.org/doc/html/skins.html}Ren'Pyのドキュメント{/a}で読めます。"
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "カスタムテーマ作成情報は {a=[skins_url]}Ren'Pyのドキュメント{/a}で読めます。"
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2154,10 +2154,139 @@ translate japanese strings:
new "パッケージの作成..."
translate japanese strings:
# game/updater.rpy:79
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Ren'Py のリリース版に対する修正を行ったナイトリービルドです。"
# game/androidstrings.rpy:46
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please install JDK [JDK_REQUIREMENT], and add it to your PATH.\n\nWithout a working JDK, I can't continue."
new "javac を使用してテストファイルをコンパイルできませんでした。Java Development Kitをまだインストールしていないならば:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}からダウンロードしてください。\n\nJDKはJREとは異なるため、JDKがなくてもJavaを使用できる可能性があります。JDK [JDK_REQUIREMENT] をインストールしてパスに追加してください。\n\n動作するJDKなしでは続行できません。"
# game/androidstrings.rpy:47
old "The version of Java on your computer does not appear to be JDK [JDK_REQUIREMENT], which is required to build Android apps. If you need to install a newer JDK, you can download it from:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, and add it to your PATH.\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "コンピューター上のJavaのバージョンはAndroidアプリをビルドするのに必要なJDK [JDK_REQUIREMENT] からはわかりません。より新しいJDKをインストール必要があれば次からダウンロードしてパスに追加してください。:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}\n\n JAVA_HOME 環境変数を設定して異なるバージョンのJavaの使用もできます。"
# game/choose_directory.rpy:72
old "No directory was selected, but one is required."
new "ディレクトリーを選択してください。"
# game/choose_directory.rpy:80
old "The selected directory does not exist."
new "選択されたディレクトリーがありません。"
# game/choose_directory.rpy:82
old "The selected directory is not writable."
new "選択されたディレクトリーは書き込みできません。"
# game/distribute.rpy:535
old "Building distributions failed:\n\nThe project is the Ren'Py Tutorial, which can't be distributed outside of Ren'Py. Consider using The Question as a test project."
new "配布物のビルドに失敗しました:\n\nプロジェクトは Tutorial ですが、これは Ren'Py 外に出せません。テストプロジェクトには The Question を使用してください。"
# game/distribute.rpy:562
old "This may be derived from build.name and config.version or build.version."
new "これは build.name と config.version または build.version から所得されます。"
# game/distribute.rpy:1620
old "Finishing the [variant] [format] package."
new "[variant] [format] のパッケージを完了しました。"
# game/editor.rpy:185
old "Atom is deprecated and its bugs are known for corrupting games, using another editor is recommended."
new "Atomは非推奨であり、そのバグはゲームを破壊することで知られているので他のエディタを使うことをお勧めします。"
# game/editor.rpy:214
old "JEdit is deprecated, using another editor is recommended."
new "JEditは非推奨です。他のエディタを使うことをお勧めします。"
# game/editor.rpy:607
old "The Atom text editor is no longer supported by its developers. We suggest switching to Visual Studio Code or another editor."
new "Atom はもう開発者自身にサポートされていません。Visual Studio Code や他のエディターを進めます。"
# game/editor.rpy:607
old "Select editor now."
new "今エディターを選択する"
# game/editor.rpy:607
old "Ignore until next launch."
new "次の起動まで無視する"
# game/editor.rpy:607
old "Do not ask again."
new "次回は尋ねません"
# game/new_project.rpy:38
old "Warning : you are using Ren'Py 7. It is recommended to start new projects using Ren'Py 8 instead."
new "警告 : Ren'Py 7 を使用しています。新しいプロジェクトの開始には代りに Ren'Py 8 の使用が推奨されています。"
# game/new_project.rpy:49
old "Please select a template project to use."
new "使用するテンプレートプロジェクトを選択してください。"
# game/new_project.rpy:49
old "Do not use a template project."
new "テンプレートプロジェクトを使用しない"
# game/preferences.rpy:94
old "Lint"
new "Lint"
# game/preferences.rpy:233
old "Game Options:"
new "ゲームオプション"
# game/preferences.rpy:240
old "Skip splashscreen"
new "スプラッシュスクリーンをスキップします"
# game/preferences.rpy:258
old "Restore window position"
new "ウィンドウ位置を復元します"
# game/preferences.rpy:262
old "Prefer RPU updates"
new "RPU アップデートを優先します"
# game/preferences.rpy:332
old "Open projects.txt"
new "projects.txt を開きます"
# game/preferences.rpy:356
old "Lint toggles:"
new "Lint トグル"
# game/preferences.rpy:360
old "Check for orphan/obsolete translations"
new "未使用の翻訳の確認"
# game/preferences.rpy:363
old "Check parameters shadowing reserved names"
new "予約された名前を shadowing するパラメーターを確認します"
# game/preferences.rpy:366
old "Print block, word, and character counts by speaking character."
new "ブロック、単語、話をするキャラクターの数を出力します"
# game/preferences.rpy:369
old "Unclosed text tags"
new "閉じられていないテキストタグ"
# game/preferences.rpy:372
old "Show all unreachable blocks and orphaned translations."
new "すべての到達できないブロックと対応するもののない翻訳を表示します"
# game/project.rpy:776
old "Splashscreen skipped in launcher preferences."
new "スプラッシュスクリーンはランチャー設定でスキップされています"
# game/updater.rpy:76
old "Nightly Fix"
new "Nightly Fix"
# game/updater.rpy:77
old "Nightly Fix (Ren'Py 8, Python 3)"
new "Nightly Fix (Ren'Py 8, Python 3)"
# game/updater.rpy:78
old "Nightly Fix (Ren'Py 7, Python 2)"
new "Nightly Fix (Ren'Py 7, Python 2)"
+7 -4
View File
@@ -525,8 +525,8 @@ translate japanese strings:
new "右クリック"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "マウスホイール上回転\n画面サイドをタッチ"
old "Mouse Wheel Up"
new "マウスホイール上回転"
# screens.rpy:1066
old "Mouse Wheel Down"
@@ -704,8 +704,6 @@ translate japanese strings:
new "## 指定されれば選択肢を表示します。config.narrator_menuがTrueだと、メニューは正常に表示されないでしょう。"
translate japanese strings:
# gui/game/screens.rpy:676
old "Upload Sync"
new "同期のアップロード"
@@ -725,3 +723,8 @@ translate japanese strings:
# gui/game/screens.rpy:1417
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
# gui/game/screens.rpy:1098
old "Start, Guide, B/Right Button"
new "スタート、ガイド、 B / Right ボタン"
+4 -5
View File
@@ -2046,8 +2046,8 @@ translate korean strings:
new "사용자 지정 테마"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "사용자 지정 테마를 만드는 방법에 대한 정보는 {a=https://www.renpy.org/doc/html/skins.html}Ren'Py 문서{/a} 에서 확인할 수 있습니다."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "사용자 지정 테마를 만드는 방법에 대한 정보는 {a=[skins_url]}Ren'Py 문서{/a} 에서 확인할 수 있습니다."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2067,12 +2067,12 @@ translate korean strings:
# game/preferences.rpy:338
old "{#in language font}Welcome! Please choose a language"
# Automatic translation.
new "{#in language font}환영합니다! 언어를 선택해 주세요."
new "{font=SourceHanSansLite.ttf}환영합니다! 언어를 선택해 주세요."
# game/preferences.rpy:373
old "{#in language font}Start using Ren'Py in [lang_name]"
# Automatic translation.
new "{#in language font}다음에서 Ren'Py 사용 시작 [lang_name]"
new "{font=SourceHanSansLite.ttf}다음에서 Ren'Py 사용 시작 [lang_name]"
# game/project.rpy:46
old "Lint checks your game for potential mistakes, and gives you statistics."
@@ -2155,4 +2155,3 @@ translate korean strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Ren'Py 릴리스 버전에 대한 수정 사항이 포함된 야간 빌드입니다."
+2 -2
View File
@@ -517,8 +517,8 @@
new "우클릭"
# screens.rpy:1065
old "Mouse Wheel Up\nClick Rollback Side"
new "휠 위로\n롤백 클릭"
old "Mouse Wheel Up"
new "휠 위로"
# screens.rpy:1069
old "Mouse Wheel Down"
+2 -2
View File
@@ -533,8 +533,8 @@
new "Klik Kanan"
# screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "Tatal Ke Atas\nKlik Sisi Undur"
old "Mouse Wheel Up"
new "Tatal Ke Atas"
# screens.rpy:1067
old "Mouse Wheel Down"
+247 -155
View File
@@ -49,71 +49,75 @@ translate piglatin strings:
old "decrease"
new "ecreaseday"
# renpy/common/00accessibility.rpy:138
# renpy/common/00accessibility.rpy:120
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "Ccessibilityaay Enumay. Seuay upay anday ownday arrowsay otay avigatenay, anday enteray otay activateay uttonsbay anday arsbay."
# renpy/common/00accessibility.rpy:139
old "Font Override"
new "Ontfay Verrideoay"
# renpy/common/00accessibility.rpy:142
# renpy/common/00accessibility.rpy:143
old "Default"
new "Efaultday"
# renpy/common/00accessibility.rpy:146
# renpy/common/00accessibility.rpy:147
old "DejaVu Sans"
new "Ejavuday Anssay"
# renpy/common/00accessibility.rpy:150
# renpy/common/00accessibility.rpy:151
old "Opendyslexic"
new "Pendyslexicoay"
# renpy/common/00accessibility.rpy:156
# renpy/common/00accessibility.rpy:157
old "Text Size Scaling"
new "Exttay Izesay Calingsay"
# renpy/common/00accessibility.rpy:162
# renpy/common/00accessibility.rpy:163
old "Reset"
new "Esetray"
# renpy/common/00accessibility.rpy:168
# renpy/common/00accessibility.rpy:169
old "Line Spacing Scaling"
new "Inelay Pacingsay Calingsay"
# renpy/common/00accessibility.rpy:180
# renpy/common/00accessibility.rpy:181
old "High Contrast Text"
new "Ighhay Ontrastcay Exttay"
# renpy/common/00accessibility.rpy:182
# renpy/common/00accessibility.rpy:183
old "Enable"
new "Nableeay"
# renpy/common/00accessibility.rpy:186
# renpy/common/00accessibility.rpy:187
old "Disable"
new "Isableday"
# renpy/common/00accessibility.rpy:193
# renpy/common/00accessibility.rpy:194
old "Self-Voicing"
new "Elfsay-Oicingvay"
# renpy/common/00accessibility.rpy:197
# renpy/common/00accessibility.rpy:198
old "Off"
new "Ffoay"
# renpy/common/00accessibility.rpy:201
# renpy/common/00accessibility.rpy:202
old "Text-to-speech"
new "Exttay-otay-peechsay"
# renpy/common/00accessibility.rpy:205
# renpy/common/00accessibility.rpy:206
old "Clipboard"
new "Lipboardcay"
# renpy/common/00accessibility.rpy:209
# renpy/common/00accessibility.rpy:210
old "Debug"
new "Ebugday"
# renpy/common/00accessibility.rpy:223
# renpy/common/00accessibility.rpy:224
old "Self-Voicing Volume Drop"
new "Elfsay-Oicingvay Olumevay Ropday"
# renpy/common/00accessibility.rpy:234
# renpy/common/00accessibility.rpy:235
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."
@@ -273,215 +277,235 @@ translate piglatin strings:
old "%b %d, %H:%M"
new "%bay %day, %Hay:%May"
# renpy/common/00action_file.rpy:378
# renpy/common/00action_file.rpy:395
old "Save slot %s: [text]"
new "Avesay otslay %say: [text]"
# renpy/common/00action_file.rpy:461
# renpy/common/00action_file.rpy:480
old "Load slot %s: [text]"
new "Oadlay otslay %say: [text]"
# renpy/common/00action_file.rpy:514
# renpy/common/00action_file.rpy:533
old "Delete slot [text]"
new "Eleteday otslay [text]"
# renpy/common/00action_file.rpy:593
# renpy/common/00action_file.rpy:612
old "File page auto"
new "Ilefay agepay autoay"
# renpy/common/00action_file.rpy:595
# renpy/common/00action_file.rpy:614
old "File page quick"
new "Ilefay agepay uickqay"
# renpy/common/00action_file.rpy:597
# renpy/common/00action_file.rpy:616
old "File page [text]"
new "Ilefay agepay [text]"
# renpy/common/00action_file.rpy:796
# renpy/common/00action_file.rpy:815
old "Next file page."
new "Extnay ilefay agepay."
# renpy/common/00action_file.rpy:868
# renpy/common/00action_file.rpy:887
old "Previous file page."
new "Reviouspay ilefay agepay."
# renpy/common/00action_file.rpy:929
# renpy/common/00action_file.rpy:948
old "Quick save complete."
new "Uickqay avesay ompletecay."
# renpy/common/00action_file.rpy:944
# renpy/common/00action_file.rpy:963
old "Quick save."
new "Uickqay avesay."
# renpy/common/00action_file.rpy:963
# renpy/common/00action_file.rpy:982
old "Quick load."
new "Uickqay oadlay."
# renpy/common/00action_other.rpy:381
# renpy/common/00action_other.rpy:383
old "Language [text]"
new "Anguagelay [text]"
# renpy/common/00action_other.rpy:722
# renpy/common/00action_other.rpy:746
old "Open [text] directory."
new "Penoay [text] irectoryday."
# renpy/common/00director.rpy:705
# renpy/common/00director.rpy:712
old "The interactive director is not enabled here."
new "Hetay interactiveay irectorday isay otnay enableday erehay."
# renpy/common/00director.rpy:1504
# renpy/common/00director.rpy:1511
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1510
# renpy/common/00director.rpy:1517
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1574
# renpy/common/00director.rpy:1581
old "Done"
new "Oneday"
# renpy/common/00director.rpy:1584
# renpy/common/00director.rpy:1591
old "(statement)"
new "(atementstay)"
# renpy/common/00director.rpy:1585
# renpy/common/00director.rpy:1592
old "(tag)"
new "(agtay)"
# renpy/common/00director.rpy:1586
# renpy/common/00director.rpy:1593
old "(attributes)"
new "(attributesay)"
# renpy/common/00director.rpy:1587
# renpy/common/00director.rpy:1594
old "(transform)"
new "(ansformtray)"
# renpy/common/00director.rpy:1612
# renpy/common/00director.rpy:1619
old "(transition)"
new "(ansitiontray)"
# renpy/common/00director.rpy:1624
# renpy/common/00director.rpy:1631
old "(channel)"
new "(annelchay)"
# renpy/common/00director.rpy:1625
# renpy/common/00director.rpy:1632
old "(filename)"
new "(ilenamefay)"
# renpy/common/00director.rpy:1654
# renpy/common/00director.rpy:1661
old "Change"
new "Hangecay"
# renpy/common/00director.rpy:1656
# renpy/common/00director.rpy:1663
old "Add"
new "Ddaay"
# renpy/common/00director.rpy:1659
# renpy/common/00director.rpy:1666
old "Cancel"
new "Ancelcay"
# renpy/common/00director.rpy:1662
# renpy/common/00director.rpy:1669
old "Remove"
new "Emoveray"
# renpy/common/00director.rpy:1697
# renpy/common/00director.rpy:1704
old "Statement:"
new "Tatementsay:"
# renpy/common/00director.rpy:1718
# renpy/common/00director.rpy:1725
old "Tag:"
new "Agtay:"
# renpy/common/00director.rpy:1734
# renpy/common/00director.rpy:1741
old "Attributes:"
new "Ttributesaay:"
# renpy/common/00director.rpy:1745
# renpy/common/00director.rpy:1752
old "Click to toggle attribute, right click to toggle negative attribute."
new "Lickcay otay oggletay attributeay, ightray ickclay otay oggletay egativenay attributeay."
# renpy/common/00director.rpy:1757
# renpy/common/00director.rpy:1764
old "Transforms:"
new "Ransformstay:"
# renpy/common/00director.rpy:1768
# renpy/common/00director.rpy:1775
old "Click to set transform, right click to add to transform list."
new "Lickcay otay etsay ansformtray, ightray ickclay otay adday otay ansformtray istlay."
# renpy/common/00director.rpy:1780
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "Ustomizecay irectorday.ansformstray otay adday oremay ansformstray."
# renpy/common/00director.rpy:1788
old "Behind:"
new "Ehindbay:"
# renpy/common/00director.rpy:1789
# renpy/common/00director.rpy:1799
old "Click to set, right click to add to behind list."
new "Lickcay otay etsay, ightray ickclay otay adday otay ehindbay istlay."
# renpy/common/00director.rpy:1801
# renpy/common/00director.rpy:1811
old "Transition:"
new "Ransitiontay:"
# renpy/common/00director.rpy:1819
# renpy/common/00director.rpy:1821
old "Click to set."
new "Lickcay otay etsay."
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "Ustomizecay irectorday.ansitionstray otay adday oremay ansitionstray."
# renpy/common/00director.rpy:1834
old "Channel:"
new "Hannelcay:"
# renpy/common/00director.rpy:1837
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "Ustomizecay irectorday.audio_channelsay otay adday oremay annelschay."
# renpy/common/00director.rpy:1857
old "Audio Filename:"
new "Udioaay Ilenamefay:"
# renpy/common/00gui.rpy:446
# renpy/common/00gui.rpy:448
old "Are you sure?"
new "Reaay ouyay uresay?"
# renpy/common/00gui.rpy:447
# renpy/common/00gui.rpy:449
old "Are you sure you want to delete this save?"
new "Reaay ouyay uresay ouyay antway otay eleteday histay avesay?"
# renpy/common/00gui.rpy:448
# renpy/common/00gui.rpy:450
old "Are you sure you want to overwrite your save?"
new "Reaay ouyay uresay ouyay antway otay overwriteay ouryay avesay?"
# renpy/common/00gui.rpy:449
# renpy/common/00gui.rpy:451
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:450
# renpy/common/00gui.rpy:452
old "Are you sure you want to quit?"
new "Reaay ouyay uresay ouyay antway otay uitqay?"
# renpy/common/00gui.rpy:451
# renpy/common/00gui.rpy:453
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:452
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
new "Reaay ouyay uresay ouyay antway otay ontinuecay hereway ouyay eftlay offay?"
# renpy/common/00gui.rpy:455
old "Are you sure you want to end the replay?"
new "Reaay ouyay uresay ouyay antway otay enday hetay eplayray?"
# renpy/common/00gui.rpy:453
# renpy/common/00gui.rpy:456
old "Are you sure you want to begin skipping?"
new "Reaay ouyay uresay ouyay antway otay eginbay kippingsay?"
# renpy/common/00gui.rpy:454
# renpy/common/00gui.rpy:457
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:455
# renpy/common/00gui.rpy:458
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/00gui.rpy:456
# renpy/common/00gui.rpy:459
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
new "Histay avesay asway reatedcay onay aay ifferentday eviceday. Aliciouslymay onstructedcay avesay ilesfay ancay armhay ouryay omputercay. Oday ouyay usttray histay avesay'say reatorcay anday everyoneay howay ouldcay avehay angedchay hetay ilefay?"
# renpy/common/00gui.rpy:457
# renpy/common/00gui.rpy:460
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
new "Oday ouyay usttray hetay eviceday hetay avesay asway reatedcay onay? Ouyay ouldshay onlyay oosechay esyay ifay ouyay areay hetay eviceday'say olesay useray."
# renpy/common/00keymap.rpy:322
# renpy/common/00keymap.rpy:323
old "Failed to save screenshot as %s."
new "Ailedfay otay avesay creenshotsay asay %say."
# renpy/common/00keymap.rpy:334
# renpy/common/00keymap.rpy:335
old "Saved screenshot as %s."
new "Avedsay creenshotsay asay %say."
@@ -489,230 +513,266 @@ translate piglatin strings:
old "Skip Mode"
new "Kipsay Odemay"
# renpy/common/00library.rpy:353
# renpy/common/00library.rpy:317
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:271
# renpy/common/00preferences.rpy:289
old "display"
new "isplayday"
# renpy/common/00preferences.rpy:283
# renpy/common/00preferences.rpy:309
old "transitions"
new "ansitionstray"
# renpy/common/00preferences.rpy:292
# renpy/common/00preferences.rpy:318
old "skip transitions"
new "kipsay ansitionstray"
# renpy/common/00preferences.rpy:294
# renpy/common/00preferences.rpy:320
old "video sprites"
new "ideovay pritessay"
# renpy/common/00preferences.rpy:303
# renpy/common/00preferences.rpy:329
old "show empty window"
new "owshay emptyay indowway"
# renpy/common/00preferences.rpy:312
# renpy/common/00preferences.rpy:338
old "text speed"
new "exttay peedsay"
# renpy/common/00preferences.rpy:320
# renpy/common/00preferences.rpy:346
old "joystick"
new "oystickjay"
# renpy/common/00preferences.rpy:320
# renpy/common/00preferences.rpy:346
old "joystick..."
new "oystickjay..."
# renpy/common/00preferences.rpy:327
# renpy/common/00preferences.rpy:353
old "skip"
new "kipsay"
# renpy/common/00preferences.rpy:330
# renpy/common/00preferences.rpy:356
old "skip unseen [text]"
new "kipsay unseenay [text]"
# renpy/common/00preferences.rpy:335
# renpy/common/00preferences.rpy:361
old "skip unseen text"
new "kipsay unseenay exttay"
# renpy/common/00preferences.rpy:337
# renpy/common/00preferences.rpy:363
old "begin skipping"
new "eginbay kippingsay"
# renpy/common/00preferences.rpy:341
# renpy/common/00preferences.rpy:367
old "after choices"
new "afteray oiceschay"
# renpy/common/00preferences.rpy:348
# renpy/common/00preferences.rpy:374
old "skip after choices"
new "kipsay afteray oiceschay"
# renpy/common/00preferences.rpy:350
# renpy/common/00preferences.rpy:376
old "auto-forward time"
new "autoay-orwardfay imetay"
# renpy/common/00preferences.rpy:364
# renpy/common/00preferences.rpy:390
old "auto-forward"
new "autoay-orwardfay"
# renpy/common/00preferences.rpy:371
# renpy/common/00preferences.rpy:397
old "Auto forward"
new "Utoaay orwardfay"
# renpy/common/00preferences.rpy:374
# renpy/common/00preferences.rpy:400
old "auto-forward after click"
new "autoay-orwardfay afteray ickclay"
# renpy/common/00preferences.rpy:383
# renpy/common/00preferences.rpy:409
old "automatic move"
new "automaticay ovemay"
# renpy/common/00preferences.rpy:392
# renpy/common/00preferences.rpy:418
old "wait for voice"
new "aitway orfay oicevay"
# renpy/common/00preferences.rpy:401
# renpy/common/00preferences.rpy:427
old "voice sustain"
new "oicevay ustainsay"
# renpy/common/00preferences.rpy:410
# renpy/common/00preferences.rpy:436
old "self voicing"
new "elfsay oicingvay"
# renpy/common/00preferences.rpy:419
# renpy/common/00preferences.rpy:439
old "self voicing enable"
new "elfsay oicingvay enableay"
# renpy/common/00preferences.rpy:441
old "self voicing disable"
new "elfsay oicingvay isableday"
# renpy/common/00preferences.rpy:445
old "self voicing volume drop"
new "elfsay oicingvay olumevay ropday"
# renpy/common/00preferences.rpy:427
# renpy/common/00preferences.rpy:453
old "clipboard voicing"
new "ipboardclay oicingvay"
# renpy/common/00preferences.rpy:436
# renpy/common/00preferences.rpy:456
old "clipboard voicing enable"
new "ipboardclay oicingvay enableay"
# renpy/common/00preferences.rpy:458
old "clipboard voicing disable"
new "ipboardclay oicingvay isableday"
# renpy/common/00preferences.rpy:462
old "debug voicing"
new "ebugday oicingvay"
# renpy/common/00preferences.rpy:445
# renpy/common/00preferences.rpy:465
old "debug voicing enable"
new "ebugday oicingvay enableay"
# renpy/common/00preferences.rpy:467
old "debug voicing disable"
new "ebugday oicingvay isableday"
# renpy/common/00preferences.rpy:471
old "emphasize audio"
new "emphasizeay audioay"
# renpy/common/00preferences.rpy:454
# renpy/common/00preferences.rpy:480
old "rollback side"
new "ollbackray idesay"
# renpy/common/00preferences.rpy:464
# renpy/common/00preferences.rpy:490
old "gl powersave"
new "glay owersavepay"
# renpy/common/00preferences.rpy:470
# renpy/common/00preferences.rpy:496
old "gl framerate"
new "glay ameratefray"
# renpy/common/00preferences.rpy:473
# renpy/common/00preferences.rpy:499
old "gl tearing"
new "glay earingtay"
# renpy/common/00preferences.rpy:476
# renpy/common/00preferences.rpy:502
old "font transform"
new "ontfay ansformtray"
# renpy/common/00preferences.rpy:479
# renpy/common/00preferences.rpy:505
old "font size"
new "ontfay izesay"
# renpy/common/00preferences.rpy:487
# renpy/common/00preferences.rpy:513
old "font line spacing"
new "ontfay inelay pacingsay"
# renpy/common/00preferences.rpy:495
# renpy/common/00preferences.rpy:521
old "system cursor"
new "ystemsay ursorcay"
# renpy/common/00preferences.rpy:504
# renpy/common/00preferences.rpy:530
old "renderer menu"
new "endererray enumay"
# renpy/common/00preferences.rpy:507
# renpy/common/00preferences.rpy:533
old "accessibility menu"
new "accessibilityay enumay"
# renpy/common/00preferences.rpy:510
# renpy/common/00preferences.rpy:536
old "high contrast text"
new "ighhay ontrastcay exttay"
# renpy/common/00preferences.rpy:519
# renpy/common/00preferences.rpy:545
old "audio when minimized"
new "audioay henway inimizedmay"
# renpy/common/00preferences.rpy:528
# renpy/common/00preferences.rpy:554
old "audio when unfocused"
new "audioay henway unfocuseday"
# renpy/common/00preferences.rpy:537
# renpy/common/00preferences.rpy:563
old "web cache preload"
new "ebway achecay reloadpay"
# renpy/common/00preferences.rpy:552
# renpy/common/00preferences.rpy:578
old "voice after game menu"
new "oicevay afteray amegay enumay"
# renpy/common/00preferences.rpy:571
# renpy/common/00preferences.rpy:587
old "restore window position"
new "estoreray indowway ositionpay"
# renpy/common/00preferences.rpy:596
old "reset"
new "esetray"
# renpy/common/00preferences.rpy:609
old "main volume"
new "ainmay olumevay"
# renpy/common/00preferences.rpy:572
# renpy/common/00preferences.rpy:610
old "music volume"
new "usicmay olumevay"
# renpy/common/00preferences.rpy:573
# renpy/common/00preferences.rpy:611
old "sound volume"
new "oundsay olumevay"
# renpy/common/00preferences.rpy:574
# renpy/common/00preferences.rpy:612
old "voice volume"
new "oicevay olumevay"
# renpy/common/00preferences.rpy:575
# renpy/common/00preferences.rpy:613
old "mute main"
new "utemay ainmay"
# renpy/common/00preferences.rpy:576
# renpy/common/00preferences.rpy:614
old "mute music"
new "utemay usicmay"
# renpy/common/00preferences.rpy:577
# renpy/common/00preferences.rpy:615
old "mute sound"
new "utemay oundsay"
# renpy/common/00preferences.rpy:578
# renpy/common/00preferences.rpy:616
old "mute voice"
new "utemay oicevay"
# renpy/common/00preferences.rpy:579
# renpy/common/00preferences.rpy:617
old "mute all"
new "utemay allay"
# renpy/common/00preferences.rpy:653
# renpy/common/00preferences.rpy:699
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Lipboardcay oicingvay enableday. Resspay 'iftshay+Cay' otay isableday."
# renpy/common/00preferences.rpy:655
# renpy/common/00preferences.rpy:701
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:657
# renpy/common/00preferences.rpy:703
old "Self-voicing enabled. Press 'v' to disable."
new "Elfsay-oicingvay enableday. Resspay 'vay' otay isableday."
# renpy/common/00speechbubble.rpy:344
# renpy/common/00speechbubble.rpy:392
old "Speech Bubble Editor"
new "Peechsay Ubblebay Ditoreay"
# renpy/common/00speechbubble.rpy:349
# renpy/common/00speechbubble.rpy:397
old "(hide)"
new "(idehay)"
# renpy/common/00speechbubble.rpy:408
old "(clear retained bubbles)"
new "(earclay etainedray ubblesbay)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
new "Yncsay ownloadedday."
@@ -753,114 +813,146 @@ translate piglatin strings:
old "The sync contains a file with an invalid name."
new "Hetay yncsay ontainscay aay ilefay ithway anay invaliday amenay."
# renpy/common/00sync.rpy:532
# renpy/common/00sync.rpy:538
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
new "Histay illway uploaday ouryay avessay otay hetay {a=https://sync.renpy.org}Enray'Ypay Yncsay Erversay{/a}.\nOday ouyay antway otay ontinuecay?"
# renpy/common/00sync.rpy:561
# renpy/common/00sync.rpy:569
old "Enter Sync ID"
new "Ntereay Yncsay Diay"
# renpy/common/00sync.rpy:572
# renpy/common/00sync.rpy:580
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
new "Histay illway ontactcay hetay {a=https://sync.renpy.org}Enray'Ypay Yncsay Erversay{/a}."
# renpy/common/00sync.rpy:599
# renpy/common/00sync.rpy:609
old "Sync Success"
new "Yncsay Uccesssay"
# renpy/common/00sync.rpy:602
# renpy/common/00sync.rpy:612
old "The Sync ID is:"
new "Hetay Yncsay Diay isay:"
# renpy/common/00sync.rpy:608
# renpy/common/00sync.rpy:618
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
new "Ouyay ancay useay histay Diay otay ownloadday ouryay avesay onay anotheray eviceday.\nHistay yncsay illway expireay inay anay ourhay.\nEnray'Ypay Yncsay isay upportedsay ybay {a=https://www.renpy.org/sponsors.html}Enray'Ypay'say Ponsorssay{/a}."
# renpy/common/00sync.rpy:612
# renpy/common/00sync.rpy:622
old "Continue"
new "Ontinuecay"
# renpy/common/00sync.rpy:634
# renpy/common/00sync.rpy:646
old "Sync Error"
new "Yncsay Rroreay"
# renpy/common/00iap.rpy:219
# renpy/common/00iap.rpy:231
old "Contacting App Store\nPlease Wait..."
new "Ontactingcay Ppaay Toresay\nLeasepay Aitway..."
# renpy/common/00updater.rpy:419
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:504
old "No update methods found."
new "Onay updateay ethodsmay oundfay."
# renpy/common/00updater.rpy:548
# renpy/common/00updater.rpy:551
old "Could not download file list: "
new "Ouldcay otnay ownloadday ilefay istlay: "
# renpy/common/00updater.rpy:554
old "File list digest does not match."
new "Ilefay istlay igestday oesday otnay atchmay."
# renpy/common/00updater.rpy:763
old "An error is being simulated."
new "Naay erroray isay eingbay imulatedsay."
# renpy/common/00updater.rpy:738
# renpy/common/00updater.rpy:951
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:752
# renpy/common/00updater.rpy:965
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:755
# renpy/common/00updater.rpy:968
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:783
# renpy/common/00updater.rpy:1048
old "Could not verify update signature."
new "Ouldcay otnay erifyvay updateay ignaturesay."
# renpy/common/00updater.rpy:1084
# renpy/common/00updater.rpy:1367
old "The update file was not downloaded."
new "Hetay updateay ilefay asway otnay ownloadedday."
# renpy/common/00updater.rpy:1102
# renpy/common/00updater.rpy:1385
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:1252
# renpy/common/00updater.rpy:1535
old "While unpacking {}, unknown type {}."
new "Hileway unpackingay {}, unknownay ypetay {}."
# renpy/common/00updater.rpy:1624
# renpy/common/00updater.rpy:2015
old "Updater"
new "Pdateruay"
# renpy/common/00updater.rpy:1635
# renpy/common/00updater.rpy:2026
old "This program is up to date."
new "Histay rogrampay isay upay otay ateday."
# renpy/common/00updater.rpy:1637
# renpy/common/00updater.rpy:2028
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:1639
# renpy/common/00updater.rpy:2030
old "Preparing to download the updates."
new "Reparingpay otay ownloadday hetay updatesay."
# renpy/common/00updater.rpy:1641
# renpy/common/00updater.rpy:2032
old "Downloading the updates."
new "Ownloadingday hetay updatesay."
# renpy/common/00updater.rpy:1643
# renpy/common/00updater.rpy:2034
old "Unpacking the updates."
new "Npackinguay hetay updatesay."
# renpy/common/00updater.rpy:1647
# renpy/common/00updater.rpy:2038
old "The updates have been installed. The program will restart."
new "Hetay updatesay avehay eenbay installeday. Hetay rogrampay illway estartray."
# renpy/common/00updater.rpy:1649
# renpy/common/00updater.rpy:2040
old "The updates have been installed."
new "Hetay updatesay avehay eenbay installeday."
# renpy/common/00updater.rpy:1651
# renpy/common/00updater.rpy:2042
old "The updates were cancelled."
new "Hetay updatesay ereway ancelledcay."
# renpy/common/00updater.rpy:2072
old "Preparing to download the game data."
new "Reparingpay otay ownloadday hetay amegay ataday."
# renpy/common/00updater.rpy:2074
old "Downloading the game data."
new "Ownloadingday hetay amegay ataday."
# renpy/common/00updater.rpy:2076
old "The game data has been downloaded."
new "Hetay amegay ataday ashay eenbay ownloadedday."
# renpy/common/00updater.rpy:2078
old "An error occured when trying to download game data:"
new "Naay erroray occureday henway yingtray otay ownloadday amegay ataday:"
# renpy/common/00updater.rpy:2083
old "This game cannot be run until the game data has been downloaded."
new "Histay amegay annotcay ebay unray untilay hetay amegay ataday ashay eenbay ownloadedday."
# renpy/common/00updater.rpy:2090
old "Retry"
new "Etryray"
# renpy/common/00gallery.rpy:627
old "Image [index] of [count] locked."
new "Mageiay [index] ofay [count] ockedlay."
+75 -43
View File
@@ -45,74 +45,106 @@ translate piglatin strings:
old "Image Attributes"
new "Mageiay Ttributesaay"
# renpy/common/_developer/developer.rpym:70
# renpy/common/_developer/developer.rpym:69
old "Show Translation Identifiers"
new "Howsay Ranslationtay Dentifiersiay"
# renpy/common/_developer/developer.rpym:72
old "Hide Translation Identifiers"
new "Idehay Ranslationtay Dentifiersiay"
# renpy/common/_developer/developer.rpym:77
old "Speech Bubble Editor (Shift+B)"
new "Peechsay Ubblebay Ditoreay (Hiftsay+Bay)"
# renpy/common/_developer/developer.rpym:97
old "[name] [attributes] (hidden)"
new "[name] [attributes] (iddenhay)"
# renpy/common/_developer/developer.rpym:81
old "Show Filename and Line"
new "Howsay Ilenamefay anday Inelay"
# renpy/common/_developer/developer.rpym:101
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:84
old "Hide Filename and Line"
new "Idehay Ilenamefay anday Inelay"
# renpy/common/_developer/developer.rpym:151
# renpy/common/_developer/developer.rpym:127
old "Layer [l]:"
new "Ayerlay [l]:"
# renpy/common/_developer/developer.rpym:131
old " [name] [attributes] (hidden)"
new " [name] [attributes] (iddenhay)"
# renpy/common/_developer/developer.rpym:135
old " [name] [attributes]"
new " [name] [attributes]"
# renpy/common/_developer/developer.rpym:187
old "Nothing to inspect."
new "Othingnay otay inspectay."
# renpy/common/_developer/developer.rpym:162
# renpy/common/_developer/developer.rpym:198
old "Hide deleted"
new "Idehay eletedday"
# renpy/common/_developer/developer.rpym:162
# renpy/common/_developer/developer.rpym:198
old "Show deleted"
new "Howsay eletedday"
# renpy/common/_developer/developer.rpym:318
# renpy/common/_developer/developer.rpym:349
old "Rectangle copied to clipboard."
new "Ectangleray opiedcay otay ipboardclay."
# renpy/common/_developer/developer.rpym:321
# renpy/common/_developer/developer.rpym:352
old "Position copied to clipboard."
new "Ositionpay opiedcay otay ipboardclay."
# renpy/common/_developer/developer.rpym:333
# renpy/common/_developer/developer.rpym:364
old "Rectangle: %r"
new "Ectangleray: %ray"
# renpy/common/_developer/developer.rpym:336
# renpy/common/_developer/developer.rpym:367
old "Mouse position: %r"
new "Ousemay ositionpay: %ray"
# renpy/common/_developer/developer.rpym:341
# renpy/common/_developer/developer.rpym:372
old "Right-click or escape to quit."
new "Ightray-ickclay oray escapeay otay uitqay."
# renpy/common/_developer/developer.rpym:389
# renpy/common/_developer/developer.rpym:420
old "Type to filter: "
new "Ypetay otay ilterfay: "
# renpy/common/_developer/developer.rpym:507
# renpy/common/_developer/developer.rpym:538
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Exturestay: [tex_count] ([tex_size_mb:.1f] Bmay)"
# renpy/common/_developer/developer.rpym:511
# renpy/common/_developer/developer.rpym:542
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Mageiay achecay: [cache_pct:.1f]% ([cache_size_mb:.1f] Bmay)"
# renpy/common/_developer/developer.rpym:521
# renpy/common/_developer/developer.rpym:552
old "✔ "
new "✔ "
# renpy/common/_developer/developer.rpym:524
# renpy/common/_developer/developer.rpym:555
old "✘ "
new "✘ "
# renpy/common/_developer/developer.rpym:529
# renpy/common/_developer/developer.rpym:560
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ redictedpay imageay (oodgay){/color}\n{color=#fcc}✘ unpredicteday imageay (adbay){/color}\n{color=#fff}Ragday otay ovemay.{/color}"
# renpy/common/_developer/developer.rpym:606
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff}Opiedcay otay ipboardclay.{/color}"
# renpy/common/_developer/developer.rpym:612
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
new "\n{color=#fff}Lickcay otay opycay.\nRagday otay ovemay.{/color}"
# renpy/common/_developer/developer.rpym:657
old "Click to open in editor."
new "Lickcay otay openay inay editoray."
# renpy/common/_developer/inspector.rpym:38
old "Displayable Inspector"
new "Isplayableday Nspectoriay"
@@ -149,91 +181,91 @@ translate piglatin strings:
old "<repr() failed>"
new "<eprray() ailedfay>"
# renpy/common/00console.rpy:533
# renpy/common/00console.rpy:537
old "Press <esc> to exit console. Type help for help.\n"
new "Resspay <escay> otay exitay onsolecay. Ypetay elphay orfay elphay.\n"
# renpy/common/00console.rpy:537
# renpy/common/00console.rpy:541
old "Ren'Py script enabled."
new "Enray'Ypay criptsay enableday."
# renpy/common/00console.rpy:539
# renpy/common/00console.rpy:543
old "Ren'Py script disabled."
new "Enray'Ypay criptsay isabledday."
# renpy/common/00console.rpy:789
# renpy/common/00console.rpy:793
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
new "elphay: owshay histay elphay\n elphay <expray>: owshay ignaturesay anday ocumentationday ofay <expray>"
# renpy/common/00console.rpy:813
# renpy/common/00console.rpy:817
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
new "Elphay aymay isplayday undocumenteday unctionsfay. Leasepay eckchay hattay hetay unctionfay oray\nassclay ouyay antway otay useay isay ocumentedday.\n\n"
# renpy/common/00console.rpy:822
# renpy/common/00console.rpy:826
old "commands:\n"
new "ommandscay:\n"
# renpy/common/00console.rpy:832
# renpy/common/00console.rpy:836
old " <renpy script statement>: run the statement\n"
new " <enpyray criptsay atementstay>: unray hetay atementstay\n"
# renpy/common/00console.rpy:834
# renpy/common/00console.rpy:838
old " <python expression or statement>: run the expression or statement"
new " <ythonpay expressionay oray atementstay>: unray hetay expressionay oray atementstay"
# renpy/common/00console.rpy:842
# renpy/common/00console.rpy:846
old "clear: clear the console history"
new "earclay: earclay hetay onsolecay istoryhay"
# renpy/common/00console.rpy:846
# renpy/common/00console.rpy:850
old "exit: exit the console"
new "exitay: exitay hetay onsolecay"
# renpy/common/00console.rpy:854
# renpy/common/00console.rpy:858
old "stack: print the return stack"
new "ackstay: rintpay hetay eturnray ackstay"
# renpy/common/00console.rpy:876
# renpy/common/00console.rpy:880
old "load <slot>: loads the game from slot"
new "oadlay <otslay>: oadslay hetay amegay omfray otslay"
# renpy/common/00console.rpy:889
# renpy/common/00console.rpy:893
old "save <slot>: saves the game in slot"
new "avesay <otslay>: avessay hetay amegay inay otslay"
# renpy/common/00console.rpy:900
# renpy/common/00console.rpy:904
old "reload: reloads the game, refreshing the scripts"
new "eloadray: eloadsray hetay amegay, efreshingray hetay criptssay"
# renpy/common/00console.rpy:908
# renpy/common/00console.rpy:912
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:945
# renpy/common/00console.rpy:949
old "unwatch <expression>: stop watching an expression"
new "unwatchay <expressionay>: opstay atchingway anay expressionay"
# renpy/common/00console.rpy:991
# renpy/common/00console.rpy:995
old "unwatchall: stop watching all expressions"
new "unwatchallay: opstay atchingway allay expressionsay"
# renpy/common/00console.rpy:1012
# renpy/common/00console.rpy:1016
old "jump <label>: jumps to label"
new "umpjay <abellay>: umpsjay otay abellay"
# renpy/common/00console.rpy:1028
# renpy/common/00console.rpy:1032
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:1032
# renpy/common/00console.rpy:1036
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:1036
# renpy/common/00console.rpy:1040
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escapeay: Nableseay escapingay ofay unicodeay ymbolssay inay unicodeay ringsstay."
# renpy/common/00console.rpy:1040
# renpy/common/00console.rpy:1044
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)."
+18 -18
View File
@@ -129,75 +129,75 @@ translate piglatin strings:
old "Back (B)"
new "Ackbay (Bay)"
# renpy/common/_errorhandling.rpym:555
# renpy/common/_errorhandling.rpym:662
old "Open"
new "Penoay"
# renpy/common/_errorhandling.rpym:557
# renpy/common/_errorhandling.rpym:664
old "Opens the traceback.txt file in a text editor."
new "Pensoay hetay acebacktray.xttay ilefay inay aay exttay editoray."
# renpy/common/_errorhandling.rpym:559
# renpy/common/_errorhandling.rpym:666
old "Copy BBCode"
new "Opycay Bcodebay"
# renpy/common/_errorhandling.rpym:561
# renpy/common/_errorhandling.rpym:668
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:563
# renpy/common/_errorhandling.rpym:670
old "Copy Markdown"
new "Opycay Arkdownmay"
# renpy/common/_errorhandling.rpym:565
# renpy/common/_errorhandling.rpym:672
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:594
# renpy/common/_errorhandling.rpym:703
old "An exception has occurred."
new "Naay exceptionay ashay occurreday."
# renpy/common/_errorhandling.rpym:617
# renpy/common/_errorhandling.rpym:726
old "Rollback"
new "Ollbackray"
# renpy/common/_errorhandling.rpym:619
# renpy/common/_errorhandling.rpym:728
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:622
# renpy/common/_errorhandling.rpym:731
old "Ignore"
new "Gnoreiay"
# renpy/common/_errorhandling.rpym:626
# renpy/common/_errorhandling.rpym:735
old "Ignores the exception, allowing you to continue."
new "Gnoresiay hetay exceptionay, allowingay ouyay otay ontinuecay."
# renpy/common/_errorhandling.rpym:628
# renpy/common/_errorhandling.rpym:737
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:632
# renpy/common/_errorhandling.rpym:741
old "Reload"
new "Eloadray"
# renpy/common/_errorhandling.rpym:634
# renpy/common/_errorhandling.rpym:743
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:637
# renpy/common/_errorhandling.rpym:746
old "Console"
new "Onsolecay"
# renpy/common/_errorhandling.rpym:639
# renpy/common/_errorhandling.rpym:748
old "Opens a console to allow debugging the problem."
new "Pensoay aay onsolecay otay alloway ebuggingday hetay roblempay."
# renpy/common/_errorhandling.rpym:652
# renpy/common/_errorhandling.rpym:761
old "Quits the game."
new "Uitsqay hetay amegay."
# renpy/common/_errorhandling.rpym:673
# renpy/common/_errorhandling.rpym:782
old "Parsing the script failed."
new "Arsingpay hetay criptsay ailedfay."
+23 -19
View File
@@ -358,82 +358,86 @@ translate piglatin strings:
new "## Hetay eighthay ofay aay istoryhay creensay entryay, oray Onenay otay akemay hetay eighthay ariablevay atay hetay ostcay ofay erformancepay."
# gui/game/gui.rpy:347
old "## Additional space to add between history screen entries."
new "## Dditionalaay pacesay otay adday etweenbay istoryhay creensay entriesay."
# gui/game/gui.rpy:350
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## Hetay ositionpay, idthway, anday alignmentay ofay hetay abellay ivinggay hetay amenay ofay hetay peakingsay aracterchay."
# gui/game/gui.rpy:354
# gui/game/gui.rpy:357
old "## The position, width, and alignment of the dialogue text."
new "## Hetay ositionpay, idthway, anday alignmentay ofay hetay ialogueday exttay."
# gui/game/gui.rpy:361
# gui/game/gui.rpy:364
old "## NVL-Mode"
new "## Vlnay-Odemay"
# gui/game/gui.rpy:363
# gui/game/gui.rpy:366
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## Hetay Vlnay-odemay creensay isplaysday hetay ialogueday pokensay ybay Vlnay-odemay aracterschay."
# gui/game/gui.rpy:365
# gui/game/gui.rpy:368
old "## The borders of the background of the NVL-mode background window."
new "## Hetay ordersbay ofay hetay ackgroundbay ofay hetay Vlnay-odemay ackgroundbay indowway."
# gui/game/gui.rpy:368
# gui/game/gui.rpy:371
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
new "## Hetay aximummay umbernay ofay Vlnay-odemay entriesay Enray'Ypay illway isplayday. Henway oremay entriesay hantay histay areay otay ebay owshay, hetay oldestay entryay illway ebay emovedray."
# gui/game/gui.rpy:372
# gui/game/gui.rpy:375
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## Hetay eighthay ofay anay Vlnay-odemay entryay. Etsay histay otay Onenay otay avehay hetay entriesay ynamicallyday adjustay eighthay."
# gui/game/gui.rpy:376
# gui/game/gui.rpy:379
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## Hetay pacingsay etweenbay Vlnay-odemay entriesay henway uigay.vl_heightnay isay Onenay, anday etweenbay Vlnay-odemay entriesay anday anay Vlnay-odemay enumay."
# gui/game/gui.rpy:393
# gui/game/gui.rpy:396
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## Hetay ositionpay, idthway, anday alignmentay ofay vl_thoughtnay exttay (hetay exttay aidsay ybay hetay vl_narratornay aracterchay.)"
# gui/game/gui.rpy:400
# gui/game/gui.rpy:403
old "## The position of nvl menu_buttons."
new "## Hetay ositionpay ofay vlnay enu_buttonsmay."
# gui/game/gui.rpy:405
# gui/game/gui.rpy:408
old "## Localization"
new "## Ocalizationlay"
# gui/game/gui.rpy:407
# gui/game/gui.rpy:410
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
new "## Histay ontrolscay hereway aay inelay eakbray isay ermittedpay. Hetay efaultday isay uitablesay orfay ostmay anguageslay. Aay istlay ofay availableay aluesvay ancay ebay oundfay atay ttpshay://wwway.enpyray.orgay/ocday/tmlhay/yle_propertiesstay.tmlhay#ylestay-ropertypay-anguagelay"
# gui/game/gui.rpy:415
# gui/game/gui.rpy:418
old "## Mobile devices"
new "## Obilemay evicesday"
# gui/game/gui.rpy:420
# gui/game/gui.rpy:423
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## Histay increasesay hetay izesay ofay hetay uickqay uttonsbay otay akemay hemtay easieray otay ouchtay onay abletstay anday onesphay."
# gui/game/gui.rpy:427
# gui/game/gui.rpy:430
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## Histay angeschay hetay izesay anday pacingsay ofay ariousvay Uigay elementsay otay ensureay heytay areay easilyay isiblevay onay onesphay."
# gui/game/gui.rpy:432
# gui/game/gui.rpy:435
old "## Font sizes."
new "## Ontfay izessay."
# gui/game/gui.rpy:440
# gui/game/gui.rpy:443
old "## Adjust the location of the textbox."
new "## Djustaay hetay ocationlay ofay hetay extboxtay."
# gui/game/gui.rpy:446
# gui/game/gui.rpy:449
old "## Change the size and spacing of various things."
new "## Hangecay hetay izesay anday pacingsay ofay ariousvay hingstay."
# gui/game/gui.rpy:460
# gui/game/gui.rpy:463
old "## File button layout."
new "## Ilefay uttonbay ayoutlay."
# gui/game/gui.rpy:464
# gui/game/gui.rpy:467
old "## NVL-mode."
new "## Vlnay-odemay."
File diff suppressed because it is too large Load Diff
+122 -122
View File
@@ -201,475 +201,475 @@ translate piglatin strings:
old "## Reserve space for the navigation section."
new "## Eserveray pacesay orfay hetay avigationnay ectionsay."
# gui/game/screens.rpy:471
# gui/game/screens.rpy:475
old "Return"
new "Eturnray"
# gui/game/screens.rpy:534
# gui/game/screens.rpy:538
old "## About screen"
new "## Boutaay creensay"
# gui/game/screens.rpy:536
# gui/game/screens.rpy:540
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## Histay creensay ivesgay reditcay anday opyrightcay informationay aboutay hetay amegay anday Enray'Ypay."
# gui/game/screens.rpy:539
# gui/game/screens.rpy:543
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## Heretay'say othingnay pecialsay aboutay histay creensay, anday encehay itay alsoay ervessay asay anay exampleay ofay owhay otay akemay aay ustomcay creensay."
# gui/game/screens.rpy:546
# gui/game/screens.rpy:550
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
new "## Histay useay atementstay includesay hetay ame_menugay creensay insideay histay oneay. Hetay boxvay ildchay isay hentay includeday insideay hetay iewportvay insideay hetay ame_menugay creensay."
# gui/game/screens.rpy:556
# gui/game/screens.rpy:560
old "Version [config.version!t]\n"
new "Ersionvay [config.version!t]\n"
# gui/game/screens.rpy:558
# gui/game/screens.rpy:562
old "## gui.about is usually set in options.rpy."
new "## uigay.aboutay isay usuallyay etsay inay optionsay.pyray."
# gui/game/screens.rpy:562
# gui/game/screens.rpy:566
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Ademay ithway {a=https://www.renpy.org/}Enray'Ypay{/a} [renpy.version_only].\n\n[renpy.license!t]"
# gui/game/screens.rpy:573
# gui/game/screens.rpy:577
old "## Load and Save screens"
new "## Oadlay anday Avesay creenssay"
# gui/game/screens.rpy:575
# gui/game/screens.rpy:579
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## Hesetay creenssay areay esponsibleray orfay ettinglay hetay ayerplay avesay hetay amegay anday oadlay itay againay. Incesay heytay areshay earlynay everythingay inay ommoncay, othbay areay implementeday inay ermstay ofay aay hirdtay creensay, ile_slotsfay."
# gui/game/screens.rpy:579
# gui/game/screens.rpy:583
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#avesay ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#oadlay"
# gui/game/screens.rpy:598
# gui/game/screens.rpy:602
old "Page {}"
new "Agepay {}"
# gui/game/screens.rpy:598
# gui/game/screens.rpy:602
old "Automatic saves"
new "Utomaticaay avessay"
# gui/game/screens.rpy:598
# gui/game/screens.rpy:602
old "Quick saves"
new "Uickqay avessay"
# gui/game/screens.rpy:604
# gui/game/screens.rpy:608
old "## This ensures the input will get the enter event before any of the buttons do."
new "## Histay ensuresay hetay inputay illway etgay hetay enteray eventay eforebay anyay ofay hetay uttonsbay oday."
# gui/game/screens.rpy:608
# gui/game/screens.rpy:612
old "## The page name, which can be edited by clicking on a button."
new "## Hetay agepay amenay, hichway ancay ebay editeday ybay ickingclay onay aay uttonbay."
# gui/game/screens.rpy:620
# gui/game/screens.rpy:624
old "## The grid of file slots."
new "## Hetay idgray ofay ilefay otsslay."
# gui/game/screens.rpy:640
# gui/game/screens.rpy:644
old "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%Aay, %Bay %day %Yay, %Hay:%May"
# gui/game/screens.rpy:640
# gui/game/screens.rpy:644
old "empty slot"
new "emptyay otslay"
# gui/game/screens.rpy:648
# gui/game/screens.rpy:652
old "## Buttons to access other pages."
new "## Uttonsbay otay accessay otheray agespay."
# gui/game/screens.rpy:660
# gui/game/screens.rpy:664
old "<"
new "<"
# gui/game/screens.rpy:663
# gui/game/screens.rpy:667
old "{#auto_page}A"
new "{#auto_page}Aay"
# gui/game/screens.rpy:666
# gui/game/screens.rpy:670
old "{#quick_page}Q"
new "{#quick_page}Qay"
# gui/game/screens.rpy:668
# gui/game/screens.rpy:672
old "## range(1, 10) gives the numbers from 1 to 9."
new "## angeray(1, 10) ivesgay hetay umbersnay omfray 1 otay 9."
# gui/game/screens.rpy:672
# gui/game/screens.rpy:676
old ">"
new ">"
# gui/game/screens.rpy:676
# gui/game/screens.rpy:680
old "Upload Sync"
new "Ploaduay Yncsay"
# gui/game/screens.rpy:680
# gui/game/screens.rpy:684
old "Download Sync"
new "Ownloadday Yncsay"
# gui/game/screens.rpy:717
# gui/game/screens.rpy:721
old "## Preferences screen"
new "## Referencespay creensay"
# gui/game/screens.rpy:719
# gui/game/screens.rpy:723
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## Hetay referencespay creensay allowsay hetay ayerplay otay onfigurecay hetay amegay otay etterbay uitsay hemselvestay."
# gui/game/screens.rpy:722
# gui/game/screens.rpy:726
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#referencespay"
# gui/game/screens.rpy:739
# gui/game/screens.rpy:743
old "Display"
new "Isplayday"
# gui/game/screens.rpy:740
# gui/game/screens.rpy:744
old "Window"
new "Indowway"
# gui/game/screens.rpy:741
# gui/game/screens.rpy:745
old "Fullscreen"
new "Ullscreenfay"
# gui/game/screens.rpy:746
# gui/game/screens.rpy:750
old "Unseen Text"
new "Nseenuay Exttay"
# gui/game/screens.rpy:747
# gui/game/screens.rpy:751
old "After Choices"
new "Fteraay Hoicescay"
# gui/game/screens.rpy:748
# gui/game/screens.rpy:752
old "Transitions"
new "Ransitionstay"
# gui/game/screens.rpy:750
# gui/game/screens.rpy:754
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Dditionalaay boxesvay ofay ypetay \"adio_prefray\" oray \"eck_prefchay\" ancay ebay addeday erehay, otay adday additionalay reatorcay-efinedday referencespay."
# gui/game/screens.rpy:761
# gui/game/screens.rpy:765
old "Text Speed"
new "Exttay Peedsay"
# gui/game/screens.rpy:765
# gui/game/screens.rpy:769
old "Auto-Forward Time"
new "Utoaay-Orwardfay Imetay"
# gui/game/screens.rpy:772
# gui/game/screens.rpy:776
old "Music Volume"
new "Usicmay Olumevay"
# gui/game/screens.rpy:779
# gui/game/screens.rpy:783
old "Sound Volume"
new "Oundsay Olumevay"
# gui/game/screens.rpy:785
# gui/game/screens.rpy:789
old "Test"
new "Esttay"
# gui/game/screens.rpy:789
# gui/game/screens.rpy:793
old "Voice Volume"
new "Oicevay Olumevay"
# gui/game/screens.rpy:800
# gui/game/screens.rpy:804
old "Mute All"
new "Utemay Llaay"
# gui/game/screens.rpy:876
# gui/game/screens.rpy:880
old "## History screen"
new "## Istoryhay creensay"
# gui/game/screens.rpy:878
# gui/game/screens.rpy:882
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## Histay isay aay creensay hattay isplaysday hetay ialogueday istoryhay otay hetay ayerplay. Hileway heretay isnay'tay anythingay pecialsay aboutay histay creensay, itay oesday avehay otay accessay hetay ialogueday istoryhay oredstay inay history_list_ay."
# gui/game/screens.rpy:882
# gui/game/screens.rpy:886
old "## https://www.renpy.org/doc/html/history.html"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/istoryhay.tmlhay"
# gui/game/screens.rpy:888
# gui/game/screens.rpy:892
old "## Avoid predicting this screen, as it can be very large."
new "## Voidaay redictingpay histay creensay, asay itay ancay ebay eryvay argelay."
# gui/game/screens.rpy:899
# gui/game/screens.rpy:903
old "## This lays things out properly if history_height is None."
new "## Histay ayslay hingstay outay roperlypay ifay istory_heighthay isay Onenay."
# gui/game/screens.rpy:909
# gui/game/screens.rpy:913
old "## Take the color of the who text from the Character, if set."
new "## Aketay hetay olorcay ofay hetay howay exttay omfray hetay Haractercay, ifay etsay."
# gui/game/screens.rpy:918
# gui/game/screens.rpy:922
old "The dialogue history is empty."
new "Hetay ialogueday istoryhay isay emptyay."
# gui/game/screens.rpy:921
# gui/game/screens.rpy:925
old "## This determines what tags are allowed to be displayed on the history screen."
new "## Histay eterminesday hatway agstay areay alloweday otay ebay isplayedday onay hetay istoryhay creensay."
# gui/game/screens.rpy:966
# gui/game/screens.rpy:970
old "## Help screen"
new "## Elphay creensay"
# gui/game/screens.rpy:968
# gui/game/screens.rpy:972
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## Aay creensay hattay ivesgay informationay aboutay eykay anday ousemay indingsbay. Tiay usesay otheray creenssay (eyboard_helpkay, ouse_helpmay, anday amepad_helpgay) otay isplayday hetay actualay elphay."
# gui/game/screens.rpy:987
# gui/game/screens.rpy:991
old "Keyboard"
new "Eyboardkay"
# gui/game/screens.rpy:988
# gui/game/screens.rpy:992
old "Mouse"
new "Ousemay"
# gui/game/screens.rpy:991
# gui/game/screens.rpy:995
old "Gamepad"
new "Amepadgay"
# gui/game/screens.rpy:1004
# gui/game/screens.rpy:1008
old "Enter"
new "Ntereay"
# gui/game/screens.rpy:1005
# gui/game/screens.rpy:1009
old "Advances dialogue and activates the interface."
new "Dvancesaay ialogueday anday activatesay hetay interfaceay."
# gui/game/screens.rpy:1008
# gui/game/screens.rpy:1012
old "Space"
new "Pacesay"
# gui/game/screens.rpy:1009
# gui/game/screens.rpy:1013
old "Advances dialogue without selecting choices."
new "Dvancesaay ialogueday ithoutway electingsay oiceschay."
# gui/game/screens.rpy:1012
# gui/game/screens.rpy:1016
old "Arrow Keys"
new "Rrowaay Eyskay"
# gui/game/screens.rpy:1013
# gui/game/screens.rpy:1017
old "Navigate the interface."
new "Avigatenay hetay interfaceay."
# gui/game/screens.rpy:1016
# gui/game/screens.rpy:1020
old "Escape"
new "Scapeeay"
# gui/game/screens.rpy:1017
# gui/game/screens.rpy:1021
old "Accesses the game menu."
new "Ccessesaay hetay amegay enumay."
# gui/game/screens.rpy:1020
# gui/game/screens.rpy:1024
old "Ctrl"
new "Trlcay"
# gui/game/screens.rpy:1021
# gui/game/screens.rpy:1025
old "Skips dialogue while held down."
new "Kipssay ialogueday hileway eldhay ownday."
# gui/game/screens.rpy:1024
# gui/game/screens.rpy:1028
old "Tab"
new "Abtay"
# gui/game/screens.rpy:1025
# gui/game/screens.rpy:1029
old "Toggles dialogue skipping."
new "Ogglestay ialogueday kippingsay."
# gui/game/screens.rpy:1028
# gui/game/screens.rpy:1032
old "Page Up"
new "Agepay Puay"
# gui/game/screens.rpy:1029
# gui/game/screens.rpy:1033
old "Rolls back to earlier dialogue."
new "Ollsray ackbay otay earlieray ialogueday."
# gui/game/screens.rpy:1032
# gui/game/screens.rpy:1036
old "Page Down"
new "Agepay Ownday"
# gui/game/screens.rpy:1033
# gui/game/screens.rpy:1037
old "Rolls forward to later dialogue."
new "Ollsray orwardfay otay aterlay ialogueday."
# gui/game/screens.rpy:1037
# gui/game/screens.rpy:1041
old "Hides the user interface."
new "Ideshay hetay useray interfaceay."
# gui/game/screens.rpy:1041
# gui/game/screens.rpy:1045
old "Takes a screenshot."
new "Akestay aay creenshotsay."
# gui/game/screens.rpy:1045
# gui/game/screens.rpy:1049
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:1049
# gui/game/screens.rpy:1053
old "Opens the accessibility menu."
new "Pensoay hetay accessibilityay enumay."
# gui/game/screens.rpy:1055
# gui/game/screens.rpy:1059
old "Left Click"
new "Eftlay Lickcay"
# gui/game/screens.rpy:1059
# gui/game/screens.rpy:1063
old "Middle Click"
new "Iddlemay Lickcay"
# gui/game/screens.rpy:1063
# gui/game/screens.rpy:1067
old "Right Click"
new "Ightray Lickcay"
# gui/game/screens.rpy:1067
old "Mouse Wheel Up\nClick Rollback Side"
new "Ousemay Heelway Puay\nLickcay Ollbackray Idesay"
# gui/game/screens.rpy:1071
old "Mouse Wheel Up"
new "Ousemay Heelway Puay"
# gui/game/screens.rpy:1075
old "Mouse Wheel Down"
new "Ousemay Heelway Ownday"
# gui/game/screens.rpy:1078
# gui/game/screens.rpy:1082
old "Right Trigger\nA/Bottom Button"
new "Ightray Riggertay\nAay/Ottombay Uttonbay"
# gui/game/screens.rpy:1082
# gui/game/screens.rpy:1086
old "Left Trigger\nLeft Shoulder"
new "Eftlay Riggertay\nEftlay Houldersay"
# gui/game/screens.rpy:1086
# gui/game/screens.rpy:1090
old "Right Shoulder"
new "Ightray Houldersay"
# gui/game/screens.rpy:1091
# gui/game/screens.rpy:1094
old "D-Pad, Sticks"
new "Day-Adpay, Tickssay"
# gui/game/screens.rpy:1095
old "Start, Guide"
new "Tartsay, Uidegay"
# gui/game/screens.rpy:1098
old "Start, Guide, B/Right Button"
new "Tartsay, Uidegay, Bay/Ightray Uttonbay"
# gui/game/screens.rpy:1099
# gui/game/screens.rpy:1102
old "Y/Top Button"
new "Yay/Optay Uttonbay"
# gui/game/screens.rpy:1102
# gui/game/screens.rpy:1105
old "Calibrate"
new "Alibratecay"
# gui/game/screens.rpy:1130
# gui/game/screens.rpy:1133
old "## Additional screens"
new "## Dditionalaay creenssay"
# gui/game/screens.rpy:1134
# gui/game/screens.rpy:1137
old "## Confirm screen"
new "## Onfirmcay creensay"
# gui/game/screens.rpy:1136
# gui/game/screens.rpy:1139
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:1139
# gui/game/screens.rpy:1142
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:1143
# gui/game/screens.rpy:1146
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:1167
# gui/game/screens.rpy:1170
old "Yes"
new "Esyay"
# gui/game/screens.rpy:1168
# gui/game/screens.rpy:1171
old "No"
new "Onay"
# gui/game/screens.rpy:1170
# gui/game/screens.rpy:1173
old "## Right-click and escape answer \"no\"."
new "## Ightray-ickclay anday escapeay answeray \"onay\"."
# gui/game/screens.rpy:1197
# gui/game/screens.rpy:1200
old "## Skip indicator screen"
new "## Kipsay indicatoray creensay"
# gui/game/screens.rpy:1199
# gui/game/screens.rpy:1202
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:1202
# gui/game/screens.rpy:1205
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:1214
# gui/game/screens.rpy:1217
old "Skipping"
new "Kippingsay"
# gui/game/screens.rpy:1221
# gui/game/screens.rpy:1224
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:1248
# gui/game/screens.rpy:1251
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:1253
# gui/game/screens.rpy:1256
old "## Notify screen"
new "## Otifynay creensay"
# gui/game/screens.rpy:1255
# gui/game/screens.rpy:1258
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:1258
# gui/game/screens.rpy:1261
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:1292
# gui/game/screens.rpy:1295
old "## NVL screen"
new "## Vlnay creensay"
# gui/game/screens.rpy:1294
# gui/game/screens.rpy:1297
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:1296
# gui/game/screens.rpy:1299
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:1307
# gui/game/screens.rpy:1310
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Isplaysday ialogueday inay eitheray aay pgridvay oray hetay boxvay."
# gui/game/screens.rpy:1320
# gui/game/screens.rpy:1323
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
new "## Isplaysday hetay enumay, ifay ivengay. Hetay enumay aymay ebay isplayedday incorrectlyay ifay onfigcay.arrator_menunay isay etsay otay Ruetay."
# gui/game/screens.rpy:1350
# gui/game/screens.rpy:1353
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## Histay ontrolscay hetay aximummay umbernay ofay Vlnay-odemay entriesay hattay ancay ebay isplayedday atay onceay."
# gui/game/screens.rpy:1410
# gui/game/screens.rpy:1413
old "## Bubble screen"
new "## Ubblebay creensay"
# gui/game/screens.rpy:1412
# gui/game/screens.rpy:1415
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
new "## Hetay ubblebay creensay isay useday otay isplayday ialogueday otay hetay ayerplay henway usingay peechsay ubblesbay. Hetay ubblebay creensay akestay hetay amesay arameterspay asay hetay aysay creensay, ustmay reatecay aay isplayableday ithway hetay iday ofay \"hatway\", anday ancay reatecay isplayablesday ithway hetay \"ameboxnay\", \"howay\", anday \"indowway\" idsay."
# gui/game/screens.rpy:1417
# gui/game/screens.rpy:1420
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/ubblebay.tmlhay#ubblebay-creensay"
# gui/game/screens.rpy:1501
# gui/game/screens.rpy:1504
old "## Mobile Variants"
new "## Obilemay Ariantsvay"
# gui/game/screens.rpy:1508
# gui/game/screens.rpy:1511
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:1526
# gui/game/screens.rpy:1529
old "Menu"
new "Enumay"
+2 -3
View File
@@ -1970,9 +1970,9 @@ translate polish strings:
new "Launcher Theme:"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
# Automatic translation.
new "Informacje o tworzeniu niestandardowego motywu można znaleźć {a=https://www.renpy.org/doc/html/skins.html}w Dokumentacji Ren'Py{/a}."
new "Informacje o tworzeniu niestandardowego motywu można znaleźć {a=[skins_url]}w Dokumentacji Ren'Py{/a}."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -2062,4 +2062,3 @@ translate polish strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Nocna kompilacja poprawek do wydanej wersji Ren'Py."
+2 -2
View File
@@ -534,8 +534,8 @@ translate polish strings:
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"
old "Mouse Wheel Up"
new "Kółko myszy w górę"
# gui/game/screens.rpy:1067
old "Mouse Wheel Down"
+2 -3
View File
@@ -960,9 +960,9 @@ translate portuguese strings:
new "Tema personalizado"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
# Automatic translation.
new "Informações sobre a criação de um tema personalizado podem ser encontradas em {a=https://www.renpy.org/doc/html/skins.html}na documentação do Ren'Py{/a}."
new "Informações sobre a criação de um tema personalizado podem ser encontradas em {a=[skins_url]}na documentação do Ren'Py{/a}."
# game/preferences.rpy:273
old "Install Libraries:"
@@ -1234,4 +1234,3 @@ translate portuguese strings:
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Uma compilação noturna de correções para a versão de lançamento do Ren'Py."
+1 -1
View File
@@ -590,7 +590,7 @@ translate portuguese strings:
new "Clique com o botão direito do mouse"
# gui/game/screens.rpy:1067
old "Mouse Wheel Up\nClick Rollback Side"
old "Mouse Wheel Up"
# Automatic translation.
new "Roda do mouse para cima\nClique em Rollback Side"
+95
View File
@@ -1059,3 +1059,98 @@ translate russian strings:
# Automatic translation.
new "Ошибка синхронизации"
# renpy/common/00accessibility.rpy:120
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "Меню специальных возможностей. Для навигации используйте стрелки вверх и вниз, а для активации кнопок и полос - клавишу Enter."
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "Измените director.transforms, чтобы добавить больше трансформаций."
# renpy/common/00director.rpy:1821
old "Click to set."
new "Нажмите, чтобы установить."
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "Измените director.transitions, чтобы добавить больше переходов."
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "Измените director.audio_channels, чтобы добавить больше каналов."
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
new "Вы уверены, что хотите продолжить с того места, на котором остановились?"
# renpy/common/00preferences.rpy:439
old "self voicing enable"
new "включить авто озвучивание"
# renpy/common/00preferences.rpy:441
old "self voicing disable"
new "отключить авто озвучивание"
# renpy/common/00preferences.rpy:456
old "clipboard voicing enable"
new "включить озвучивание буфера обмена"
# renpy/common/00preferences.rpy:458
old "clipboard voicing disable"
new "отключить озвучивание буфера обмена"
# renpy/common/00preferences.rpy:465
old "debug voicing enable"
new "включить дебаг озвучивания"
# renpy/common/00preferences.rpy:467
old "debug voicing disable"
new "отключить дебаг озвучивания"
# renpy/common/00preferences.rpy:587
old "restore window position"
new "восстановить положение окна"
# renpy/common/00preferences.rpy:596
old "reset"
new "сбросить"
# renpy/common/00speechbubble.rpy:408
old "(clear retained bubbles)"
new "(очистить сохранившиеся пузыри)"
# renpy/common/00updater.rpy:504
old "No update methods found."
new "Не найдено ни одного метода обновления."
# renpy/common/00updater.rpy:551
old "Could not download file list: "
new "Не удалось загрузить список файлов: "
# renpy/common/00updater.rpy:554
old "File list digest does not match."
new "Дайджест списка файлов не совпадает."
# renpy/common/00updater.rpy:2071
old "Preparing to download the game data."
new "Подготовка к загрузке данных игры."
# renpy/common/00updater.rpy:2073
old "Downloading the game data."
new "Загрузка данных игры."
# renpy/common/00updater.rpy:2075
old "The game data has been downloaded."
new "Данные игры загружены."
# renpy/common/00updater.rpy:2077
old "An error occured when trying to download game data:"
new "При попытке загрузить данные игры произошла ошибка:"
# renpy/common/00updater.rpy:2082
old "This game cannot be run until the game data has been downloaded."
new "Эту игру невозможно запустить до тех пор, пока не будут загружены данные игры."
# renpy/common/00updater.rpy:2089
old "Retry"
new "Повторить попытку"
+39
View File
@@ -111,3 +111,42 @@ translate russian strings:
# Automatic translation.
new "В справке могут отображаться недокументированные функции. Пожалуйста, проверьте, что функция или\nкласс, который вы хотите использовать, документирован.\n\n"
# renpy/common/_developer/developer.rpym:69
old "Show Translation Identifiers"
new "Показывать идентификаторы перевода"
# renpy/common/_developer/developer.rpym:72
old "Hide Translation Identifiers"
new "Скрыть идентификаторы перевода"
# renpy/common/_developer/developer.rpym:81
old "Show Filename and Line"
new "Показывать имя файла и строку"
# renpy/common/_developer/developer.rpym:84
old "Hide Filename and Line"
new "Скрыть имя файла и строку"
# renpy/common/_developer/developer.rpym:127
old "Layer [l]:"
new "Слой [l]:"
# renpy/common/_developer/developer.rpym:131
old " [name] [attributes] (hidden)"
new " [name] [attributes] (скрытый)"
# renpy/common/_developer/developer.rpym:135
old " [name] [attributes]"
new " [name] [attributes]"
# renpy/common/_developer/developer.rpym:606
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff}Скопировано в буфер обмена.{/color}"
# renpy/common/_developer/developer.rpym:612
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
new "\n{color=#fff}Нажмите, чтобы скопировать.\nПеретащите, чтобы переместить.{/color}"
# renpy/common/_developer/developer.rpym:657
old "Click to open in editor."
new "Нажмите, чтобы открыть в текстовом редакторе."
+3 -3
View File
@@ -433,11 +433,11 @@ translate russian strings:
old "## NVL-mode."
new "## Режим NVL."
translate russian strings:
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
# Automatic translation.
new "## Включить проверку на недопустимые или нестабильные свойства в экранах или преобразованиях"
# gui/game/gui.rpy:347
old "## Additional space to add between history screen entries."
new "## Дополнительное пространство добавляемое между записями экрана истории."
+133 -5
View File
@@ -1981,8 +1981,8 @@
new "Тема лаунчера:"
# game/preferences.rpy:254
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "Информацию о создании пользовательских тем можно найти {a=https://www.renpy.org/doc/html/skins.html}в документации Ren'Py{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "Информацию о создании пользовательских тем можно найти {a=[skins_url]}в документации Ren'Py{/a}."
# game/preferences.rpy:271
old "Install Libraries:"
@@ -2091,11 +2091,139 @@ translate russian strings:
# Automatic translation.
new "Создание пакета..."
translate russian strings:
# game/updater.rpy:79
old "A nightly build of fixes to the release version of Ren'Py."
# Automatic translation.
new "Ночная сборка исправлений к релизной версии Ren'Py."
# game/androidstrings.rpy:46
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please install JDK [JDK_REQUIREMENT], and add it to your PATH.\n\nWithout a working JDK, I can't continue."
new "Я не смог скомпилировать тестовый файл с помощью javac. Если вы еще не установили Java Development Kit, загрузите его с сайта:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\n\nJDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK. Пожалуйста, установите JDK [JDK_REQUIREMENT] и добавьте его в PATH.\n\nБез работающего JDK я не могу продолжить."
# game/androidstrings.rpy:47
old "The version of Java on your computer does not appear to be JDK [JDK_REQUIREMENT], which is required to build Android apps. If you need to install a newer JDK, you can download it from:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, and add it to your PATH.\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "Похоже, что версия Java на вашем компьютере не соответствует JDK [JDK_REQUIREMENT], который требуется для создания приложений для Android. Если вам нужно установить более новый JDK, вы можете загрузить его с:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a} и добавить в PATH.\n\nВы также можете изменить переменную окружения JAVA_HOME, чтобы использовать другую версию Java."
# game/choose_directory.rpy:72
old "No directory was selected, but one is required."
new "Не выбрана ни одна папка."
# game/choose_directory.rpy:80
old "The selected directory does not exist."
new "Выбранная папка не существует."
# game/choose_directory.rpy:82
old "The selected directory is not writable."
new "Выбранная папка недоступна для записи."
# game/distribute.rpy:535
old "Building distributions failed:\n\nThe project is the Ren'Py Tutorial, which can't be distributed outside of Ren'Py. Consider using The Question as a test project."
new "Сборка дистрибутивов не удалась:\n\nПроект является туториалом Ren'Py, который не может быть собран за пределами Ren'Py. Используйте The Question в качестве тестового проекта."
# game/distribute.rpy:562
old "This may be derived from build.name and config.version or build.version."
new "Это может быть связано с build.name и config.version или build.version."
# game/distribute.rpy:1620
old "Finishing the [variant] [format] package."
new "Завершение работы над пакетом [variant] [format]."
# game/editor.rpy:185
old "Atom is deprecated and its bugs are known for corrupting games, using another editor is recommended."
new "Atom устарел, и его баги известны тем, что повреждают игры, поэтому рекомендуется использовать другой редактор."
# game/editor.rpy:214
old "JEdit is deprecated, using another editor is recommended."
new "JEdit устарел, рекомендуется использовать другой редактор."
# game/editor.rpy:607
old "The Atom text editor is no longer supported by its developers. We suggest switching to Visual Studio Code or another editor."
new "Текстовый редактор Atom больше не поддерживается его разработчиками. Мы рекомендуем перейти на Visual Studio Code или другой редактор."
# game/editor.rpy:607
old "Select editor now."
new "Выберите редактор."
# game/editor.rpy:607
old "Ignore until next launch."
new "Игнорировать до следующего запуска."
# game/editor.rpy:607
old "Do not ask again."
new "Больше не спрашивать."
# game/new_project.rpy:38
old "Warning : you are using Ren'Py 7. It is recommended to start new projects using Ren'Py 8 instead."
new "Предупреждение: вы используете Ren'Py 7. Рекомендуется начинать новые проекты, используя Ren'Py 8."
# game/new_project.rpy:49
old "Please select a template project to use."
new "Пожалуйста, выберите проект используемый как шаблон."
# game/new_project.rpy:49
old "Do not use a template project."
new "Не использовать шаблон проекта."
# game/preferences.rpy:94
old "Lint"
new "Проверка скрипта (lint)"
# game/preferences.rpy:233
old "Game Options:"
new "Опции игры:"
# game/preferences.rpy:240
old "Skip splashscreen"
new "Пропустить заставку"
# game/preferences.rpy:258
old "Restore window position"
new "Восстановить положение окна"
# game/preferences.rpy:262
old "Prefer RPU updates"
new "Предпочитать обновления RPU"
# game/preferences.rpy:332
old "Open projects.txt"
new "Открыть файл projects.txt"
# game/preferences.rpy:356
old "Lint toggles:"
new "Опции проверки скрипта:"
# game/preferences.rpy:360
old "Check for orphan/obsolete translations"
new "Проверка на наличие ненужных/устаревших переводов"
# game/preferences.rpy:363
old "Check parameters shadowing reserved names"
new "Проверка параметров, переписывающие зарезервированные имена"
# game/preferences.rpy:366
old "Print block, word, and character counts by speaking character."
new "Печать количества блоков, слов и символов используемых каждым персонажем."
# game/preferences.rpy:369
old "Unclosed text tags"
new "Незакрытые текстовые теги"
# game/preferences.rpy:372
old "Show all unreachable blocks and orphaned translations."
new "Показать все недостижимые блоки и неиспользуемые переводы."
# game/project.rpy:776
old "Splashscreen skipped in launcher preferences."
new "Заставка пропущена в настройках лаунчера."
# game/updater.rpy:76
old "Nightly Fix"
new "Ежедневные исправления"
# game/updater.rpy:77
old "Nightly Fix (Ren'Py 8, Python 3)"
new "Ежедневные исправления (Ren'Py 8, Python 3)"
# game/updater.rpy:78
old "Nightly Fix (Ren'Py 7, Python 2)"
new "Ежедневные исправления (Ren'Py 7, Python 2)"
+5 -7
View File
@@ -537,8 +537,8 @@ translate russian strings:
new "Правый клик"
# screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "Колёсико вверх\nКлик на сторону отката"
old "Mouse Wheel Up"
new "Колёсико вверх"
# screens.rpy:1067
old "Mouse Wheel Down"
@@ -681,8 +681,6 @@ translate russian strings:
old "Opens the accessibility menu."
new "Открывает меню специальных возможностей."
translate russian strings:
# gui/game/screens.rpy:676
old "Upload Sync"
# Automatic translation.
@@ -707,11 +705,11 @@ translate russian strings:
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
translate russian strings:
# gui/game/screens.rpy:411
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
# Automatic translation.
new "## Параметр scroll может быть None или один из \"viewport\" или \"vpgrid\". Этот экран предназначен для использования с одним или несколькими дочерними элементами, которые трансклюдируются (помещаются) внутрь него."
# gui/game/screens.rpy:1098
old "Start, Guide, B/Right Button"
new "Старт, Гид, B/кнопка вправо"
+336
View File
@@ -803,3 +803,339 @@
# renpy/common/00sync.rpy:631
old "Sync Error"
new "同步错误"
# renpy/common/00accessibility.rpy:32
old "bar"
new "栏"
# renpy/common/00accessibility.rpy:33
old "selected"
new "选定"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "视口"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
new "水平滚动"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
new "垂直滚动"
# renpy/common/00accessibility.rpy:37
old "activate"
new "激活"
# renpy/common/00accessibility.rpy:38
old "deactivate"
new "停用"
# renpy/common/00accessibility.rpy:39
old "increase"
new "增加"
# renpy/common/00accessibility.rpy:40
old "decrease"
new "减少"
# renpy/common/00accessibility.rpy:120
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "辅助功能菜单。使用向上和向下箭头进行导航,并使用 Enter 激活按钮和栏"
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "自定义 director.transforms 以添加更多变换"
# renpy/common/00director.rpy:1821
old "Click to set."
new "点击设置"
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "自定义 director.transitions 以添加更多过渡。"
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "自定义 director.audio_channels 以添加更多音频频道。"
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
new "您确定要从上次中断的地方继续吗?"
# renpy/common/00preferences.rpy:288
old "display"
new "显示"
# renpy/common/00preferences.rpy:308
old "transitions"
new "过渡"
# renpy/common/00preferences.rpy:317
old "skip transitions"
new "跳过过渡"
# renpy/common/00preferences.rpy:319
old "video sprites"
new "视频精灵"
# renpy/common/00preferences.rpy:328
old "show empty window"
new "显示空窗口"
# renpy/common/00preferences.rpy:337
old "text speed"
new "文本速度"
# renpy/common/00preferences.rpy:345
old "joystick"
new "手柄"
# renpy/common/00preferences.rpy:345
old "joystick..."
new "手柄..."
# renpy/common/00preferences.rpy:352
old "skip"
new "跳过"
# renpy/common/00preferences.rpy:355
old "skip unseen [text]"
new "跳过没见过的 [text]"
# renpy/common/00preferences.rpy:360
old "skip unseen text"
new "跳过没见过的文本"
# renpy/common/00preferences.rpy:362
old "begin skipping"
new "开头快进"
# renpy/common/00preferences.rpy:366
old "after choices"
new "选项后"
# renpy/common/00preferences.rpy:373
old "skip after choices"
new "选项后快进"
# renpy/common/00preferences.rpy:375
old "auto-forward time"
new "自动推进时间"
# renpy/common/00preferences.rpy:389
old "auto-forward"
new "自动推进"
# renpy/common/00preferences.rpy:396
old "Auto forward"
new "自动推进"
# renpy/common/00preferences.rpy:399
old "auto-forward after click"
new "单击后自动推进"
# renpy/common/00preferences.rpy:408
old "automatic move"
new "自动移动"
# renpy/common/00preferences.rpy:417
old "wait for voice"
new "等待朗读"
# renpy/common/00preferences.rpy:426
old "voice sustain"
new "维持朗读"
# renpy/common/00preferences.rpy:435
old "self voicing"
new "机器朗读"
# renpy/common/00preferences.rpy:438
old "self voicing enable"
new "机器朗读已启用"
# renpy/common/00preferences.rpy:440
old "self voicing disable"
new "机器朗读已禁用"
# renpy/common/00preferences.rpy:444
old "self voicing volume drop"
new "机器朗读音量减小"
# renpy/common/00preferences.rpy:452
old "clipboard voicing"
new "剪贴板朗读"
# renpy/common/00preferences.rpy:455
old "clipboard voicing enable"
new "剪贴板朗读已启用"
# renpy/common/00preferences.rpy:457
old "clipboard voicing disable"
new "剪贴板朗读已禁用"
# renpy/common/00preferences.rpy:461
old "debug voicing"
new "调试朗读"
# renpy/common/00preferences.rpy:464
old "debug voicing enable"
new "调试朗读已启用"
# renpy/common/00preferences.rpy:466
old "debug voicing disable"
new "调试朗读已禁用"
# renpy/common/00preferences.rpy:470
old "emphasize audio"
new "强调音频"
# renpy/common/00preferences.rpy:479
old "rollback side"
new "回滚侧"
# renpy/common/00preferences.rpy:489
old "gl powersave"
new "gl 省电"
# renpy/common/00preferences.rpy:495
old "gl framerate"
new "gl 帧率"
# renpy/common/00preferences.rpy:498
old "gl tearing"
new "gl 撕裂"
# renpy/common/00preferences.rpy:501
old "font transform"
new "字体变换"
# renpy/common/00preferences.rpy:504
old "font size"
new "字体大小"
# renpy/common/00preferences.rpy:512
old "font line spacing"
new "字体间距"
# renpy/common/00preferences.rpy:520
old "system cursor"
new "系统光标"
# renpy/common/00preferences.rpy:529
old "renderer menu"
new "渲染器菜单"
# renpy/common/00preferences.rpy:532
old "accessibility menu"
new "辅助功能菜单"
# renpy/common/00preferences.rpy:535
old "high contrast text"
new "高对比度文本"
# renpy/common/00preferences.rpy:544
old "audio when minimized"
new "最小化时的音频"
# renpy/common/00preferences.rpy:553
old "audio when unfocused"
new "未聚焦时的音频"
# renpy/common/00preferences.rpy:562
old "web cache preload"
new "网络缓存预加载"
# renpy/common/00preferences.rpy:577
old "voice after game menu"
new "游戏菜单后语音"
# renpy/common/00preferences.rpy:586
old "restore window position"
new "恢复窗口位置"
# renpy/common/00preferences.rpy:595
old "reset"
new "重置"
# renpy/common/00preferences.rpy:608
old "main volume"
new "主要音量"
# renpy/common/00preferences.rpy:609
old "music volume"
new "音乐音量"
# renpy/common/00preferences.rpy:610
old "sound volume"
new "声音音量"
# renpy/common/00preferences.rpy:611
old "voice volume"
new "语音音量"
# renpy/common/00preferences.rpy:612
old "mute main"
new "静音主要"
# renpy/common/00preferences.rpy:613
old "mute music"
new "静音音乐"
# renpy/common/00preferences.rpy:614
old "mute sound"
new "静音声音"
# renpy/common/00preferences.rpy:615
old "mute voice"
new "静音语音"
# renpy/common/00preferences.rpy:616
old "mute all"
new "静音全部"
# renpy/common/00speechbubble.rpy:397
old "(hide)"
new "(隐藏)"
# renpy/common/00speechbubble.rpy:408
old "(clear retained bubbles)"
new "(清除保留的气泡)"
# renpy/common/00updater.rpy:505
old "No update methods found."
new "未找到更新方法"
# renpy/common/00updater.rpy:552
old "Could not download file list: "
new "无法下载文件列表:"
# renpy/common/00updater.rpy:555
old "File list digest does not match."
new "文件列表摘要不匹配"
# renpy/common/00updater.rpy:2072
old "Preparing to download the game data."
new "准备下载游戏数据"
# renpy/common/00updater.rpy:2074
old "Downloading the game data."
new "下载游戏数据"
# renpy/common/00updater.rpy:2076
old "The game data has been downloaded."
new "游戏数据已下载"
# renpy/common/00updater.rpy:2078
old "An error occured when trying to download game data:"
new "尝试下载游戏数据时发生错误:"
# renpy/common/00updater.rpy:2083
old "This game cannot be run until the game data has been downloaded."
new "在游戏数据下载完毕之前,该游戏无法运行"
# renpy/common/00updater.rpy:2090
old "Retry"
new "重试"
+39
View File
@@ -96,3 +96,42 @@
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
new "帮助功能可能会显示未记录文档的函数。请确认您想使用的函数或类是否已经被记录文档。\n\n"
# renpy/common/_developer/developer.rpym:69
old "Show Translation Identifiers"
new "显示翻译标识符"
# renpy/common/_developer/developer.rpym:72
old "Hide Translation Identifiers"
new "隐藏翻译标识符"
# renpy/common/_developer/developer.rpym:81
old "Show Filename and Line"
new "显示文件名和行"
# renpy/common/_developer/developer.rpym:84
old "Hide Filename and Line"
new "隐藏文件名和行"
# renpy/common/_developer/developer.rpym:127
old "Layer [l]:"
new "层 [l] "
# renpy/common/_developer/developer.rpym:131
old " [name] [attributes] (hidden)"
new " [name] [attributes] (隐藏)"
# renpy/common/_developer/developer.rpym:135
old " [name] [attributes]"
new " [name] [attributes]"
# renpy/common/_developer/developer.rpym:606
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff} 已复制到剪贴板。 {/color}"
# renpy/common/_developer/developer.rpym:612
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
new "\n{color=#fff} 单击以复制。 \n 拖动以移动。 {/color}"
# renpy/common/_developer/developer.rpym:657
old "Click to open in editor."
new "单击以在编辑器中打开。"
+3
View File
@@ -436,3 +436,6 @@
old "## Enable checks for invalid or unstable properties in screens or transforms"
new "## 启用对屏幕或变换中无效或不稳定属性的检查"
# gui/game/gui.rpy:347
old "## Additional space to add between history screen entries."
new "## 在历史记录屏幕条目之间添加额外的空间。"
+158 -2
View File
@@ -1425,8 +1425,8 @@
new "自定义主题"
# game/preferences.rpy:256
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "有关创建自定义主题的信息可以{a=https://www.renpy.cn/doc/skins.html}在 Ren'Py 文档中找到{/a}。"
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "有关创建自定义主题的信息可以{a=[skins_url]}在 Ren'Py 文档中找到{/a}。"
# game/preferences.rpy:273
old "Install Libraries:"
@@ -1853,3 +1853,159 @@
# game/updater.rpy:79
old "A nightly build of fixes to the release version of Ren'Py."
new "对 Ren'Py 发布版进行修正的每夜构建。"
# game/android.rpy:455
old "Logcat"
new "Logcat"
# game/androidstrings.rpy:37
old "Google Play."
new "Google Play"
# game/androidstrings.rpy:46
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please install JDK [JDK_REQUIREMENT], and add it to your PATH.\n\nWithout a working JDK, I can't continue."
new "我无法使用 javac 编译测试文件。如果您尚未安装 Java 开发工具包,请从以下位置下载:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\n\nJDK 与 JRE 不同,因此您可能有 Java,但没有 JDK。请安装 JDK [JDK_REQUIREMENT] ,并将其添加到您的 PATH 中。\n\n没有可用的 JDK 的话,我无法继续"
# game/androidstrings.rpy:47
old "The version of Java on your computer does not appear to be JDK [JDK_REQUIREMENT], which is required to build Android apps. If you need to install a newer JDK, you can download it from:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, and add it to your PATH.\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "您计算机上的 Java 版本似乎不是构建 Android 应用程序所需的 JDK [JDK_REQUIREMENT] ,如果您需要安装较新的 JDK,可以从以下位置下载:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a},并将其添加到您的 PATH。\n\n您还可以设置 JAVA_HOME 环境变量以使用不同版本的 Java。"
# game/choose_directory.rpy:72
old "No directory was selected, but one is required."
new "未选择目录,但至少需要一个。"
# game/choose_directory.rpy:80
old "The selected directory does not exist."
new "所选目录不存在"
# game/choose_directory.rpy:82
old "The selected directory is not writable."
new "所选目录不可写"
# game/choose_theme.rpy:371
old "Planetarium"
new "Planetarium"
# game/distribute.rpy:543
old "Building distributions failed:\n\nThe project is the Ren'Py Tutorial, which can't be distributed outside of Ren'Py. Consider using The Question as a test project."
new "构建发行版失败:\n\n该项目是 Ren'Py 教程,无法在 Ren'Py 之外分发。请考虑使用 The Question 作为测试项目。"
# game/distribute.rpy:570
old "This may be derived from build.name and config.version or build.version."
new "这可能源自 build.name 和 config.version 或 build.version。"
# game/distribute.rpy:1606
old "Finishing the [variant] [format] package."
new "正在完成 [variant] [format] 包。"
# game/editor.rpy:185
old "Atom is deprecated and its bugs are known for corrupting games, using another editor is recommended."
new "Atom 已被弃用,其错误会破坏游戏,建议使用其他编辑器。"
# game/editor.rpy:214
old "JEdit is deprecated, using another editor is recommended."
new "JEdit 已弃用,建议使用其他编辑器。"
# game/editor.rpy:607
old "The Atom text editor is no longer supported by its developers. We suggest switching to Visual Studio Code or another editor."
new "Atom 文本编辑器不再受其开发人员支持。我们建议切换到 Visual Studio Code 或其他编辑器。"
# game/editor.rpy:607
old "Select editor now."
new "现在选择编辑器"
# game/editor.rpy:607
old "Ignore until next launch."
new "忽略直到下次启动"
# game/editor.rpy:607
old "Do not ask again."
new "别再问了"
# game/front_page.rpy:133
old "The Question"
new "The Question"
# game/navigation.rpy:230
old "Show translation files"
new "显示翻译文件"
# game/new_project.rpy:38
old "Warning : you are using Ren'Py 7. It is recommended to start new projects using Ren'Py 8 instead."
new "警告:您正在使用 Ren'Py 7。建议使用 Ren'Py 8 开始新项目。"
# game/new_project.rpy:49
old "Please select a template project to use."
new "请选择要使用的模板项目"
# game/new_project.rpy:49
old "Do not use a template project."
new "不要使用模板项目"
# game/preferences.rpy:95
old "Lint"
new "Lint"
# game/preferences.rpy:234
old "Game Options:"
new "游戏选项:"
# game/preferences.rpy:241
old "Skip splashscreen"
new "跳过启动画面"
# game/preferences.rpy:258
old "Prefer the web documentation"
new "偏好网络文档"
# game/preferences.rpy:262
old "Restore window position"
new "恢复窗口位置"
# game/preferences.rpy:266
old "Prefer RPU updates"
new "偏好 RPU 更新"
# game/preferences.rpy:338
old "Open projects.txt"
new "打开 projects.txt"
# game/preferences.rpy:364
old "Lint toggles:"
new "Lint 功能开关:"
# game/preferences.rpy:368
old "Check for orphan/obsolete translations"
new "检查孤立/过时的翻译"
# game/preferences.rpy:371
old "Check parameters shadowing reserved names"
new "检查参数隐藏保留名称"
# game/preferences.rpy:374
old "Print block, word, and character counts by speaking character."
new "通过对话字符来打印块、单词和字符计数。"
# game/preferences.rpy:377
old "Unclosed text tags"
new "未封闭的文本标签"
# game/preferences.rpy:380
old "Show all unreachable blocks and orphaned translations."
new "显示所有无法访问的块和孤立的翻译"
# game/project.rpy:776
old "Splashscreen skipped in launcher preferences."
new "在启动器首选项中跳过启动画面。"
# game/updater.rpy:76
old "Nightly Fix"
new "每夜修复版"
# game/updater.rpy:77
old "Nightly Fix (Ren'Py 8, Python 3)"
new "每夜修复版(Ren'Py 8Python 3"
# game/updater.rpy:78
old "Nightly Fix (Ren'Py 7, Python 2)"
new "每夜修复版(Ren'Py 7Python 2"
+7 -4
View File
@@ -517,8 +517,8 @@
new "右键点击"
# gui/game/screens.rpy:1054
old "Mouse Wheel Up\nClick Rollback Side"
new "鼠标滚轮上\n点击回退操作区"
old "Mouse Wheel Up"
new "鼠标滚轮上"
# gui/game/screens.rpy:1058
old "Mouse Wheel Down"
@@ -674,5 +674,8 @@
# gui/game/screens.rpy:1417
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
new "## https://doc.renpy.cn/zh-CN/bubble.html#bubble-screen"
# gui/game/screens.rpy:1098
old "Start, Guide, B/Right Button"
new "开始,向导,B/右键"
+59
View File
@@ -894,3 +894,62 @@ translate spanish strings:
old "(clear retained bubbles)"
new "(borrar burbujas retenidas)"
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "Modifica director.transforms para añadir más transformaciones."
# renpy/common/00director.rpy:1821
old "Click to set."
new "Haz clic para ajustar."
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "Modifica director.transitions para añadir más transiciones."
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "Modifica director.audio_channels para añadir más canales."
# renpy/common/00preferences.rpy:587
old "restore window position"
new "restaurar la posición de la ventana"
# renpy/common/00preferences.rpy:596
old "reset"
new "restablecer"
# renpy/common/00updater.rpy:504
old "No update methods found."
new "Métodos de actualización no encontrados."
# renpy/common/00updater.rpy:551
old "Could not download file list: "
new "No se pudo descargar la lista de archivos: "
# renpy/common/00updater.rpy:554
old "File list digest does not match."
new "El compendio de la lista de archivos no coincide."
# renpy/common/00updater.rpy:2072
old "Preparing to download the game data."
new "Preparando la descarga de los datos del juego."
# renpy/common/00updater.rpy:2074
old "Downloading the game data."
new ""
# renpy/common/00updater.rpy:2076
old "The game data has been downloaded."
new "Descarga de los datos del juego."
# renpy/common/00updater.rpy:2078
old "An error occured when trying to download game data:"
new "Se ha producido un error al intentar descargar los datos del juego:"
# renpy/common/00updater.rpy:2083
old "This game cannot be run until the game data has been downloaded."
new "Este juego no puede ejecutarse hasta que se hayan descargado los datos del juego."
# renpy/common/00updater.rpy:2090
old "Retry"
new "Reintentar"
+24
View File
@@ -243,3 +243,27 @@
# renpy/common/_developer/developer.rpym:588
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
new "\n{color=#fff}Haz clic para copiar.\nArrastre para mover.{/color}"
# renpy/common/_developer/developer.rpym:81
old "Show Filename and Line"
new "Mostrar nombre de archivo y línea"
# renpy/common/_developer/developer.rpym:84
old "Hide Filename and Line"
new "Ocultar nombre de archivo y línea"
# renpy/common/_developer/developer.rpym:127
old "Layer [l]:"
new "Capa [l]:"
# renpy/common/_developer/developer.rpym:131
old " [name] [attributes] (hidden)"
new " [name] [attributes] (ocultar)"
# renpy/common/_developer/developer.rpym:135
old " [name] [attributes]"
new " [name] [attributes]"
# renpy/common/_developer/developer.rpym:657
old "Click to open in editor."
new "Haz clic para abrir en el editor."
+103 -3
View File
@@ -2020,8 +2020,8 @@
new "Tema del lanzdor"
# game/preferences.rpy:254
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
new "Puedes encontrar información sobre cómo crear un tema personalizado {a=https://www.renpy.org/doc/html/skins.html}en la documentación de Ren'Py{/a}."
old "Information about creating a custom theme can be found {a=[skins_url]}in the Ren'Py Documentation{/a}."
new "Puedes encontrar información sobre cómo crear un tema personalizado {a=[skins_url]}en la documentación de Ren'Py{/a}."
# game/preferences.rpy:271
old "Install Libraries:"
@@ -2114,7 +2114,7 @@
# game/androidstrings.rpy:69
old "I found a bundle.keystore file in the rapt directory. Do you want to use this file?"
new "He encontrado un archivo bundle.keystore en el directorio rapt. ¿Quieres usar este archivo?"
# game/updater.rpy:79
old "A nightly build of fixes to the release version of Ren'Py."
new "Compilación nocturna de correcciones para la versión estable de Ren'Py."
@@ -2150,3 +2150,103 @@
# game/distribute.rpy:532
old "Building distributions failed:\n\nThe project is the Ren'Py Tutorial, which can't be distributed outside of Ren'Py. Consider using The Question as a test project."
new "La compilación de distribuciones falló:\n\nEl proyecto es el Tutorial de Ren'Py, que no puede ser distribuido fuera de Ren'Py. Considera usar The Question como proyecto de prueba."
# game/androidstrings.rpy:46
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please install JDK [JDK_REQUIREMENT], and add it to your PATH.\n\nWithout a working JDK, I can't continue."
new "No he podido utilizar javac para compilar un archivo de prueba. Si aún no has instalado el Kit de Desarrollo de Java, descárgalo de:\n\n{a=https://adoptium.net}https://adoptium.net/{/a}\nEl JDK es diferente del JRE, por lo que es posible que tengas Java sin tener el JDK. Por favor, instala el JDK [JDK_REQUIREMENT], y añádelo a su PATH.\n\nSin un JDK que funcione, no puedo continuar."
# game/androidstrings.rpy:47
old "The version of Java on your computer does not appear to be JDK [JDK_REQUIREMENT], which is required to build Android apps. If you need to install a newer JDK, you can download it from:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, and add it to your PATH.\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "La versión de Java en tu computadora no parece ser JDK [JDK_REQUIREMENT], que se requiere para construir aplicaciones de Android. Si necesita instalar un JDK más reciente, puede descargarlo de:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, y añadirlo a su PATH. También puede configurar la variable de entorno JAVA_HOME para utilizar una versión diferente de Java."
# game/distribute.rpy:1620
old "Finishing the [variant] [format] package."
new "Finalizando el paquete [variant] [format]."
# game/editor.rpy:185
old "Atom is deprecated and its bugs are known for corrupting games, using another editor is recommended."
new "Atom está obsoleto y sus bugs son conocidos por corromper juegos, se recomienda usar otro editor."
# game/editor.rpy:214
old "JEdit is deprecated, using another editor is recommended."
new "JEdit está obsoleto, se recomienda utilizar otro editor."
# game/editor.rpy:607
old "The Atom text editor is no longer supported by its developers. We suggest switching to Visual Studio Code or another editor."
new "El editor de texto Atom ya no está soportado por sus desarrolladores. Sugerimos cambiar a Visual Studio Code u otro editor."
# game/editor.rpy:607
old "Select editor now."
new "Seleccione un editor ahora."
# game/editor.rpy:607
old "Ignore until next launch."
new "Ignorar hasta el próximo lanzamiento."
# game/editor.rpy:607
old "Do not ask again."
new "No vuelver a preguntar."
# game/new_project.rpy:38
old "Warning : you are using Ren'Py 7. It is recommended to start new projects using Ren'Py 8 instead."
new "Advertencia : estás utilizando Ren'Py 7. Se recomienda iniciar nuevos proyectos utilizando Ren'Py 8 en su lugar."
# game/new_project.rpy:49
old "Please select a template project to use."
new "Selecciona una plantilla para el proyecto."
# game/new_project.rpy:49
old "Do not use a template project."
new "No utilizar una plantilla para el proyecto."
# game/preferences.rpy:94
old "Lint"
new "Lint"
# game/preferences.rpy:233
old "Game Options:"
new "Opciones del juego:"
# game/preferences.rpy:240
old "Skip splashscreen"
new "Saltar pantalla splashscreen"
# game/preferences.rpy:258
old "Restore window position"
new "Restablecer la posición de la ventana"
# game/preferences.rpy:262
old "Prefer RPU updates"
new "Prefiera las actualizaciones de RPU"
# game/preferences.rpy:332
old "Open projects.txt"
new "Abrir projects.txt"
# game/preferences.rpy:356
old "Lint toggles:"
new "Ajuestes de Lint:"
# game/preferences.rpy:360
old "Check for orphan/obsolete translations"
new "Buscar traducciones huérfanas/obsoletas"
# game/preferences.rpy:363
old "Check parameters shadowing reserved names"
new "Comprobar los parámetros que ocultan a los nombres reservados"
# game/preferences.rpy:366
old "Print block, word, and character counts by speaking character."
new "Imprime el recuento de bloques, palabras y contador de caracteres por carpersonaje."
# game/preferences.rpy:369
old "Unclosed text tags"
new "Etiquetas de texto no cerradas"
# game/preferences.rpy:372
old "Show all unreachable blocks and orphaned translations."
new "Mostrar todos los bloques inalcanzables y las traducciones huérfanas."
# game/project.rpy:776
old "Splashscreen skipped in launcher preferences."
new "Se omite la pantalla Splashscreen en las preferencias del lanzador."
+6 -2
View File
@@ -534,8 +534,8 @@ translate spanish strings:
new "Clic derecho"
# screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "Rueda del ratón arriba\nClic en lado de retroceso"
old "Mouse Wheel Up"
new "Rueda del ratón arriba"
# screens.rpy:1067
old "Mouse Wheel Down"
@@ -708,3 +708,7 @@ translate spanish strings:
# gui/game/screens.rpy:1417
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
# gui/game/screens.rpy:1098
old "Start, Guide, B/Right Button"
new "Inicio, Guía, B/Botón Derecho"
+671 -47
View File
@@ -3,155 +3,155 @@ translate tchinese strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
new "{#weekday}Monday"
new "{#weekday}星期一"
# 00action_file.rpy:26
old "{#weekday}Tuesday"
new "{#weekday}Tuesday"
new "{#weekday}星期二"
# 00action_file.rpy:26
old "{#weekday}Wednesday"
new "{#weekday}Wednesday"
new "{#weekday}星期三"
# 00action_file.rpy:26
old "{#weekday}Thursday"
new "{#weekday}Thursday"
new "{#weekday}星期四"
# 00action_file.rpy:26
old "{#weekday}Friday"
new "{#weekday}Friday"
new "{#weekday}星期五"
# 00action_file.rpy:26
old "{#weekday}Saturday"
new "{#weekday}Saturday"
new "{#weekday}星期六"
# 00action_file.rpy:26
old "{#weekday}Sunday"
new "{#weekday}Sunday"
new "{#weekday}星期日"
# 00action_file.rpy:37
old "{#weekday_short}Mon"
new "{#weekday_short}Mon"
new "{#weekday_short}周一"
# 00action_file.rpy:37
old "{#weekday_short}Tue"
new "{#weekday_short}Tue"
new "{#weekday_short}周二"
# 00action_file.rpy:37
old "{#weekday_short}Wed"
new "{#weekday_short}Wed"
new "{#weekday_short}周三"
# 00action_file.rpy:37
old "{#weekday_short}Thu"
new "{#weekday_short}Thu"
new "{#weekday_short}周四"
# 00action_file.rpy:37
old "{#weekday_short}Fri"
new "{#weekday_short}Fri"
new "{#weekday_short}周五"
# 00action_file.rpy:37
old "{#weekday_short}Sat"
new "{#weekday_short}Sat"
new "{#weekday_short}周六"
# 00action_file.rpy:37
old "{#weekday_short}Sun"
new "{#weekday_short}Sun"
new "{#weekday_short}周日"
# 00action_file.rpy:47
old "{#month}January"
new "{#month}January"
new "{#month}一月"
# 00action_file.rpy:47
old "{#month}February"
new "{#month}February"
new "{#month}二月"
# 00action_file.rpy:47
old "{#month}March"
new "{#month}March"
new "{#month}三月"
# 00action_file.rpy:47
old "{#month}April"
new "{#month}April"
new "{#month}四月"
# 00action_file.rpy:47
old "{#month}May"
new "{#month}May"
new "{#month}五月"
# 00action_file.rpy:47
old "{#month}June"
new "{#month}June"
new "{#month}六月"
# 00action_file.rpy:47
old "{#month}July"
new "{#month}July"
new "{#month}七月"
# 00action_file.rpy:47
old "{#month}August"
new "{#month}August"
new "{#month}八月"
# 00action_file.rpy:47
old "{#month}September"
new "{#month}September"
new "{#month}九月"
# 00action_file.rpy:47
old "{#month}October"
new "{#month}October"
new "{#month}十月"
# 00action_file.rpy:47
old "{#month}November"
new "{#month}November"
new "{#month}十一月"
# 00action_file.rpy:47
old "{#month}December"
new "{#month}December"
new "{#month}十二月"
# 00action_file.rpy:63
old "{#month_short}Jan"
new "{#month_short}Jan"
new "{#month_short}1月"
# 00action_file.rpy:63
old "{#month_short}Feb"
new "{#month_short}Feb"
new "{#month_short}2月"
# 00action_file.rpy:63
old "{#month_short}Mar"
new "{#month_short}Mar"
new "{#month_short}3月"
# 00action_file.rpy:63
old "{#month_short}Apr"
new "{#month_short}Apr"
new "{#month_short}4月"
# 00action_file.rpy:63
old "{#month_short}May"
new "{#month_short}May"
new "{#month_short}5月"
# 00action_file.rpy:63
old "{#month_short}Jun"
new "{#month_short}Jun"
new "{#month_short}6月"
# 00action_file.rpy:63
old "{#month_short}Jul"
new "{#month_short}Jul"
new "{#month_short}7月"
# 00action_file.rpy:63
old "{#month_short}Aug"
new "{#month_short}Aug"
new "{#month_short}8月"
# 00action_file.rpy:63
old "{#month_short}Sep"
new "{#month_short}Sep"
new "{#month_short}9月"
# 00action_file.rpy:63
old "{#month_short}Oct"
new "{#month_short}Oct"
new "{#month_short}10月"
# 00action_file.rpy:63
old "{#month_short}Nov"
new "{#month_short}Nov"
new "{#month_short}11月"
# 00action_file.rpy:63
old "{#month_short}Dec"
new "{#month_short}Dec"
new "{#month_short}12月"
# 00action_file.rpy:235
old "%b %d, %H:%M"
@@ -187,7 +187,7 @@ translate tchinese strings:
# 00gui.rpy:233
old "Are you sure you want to end the replay?"
new "Are you sure you want to end the replay?"
new "你確認你想要結束回想嗎?"
# 00gui.rpy:234
old "Are you sure you want to begin skipping?"
@@ -199,7 +199,7 @@ translate tchinese strings:
# 00gui.rpy:236
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "Are you sure you want to skip unseen dialogue to the next choice?"
new "你確認你想要跳過沒看過的對話直接跳到下一個選項嗎?"
# 00keymap.rpy:250
old "Saved screenshot as %s."
@@ -207,15 +207,15 @@ translate tchinese strings:
# 00library.rpy:142
old "Self-voicing disabled."
new "Self-voicing disabled."
new "Self-voicing 已禁用。"
# 00library.rpy:143
old "Clipboard voicing enabled. "
new "Clipboard voicing enabled. "
new "Clipboard voicing 已啓用。 "
# 00library.rpy:144
old "Self-voicing enabled. "
new "Self-voicing enabled. "
new "Self-voicing 已啓用。 "
# 00library.rpy:179
old "Skip Mode"
@@ -223,7 +223,7 @@ translate tchinese strings:
# 00library.rpy:262
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 "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:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
@@ -231,11 +231,11 @@ translate tchinese strings:
# 00preferences.rpy:424
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "Self-voicing 會開始朗讀 \"[renpy.display.tts.last]\"。 按 'alt+shift+V' 來禁用。"
# 00preferences.rpy:426
old "Self-voicing enabled. Press 'v' to disable."
new "Self-voicing 已啟用。按 'v' 禁用"
new "Self-voicing 已啟用。按 'v' 禁用"
# _compat/gamemenu.rpym:198
old "Empty Slot."
@@ -263,7 +263,7 @@ translate tchinese strings:
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
new "Contacting App Store\nPlease Wait..."
new "聯絡應用程式商店中\n請稍等。。。。。。"
# 00updater.rpy:367
old "The Ren'Py Updater is not supported on mobile devices."
@@ -356,3 +356,627 @@ translate tchinese strings:
# 00gallery.rpy:586
old "return"
new "返回"
# renpy/common/00accessibility.rpy:32
old "bar"
new "條"
# renpy/common/00accessibility.rpy:33
old "selected"
new "選定"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "視角"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
new "水平滾動"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
new "垂直滾動"
# renpy/common/00accessibility.rpy:37
old "activate"
new "啟動"
# renpy/common/00accessibility.rpy:38
old "deactivate"
new "停用"
# renpy/common/00accessibility.rpy:39
old "increase"
new "增加"
# renpy/common/00accessibility.rpy:40
old "decrease"
new "減少"
# renpy/common/00accessibility.rpy:120
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
new "輔助功能選單。使用向上和向下箭頭進行導航,並使用 Enter 啟動按鈕和欄位。"
# renpy/common/00accessibility.rpy:139
old "Font Override"
new "字形覆蓋"
# renpy/common/00accessibility.rpy:143
old "Default"
new "預設"
# renpy/common/00accessibility.rpy:147
old "DejaVu Sans"
new "DejaVu Sans"
# renpy/common/00accessibility.rpy:151
old "Opendyslexic"
new "Opendyslexic"
# renpy/common/00accessibility.rpy:157
old "Text Size Scaling"
new "文字大小縮放"
# renpy/common/00accessibility.rpy:163
old "Reset"
new "重置"
# renpy/common/00accessibility.rpy:169
old "Line Spacing Scaling"
new "行距縮放"
# renpy/common/00accessibility.rpy:181
old "High Contrast Text"
new "高對比度文字"
# renpy/common/00accessibility.rpy:194
old "Self-Voicing"
new "Self-voicing "
# renpy/common/00accessibility.rpy:198
old "Off"
new "關閉"
# renpy/common/00accessibility.rpy:202
old "Text-to-speech"
new "文本轉語音"
# renpy/common/00accessibility.rpy:206
old "Clipboard"
new "剪貼簿"
# renpy/common/00accessibility.rpy:210
old "Debug"
new "調試"
# renpy/common/00accessibility.rpy:224
old "Self-Voicing Volume Drop"
new "Self-voicing 音量下降"
# renpy/common/00accessibility.rpy:235
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "此選單上的選項旨在提高可訪問性。它們可能不適用於所有遊戲,並且某些選項組合可能導致遊戲無法玩。這不是遊戲或引擎的問題。為了在更改字形時獲得最佳效果,盡量保持文字大小與原來一樣。"
# renpy/common/00action_file.rpy:395
old "Save slot %s: [text]"
new "儲存槽 %s: [text]"
# renpy/common/00action_file.rpy:480
old "Load slot %s: [text]"
new "載入槽 %s: [text]"
# renpy/common/00action_file.rpy:533
old "Delete slot [text]"
new "刪除槽 [text]"
# renpy/common/00action_file.rpy:612
old "File page auto"
new "存檔頁面 自動"
# renpy/common/00action_file.rpy:614
old "File page quick"
new "存檔頁面 快速"
# renpy/common/00action_file.rpy:616
old "File page [text]"
new "存檔頁面 [text]"
# renpy/common/00action_file.rpy:815
old "Next file page."
new "下一個存檔頁面"
# renpy/common/00action_file.rpy:887
old "Previous file page."
new "上一個存檔頁面"
# renpy/common/00action_file.rpy:963
old "Quick save."
new "快速存檔"
# renpy/common/00action_file.rpy:982
old "Quick load."
new "快速加載"
# renpy/common/00action_other.rpy:383
old "Language [text]"
new "語言 [text]"
# renpy/common/00director.rpy:712
old "The interactive director is not enabled here."
new "此處未啟用互動式導演。"
# renpy/common/00director.rpy:1511
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1517
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1581
old "Done"
new "完成"
# renpy/common/00director.rpy:1591
old "(statement)"
new "(statement)"
# renpy/common/00director.rpy:1592
old "(tag)"
new "(tag)"
# renpy/common/00director.rpy:1593
old "(attributes)"
new "(attributes)"
# renpy/common/00director.rpy:1594
old "(transform)"
new "(transform)"
# renpy/common/00director.rpy:1619
old "(transition)"
new "(transition)"
# renpy/common/00director.rpy:1631
old "(channel)"
new "(channel)"
# renpy/common/00director.rpy:1632
old "(filename)"
new "(filename)"
# renpy/common/00director.rpy:1661
old "Change"
new "更改"
# renpy/common/00director.rpy:1663
old "Add"
new "新增"
# renpy/common/00director.rpy:1669
old "Remove"
new "刪除"
# renpy/common/00director.rpy:1704
old "Statement:"
new "通告:"
# renpy/common/00director.rpy:1725
old "Tag:"
new "標籤:"
# renpy/common/00director.rpy:1741
old "Attributes:"
new "屬性:"
# renpy/common/00director.rpy:1752
old "Click to toggle attribute, right click to toggle negative attribute."
new "點選切換屬性,右鍵切換負屬性。"
# renpy/common/00director.rpy:1764
old "Transforms:"
new "變換:"
# renpy/common/00director.rpy:1775
old "Click to set transform, right click to add to transform list."
new "點擊設定變換,右鍵加入到變換列表"
# renpy/common/00director.rpy:1776
old "Customize director.transforms to add more transforms."
new "自訂 director.transforms 以新增更多變換。"
# renpy/common/00director.rpy:1788
old "Behind:"
new "後部:"
# renpy/common/00director.rpy:1799
old "Click to set, right click to add to behind list."
new "點擊設置,右鍵新增到後部列表。"
# renpy/common/00director.rpy:1811
old "Transition:"
new "過渡:"
# renpy/common/00director.rpy:1821
old "Click to set."
new "點擊設定。"
# renpy/common/00director.rpy:1822
old "Customize director.transitions to add more transitions."
new "自訂 director.transitions 以增加更多過渡。"
# renpy/common/00director.rpy:1834
old "Channel:"
new "音訊通道:"
# renpy/common/00director.rpy:1845
old "Customize director.audio_channels to add more channels."
new "自訂 director.audio_channels 以新增更多頻道。"
# renpy/common/00director.rpy:1857
old "Audio Filename:"
new "音訊檔案名稱:"
# renpy/common/00gui.rpy:454
old "Are you sure you want to continue where you left off?"
new "您確定要從上次中斷的地方繼續嗎?"
# renpy/common/00gui.rpy:459
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
new "此儲存是在不同裝置上建立的。惡意建構的儲存檔案可能會損害您的電腦。您信任此儲存的建立者以及可能變更該檔案的每個人嗎?"
# renpy/common/00gui.rpy:460
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
new "您信任創建保存的設備嗎?只有當您是該設備的唯一用戶時,才應選擇“是”。"
# renpy/common/00keymap.rpy:323
old "Failed to save screenshot as %s."
new "無法將螢幕截圖儲存為 %s 。"
# renpy/common/00speechbubble.rpy:392
old "Speech Bubble Editor"
new "語音氣泡編輯器"
# renpy/common/00speechbubble.rpy:397
old "(hide)"
new "(隱藏)"
# renpy/common/00speechbubble.rpy:408
old "(clear retained bubbles)"
new "(清除保留的氣泡)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
new "已下載同步。"
# renpy/common/00sync.rpy:190
old "Could not connect to the Ren'Py Sync server."
new "無法連線到 Ren'Py 同步伺服器。"
# renpy/common/00sync.rpy:192
old "The Ren'Py Sync server timed out."
new "Ren'Py 同步伺服器逾時。"
# renpy/common/00sync.rpy:194
old "An unknown error occurred while connecting to the Ren'Py Sync server."
new "連線到 Ren'Py 同步伺服器時發生未知錯誤。"
# renpy/common/00sync.rpy:267
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
new "Ren'Py 同步伺服器沒有此同步的副本。同步 ID 可能無效,或可能已逾時。"
# renpy/common/00sync.rpy:412
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
new "請輸入您產生的同步 ID。 \n 切勿輸入不是您自己建立的同步 ID。"
# renpy/common/00sync.rpy:431
old "The sync ID is not in the correct format."
new "同步 ID 的格式不正確。"
# renpy/common/00sync.rpy:451
old "The sync could not be decrypted."
new "同步無法解密。"
# renpy/common/00sync.rpy:474
old "The sync belongs to a different game."
new "同步屬於不同的遊戲。"
# renpy/common/00sync.rpy:479
old "The sync contains a file with an invalid name."
new "同步包含名稱無效的檔案。"
# renpy/common/00sync.rpy:538
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
new "這會將您的儲存上傳到 {a=https://sync.renpy.org} Ren'Py 同步服務器 {/a} 。 \n 你想要繼續嗎?"
# renpy/common/00sync.rpy:569
old "Enter Sync ID"
new "輸入同步 ID"
# renpy/common/00sync.rpy:580
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
new "這將聯繫 {a=https://sync.renpy.org} Ren'Py 同步服務器 {/a} 。"
# renpy/common/00sync.rpy:609
old "Sync Success"
new "同步成功"
# renpy/common/00sync.rpy:612
old "The Sync ID is:"
new "同步 ID 為:"
# renpy/common/00sync.rpy:618
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
new "您可以使用此ID 在另一台裝置上下載您的保存內容。 \n 此同步將在一小時後過期。 \n Ren'Py 同步 由{a=https://www.renpy.org/sponsors.html} Ren'Py 的贊助商 {/a} 支持。"
# renpy/common/00sync.rpy:646
old "Sync Error"
new "同步錯誤"
# renpy/common/00updater.rpy:505
old "No update methods found."
new "未找到更新方法。"
# renpy/common/00updater.rpy:552
old "Could not download file list: "
new "無法下載的檔案清單:"
# renpy/common/00updater.rpy:555
old "File list digest does not match."
new "檔案清單摘要不符。"
# renpy/common/00updater.rpy:2072
old "Preparing to download the game data."
new "準備下載遊戲資料。"
# renpy/common/00updater.rpy:2074
old "Downloading the game data."
new "下載遊戲資料中。"
# renpy/common/00updater.rpy:2076
old "The game data has been downloaded."
new "遊戲資料已下載。"
# renpy/common/00updater.rpy:2078
old "An error occured when trying to download game data:"
new "嘗試下載遊戲資料時發生錯誤:"
# renpy/common/00updater.rpy:2083
old "This game cannot be run until the game data has been downloaded."
new "在遊戲資料下載完畢之前,該遊戲還無法運行。"
# renpy/common/00updater.rpy:2090
old "Retry"
new "重試"
# renpy/common/00preferences.rpy:288
old "display"
new "顯示"
# renpy/common/00preferences.rpy:308
old "transitions"
new "過渡"
# renpy/common/00preferences.rpy:317
old "skip transitions"
new "跳過過渡"
# renpy/common/00preferences.rpy:319
old "video sprites"
new "視訊精靈"
# renpy/common/00preferences.rpy:328
old "show empty window"
new "顯示空視窗"
# renpy/common/00preferences.rpy:337
old "text speed"
new "文本速度"
# renpy/common/00preferences.rpy:345
old "joystick"
new "游戲桿"
# renpy/common/00preferences.rpy:345
old "joystick..."
new "游戲桿..."
# renpy/common/00preferences.rpy:352
old "skip"
new "跳過"
# renpy/common/00preferences.rpy:355
old "skip unseen [text]"
new "跳過未見過的 [text]"
# renpy/common/00preferences.rpy:360
old "skip unseen text"
new "跳過未見過的文本"
# renpy/common/00preferences.rpy:362
old "begin skipping"
new "開始快進"
# renpy/common/00preferences.rpy:366
old "after choices"
new "選項后"
# renpy/common/00preferences.rpy:373
old "skip after choices"
new "選項后快進"
# renpy/common/00preferences.rpy:375
old "auto-forward time"
new "自動推進時間"
# renpy/common/00preferences.rpy:389
old "auto-forward"
new "自動推進"
# renpy/common/00preferences.rpy:396
old "Auto forward"
new "自動推進"
# renpy/common/00preferences.rpy:399
old "auto-forward after click"
new "點擊後自動推進"
# renpy/common/00preferences.rpy:408
old "automatic move"
new "自動移動"
# renpy/common/00preferences.rpy:417
old "wait for voice"
new "等待語音"
# renpy/common/00preferences.rpy:426
old "voice sustain"
new "保持語音"
# renpy/common/00preferences.rpy:435
old "self voicing"
new "self voicing"
# renpy/common/00preferences.rpy:438
old "self voicing enable"
new "self voicing 已啓用"
# renpy/common/00preferences.rpy:440
old "self voicing disable"
new "self voicing 已禁用"
# renpy/common/00preferences.rpy:444
old "self voicing volume drop"
new "self voicing 音量減小"
# renpy/common/00preferences.rpy:452
old "clipboard voicing"
new "clipboard voicing"
# renpy/common/00preferences.rpy:455
old "clipboard voicing enable"
new "clipboard voicing 已啓用"
# renpy/common/00preferences.rpy:457
old "clipboard voicing disable"
new "clipboard voicing 已禁用"
# renpy/common/00preferences.rpy:461
old "debug voicing"
new "debug voicing"
# renpy/common/00preferences.rpy:464
old "debug voicing enable"
new "debug voicing 已啓用"
# renpy/common/00preferences.rpy:466
old "debug voicing disable"
new "debug voicing 已禁用"
# renpy/common/00preferences.rpy:470
old "emphasize audio"
new "强調音頻"
# renpy/common/00preferences.rpy:479
old "rollback side"
new "回滾側端"
# renpy/common/00preferences.rpy:489
old "gl powersave"
new "gl 節電"
# renpy/common/00preferences.rpy:495
old "gl framerate"
new "gl 幀率"
# renpy/common/00preferences.rpy:498
old "gl tearing"
new "gl 撕裂"
# renpy/common/00preferences.rpy:501
old "font transform"
new "字形變換"
# renpy/common/00preferences.rpy:504
old "font size"
new "字形大小"
# renpy/common/00preferences.rpy:512
old "font line spacing"
new "字形間隔"
# renpy/common/00preferences.rpy:520
old "system cursor"
new "系統遊標"
# renpy/common/00preferences.rpy:529
old "renderer menu"
new "渲染器選單"
# renpy/common/00preferences.rpy:532
old "accessibility menu"
new "輔助使用選單"
# renpy/common/00preferences.rpy:535
old "high contrast text"
new "高對比文本"
# renpy/common/00preferences.rpy:544
old "audio when minimized"
new "最小化時的音頻"
# renpy/common/00preferences.rpy:553
old "audio when unfocused"
new "未聚焦時的音頻"
# renpy/common/00preferences.rpy:562
old "web cache preload"
new "網路快取預先載入"
# renpy/common/00preferences.rpy:577
old "voice after game menu"
new "遊戲選單後語音"
# renpy/common/00preferences.rpy:586
old "restore window position"
new "恢復視窗位置"
# renpy/common/00preferences.rpy:595
old "reset"
new "重置"
# renpy/common/00preferences.rpy:608
old "main volume"
new "主要音量"
# renpy/common/00preferences.rpy:609
old "music volume"
new "音樂音量"
# renpy/common/00preferences.rpy:610
old "sound volume"
new "聲音音量"
# renpy/common/00preferences.rpy:611
old "voice volume"
new "語音音量"
# renpy/common/00preferences.rpy:612
old "mute main"
new "靜音主要"
# renpy/common/00preferences.rpy:613
old "mute music"
new "靜音音樂"
# renpy/common/00preferences.rpy:614
old "mute sound"
new "靜音聲音"
# renpy/common/00preferences.rpy:615
old "mute voice"
new "靜音語音"
# renpy/common/00preferences.rpy:616
old "mute all"
new "靜音全部"
+119 -2
View File
@@ -75,7 +75,7 @@ translate tchinese strings:
# _developer/developer.rpym:532
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}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ 已預加載影像(良好) {/color}\n{color=#fcc}✘ 未預加載影像(糟糕) {/color}\n{color=#fff}通過拖拽來移動位置。{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
@@ -111,7 +111,7 @@ translate tchinese strings:
# _developer/inspector.rpym:185
old "<repr() failed>"
new "<repr() 失敗>"
new "<repr() failed>"
# 00console.rpy:182
old "Press <esc> to exit console. Type help for help.\n"
@@ -176,3 +176,120 @@ translate tchinese strings:
# 00console.rpy:536
old "jump <label>: jumps to label"
new "jump <標籤>: 跳移至標籤"
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
new "互動總監(D"
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
new "持續觀察者"
# renpy/common/_developer/developer.rpym:59
old "Show Image Load Log (F4)"
new "顯示圖像加載日誌(F4"
# renpy/common/_developer/developer.rpym:62
old "Hide Image Load Log (F4)"
new "隱藏圖像加載日誌(F4"
# renpy/common/_developer/developer.rpym:65
old "Image Attributes"
new "圖像屬性"
# renpy/common/_developer/developer.rpym:69
old "Show Translation Identifiers"
new "顯示翻譯標識符"
# renpy/common/_developer/developer.rpym:72
old "Hide Translation Identifiers"
new "隱藏翻譯標識符"
# renpy/common/_developer/developer.rpym:77
old "Speech Bubble Editor (Shift+B)"
new "語音氣泡編輯器(Shift+B"
# renpy/common/_developer/developer.rpym:81
old "Show Filename and Line"
new "顯示檔案名稱和行"
# renpy/common/_developer/developer.rpym:84
old "Hide Filename and Line"
new "隱藏檔案名稱和行"
# renpy/common/_developer/developer.rpym:127
old "Layer [l]:"
new "層 [l]"
# renpy/common/_developer/developer.rpym:131
old " [name] [attributes] (hidden)"
new " [name] [attributes] (隱藏)"
# renpy/common/_developer/developer.rpym:135
old " [name] [attributes]"
new " [name] [attributes]"
# renpy/common/_developer/developer.rpym:198
old "Hide deleted"
new "隱藏已刪除"
# renpy/common/_developer/developer.rpym:198
old "Show deleted"
new "顯示已刪除"
# renpy/common/_developer/developer.rpym:420
old "Type to filter: "
new "要過濾的類型:"
# renpy/common/_developer/developer.rpym:538
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "紋理: [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:542
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "映像快取: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:606
old "\n{color=#fff}Copied to clipboard.{/color}"
new "\n{color=#fff} 已複製到剪貼簿。 {/color}"
# renpy/common/_developer/developer.rpym:612
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
new "\n{color=#fff} 點擊複製。 \n 拖曳移動。 {/color}"
# renpy/common/_developer/developer.rpym:657
old "Click to open in editor."
new "單擊以在編輯器中打開"
# renpy/common/00console.rpy:793
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
new "幫助:顯示此幫助 \n <expr> 幫助:顯示 <expr> 的簽名和文件"
# renpy/common/00console.rpy:817
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
new "幫助可能會顯示未記錄的函數。請檢查您要使用的函數或 \n 類別是否已記錄。 \n\n"
# renpy/common/00console.rpy:858
old "stack: print the return stack"
new "堆疊:列印返回堆疊"
# renpy/common/00console.rpy:912
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 "監視 <expression> :監視 python 表達式 \n 短監視:使追蹤表達式的表示較短(預設)\n 長監視:使追蹤表達式的表示按原樣"
# renpy/common/00console.rpy:1032
old "short: Shorten the representation of objects on the console (default)."
new "短 :縮短控制台上物件的表示(預設)。"
# renpy/common/00console.rpy:1036
old "long: Print the full representation of objects on the console."
new "長 :在控制台上列印物件的完整表示。"
# renpy/common/00console.rpy:1040
old "escape: Enables escaping of unicode symbols in unicode strings."
new "轉義:啟用 unicode 字串中的 unicode 符號轉義。"
# renpy/common/00console.rpy:1044
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "不轉義:禁用 unicode 字串中 unicode 符號的轉義並按原樣列印(預設)。"
+118 -10
View File
@@ -23,7 +23,7 @@ translate tchinese strings:
# 00gltest.rpy:93
old "Enable"
new "Enable"
new "啓用"
# 00gltest.rpy:109
old "Changes will take effect the next time this program is run."
@@ -91,27 +91,27 @@ translate tchinese strings:
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "Select Gamepad to Calibrate"
new "選擇要校準的遊戲手柄"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "No Gamepads Available"
new "沒有可用的游戲手柄"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "Calibrating [name] ([i]/[total])"
new "矯正 [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!s] [kind]."
new "Press or move the [control!s] [kind]."
new "按下或者移動 [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
new "Skip (A)"
new "跳過 (A)"
# 00gamepad.rpy:69
old "Back (B)"
new "Back (B)"
new "返回 (B)"
# _errorhandling.rpym:495
old "Open Traceback"
@@ -123,11 +123,11 @@ translate tchinese strings:
# _errorhandling.rpym:499
old "Copy to Clipboard"
new "Copy to Clipboard"
new "複製到剪貼簿"
# _errorhandling.rpym:501
old "Copies the traceback.txt file to the clipboard."
new "Copies the traceback.txt file to the clipboard."
new "已經將 traceback.txt 檔案複製到剪貼簿。"
# _errorhandling.rpym:519
old "An exception has occurred."
@@ -175,4 +175,112 @@ translate tchinese strings:
# _errorhandling.rpym:612
old "Copies the errors.txt file to the clipboard."
new "Copies the errors.txt file to the clipboard."
new "已經將 errors.txt 檔案複製到剪貼簿。"
# renpy/common/00gltest.rpy:89
old "Renderer"
new "渲染器"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "强制 GL 渲染器"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "強制 ANGLE 渲染器"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "強制 GLES 渲染器"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "强制 GL2 渲染器"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "強制 ANGLE2 渲染器"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "強制 GLES2 渲染器"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "啟用(無封鎖清單)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "省電"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "幀率"
# renpy/common/00gltest.rpy:177
old "Screen"
new "畫面"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
new "這個遊戲需要使用無法初始化的GL2。"
# 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} 檔案可能包含可幫助您確定電腦出現問題的資訊。"
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "有關如何解決此問題的更多詳細信息,請參閱 {a=[url]} 文檔 {/a} 。"
# renpy/common/00gltest.rpy:281
old "Change render options"
new "更改渲染選項"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "按下或移動 '[control!s]' [kind] 。"
# renpy/common/_errorhandling.rpym:662
old "Open"
new "打開"
# renpy/common/_errorhandling.rpym:666
old "Copy BBCode"
new "複製 BBCode"
# renpy/common/_errorhandling.rpym:668
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "已將 traceback.txt 檔案作為 BBcode 複製到剪貼簿,用於 https://lemmasoft.renai.us/ 等論壇。"
# renpy/common/_errorhandling.rpym:670
old "Copy Markdown"
new "複製 Markdown"
# renpy/common/_errorhandling.rpym:672
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "已將 traceback.txt 檔案作為適用於 Discord 的 Markdown 複製到剪貼簿。"
# renpy/common/_errorhandling.rpym:735
old "Ignores the exception, allowing you to continue."
new "忽略異常,允許您繼續。"
# renpy/common/_errorhandling.rpym:746
old "Console"
new "控制台"
# renpy/common/_errorhandling.rpym:748
old "Opens a console to allow debugging the problem."
new "打開控制台以調試問題。"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "撕裂"
+159 -102
View File
@@ -3,408 +3,465 @@ translate tchinese strings:
# gui.rpy:2
old "## Initialization"
new "## Initialization"
new "## 初始化"
# gui.rpy:5
old "## The init offset statement causes the init code in this file to run before init code in any other file."
new "## The init offset statement causes the init code in this file to run before init code in any other file."
new "## init offset 語句會導致此檔案中的 init 程式碼在任何其他檔案中的 init 程式碼之前執行"
# gui.rpy:9
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## 呼叫 gui.init 將樣式重置為合理的預設值,並設定遊戲的寬度和高度"
# gui.rpy:21
old "## Colors"
new "## Colors"
new "## 顔色"
# gui.rpy:23
old "## The colors of text in the interface."
new "## The colors of text in the interface."
new "## 介面中文字的顏色"
# gui.rpy:25
old "## An accent color used throughout the interface to label and highlight text."
new "## An accent color used throughout the interface to label and highlight text."
new "## 整個介面中使用的強調色,用於標記和突出顯示文字"
# gui.rpy:29
old "## The color used for a text button when it is neither selected nor hovered."
new "## The color used for a text button when it is neither selected nor hovered."
new "## 當文字按鈕既未被選取也未被懸停時所使用的顏色"
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## 小顏色適用於小文本,需要更亮/更暗才能達到與普通文本相同的效果"
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## The color that is used for buttons and bars that are hovered."
new "## 用於懸停的按鈕和欄的顏色"
# gui.rpy:39
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
new "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
new "## 當文字按鈕被選取但未獲得焦點時所使用的顏色。如果按鈕是目前畫面或首選項值,則按鈕將被選取"
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
new "## The color used for a text button when it cannot be selected."
new "## 無法選擇文字按鈕時使用的顏色"
# gui.rpy:46
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
new "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
new "## 顏色用於未填充的條形部分。這些顏色不直接使用,而是在重新生成條形圖像檔案時使用"
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## The colors used for dialogue and menu choice text."
new "## 用於對話和選單選擇文字的顏色"
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Fonts and Font Sizes"
new "## 字形和字形大小"
# gui.rpy:58
old "## The font used for in-game text."
new "## The font used for in-game text."
new "## 用於遊戲內文字的字形"
# gui.rpy:61
old "## The font used for character names."
new "## The font used for character names."
new "## 用於角色名稱的字形"
# gui.rpy:64
old "## The font used for out-of-game text."
new "## The font used for out-of-game text."
new "## 用於遊戲外文本的字形"
# gui.rpy:67
old "## The size of normal dialogue text."
new "## The size of normal dialogue text."
new "## 正常對話文字的大小"
# gui.rpy:70
old "## The size of character names."
new "## The size of character names."
new "## 角色名稱的大小"
# gui.rpy:73
old "## The size of text in the game's user interface."
new "## The size of text in the game's user interface."
new "## 遊戲用戶介面中的文字的大小"
# gui.rpy:76
old "## The size of labels in the game's user interface."
new "## The size of labels in the game's user interface."
new "## 遊戲用戶介面中標籤的大小"
# gui.rpy:79
old "## The size of text on the notify screen."
new "## The size of text on the notify screen."
new "## 通知螢幕上的文字大小"
# gui.rpy:82
old "## The size of the game's title."
new "## The size of the game's title."
new "## 遊戲標題的大小"
# gui.rpy:86
old "## Main and Game Menus"
new "## Main and Game Menus"
new "## 主選單和遊戲選單"
# gui.rpy:88
old "## The images used for the main and game menus."
new "## The images used for the main and game menus."
new "## 用於主選單和遊戲選單的圖像"
# gui.rpy:92
old "## Should we show the name and version of the game?"
new "## Should we show the name and version of the game?"
new "## 我們需要顯示遊戲的名稱和版本嗎?"
# gui.rpy:96
old "## Dialogue"
new "## Dialogue"
new "## 對話"
# gui.rpy:98
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## These variables control how dialogue is displayed on the screen one line at a time."
new "## 這些變數控制對話如何一次一行地顯示在螢幕上"
# gui.rpy:101
old "## The height of the textbox containing dialogue."
new "## The height of the textbox containing dialogue."
new "## 包含對話的文本框的高度"
# gui.rpy:104
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## 文本框在螢幕上垂直的位置。0.0 是頂部,0.5 是中心,1.0 是底部"
# gui.rpy:109
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## 對話角色的名字相對於文本框的位置。這些可以是從左側或頂部開始的整數像素,也可以是到中心的 0.5 個像素"
# gui.rpy:114
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## 角色名稱的水平對齊方式。左對齊可以為 0.0,居中對齊可以為 0.5,右對齊可以為 1.0"
# gui.rpy:118
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## 包含角色名稱的框的寬度、高度和邊框,或無以自動調整其大小"
# gui.rpy:123
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## 包含角色名稱的框的邊框,按左、上、右、下順序排列"
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## 如果為 True ,名稱框的背景將平鋪,如果為 False ,則名稱框的背景將縮放"
# gui.rpy:132
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
new "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
new "## 對話相對於文本框的位置。這些可以是相對於文字方塊左側或頂部的整數像素,或相對於中心的 0.5 個像素"
# gui.rpy:138
old "## The maximum width of dialogue text, in pixels."
new "## The maximum width of dialogue text, in pixels."
new "## 對話文字的最大寬度,以像素為單位"
# gui.rpy:141
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## 對話文字的水平對齊方式。左對齊可以為 0.0,居中對齊可以為 0.5,右對齊可以為 1.0"
# gui.rpy:146
old "## Buttons"
new "## Buttons"
new "## 按鈕"
# gui.rpy:148
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## 這些變數與 gui/button 中的圖像檔案一起控制按鈕顯示方式的各個方面"
# gui.rpy:151
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## 按鈕的寬度和高度,以像素為單位。如果沒有,Ren'Py 會計算其尺寸"
# gui.rpy:155
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## The borders on each side of the button, in left, top, right, bottom order."
new "## 按鈕兩側的邊框,依左、上、右、下順序排列"
# gui.rpy:158
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## 如果為 True ,背景圖像將平鋪。如果為 False ,背景圖像將線性縮放"
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
new "## 按鈕使用的字型"
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
new "## 按鈕使用的文字大小"
# gui.rpy:179
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## 這些變數會覆寫不同類型按鈕的設定。請參閱 gui 文檔以了解可用按鈕的類型以及每個按鈕的用途"
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
new "## 預設介面使用這些自訂設定:"
# gui.rpy:198
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## 您也可以透過新增正確命名的變數來新增自己的自訂設定。例如,您可以取消註解以下行以設定導覽按鈕的寬度"
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
new "## 選項按鈕"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
new "## 選擇按鈕用於遊戲內選單"
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
new "## 存檔槽按鈕"
# gui.rpy:222
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## 存檔槽按鈕是一種特殊類型的按鈕。它包含縮圖和描述儲存槽內容的文字。與其他類型的按鈕一樣,儲存槽使用 gui/button 中的圖像檔案"
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
new "## 儲存槽按鈕"
# gui.rpy:234
old "## The width and height of thumbnails used by the save slots."
new "## The width and height of thumbnails used by the save slots."
new "## 儲存槽使用的縮圖的寬度和高度"
# gui.rpy:238
old "## The number of columns and rows in the grid of save slots."
new "## The number of columns and rows in the grid of save slots."
new "## 儲存槽網格中的列數和行數"
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
new "## 位置和間距"
# gui.rpy:245
old "## These variables control the positioning and spacing of various user interface elements."
new "## These variables control the positioning and spacing of various user interface elements."
new "## 這些變數控制各種用戶介面元素的位置和間距"
# gui.rpy:248
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## 導航按鈕左側一般相對於螢幕左側的位置"
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
new "## 跳過指示器的垂直位置"
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
new "## 通知畫面的垂直位置"
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
new "## 選單選項之間的間距"
# gui.rpy:261
old "## Buttons in the navigation section of the main and game menus."
new "## Buttons in the navigation section of the main and game menus."
new "## 主選單和遊戲選單導航部分中的按鈕"
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
new "## 控制首選項之間的間距"
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
new "## 控制首選項按鈕之間的間距"
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
new "## 存檔頁面按鈕之間的間距"
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
new "## 存檔槽之間的間距"
# gui.rpy:277
old "## Frames"
new "## Frames"
new "## 框架"
# gui.rpy:279
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## 當不存在覆蓋層或視窗時,這些變數控制可以包含使用者介面元件的框架的外觀"
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
new "## 由玩家代碼引入的通用框架"
# gui.rpy:285
old "## The frame that is used as part of the confirm screen."
new "## The frame that is used as part of the confirm screen."
new "## 用作確認螢幕一部分的框架"
# gui.rpy:288
old "## The frame that is used as part of the skip screen."
new "## The frame that is used as part of the skip screen."
new "## 用作跳過螢幕一部分的框架"
# gui.rpy:291
old "## The frame that is used as part of the notify screen."
new "## The frame that is used as part of the notify screen."
new "## 用作通知螢幕一部分的框架"
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
new "## 應該平鋪框架背景嗎?"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
new "## 條、捲軸和滑塊"
# gui.rpy:300
old "## These control the look and size of bars, scrollbars, and sliders."
new "## These control the look and size of bars, scrollbars, and sliders."
new "## 這些控制條、捲軸和滑塊的外觀和大小"
# gui.rpy:302
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## 預設 GUI 僅使用滑塊和垂直捲軸。所有其他捲軸僅在創建者編寫的程式碼中使用"
# gui.rpy:305
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## 水平條、捲軸和滑塊的高度。垂直條、捲軸和滑塊的寬度"
# gui.rpy:311
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## True if bar images should be tiled. False if they should be linearly scaled."
new "## 如果需要條圖平鋪,則為 True。如果需要條圖線性縮放,則為 False"
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
new "## 水平邊框"
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
new "## 垂直邊框"
# gui.rpy:326
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## 如何處理 gui 中不可滾動的捲軸。 \"hide\" 隱藏它們,而 None 則顯示它們"
# gui.rpy:331
old "## History"
new "## History"
new "## 歷史"
# gui.rpy:333
old "## The history screen displays dialogue that the player has already dismissed."
new "## The history screen displays dialogue that the player has already dismissed."
new "## 歷史畫面顯示玩家已經閱讀過的對話"
# gui.rpy:335
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## The number of blocks of dialogue history Ren'Py will keep."
new "## Ren'Py 將保留的對話歷史記錄區塊的數量"
# gui.rpy:338
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## 歷史畫面條目的高度,或設爲 None 以犧牲性能為代價使高度可變"
# gui.rpy:342
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## The position, width, and alignment of the label giving the name of the speaking character."
new "## 給予對話角色名稱的標籤的位置、寬度和對齊方式"
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
new "## 對話文字的位置、寬度和對齊方式"
# gui.rpy:356
old "## NVL-Mode"
new "## NVL-Mode"
new "## NVL-模式"
# gui.rpy:358
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## NVL 模式畫面顯示 NVL 模式角色所說的對話"
# gui.rpy:360
old "## The borders of the background of the NVL-mode background window."
new "## The borders of the background of the NVL-mode background window."
new "## NVL 模式背景視窗的背景邊框"
# gui.rpy:363
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## NVL 模式條目的高度。將其設為 None 以使條目動態調整高度"
# gui.rpy:367
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## gui.nvl_height None 時 NVL 模式條目之間的間距,以及 NVL 模式條目和選單之間的間距"
# gui.rpy:384
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## nvl_thought 文字的位置、寬度和對齊方式(由 nvl_narrator 字元表示的文字)"
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
new "## nvl menu_buttons 的位置"
# gui.rpy:403
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## 這增加了快捷按鈕的大小,使它們在平板電腦和手機上更容易觸摸"
# gui.rpy:409
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## 這會改變各種 GUI 元素的大小和間距,以確保它們在手機上輕鬆可見"
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
new "## 字形大小"
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
new "## 調整文本框的位置"
# gui.rpy:427
old "## Change the size and spacing of items in the game menu."
new "## Change the size and spacing of items in the game menu."
new "## 更改遊戲選單中項目的大小和間距"
# gui.rpy:436
old "## File button layout."
new "## File button layout."
new "## 檔案按鈕佈局"
# gui.rpy:440
old "## NVL-mode."
new "## NVL-mode."
new "## NVL 模式"
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
new "## 快捷按鈕"
# 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 "## init offset 語句導致此文件中的初始化語句在任何其他文件中的 init 語句之前運行。"
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
new "## 啟用螢幕或變換中無效或不穩定屬性的檢查"
# gui/game/gui.rpy:19
old "## GUI Configuration Variables"
new "## GUI 配置變數"
# gui/game/gui.rpy:167
old "## The color of button text in various states."
new "## 各種狀態下按鈕文字的顏色"
# gui/game/gui.rpy:173
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## 按鈕文字的水平對齊方式。(0.0 為左,0.5 為中,1.0 為右)"
# gui/game/gui.rpy:278
old "## The position of the main menu text."
new "## 主選單文字的位置"
# gui/game/gui.rpy:287
old "## Generic frames."
new "## 通用框架"
# gui/game/gui.rpy:307
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## 預設 GUI 僅使用滑塊和垂直滾動條。所有其他捲軸僅在創建者編寫的螢幕中使用"
# gui/game/gui.rpy:347
old "## Additional space to add between history screen entries."
new "## 在歷史畫面條目之間添加的額外空間。"
# gui/game/gui.rpy:371
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 "## Ren'Py 將顯示的 NVL 模式條目的最大數量。當要顯示的條目多於此時,最舊的條目將被刪除。"
# gui/game/gui.rpy:408
old "## Localization"
new "## 在地化"
# gui/game/gui.rpy:410
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
new "## 這控制允許換行的位置。預設值適用於大多數語言。可用值的清單可以在 https://www.renpy.org/doc/html/style_properties.html#style-property-language 中找到財產語言"
# gui/game/gui.rpy:418
old "## Mobile devices"
new "## 行動裝置"
# gui/game/gui.rpy:449
old "## Change the size and spacing of various things."
new "## 改變各種東西的大小和間距。"
File diff suppressed because it is too large Load Diff
+66 -45
View File
@@ -3,119 +3,119 @@ translate tchinese strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
new "## This file contains options that can be changed to customize your game."
new "## 此文件包含可以更改以自訂您的遊戲的選項。"
# options.rpy:4
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## 以兩個'#' 標記開頭的行是註釋,您不應取消註釋它們。以單一'#' 標記開頭的行是註解掉的程式碼,您可能需要在適當的時候取消註解它們。"
# options.rpy:10
old "## Basics"
new "## Basics"
new "## 基礎"
# options.rpy:12
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
new "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
new "## 一個人類可讀的遊戲名稱。這用於設定預設視窗標題,並顯示在介面和錯誤報告中。"
# options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
new "## The _() surrounding the string marks it as eligible for translation."
new "## 字串周圍的 _() 標記其為符合翻譯條件。"
# options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 Default GUI"
new "Ren'Py 7 默認 GUI"
# options.rpy:20
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## 決定上面給出的標題是否顯示在主選單畫面上。將其設為 False 以隱藏標題。"
# options.rpy:26
old "## The version of the game."
new "## The version of the game."
new "## 遊戲的版本"
# options.rpy:31
old "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
new "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
new "## 放置在遊戲的關於螢幕上的文字。要在段落之間插入空行,請寫入 \\n\\n."
# options.rpy:37
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
new "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
new "## 遊戲的短名稱,用於建立發行版中的可執行檔和目錄。它必須只是 ASCII,並且不能包含空格、冒號或分號。"
# options.rpy:44
old "## Sounds and music"
new "## Sounds and music"
new "## 聲音和音樂"
# 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 "## 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 "## 這三個變數控制預設向播放器顯示哪些混音器。將其中一個設定為 False 將隱藏對應的混音器。"
# options.rpy:55
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
new "## 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 "## 要允許用戶在聲音或語音通道上播放測試聲音,請取消註釋下面的行並使用它來設定要播放的範例聲音。"
# options.rpy:62
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
new "## 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 "## 取消註解以下行以設定玩家在主選單時播放的音訊檔案。該檔案將繼續在遊戲中播放,直到停止或播放另一個檔案。"
# options.rpy:69
old "## Transitions"
new "## Transitions"
new "## 過渡"
# options.rpy:71
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## 這些變數設定在發生某些事件時使用的過渡。每個變數都應設定為過渡,或 None 表示不應使用任何過渡。"
# options.rpy:75
old "## Entering or exiting the game menu."
new "## Entering or exiting the game menu."
new "## 進入或退出遊戲選單。"
# options.rpy:81
old "## A transition that is used after a game has been loaded."
new "## A transition that is used after a game has been loaded."
new "## 遊戲載入後使用的過渡。"
# options.rpy:86
old "## Used when entering the main menu after the game has ended."
new "## Used when entering the main menu after the game has ended."
new "## 在遊戲結束後進入主選單時使用。"
# options.rpy:91
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
new "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
new "## 用於設定遊戲開始時使用的過渡的變數不存在。相反,需要在顯示初始場景後使用 with 語句。"
# options.rpy:96
old "## Window management"
new "## Window management"
new "## 視窗管理"
# options.rpy:98
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## 這控制何時顯示對話視窗。如果 \"show\" ,則始終顯示。如果 \"hide\" ,則僅在存在對話時顯示。如果 \"auto\" ,則視窗在場景陳述之前隱藏,並在顯示對話後再次顯示。"
# options.rpy:103
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## 遊戲開始後,可以使用 \"window show\", \"window hide\", \"window auto\" 語句更改。"
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
new "## Transitions used to show and hide the dialogue window"
new "## 用於顯示和隱藏對話視窗的轉換"
# options.rpy:115
old "## Preference defaults"
new "## Preference defaults"
new "## 首選項預設值"
# options.rpy:117
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## 控制預設文字速度。預設值 0 是無限的,而任何其他數字是每秒鍵入的字元數。"
# options.rpy:123
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## 預設自動轉送延遲。數字越大,等待時間越長,有效範圍為 0 30"
# options.rpy:129
old "## Save directory"
new "## Save directory"
new "## 儲存檔目錄"
# options.rpy:131
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
new "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
new "## 控制Ren'Py將放置該遊戲的儲存文檔的平台特定位置。儲存文檔將放置在:"
# options.rpy:134
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
@@ -131,64 +131,85 @@ translate tchinese strings:
# options.rpy:140
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## 通常不應更改,如果更改,則應始終是文字字串,而不是表達式。"
# options.rpy:146
old "## Icon ########################################################################'"
new "## Icon ########################################################################'"
new "## 圖標 ########################################################################'"
# options.rpy:148
old "## The icon displayed on the taskbar or dock."
new "## The icon displayed on the taskbar or dock."
new "## 顯示在工作列或擴充座上的圖示。"
# options.rpy:153
old "## Build configuration"
new "## Build configuration"
new "## 構置配置"
# options.rpy:155
old "## This section controls how Ren'Py turns your project into distribution files."
new "## This section controls how Ren'Py turns your project into distribution files."
new "## 本節控制Ren'Py如何將您的專案轉換為釋出版。"
# options.rpy:160
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## 以下函數採用檔案模式。 檔案模式不區分大小寫,並與相對於基底目錄的路徑進行匹配,無論是否有前導 /。 如果多個模式匹配,則使用第一個模式。"
# options.rpy:165
old "## In a pattern:"
new "## In a pattern:"
new "## 在一個模式中:"
# options.rpy:167
old "## / is the directory separator."
new "## / is the directory separator."
new "## / 是目錄分隔符號。"
# options.rpy:169
old "## * matches all characters, except the directory separator."
new "## * matches all characters, except the directory separator."
new "## * 匹配目錄分隔符號之外的所有字元。"
# options.rpy:171
old "## ** matches all characters, including the directory separator."
new "## ** matches all characters, including the directory separator."
new "## ** 匹配所有字符,包括目錄分隔符。"
# options.rpy:173
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## 就比如, \"*.txt\" 匹配 base 目錄中的txt文件, \"game/**.ogg\" 匹配遊戲目錄或其任何子目錄中的 ogg 文件,和 \"**.psd\" 匹配專案中任意位置的 psd 檔案。"
# options.rpy:177
old "## Classify files as None to exclude them from the built distributions."
new "## Classify files as None to exclude them from the built distributions."
new "## 將檔案分類為 None 以將它們從建置的釋出版中排除。"
# options.rpy:185
old "## To archive files, classify them as 'archive'."
new "## To archive files, classify them as 'archive'."
new "## 要歸檔文件,請將其分類為 'archive'"
# options.rpy:190
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## 與文件模式匹配的文件在 Mac 應用程式建置中會重複,因此它們會同時出現在應用程式和 zip 檔案中。"
# options.rpy:196
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## 下載擴充檔案和執行應用程式內購買需要 Google Play 許可證金鑰。 它可以在 Google Play 開發者控制台的 \"Services & APIs\" 頁面上找到。"
# options.rpy:203
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## The username and project name associated with an itch.io project, separated by a slash."
new "## 與 itch.io 項目關聯的使用者名稱和項目名稱,以斜線分隔。"
# 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 "## 放置在遊戲的關於螢幕上的文字。將文字放在三引號之間,並在段落之間留一個空行。"
# 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 將隱藏相應的混音器。"
# gui/game/options.rpy:82
old "## Between screens of the game menu."
new "## 在遊戲選單畫面之間。"
# gui/game/options.rpy:152
old "## Icon"
new "## 圖標"
# gui/game/options.rpy:203
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
new "## 執行應用程式內購買需要 Google Play 許可證密鑰。它可以在 Google Play 開發者控制台的 \"Monetize\" > \"Monetization Setup\" > \"Licensing\" 下找到。"

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