Compare commits

...

1413 Commits

Author SHA1 Message Date
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
Tom Rothamel 8b79a3663c doc: Changelog the last few merges. 2023-10-30 17:56:30 -04:00
Elckarow fdf38adc83 sl2: copy_properties method for custom statements (#4839)
This takes the properties from another screen language statement.
2023-10-30 17:51:42 -04:00
Denys 921feb4ada Update Ukrainian translation. (#4996) 2023-10-30 17:50:14 -04:00
Gouvernathor f367e996aa Rework Inputvalues (#5080)
Add LocalVariableValue, factorize a bunch of code, use the same doc-generating model as with bar values.
2023-10-30 17:48:53 -04:00
Tom Rothamel c0c182d200 Merge pull request #5081 from renpy/language-basics
Rework the language basics page
2023-10-30 17:47:50 -04:00
Tom Rothamel a5fec5a7a5 rpy: Add a path if range queries are failing entirely. 2023-10-30 02:26:35 -04:00
Gouvernathor 0f668f2810 More tweaks 2023-10-30 00:57:00 +01:00
Asriel Senna 5cba186326 Chitespace, docstrings and unused ref anchors 2023-10-30 00:44:57 +01:00
Asriel Senna 74631fe701 Rework the language basics page 2023-10-30 00:44:26 +01:00
Tom Rothamel 13eeb9d0c0 update: Move prompt confirm to later in the update process.
Specifically, until after the update method has been selected, and
for rpu, after the files have been scanned and the size of the
download is known.

This will (shortly) let us give the user information about
download and disk size.
2023-10-29 14:55:39 -04:00
Tom Rothamel 1066157585 update: Call the old update format "zsync". 2023-10-29 12:25:22 -04:00
Tom Rothamel 7742627373 update: Add support for updating an empty directory.
That is, taking an empty alternate base directory and turning it
into a working game.
2023-10-28 22:34:27 -04:00
Tom Rothamel 95102a6b71 rpu: Add support for determining the download and disk size.
And pausing to prompt the user once that's known.
2023-10-28 22:30:14 -04: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
Tom Rothamel acac446c8b py2: Fix. 2023-10-28 13:35:41 -04:00
Tom Rothamel 9fc8e43f17 Merge branch 'fix' 2023-10-28 01:10:03 -04:00
Tom Rothamel 6d6003f4e0 sl2: Fix issue with transcludes and custom statements.
Fixes #5074.
2023-10-28 00:53:25 -04:00
Tom Rothamel 7ff1b3b5c5 Merge pull request #5057 from renpy/lint-toggles
Add lint toggles
2023-10-27 00:50:42 -04:00
Tom Rothamel 4fd318880e doc: LocalVariableValue 2023-10-27 00:48:56 -04:00
Gouvernathor 6cd57b192a Factorize and improve some Barvalue subclasses (#5064)
* factorize the most common BarValue subclasses, using the same recipe (but in a much simpler way) as in Action mixins #4473, which considerably shortens the code and avoids code duplication
* fix the kind parameter of FieldValue and VariableValue - it was saved but never passed to _get_field and _set_field
* fix some subclasses doc entries that weren't appropriately worded, some which set variables mentioned "fields"
* implement LocalVariableValue, supersede and fix add the LocalVariableValue action #5055, and allow it to have adequately-worded exceptions


Co-authored-by: Mal Graty <mal.graty@googlemail.com>
2023-10-27 00:47:21 -04:00
Tom Rothamel 8c6aab0bc6 Revert "add the LocalVariableValue action (#5055)"
This reverts commit 2451b3f0da.
2023-10-27 00:46:14 -04:00
Elckarow 2451b3f0da add the LocalVariableValue action (#5055) 2023-10-27 00:42:27 -04:00
Gouvernathor daea1375c3 Various tweaks and updates (#5069)
* Simplify currying in exports

* Unused import

* Docstrings, whitespace and exceptions

The docstrings were obsolete (not only buttons and hotspots take actions now, and they are now the core of screen language so nobody ignores what they are)
and the information that they can be subclassed is much more important in my view
Also these exceptions are better

* utflf
2023-10-27 00:41:32 -04:00
Tom Rothamel ada2b860f6 Merge pull request #5070 from qTich/fix/web-input-prompt
fix: translate `prompt` when used `web_input`
2023-10-27 00:41:09 -04:00
Tom Rothamel 6758447cad Merge pull request #5073 from renpy/pass-layeredimage
Re-add the pass keyword to the layeredimage language
2023-10-27 00:40:53 -04:00
Tom Rothamel 035d6e7b30 doc: Fetch. 2023-10-27 00:06:32 -04:00
Tom Rothamel 0675f6ce44 fetch: Fix fetching on the web platform. 2023-10-26 23:25:56 -04:00
Gouvernathor c7317c076b Re-add the pass keyword to the layeredimage language 2023-10-27 03:50:17 +02:00
Tom Rothamel 6bd420b421 fetch: Add the renpy.fetch function.
This is a single function that can fetch data from a web server,
optionally taking binary data or json as input, and returning its
result as bytes, text, or json-decoded data.
2023-10-26 00:59:19 -04:00
Tichq c1f2db72b5 fix: translate prompt when used web_input 2023-10-26 03:14:12 +03:00
Tom Rothamel f87917e399 Changes to android APK loading.
* Remove support for Expansion APKs. These have been obsolete for
  some time.

* Only use the APK for game files if an alternate base directory is
  not in use.
2023-10-25 19:52:33 -04:00
Gouvernathor 6bc50d6454 Make the doc generation of the mixined actions conditional 2023-10-25 19:44:55 +02:00
Tom Rothamel a2bfa02de1 doc: Fix caps on one line. 2023-10-25 09:38:10 -04:00
Gouvernathor a3ad875263 doc: fax the fox 2023-10-25 14:01:20 +02:00
Tom Rothamel 80d3075bf0 id: Force the director into lines mode after a reload.
Fixes #5028.
2023-10-25 01:08:44 -04:00
Tom Rothamel 0b213cc7db doc: Edits to the data accessor changelog. 2023-10-24 23:34:39 -04:00
Tom Rothamel 23fc2f66c9 Merge pull request #5067 from renpy/changelog-mixins
Changelog mixins
2023-10-24 20:40:20 -04:00
Ren'Py Bot 19498d5bce Merge branch 'fix' 2023-10-24 04:30:07 -04:00
Tom Rothamel 7f37382012 Avoid distributing web-icon.png in other formats. 2023-10-23 22:58:51 -04:00
Kassy 7fcad404b6 Web icon fix (#5018)
* Fix web icon name

The code looks for "web-icon.png" but the comment and function names
referred to "pwa_icon.png".

* Document the web icon customization
2023-10-23 22:58:20 -04:00
Tom Rothamel d8ad7d1672 Create checkpoints when hard skipping.
Fixes #5025.
2023-10-23 22:04:38 -04:00
Tom Rothamel e4b550b8c3 Create checkpoints when hard skipping.
Fixes #5025.
2023-10-23 22:04:01 -04:00
Gouvernathor 67bdb9ab03 Changelog mixins 2023-10-23 10:44:58 +02:00
Gouvernathor 6f44533bbe Mixin-Based Data Actions
This change replaces the implementation of the data actions with mixins, one for accessing the data and one for changing it. Doing so simplifies and regularizes the implementation, and makes it possible to add new types of data actions, like the Cycle and Increment actions added here.
2023-10-22 22:47:11 -04:00
Tom Rothamel d084b624b9 Merge branch 'fix' 2023-10-22 22:34:16 -04:00
Tom Rothamel 06d3a90bd7 Include checkpointing_suspended in the rollback objects.
It's possible (and had been for some time) to rollback into a spot
where checkpointing was suspended - but checkpointing would be re-enabled,
meaning that checkpoint_suspended would be forgotten.
2023-10-22 22:27:18 -04:00
Tom Rothamel 5e64403699 Fix issues with greedy rollback by default.
Fixes #5040, which was caused by the interaction of greedy rollbacl
and suspended rollback.

Fixes #5035, which was just never actually looking at the _greedy_rollback
variable.
2023-10-22 22:12:55 -04:00
Tom Rothamel d8954aa732 doc: Change links to Chinese documentation. 2023-10-21 01:52:15 -04:00
Tom Rothamel 669b07afef Add support for an alternate base directory.
This is a directory that is checked for update/version.json. If that
file exists and has versions that match the current engine, it is
used as the base directory instead of what the engine provides.

The main reason for this is to support Android games larger than
2GB, by letting those games download content.
2023-10-21 01:45:26 -04:00
Tom Rothamel e2bc3fb55c rpu: Write a version.json file into the update directory.
This file only exists if the update has finished successfully,
and contains the version information from updates.json.

It's intended to be used ot ensure that an alternate base
directory works with Ren'Py.
2023-10-20 23:24:07 -04:00
Tom Rothamel 088b1572ef rpy: Search for Ren'Py's update.pem in the base directory. 2023-10-20 00:31:30 -04:00
Gouvernathor a30f562d38 Resolve type issues 2023-10-19 21:23:42 +02:00
Ren'Py Bot 4768a012db Merge branch 'fix' 2023-10-19 04:30:07 -04:00
Tom Rothamel c7d8bd1dc9 rpu: Allow an update to be signed by multiple keys.
This provides a way to migrate old versions to a new key.
2023-10-19 01:27:07 -04:00
Tom Rothamel be226363e8 rpu: Include update information in all mutable formats. 2023-10-19 01:11:07 -04:00
Tom Rothamel 267a807146 rpu: Verify ECDSA signatures. 2023-10-19 00:53:17 -04:00
Tom Rothamel 34468cf57d Ignore update.pem. 2023-10-19 00:13:25 -04:00
Tom Rothamel 172f9f926e rpu: Create the updates.ecdsa file. 2023-10-19 00:06:14 -04:00
Tom Rothamel f6afced012 rpu: Include a verifying key with the built project. 2023-10-18 23:33:04 -04:00
Tom Rothamel 00cd7e4ada rpu: Generate update.pem when updates are enabled. 2023-10-18 23:13:52 -04:00
Tom Rothamel 9f4ab7d761 Always oversample SVGs.
Work to support placeholders lead to problems with SVG scaling
when the window scaled. This is resolved by scaling up the
placeholder, if required.

Fixes #5063.
2023-10-18 21:49:46 -04: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
Tom Rothamel 9ac420c259 id: Add lines explaining how to customize the director.
Fixes #5029.
2023-10-17 22:16:38 -04:00
Gouvernathor 8d009d2429 Merge branch 'master' into police-atl-params 2023-10-18 00:43:31 +02:00
Tom Rothamel 6c548d30ad Tweak the wording of the namespace error. 2023-10-17 00:02:26 -04:00
Tom Rothamel 615c6a728d Merge pull request #5059 from renpy/store.store
Prevent creation of a "store" substore
2023-10-17 00:01:12 -04:00
Gouvernathor bb8c508837 Prevent creation of a "store" substore 2023-10-16 18:45:43 +02:00
Tom Rothamel 30833f1f5f Allow renpy.utter_restart(True) to work on mobile. 2023-10-16 00:48:16 -04:00
Tom Rothamel 57bf18c705 rpu: Support for adding DLC. 2023-10-16 00:48:01 -04:00
Tom Rothamel e30855cb93 rpu: In the launcher, allow the website to pick rpu/zsync.
This makes it possible to deploy rpu, but have a fallback if
problems are reported.
2023-10-15 21:01:36 -04:00
Tom Rothamel ed0f536853 Merge branch 'fix' 2023-10-15 20:54:08 -04:00
Tom Rothamel e4f601310b Fix an issue with projects.txt.
Specifically, /path/to/mygame/ would produce a game with an
empty name, rather than mygame.
2023-10-15 20:54:00 -04:00
Tom Rothamel b92107dd02 rpu: Fix multi-part downloading. 2023-10-15 20:38:02 -04:00
Tom Rothamel 19c5e806b1 rpu: Add progress and logging to the updater. 2023-10-15 19:39:33 -04:00
Tom Rothamel f6d9762c5c rpu: Integrate rpu with the existing updater. 2023-10-15 15:58:01 -04:00
Ren'Py Bot 8b679cca71 Merge branch 'fix' 2023-10-15 04:30:07 -04:00
Tom Rothamel 34fe132e55 rpu: Use an environment variable to enable RPU. 2023-10-14 23:40:12 -04:00
Gouvernathor 0036bc3fe9 Optional plural 2023-10-15 03:52:22 +02:00
Gouvernathor d321d1ff51 Implement character char and word counts
fixes #5001
2023-10-15 03:46:44 +02:00
Gouvernathor a98d15eed4 Toggle the builtins-in-parameters check
disabled by default
2023-10-15 03:22:40 +02:00
Gouvernathor 57dba01448 Merge branch 'lint-parameter-names' into lint-toggles 2023-10-15 03:19:14 +02:00
Gouvernathor 3532b589d5 Implement lint options and make orphan tl check optional 2023-10-15 03:15:31 +02:00
Gouvernathor 51cc42a901 Base GUI entries for lint toggles 2023-10-15 02:33:51 +02:00
Gouvernathor e09b87dffe typos 2023-10-15 02:27:13 +02:00
Gouvernathor c5752398b9 doc: extend new im wording to the displayables page 2023-10-15 02:23:44 +02:00
Ren'Py Bot d5fe9c9a11 Merge branch 'fix' 2023-10-14 04:30:07 -04:00
Tom Rothamel b8ca91a62a bubble: Make available outside the overlay.
Fixes #5052.
2023-10-13 23:47:56 -04:00
Tom Rothamel 5aec41f9e1 bubble: Make available outside the overlay.
Fixes #5052.
2023-10-13 23:47:03 -04:00
Tom Rothamel b1d1db1075 doc: Finish documenting shaper. 2023-10-13 08:35:35 -04:00
Tom Rothamel 2708eda3d3 py2: Make generating rpus work with py2. 2023-10-13 08:35:35 -04:00
Ren'Py Bot ad83e0354e Merge branch 'fix' 2023-10-12 04:30:07 -04:00
Tom Rothamel 1c823a4e7c rpu: Support compressed segments. 2023-10-12 00:23:52 -04:00
Tom Rothamel 11186c86ae rpu: Allow rpus to be created in parallel. 2023-10-11 22:44:08 -04:00
Tom Rothamel 6014bfa007 Use the correct variable to configure the package formats. 2023-10-11 22:44:08 -04:00
Gouvernathor ef0d2db11d Fix translation 2023-10-11 18:23:50 +02:00
Ren'Py Bot 7dd1db50d2 Merge branch 'fix' 2023-10-11 04:30:07 -04:00
Tom Rothamel c8413912d2 Add a "Skip splashscreen" preference to the launcher.
This sets RENPY_SKIP_SPLASHSCREEN, which causes Ren'Py to
skip the splashscreen label.
2023-10-10 22:34:30 -04:00
Tom Rothamel 969b2ccecf SyntaxError: Invalid syntax. 2023-10-10 21:22:01 -04:00
Tom Rothamel 228c72f6c1 rpu: Create FileLists from the current.json file. 2023-10-10 20:40:44 -04:00
Tom Rothamel ad9af51510 rpu: Enable building rpus for the SDK. 2023-10-10 20:40:44 -04:00
Tom Rothamel 45faa71da8 Merge pull request #5045 from mal/layer-clip-docs
Clarify clipping behaviour as it relates to layers and Layer
2023-10-10 20:07:45 -04:00
Tom Rothamel e530c78cc0 Merge pull request #5050 from renpy/im-directives
Add warnings and deprecated sections for image manipulators
2023-10-10 20:07:27 -04:00
Gouvernathor c3a26654f7 Update the transform property 2023-10-11 00:52:20 +02:00
Gouvernathor 14710606ef doc: heavy-handed use of the deprecated directive 2023-10-11 00:41:13 +02:00
Gouvernathor 72cb9e3929 doc: Add warnings to the im page 2023-10-11 00:38:55 +02:00
Ren'Py Bot 9c3b082260 Merge branch 'fix' 2023-10-10 04:30:07 -04:00
Mal Graty 46cfe60086 doc: Signature for Layer displayable 2023-10-09 14:06:35 +01:00
Mal Graty 588d1e1137 doc: Warn of layer_clipping precedence in Layer 2023-10-09 14:04:14 +01:00
Mal Graty 15a12efd61 doc: Clarify behaviour there's no layer_clipping 2023-10-09 14:04:14 +01:00
Gouvernathor b0434ea1d9 doc: Update a link that was a teensy bit outdated 2023-10-09 14:58:47 +02:00
Tom Rothamel 96b44cdcb2 Add Show Filename and Line
A new option in the developer menu that shows the filename and line,
and lets you click to edit.
2023-10-08 21:58:44 -04:00
Tom Rothamel 1fde5f985a Add the EditFile action.
This opens the filename and line in a text editor,
if possible.
2023-10-08 21:54:43 -04:00
Tom Rothamel 34dcdc7f0e rpu: Include rpu update information in update.json. 2023-10-07 15:47:49 -04:00
Tom Rothamel 2238b460a7 rpu: Provide progress when making the update.
This was required because previously, only writing the files
made progress.
2023-10-07 10:37:47 -04:00
Tom Rothamel ff8ba2d10c rpu: Start integration with distribute.
This can now create the rpu files for a game.
2023-10-06 23:58:30 -04:00
Tom Rothamel 5e3495c333 rpu: Soft limit to 50MB.
While a big file will let the .rpy get bigger, this makes sure that
two files won't be downloaded when one will do.
2023-10-06 23:23:02 -04:00
Tom Rothamel 79945d9649 rpu: Prepare to generate updates.
* Add FileList.add_file and FileList.add_directory.
* Prepend the rpus with the name of the list that creates them.
* Delete obsolete rpus.
2023-10-06 22:57:23 -04:00
Tom Rothamel 254fa8c4ee Add missing encoding field to StdioRedirector.
Fixes a crash in compileall.
2023-10-06 22:56:32 -04:00
Tom Rothamel 14b596e15a Change the Sphinx search role.
Fixes #5037.
2023-10-05 21:59:56 -04:00
Tom Rothamel f33aef4711 Use premultiplied alpha for underline and strikethrough.
Fixes #5033.
2023-10-04 23:17:56 -04:00
Tom Rothamel 7d86e8509a rpu: Move to the renpy.update module. 2023-10-04 22:20:35 -04:00
Tom Rothamel dd26bbf859 rpu: Combine filetypes and util into a single common file. 2023-10-04 01:08:59 -04:00
Tom Rothamel cde1f301d2 rpu: Manage the executable bit.
Also, remove mtime from the json files.
2023-10-03 22:06:23 -04:00
Tom Rothamel 2d8e7d3a1a rpu: Create empty new files. 2023-10-02 23:24:08 -04:00
Tom Rothamel 1c2b3ed231 rpu: Delete files when not necessary, or at the end. 2023-10-02 23:14:43 -04:00
Tom Rothamel 021aa22a80 rpu: Add logging and deletion infrastructure. 2023-10-01 22:50:44 -04:00
Tom Rothamel e548ed13b2 rpu: Add support for reporting progress. 2023-10-01 01:21:03 -04:00
Tom Rothamel b1cf7eb64e Merge pull request #5020 from qTich/fix/pad_enabled
fix: `pad_enabled` instance type,, since can contains `all`
2023-09-30 19:42:55 -04:00
Tom Rothamel 86e9454b79 Merge pull request #5024 from Kassy2048/ipad-detect
New detection for iPad
2023-09-30 19:42:31 -04:00
Kassy f7d2434dff 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-10-01 01:36:00 +02:00
Tichq 07c96e8872 fix: pad_enabled instance type,, since can contains all 2023-09-30 11:50:27 +03:00
Tom Rothamel 0f51948f80 Search the interpolate namespace for variables during interpolation. 2023-09-29 22:04:43 -04:00
Ren'Py Bot 8448808c67 Merge branch 'fix' 2023-09-29 04:30:08 -04:00
Tom Rothamel 8da08dd187 Restore a (now simpler) render_movie.
Since this function is used to show cutscenes.

Fixes #5015.
2023-09-28 21:16:07 -04:00
Tom Rothamel eedc86f20e rpu: Use range downloads to get block files. 2023-09-28 01:25:10 -04:00
Tom Rothamel ccb978f454 rpu: Add a progress callback to the downloader. 2023-09-28 00:16:26 -04:00
Tom Rothamel 33830fd6b4 rpu: Start work on range download library. 2023-09-27 23:45:33 -04:00
Tom Rothamel 615c624a70 Revert "Call functions when interpolating."
This reverts commit 4d8d065c89.
2023-09-27 22:00:14 -04:00
Gouvernathor 66f17ae6dd Avoid using non-f-string interpolation syntax 2023-09-27 23:34:01 +02:00
Ren'Py Bot 7bf7303f85 Merge branch 'fix' 2023-09-27 04:30:08 -04:00
Tom Rothamel 4d8d065c89 Call functions when interpolating.
This will make it possible to have accessors when interpolating.

Fixes #5009.
2023-09-27 01:46:24 -04:00
Tom Rothamel fc111cc0ab Merge pull request #5007 from renpy/custom-text-tags
Custom text tags
2023-09-26 21:32:44 -04:00
Gouvernathor b535e2b63c Disown dynamic ctt, add warning markup, remove useless label 2023-09-27 00:28:39 +02:00
Tom Rothamel fb294567fe rpu: Execute the plan.
This involves copying data from the source files, including block
files that are on disk, into the target files, and then renaming
those files when done.
2023-09-26 02:26:00 -04:00
Tom Rothamel b2893b5ea8 rpu: Create plan.
The plan decides where to get data from, and write it to.
2023-09-25 23:58:33 -04:00
Tom Rothamel 5853d63076 Make sure the .rpa padding is taken fron a local file.
This will prevent a block file from being downloaded just to gain
access to the .rpa padding.
2023-09-25 22:39:23 -04:00
Tom Rothamel bd7cd2a0c6 rpu: Consider .new.rpu files as sources for update data.
So as to recover from a failed update.
2023-09-24 09:34:41 -04:00
Tom Rothamel 9d42e5c667 rpu: Log the initial evaluation of files. 2023-09-24 01:51:20 -04:00
Tom Rothamel ab9ee40e1a rpy: Add the ability to unserialize the file types. 2023-09-24 01:51:20 -04: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
Ren'Py Bot 0aa28b6804 Merge branch 'fix' 2023-09-23 04:30:07 -04:00
Tom Rothamel 0891fff309 rpu: Generate the block files and index.
The block files contain the deduplicated segments, while the
index stores where segments are in the destination files and
the block files.
2023-09-23 01:37:30 -04:00
Tom Rothamel ca37ebacd1 rpu: Add support for scanning a .rpa file. 2023-09-22 23:29:34 -04:00
Tom Rothamel 51aff5d94d rpu: Initial work, scanning directoriues to create files. 2023-09-22 22:22:36 -04:00
Gouvernathor 7ff6acc36c french translations 2023-09-23 01:44:00 +02:00
Denys cda1c18e03 Update Ukrainian translations (#4993) 2023-09-23 00:46:53 +02:00
Denys 7f615dcddc Update error.rpy (#4992) 2023-09-22 16:43:52 +02:00
Ren'Py Bot 646a7535b0 Merge branch 'fix' 2023-09-22 04:30:08 -04:00
Tom Rothamel 4600339cf7 Update the .gitignore. 2023-09-21 22:58:44 -04:00
Tom Rothamel 03fdf2801e Simplify how Movie's size argument works.
Previously it had been its own code path, but now the movie
is rendered normally and then resized. Fixes #4983.
2023-09-21 22:45:29 -04:00
Ren'Py Bot e427b4e910 Merge branch 'fix' 2023-09-21 04:30:08 -04:00
Gouvernathor 0826778a5e Add a warning when creating new projects in renpy 7
not disabled, because it still makes sense for test purposes or to update default files
2023-09-21 04:30:07 -04:00
Gouvernathor 5050ee20ee doc typo 2023-09-21 04:30:07 -04:00
Tom Rothamel b4cf19cb0c Filter out the _sustain tag when choosing live2d attributes.
Fixes #4984.
2023-09-20 23:06:25 -04:00
Tom Rothamel dee35cfc66 Allow the DPI of SVG images to be selected.
With a new DPI parameter to Image. Fixes #4832.
2023-09-19 22:53:58 -04:00
Gouvernathor 325175f3c3 Better detect when the console should expect a new line before executing the block (#4834)
* Make blocks with comments open a newline in the console

* Support decorators in the console

* Support ending lines with \ in the console
2023-09-19 21:59:28 -04:00
Tom Rothamel 787f09929b Merge pull request #4691 from renpy/warn-new-renpy7
Add a warning when creating new projects in renpy 7
2023-09-19 21:51:14 -04:00
Vladya c5f9ddeae8 "Backslash in filename" fix
Fixes "Backslash in filename" error, when using method from pkgutil.get_data and similar.
2023-09-19 21:49:11 -04:00
Tom Rothamel c43c34c943 Merge pull request #4966 from NyashniyVladya/patch-1
RenpyImporter.get_data fix
2023-09-19 21:47:35 -04:00
Gouvernathor ce07691bbc doc typo 2023-09-19 16:12:41 +02:00
brainos233 9e76a31da1 doc: add missing reference end-string (#4978) 2023-09-19 16:12:16 +02:00
Gouvernathor 90701d03c1 doc typo 2023-09-19 16:10:28 +02:00
Ren'Py Bot 0256f2bba7 Merge branch 'fix' 2023-09-19 04:30:56 -04:00
Tom Rothamel a12d9c544e Bump fix branch versions. 2023-09-19 00:12:40 -04:00
Tom Rothamel 8bb5291324 doc: Update sponsor doc. 2023-09-18 22:27:29 -04:00
Tom Rothamel 186b082e3c Finish changelog. 2023-09-18 22:24:59 -04:00
Tom Rothamel 4dd40736a1 live2d: Install 32-bit windows library.
Fixes #4953.
2023-09-18 22:22:08 -04:00
Tom Rothamel 8c3741e6f9 Fix a truly ancient translation bug. 2023-09-18 18:34:41 -04:00
Gouvernathor 6e7f28f574 Update the ShowMenu doc entry (#4967)
better apparent signature, better documenting how args and kwargs work
2023-09-18 18:22:46 -04:00
Gouvernathor fa24e47d29 Update the ShowMenu doc entry (#4967)
better apparent signature, better documenting how args and kwargs work
2023-09-18 18:22:12 -04:00
Ren'Py Bot 12acbfc963 Merge branch 'fix' 2023-09-18 04:30:45 -04:00
Tom Rothamel 8e1945a628 Mark a context as non interacting when it's copied for rollback.
This is an attempt at fixing a stack trace that ended wit:

  File "C:\renpy\renpy\ui.py", line 299, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "C:\renpy\renpy\display\core.py", line 3556, in interact
    raise Exception("Cannot start an interaction in the middle of an interaction, without creating a new context.")
Exception: Cannot start an interaction in the middle of an interaction, without creating a new context.

After an autoreload.
2023-09-17 22:57:02 -04:00
Ren'Py Bot fdae52f6ad Merge branch 'fix' 2023-09-17 04:30:56 -04:00
Tom Rothamel 4b47d59b3b steam: Make the steam deck keyboard a lot less complicated.
This disables:

* Automatic showing the keyboard if the player dismisses it.
* Shifting the screen to where the keyboard is,.

And it changes the keyboard area to the top of the screen.

The goal of this is to work around recently-introduced issues with
Steam Deck keyboard handling.
2023-09-16 23:45:59 -04:00
Tom Rothamel 9cde14fa6d steam: Make the steam deck keyboard a lot less complicated.
This disables:

* Automatic showing the keyboard if the player dismisses it.
* Shifting the screen to where the keyboard is,.

And it changes the keyboard area to the top of the screen.

The goal of this is to work around recently-introduced issues with
Steam Deck keyboard handling.
2023-09-16 23:41:57 -04:00
Tom Rothamel a98fa5f7fe hb: Changelog. 2023-09-16 20:07:15 -04:00
Tom Rothamel bf0bc1d837 Update to Emoji 15.1. 2023-09-16 18:44:36 -04:00
Tom Rothamel db24c1eb3a hb: Document variable fonts. 2023-09-16 00:59:20 -04:00
Tom Rothamel c8a88bb17e hb: Fix minor issue with variable fonts and text tags. 2023-09-16 00:41:33 -04:00
Tom Rothamel 9c73cff8ce hb: Add renpy.variable_font_info().
A function that returns information about a variable font, so
that the creator knows how Ren'Py understands their font.
2023-09-15 01:11:22 -04:00
Ren'Py Bot 5a4b14009e Merge branch 'fix' 2023-09-14 23:23:49 -04:00
Tom Rothamel a4cb1a123e Avoid calling interface.timeout when the interface isn't ready.
Fixes #4968.
2023-09-14 18:15:42 -04:00
Tom Rothamel 057f69602b Avoid nicing distribute. 2023-09-14 17:57:59 -04:00
Ren'Py Bot 2040da88db Merge branch 'fix' 2023-09-14 04:30:56 -04:00
Tom Rothamel 82de5b7af0 Revert "Enable or disable text input as required."
This reverts commit a65cecfc18.

Bug #4784 is implicated in this, but there's a new fix
in the form of an SDL patch.
2023-09-14 01:10:15 -04:00
Tom Rothamel a688409eb9 hb: Implement the axis: and instance text tags.
These let the user set an axis or an instance of a variable
font.
2023-09-13 09:08:15 -04:00
Tom Rothamel 2ec1cb0cdc hb: Make font variations case insensitive. 2023-09-13 08:20:37 -04:00
Tom Rothamel a73082df6f hb: Add styles to support variable fonts. 2023-09-13 01:21:17 -04:00
Tom Rothamel e33888949a hb: Construct the harfbuzz face after the variable font stuff is set.
This fixes issues where some data appears to remain cached.
2023-09-13 01:15:48 -04:00
Tom Rothamel 6422153ce1 hb: Allow instances and axis values of variable fonts to be specified. 2023-09-12 23:32:46 -04:00
Tom Rothamel 9d1263d7c3 hb: Add the first support for font instances and variations. 2023-09-12 00:38:35 -04:00
Tom Rothamel 608cbab10c Use the correct key. 2023-09-11 21:16:02 -04:00
Tom Rothamel 2b08c40a4a Add config.font_hinting.
This is a single variable that allows all uses of a font to
have the same hinting, which styles can override.
2023-09-10 22:06:56 -04:00
Vladya bd01358481 "Backslash in filename" fix
Fixes "Backslash in filename" error, when using method from pkgutil.get_data and similar.
2023-09-10 23:30:12 +03:00
Tom Rothamel 1e518437dd Revert to using the "auto" hinter.
With renpy/renpy-build@ebe6d6a01a,
the autohinter looks quite good on Latin and non-Latin languages,
so we should continue to prefer it.
2023-09-10 00:54:04 -04:00
Tom Rothamel 2096c691ce Implement the auto-light hinting mode.
This isn't going to be the default, but it is available if creators
want it.
2023-09-10 00:46:17 -04:00
Tom Rothamel 6b4eadf0fd Merge branch 'fix' 2023-09-09 21:52:51 -04:00
Tom Rothamel fc8ac8344d Allow a checkpoint to become a checkpoint.
A checkpoint is created when a failed rollback happens, and probably
also when saving. When that statement finishes, we'd want the
checkpoint to become hard.

Fixes #4963.
2023-09-09 20:47:12 -04:00
Ren'Py Bot f6d8afdad6 Merge branch 'fix' 2023-09-09 04:30:55 -04:00
Tom Rothamel 420564557f Force the gl2 renderer to be used on macOS.
This is because there are major macOS-relevant fixes to the renderer,
such as the fix for #4155, that don't make sense to backport to the
gl renderer.
2023-09-08 22:32:17 -04:00
Ren'Py Bot a8cab927bb Merge branch 'fix' 2023-09-08 04:30:56 -04:00
Tom Rothamel 81ee1d994e Fix "attempted relative import with no known parent package"
By setting __package__ correctly. Fixes #4961.
2023-09-08 01:29:30 -04:00
Tom Rothamel 52c1e64b6f steam: Force the window to be the top of screen.
The previous code could - and would - put the text onto the bottom
half of the screen, which popped the textbox up on the top half,
which looked terrible. By forcing the location, the end result
looks much nicer.

Fixes #4959.
2023-09-07 23:24:33 -04:00
Gouvernathor 3ef755d5d4 Merge branch 'fix' 2023-09-06 21:34:15 +02:00
Gouvernathor e719dd8d47 doc: fixes
fixes #4956 and something that was only fixed on master
2023-09-06 21:33:00 +02:00
Gouvernathor ab3f1242d7 Merge branch 'fix' 2023-09-06 11:21:04 +02:00
Gouvernathor 8df82cbac0 doc: fixes and improvements on the midnight commit 2023-09-06 11:20:34 +02:00
Gouvernathor 13c557b5a2 doc: remove duplication 2023-09-06 10:57:11 +02:00
Ren'Py Bot 44e32ddffb Merge branch 'fix' 2023-09-06 04:30:56 -04:00
Tom Rothamel 852b489529 Bump versions. 2023-09-06 00:46:03 -04:00
Tom Rothamel 3ff08b9c03 Produce a valid-ish version for pygame_sdl2. 2023-09-06 00:46:03 -04:00
Tom Rothamel 67c2469d37 doc: Changelog. 2023-09-06 00:46:03 -04:00
Tom Rothamel 60745892c1 Bump versions. 2023-09-06 00:44:45 -04:00
Tom Rothamel d511804be3 Produce a valid-ish version for pygame_sdl2. 2023-09-05 22:06:47 -04:00
Tom Rothamel 487c60da2d doc: Changelog. 2023-09-05 21:13:50 -04:00
Ren'Py Bot 96c63ea9e2 Merge branch 'fix' 2023-09-05 04:30:56 -04:00
Tom Rothamel 2eca653f47 doc: Credits. 2023-09-05 01:39:02 -04:00
Tom Rothamel 6f8378f5b4 doc: Update sponsors. 2023-09-04 20:35:16 -04:00
Ren'Py Bot 232eda7c98 Merge branch 'fix' 2023-09-03 20:24:29 -04:00
Tom Rothamel b6fc8496f4 doc: Some changes to the context documentation. 2023-09-03 19:40:17 -04:00
Tom Rothamel 8a2634b206 Merge pull request #4896 from renpy/doc-context
Document what a context is
2023-09-03 19:36:04 -04:00
Tom Rothamel 3521d54e0a Call invalidate when adding one displayable to another.
Per #4939.
2023-09-03 19:34:16 -04:00
Ren'Py Bot 6c1f1c8138 Merge branch 'fix' 2023-09-02 18:08:22 -04:00
Tom Rothamel 24c0616158 py2: Fix the type of __package__. 2023-09-02 18:07:56 -04:00
Ren'Py Bot 1102904380 Merge branch 'fix' 2023-09-02 04:30:37 -04:00
Tom Rothamel 2d690bd7cb Implement more of PEP 302.
Fixes #4948. Per #4644.
2023-09-01 23:37:34 -04:00
Tom Rothamel 3ec2ad0a7b Make __file__ and __path__ full paths.
Per #4948.
2023-09-01 22:43:24 -04:00
Ren'Py Bot d3d33f31bb Merge branch 'fix' 2023-08-31 19:10:28 -04:00
Tom Rothamel 78dfdd024b Fix debug output-related crash introduced by 991fbf107a. 2023-08-31 18:30:12 -04:00
Ren'Py Bot 517e12d3e5 Merge branch 'fix' 2023-08-31 04:30:38 -04:00
the66F95 1b26542f0c Update 00inputvalues.rpy
restores the previous behavior to be able to deactivate InputValue objects via "Enter".
for example, the current behavior can be seen in any project using the button that wraps the FilePageNameInputValue object.
2023-08-31 00:43:51 -04:00
Tom Rothamel 29e84de69c Merge pull request #4946 from the66F95/_InputValueAction
Update 00inputvalues.rpy
2023-08-31 00:41:17 -04:00
Tom Rothamel 991fbf107a distribute: Match directories as both files and directories.
The goal is to allow **.app to be ignored on mac.

Fixes #4945.
2023-08-31 00:14:58 -04:00
Tom Rothamel 041a4c4d07 Respect the parameter to GamepadExists. 2023-08-30 21:55:50 -04:00
the66F95 e8de3df9c4 Update 00inputvalues.rpy
restores the previous behavior to be able to deactivate InputValue objects via "Enter".
for example, the current behavior can be seen in any project using the button that wraps the FilePageNameInputValue object.
2023-08-31 02:00:25 +02:00
Ren'Py Bot f0ba1ac5a1 Merge branch 'fix' 2023-08-30 04:30:38 -04:00
Tom Rothamel 6931b5f06d Make GamepadExists respect config.developer.
Fixes #4940.
2023-08-30 00:35:47 -04:00
Tom Rothamel 2850cea6c0 vscode: Add styles. 2023-08-29 22:58:24 -04:00
Tom Rothamel e364ca4173 Find variables before wrapping a comprehension.
If we do it in the other order, variables that are wrapped
show up as set, which means they won't be wrapped in an outer
comprehension, causing problems.

Fixes #4943.
2023-08-29 22:58:24 -04:00
Gouvernathor c6cc1dc5f6 Fix translation typo 2023-08-29 23:02:52 +02:00
Ren'Py Bot 12dbf12f44 Merge branch 'fix' 2023-08-29 04:30:37 -04:00
Tom Rothamel 9c7b8a6398 Fix issues with ATL deep compare.
* The blocks weren't compiled before compare.
* Dicts weren't handled.
* Errors weren't handled.

Fixes #4942.
2023-08-29 01:17:49 -04:00
Ren'Py Bot 18d3f48686 Merge branch 'fix' 2023-08-28 04:30:38 -04:00
Tom Rothamel 78c71f0a0f Do not change the style prefix of a viewport and it's children.
... when the viewport is focused or unfocused. The viewport being
focused occurs during drag operations, which should generally
be invisible to the user, so it's not required.

Re-rendering the children of the viewport is also a performance
problem, and so this prevents that from happening.

Fixes #4838.
2023-08-28 01:03:25 -04:00
Ren'Py Bot 86d0e1e275 Merge branch 'fix' 2023-08-27 04:30:37 -04:00
Tom Rothamel 935173fcf5 Create pax-format tar files.
These files support utf-8, so more files.
2023-08-27 00:34:46 -04:00
Tom Rothamel 05e72cbe27 Perform a greedy rollback after load.
This is the same rollback that is used during a normal rollback,
and re-runs statements before the rollback.

Fixes #4872.
2023-08-26 23:51:05 -04:00
Tom Rothamel 3dd1d32ef4 hbfont: Eliminate type mixing.
And remove a warning on build.
2023-08-26 01:14:29 -04:00
Tom Rothamel 73725e2131 The new CopyToClipboard action copies text to the clipboard.
Fixes #4868.
2023-08-25 21:59:31 -04:00
Ren'Py Bot c29b180647 Merge branch 'fix' 2023-08-25 04:30:38 -04:00
Tom Rothamel 65e2d27efb doc: The most common use of renpy.set_return_stack.
Fixes #4909.
2023-08-24 21:21:17 -04:00
Tichq 7045295eee fix: missed changes in beceb10166 (#4931) 2023-08-24 10:33:22 +02:00
Ren'Py Bot 3d1ab26448 Merge branch 'fix' 2023-08-23 04:30:37 -04:00
the66F95 eeb6958174 respect "renpy.store.__autosave"
respect the renpy.store._autosave value when calling renpy.loadsave.force_autosave() directly.
could be annoying if you have a choice menu in a splashscreen for instance.
2023-08-22 22:24:31 -04:00
Tom Rothamel 80e2d1d3a9 Merge branch 'fix' 2023-08-22 22:18:21 -04:00
Tom Rothamel 2ccdb65cc5 Merge pull request #4927 from the66F95/autosave
respect "renpy.store._autosave"
2023-08-22 21:03:30 -04:00
the66F95 6135979a7c respect "renpy.store.__autosave"
respect the renpy.store._autosave value when calling renpy.loadsave.force_autosave() directly.
could be annoying if you have a choice menu in a splashscreen for instance.
2023-08-22 12:03:03 +02:00
Tom Rothamel 0a01a4af64 Allow an interaction to restart during viewport animation.
Fixes #4926, mostly.
2023-08-21 23:14:41 -04:00
Joseph Boyd 0afd06dd49 Revert removal of loop_only to fix if_changed loop seam issue
Fixes #4872 by restoring the `loop_only` parameter of `enqueue()` in audio.py.

After commit `b0b096b`, calling `play` on a music track with the `if_changed` parameter would *always* add it to the queue, even if the same track was already currently playing on loop. This newly queued 'loop' would always begin at the very start of the track, **ignoring any user-defined `loop` point parameters** that were added by the user to allow the track to seamlessly loop. This caused the looping track to abruptly 'restart' the next time it would normally loop whenever a player visited a label that wanted that track to play if it wasn't already looping (for example, the 'market' example in Ren'Py's audio documentation page for `if_changed`).

This change restores the `loop_only` parameter and functionality to `enqueue()` and `play()` to avoid a track from being added to the queue and potentially abruptly restarting the track if it is currently already playing on loop. To attempt to preserve the fix the change `b0b096b` accomplished for #4695, the position/logic of the `c.dequeue()` calls in `music.play()` has not been reverted to it's previous behaviour.

Documentation wise, the Audio documentation page mentions that `if_changed` queues 'an additional loop' of the currently playing track when this situation is reached, which is only an accurate description if the currently looping track does not have a user defined `loop` point (or if the loop point was 0.0). A more accurate description is that the track is queued to play again from the very beginning after the current loop is complete, discarding any user-defined `loop` points. The issue mentioned above is reproduceable using the code present in the `if_changed` section of the audio page, provided the 'market' track has a non-zero `loop` parameter.
2023-08-20 22:28:21 -04:00
Tom Rothamel 9c5b8f5ba4 Merge pull request #4914 from mithost/4872-fix
Revert removal of `loop_only` to fix `if_changed` loop seam issue
2023-08-20 22:27:14 -04:00
Tom Rothamel ec6a8f8e1a Change the example of a third-party python package.
To one that isn't already part of Ren'Py.

Fixes #4899.
2023-08-20 16:58:06 -04:00
Mal Graty 880b47cadf Implement AlphaMask using shader 2023-08-20 02:49:33 +01:00
Tom Rothamel 99090ed87a Filter PYTHON* variables when launching a project.
While renpy.exe is set up to ignore the variables, renpython isn't.
By filtering them, we can be sure that system python variables
don't break the SDK.

Fixes #4878.
2023-08-19 21:21:14 -04:00
Tom Rothamel 3793a3f9ba Filter PYTHON* variables when launching a project.
While renpy.exe is set up to ignore the variables, renpython isn't.
By filtering them, we can be sure that system python variables
don't break the SDK.

Fixes #4878.
2023-08-19 21:18:53 -04:00
Tom Rothamel 5b88d6fb32 Merge pull request #4893 from renpy/selected-sensitive-list
Sensitiveness and selectedness of action lists
2023-08-18 21:11:14 -04:00
Tom Rothamel b3beae8ab5 Merge pull request #4875 from kyouryuukunn/revert_order_of_xyzrotate_and_zpos
revert the applyment order of poi,orientation,xyzrotate and zpos
2023-08-18 21:10:53 -04:00
Tom Rothamel c8d451838b Store runtime and ctime in the json.
Fixes #4873.
2023-08-18 00:39:38 -04:00
Michael 678ac18b5f OneDrive uses virtualized file system (vault) so
we use __file__ to get the real path of the file.
2023-08-18 00:13:03 -04:00
Tom Rothamel 5cc6b34f56 Merge pull request #4891 from michaelsstuff/reny_base_fix
Edgecase with OneDrive vault
2023-08-18 00:12:27 -04:00
Tom Rothamel 4606bcce76 Merge pull request #4900 from renpy/fix-args-calls
Fix occurrences of *args following a kwarg in calls
2023-08-18 00:11:35 -04:00
Tom Rothamel d3595146b0 Merge pull request #4904 from renpy/doc-atl
Various changes to the ATL page
2023-08-18 00:10:32 -04:00
Tom Rothamel 20ecec1412 Merge pull request #4902 from shawna-p/lint-fix2
Use the say_menu_text_filter when linting
2023-08-18 00:09:18 -04:00
Tom Rothamel ebeed588fa Merge pull request #4876 from renpy/call-word
Parse argument keywords as words instead of names
2023-08-18 00:08:50 -04:00
Tom Rothamel ef08ad74b3 harfbuzz: Use advance as width.
The advance is pretty close to to glyph width, and with the
advance at the end of ruby, means ruby will be centered
properly.

Fixes #4917.
2023-08-17 21:41:35 -04:00
Ren'Py Bot 0b47bc2eea Merge branch 'fix' 2023-08-17 04:30:37 -04:00
Tom Rothamel b2a49cc60e atl: Remove variables_equal and everything required for it. 2023-08-16 23:24:45 -04:00
Tom Rothamel 468733bd75 Use deep comparison of compiled trees to determine if an ATL transform has changed.
This might be more work, but it also should be correct in all cases.

Fixes #4916.
2023-08-16 22:24:25 -04:00
Ren'Py Bot 37d216097d Merge branch 'fix' 2023-08-16 04:30:38 -04:00
Tom Rothamel a1bcd63ba9 Make _side_image_attribute and _side_image_attributes_reset context-dynamic.
This prevents a reset from happening in a menu context, and then
causing the reset to not happen in the main context, thus causing
the image to be shown at the wrong times.

Fixes #4828.
2023-08-15 22:56:32 -04:00
Tom Rothamel 16c2455370 Make _side_image_attribute and _side_image_attributes_reset context-dynamic.
This prevents a reset from happening in a menu context, and then
causing the reset to not happen in the main context, thus causing
the image to be shown at the wrong times.

Fixes #4828.
2023-08-15 22:50:16 -04:00
Joseph Boyd d30d986a51 Revert removal of loop_only to fix if_changed loop seam issue
Fixes #4872 by restoring the `loop_only` parameter of `enqueue()` in audio.py.

After commit `b0b096b`, calling `play` on a music track with the `if_changed` parameter would *always* add it to the queue, even if the same track was already currently playing on loop. This newly queued 'loop' would always begin at the very start of the track, **ignoring any user-defined `loop` point parameters** that were added by the user to allow the track to seamlessly loop. This caused the looping track to abruptly 'restart' the next time it would normally loop whenever a player visited a label that wanted that track to play if it wasn't already looping (for example, the 'market' example in Ren'Py's audio documentation page for `if_changed`).

This change restores the `loop_only` parameter and functionality to `enqueue()` and `play()` to avoid a track from being added to the queue and potentially abruptly restarting the track if it is currently already playing on loop. To attempt to preserve the fix the change `b0b096b` accomplished for #4695, the position/logic of the `c.dequeue()` calls in `music.play()` has not been reverted to it's previous behaviour.

Documentation wise, the Audio documentation page mentions that `if_changed` queues 'an additional loop' of the currently playing track when this situation is reached, which is only an accurate description if the currently looping track does not have a user defined `loop` point (or if the loop point was 0.0). A more accurate description is that the track is queued to play again from the very beginning after the current loop is complete, discarding any user-defined `loop` points. The issue mentioned above is reproduceable using the code present in the `if_changed` section of the audio page, provided the 'market' track has a non-zero `loop` parameter.
2023-08-15 12:40:45 -04:00
Tom Rothamel b5288343fc Merge branch 'fix' 2023-08-15 00:30:45 -04:00
Tom Rothamel 371b3e15fc Fix compat. 2023-08-15 00:30:04 -04:00
Tom Rothamel 589a510c33 Merge branch 'fix' 2023-08-15 00:28:56 -04:00
Tom Rothamel 85648df290 Merge the glyph changes from master to fix.
This should keep binary compatibilty when change branches.
2023-08-15 00:08:13 -04:00
Tom Rothamel 936363d243 tts: Help ensure notifications are spoken to the player.
At least, in the case where the user lets them play out, rather
than switching away.
2023-08-14 22:45:16 -04:00
Tom Rothamel 05075beed5 Tweak the order of tts so layers and screens closer to the player are spoken first. 2023-08-14 22:42:37 -04:00
Tom Rothamel b729eaed7d harfbuzz: Support computing text bounds. 2023-08-13 19:39:12 -04:00
Tom Rothamel d06bcd0dd2 harfbuzz: Supply slant information. 2023-08-12 22:34:18 -04:00
Tom Rothamel 2e34102cf5 doc: The emoji and harfbuzz changes. 2023-08-11 22:32:07 -04:00
Ren'Py Bot 3018c21828 Merge branch 'fix' 2023-08-11 04:30:38 -04:00
Tom Rothamel 457d0c6cce Remove useless line.
Fixes #4905.
2023-08-11 01:51:02 -04:00
Asriel Senna c9573e3737 doc: mention call screen as working differently wrt with 2023-08-10 22:20:05 +02:00
Gouvernathor a11a7bb2ee Various changes to the ATL page 2023-08-10 21:32:44 +02:00
Tom Rothamel e1b37142c2 harfbuzz: Enable by default on py3.
Also, enable bytecode hinting everywhere.
2023-08-10 00:54:11 -04:00
Tom Rothamel 32923dd8f8 harfbuzz: Add support for vertical text. 2023-08-09 23:48:12 -04:00
shawna-p e4bef44f2c Filter text for the lint check 2023-08-09 22:49:58 -04:00
Gouvernathor 8a151ed1b4 Fix occurrences of *args following a kwarg in calls 2023-08-09 23:18:48 +02:00
Gouvernathor 2141c0bbc9 Use the file role 2023-08-09 08:43:33 +02:00
Tom Rothamel 54b4406974 Support building without harfbuzz on Ren'Py 7 web. 2023-08-08 22:45:16 -04: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
Tom Rothamel 4b3561d821 harfbuzz: Build by default. 2023-08-07 23:32:22 -04:00
Ren'Py Bot fb197d90b9 Merge branch 'fix' 2023-08-07 04:30:37 -04:00
Tom Rothamel d32f5b10f5 Fix alpha premultiplication in text.
Fixes #4880.
2023-08-07 01:12:42 -04:00
Asriel Senna 446e4609a9 doc: changes
document how pop_call behaves wrt dynamic variables
linkify a variable
better explain the name_only character
2023-08-07 01:33:29 +02:00
Asriel Senna 1f9a4df252 Document what a context is 2023-08-07 01:18:21 +02:00
Gouvernathor 08eb08562f Change the documented signatures 2023-08-05 10:58:50 +02:00
Ren'Py Bot 8d3401f2ac Merge branch 'fix' 2023-08-05 04:30:37 -04:00
Gouvernathor 3370a07f18 doc: sensitiveness and selectedness of action lists 2023-08-04 22:22:08 +02:00
Gouvernathor c164c1af40 doc: fix markup and tweak phrasing 2023-08-04 17:45:50 +02:00
Michael df26c03087 OneDrive uses virtualized file system (vault) so
we use __file__ to get the real path of the file.
2023-08-04 13:18:20 +02:00
Gouvernathor db8a6f9f13 Fixes to the changelog
Duplicate entries and typos
2023-08-04 09:03:31 +02:00
Tom Rothamel 25986373d1 Merge branch 'fix' 2023-08-03 08:11:51 -04:00
Gouvernathor f067652a3b Fix store.say's documentation (#4883)
It was documented as an override of renpy.say, and while that would be useful, it's not at all what the function does
2023-08-03 08:11:20 -04:00
Tom Rothamel 122dbf2619 Remove duplicate say-related functions from 00library.
Inspired by #4883.
2023-08-03 08:08:52 -04:00
Tom Rothamel 547bef2483 Merge branch 'fix' 2023-08-01 22:23:28 -04:00
Tom Rothamel efe6609085 doc: Fix filename extension.
Fixes #4884
2023-08-01 22:22:47 -04:00
Tom Rothamel 1d43fb11dd vscode: Correct arch on Linux.
Microsoft calls it x64, not x86_64, so use that.
2023-08-01 22:01:50 -04:00
Tom Rothamel ff177d0dae harfbuzz: Allow the text shaper to be set by style.
This allows harfbuzz and non-harfbuzz text to coexist in the same
game, which is useful for testing during development. It will also
provide backwards compatibility when we change the default.
2023-08-01 22:01:15 -04:00
Moshibit 1dd5ba512c Spanish translation update for master (#4885)
This is specifically for strings added in master, it should not be copied into fix (it would work but it's pointless)
2023-08-02 03:49:20 +02:00
Tom Rothamel 3906f99ebc harfbuzz: Move to one hb_font_t per FBFont, size.
This generates sized and kerned text.
2023-07-31 22:06:19 -04:00
Tom Rothamel f89c672c13 iap: Call the backend request_review. 2023-07-30 21:07:04 -04:00
Tom Rothamel 80ea555ad6 harfbuzz: Use for glyph creation and rendering.
This is enough to generate shaped emjoi, but the text placement and
spacing is all wonky, so there's still a bunch of work to be done.
2023-07-30 19:53:21 -04:00
Tom Rothamel af7a0baa2e vscode: Correct arch on Linux.
Microsoft calls it x64, not x86_64, so use that.
2023-07-30 19:52:44 -04:00
Gouvernathor 3fa7da1384 Parse argument keywords as words instead of names 2023-07-29 17:44:01 +02:00
kyouryuukunn 014de8a873 revert the applyment order of poi,orientation,xyzrotate and zpos 2023-07-29 18:45:58 +09:00
Moshibit 89cfd03516 Spanish translation update (#4856)
* Update launcher.rpy

* Fix Spansih translation.rpy

* Update common.rpy

* Update gui.rpy

* Update launcher.rpy

* Update launcher.rpy
2023-07-26 22:31:06 -04:00
Tom Rothamel 0b937fdea6 hb: Add ability to create a font and use it to shape text. 2023-07-26 01:37:42 -04:00
Tom Rothamel 802652d579 py2: Add an encoding for the emoji trie. 2023-07-25 11:10:11 -04:00
Tom Rothamel bcd4fd4d2c harfbuzz: New font rendering module.
This will support harfbuzz, eventually. It will not support Python 2.
2023-07-25 02:06:37 -04:00
Tom Rothamel 21016cca6c Merge pull request #4863 from JamiesonC/JamiesonC-musicroom-1
MusicRoom: have queue_if_playing consider whether the currently playing track is in the playlist
2023-07-25 00:07:06 -04:00
Ren'Py Bot 1921e7c985 Merge branch 'fix' 2023-07-24 04:30:37 -04:00
Tom Rothamel 6be8d94372 Make sure each trie entry has a default. 2023-07-24 01:05:00 -04:00
Tom Rothamel 84c22334fe Merge pull request #4861 from mal/restore-lost-event-values
Restore return values from time-adjusted widgets
2023-07-23 20:46:06 -04:00
Tom Rothamel 9f286afbbb Merge pull request #4862 from brainos233/fix-emoji-font-name
Use right name of emoji font
2023-07-23 20:45:30 -04:00
Tom Rothamel e32cd6c124 Merge pull request #4866 from mal/devtools-translate-id-screen
Tool to view and copy translation identifiers
2023-07-23 20:44:32 -04:00
Mal Graty f523069468 dev: Tool to view and copy translation identifiers 2023-07-24 01:07:10 +01:00
Tom Rothamel 674d5d87dd emoji: Automatically enable the emoji font.
This divides characters into emjoi and non-emoji runs based on
the information in the emoji trie, based on the unicode standard.
2023-07-23 02:13:41 -04:00
Tom Rothamel 12b37de529 emoji: Make the emoji trie use full characters. 2023-07-22 23:19:33 -04:00
JamiesonC 562ce9734a MusicRoom: have queue_if_playing consider whether the currently playing track is in the playlist
This change ensures that a MusicRoom queues up from the first track if the currently playing track is not part of the playlist. Enables the interjection of the MusicRoom into more complex scenarios (such as hotswapping MusicRooms to effect dynamic playlist changes).
2023-07-22 13:02:31 -05:00
Brainos 148a14f939 Rename Copyright 2023-07-22 23:38:18 +08:00
Brainos fe2ad45dc0 Use right name of emoji font 2023-07-22 23:25:20 +08:00
Mal Graty 12330dead6 Restore return values from time-adjusted widgets 2023-07-22 11:45:53 +01:00
Tom Rothamel 17fb5397c8 emoji: Check the default font, create style entries. 2023-07-21 23:20:09 -04:00
Tom Rothamel 8398c3081e emoji: Add a trie of emoji characters.
The intent of this is to provide the data required to segment a
string into emoji and non-emoji characters, with varying levels
of strictness.
2023-07-21 01:44:35 -04:00
Tom Rothamel 71e8bae6d2 doc: Changelog last. 2023-07-20 22:06:17 -04:00
Gouvernathor d312de84a4 Add the renpy.confirm function. (#4583)
This is a function that takes the place of layout.yesno_screen, but isn't quite as weird.
2023-07-20 21:51:16 -04:00
Ren'Py Bot c3d1c2cee7 Merge branch 'fix' 2023-07-20 04:30:37 -04:00
Gouvernathor 0dd3895b47 doc: long-due update from set_volume to set_mixer
following the passage to log volume or something
2023-07-20 07:25:22 +02:00
Gouvernathor 8230e4186d doc: tweak the confirm screen entry
add the two new strings - the confirm_token one is long and should be used for tests by creators - but be careful if others are added in the future
layout of the list has been tested
2023-07-20 06:17:16 +02:00
Gouvernathor 8e4e8b0e23 doc: tweaks to the Replay section
rename scene to sequence because scene is something else in renpy
don't imply that the game menu or the main menu are the only places from which you can call a replay
fix indenting in the code block, and remove the padding at the start
mistake in a function's documentation
some other stuff
2023-07-20 05:48:21 +02:00
Tom Rothamel 49eab5ffa9 Fix pickling issue.
Python 2 had a weird type for staticmethods, one that
couldn't be pickled. So we wrap compute_raw on Python 2.
2023-07-19 02:22:14 -04:00
Tom Rothamel 8a7fcd95ce Fix incorrect property. 2023-07-19 02:21:59 -04:00
Tom Rothamel d1ad17256b Prefix Ren'Py Sync styles with "sync".
Fixes #4847.
2023-07-18 23:22:12 -04:00
Tom Rothamel 4035fc9621 launcher: Detect and abort distributing the tutorial.
The tutrorial expects to be part of Ren'Py - the example system
may not work if it's being run outside of Ren'Py. This detects
attempts to distribute the tutorial on its own, and aborts the
process.
2023-07-18 23:17:46 -04:00
Tom Rothamel 3dab93666d Add from to calls for the Ren'Py tutorial. 2023-07-18 23:15:25 -04:00
Tom Rothamel ff64ab49f1 Allow loading premultiplied textures.
This is to support the changes to text that produced premultiplied
surfaces, rather than non-premultiplied surfaces. This was necessary
to display emoji properly, and also speeds up the case of normal
text rendering, at least on gl2.

This also removes some old paths that worked with GL_BGRA, which
we aren't using.
2023-07-18 01:25:52 -04:00
Tom Rothamel 15657da6dc Generate premultiplied alpha when rendering text.
This will allow us to skip the alpha premultiply step.
2023-07-17 23:32:59 -04:00
Tom Rothamel 872d4694db emoji: Add support for displaying BGRA glyphs. 2023-07-17 22:39:47 -04:00
Gouvernathor 25270211c1 Enable _layer for menu and config.nvl_choice_layer 2023-07-17 17:18:34 +02:00
Tom Rothamel 617c7e5367 emoji: Expose the BRGA data to the rest of the font system. 2023-07-16 21:42:20 -04:00
Tom Rothamel e1aff07997 Merge pull request #4844 from renpy/absolute-compute
Absolute compute
2023-07-15 20:46:59 -04:00
Gouvernathor 02e365584e doc: move last to dedicated doc section 2023-07-15 05:45:24 +02:00
Tom Rothamel ec8104ae6b Add renpy.reset_all_contexts().
This replaces all contexts with a single context that continues at
the next statement, to allow a game to clean up after load and
error.

Fixes #4476.
2023-07-14 23:36:41 -04:00
Ren'Py Bot df114f794e Merge branch 'fix' 2023-07-14 04:30:37 -04:00
Abdul 7a801523e4 Fixed Typo in dialogue.rst
Fixed minor typo in dialogue.rst
2023-07-13 23:08:16 -04:00
Tom Rothamel 3a897f0fee Merge pull request #4837 from AbdulGoodLooks/patch-1
Fixed Typo in dialogue.rst
2023-07-13 23:07:06 -04:00
Tom Rothamel a5343eb0fa Merge pull request #4843 from renpy/absolute-slots
Fix absolute.slots to __slots__
2023-07-13 18:26:58 -04:00
Gouvernathor beceb10166 Use conpute_raw uniformly 2023-07-13 22:13:26 +02:00
Gouvernathor c687c175fe Add absolute.compute and absolute.compute_raw 2023-07-13 19:27:24 +02:00
Gouvernathor 1032b4f990 Fix slots to __slots__
Mistake done in 690f249 and not seen by me in #4680.
I tested a save-load cycle on an instance of absolute before and after this very fix, it passed without problem. But if someone added arbitrary attributes on an absolute instance, that will now fail.
2023-07-13 19:15:06 +02:00
Tom Rothamel e4bed1cbc2 Remove the androidhw and ioshw video playback methods, and config.hw_video.
These haven't been the default for many years and the players haven't
gottem any attention in that time. Removing them will simplify
the surface that needs to be maintained.
2023-07-12 23:37:13 -04:00
Gouvernathor bdcd6191bd Support position (absolute) everywhere (#4709)
This makes most places that support positions support absolute.
2023-07-12 21:30:22 -04:00
Tom Rothamel deadc4a466 Document that angle/anchorangle are clamped now. 2023-07-12 09:20:35 -04:00
Abdul 505303f51a Fixed Typo in dialogue.rst
Fixed minor typo in dialogue.rst
2023-07-12 14:08:22 +01:00
Tom Rothamel 0f84d898f2 Merge branch 'fix' 2023-07-11 23:28:33 -04:00
Tom Rothamel 6041da97c5 atl: Actually animate anchorangle.
A temporary fix until the better one in 8.2 comes in.
2023-07-11 23:10:25 -04:00
Tom Rothamel cb80aea906 transform: Clamp polar coordinates to 0 <= angle < 360.
This ensures that the angle computed by Ren'Py from cartesian
coordinates and the angle stored in last_angle are always in
the same range, rather than having potentially odd interactions.

The main use of a polar coordinate outside of the range would be-
to provide a movement through 0 (for example, moving from 350 to 370
degrees), this is now directly supported.

Fixes #4835.
2023-07-11 23:00:49 -04:00
Ren'Py Bot 850ad647cc Merge branch 'fix' 2023-07-11 04:30:37 -04:00
Tom Rothamel c02ccf8dcd Multiple fixes to choosing a directory.
Fix an issue where the default wasn't being set, and also deal
better with the user cancelling.

Fixes #3826.
2023-07-10 21:16:12 -04:00
Gouvernathor 49896ba938 doc: Disable python highlighting for math formula 2023-07-10 22:15:24 +02:00
Tom Rothamel bdec32fa5b Merge branch 'fix' 2023-07-10 01:31:51 -04:00
Tom Rothamel be36f99d4c Fix last fix. 2023-07-10 01:31:26 -04:00
Tom Rothamel c007c85490 Fix tiled frames.
Fixes a major regression in the last commit (broke the launcher).
2023-07-09 18:27:43 -04:00
Ren'Py Bot b349ab06fd Merge branch 'fix' 2023-07-09 04:30:37 -04:00
Tom Rothamel a33009b382 Ensure frames are at least one drawable pixel in size.
The same logic applies to frames as to the last commit.
2023-07-08 14:44:21 -04:00
Tom Rothamel c50c6bb23d Prevent solids from being shrunken to below one pixel.
Fixes #4824.

The justification here is that if the creator shows a solid, they
want something, not nothing shown, so we want to show at least 1px
in each direction.
2023-07-08 14:24:55 -04:00
Tom Rothamel 60ade3ae19 Enable all stores in android.json, to test the build. 2023-07-08 13:58:54 -04:00
Tom Rothamel 09d119b2d4 Add bubble.properties_callback.
This makes it possible to limit the bubble properties based
on the character that is speaking.
2023-07-05 23:20:36 -04:00
Tom Rothamel 4588c15333 Merge pull request #4823 from qTich/feature/path-to-logdir
add: `path_to_logdir`
2023-07-05 21:50:23 -04:00
Tichq b9c5317556 add: path_to_logdir 2023-07-06 01:53:03 +03:00
Ren'Py Bot e051e1a120 Merge branch 'fix' 2023-07-05 04:30:37 -04:00
Tom Rothamel ef84c65ce5 Merge pull request #4821 from renpy/layim-auto-multiple-tweak
doc: readd information that went missing during the rewrite
2023-07-04 23:32:30 -04:00
Gouvernathor d3fe5cd6bb doc: readd information that went missing during the rewrite 2023-07-05 05:12:15 +02:00
Tom Rothamel 5073076bb5 Merge branch 'fix' 2023-07-04 20:58:04 -04:00
Tom Rothamel c0248b5af0 Avoid deleting .rpyc files corresponding to _ren.py files that exist.
Fixes #4815/
2023-07-04 20:55:01 -04:00
Abdul 0e4fca9c2f Update screens.rst
Fixed minor typo
2023-07-04 20:20:52 -04:00
Tom Rothamel f35e340c16 Merge pull request #4809 from renpy/last_say-tweaks
Tweaks to renpy.last_say
2023-07-04 19:13:42 -04:00
Tom Rothamel b4dc241e08 Merge pull request #4820 from renpy/layeredimage.predict_all
Update layeredimage.predict_all to None
2023-07-04 19:11:58 -04:00
Tom Rothamel d1c1c0f1ff Merge pull request #4818 from AbdulGoodLooks/patch-1
Fixed typo in documentation
2023-07-04 19:11:36 -04:00
Gouvernathor f45b13a101 Update layeredimage.predict_all to None 2023-07-04 18:07:58 +02:00
Abdul 3d26079aff Update screens.rst
Fixed minor typo
2023-07-04 14:53:51 +01:00
Tom Rothamel 4f152e93ab Move Displayable into its own module (renpy.display.displayable).
Mostly to make the file easier to manage as work begins on
clone.
2023-07-03 19:35:11 -04:00
Tom Rothamel 5fd0d17e0b Merge pull request #4813 from renpy/update-operators-list
Update the list of operators in the lexer
2023-07-03 17:56:42 -04:00
Gouvernathor 0dd9c81e8c Update the list of operators 2023-07-03 18:39:51 +02:00
Gouvernathor fcaa02f21a doc: Advise using ATL transitions to customize the punches 2023-07-03 17:09:20 +02:00
Tom Rothamel b3a0c8f47c Fix typo. 2023-07-03 10:30:16 -04:00
Tom Rothamel ca8977ae7c Document the Ren'Py updater doesn't support mac apps.
Fixes #4803.
2023-07-03 10:30:16 -04:00
Gouvernathor 045932fed6 Copy the warning to similar functions 2023-07-03 04:16:49 +02:00
Gouvernathor 4c1570fdae Tweak renpy.last_say and its doc
The character is evaluated at each query, so that if the LastSay object is saved, it will point to an up-to-date Character object
2023-07-03 04:16:31 +02:00
Tom Rothamel c7c499c6c8 Merge pull request #4745 from mal/multipart-translations
Detect multipart strings marked for translation
2023-07-02 21:47:04 -04:00
Mal Graty 7459dea76c Detect multipart strings marked for translation 2023-07-03 02:35:45 +01:00
Tom Rothamel 0f30d74045 Merge pull request #4808 from mal/fix-pause-roll-forward
Allow control exceptions as pause roll forward
2023-07-02 21:07:43 -04:00
Mal Graty 1c9cff6be3 Allow control exceptions as pause roll forward 2023-07-02 18:22:35 +01:00
Tom Rothamel 2880e63082 doc: Link and changeloy renpy.last_say. 2023-07-02 00:13:58 -04:00
Tom Rothamel 55d16830c9 iap: Add support for reviewing on the Apple App Store. 2023-07-02 00:06:45 -04:00
Tom Rothamel 5422467e02 iap: Add support for requesting a review on Google Play. 2023-07-01 23:18:37 -04:00
Gouvernathor 9189178a5f doc: fix attributes listing 2023-07-02 04:07:03 +02:00
Lezalith 494bb54620 Add renpy.last_say function. (#4749)
This is a function that returns information about the last dialogue line.
2023-07-01 22:03:56 -04:00
Gouvernathor d0e925156b Enable jump/call expression to local labels (#4797)
* Enable jump/call expression to local labels

* Use a separate slot to store the local global label

* Document passing .local_label, and changelog
2023-07-01 21:59:44 -04:00
Moshibit 7a96e8ad82 Spanish translation update (#4805)
* Update launcher.rpy

* Fix Spansih translation.rpy

* Update common.rpy

* Update gui.rpy

* Update launcher.rpy
2023-07-01 10:17:02 -04:00
Tom Rothamel 4d0d262a76 Report deferred errors in load_script.
Fixes #4798.
2023-07-01 01:21:19 -04:00
Tom Rothamel 3dad9048f0 Document the Ren'Py updater doesn't support mac apps.
Fixes #4803.
2023-06-30 22:33:54 -04: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
Tom Rothamel 10ecb3f05b doc: Remove a warning about macOS 10.9.
Which is no longer supported.
2023-06-29 23:30:33 -04:00
Tom Rothamel 648f2835ac doc: Remove a warning about macOS 10.9.
Which is no longer supported.
2023-06-29 23:30:05 -04:00
Tom Rothamel 23adb33f71 Merge pull request #4794 from renpy/doc-screen-properties
Add the screen property directive
2023-06-29 21:27:37 -04:00
Tom Rothamel d62b8b8dfc Merge pull request #4777 from renpy/itch_channels
Convert build.itch_channels to a true dict
2023-06-29 21:09:04 -04:00
Tom Rothamel 5e03d9eb29 Merge pull request #4778 from mal/fix-drag-drop-db0
Prevent rare divide by zero in drag/drop
2023-06-29 21:08:36 -04:00
Gouvernathor eef91dcda8 doc typo
what f976f31 was meant to do
2023-06-30 02:30:21 +02:00
Gouvernathor 29324f6092 Add the screen property directive 2023-06-30 02:08:11 +02:00
Gouvernathor b224df24dc doc: fix bullet point list 2023-06-30 01:50:15 +02:00
Gouvernathor 446a1d74e7 doc: follow-up last 2023-06-30 01:47:56 +02:00
Gouvernathor 5b7bd98219 doc: fix missing ref 2023-06-30 01:45:05 +02:00
Gouvernathor c42b975be3 doc: use the tt reference role and avoid wasting a label 2023-06-30 01:42:18 +02:00
Tom Rothamel 9207334808 Report empty ATL blocks as an error.
Fixes #4792. Deferring to a major release because it's a very
unlikely issue, and may require script changes.
2023-06-28 21:38:44 -04:00
Gouvernathor f976f31e7a doc typo 2023-06-28 23:27:35 +02:00
Gouvernathor 3017331aa9 doc: spacing in an example 2023-06-28 23:14:54 +02:00
Gouvernathor 3601c782f9 Merge branch 'master' into rpy-python 2023-06-28 14:37:08 +02:00
Ren'Py Bot 34d4eb57a4 Merge branch 'fix' 2023-06-28 04:30:37 -04:00
Tom Rothamel c7d7cc23b1 doc: Changelog last. 2023-06-27 23:21:38 -04:00
Tom Rothamel a65cecfc18 Enable or disable text input as required.
This prevents the input method from always being active, to consume
and consuming keyboard bindings.

Fixes #4784.
2023-06-27 22:47:51 -04:00
Ren'Py Bot e8323f4cad Merge branch 'fix' 2023-06-27 01:08:00 -04:00
Tom Rothamel 4284d45069 Better error handling when cancelling directory selecton.
Fixes #4779.
2023-06-27 01:07:55 -04:00
Tom Rothamel 9d9085d379 Reset the compile and warp arguments when reloading.
Fixes #4780.
2023-06-26 23:17:55 -04:00
Tom Rothamel cb0cf2bf5e Add the fact that we're reloading to renpy.session. 2023-06-26 23:07:38 -04:00
Tom Rothamel 2c4194e754 rapt: Remove missing JDK options.
Since we no longer search for the JDK on windows until we install
the SDK.
2023-06-26 23:04:26 -04:00
Ren'Py Bot ac2534a87f Merge branch 'fix' 2023-06-26 04:30:37 -04:00
Tom Rothamel 9c442bb694 Merge pull request #4782 from Kassy2048/fix-web-fullscreen
Fix fullscreen Web
2023-06-25 21:47:10 -04:00
Kassy 20d7ecf868 Alias Window mode to non-Fullscreen mode on Web
There is no good way to resize the browser window size and
it's not really desirable to resize it anyway. These
changes should partially fix the issues reported in #4760.
2023-06-26 02:48:42 +02:00
Ren'Py Bot bb4e4da909 Merge branch 'fix' 2023-06-25 04:30:37 -04:00
Gouvernathor b467514c39 add incompat entry 2023-06-25 03:57:13 +02:00
Mal Graty e51642ff3f Prevent rare divide by zero in drag/drop
Encountered in rare rollback scenarios where self.st would correctly
reflect the drag was complete, but the render st was zero, resulting in
self.st and self.target_st being equal resulting in the divide by zero.
2023-06-24 16:27:10 +01:00
Gouvernathor 8556d563c9 Convert build.itch_channels to a true dict, and light compat 2023-06-24 15:20:27 +02:00
Gouvernathor a370643f40 Fix absolute.__rdivmod__
fixes #4772
2023-06-24 13:43:03 +02:00
Gouvernathor e56fbd90f1 fix Camera AST node 2023-06-23 21:56:03 +02:00
Gouvernathor 15ec88c900 Update exception text 2023-06-23 21:44:44 +02:00
Gouvernathor 7eeadcfde1 Typos in incompatible.rst
per previous commit
2023-06-23 13:13:08 +02:00
Gouvernathor 061a8c9194 Typos in changelog.rst
per https://github.com/renpy/renpy/pull/4564#issuecomment-1520347974
I didn't test the right-to-left/bottom-to-top thing
2023-06-23 13:10:31 +02:00
Ren'Py Bot 584b13ff67 Merge branch 'fix' 2023-06-23 04:30:37 -04:00
Tom Rothamel d309f3fb93 Add gui.history_spacing.
This variable allows the creator to customize the space between
history entries.

Fixes #4766.
2023-06-23 01:00:07 -04:00
Tom Rothamel 5505c01d0a Changes to box_reverse.
Per #4765.
2023-06-23 00:41:56 -04:00
Daniel Brookman b423982a28 Correct var in GUI Customization Guide
"gui.choice_text_hover_color" doesn't point to choice_button, so
changing it won't do anything.
2023-06-22 23:28:29 -04:00
Ren'Py Bot 86afb06388 Merge branch 'fix' 2023-06-22 23:27:45 -04:00
Tom Rothamel 0e74637c87 Merge pull request #4767 from dbrookman/doc_choice_button_text_hover
Correct var in GUI Customization Guide
2023-06-22 23:27:32 -04:00
Tom Rothamel 6ca4fc2ae1 Fix image component sorting in the directory.
Make sure each component is a string, but pad out numbers so the
sorting is better (ie, c2 should sort before c12.).

Fixes #4769.
2023-06-22 23:19:54 -04:00
Daniel Brookman 6710dbbde8 Correct var in GUI Customization Guide
"gui.choice_text_hover_color" doesn't point to choice_button, so
changing it won't do anything.
2023-06-22 14:55:41 -04:00
Gouvernathor fb03b82f4c doc: tweaks for timed nw 2023-06-22 13:12:30 +02:00
Tom Rothamel 360277f0fe Document that loadable doesn't search images.
Fixes #4712.
2023-06-22 01:14:39 -04:00
Tom Rothamel 14a09d2cc6 The {nw} text tag takes a number of seconds before the line is dismissed.
Fixes #4763.
2023-06-21 23:07:15 -04:00
Ren'Py Bot 822f1a4da6 Merge branch 'fix' 2023-06-21 04:30:37 -04:00
Tom Rothamel 607c1ac64d A better error message if config.version has a bad character.
Fixes #4758.
2023-06-20 23:52:36 -04:00
Tom Rothamel eb0d4948d0 End an animation immediately if time resets. 2023-06-19 22:21:18 -04:00
Ren'Py Bot bd3d5f9dde Merge branch 'fix' 2023-06-18 23:29:40 -04:00
Tom Rothamel 2c91ada1a6 Restore/improve the handling of mouse events.
* It's now possible to bind a mousedown event to skip, and other
  functions that care about keyup/keydown pairs.

* Mouseup events that are are bound to keyup are ignored.

Fixes #4755.
2023-06-18 22:46:33 -04:00
Tom Rothamel 46b0a05849 Merge pull request #4753 from renpy/tweak-4750
Tweak 1a62894
2023-06-18 14:13:41 -04:00
Gouvernathor 6a663830f8 linkify, tweak phrasings and code 2023-06-18 17:45:03 +02:00
Ren'Py Bot 9a23172671 Merge branch 'fix' 2023-06-18 02:08:44 -04:00
Tom Rothamel 1a62894650 Document the limits to MoveTransition, check for errors. 2023-06-18 02:08:36 -04:00
Tom Rothamel 22b3106504 Merge pull request #4751 from renpy/move-transitions-doc-tweaks
Tweak docstrings for transitions
2023-06-18 00:55:20 -04:00
Gouvernathor 9a1c783895 doc: clarify MultipleTransition API
avoiding rapid unscheduled disassembly of creators' keyboards
2023-06-18 03:14:05 +02:00
Gouvernathor d793750adb doc: tweak docstrings for move transitions
add links, and clarity
2023-06-18 02:33:42 +02:00
Gouvernathor 74b476f8c1 doc: hide Dissolve's alpha parameter
Documented as ignored and kw-only, might as well not exist at all
The other classes in this file had the same done to them, this one was probably forgotten
2023-06-18 01:56:11 +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 06d6d4b1ef doc: typo 2023-06-17 19:52:33 +02:00
Gouvernathor c682e99213 Merge branch 'master' into rpy-python 2023-06-17 16:25:41 +02:00
Tom Rothamel 8fe9b7ad89 Add the keep_last_frame parameter to Movie.
This keeps the last frame after the movie ends.

Fixes #4732.
2023-06-17 01:12:37 -04:00
Ren'Py Bot c6456618e4 Merge branch 'fix' 2023-06-16 23:47:53 -04:00
Tom Rothamel 9dc7aa1603 Merge pull request #4722 from Kassy2048/fix_7.6_web
Fix for 7.6 web
2023-06-16 23:31:41 -04:00
Tom Rothamel 98fd979c82 Fix downloads of dlc into the nightly builds. 2023-06-16 23:29:56 -04:00
Tom Rothamel 9723a2b7f8 Merge pull request #4738 from renpy/movie-doc
Tweak the Movie callable documentation
2023-06-16 20:27:16 -04:00
Tom Rothamel 77b1ad7fb1 Merge pull request #4747 from Lezalith/master
Czech Translation of The Question
2023-06-16 20:10:48 -04:00
Lezalith b9bcff650b Czech Language button in Preferences screen. 2023-06-17 02:07:58 +02:00
Lezalith fcc3d2a1b6 The Question czech translation files. 2023-06-17 02:07:29 +02:00
Ren'Py Bot 728f217eb7 Merge branch 'fix' 2023-06-16 04:30:37 -04:00
Tom Rothamel 917ac66cae movie: Ensure the channels exist in any function that can use them.
Fixes #4723.
2023-06-15 22:09:19 -04:00
Mal Graty 30c2a2a269 Avoid cropping widgets during a dissolve (#4717) 2023-06-15 21:17:38 -04:00
Morgan Willcock 79a1890539 Fix changelog entry for 'rpy python' (#4720) 2023-06-15 21:16:48 -04:00
Morgan Willcock ebb9358d87 Fix changelog entry for 'rpy python' (#4720) 2023-06-15 21:15:54 -04:00
Ren'Py Bot 3f5df973bf Merge branch 'fix' 2023-06-15 04:30:37 -04:00
Tom Rothamel e17ef3d265 Merge Ukrainian translation.
By @GVeydzher on twitter.
2023-06-14 22:26:25 -04:00
Ren'Py Bot fb4264f3ee Merge branch 'fix' 2023-06-14 01:38:06 -04:00
Tom Rothamel d72de4ab68 Preserve time when upgrading a save to have a token.
Fixes #4736.
2023-06-14 01:27:45 -04:00
Tom Rothamel a069545bcd retain: Document retained bubbles. 2023-06-13 23:32:08 -04:00
Asriel Senna 79d3951fad doc: reorder parameters to fit their description 2023-06-13 17:30:48 +02:00
Asriel Senna 97fc57d912 Undocument the fps parameter 2023-06-13 17:29:26 +02:00
Tom Rothamel 6ed04f3d5e Merge branch 'fix' 2023-06-13 00:54:35 -04:00
Tom Rothamel 8de1dccf43 Report an error if init is used with a directive, not a statement.
Fixes #4713.
2023-06-12 23:57:24 -04:00
Tom Rothamel 8ec26b7b66 Report parse errors in editor when run from the launcher.
This prevents parse errors from passing hidden when the game
is recompiled during distribution.
2023-06-12 22:35:50 -04:00
Tom Rothamel 1f05d93ea6 bubble, retain: Implement clearing retained bubbles.
This was implemented with a new button in the bubble editor, that
the user can click to clear out all buttons on the screen apart
from the current bubble.
2023-06-12 01:33:40 -04:00
Tom Rothamel c3a2d4745d retain: When retain is in use, each bubble has its own location. 2023-06-11 00:36:05 -04:00
Kassy 6ce1cda92b Fix crash on Web2 because pydoc is not shipped 2023-06-10 23:40:45 +02:00
Kassy 3070a40fce Fix crash on Web2 because WebInput is not implemented 2023-06-10 23:39:58 +02:00
Kassy 0176e42268 Fix crash on Web2 because subprocess.Popen is not implemented 2023-06-10 23:39:34 +02:00
Tom Rothamel afb9729ecf retain: Initial implementation of retained dialogue.
This is intended for used with speech bubbles, but might be useful
in other place. It's a mode where each say statement shows a new
screen, until the screens are cleared by the (to be added)
clear statement.
2023-06-09 20:36:30 -04: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
Tom Rothamel d079dda223 Update piglatin translation. 2023-06-09 00:22:11 -04:00
Tom Rothamel 87b2291f99 Improved translation generation.
* Better filtering of braces, especially nested braces.
* Do not piglatin-ify numbers.
2023-06-09 00:22:11 -04:00
Tom Rothamel 6e7d650f51 doc: Match the fix branch. 2023-06-08 22:09:30 -04: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 c2c094fbf6 Fix bad automatic comment translation
old ["']##[^\n]+?["']\n\s*(?:# Automatic translation\.\n\s*)?new ["']#?[^#]
updated gift for posterity (see d037830)
2023-06-08 20:56:59 +02:00
Gouvernathor 22cf8d3166 doc: tweaks 2023-06-08 17:28:15 +02:00
Tom Rothamel bb0b7f807f Bump version. 2023-06-08 01:50:27 -04:00
Tom Rothamel 08667dedf1 Re-generate the vc version in add.py.
So the correct version is used for releases.
2023-06-07 22:03:59 -04:00
Tom Rothamel cd5a9b2830 doc: Credits. 2023-06-07 20:57:56 -04:00
Tom Rothamel 4579dbab15 Clean up the fix-branch changelog. 2023-06-07 20:43:11 -04:00
Tom Rothamel 10a9521a19 docgen: Set the search z-index to 1. 2023-06-07 20:38:19 -04:00
Gouvernathor bcc0d211e1 Extend the system cursor preference to config.mouse_displayable (#4706)
* Make the system_cursor preference disable mouse_displayable

* doc: new "system_cursor" behavior

* changelog system_cursor
2023-06-07 20:37:48 -04:00
Tom Rothamel a33f891d65 docgen: Set the search z-index to 1. 2023-06-07 19:55:48 -04:00
Gouvernathor 9b1f23fe4d Extend the system cursor preference to config.mouse_displayable (#4706)
* Make the system_cursor preference disable mouse_displayable

* doc: new "system_cursor" behavior

* changelog system_cursor
2023-06-07 19:55:32 -04:00
Ren'Py Bot bb6ca17bc3 Merge branch 'fix' 2023-06-07 02:17:36 -04:00
Tom Rothamel 7e8ed2dcf7 doc: Update sponsors. 2023-06-07 02:07:15 -04:00
Tom Rothamel 3893bcbc7a doc: Credits. 2023-06-07 01:16:44 -04:00
Ren'Py Bot f33ab6b095 Merge branch 'fix' 2023-06-07 01:06:44 -04:00
Tom Rothamel b0b096bf16 audio: if_changed handles tight looping.
Subject to how if_changed works, as it does queue up a new
loop.

Fixes #4695.
2023-06-07 01:05:22 -04:00
Gouvernathor 7df26f34ed Fix mouse_move documentation (#4700)
* docstring spaces

* doc: fix inconsistencies about the mouse_move preference
2023-06-06 23:58:49 -04:00
Tom Rothamel 454ba1360d Ensure that scrollable bars have the sensitive style.
Fixes #4690.
2023-06-06 23:57:11 -04:00
Tom Rothamel 5116fdaa47 Check atl state for validity where it might have changed.
Fixes #4701.
2023-06-06 21:45:14 -04:00
Ren'Py Bot 26d4b1af50 Merge branch 'fix' 2023-06-06 04:30:56 -04:00
Tom Rothamel 9d1b8c0e29 atl: Run ATL transforms in the animation timebase.
This fixes #4696 while keeping #4634 and #4167 fixed.
2023-06-06 01:15:50 -04:00
Tom Rothamel e740a83764 doc: Changelog. 2023-06-05 23:25:24 -04:00
Ren'Py Bot 25e2dba5b3 Merge branch 'fix' 2023-06-05 04:30:56 -04:00
Gouvernathor b8c4565a38 Dereference utter_restart and move reload-related functions to the reload section (#4657)
doc: deref utter_restart and move reload-related functions
2023-06-05 00:40:03 -04:00
Tom Rothamel 36a2e32401 web: Fix audio end time.
It takes a duration, not the end time itself.

Fixes #4694.
2023-06-05 00:38:12 -04:00
Tom Rothamel b586355a8e Ensure that objects reachable from Context rollback.
Fixes #4687, and a class of potential related problems, by
auditing things that are reachable through Context.
2023-06-04 18:24:02 -04:00
Gouvernathor 1a375c525c Add a warning when creating new projects in renpy 7
not disabled, because it still makes sense for test purposes or to update default files
2023-06-04 11:45:22 +02:00
Ren'Py Bot dd1c162271 Merge branch 'fix' 2023-06-04 04:30:56 -04:00
Tom Rothamel 7171b21fb4 doc: That dropping doesn't respect the alpha channel.
Closes #4686.
2023-06-03 22:11:01 -04:00
Tom Rothamel 30aba15be2 Accept the vscode plugin style changes. 2023-06-03 22:10:25 -04:00
Tom Rothamel 007aa19291 live2d: Determine if _sustain is required after attribute_filter.
As it's possible attribute_filter will introduce a motion that
makes sustain pointless.

Fixes #4660.
2023-06-03 21:36:53 -04:00
Tom Rothamel 7e6560b766 live2d: _choose_attributes should enforce required attributes.
If it can't find all of the required attributes, then it should
not allow the displayable to be shown.

Fixes the first part of #4660.
2023-06-03 20:55:48 -04:00
Tom Rothamel dd2b26807d doc: Changelog e29fdf8cbf. 2023-06-02 23:29:53 -04:00
Ren'Py Bot e6d5b8eef6 Merge branch 'fix' 2023-06-02 23:28:42 -04:00
Tom Rothamel 206431c210 Add links to 8.1.1 and 7.6.1. 2023-06-02 23:22:46 -04:00
Tom Rothamel 61c9ebffa9 Propagate times to ATL transitions, but not other state.
This tries to fix #4634 without breaking #4167, by recognizing
when a transition has started and propagating the adjusted times
into it, but not the state.

This can probably fail, as events and choices won't be propagated,
but those should be rare in transitions, ideally.
2023-06-02 23:01:32 -04:00
Ren'Py Bot f79c052ace Merge branch 'fix' 2023-06-01 22:52:41 -04:00
Tom Rothamel e29fdf8cbf Prevent autoreloading while the git index lock is present.
Fixes #3689.
2023-06-01 22:42:50 -04:00
Moshibit 544cf07739 Fix Spanish tranlation (#4684)
* Update launcher.rpy

* Fix Spansih translation.rpy
2023-06-01 22:26:16 -04:00
Moshibit a88e2a3980 Fix Spanish tranlation (#4684)
* Update launcher.rpy

* Fix Spansih translation.rpy
2023-06-01 22:25:22 -04:00
Ren'Py Bot 1251ce7e36 Merge branch 'fix' 2023-06-01 04:30:56 -04:00
Gouvernathor 360dc4fdbb Make absolute a float again (#4680)
Multiple advantages over the wrapper-class implementation : lighter in memory, don't wrap methods that don't need too, don't spend time converting their parameters, avoid a two-version pickling and unpickling mechanism (with slots), shorter code with less warning silencing.
2023-06-01 00:31:00 -04:00
Tom Rothamel 3396feff33 Rewrite absolute to not inherit from float.
This replaces absolute with a class that contains a float, and
behaves like a float in most circumstances. However, when an
operation is performed on it that would create a float, an
absolute is returned instead.

This is meant to address #4666 and a class of potential issues
that could be similar to it, where absolutes that are operated
on could become a float, and cause layout issues.

I need to think if this is something that should got into the
fix branch, as it's a major change.
2023-06-01 00:31:00 -04:00
Tom Rothamel 7cf287c4f4 docgen: Fix the location of the searchbox.
Fixes #4682.
2023-05-31 23:51:08 -04:00
Tom Rothamel 732b98f7a2 Document that YUV444 is slow.
Per discussion in #4646.
2023-05-31 22:45:17 -04:00
Tom Rothamel 838ce5a82b Fix non-full playback of videos.
Fixes #4646.
2023-05-31 22:41:54 -04:00
Gouvernathor c7083584df Make absolute a float again (#4680)
Multiple advantages over the wrapper-class implementation : lighter in memory, don't wrap methods that don't need too, don't spend time converting their parameters, avoid a two-version pickling and unpickling mechanism (with slots), shorter code with less warning silencing.
2023-05-31 01:31:02 -04:00
Ren'Py Bot b6f1be507b Merge branch 'fix' 2023-05-30 04:30:56 -04:00
Tom Rothamel 690f249481 Rewrite absolute to not inherit from float.
This replaces absolute with a class that contains a float, and
behaves like a float in most circumstances. However, when an
operation is performed on it that would create a float, an
absolute is returned instead.

This is meant to address #4666 and a class of potential issues
that could be similar to it, where absolutes that are operated
on could become a float, and cause layout issues.

I need to think if this is something that should got into the
fix branch, as it's a major change.
2023-05-30 02:01:39 -04:00
midgethetree 13cd7d0ebc fix fonts linting (#4679)
Fixes an issue where fonts located in the fonts/ directory and referenced in .rpy files with just their filename and not the fonts/ prefix would be falsely claimed to be unloadable by the linter despite working just fine in-game. Also fixes the converse issue, where fonts located in images/ directory and referenced without the images/ prefix weren't caught by the linter despite the game crashing when actually attempting to load them.
2023-05-30 00:48:09 -04:00
midgethetree dfc29bb646 fix fonts linting (#4679)
Fixes an issue where fonts located in the fonts/ directory and referenced in .rpy files with just their filename and not the fonts/ prefix would be falsely claimed to be unloadable by the linter despite working just fine in-game. Also fixes the converse issue, where fonts located in images/ directory and referenced without the images/ prefix weren't caught by the linter despite the game crashing when actually attempting to load them.
2023-05-30 00:31:11 -04:00
Tom Rothamel a14b4c3ddc Avoid including the 311 bytecode in the launcher.
As it's not needed there.

Per #4677.
2023-05-29 21:57:16 -04:00
Ren'Py Bot d94c3ef043 Merge branch 'fix' 2023-05-29 12:27:46 -04:00
brainos233 917292b443 fix: launcher\game\tl\schinese\options.rpy (#4676) 2023-05-29 18:16:05 +02:00
Tom Rothamel e02ce6579f docgen: Fix a style issue. 2023-05-29 12:15:15 -04:00
brainos233 d8322a6db7 fix: launcher\game\tl\schinese\options.rpy (#4676) 2023-05-29 18:14:36 +02:00
Tom Rothamel 5201ff3e10 sl2: Better analyze imagemaps.
The issue was that:

    imagemap:
        if cond:
            idle "idle_true"
            hover "hover_true"
        else:
            idle "idle_false"
            hover "hover_false"

        hotspot (0, 0, 100, 100) action Jump("test")

Didn't depend on cond, which meant that the hotspot
would not change when the imagemap was updated.

Test: xagrim-imagemap.
2023-05-29 11:58:23 -04:00
Gouvernathor 64ac9c1a99 BOM and UTF-LF 2023-05-29 12:57:11 +02:00
zedraxlo ff426586b8 SChinese translation update (#4675) 2023-05-29 12:56:53 +02:00
Gouvernathor f3f703b426 BOM and UTF-LF 2023-05-29 12:53:55 +02:00
zedraxlo ac39001a61 SChinese translation update (#4675) 2023-05-29 12:40:58 +02:00
Ren'Py Bot cfd1721d71 Merge branch 'fix' 2023-05-29 04:30:56 -04:00
Tom Rothamel 0cd32aa9a4 (Mostly) revert changes to afm_enable preference handling.
This is a bit special, as it define if afm_enable is used or not.
Since this is baked in to older games, restore the previous values,
but let the default statement override them, which was the goal of
the previous commit.
2023-05-29 02:08:40 -04:00
Ren'Py Bot e33cc4c43c Merge branch 'fix' 2023-05-28 23:07:07 -04:00
Tom Rothamel 9c9c36a723 rapt: Document the key changes. 2023-05-28 23:06:41 -04:00
Morgan Willcock 3762c42604 doc: Fix interpolation example block (#4674)
Corrects the indentation so that the code is valid.

One of the affected lines had a typo ('thje' instead of 'the'), which
is now corrected.
2023-05-28 23:25:59 +02:00
Ren'Py Bot 389e882505 Merge branch 'fix' 2023-05-27 00:38:16 -04:00
Tom Rothamel 75832ccd22 Avoid having preference defaults by default.
The older config.default_.... variables could force a preference
to take on a value, even if the creator used default to set the
preference.

This changres a few of the defaults in preferences.py, and removes
the need for config.default_... variables.

Fixes #4667.
2023-05-26 22:13:45 -04:00
Ren'Py Bot fe2d76bdd3 Merge branch 'fix' 2023-05-25 01:40:53 -04:00
Tom Rothamel 26af404433 Fix typo in nosave list.
Fixes #4664.
2023-05-25 01:40:10 -04:00
Tom Rothamel 8209e61d75 Fix problem with non-resiable windows on macOS.
Apparently, when a window is not resizable on macOS, the MAXIMIZED
flag is always set. Since the window can't actually be maximized,
ignore it.

Fixes #4659.
2023-05-25 00:30:39 -04:00
Tom Rothamel 09ee1cb52f Deal with mac reporting fullscreen windows as maximized.
This can cause a problem when changing modes.

Per #4659.
2023-05-25 00:30:39 -04:00
Ren'Py Bot b152e0b00a Merge branch 'fix' 2023-05-23 13:34:03 -04:00
Gouvernathor 75d0f4dc64 Encode the save directory as bytes on py2 2023-05-23 13:33:57 -04:00
Ren'Py Bot df982c1b4c Merge branch 'fix' 2023-05-23 04:30:46 -04:00
Tom Rothamel bb526f6ae3 doc: Fix doc problem with ui.interact. 2023-05-23 01:51:00 -04:00
Gouvernathor 110e6340e4 doc: remove double variable entry
the second one, which was fixed a week ago (1436e3e), is slightly better phrased
2023-05-22 17:19:43 +02:00
Gouvernathor 166e81b2e5 Revert "doc: move reload-related functions to the dedicated section"
This reverts commit 078ffb9e5a.
2023-05-22 17:02:11 +02:00
Ren'Py Bot a851c97c85 Merge branch 'fix' 2023-05-22 10:51:36 -04:00
Moshibit 217d0e85f8 Update launcher.rpy 2023-05-22 10:51:23 -04:00
Moshibit 09a29a941c Update launcher.rpy 2023-05-22 10:43:06 -04:00
Gouvernathor 078ffb9e5a doc: move reload-related functions to the dedicated section 2023-05-22 16:34:23 +02:00
Ren'Py Bot f9233742a2 Merge branch 'fix' 2023-05-22 01:51:15 -04:00
Tom Rothamel a2adf917aa The window icon is an image.
Fixes #4651.
2023-05-22 01:51:15 -04:00
Gouvernathor 41d0b41518 actual translation 2023-05-22 01:51:15 -04:00
Gouvernathor aded4dd05e french translations 2023-05-22 01:51:15 -04:00
Tom Rothamel 412c56e76b The window icon is an image.
Fixes #4651.
2023-05-22 01:48:41 -04:00
Gouvernathor 15024f32a8 quicken PY3 case 2023-05-21 16:30:29 +02:00
Gouvernathor cdee6e388c actual translation 2023-05-21 16:27:29 +02:00
Gouvernathor 1a820b67a7 french translations 2023-05-21 15:50:29 +02:00
Tom Rothamel 8c21f14bf7 autotl: Better handling of lines beginning with ##. 2023-05-21 01:48:34 -04:00
Tom Rothamel 1660375bde autotl: The description of the nightly fix build. 2023-05-21 01:47:22 -04:00
Tom Rothamel c9ec07f566 Add infrastructure for single-string translations.
This is intended to allow important strings to be automatically
translated while we work on improving the quality of automatic
translations.
2023-05-21 01:47:02 -04:00
Tom Rothamel 19316303b7 Add strings describing the nightly branch. 2023-05-21 00:18:50 -04:00
Tom Rothamel e46d664aed Diagnose issues with a class no longer inheriting from object. 2023-05-20 23:31:49 -04:00
Tom Rothamel ccaf664e3c Allow error handling to deal with exceptions in rollback.
Previously, the exception would occur with the context stack
already altered. As the exception was handled, contexts could
be removed from the stack, leading to a case where there was
no context - which causes crashes.
2023-05-20 22:53:21 -04:00
Tom Rothamel 572ebcc3a8 Make sure Execution.__repr__ always produces a result. 2023-05-20 22:51:35 -04:00
Tom Rothamel 8f5c2526f0 Properly quote replacement text.
Fixes #4631.
2023-05-20 02:32:05 -04:00
Tom Rothamel d93745e2e1 Delete .pyo and .pyc files when reloading a module.
This can fix a problem on Python 2, where a .pyo file would be
loaded in preference to an updated .py file, even if the .py file
was created the first time around.
2023-05-19 23:27:50 -04:00
Tom Rothamel 4f8f3155ef Take the version out of the newly-generation dict. 2023-05-19 00:51:39 -04:00
Tom Rothamel deb4a2c9eb Merge pull request #4645 from brainos233/docs-build-packages
Docs: Fix missing "renpy" list in Packages example
2023-05-18 11:15:51 -04:00
Tom Rothamel 4d26440cbb Remove pyo and pyc files to make sure a reload occurrs. 2023-05-18 04:17:43 -04:00
Brainos cf98746660 Docs: Fix missing "renpy" list in Packages example 2023-05-18 15:47:29 +08:00
Ren'Py Bot 824828f5c8 Merge branch 'fix' 2023-05-17 02:25:34 -04:00
Tom Rothamel 59e427512c fix: Fix text tag issues with the Korean (and maybe Vietnamese) translations.
Fixes #4643.
2023-05-17 01:44:08 -04:00
Tom Rothamel 09c1a84169 Scry fixes.
- Return None of there is no current statement.
- Deal with a scry of None in character.
- Improve documentation.

Fixes #4640.
2023-05-17 01:29:18 -04:00
Tom Rothamel b254c23882 Include libydrogen in the source distribution.
Fixes #4638.
2023-05-17 01:23:01 -04:00
Tom Rothamel da7655642f Include libydrogen in the source distribution.
Fixes #4638.
2023-05-17 01:19:50 -04:00
Tom Rothamel 5c7efe99e6 Merge branch 'fix' 2023-05-17 00:58:53 -04:00
Tom Rothamel 17e743d346 Determine the version if vc_version.py does not exist.
This is likely to only happen if a git checkout exists. In that
case, we determine what branch we're on, and use that to
initialize the version information.
2023-05-17 00:54:34 -04:00
Tom Rothamel 2c898e4581 Merge branch 'fix' 2023-05-17 00:07:05 -04:00
Gouvernathor 1638a89023 Fix incorrect variable name
That was preventing renpy boot when vc_version is not present
Also, differenciate versions not yet named, "tbd", and versions not identified
2023-05-17 04:49:54 +02:00
Gouvernathor 1436e3e4f1 doc: role issues and involuntary comments 2023-05-17 04:10:16 +02:00
Gouvernathor d037830d38 Fix bad automatic comment translations
old ["']##[^\n]+?["']\n\s*(?:# Automatic translation\.\n\s*)?new ["'][^#]
(a gift to posterity)
The machine translate script should remove any prepending "## ", translate the rest, and then prepend it again to the result. Otherwise deepl thinks it's a word.
fixes #4633
2023-05-16 10:36:23 -04:00
Tom Rothamel d8cfb32514 distribute: Changes to support nightly builds.
* The --nightly flag to mark a version as nightly.
* The --print-version flag, to print the computed version.

This will allow distribute to supply version information to the
nightly build process.
2023-05-16 10:36:03 -04:00
Tom Rothamel adddcd6a11 distribute: Changes to support nightly builds.
* The --nightly flag to mark a version as nightly.
* The --print-version flag, to print the computed version.

This will allow distribute to supply version information to the
nightly build process.
2023-05-16 10:15:51 -04:00
Gouvernathor 8c511bcd72 Fix bad automatic comment translations
old ["']##[^\n]+?["']\n\s*(?:# Automatic translation\.\n\s*)?new ["'][^#]
(a gift to posterity)
The machine translate script should remove any prepending "## ", translate the rest, and then prepend it again to the result. Otherwise deepl thinks it's a word.
fixes #4633
2023-05-15 15:46:11 +02:00
Tom Rothamel 06acc1984a Use the runtime python to generate the version information. 2023-05-15 08:52:20 -04:00
Tom Rothamel 14c06dd2e4 Add py2 before py3.
Useful in the github case, to ensure Ren'Py 8 is uploaded last,
and hence is at the top of the list of downloads at github.
2023-05-15 02:40:13 -04:00
Tom Rothamel 516fceb2ab Store the version in vc_version, generate it from the branch. 2023-05-15 02:39:23 -04:00
Tom Rothamel 17b2be083a doc: Update sponsors. 2023-05-13 17:13:31 -04:00
Tom Rothamel 21caff9610 Update keywords. 2023-05-13 17:13:21 -04:00
Tom Rothamel 84db013177 doc: Credits. 2023-05-13 15:20:35 -04:00
Tom Rothamel 479c688851 doc: Polar coordinate changes. 2023-05-13 15:11:59 -04:00
Tom Rothamel 20593ac279 viewport: Allow draggable to become False during drag.
Fixes #4629.
2023-05-13 13:30:59 -04:00
Tom Rothamel 6639c4c162 Merge pull request #4576 from shawna-p/master
Allow None transition for ShowMenu
2023-05-13 13:30:04 -04:00
Tom Rothamel 61f9e2d1f7 Treat an empty at_list like no transform.
Fixes #4628.
2023-05-13 02:02:04 -04:00
Tom Rothamel d346e7a325 Remove more automatic translations of proper nouns. 2023-05-12 01:29:02 -04:00
Tom Rothamel b471addb84 Merge pull request #4617 from nattyan-tv/master
Translation of Japanese
2023-05-12 01:24:04 -04:00
Tom Rothamel a47121d6aa controller: Blocklist a non-working controller.
Fixes #4622.
2023-05-12 01:20:15 -04:00
Tom Rothamel 44eef26342 transform: Alignaround sets anchor.
This makes it behave more like it did in 8.0.3.
2023-05-12 01:13:24 -04:00
Tom Rothamel 5757e2eb72 transform: If a position is a float, it should remain a float.
This ensures that circling to a float position will continue to
cause xpos to be a float, which will help further positioning.
2023-05-12 01:13:24 -04:00
Tom Rothamel bce69d0fb6 atl: Add the anchorradius and anchorangle properties.
Having these makes revolution work much better, as it's no longer
necessary to try to derive them from angle and radius.
2023-05-12 01:13:24 -04:00
Erufailon4 80db4c307a Finnish translation fixes (#4623) 2023-05-11 18:43:39 +02:00
Tom Rothamel 238607d5a1 Allow radius to be a position again.
Looking at some examples in the field, it looks like people are
using radius as a position - so make it work, but improve the
semantics slightly so that the polar coordinates are actually circular.
2023-05-11 01:16:32 -04:00
Tom Rothamel 24a3346670 Remove the changes to polar coordinates, start over.
This removes the ability of radius to be given as a float, which
doesn't make a ton of sense. Is the radius measured compared to
width, height, or something else? Now it's back to being pixels,
which is was in 8.0.

This does make around work better when it is a float, using the
available area.

Polar coordinates now always produce absolutes for xpos and ypos,
allowing radius and around to be in different types.
2023-05-10 23:38:08 -04:00
NattyanTV cf40d10bc0 fix: Translate untranslated parts 2023-05-11 00:23:18 +09:00
NattyanTV 51bc9ed0ee change: changed to better wording 2023-05-11 00:06:27 +09:00
NattyanTV a3cade9a5a add: Japanese translation added 2023-05-10 23:56:26 +09:00
Tom Rothamel 5275ae114c Remove unnecessary calculation. 2023-05-10 00:07:21 -04:00
Tom Rothamel f537b09337 Document the translation changes. 2023-05-09 22:05:00 -04:00
Tom Rothamel 27d28db994 Fixes to alignaround and polar coordinates.
* Fix alignaround to only take floats, and rotate the floats
  properly.

* Make it clear that alignaround really only makes sense with
  (0.5, 0.5) as the argument, and that other values don't make
  sense.

* Make radius occur after the other linear interpolations in ATL,
  to be sure alignaround and around happen before it, which allows
  for correctness without a warning.

Fixes #4613.
2023-05-09 09:08:50 -04:00
Tom Rothamel daab75fb32 Remove debug prints. 2023-05-08 23:52:44 -04:00
Tom Rothamel ae243f44b3 tl: More translation updates. 2023-05-08 00:13:42 -04:00
Tom Rothamel fa7023c8ec tl: Revert more translations. 2023-05-07 23:51:01 -04:00
Gouvernathor cde6882601 Updating translations following minor edit
I won't do it every time.
Some translations were already good and only the english version was updated.
Some were skipped (see you in hell, finnish)
2023-05-08 05:01:47 +02:00
Gouvernathor f429fcb76d Update and fix some french translations 2023-05-08 04:38:21 +02:00
Tom Rothamel 814f93b620 Fix proofreading error. 2023-05-07 22:29:41 -04:00
Tom Rothamel 59508028dc Remove things that shouldn't be auto-translated. 2023-05-07 22:10:59 -04:00
Tom Rothamel 796030c8e5 tl: Un-mark directory names as translations. 2023-05-07 21:52:12 -04:00
Tom Rothamel 74477e0de6 tl: Fix incorrect translations of directory names.
Which shouldn't really be translated in the first place.
2023-05-07 19:39:33 -04:00
Tom Rothamel ccd2abc22b tl: Check in the automatic translation scripts. 2023-05-07 17:38:49 -04:00
Tom Rothamel 37ea587f61 tl: Automatically update the launcher's Ukrainian translation. 2023-05-07 17:32:42 -04:00
Tom Rothamel 29234e0945 tl: Automatically update the launcher's Turkish translation. 2023-05-07 17:25:16 -04:00
Tom Rothamel ba15b08bce tl: Automatically update the launcher's Simplifed Chinese translation. 2023-05-07 17:20:39 -04:00
Tom Rothamel ff1ba8a9f5 tl: Automatically update the launcher's Russian translation. 2023-05-07 17:18:23 -04:00
Tom Rothamel ece67a6ee4 tl: Automatically update the launcher's Portuguese translation. 2023-05-07 17:15:30 -04:00
Tom Rothamel 76dc673898 tl: Automatically update the launcher's Polish translation. 2023-05-07 17:09:45 -04:00
Tom Rothamel e9a12bdc32 tl: Automatically update the launcher's Korean translation. 2023-05-07 17:06:24 -04:00
Tom Rothamel 46d96dea71 tl: Automatically update the launcher's Japanese translation. 2023-05-07 17:01:59 -04:00
Tom Rothamel ff6bdefb7b tl: Automatically update the launcher's Italian translation. 2023-05-07 16:52:40 -04:00
Tom Rothamel b7fce0f30c tl: Automatically update the launcher's Indonesian translation. 2023-05-07 16:43:00 -04:00
Tom Rothamel 70cd64c067 tl: Automatically update the launcher's Greek translation. 2023-05-07 16:38:04 -04:00
Tom Rothamel 48d3e89bd9 tl: Automatically update the launcher's French translation. 2023-05-07 16:30:31 -04:00
Tom Rothamel 5b3dad9476 tl: Automatically update the launcher's German translation. 2023-05-07 16:28:10 -04:00
Tom Rothamel 9abf62cf65 tl: Automatically update the launcher's Finnish translation. 2023-05-07 16:23:09 -04:00
Tom Rothamel 4221cd1e85 live2d: Sort new attributes before older ones. 2023-05-06 19:18:01 -04:00
Tom Rothamel 8048386b4b Extend should have the same statement_name as what's being extended.
This prevents unexpected transitions.

Per #4605.
2023-05-06 18:20:02 -04:00
Tom Rothamel 1341285769 Turn extend from a function into an object.
This will let us declare properties and methods on it.
2023-05-06 17:46:02 -04:00
Tom Rothamel d8262b21c1 character: Set interact=False for the first of multiple displays. 2023-05-06 17:19:58 -04:00
Tom Rothamel 8b14b86702 Merge pull request #4611 from renpy/layeredimage-add
Document LayeredImage.add
2023-05-06 16:42:55 -04:00
Gouvernathor 6cc5ea6e5d doc: typo and preferred syntax 2023-05-06 19:21:48 +02:00
Gouvernathor 7572681097 Save some execution time
Summing those up for every kwarg is absurdly wasteful.
2023-05-06 19:21:03 +02:00
Gouvernathor 7c076fd49f Document LayeredImage.add 2023-05-06 19:16:44 +02:00
Gouvernathor ed471a56cb Comments and exception message format 2023-05-06 14:33:01 +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
Tom Rothamel 39f53e200a Merge pull request #4607 from renpy/doc-additive-warning
Remove warning about software rendererers
2023-05-05 23:33:38 -04:00
Tom Rothamel 19d387d3b0 gl2: Fullscreen cancels maximize. 2023-05-05 23:10:27 -04:00
Tom Rothamel bd3c36b3a7 audio: Only fadeout on game quit. 2023-05-05 23:10:27 -04:00
Gouvernathor 57830f35e0 Remove warning about software rendererers 2023-05-06 04:06:49 +02:00
Tom Rothamel 5f1c0590a4 Merge pull request #4604 from renpy/revertable-operators
Update revertable types according to Python's datamodel
2023-05-05 21:58:22 -04:00
Tom Rothamel ead6611e1d Fadeout, rather than quitting audio as the game starts to end. 2023-05-05 21:57:06 -04: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
Tom Rothamel 2d5ba5e840 Revert "audio: Fadeout for the default fadeout on game end."
This reverts commit 7917173b05.
2023-05-05 21:20:29 -04:00
Gouvernathor 0db8ef2b30 Revert changes to list methods
pun intended
2023-05-06 03:09:32 +02:00
Tom Rothamel 13bf13728a audio: More volume changes.
* Make the volume range 40 dB, rather than 60 dB, so more of the
  range is useful.

* When config.quadratic_volumes is enabled, used it everywhere.
2023-05-05 20:55:13 -04:00
Gouvernathor 1831bdaea0 Quicken list dunders
Exact typechecks are quicker than instance checks.

If it's a pure list, it needs to be converted.
If somehow it's a RevertableList, no need to trigger a O(n) copy.
If even more weirdly it's another subclass of list, there's magic in place and no need to account for that case (it's the creator's problem).
Finally, if it's NotImplemented, return it as-is.
2023-05-05 15:36:59 +02:00
Gouvernathor 48662e0be6 Update revertable types according to Python's datamodel 2023-05-05 15:33:05 +02:00
Tom Rothamel 7917173b05 audio: Fadeout for the default fadeout on game end.
This tries to make sure that a pop isn't the last thing the player
hears when Ren'Py ends.
2023-05-05 00:29:02 -04:00
Tom Rothamel f38b407bb7 audio: Reduce the fadeout range further.
With the last commit stopping the popping, fadeout can focus on
the effect itself, which according to Wikipedia tends to be done
in a 30-40dB range.
2023-05-05 00:09:19 -04:00
Tom Rothamel a48624f15e audio: Lowpass-filter volume changes.
This prevents "popping" when dragging the volume slider, and other
volume change events.
2023-05-04 23:57:12 -04:00
Tom Rothamel e08a5691f8 video: Do not fade out sprite movies. 2023-05-04 22:58:11 -04:00
Tom Rothamel e26d42fdee Merge pull request #4601 from Kassy2048/web_movie_fadeout
Implement fadeout for movies on Web.
2023-05-04 18:46:05 -04:00
Kassy e7ff113605 Implement fadeout for movies on Web. 2023-05-04 22:26:02 +02:00
Tom Rothamel ca3b98672f audio: Compute the secondary volume propery when linear_fades is true.
Fixes #4597.
2023-05-04 02:32:14 -04:00
Tom Rothamel ccce4ad081 Reduce the fadeout range to 42 dB.
It's a tradeoff between spending too much time in the low ends of the
range, when all but the loudest sounds will be inaudible, and having
so much sound at the end that there's a pop when the fadeout finishes.

~40dB seems to be a good compromise for all but the loudest headphone
volumes.

Per discussion in #4597.
2023-05-03 22:33:36 -04:00
Tom Rothamel 533299c9bf Merge pull request #4598 from renpy/PEP584
Make `|` methods return RevertableDict's.
2023-05-03 20:53:24 -04:00
Andy_kl 94cab603d8 Make | methods return RevertableDict's. 2023-05-04 04:46:47 +04:00
MigProPlayer 993e90277b Update Portuguese Translations (#4595)
ios - Fixed a broken string which was in Spanish and changed a duplicate string.
preferences - Fixed a typo which said "Open launcher" instead of "Open launcher project".
2023-05-03 19:40:19 +02:00
Tom Rothamel 67050eecc8 Merge pull request #4592 from mal/update-lint-layers
Use computed layer list in lint
2023-05-02 17:25:30 -04:00
Mal Graty fadba7ae56 Use computed layer list in lint 2023-05-02 19:03:22 +01:00
Tom Rothamel 512ae898dc Include thoughtbubble.png in builds. 2023-05-02 01:31:17 -04:00
Tom Rothamel 82fad4f4ff Merge pull request #4589 from qTich/fix/web-preload-cache-preference
typo on `web cache preload` toggle `Preference`
2023-05-01 12:27:40 -04:00
Tichq c3c90b9d43 typo on web cache preload toggle Preference 2023-05-01 19:09:45 +03:00
Tom Rothamel bdcba5cd6f doc: Try to improve keywords.py stability. 2023-05-01 00:28:57 -04:00
Tom Rothamel 8522ff0f7f rapt: Fix documentation for android.json update_keystores. 2023-04-30 22:23:20 -04:00
Tom Rothamel 4117176a0a Check in updated keywords. 2023-04-30 21:32:10 -04:00
Mal Graty 62136111e8 Update preference name in docs 2023-04-30 23:26:25 +01:00
Tom Rothamel 48cfb76607 Update translations. 2023-04-30 14:33:39 -04:00
Tom Rothamel f20ba5e633 bubble: Document the required changes. 2023-04-30 14:32:37 -04:00
Tom Rothamel a2719b9995 bubble: Add a thought bubble to the default game. 2023-04-30 14:19:12 -04:00
Tom Rothamel 9e4417729d Add omitted character. 2023-04-30 09:46:01 -04:00
Tom Rothamel 0f253c15c4 live2d: Add Live2D.blend_opacity.
This can be used in an update_function.
2023-04-29 23:15:26 -04:00
Tom Rothamel 224965c0cc live2d: Add support for x86_64 Android. 2023-04-29 22:44:02 -04:00
Tom Rothamel be2be8c557 live2d: Support multiply and screen.
Fixes #3729.
2023-04-29 22:41:29 -04:00
Tom Rothamel 594bb9d8e0 live2d: Load the csmGetDrawableMultiplyColors and csmGetDrawableScreenColors functions. 2023-04-29 20:28:01 -04:00
Tom Rothamel 31aa071f4a Add deprecations to incompatible changes. 2023-04-29 00:25:40 -04:00
shawna-p 9c5eb15024 Shorten & clean up code 2023-04-28 14:40:11 -04:00
Tom Rothamel 4d40a29350 Merge pull request #4586 from renpy/doc-jsondb
JSONDB doc
2023-04-28 13:07:13 -04:00
Gouvernathor 82c05454be Rephrase and add link 2023-04-28 18:56:44 +02:00
Tom Rothamel 6eefafd5a9 Allow radius to be a position.
As documented, but not implemented. Fixes #4574.
2023-04-28 00:45:00 -04:00
Tom Rothamel d07fe424eb Prevent radius and angle from conflicting.
This is necessary, as it's basically impossible to use these two
properties without them conflicting.
2023-04-28 00:45:00 -04:00
shawna-p 9e7109af81 Rename to prevent name conflict 2023-04-27 12:14:15 -04:00
shawna-p 3162455e14 Check for transition in call method 2023-04-27 12:11:19 -04:00
Tom Rothamel 2f19fe65bd Merge pull request #4582 from renpy/confirm-action
Allow layout.yesno_screen and Confirm to take lists of actions
2023-04-26 23:40:14 -04:00
Gouvernathor d795f03b13 doc interlinks 2023-04-27 05:29:17 +02:00
Gouvernathor 1e5355e727 whitespace 2023-04-27 04:55:49 +02:00
Tom Rothamel c5571e6637 Add config.linear_fades.
This is is a vairable that returns the pre-8.1 fade behavior,
which was linear in amplitude, and so would perceptually barely
fader and then fade out all at once.

Fixes #4580.
2023-04-26 22:55:47 -04:00
Gouvernathor 64aab8a62e use renpy.run instead of calling 2023-04-27 04:55:35 +02:00
Tom Rothamel 774991431e Avoid generating translations for empty extends.
Per #4581.
2023-04-26 19:22:58 -04:00
Andy_kl a687f5ec13 Use collections.deque in walk_memory.
This makes the function way, way faster. Seconds instead of hour to walk 1GB of RAM.
2023-04-27 01:23:37 +04:00
Tom Rothamel 59c9ce1901 Add GetMixer().
This is an action that can display a mixer, either as a value
or in DB.
2023-04-26 00:51:16 -04:00
Tom Rothamel 1edb2c8cde Better document what SVG is supported. 2023-04-25 21:49:36 -04:00
shawna-p bb568d4b5f Merge branch 'renpy:master' into master 2023-04-25 15:09:33 -04:00
shawna-p 24d991ae77 Allow the None transition for ShowMenu 2023-04-25 15:08:55 -04:00
Tom Rothamel 78ba95403f Prevent audio from starting during a global pause.
* Prevent non-looping audio entirely.
* Avoid starting music until unpaused

Fixes #4568.
2023-04-25 01:31:02 -04:00
Tom Rothamel bb798c2db9 Make all hyperlinks active immediately when text is not slow.
Fixes #4569.
2023-04-25 00:17:21 -04:00
Tom Rothamel 9cfbd3a75d Merge pull request #4573 from Kassy2048/web_sync_fix
Fix sync download for web
2023-04-24 18:53:32 -04:00
Kassy 302d4fe1c1 Fix sync download for web 2023-04-24 19:41:17 +02:00
Tom Rothamel 6b0332a566 Merge pull request #4564 from renpy/bubbledoc
Tweak and fix bubble doc
2023-04-24 11:02:11 -04:00
Tom Rothamel e3e78a7524 Always apply the default parameters to a transition.
Fixes #4551.
2023-04-24 09:28:54 -04:00
Gouvernathor c547bf3623 Fix wrong config name, quadratic_volumeS 2023-04-24 15:00:36 +02:00
Tom Rothamel 42bc1ccb79 Fix zzoom.
* Fix the implementation.
* Fix the documentation.

Fixes #4556.
2023-04-24 00:59:41 -04:00
Tom Rothamel 4613ee1fa4 doc: Fix the name of config.quadradic_volumes.
Fixes #4554.
2023-04-23 23:08:29 -04:00
Tom Rothamel 8279f4aad0 Do not create a new scope when going from predicting -> updating.
The scope itself will be shared with constant displayables, so
clear it rather than replacing it with a new object.

Fixes #4563.
2023-04-23 22:55:41 -04:00
Gouvernathor dd00c19708 Update bubble doc 2023-04-23 23:46:57 +02:00
Ayowel dd33c939ab Ensure ios_create uses the target project's information 2023-04-23 22:40:25 +02:00
Gouvernathor 510b19018d Update and fix french translations 2023-04-23 22:23:05 +02:00
Moshibit 1784db4663 Update Spanish translation (#4560)
* Update developer.rpy

* Update screens.rpy
2023-04-23 22:00:26 +02:00
Morgan Willcock bfcbb95156 Fix _ren.py format changelog example (#4557) 2023-04-23 16:40:56 +02:00
Tom Rothamel 37f7a397e3 Merge pull request #4553 from Kassy2048/prefix_movie
Apply path prefixes when loading movies for web
2023-04-23 00:40:23 -04:00
Kassy 830b122a1f Apply path prefixes when loading movies for web 2023-04-23 02:31:18 +02:00
Tom Rothamel f43208cce6 doc: Changelog fixes. 2023-04-22 17:31:51 -04:00
Tom Rothamel 8cb2379b25 Merge pull request #4550 from renpy/split-prop-pure
Mark renpy.split_properties as pure
2023-04-22 15:17:48 -04:00
Gouvernathor 811b135690 Mark renpy.split_properties as pure 2023-04-22 21:10:10 +02:00
Tom Rothamel f6460ed448 doc: More credits. 2023-04-22 14:42:46 -04:00
Tom Rothamel 617bd43afb doc: Update sponsor list. 2023-04-22 14:38:38 -04:00
Tom Rothamel 2c9c8205ee doc: Credits. 2023-04-22 14:38:38 -04:00
Gouvernathor 9c2c8c9535 doc: bad include 2023-04-22 20:04:19 +02:00
Tom Rothamel ece477836c doc: Fixes and edits. 2023-04-22 13:04:26 -04:00
Tom Rothamel eb47fc4500 Limit how far we try to scry extend.
Fixes #4548.
2023-04-21 22:52:21 -04:00
Tom Rothamel f322828baf Fix translations. 2023-04-21 21:50:27 -04:00
Tom Rothamel 20f1a76637 doc: Licenses. 2023-04-21 21:43:55 -04:00
Tom Rothamel 9cdd8a2654 doc: Changelog. 2023-04-21 21:24:56 -04:00
Gouvernathor 160fdd8489 Update tutorial translations from the launcher translations 2023-04-22 01:26:51 +02:00
Gouvernathor 48b1aeb5f3 Remove wrongly translatable string 2023-04-22 01:23:11 +02:00
Gouvernathor 54ec403f5b Cleanup french translation files
Using the brand new orphan translation flagging
2023-04-22 01:22:19 +02:00
Gouvernathor b7213f4b78 Forgotten in last 2023-04-22 01:20:29 +02:00
Gouvernathor 211da69d08 Update text_align -> textalign in translations
follow-up to a1f6312
2023-04-22 00:56:24 +02:00
Tom Rothamel c15f4c3487 doc: JSONDB. 2023-04-21 00:51:59 -04:00
Tom Rothamel 417aee0bff doc: Sync actions. 2023-04-21 00:38:56 -04:00
Tom Rothamel 9c130cf149 Doc and changelog areapicker.
And improve the screen language documentation for drag and
draggroup.
2023-04-21 00:29:14 -04:00
Tom Rothamel 49e7e9182e Merge pull request #4543 from renpy/reachme
Reachability tweaks
2023-04-20 20:30:45 -04:00
Asriel Senna 6ad43c2b8b Add a type check on data saved in persistent 2023-04-21 00:08:28 +02:00
Tom Rothamel 27fd71815e live2d: Create a second copy of each mesh to use as a mask.
This is because the first copy was getting its shaders changed,
which would cause a problem when that copy was being used as a
mask.

This would cause a problem when a live2d layer both used a mask
and was used as a mask.

Per https://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=66455
2023-04-20 01:00:23 -04:00
Gouvernathor 9db0ec1683 Simplify CDS linting
Use elif instead of if
Merge two loops
Make builtin statements use the weakly_reachable set instead of a separate mechanism
Avoid a set update if the original is not read afterwards
2023-04-19 16:17:01 +02:00
Gouvernathor 1b62055d69 Better document how the reachable method works 2023-04-19 16:10:13 +02:00
Tom Rothamel 3deca06054 Allow statements to mark themselves as weakly reachable.
These are statements that are not reported as unreachable, but
will only pass reachability to the next statement if the statement
is actually reachable.
2023-04-19 01:09:30 -04:00
Tom Rothamel 9a250ccdc5 Add reachable as a method on user statements.
If given, this lets a statement register a function that
determines if it is reachable, and what is reachable
from the statement.
2023-04-18 23:23:39 -04:00
Tom Rothamel fb803ea05c Force a new checkpoint to begin when checkpointing is suspended.
Per #4534.
2023-04-17 23:29:15 -04:00
Tom Rothamel 04d9ea3016 itch: Make the channels configurable.
Fixes #4481.
2023-04-17 01:33:38 -04:00
Tom Rothamel 1f26d829d1 doc: Reload is disabled when autoreload is active. 2023-04-16 21:39:47 -04:00
Tom Rothamel d9b30cf8a1 Merge pull request #4537 from renpy/replay-action
Replay action's lockedness
2023-04-15 23:00:20 -04:00
Tom Rothamel ebcc0ce7dc Believe _choose_attributes when it chooses attributes.
Even if it does odd things, like removing a required attribute
from the list of attributes.

Fixes #4505.
2023-04-15 15:10:04 -04:00
Gouvernathor 8a2c6d4dc4 Better behavior for the locked parameter 2023-04-15 19:21:49 +02:00
Gouvernathor 5c400fdbc9 Accurate doc entry 2023-04-15 19:14:22 +02:00
Tom Rothamel 34a011e79f Python string prefixes must immediately precede delimiters.
Fixes #4535
2023-04-15 12:33:12 -04:00
Gouvernathor 7545b87364 Fix rst comment block
yes, sphinx is *that* annoying
2023-04-15 17:26:16 +02:00
Tom Rothamel 72f0535fb3 Prevent greedy rollbacks from passing through suspend_checkpointing.
Fixes #4534.
2023-04-15 01:28:30 -04:00
Tom Rothamel e776a4c3f5 doc: SVG. 2023-04-14 01:50:22 -04:00
Tom Rothamel e439957896 Document last change. 2023-04-14 01:04:10 -04:00
Tom Rothamel dffbe3521c Allow triple quoted strings to be used in simple expressions.
For example:

text """\
line 1
line 2
line 3"""

is now allowed.
2023-04-13 23:34:55 -04:00
Tom Rothamel 1fad559548 doc: Speech bubble dialogue. 2023-04-13 00:28:46 -04:00
Tom Rothamel e6fec6ea50 doc: Credit. 2023-04-12 01:10:24 -04:00
Tom Rothamel a427a6611b gl2: Restore the window position after a reload. 2023-04-12 00:36:39 -04:00
Tom Rothamel 9932e4e892 Allow Character's kind argument to be a namspace.
The main reason for this is to allow Character(kind=bubble), which
looks way nicer that Character(kind=bubble.character) to me.
2023-04-11 23:42:56 -04:00
Tom Rothamel e702a15785 bubble: Add shift+B as a way of toggling the bubble editor. 2023-04-11 23:40:30 -04:00
Tom Rothamel cf7910687f bubble: Add four speech bubbles by default. 2023-04-11 23:25:39 -04:00
Tom Rothamel 2a6c719678 Clean language dependent data when jumping back after a load.
Fixes #4525.
2023-04-10 22:28:52 -04:00
Tom Rothamel 9f08129084 Fix steam.activate_overlay_to_web_page.
Fixes #4526.
2023-04-10 01:12:38 -04:00
Tom Rothamel 40e81d44a4 bubble: Support expanding beyond what's given.
This will provide room for tails.
2023-04-09 00:39:19 -04:00
Tom Rothamel 40ac61bf23 Merge pull request #4523 from awaken1ng/fix-compat
Fix compat using unknown config option.
2023-04-08 23:24:11 -04:00
Tom Rothamel 16372810e5 Reset the video to the beginning when it is shown again.
As opposed to when it's hidden.

Per the discussion at #4508.
2023-04-08 21:33:43 -04:00
awakening f2a76c5872 Fix compat using unknown config option.
Fixes `Exception: config.timer_blocks_pause is not a known configuration variable.`

7d4610d13d introduces `modal_blocks_timer`
which is probably what was meant to be used here.
2023-04-08 19:44:49 +07:00
Tom Rothamel 3350ffa713 gl2: Add functions to allow a user to create a mesh from Python.
Per request via discord.
2023-04-07 23:27:18 -04:00
Tom Rothamel bf0634f738 Disable skip mode in the launcher. 2023-04-07 14:28:44 -04:00
Tom Rothamel 13f9b3d04c Remove pointless maintenance of ctx.updating. 2023-04-07 14:27:05 -04:00
Tom Rothamel 1d96e7a16f Fix Scroll action.
Fixes #4520.
2023-04-07 00:18:08 -04:00
Tom Rothamel df524315a8 sl2: Do not reuse the scope when showing a 'used' screen.
This fixes the default statement when in a used screen that's
passed different parameters than it was predicted with.

Fixes #4519.
2023-04-06 22:51:13 -04:00
Tom Rothamel 7c082f0fb5 Fixes to applying 3d state properties.
Recent changes made many of the properties incorrectly conditional
on each other, which prevented the properties from working
correctly.

Fixes #4518.
2023-04-06 21:33:29 -04:00
Tom Rothamel 6d637237ff doc: Extend the gl1 timeline slightly further. 2023-04-06 20:26:13 -04:00
Tom Rothamel 2f6556052a doc: Correct version. 2023-04-06 20:09:24 -04:00
Tom Rothamel 9a6448dd94 doc: Pending deprecations.
* Mention the planned removal of gl1 and Python 2/Ren'Py 7.
2023-04-06 19:05:24 -04:00
Tom Rothamel 54f62730a2 Fit the error that occurs if a style statement has two is clauses.
Per #4510

Co-authored-by: <Ayowel@users.noreply.github.com>
2023-04-06 00:31:33 -04:00
Tom Rothamel ca7c78dbcd Only reset a channel if a hide happens.
Fixes #4508.
2023-04-05 22:29:01 -04:00
Moshibit 16fb5ffb85 Update Spanish translation (#4511)
* Update gui.rpy

* Update launcher.rpy

* Update screens.rpy
2023-04-05 18:38:42 +02:00
Gouvernathor aea1129812 Update translations 2023-04-05 06:59:54 +02:00
Tom Rothamel 46320ddcd4 Fix the type of paths on mac.
Fixes #4509.
2023-04-05 00:48:56 -04:00
Tom Rothamel a65cdd6f0e Fix the Android JDK link.
Add a bit of abstraction so it'll only need to be restranslated
once, and route it through renpy.org so the links can't break.
2023-04-05 00:48:56 -04:00
Gouvernathor 9d275e9349 doc: forgotten markup 2023-04-04 20:01:15 +02:00
Gouvernathor 534fb0f9f6 Fix typo in docstring 2023-04-04 19:58:17 +02:00
Gouvernathor 005be375fc french translations 2023-04-04 17:50:28 +02:00
Tom Rothamel b2d5dd87fa Ignore ATL transition arguments when comparing contexts.
The new_widget argument will be different each time the
interaction restarts - but it generally represents the same
thing, and so it makes sense to consider it equal for the
purposes of this test.

Fixes #4167.
2023-04-03 00:08:28 -04:00
Tom Rothamel a6b99364aa Propagate ATL state between transitions when an interaction restarts.
This partially addresses #4167.
2023-04-02 23:38:59 -04:00
Tom Rothamel e5c2e7f88c doc: Last change. 2023-04-02 23:35:45 -04:00
Tom Rothamel 907ba19bea tts: Make it respect the voice volume mixer.
At least more or less, as it generally doesn't go through Ren'Py.
But on all platforms where voice is supported, the amplitude of
voice is controlled by the voice mixer

This also makes the voice volume mixer available on the
accessiiblity screen, so the volume can be adjusted even
if the game doesn't otherwise use voice.

Fixes #4161.
2023-04-02 20:56:15 -04:00
Tom Rothamel 74d8c5c398 gl2: Handle the interaction of maximized, fullscreen, and window size/location.
The maximized flag is persisted, so that if the game is shut down
when maximized, it will start up again maximized.

The size of the game is only stored when non maximized or fullscreen,
so only sensible game sizes are persisten.

Switching from fullscreen to maximized or vice versa goes through
the windowed state.

The first time the window is in the windowed state, it's moved to the
center of the screen - rather than being undefined when the game
starts fullscreen.

Fixes #4155.
2023-04-02 19:06:07 -04:00
Tom Rothamel f65c1a1af3 Merge pull request #4497 from mal/fix-style-optimisation
Let Transforms benefit from style optimisation
2023-04-02 00:14:01 -04:00
Mal Graty b740e723a3 Let Transforms benefit from style optimisation
In ef6173de4f we added the facility for
alt text to be passed through Transforms to allow its use in SL2. A side
effect of this was to always pass alt text, meaning that the underlying
Displayable's properties could never be empty (they'd contain alt=None).
This has been preventing Transforms benefiting from the optimised code
path in Displayable that avoids creating a new anonymous style.

In order to address this, we now filter out arguments passed to
Transform that ought to be propagated up to the parent class, sending
them only when defined, thus re-enabling the optimisation for the vast
majority of Transform instances.
2023-04-02 04:47:41 +01:00
jsfehler 62232d6cfa docs: Add note for StylePreference about update event getting called 2023-04-01 15:01:24 -04:00
Tom Rothamel 5bdb9b5459 Name Ren'Py 8.1 and Ren'Py 7.6. 2023-04-01 02:03:57 -04:00
Tom Rothamel d70d6b8f26 Merge pull request #4494 from renpy/comments-in-shader-variables
Allow comments in shader variables lists
2023-03-31 22:45:35 -04:00
Gouvernathor 44cdc09745 Allow comments in shader variables lists 2023-03-30 22:56:44 +02:00
Tom Rothamel 1291c3cb26 Slightly adjust controller deadbands (based on my experience). 2023-03-30 02:11:08 -04:00
Tom Rothamel 493edfbb82 Add renpy.load_rgba, loading a rgba string into a surface.
This is intended to support image data being created elsewhere,
loaded in via ctypes, and then passed into Ren'Py.
2023-03-29 23:27:25 -04:00
Tom Rothamel ec6277588d Allow the Ren'Py audio system to be extended. 2023-03-29 23:27:25 -04:00
Tom Rothamel 3f057f159a Make the audio buffer size configurable. 2023-03-29 23:27:25 -04:00
Tom Rothamel 420e167d41 Merge pull request #4491 from renpy/fix-__-munging
Fix name-munging
2023-03-29 12:27:16 -04:00
Gouvernathor 2828f3b517 Fix name-munging 2023-03-29 18:03:53 +02:00
Tom Rothamel c378247a39 Add config.display_start_callbacks.
This is intended to be used to let DLLS gain access to GL functios
before a frame is renderer.
2023-03-29 01:57:15 -04:00
Tom Rothamel 9ab745db85 Increase the contrast of the light GUI.
Fixes #4470.
2023-03-29 01:43:44 -04:00
Tom Rothamel f92022308d Disable ui-less IME.
Which shows the candidate list for languages that require one -
not sure why this isn't the default.

Fixes #4474.
2023-03-28 02:44:59 -04:00
Tom Rothamel 4f0e882d97 Set empty properties on a texture.
Fixes #4488.
2023-03-28 02:04:34 -04:00
Tom Rothamel 46f62133d1 Add movie groups.
When a movie in a group is starting, and doesn't have the first
frame, it checks to see if another movie in the group is playing.
If so, it takes the frame from the other movie - preventing flashes
of transparency when switching movies.

Fixes #4475.
2023-03-28 01:46:15 -04:00
Tom Rothamel 77889607f3 gl2: Use a 1px framebuffer for is_pixel_opaque.
So there's less to clear.
2023-03-27 01:39:24 -04:00
Tom Rothamel f92dcd8068 doc: Anonymous transforms on the first sl line. 2023-03-26 10:20:57 -04:00
Tom Rothamel 815a3999b4 Compat for c492f2f8e6. 2023-03-26 10:16:52 -04:00
Tom Rothamel 11c9b8f34b Revert "Consider all variables in the #4095 fix, not just locals."
This reverts commit d2b5f2fdc9.

This doesn't seem like the right fix, as it has the potential to
cause memory leaks. I'm going to compat the old behavior, and
require it to be explicit.
2023-03-26 09:59:41 -04:00
Tom Rothamel cfe892405e sl2: Allow at transform outside of a block.
This makes for a more compact syntax.
2023-03-26 09:58:52 -04:00
Tom Rothamel d2b5f2fdc9 Consider all variables in the #4095 fix, not just locals. 2023-03-26 03:42:41 -04:00
Tom Rothamel 8c4387bae4 Merge pull request #4486 from KiloOscarSix/master
Fixed incorrect behaviour for ToggleDict.get_sensitive()
2023-03-26 03:05:22 -04:00
Tom Rothamel bfb3955e9e Merge pull request #4483 from Kassy2048/touch_alternate_fix
Cancel long press wait when user stops touching the screen
2023-03-26 03:01:24 -04:00
Oscar Six 1498f625df Fixed incorrect behaviour for ToggleDict.get_sensitive() when using lists 2023-03-26 05:25:39 +01:00
Kassy 9523222b37 Only check for mouseup when long press is being detected 2023-03-26 01:39:27 +01:00
Kassy 9c197abca3 Cancel long press wait when user stops touching the screen 2023-03-26 00:26:00 +01:00
Tom Rothamel d3dbc40749 accelerator: Cythionify, add typing information, and document. 2023-03-25 12:25:12 -04:00
Tom Rothamel 6362ad8550 quaternion: Add cython types. 2023-03-25 10:56:07 -04:00
Tom Rothamel 04a73d2ad4 Remove old theme. 2023-03-25 10:30:54 -04:00
Tom Rothamel ddfcf67486 Make the total texture size a Python object.
(Preventing a crash if we get the calculation wrong.)
2023-03-25 10:29:49 -04:00
Tom Rothamel 8f5a32deeb Merge pull request #4477 from kyouryuukunn/fix_README
add README sphinx_rtd_theme sphinx_rtd_dark_mode
2023-03-25 10:24:55 -04:00
kyouryuukunn 5155c08f54 add README sphinx_rtd_theme sphinx_rtd_dark_mode 2023-03-25 19:09:57 +09:00
Tom Rothamel 7511c3ff42 Move quaternion code into its own pyx file.
This is a combination of it seeming like something meaty enough
that it might grow into more operations, and this taking 5s
for clang to compile.
2023-03-25 02:50:54 -04:00
Tom Rothamel e4ff027499 accelerator: Break up transform_render fully.
Break the ridiculously long transform_render function into a
number of smaller methods in a class, and use fields on that
class to store data used by multiple methods.

This is mostly to speed up compilation time by reducing how much
work clang has to do to compile things.

This is a work in progress - it's not well tested, and typing
information is missing or commented out. But it's enough to
render basic displayables.
2023-03-25 02:32:27 -04:00
Tom Rothamel 1cccdbdaaf Create a class to render transforms.
Basically, to store the variables that had been updated by
the crazy-big transform_render function.
2023-03-24 23:15:15 -04:00
Tom Rothamel 1a100a0006 accelerator: Begin to break up transform_render. 2023-03-24 03:04:19 -04:00
Tom Rothamel 2863bb2d88 live2d: Sort the properties to ensure a stable order. 2023-03-24 01:00:58 -04:00
Tom Rothamel 14f653f0a5 Attributes can't be required and optional.
Fixes #4466.
2023-03-24 01:00:58 -04:00
Gouvernathor 93fe44fa94 Fix wrong SetField use
It does take a fourth parameter, kind, which is private and only used for error messages when the target is not found/writable. It takes a string, so this code doesn't make sense.
My mistake, btw.
2023-03-23 19:40:15 +01:00
Tom Rothamel e73c750ef1 launcher: Make selected text more obvious.
Fixes #4471.
2023-03-22 23:00:05 -04:00
Tom Rothamel b929fa838c Apply pixel_perfect to renders rather than models.
This means that all the models that are underneath the render will be
adjusted together, so that relative blits all wind up in the same
place.

This is mostly the case for text, where things like centering, slow
text, and outlines could cause text to appear in different locations, and then be
drawn separately - only to jump into place when slow text finished and
the Text was drawn as a whole.

Fixes #4103.
2023-03-22 22:53:38 -04:00
Mal Graty d25bd3c01f Fix orientation interpolation
Ended up with an erroneous indent after the recent point_to changes.
2023-03-22 14:46:35 +00:00
Gouvernathor 1a9870ad5a doc: fix wrong role 2023-03-22 14:26:49 +01:00
Tom Rothamel fbbc8e0e34 Replace point_to True with point_to Camera()
The latter seems like a more readable syntax to me, as True doesn't
really feel associated with the camera. (And this provides a place
to store the layer.)
2023-03-22 02:45:01 -04:00
Tom Rothamel cc77af4d9f Move the point_to logic from ATL to Transform.
This is for two reasons:

* It allows point_to True to work in Transforms, at least if we figure
  out a way to refresh Transforms when the camera changes.

* It gets things right if the camera changes position while not
  interpolating point_to.
2023-03-22 02:11:01 -04:00
Tom Rothamel 65ff148898 Merge pull request #4449 from kyouryuukunn/allow_poi_tag_and_camera3
allow point_to to take camera
2023-03-21 22:01:01 -04:00
Tom Rothamel 24ad7c9a01 Merge pull request #4464 from renpy/fix-im-always-doc
Python equivalent of layeredimage's Always layer
2023-03-21 21:58:41 -04:00
Gouvernathor 6ce6a877a5 doc: Python equivalent of layeredimage's Always layer 2023-03-21 20:30:19 +01:00
Tom Rothamel 65bceeddba End ongoing transitions after rollback.
Fixes #4105.
2023-03-21 02:19:05 -04:00
Tom Rothamel 77cb945b9f On Android and iOS, log the Ren'Py version to stdout. 2023-03-20 22:26:50 -04:00
Tom Rothamel eab3d2dab4 Fix how None interacts with the pressed mouse state. 2023-03-20 20:17:59 -04:00
kyouryuukunn 4e3d66b975 remove tag from point_to 2023-03-20 17:36:24 +09:00
Tom Rothamel a192a352e1 sl2: Allow both 'at' and 'at transform' to be given to the same statement.
Fixes #4455.
2023-03-19 23:55:17 -04:00
kyouryuukunn c4e9a64b1e simplify codes around poi 2023-03-20 12:31:09 +09:00
Tom Rothamel 533cbe10e3 gamepad: Process more than one analog axis motion per frame.
Fixes #4178, more or less. This certainly makes the controller more
responsive, though perhaps not as good as desktop.

This also gains a bit of performance by reducing how far the
controller needs to deflect, and introdces hysteresis to
prevent spurious controller events.
2023-03-19 15:44:59 -04:00
Tom Rothamel c492f2f8e6 atl: Only compare contexts based on used variables.
This is useful in screens, where a transform might have a context
contains many variables that are not used by the transform. The
transform shouldn't restart when an irrelevant variable is
changed.

Fixes #4095.
2023-03-19 14:20:38 -04:00
Tom Rothamel 9249c6ffd4 sl2, atl: Compile ATL transforms in screens.
These transforms weren't being compiled before the game started.
2023-03-19 14:20:38 -04:00
kyouryuukunn 98609fe72f remove 2-tuple format from point_to 2023-03-19 13:14:50 +09:00
kyouryuukunn 03bf276e15 fix 2023-03-19 12:44:50 +09:00
Tom Rothamel d52fa74ffd Merge pull request #4454 from valery-iwanofu/input_multiline
Multiline support for input
2023-03-18 12:00:13 -04:00
valery.iwanofu 15d2e037fe Multiline support for input 2023-03-18 21:09:57 +07:00
Tom Rothamel 2da6f8cab0 Avoid cache.get keeping the surface in memory when returning a texture. 2023-03-18 01:08:18 -04:00
Tom Rothamel 8c331b336e gl2: More accurate accounting of texture memory.
This adds a 1.34x multiplier to textures that have mipmaps associated
with them, and only indicates that a texture is consuming memory when
it's been transferred to the GPU.
2023-03-18 00:54:37 -04:00
Tom Rothamel 8e90d2f6ab Add a 1.34x multiplier to account for mipmapping.
Increase the default image cache size to match. This won't actually
increase the amount of memory used by the image cache, just
makes the setting match the memory being used.
2023-03-17 22:27:32 -04:00
kyouryuukunn 01c9e137e0 consider camera anchor when calculating point_to camera 2023-03-17 23:01:30 +09:00
kyouryuukunn 47418aa92d allow point_to to take "tag" or camera 2023-03-17 14:35:16 +09:00
Tom Rothamel c998b456a1 Merge pull request #4447 from renpy/point-to
Rename poi to point_to
2023-03-16 18:46:07 -04:00
Gouvernathor bb34b38432 Update renpy/display/accelerator.pyx
Co-authored-by: Mal Graty <mal.graty@googlemail.com>
2023-03-16 12:50:55 +01:00
Tom Rothamel ca1871863b Only close fds if stdout/stderr/stdin are not being used.
Fixes #4445.
2023-03-16 01:17:42 -04:00
Gouvernathor 9475a0f4b8 Better phrased error message 2023-03-16 05:26:07 +01:00
Gouvernathor 606a196e52 Rename poi to point_to (and simplify code) 2023-03-16 05:18:27 +01:00
Gouvernathor bcfdb73715 Simplify and optimize some code 2023-03-16 05:07:10 +01:00
Tom Rothamel f8673861aa Go back to the default colorspace, but with the full JPEG range.
Per #4263.
2023-03-15 22:56:07 -04:00
Tom Rothamel 1947db8acd Merge pull request #4444 from mal/improve-savedump
Improve savedump
2023-03-15 22:10:55 -04:00
Tom Rothamel 260b8f5f8d Merge pull request #4443 from mal/fix-tint-matrix
Fix TintMatrix to respect alpha
2023-03-15 21:25:17 -04:00
Mal Graty e5f58fe935 savedump: Add function support 2023-03-15 18:38:32 +00:00
Mal Graty cfee63b880 savedump: Keep pickle protocol in-sync 2023-03-15 18:21:58 +00:00
Mal Graty ee817a32f4 savedump: Write warning into cache
Previously it would never have been used.
2023-03-15 17:45:49 +00:00
Mal Graty 8039704b0d savedump: Improve representation of singletons 2023-03-15 17:45:11 +00:00
Mal Graty c0ff662d60 matrixcolor: Fix TintMatrix to respect alpha
Per the documentation, the alpha shouldn't ever have been impacted.

This change instead treats the alpha in the supplied RGBA value as the
tint opacity rather than applying the tint formula to the alpha channel.
The result is the ability to use a colour value of #FF000080 to apply
a 50%-red tint to the target.
2023-03-15 17:23:05 +00:00
Tom Rothamel bfd6f2c9a8 Clear a deferred side image if a say statement runs.
Fixes #4438.
2023-03-15 02:27:27 -04:00
Tom Rothamel faa9155c88 More work on #4263.
Fundamentally, the problem is that ffmpeg's yuv->rgb conversion is
inaccurate, unless it's given flags that cause a ~12x slowdown -
SWS_ACCURATE_RND or SWS_ERROR_DIFFUSION.

That's not tolerable, so we do enable SWS_FULL_CHR_H_INT and
SWS_FULL_CHR_H_INP, which seem to improve things somewhat, without
slowing down conversion by much.

We now also default to the ITU 709 colorspace, which is the default
for HD video.
2023-03-14 23:18:15 -04:00
Tom Rothamel 444d002304 Revert "ffmedia: Convert to YUV444, then RGB."
This reverts commit a516bda700.

This conversion was too slow for practical use.
2023-03-14 23:13:32 -04:00
Tom Rothamel 2f56256a82 doc: Renpy.redraw is documented in cdd.rst. 2023-03-14 18:48:04 -04:00
Tom Rothamel 16cba5ef11 Remove debug print. 2023-03-14 01:29:46 -04:00
Tom Rothamel 53b9879a7a Limit the size of the icon to 1024x1024.
A 2048x2048 icon causes an X11 crash.
2023-03-14 00:37:11 -04:00
Tom Rothamel a628b2dba3 Document that being redrawn cancels redraw. 2023-03-13 23:51:21 -04:00
Tom Rothamel e45a3b18ae Separate angle and radius in ATL.
This allows angle and radius to be computed in parallel.

Fixes #4118.
2023-03-13 22:05:02 -04:00
Tom Rothamel a3b8f75a8d Avoid reverting the slast serial number.
This prevents slast nodes from getting the same serial number
after a shift+R reload.
2023-03-13 00:10:57 -04:00
Tom Rothamel a516bda700 ffmedia: Convert to YUV444, then RGB.
This works around some issues, reported in #4263, where going
from YUV420 to RGB directly produces artifacts. The two-step
conversion process eliminates these artifacts.
2023-03-12 18:29:34 -04:00
Tom Rothamel 44e23a9665 Use bilinear interpolation when resampling video.
This should only kick in when resampling movies that are
chroma subsampled, as the luma should always be full size.

Fixes #4263
2023-03-12 00:02:19 -05:00
Tom Rothamel 45e5535e89 Allow greedy rollback to the statement after renpy.block_rollback.
Previously, it woudn't proceed past the next checkpoint after
renpy.block_rollback, which could be several statements away.

Fixes #4138.
2023-03-11 23:08:11 -05:00
Gouvernathor 652a06c1a8 doc: remove obsolete name-munging in f-strings warning 2023-03-12 02:31:12 +01:00
Tom Rothamel e48cd58b2c Add config.file_slotname_callback and config.autosave_prefix_callback.
The former allows a game to customize the mapping from page and name
(used by the File actions) to slot (used by the save functions).

The latter lets the names of the autosaves Ren'Py generates be
customized to match.

Fixes #4067.
2023-03-11 20:27:03 -05:00
Tom Rothamel 8f2c27979a doc: Changelog f-string variable munging. 2023-03-11 19:21:21 -05:00
Tom Rothamel 0d7e5ec9e5 Munge variables in f-strings beginning with __.
As per the rest of Ren'Py. Rather than parsing f-strings ourselves,
this is done as part of the Python compiler.

Fixes #4084.
2023-03-11 18:14:11 -05:00
Tom Rothamel d89c89f368 Munge a _ren.py file the same as the .rpy file it replaces. 2023-03-11 17:44:01 -05:00
Tom Rothamel ec48202e27 Use equality when comparing InputValues.
This is to match the way equality is used in sl2ast to avoid
updating the displayables.

This could be wrong if two displayables use the same (or equal)
InputValues, but that's likely a rare situation.

Fixes #4042.
2023-03-11 16:45:50 -05:00
Tom Rothamel 245576331b Duplicate the control argument of AlphaDissolve.
So that the transform that's being used doesn't run.

Fixes #4435.
2023-03-10 22:31:18 -05:00
Tom Rothamel d426c80761 doc: Fix typo. 2023-03-10 09:14:10 -05:00
Tom Rothamel 303dadf377 Drag improvements.
* Apply displayable before calling per_interact, fixing set_child.
* In the examples, show the use of add rather than child, as the
  style property is for specialized use.

Fixes #4432
2023-03-09 23:55:58 -05:00
Tom Rothamel f50be5712d Merge pull request #4434 from via-my/master
Logical mistake
2023-03-09 20:56:59 -05:00
LaUwUrence ea76473e81 Logical mistake 2023-03-10 00:32:46 +04:00
Tom Rothamel 6662238338 Merge pull request #4428 from Kassy2048/webloader_voice
Remove useless double iteration
2023-03-09 00:14:32 -05:00
Tom Rothamel c33f5c4d3d Force the browser out of fullscreen on input.
Fixes #4429.
2023-03-08 19:14:29 -05:00
Kassy 54fb3d9be8 Remove useless double iteration 2023-03-08 13:50:26 +01:00
Tom Rothamel 5c0f86c19e Update Android strings. 2023-03-08 02:28:58 -05:00
Gouvernathor 1e5c227909 Say statement equivalents tweaks and refactor (#4294)
* doc: tweak and warn about say statement equivalents

* doc: move things around about say statement equivalents

Drain the part about it from the dialogue page
Add a link from there to the statement equivalents page
Add the warning about skipping seen dialogue
Incorporate other explanations, examples and the dialogue window management equivalents

* doc: add more advice about use of the character store

* Remove out-of-place explanation

* Clarify, reorganize, readd interact info with more

* Move the interact override hierarchy around

but leave the interact being passed automatically in the call in the statement equivalents page

* More information about say_arguments_callback

* Add example for say_arguments_callback

fixes #4319
2023-03-08 02:16:48 -05:00
Tom Rothamel 6c8996207b Remove an isinstance check in per_interact().
By moving it into the Layer displayable, we can save the call.
2023-03-08 00:50:02 -05:00
Tom Rothamel cd8b496876 Visit the image child of a Frame.
Fixes #4005.
2023-03-07 23:05:17 -05:00
Tom Rothamel 2379d75173 py2: Default subprocess.Popen's close_fds to True.
This matches the behavior change in Python 3.

Fixes #4425.
2023-03-07 20:31:13 -05: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 553ada3b04 Lint parameters shadowing builtin names 2022-08-18 22:38:43 +02:00
Gouvernathor 0b1edb13de Update preferences.rpy 2022-06-23 16:46:51 +02:00
593 changed files with 58990 additions and 12398 deletions
+6
View File
@@ -103,6 +103,9 @@ cache/
# Pygame_sdl2.
/pygame_sdl2
# Updater.
update.pem
# Steam.
steam_appid.txt
/steamapi.py
@@ -127,3 +130,6 @@ CubismSdkForNative-4-*.zip
# Works in progress, throwaway scripts, etc.
/scratch
/*-dists
/c
/cg
/.vscode/launch.json
+155
View File
@@ -56,4 +56,159 @@
"renpy.warnOnInvalidVariableNames": "Disabled",
"renpy.warnOnInvalidFilenameIssues": "Disabled",
"renpy.warnOnIndentationAndSpacingIssues": "Disabled",
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "renpy.meta.plain",
"settings": {
"fontStyle": ""
}
},
{
"scope": "renpy.meta.i",
"settings": {
"fontStyle": "italic"
}
},
{
"scope": "renpy.meta.b",
"settings": {
"fontStyle": "bold"
}
},
{
"scope": [
"renpy.meta.u",
"renpy.meta.a"
],
"settings": {
"fontStyle": "underline"
}
},
{
"scope": "renpy.meta.s",
"settings": {
"fontStyle": "strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.b",
"settings": {
"fontStyle": "italic bold"
}
},
{
"scope": "renpy.meta.i renpy.meta.u",
"settings": {
"fontStyle": "italic underline"
}
},
{
"scope": "renpy.meta.i renpy.meta.s",
"settings": {
"fontStyle": "italic strikethrough"
}
},
{
"scope": "renpy.meta.b renpy.meta.u",
"settings": {
"fontStyle": "bold underline"
}
},
{
"scope": "renpy.meta.b renpy.meta.s",
"settings": {
"fontStyle": "bold strikethrough"
}
},
{
"scope": "renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "underline strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.b renpy.meta.u",
"settings": {
"fontStyle": "italic bold underline"
}
},
{
"scope": "renpy.meta.i renpy.meta.b renpy.meta.s",
"settings": {
"fontStyle": "italic bold strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "italic underline strikethrough"
}
},
{
"scope": "renpy.meta.b renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "bold underline strikethrough"
}
},
{
"scope": "renpy.meta.i renpy.meta.b renpy.meta.u renpy.meta.s",
"settings": {
"fontStyle": "italic bold underline strikethrough"
}
},
{
"scope": "renpy.meta.color.text",
"settings": {
"foreground": "#ffffff"
}
},
{
"scope": "text.notes.info",
"settings": {
"foreground": "#17a2b8",
"fontStyle": "bold"
}
},
{
"scope": "text.notes.success",
"settings": {
"foreground": "#28a745",
"fontStyle": "bold"
}
},
{
"scope": "text.notes.warning",
"settings": {
"foreground": "#ffc107",
"fontStyle": "bold"
}
},
{
"scope": "text.notes.danger",
"settings": {
"foreground": "#dc3545",
"fontStyle": "bold"
}
},
{
"scope": "renpy.meta.color.#fff",
"settings": {
"foreground": "#fff"
}
},
{
"scope": "renpy.meta.color.#fcc",
"settings": {
"foreground": "#fcc"
}
},
{
"scope": "renpy.meta.color.#cfc",
"settings": {
"foreground": "#cfc"
}
}
]
},
}
+2 -2
View File
@@ -50,7 +50,7 @@ your system. On Ubuntu and Debian, these dependencies can be installed with
the command::
sudo apt install virtualenvwrapper python3-dev libavcodec-dev libavformat-dev \
libswresample-dev libswscale-dev libfreetype6-dev libfribidi-dev libsdl2-dev \
libswresample-dev libswscale-dev libharfbuzz-dev libfreetype6-dev libfribidi-dev libsdl2-dev \
libsdl2-image-dev libsdl2-gfx-dev libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-dev
Ren'Py requires SDL_image 2.6 or greater. If your distribution doesn't include
@@ -112,7 +112,7 @@ link in a nightly build, or compile the modules as described above. You'll
also need the `Sphinx <https://www.sphinx-doc.org>`_ documentation generator.
If you have pip working, install Sphinx using::
pip install -U sphinx sphinx-bootstrap-theme
pip install -U sphinx sphinx_rtd_theme sphinx_rtd_dark_mode
Once Sphinx is installed, change into the ``sphinx`` directory inside the
Ren'Py checkout and run::
+5 -3
View File
@@ -15,9 +15,11 @@ SOURCE = [
"/home/tom/ab/renpy-build/renpyweb",
]
version = ".".join(str(i) for i in version_tuple)
short_version = ".".join(str(i) for i in version_tuple[:-1])
major = short_version.split(".")[0]
from renpy.versions import generate_vc_version
version = generate_vc_version()["version"]
short_version = version.rpartition(".")[0]
major = version.partition(".")[0]
print("Version", version)
ap = argparse.ArgumentParser()
+28 -44
View File
@@ -94,6 +94,8 @@ def main():
ap.add_argument("--vc-version-only", action="store_true")
ap.add_argument("--link-directories", action="store_true")
ap.add_argument("--append-version", action="store_true")
ap.add_argument("--nightly", action="store_true")
ap.add_argument("--print-version", action="store_true")
args = ap.parse_args()
@@ -101,71 +103,53 @@ def main():
link_directory("renios")
link_directory("web")
if args.link_directories:
import renpy.versions
renpy.versions.generate_vc_version(nightly=args.nightly)
if args.link_directories or args.vc_version_only:
return
if not os.path.abspath(sys.executable).startswith(ROOT + "/lib"):
raise Exception("Distribute must be run with the python in lib/.")
if args.sign:
os.environ["RENPY_MAC_IDENTITY"] = "Developer ID Application: Tom Rothamel (XHTE5H7Z79)"
if PY2 and not sys.flags.optimize:
raise Exception("Not running with python optimization.")
if not os.path.abspath(sys.executable).startswith(ROOT + "/lib"):
raise Exception("Distribute must be run with the python in lib/.")
# Revision updating is done early, so we can do it even if the rest
# of the program fails.
# Determine the version. We grab the current revision, and if any
# file has changed, bump it by 1.
import renpy
if args.version is None:
args.version = ".".join(str(i) for i in renpy.version_tuple[:-1])
try:
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", ]).decode("utf-8").strip()
parts = s.strip().split("-")
dirty = "dirty" in parts
vc_version_base = os.path.splitext(renpy.vc_version.__file__)[0]
commits_per_day = collections.defaultdict(int)
# Delete the .pyc and .pyo files, as reload can choose one of them instead
# of the new .py file.
for fn in [ vc_version_base + ".pyc", vc_version_base + ".pyo" ]:
if os.path.exists(fn):
os.unlink(fn)
for i in subprocess.check_output([ "git", "log", "-99", "--pretty=%cd", "--date=format:%Y%m%d" ]).decode("utf-8").split():
commits_per_day[i[2:]] += 1
if dirty:
key = time.strftime("%Y%m%d")[2:]
vc_version = "{}{:02d}".format(key, commits_per_day[key] + 1)
else:
key = max(commits_per_day.keys())
vc_version = "{}{:02d}".format(key, commits_per_day[key])
reload(renpy.vc_version)
except Exception:
vc_version = 0
import renpy.vc_version
with open("renpy/vc_version.py", "w") as f:
import socket
official = socket.gethostname() == "eileen"
nightly = args.version and "nightly" in args.version
# A normal reload is fine, as renpy/__init__.py won't change.
reload(renpy)
f.write("vc_version = {}\n".format(vc_version))
f.write("official = {}\n".format(official))
f.write("nightly = {}\n".format(nightly))
if args.vc_version_only:
if args.print_version:
print(renpy.version_only)
return
try:
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
except Exception:
import renpy.vc_version # @UnusedImport
reload(sys.modules['renpy'])
if args.version is None:
if args.nightly:
args.version = renpy.version_only
else:
args.version = ".".join(str(i) for i in renpy.version_tuple[:-1])
if args.append_version:
args.version += "-" + renpy.version_only
# Check that the versions match.
full_version = renpy.version_only # @UndefinedVariable
if "-" not in args.version \
and not full_version.startswith(args.version):
raise Exception("The command-line and Ren'Py versions do not match.")
@@ -268,7 +252,7 @@ def main():
"-q",
"egg_info",
"--tag-build",
"-for-renpy-" + args.version,
"+renpy" + args.version,
"sdist",
"-d",
os.path.abspath(destination)
-18
View File
@@ -1,18 +0,0 @@
{
"start_a170b500": {
"area": [
53,
120,
426,
120
]
},
"start_f41f55d7": {
"area": [
106,
60,
426,
120
]
}
}
+3
View File
@@ -344,6 +344,9 @@ define config.history_length = 250
## at the cost of performance.
define gui.history_height = gui.scale(140)
## Additional space to add between history screen entries.
define gui.history_spacing = 0
## The position, width, and alignment of the label giving the name of the
## speaking character.
define gui.history_name_xpos = gui.scale(155)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

+66 -30
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 ############################################################
@@ -408,11 +408,11 @@ style main_menu_version:
## 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.
##
## The scroll parameter can be None, or one of "viewport" or "vpgrid". When
## this screen is intended to be used with one or more children, which are
## 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.
screen game_menu(title, scroll=None, yinitial=0.0):
screen game_menu(title, scroll=None, yinitial=0.0, spacing=0):
style_prefix "game_menu"
@@ -445,6 +445,8 @@ screen game_menu(title, scroll=None, yinitial=0.0):
side_yfill True
vbox:
spacing spacing
transclude
elif scroll == "vpgrid":
@@ -460,6 +462,8 @@ screen game_menu(title, scroll=None, yinitial=0.0):
side_yfill True
spacing spacing
transclude
else:
@@ -705,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 ##########################################################
@@ -846,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
@@ -856,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)
@@ -867,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)
@@ -888,7 +892,7 @@ screen history():
## Avoid predicting this screen, as it can be very large.
predict False
use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0):
use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0, spacing=gui.history_spacing):
style_prefix "history"
@@ -1064,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:
@@ -1086,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:
@@ -1113,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)
@@ -1191,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 #######################################################
@@ -1404,17 +1407,17 @@ 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 ###############################################################
##
## 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
## 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.
##
## https://www.renpy.org/doc/html/screen_special.html#bubble
## https://www.renpy.org/doc/html/bubble.html#bubble-screen
screen bubble(who, what):
style_prefix "bubble"
@@ -1434,22 +1437,18 @@ screen bubble(who, what):
text what:
id "what"
style bubble_window is empty
style bubble_namebox is empty
style bubble_who is default
style bubble_what is default
style bubble_window:
background Frame("gui/bubble.png", 15, 15, 15, 15)
padding (15, 10)
xpadding 30
top_padding 5
bottom_padding 5
style bubble_namebox:
background Frame("gui/bubble.png", 15, 15, 15, 15)
pos (-15, -5)
anchor (0.0, 1.0)
padding (15, 10)
xalign 0.5
style bubble_who:
xalign 0.5
@@ -1458,10 +1457,47 @@ style bubble_who:
style bubble_what:
align (0.5, 0.5)
textalign 0.5
text_align 0.5
layout "subtitle"
color "#000"
define bubble.frame = Frame("gui/bubble.png", 55, 55, 55, 95)
define bubble.thoughtframe = Frame("gui/thoughtbubble.png", 55, 55, 55, 55)
define bubble.properties = {
"bottom_left" : {
"window_background" : Transform(bubble.frame, xzoom=1, yzoom=1),
"window_bottom_padding" : 27,
},
"bottom_right" : {
"window_background" : Transform(bubble.frame, xzoom=-1, yzoom=1),
"window_bottom_padding" : 27,
},
"top_left" : {
"window_background" : Transform(bubble.frame, xzoom=1, yzoom=-1),
"window_top_padding" : 27,
},
"top_right" : {
"window_background" : Transform(bubble.frame, xzoom=-1, yzoom=-1),
"window_top_padding" : 27,
},
"thought" : {
"window_background" : bubble.thoughtframe,
}
}
define bubble.expand_area = {
"bottom_left" : (0, 0, 0, 22),
"bottom_right" : (0, 0, 0, 22),
"top_left" : (0, 22, 0, 0),
"top_right" : (0, 22, 0, 0),
"thought" : (0, 0, 0, 0),
}
################################################################################
+1 -1
View File
@@ -42,7 +42,7 @@ class Editor(renpy.editor.Editor):
elif renpy.arch == "armv7l":
arch = "arm"
else:
arch = "x86_64"
arch = "x64"
code = os.path.join(RENPY_VSCODE, "VSCode-linux-" + arch, "bin", "code")
else:
+1 -1
View File
@@ -42,7 +42,7 @@ class Editor(renpy.editor.Editor):
elif renpy.arch == "armv7l":
arch = "arm"
else:
arch = "x86_64"
arch = "x64"
code = os.path.join(RENPY_VSCODE, "VSCode-linux-" + arch, "bin", "code")
else:
+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
+16 -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
@@ -31,8 +31,9 @@ init python:
ANDROID_NO_BUNDLE = 6
ANDROID_OK = 7
JDK_REQUIREMENT = 42
NO_RAPT_TEXT = _("To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
NO_JDK_TEXT = _("A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_SDK_TEXT = _("RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this.")
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory.")
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
@@ -97,9 +98,12 @@ init python:
rapt.plat.renpy = True
rapt.plat.translate = __
JDK_REQUIREMENT = rapt.plat.jdk_requirement
else:
rapt = None
def AndroidState():
"""
Determines the state of the android install, and returns it.
@@ -107,8 +111,6 @@ init python:
if RAPT_PATH is None:
return ANDROID_NO_RAPT
if renpy.windows and not "JAVA_HOME" in os.environ:
return ANDROID_NO_JDK
if not os.path.exists(rapt.plat.adb):
return ANDROID_NO_SDK
if not rapt.keys.keys_exist(project.current.path):
@@ -131,8 +133,6 @@ init python:
if state == ANDROID_NO_RAPT:
return NO_RAPT_TEXT
if state == ANDROID_NO_JDK:
return NO_JDK_TEXT
if state == ANDROID_NO_SDK:
return NO_SDK_TEXT
if state == ANDROID_NO_KEY:
@@ -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):
+3 -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,13 +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?")
__("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.")
__("It looks like you're ready to start packaging games.")
+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
+20 -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
@@ -41,7 +41,7 @@ init python:
except Exception:
return False
def choose_directory(path):
def choose_directory(default_path):
"""
Pops up a directory chooser.
@@ -54,33 +54,31 @@ init python:
rather than user choice.
"""
if path:
default_path = path
path = None
else:
try:
default_path = os.path.dirname(os.path.abspath(config.renpy_base))
except Exception:
default_path = os.path.abspath(config.renpy_base)
if _renpytfd:
path = _renpytfd.selectFolderDialog(__("Select Projects Directory"), default_path)
else:
path = None
is_default = False
if default_path is None:
try:
default_path = os.path.dirname(os.path.abspath(config.renpy_base))
except Exception:
default_path = os.path.abspath(config.renpy_base)
# Path being None or "" means nothing was selected.
if not path:
path = default_path
is_default = True
if default_path is None or not os.path.isdir(default_path) or not directory_is_writable(default_path):
interface.error(_("No directory was selected, but one is required."))
return default_path, True
# Apply more thorough checks to an explicit path.
path = renpy.fsdecode(path)
if (not os.path.isdir(path)) or (not directory_is_writable(path)):
interface.error(_("The selected projects directory is not writable."))
path = default_path
is_default = True
if not os.path.isdir(path):
interface.error(_("The selected directory does not exist."))
elif not directory_is_writable(path):
interface.error(_("The selected directory is not writable."))
if is_default and (not directory_is_writable(path)):
path = os.path.expanduser("~")
return path, is_default
return path, False
+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
+136 -36
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
@@ -524,10 +524,18 @@ 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'])
if project.data['tutorial']:
self.reporter.info(_("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."), pause=True)
self.log.close()
return
if project.data['force_recompile']:
import compileall
@@ -551,7 +559,10 @@ change_renpy_executable()
self.pretty_version = build['version']
if (" " in self.base_name) or (":" in self.base_name) or (";" in self.base_name):
reporter.info(_("Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."), pause=True)
reporter.info(
_("Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."),
submessage=_("This may be derived from build.name and config.version or build.version."),
pause=True)
self.log.close()
return
@@ -576,6 +587,9 @@ change_renpy_executable()
self.include_update = build['include_update']
self.build_update = self.include_update and build_update
if self.include_update:
self.make_key_pem()
# The various executables, which change names based on self.executable_name.
self.app = self.executable_name + ".app"
self.exe = self.executable_name + ".exe"
@@ -673,11 +687,12 @@ change_renpy_executable()
dlc=p["dlc"])
if self.build_update and p["update"]:
self.make_package(
p["name"],
"update",
p["file_lists"],
dlc=p["dlc"])
for update_format in self.list_update_formats():
self.make_package(
p["name"],
update_format,
p["file_lists"],
dlc=p["dlc"])
wait_parallel_threads()
@@ -696,6 +711,23 @@ change_renpy_executable()
if open_directory:
renpy.run(store.OpenDirectory(self.destination, absolute=True))
def list_update_formats(self):
"""
Returns a list of update formats to build.
"""
rv = [ ]
for update_format in self.build["update_formats"]:
if update_format == "rpu":
rv.append("rpu")
elif update_format == "zsync":
rv.append("update")
else:
raise Exception("Unknown update format: " + update_format)
return rv
def scan_and_classify(self, directory, patterns):
"""
Walks through the `directory`, finds files and directories that
@@ -720,29 +752,37 @@ change_renpy_executable()
is_dir = os.path.isdir(path)
if is_dir:
match_name = name + "/"
match_names = [ name + "/", name ]
else:
match_name = name
match_names = [ name ]
for pattern, file_list in patterns:
if match(match_name, pattern):
matched = False
# When we have ('test/**', None), avoid excluding test.
if (not file_list) and is_dir:
new_pattern = pattern.rstrip("*")
if (pattern != new_pattern) and match(match_name, new_pattern):
continue
for match_name in match_names:
if match(match_name, pattern):
# When we have ('test/**', None), avoid excluding test.
if (not file_list) and is_dir:
new_pattern = pattern.rstrip("*")
if (pattern != new_pattern) and match(match_name, new_pattern):
continue
matched = True
break
if matched:
break
else:
print(str(match_name), "doesn't match anything.", file=self.log)
print(str(match_names[0]), "doesn't match anything.", file=self.log)
pattern = None
file_list = None
print(str(match_name), "matches", str(pattern), "(" + str(file_list) + ").", file=self.log)
print(str(match_names[0]), "matches", str(pattern), "(" + str(file_list) + ").", file=self.log)
if file_list is None:
return
@@ -927,6 +967,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.
@@ -1409,6 +1459,7 @@ change_renpy_executable()
FORMATS = {
"update" : (".update", False, False, False),
"rpu" : ("", False, False, False),
"tar.bz2" : (".tar.bz2", False, False, True),
"zip" : (".zip", False, False, True),
@@ -1421,6 +1472,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:
@@ -1458,7 +1511,7 @@ change_renpy_executable()
update_fn = os.path.join(self.destination, filename + ".update.json")
if self.include_update and (variant not in [ 'ios', 'android', 'source']) and (not format.startswith("app-")):
if self.include_update and not format.startswith("app-"):
with open(update_fn, "wb" if PY2 else "w") as f:
json.dump(update, f, indent=2)
@@ -1467,6 +1520,9 @@ change_renpy_executable()
fl.append(File("update", None, True, False))
fl.append(File("update/current.json", update_fn, False, False))
if not dlc:
fl.append(File("update/key.pem", self.temp_filename("key.pem"), False, False))
# If we're not an update file, prepend the directory.
if (not dlc) and prepend:
fl.prepend_directory(filename)
@@ -1477,6 +1533,10 @@ change_renpy_executable()
full_filename = filename + ext
path += ext
if format == "rpu":
full_filename = "rpu/" + variant + ".files.rpu"
path = self.destination + "/" + full_filename
if self.build['renpy']:
fl_hash = fl.hash(self)
else:
@@ -1513,6 +1573,10 @@ change_renpy_executable()
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)
@@ -1549,13 +1613,13 @@ change_renpy_executable()
self.reporter.progress_done()
if format == "update":
# Build the zsync file.
self.reporter.info(_("Making the [variant] update zsync file."), variant=variant)
pkg.close()
def close_progress(done, total):
self.reporter.progress(_("Finishing the [variant] [format] package."), done, total, variant=variant, format=format)
pkg.close(close_progress)
if done is not None:
done()
@@ -1576,33 +1640,69 @@ change_renpy_executable()
def add_variant(variant):
digest = self.build_cache[self.base_name + "-" + variant + ".update"][0]
sums_size = os.path.getsize(self.destination + "/" + self.base_name + "-" + variant + ".sums")
index[variant] = {
"version" : self.update_versions[variant],
"pretty_version" : self.pretty_version,
"digest" : digest,
"zsync_url" : self.base_name + "-" + variant + ".zsync",
"sums_url" : self.base_name + "-" + variant + ".sums",
"sums_size" : sums_size,
"json_url" : self.base_name + "-" + variant + ".update.json",
}
"renpy_version" : renpy.version_only,
}
fn = renpy.fsencode(os.path.join(self.destination, self.base_name + "-" + variant + ".update"))
if "zsync" in self.build["update_formats"]:
if os.path.exists(fn):
os.unlink(fn)
digest = self.build_cache[self.base_name + "-" + variant + ".update"][0]
sums_size = os.path.getsize(self.destination + "/" + self.base_name + "-" + variant + ".sums")
index[variant].update({
"digest" : digest,
"zsync_url" : self.base_name + "-" + variant + ".zsync",
"sums_url" : self.base_name + "-" + variant + ".sums",
"sums_size" : sums_size,
"json_url" : self.base_name + "-" + variant + ".update.json",
})
fn = renpy.fsencode(os.path.join(self.destination, self.base_name + "-" + variant + ".update"))
if os.path.exists(fn):
os.unlink(fn)
if "rpu" in self.build["update_formats"]:
index[variant]["rpu_url"] = "rpu/" + variant + ".files.rpu"
index[variant]["rpu_digest"] = self.build_cache["rpu/" + variant + ".files.rpu"][0]
for p in packages:
if p["update"]:
add_variant(p["name"])
update_data = json.dumps(index, indent=2)
fn = renpy.fsencode(os.path.join(self.destination, "updates.json"))
with open(fn, "wb" if PY2 else "w") as f:
json.dump(index, f, indent=2)
f.write(update_data)
# Write the signed file.
import ecdsa
with open(self.find_update_pem(), "rb") as f:
signing_key = ecdsa.SigningKey.from_pem(f.read())
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")))
def find_update_pem(self):
if self.build['renpy']:
return os.path.join(config.renpy_base, "update.pem")
else:
return os.path.join(self.project.path, "update.pem")
def make_key_pem(self):
import ecdsa
with open(self.find_update_pem(), "rb") as f:
signing_key = ecdsa.SigningKey.from_pem(f.read())
key_pem = self.temp_filename("key.pem")
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']:
+17 -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
@@ -267,7 +267,23 @@ label start_update_old_game:
call update_old_game
jump build_distributions
label add_update_pem:
python hide:
interface.info("You're trying to build an update, but an update.pem file doesn't exist.\n\nThis file is used to sign updates, and will be automatically created in your projects's base directory.\n\nYou'll need to back up update.pem and keep it safe.", cancel=Jump("build_distributions"))
import ecdsa
key = ecdsa.SigningKey.generate(curve=ecdsa.NIST256p).to_pem()
with open(os.path.join(project.current.path, "update.pem"), "wb") as f:
f.write(key)
return
label start_distribute:
if project.current.dump["build"]["include_update"] and not os.path.exists(os.path.join(project.current.path, "update.pem")):
call add_update_pem
if project.current.data["add_from"]:
call add_from_common
+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
+59 -17
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.
@@ -162,7 +165,7 @@ init 1 python in editor:
elif renpy.arch == "armv7l":
arch = "arm"
else:
arch = "x86_64"
arch = "x64"
installed = os.path.exists(os.path.join(config.renpy_base, "vscode/VSCode-linux-" + arch))
@@ -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
+21 -13
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":
@@ -159,11 +159,11 @@ screen front_page_project:
frame style "l_indent":
has vbox
textbutton _("game") action OpenDirectory(os.path.join(p.path, "game"), absolute=True)
textbutton _("base") action OpenDirectory(os.path.join(p.path, "."), absolute=True)
textbutton _("images") action OpenDirectory(os.path.join(p.path, "game/images"), absolute=True)
textbutton _("audio") action OpenDirectory(os.path.join(p.path, "game/audio"), absolute=True)
textbutton _("gui") action OpenDirectory(os.path.join(p.path, "game/gui"), absolute=True)
textbutton "game" action OpenDirectory(os.path.join(p.path, "game"), absolute=True)
textbutton "base" action OpenDirectory(os.path.join(p.path, "."), absolute=True)
textbutton "images" action OpenDirectory(os.path.join(p.path, "game/images"), absolute=True)
textbutton "audio" action OpenDirectory(os.path.join(p.path, "game/audio"), absolute=True)
textbutton "gui" action OpenDirectory(os.path.join(p.path, "game/gui"), absolute=True)
vbox:
if persistent.show_edit_funcs:
@@ -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,14 +263,18 @@ label lint:
interface.processing(_("Checking script for potential problems..."))
lint_fn = project.current.temp_filename("lint.txt")
project.current.launch([ 'lint', lint_fn ], wait=True)
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
e.begin(True)
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
+50 -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,32 @@ 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)
# Prune directories.
shutil.rmtree(os.path.join(p.prefix, "cache"))
shutil.rmtree(os.path.join(p.prefix, "saves"))
shutil.rmtree(os.path.join(p.prefix, "tl"))
# Prune files to be regenerated.
os.unlink(os.path.join(p.prefix, "gui.rpy"))
os.unlink(os.path.join(p.prefix, "screens.rpy"))
os.unlink(os.path.join(p.prefix, "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 +90,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 +101,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 +132,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)
+3 -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
@@ -214,7 +214,8 @@ class CodeGenerator(object):
'gui.insensitive_color' : repr(self.p.insensitive_color.hexcode),
'gui.text_color' : repr(self.p.text_color.hexcode),
'gui.interface_text_color' : repr(self.p.text_color.hexcode),
'gui.choice_text_color' : repr(self.p.choice_color.hexcode),
'gui.choice_button_text_idle_color' : repr(self.p.idle_color.hexcode),
'gui.choice_button_text_insensitive_color' : repr(self.p.insensitive_color.hexcode),
}
self.update_defines(replacements, language_defines[self.p.language])
+8 -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
@@ -408,13 +408,15 @@ class ImageGenerator(object):
import shutil
source = os.path.join(config.renpy_base, "gui", "game", "gui", "bubble.png")
dest = os.path.join(self.prefix, "bubble.png")
for fn in [ "bubble.png", "thoughtbubble.png" ]:
if source == dest:
return
source = os.path.join(config.renpy_base, "gui", "game", "gui", fn)
dest = os.path.join(self.prefix, fn)
shutil.copyfile(source, dest)
if source == dest:
return
shutil.copyfile(source, dest)
def generate_all(self):
+8 -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
@@ -61,14 +61,18 @@ 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:
self.selected_color = Color("#555555")
self.idle_color = Color("#aaaaaa")
self.idle_small_color = Color("#888888")
self.idle_color = Color("#707070")
self.idle_small_color = Color("#606060")
self.text_color = Color("#404040")
self.choice_color = Color("#cccccc")
+8 -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
@@ -81,7 +81,6 @@ init python:
label install_live2d:
python hide:
if PY2:
_prefix = r"lib/py2-"
else:
@@ -95,12 +94,15 @@ label install_live2d:
(r".*/Core/dll/android/(armeabi-v7a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
(r".*/Core/dll/android/(arm64-v8a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
# This doesn't exist yet.
# (r".*/Core/dll/android/(x86_64/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
(r".*/Core/dll/android/(x86_64/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
]
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-4-*.zip", patterns)
if PY2:
patterns.extend([
(r".*/Core/dll/windows/x86/(Live2DCubismCore.dll)", _prefix + r"windows-i686/\1"),
])
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."))
+29 -24
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():
"""
@@ -200,7 +197,15 @@ screen common:
add SPACER
for v, l in choices:
textbutton l action SetScreenVariable("selected", v)
textbutton l:
action SetScreenVariable("selected", v)
selected_background REVERSE_IDLE
selected_hover_background REVERSE_HOVER
xpadding 20
size_group "choice"
text_selected_idle_color REVERSE_TEXT
text_selected_hover_color REVERSE_TEXT
text_xalign 0.5
if selected is not None:
$ continue_ = Return(selected)
@@ -484,7 +489,7 @@ init python in interface:
The amount of time to pause for after showing the message.
"""
common(title, store.INTERACTION_COLOR, message, submessage=None, pause=pause, show_screen=True, **kwargs)
common(title, store.INTERACTION_COLOR, message, submessage=submessage, pause=pause, show_screen=True, **kwargs)
renpy.pause(pause)
def processing(message, submessage=None, complete=None, total=None, **kwargs):
+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
@@ -123,10 +123,12 @@ 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)
+5 -23
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
@@ -97,32 +97,14 @@ label itch:
files = [ ]
for fn in os.listdir(destination):
fn = os.path.join(destination, fn)
if fn.endswith("-all.zip"):
channel = "win-osx-linux"
elif fn.endswith("-market.zip"):
channel = "win-osx-linux"
elif fn.endswith("-pc.zip"):
channel = "win-linux"
elif fn.endswith("-win.zip"):
channel = "win"
elif fn.endswith("-mac.zip"):
channel = "osx"
elif fn.endswith("-linux.tar.bz2"):
channel = "linux"
elif fn.endswith("-release.apk"):
channel = "android"
for pattern, channel in reversed(build['itch_channels'].items()):
if fnmatch.fnmatch(fn, pattern):
break
else:
continue
fn = os.path.join(destination, fn)
files.append((fn, channel))
if not os.path.exists(destination):
+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
+16 -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:
@@ -62,23 +34,25 @@ label new_project:
if persistent.projects_directory is None:
$ interface.error(_("The projects directory could not be set. Giving up."))
if PY2:
$ 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 = ""
@@ -108,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
+9 -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
@@ -242,10 +242,12 @@ init python:
# allows the updater to run.
build.include_update = True
# Build both kinds of updates.
build.update_formats = [ "zsync", "rpu" ]
# Allow empty directories, so we can distribute the images directory.
build.exclude_empty_directories = False
# Mac signing options.
import os
build.mac_identity = os.environ.get("RENPY_MAC_IDENTITY", None)
@@ -339,7 +341,6 @@ init python:
build.classify_renpy(pattern + "/**.rpymc", binary)
build.classify_renpy(pattern + "/**/" + renpy.script.BYTECODE_FILE, binary)
build.classify_renpy(pattern + "/**/cache/bytecode-311.rpyb", "web")
build.classify_renpy(pattern + "/**/cache/bytecode-*.rpyb", None)
build.classify_renpy(pattern + "/**/cache/*", binary)
@@ -355,6 +356,7 @@ init python:
build.classify_renpy("gui/game/gui/", "source")
build.classify_renpy("gui/game/gui/bubble.png", "source")
build.classify_renpy("gui/game/gui/thoughtbubble.png", "source")
build.classify_renpy("gui/game/gui/*", None)
source_and_binary("launcher", py=False)
@@ -395,6 +397,7 @@ init python:
build.classify_renpy("module/pysdlsound/*.pyx", "source")
build.classify_renpy("module/fribidi-src/**", "source")
build.classify_renpy("module/tinyfiledialogs/**", "source")
build.classify_renpy("module/libhydrogen/**", "source")
# all-platforms binary.
build.classify_renpy("lib/**/*steam_api*", "steam")
@@ -449,3 +452,6 @@ python early:
# Since the launcher can be run directly or can be run from the SDK directory,
# uneliding files needs to be handled slightly differently.
define config.alternate_unelide_path = os.path.join(config.basedir, "launcher")
# Disable skipping.
define config.allow_skipping = False
+60 -12
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
@@ -33,7 +33,6 @@ init python in distribute:
from zipfile import crc32
# Since the long type doesn't exist on py3, define it here
if not PY2:
long = int
@@ -195,7 +194,7 @@ init python in distribute:
self.zipfile.write_with_info(zi, path)
def close(self):
def close(self, progress=None):
self.zipfile.close()
@@ -207,7 +206,7 @@ init python in distribute:
If true, times will be forced to the epoch.
"""
self.tarfile = tarfile.open(filename, mode)
self.tarfile = tarfile.open(filename, mode, format=tarfile.PAX_FORMAT)
self.tarfile.dereference = True
self.notime = notime
@@ -243,9 +242,10 @@ init python in distribute:
def add_directory(self, name, path):
self.add_file(name, path, True)
def close(self):
def close(self, progress=None):
self.tarfile.close()
class UpdatePackage(TarPackage):
def __init__(self, filename, basename, destination):
@@ -255,7 +255,7 @@ init python in distribute:
TarPackage.__init__(self, filename, "w", notime=True)
def close(self):
def close(self, progress=None):
TarPackage.close(self)
cmd = [
@@ -283,7 +283,6 @@ init python in distribute:
sums.write(struct.pack("<I", zlib.adler32(data) & 0xffffffff))
class DirectoryPackage(object):
def mkdir(self, path):
@@ -315,9 +314,10 @@ init python in distribute:
fn = os.path.join(self.path, name)
self.mkdir(fn)
def close(self):
def close(self, progress=None):
return
class ExternalZipPackage(object):
def __init__(self, path):
@@ -331,7 +331,7 @@ init python in distribute:
def add_directory(self, name, path):
self.dp.add_directory(name, path)
def close(self):
def close(self, progress=None):
self.dp.close()
if os.path.exists(self.path):
@@ -350,17 +350,65 @@ init python in distribute:
shutil.rmtree(self.directory)
class DMGPackage(DirectoryPackage):
def __init__(self, path, make_dmg):
self.make_dmg = make_dmg
DirectoryPackage.__init__(self, path)
def close(self):
def close(self, progress=None):
DirectoryPackage.close(self)
self.make_dmg()
class RPUPackage(object):
generator = None
def __init__(self, directory, variant):
import renpy.update.common
self.directory = directory + "/rpu"
self.variant = variant
self.file_list = renpy.update.common.FileList()
if not os.path.exists(self.directory):
os.mkdir(self.directory)
def add_file(self, name, path, xbit):
self.file_list.add_file(name, path, xbit)
def add_directory(self, name, _path):
self.file_list.add_directory(name)
def close(self, progress=None):
import renpy.update.generate
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 = [ ]
class ParallelPackage(object):
@@ -378,7 +426,7 @@ init python in distribute:
def add_directory(self, name, path):
self.worklist.append((True, name, path, True))
def close(self):
def close(self, progress=None):
t = threading.Thread(target=self.run)
t.start()
+111 -30
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
@@ -19,15 +19,14 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
default persistent.show_edit_funcs = True
default persistent.windows_console = False
default persistent.lint_options = set()
default persistent.use_web_doc = False
init python:
from math import ceil
if persistent.show_edit_funcs is None:
persistent.show_edit_funcs = True
if persistent.windows_console is None:
persistent.windows_console = False
def scan_translations(piglatin=True):
languages = renpy.known_languages()
@@ -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
@@ -64,6 +79,12 @@ default persistent.daily_update_check_once = False
# Keep the default update check from triggering until tomorrow.
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
@@ -71,6 +92,14 @@ init python:
default preference_tab = "general"
define preference_tabs = (
("general", _("General")),
("options", _("Options")),
("theme", _("Theme")),
("install", _("Install Libraries")),
("actions", _("Actions")),
("lint", _("Lint")),
)
screen preferences():
@@ -98,17 +127,12 @@ screen preferences():
has vbox
# Projects directory selection.
add SEPARATOR2
add HALF_SPACER
textbutton _("General") action SetVariable("preference_tab", "general") style "l_list"
textbutton _("Options") action SetVariable("preference_tab", "options") style "l_list"
textbutton _("Theme") action SetVariable("preference_tab", "theme") style "l_list"
textbutton _("Install Libraries") action SetVariable("preference_tab", "install") style "l_list"
textbutton _("Actions") action SetVariable("preference_tab", "actions") style "l_list"
for i, l in preference_tabs:
textbutton l action SetVariable("preference_tab", i) style "l_list"
if preference_tab == "general":
@@ -119,7 +143,6 @@ screen preferences():
has vbox
# Projects directory selection.
add SEPARATOR2
@@ -157,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
@@ -207,6 +227,22 @@ screen preferences():
add SPACER
add SEPARATOR2
frame:
style "l_indent"
has vbox
text _("Game Options:")
add HALF_SPACER
if renpy.windows:
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
textbutton _("Skip splashscreen") style "l_checkbox" action ToggleField(persistent, "skip_splashscreen")
add SPACER
add SEPARATOR2
frame:
style "l_indent"
has vbox
@@ -218,14 +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 renpy.windows:
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
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":
@@ -236,7 +274,6 @@ screen preferences():
has vbox
# Projects directory selection.
add SEPARATOR2
frame:
@@ -248,12 +285,14 @@ screen preferences():
add HALF_SPACER
textbutton _("Default theme") style "l_checkbox" action [SetField(persistent, "theme", None), RestartAtPreferences() ]
textbutton _("Dark theme") style "l_checkbox" action [SetField(persistent, "theme", "dark", None), RestartAtPreferences()]
textbutton _("Custom theme") style "l_checkbox" action [SetField(persistent, "theme", "custom", None), RestartAtPreferences()]
textbutton _("Dark theme") style "l_checkbox" action [SetField(persistent, "theme", "dark"), RestartAtPreferences()]
textbutton _("Custom theme") style "l_checkbox" action [SetField(persistent, "theme", "custom"), RestartAtPreferences()]
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":
@@ -276,7 +315,6 @@ screen preferences():
use install_preferences
elif preference_tab == "actions":
frame:
@@ -297,9 +335,52 @@ 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")
elif preference_tab == "lint":
frame:
style "l_indent"
xmaximum TWOTHIRDS
xfill True
has vbox
add SEPARATOR2
frame:
style "l_indent"
has vbox
text _("Lint toggles:")
add HALF_SPACER
textbutton _("Check for orphan/obsolete translations"):
style "l_checkbox"
action InvertSelected(ToggleSetMembership(persistent.lint_options, "--no-orphan-tl"))
textbutton _("Check parameters shadowing reserved names"):
style "l_checkbox"
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, "--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"
+24 -8
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
@@ -55,12 +55,12 @@ init python in project:
def __init__(self, path, name=None):
if name is None:
name = os.path.basename(path)
while path.endswith("/"):
path = path[:-1]
if name is None:
name = os.path.basename(path)
if not os.path.exists(path):
raise Exception("{} does not exist.".format(path))
@@ -128,6 +128,7 @@ init python in project:
data.setdefault("add_from", True)
data.setdefault("force_recompile", True)
data.setdefault("android_build", "Release")
data.setdefault("tutorial", False)
if "renamed_all" not in data:
dp = data["packages"]
@@ -259,8 +260,16 @@ init python in project:
environ = dict(os.environ)
environ["RENPY_LAUNCHER_LANGUAGE"] = _preferences.language or "english"
if persistent.skip_splashscreen:
environ["RENPY_SKIP_SPLASHSCREEN"] = "1"
environ.update(env)
# Filter out system PYTHON* environment variables.
if hasattr(sys, "renpy_executable"):
environ = { k : v for k, v in environ.items() if not k.startswith("PYTHON") }
encoded_environ = { }
for k, v in environ.items():
@@ -479,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)
@@ -550,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)
@@ -588,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)
@@ -761,7 +772,12 @@ init python in project:
blurb = LAUNCH_BLURBS[persistent.blurb % len(LAUNCH_BLURBS)]
persistent.blurb += 1
interface.interaction(_("Launching"), blurb, pause=2.5)
if persistent.skip_splashscreen:
submessage = _("Splashscreen skipped in launcher preferences.")
else:
submessage = None
interface.interaction(_("Launching"), blurb, submessage=submessage, pause=2.5)
def __call__(self):
+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
+4 -5
View File
@@ -174,8 +174,8 @@ translate arabic strings:
new "## 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."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
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 "## 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."
# screens.rpy:476
old "Return"
@@ -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"
@@ -640,4 +640,3 @@ translate arabic strings:
# screens.rpy:1429
old "Menu"
new "Menu"
+1 -1
View File
@@ -20,7 +20,7 @@ label start:
define config.rtl = True
define gui.text_align = 1.0
define gui.textalign = 1.0
define gui.button_text_xalign = 1.0
define gui.prompt_text_xalign = 1.0
define gui.navigation_xpos = 240
+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
+612 -4
View File
@@ -3,7 +3,7 @@ translate finnish strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
new "{#weekday}Maanatai"
new "{#weekday}Maanantai"
# 00action_file.rpy:26
old "{#weekday}Tuesday"
@@ -199,7 +199,8 @@ translate finnish 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?"
# Automatic translation.
new "Oletko varma, että haluat ohittaa näkymättömän dialogin seuraavaan vaihtoehtoon?"
# 00keymap.rpy:250
old "Saved screenshot as %s."
@@ -223,7 +224,8 @@ translate finnish 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}."
# Automatic translation.
new "Tämä ohjelma sisältää vapaita ohjelmistoja useiden lisenssien alla, mukaan lukien MIT-lisenssi ja GNU Lesser General Public License. Täydellinen luettelo ohjelmistoista, mukaan lukien linkit täydelliseen lähdekoodiin, löytyy {a=https://www.renpy.org/l/license}täältä{/a}."
# 00preferences.rpy:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
@@ -239,7 +241,8 @@ translate finnish strings:
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
new "Contacting App Store\nPlease Wait..."
# Automatic translation.
new "Yhteydenotto App Storeen\nOdottakaa..."
# 00updater.rpy:367
old "The Ren'Py Updater is not supported on mobile devices."
@@ -333,3 +336,608 @@ translate finnish strings:
old "return"
new "palaa"
translate finnish strings:
# renpy/common/00accessibility.rpy:32
old "bar"
new "palkki"
# renpy/common/00accessibility.rpy:33
old "selected"
# Automatic translation.
new "valittu"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "viewport"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
# Automatic translation.
new "vaakasuora vieritys"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
# Automatic translation.
new "pystysuora vieritys"
# renpy/common/00accessibility.rpy:37
old "activate"
# Automatic translation.
new "aktivoi"
# renpy/common/00accessibility.rpy:38
old "deactivate"
# Automatic translation.
new "deaktivoi"
# renpy/common/00accessibility.rpy:39
old "increase"
new "lisää"
# renpy/common/00accessibility.rpy:40
old "decrease"
new "vähennä"
# renpy/common/00accessibility.rpy:138
old "Font Override"
# Automatic translation.
new "Fontin ohitus"
# renpy/common/00accessibility.rpy:142
old "Default"
# Automatic translation.
new "Oletus"
# 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"
# Automatic translation.
new "Tekstin koon skaalaus"
# renpy/common/00accessibility.rpy:162
old "Reset"
# Automatic translation.
new "Nollaa"
# renpy/common/00accessibility.rpy:168
old "Line Spacing Scaling"
new "Rivivälin skaalaus"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
# Automatic translation.
new "Korkean kontrastin teksti"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing"
new "Tietokoneen ääninäyttely"
# renpy/common/00accessibility.rpy:197
old "Off"
new "Pois päältä"
# renpy/common/00accessibility.rpy:201
old "Text-to-speech"
# Automatic translation.
new "Tekstistä puheeksi"
# renpy/common/00accessibility.rpy:205
old "Clipboard"
# Automatic translation.
new "Leikepöytä"
# renpy/common/00accessibility.rpy:209
old "Debug"
# Automatic translation.
new "Vianmääritys"
# renpy/common/00accessibility.rpy:223
old "Self-Voicing Volume Drop"
new "Tietokoneen ääninäyttelyn äänenvoimakkuuden pudotus"
# 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 "Tämän valikon vaihtoehtojen tarkoituksena on parantaa saavutettavuutta. Ne eivät välttämättä toimi kaikissa peleissä, ja joidenkin vaihtoehtojen yhdistelmät saattavat tehdä pelistä pelikelvottoman. Tämä ei johdu pelistä tai moottorista. Saat fontteja vaihtaessa parhaat tulokset kun yrität pitää tekstin koon samana kuin se oli alun perin."
# renpy/common/00action_file.rpy:378
old "Save slot %s: [text]"
new "Tallennuspaikka %s: [text]"
# renpy/common/00action_file.rpy:461
old "Load slot %s: [text]"
new "Lataa tallennus %s: [text]"
# renpy/common/00action_file.rpy:514
old "Delete slot [text]"
new "Poista tallennus [text]"
# renpy/common/00action_file.rpy:593
old "File page auto"
new "Tiedoston sivu: auto"
# renpy/common/00action_file.rpy:595
old "File page quick"
new "Tiedoston sivu: pika"
# renpy/common/00action_file.rpy:597
old "File page [text]"
new "Tiedoston sivu: [text]"
# renpy/common/00action_file.rpy:796
old "Next file page."
new "Seuraava tiedoston sivu."
# renpy/common/00action_file.rpy:868
old "Previous file page."
new "Edellinen tiedoston sivu."
# renpy/common/00action_file.rpy:944
old "Quick save."
new "Pikatallennus."
# renpy/common/00action_file.rpy:963
old "Quick load."
# Automatic translation.
new "Pikalataus."
# renpy/common/00action_other.rpy:381
old "Language [text]"
# Automatic translation.
new "Kieli [text]"
# renpy/common/00director.rpy:705
old "The interactive director is not enabled here."
# Automatic translation.
new "Vuorovaikutteinen ohjaaja ei ole käytössä täällä."
# renpy/common/00director.rpy:1504
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1510
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1574
old "Done"
# Automatic translation.
new "Valmis"
# renpy/common/00director.rpy:1584
old "(statement)"
# Automatic translation.
new "(lausunto)"
# renpy/common/00director.rpy:1585
old "(tag)"
new "(tag)"
# renpy/common/00director.rpy:1586
old "(attributes)"
# Automatic translation.
new "(attribuutit)"
# renpy/common/00director.rpy:1587
old "(transform)"
new "(transform)"
# renpy/common/00director.rpy:1612
old "(transition)"
new "(transition)"
# renpy/common/00director.rpy:1624
old "(channel)"
# Automatic translation.
new "(kanava)"
# renpy/common/00director.rpy:1625
old "(filename)"
# Automatic translation.
new "(tiedostonimi)"
# renpy/common/00director.rpy:1654
old "Change"
# Automatic translation.
new "Muuta"
# renpy/common/00director.rpy:1656
old "Add"
# Automatic translation.
new "Lisää"
# renpy/common/00director.rpy:1662
old "Remove"
# Automatic translation.
new "Poista"
# renpy/common/00director.rpy:1697
old "Statement:"
# Automatic translation.
new "Lausunto:"
# renpy/common/00director.rpy:1718
old "Tag:"
new "Tag:"
# renpy/common/00director.rpy:1734
old "Attributes:"
# Automatic translation.
new "Ominaisuudet:"
# renpy/common/00director.rpy:1745
old "Click to toggle attribute, right click to toggle negative attribute."
# Automatic translation.
new "Napsauttamalla voit vaihtaa attribuuttia, oikealla napsauttamalla voit vaihtaa negatiivista attribuuttia."
# renpy/common/00director.rpy:1757
old "Transforms:"
# Automatic translation.
new "Muuntuu:"
# renpy/common/00director.rpy:1768
old "Click to set transform, right click to add to transform list."
# Automatic translation.
new "Napsauta aseta muunnos, lisää muunnosluetteloon napsauttamalla hiiren kakkospainiketta."
# renpy/common/00director.rpy:1780
old "Behind:"
# Automatic translation.
new "Takana:"
# renpy/common/00director.rpy:1789
old "Click to set, right click to add to behind list."
# Automatic translation.
new "Aseta napsauttamalla, lisää takaluetteloon napsauttamalla hiiren kakkospainiketta."
# renpy/common/00director.rpy:1801
old "Transition:"
# Automatic translation.
new "Siirtyminen:"
# renpy/common/00director.rpy:1819
old "Channel:"
# Automatic translation.
new "Kanava:"
# renpy/common/00director.rpy:1837
old "Audio Filename:"
# Automatic translation.
new "Äänitiedoston nimi:"
# 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?"
# Automatic translation.
new "Tämä tallennus on luotu eri laitteella. Pahantahtoisesti tehdyt tallennustiedostot voivat vahingoittaa tietokonettasi. Luotatko tämän tallennuksen tekijään ja kaikkiin, jotka ovat voineet muuttaa tiedostoa?"
# 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."
# Automatic translation.
new "Luotatko laitteeseen, jolla tallennus luotiin? Valitse kyllä vain, jos olet laitteen ainoa käyttäjä."
# renpy/common/00keymap.rpy:322
old "Failed to save screenshot as %s."
# Automatic translation.
new "Kuvakaappauksen tallentaminen nimellä %s epäonnistui."
# renpy/common/00preferences.rpy:271
old "display"
# Automatic translation.
new "näyttö"
# renpy/common/00preferences.rpy:283
old "transitions"
# Automatic translation.
new "siirtymät"
# renpy/common/00preferences.rpy:292
old "skip transitions"
new "ohita siirtymät"
# renpy/common/00preferences.rpy:294
old "video sprites"
new "video sprites"
# renpy/common/00preferences.rpy:303
old "show empty window"
# Automatic translation.
new "näytä tyhjä ikkuna"
# renpy/common/00preferences.rpy:312
old "text speed"
# Automatic translation.
new "tekstin nopeus"
# renpy/common/00preferences.rpy:320
old "joystick"
# Automatic translation.
new "Joystick"
# renpy/common/00preferences.rpy:320
old "joystick..."
new "joystick..."
# renpy/common/00preferences.rpy:327
old "skip"
# Automatic translation.
new "ohita"
# renpy/common/00preferences.rpy:330
old "skip unseen [text]"
new "ohita näkemätön [text]"
# renpy/common/00preferences.rpy:335
old "skip unseen text"
new "ohita näkemätön teksti"
# renpy/common/00preferences.rpy:337
old "begin skipping"
new "aloita ohittaminen"
# renpy/common/00preferences.rpy:341
old "after choices"
# Automatic translation.
new "valintojen jälkeen"
# renpy/common/00preferences.rpy:348
old "skip after choices"
new "ohita valintojen jälkeen"
# renpy/common/00preferences.rpy:350
old "auto-forward time"
new "automaattisen eteenpäinsiirtymisen aika"
# renpy/common/00preferences.rpy:364
old "auto-forward"
new "automaattinen eteenpäinsiirtyminen"
# renpy/common/00preferences.rpy:371
old "Auto forward"
new "Automaattinen eteenpäinsiirtyminen"
# renpy/common/00preferences.rpy:374
old "auto-forward after click"
new "automaattinen eteenpäinsiirtyminen napsautuksen jälkeen"
# renpy/common/00preferences.rpy:383
old "automatic move"
# Automatic translation.
new "automaattinen siirto"
# renpy/common/00preferences.rpy:392
old "wait for voice"
# Automatic translation.
new "odota ääntä"
# renpy/common/00preferences.rpy:401
old "voice sustain"
# Automatic translation.
new "äänen ylläpitäminen"
# renpy/common/00preferences.rpy:410
old "self voicing"
new "tietokoneen ääninäyttely"
# renpy/common/00preferences.rpy:419
old "self voicing volume drop"
new "tietokoneen ääninäyttelyn äänenvoimakkuuden pudotus"
# renpy/common/00preferences.rpy:427
old "clipboard voicing"
new "leikepöydän ääni"
# renpy/common/00preferences.rpy:436
old "debug voicing"
new "virheenkorjausääni"
# renpy/common/00preferences.rpy:445
old "emphasize audio"
new "korosta ääntä"
# renpy/common/00preferences.rpy:454
old "rollback side"
# Automatic translation.
new "Rollback-puoli"
# renpy/common/00preferences.rpy:464
old "gl powersave"
new "gl powersave"
# renpy/common/00preferences.rpy:470
old "gl framerate"
new "gl framerate"
# renpy/common/00preferences.rpy:473
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:476
old "font transform"
# Automatic translation.
new "fontin muunnos"
# renpy/common/00preferences.rpy:479
old "font size"
# Automatic translation.
new "fonttikoko"
# renpy/common/00preferences.rpy:487
old "font line spacing"
# Automatic translation.
new "fontin riviväli"
# renpy/common/00preferences.rpy:495
old "system cursor"
# Automatic translation.
new "järjestelmän kursori"
# renpy/common/00preferences.rpy:504
old "renderer menu"
# Automatic translation.
new "renderöintivalikko"
# renpy/common/00preferences.rpy:507
old "accessibility menu"
# Automatic translation.
new "saavutettavuusvalikko"
# renpy/common/00preferences.rpy:510
old "high contrast text"
# Automatic translation.
new "korkean kontrastin teksti"
# renpy/common/00preferences.rpy:519
old "audio when minimized"
# Automatic translation.
new "ääni kun se on minimoitu"
# renpy/common/00preferences.rpy:528
old "audio when unfocused"
# Automatic translation.
new "ääni kun se ei ole keskittynyt"
# renpy/common/00preferences.rpy:537
old "web cache preload"
# Automatic translation.
new "verkkovälimuistin esilataus"
# renpy/common/00preferences.rpy:552
old "voice after game menu"
# Automatic translation.
new "ääni pelivalikon jälkeen"
# renpy/common/00preferences.rpy:571
old "main volume"
new "pää-äänenvoimakkuus"
# renpy/common/00preferences.rpy:572
old "music volume"
new "musiikin äänenvoimakkuus"
# renpy/common/00preferences.rpy:573
old "sound volume"
new "tehosteiden äänenvoimakkuus"
# renpy/common/00preferences.rpy:574
old "voice volume"
new "ääninäyttelyn äänenvoimakkuus"
# renpy/common/00preferences.rpy:575
old "mute main"
new "mykistä pää-ääni"
# renpy/common/00preferences.rpy:576
old "mute music"
new "mykistä musiikki"
# renpy/common/00preferences.rpy:577
old "mute sound"
new "mykistä äänitehosteet"
# renpy/common/00preferences.rpy:578
old "mute voice"
new "mykistä ääninäyttely"
# renpy/common/00preferences.rpy:579
old "mute all"
new "mykistä kaikki"
# renpy/common/00speechbubble.rpy:344
old "Speech Bubble Editor"
# Automatic translation.
new "Puhekuplaeditori"
# renpy/common/00speechbubble.rpy:349
old "(hide)"
# Automatic translation.
new "(piilota)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
# Automatic translation.
new "Synkronointi ladattu."
# renpy/common/00sync.rpy:190
old "Could not connect to the Ren'Py Sync server."
# Automatic translation.
new "Yhteyttä Ren'Py Sync -palvelimeen ei saatu muodostettua."
# renpy/common/00sync.rpy:192
old "The Ren'Py Sync server timed out."
# Automatic translation.
new "Ren'Py Sync -palvelimen aikakatkaisu."
# renpy/common/00sync.rpy:194
old "An unknown error occurred while connecting to the Ren'Py Sync server."
# Automatic translation.
new "Ren'Py Sync -palvelimeen muodostettaessa yhteyttä tapahtui tuntematon virhe."
# 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."
# Automatic translation.
new "Ren'Py Sync -palvelimella ei ole kopiota tästä synkronoinnista. Synkronointitunnus voi olla virheellinen tai se voi olla vanhentunut."
# renpy/common/00sync.rpy:409
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
# Automatic translation.
new "Kirjoita luomasi synkronointitunnus.\nÄlä koskaan anna synkronointitunnusta, jota et ole luonut itse."
# renpy/common/00sync.rpy:428
old "The sync ID is not in the correct format."
# Automatic translation.
new "Synkronointitunnus ei ole oikeassa muodossa."
# renpy/common/00sync.rpy:448
old "The sync could not be decrypted."
# Automatic translation.
new "Synkronointia ei voitu purkaa."
# renpy/common/00sync.rpy:471
old "The sync belongs to a different game."
# Automatic translation.
new "Synkronointi kuuluu eri peliin."
# renpy/common/00sync.rpy:476
old "The sync contains a file with an invalid name."
# Automatic translation.
new "Synkronointi sisältää tiedoston, jonka nimi on virheellinen."
# renpy/common/00sync.rpy:529
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
new "Tämä lataa tallennuksesi {a=https://sync.renpy.org}Ren'Py Sync Serveriin{/a}.\nHaluatko jatkaa?"
# renpy/common/00sync.rpy:558
old "Enter Sync ID"
# Automatic translation.
new "Syötä synkronointitunnus"
# renpy/common/00sync.rpy:569
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
new "Tämä ottaa yhteyttä {a=https://sync.renpy.org}Ren'Py Sync Serveriin{/a}."
# renpy/common/00sync.rpy:596
old "Sync Success"
new "Synkronointi onnistui"
# renpy/common/00sync.rpy:599
old "The Sync ID is:"
# Automatic translation.
new "Synkronointitunnus on:"
# renpy/common/00sync.rpy:605
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 "Voit käyttää tätä tunnusta ladataksesi tallennuksesi toiseen laitteeseen.\nTämä synkronointi päättyy tunnin kuluttua.\nRen'Py Sync on {a=https://www.renpy.org/sponsors.html}Ren'Pyn sponsorien{/a} tukema."
# renpy/common/00sync.rpy:631
old "Sync Error"
# Automatic translation.
new "Synkronointivirhe"
+109 -1
View File
@@ -75,7 +75,8 @@ translate finnish 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}"
# Automatic translation.
new "\n{color=#cfc}✔ ennustettu kuva (hyvä){/color}\n{color=#fcc}✘ ennakoimaton kuva (huono){/color}\n{color=#fff}Siirrä vetämällä.{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
@@ -177,3 +178,110 @@ translate finnish strings:
old "jump <label>: jumps to label"
new "jump <tunnus>: hyppää 'script.rpy'-tiedosto(i)ssa olevaan, tunnuksella merkittyyn kohtaan"
translate finnish strings:
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
# Automatic translation.
new "Interaktiivinen johtaja (D)"
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
# Automatic translation.
new "Pysyvä katseluohjelma"
# renpy/common/_developer/developer.rpym:59
old "Show Image Load Log (F4)"
# Automatic translation.
new "Näytä kuvan latausloki (F4)"
# renpy/common/_developer/developer.rpym:62
old "Hide Image Load Log (F4)"
# Automatic translation.
new "Piilota kuvan latausloki (F4)"
# renpy/common/_developer/developer.rpym:65
old "Image Attributes"
# Automatic translation.
new "Kuva-attribuutit"
# renpy/common/_developer/developer.rpym:70
old "Speech Bubble Editor (Shift+B)"
# Automatic translation.
new "Puhekuplaeditori (Shift+B)"
# renpy/common/_developer/developer.rpym:97
old "[name] [attributes] (hidden)"
# Automatic translation.
new "[name] [attributes] (piilotettu)"
# renpy/common/_developer/developer.rpym:101
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:162
old "Hide deleted"
# Automatic translation.
new "Piilota poistettu"
# renpy/common/_developer/developer.rpym:162
old "Show deleted"
# Automatic translation.
new "Näytä poistettu"
# renpy/common/_developer/developer.rpym:389
old "Type to filter: "
# Automatic translation.
new "Suodatettava tyyppi: "
# renpy/common/_developer/developer.rpym:507
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
# Automatic translation.
new "Tekstuurit: [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:511
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# Automatic translation.
new "Kuvien välimuisti: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00console.rpy:789
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
# Automatic translation.
new "help: näytä tämä apu\n help <expr>: näytä <expr>:n allekirjoitus ja dokumentaatio"
# renpy/common/00console.rpy:813
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
# Automatic translation.
new "Ohje saattaa näyttää dokumentoimattomia toimintoja. Tarkista, että toiminto tai\nluokkaa, jota haluat käyttää, on dokumentoitu.\n\n"
# renpy/common/00console.rpy:854
old "stack: print the return stack"
# Automatic translation.
new "stack: tulostaa paluupinon"
# renpy/common/00console.rpy:908
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"
# Automatic translation.
new "watch <expression>: katsella python-lauseketta\n watch short: tekee jäljitettyjen lausekkeiden esityksestä lyhyen (oletusarvo)\n watch long: tekee jäljitettyjen ilmaisujen esittämisen sellaiseksi kuin se on."
# renpy/common/00console.rpy:1028
old "short: Shorten the representation of objects on the console (default)."
# Automatic translation.
new "short: Lyhentää objektien esitystä konsolissa (oletus)."
# renpy/common/00console.rpy:1032
old "long: Print the full representation of objects on the console."
# Automatic translation.
new "long: Tulostaa objektien täydellisen esityksen konsoliin."
# renpy/common/00console.rpy:1036
old "escape: Enables escaping of unicode symbols in unicode strings."
# Automatic translation.
new "escape: Mahdollistaa unicode-symbolien pakenemisen unicode-merkkijonoissa."
# renpy/common/00console.rpy:1040
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
# Automatic translation.
new "unescape: Poistaa unicode-merkkijonojen unicode-symbolien eskandoimisen ja tulostaa ne sellaisenaan (oletus)."
+130
View File
@@ -177,3 +177,133 @@ translate finnish strings:
old "Copies the errors.txt file to the clipboard."
new "Kopioi errors.txt-tiedoston leikepöydälle."
translate finnish strings:
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Renderer"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Force GL Renderer"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Force ANGLE Renderer"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
# Automatic translation.
new "Pakota GLES Renderer"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
# Automatic translation.
new "Pakota GL2 Renderer"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
# Automatic translation.
new "Voima ANGLE2 Renderer"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
# Automatic translation.
new "Pakota GLES2 Renderer"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
# Automatic translation.
new "Enable (Ei estolistaa)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Powersave"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Framerate"
# renpy/common/00gltest.rpy:177
old "Screen"
# Automatic translation.
new "Näyttö"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Tearing"
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
# Automatic translation.
new "Tämä peli vaatii GL2:n käyttöä, jota ei voida alustaa."
# 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."
# Automatic translation.
new "{a=edit:1:log.txt}log.txt{/a} tiedosto voi sisältää tietoja, joiden avulla voit selvittää, mikä tietokoneessa on vikana."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
# Automatic translation.
new "Lisätietoja tämän korjaamisesta löytyy {a=[url]}-dokumentaatiosta{/a}."
# renpy/common/00gltest.rpy:281
old "Change render options"
# Automatic translation.
new "Muuta renderöintivaihtoehtoja"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
# Automatic translation.
new "Paina tai siirrä '[control!s]' [kind]."
# renpy/common/_errorhandling.rpym:555
old "Open"
# Automatic translation.
new "Avaa"
# renpy/common/_errorhandling.rpym:559
old "Copy BBCode"
# Automatic translation.
new "Kopioi BBCode"
# renpy/common/_errorhandling.rpym:561
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
# Automatic translation.
new "Kopioi traceback.txt-tiedoston leikepöydälle BBkoodina foorumeille, kuten https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:563
old "Copy Markdown"
# Automatic translation.
new "Kopioi Markdown"
# renpy/common/_errorhandling.rpym:565
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
# Automatic translation.
new "Kopioi traceback.txt-tiedoston leikepöydälle Markdown-muodossa Discordia varten."
# renpy/common/_errorhandling.rpym:626
old "Ignores the exception, allowing you to continue."
# Automatic translation.
new "Jättää poikkeuksen huomiotta, jolloin voit jatkaa."
# renpy/common/_errorhandling.rpym:637
old "Console"
# Automatic translation.
new "Konsoli"
# renpy/common/_errorhandling.rpym:639
old "Opens a console to allow debugging the problem."
# Automatic translation.
new "Avaa konsolin ongelman vianmääritystä varten."
+68
View File
@@ -409,3 +409,71 @@ translate finnish strings:
old "## Quick buttons."
new "## Pikavalikko."
translate finnish strings:
# 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."
# Automatic translation.
new "## Init offset -lauseke saa aikaan sen, että tässä tiedostossa olevat alustamislausekkeet suoritetaan ennen minkä tahansa muun tiedoston init-lausekkeita."
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
# Automatic translation.
new "## Ota käyttöön virheellisten tai epävakaiden ominaisuuksien tarkistukset näytöissä tai muunnoksissa."
# gui/game/gui.rpy:19
old "## GUI Configuration Variables"
# Automatic translation.
new "## GUI-konfiguraatiomuuttujat"
# gui/game/gui.rpy:167
old "## The color of button text in various states."
# Automatic translation.
new "## Painikkeen tekstin väri eri tiloissa."
# 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)."
# Automatic translation.
new "## Painikkeen tekstin vaakasuora kohdistus. (0.0 on vasen, 0.5 on keskellä, 1.0 on oikea)."
# gui/game/gui.rpy:278
old "## The position of the main menu text."
# Automatic translation.
new "## Päävalikon tekstin sijainti."
# gui/game/gui.rpy:287
old "## Generic frames."
# Automatic translation.
new "## Yleiset kehykset."
# 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."
# Automatic translation.
new "## Oletusarvoinen graafinen käyttöliittymä käyttää vain liukusäätimiä ja pystysuuntaisia vierityspalkkeja. Kaikkia muita palkkeja käytetään vain luojan kirjoittamissa näytöissä."
# 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."
# Automatic translation.
new "## NVL-tilan merkintöjen enimmäismäärä, jonka Ren'Py näyttää. Kun näytetään tätä enemmän merkintöjä, vanhin merkintä poistetaan."
# gui/game/gui.rpy:405
old "## Localization"
# Automatic translation.
new "## Lokalisointi"
# 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"
# Automatic translation.
new "## Tämä säätää, missä kohtaa rivinvaihto sallitaan. Oletusarvo sopii useimmille kielille. Luettelo käytettävissä olevista arvoista löytyy osoitteesta https://www.renpy.org/doc/html/style_properties.html#style-property-language."
# gui/game/gui.rpy:415
old "## Mobile devices"
# Automatic translation.
new "## Mobiililaitteet"
# gui/game/gui.rpy:446
old "## Change the size and spacing of various things."
# Automatic translation.
new "## Muuta eri asioiden kokoa ja välejä."
+945 -2
View File
@@ -425,7 +425,8 @@
# front_page.rpy:147
old "[p.name!q] (template)"
new "[p.name!q] (template)"
# Automatic translation.
new "[p.name!q] (malli)"
# front_page.rpy:149
old "Select project [text]."
@@ -437,7 +438,8 @@
# front_page.rpy:166
old "The Question"
new "The Question"
# Automatic translation.
new "Kysymys"
# front_page.rpy:182
old "Active Project"
@@ -1186,3 +1188,944 @@
# updater.rpy:195
old "Proceed"
new "Jatka"
translate finnish strings:
# game/add_file.rpy:37
old "The file name may not be empty."
# Automatic translation.
new "Tiedoston nimi ei saa olla tyhjä."
# game/android.rpy:37
old "A 64-bit/x64 Java [JDK_REQUIREMENT] Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}download and install the JDK{/a}, then restart the Ren'Py launcher."
# Automatic translation.
new "Android-pakettien rakentamiseen Windowsissa tarvitaan 64-bittinen/x64 Java [JDK_REQUIREMENT] Development Kit. JDK on eri asia kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\nLataa ja asenna JDK {a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}{/a} ja käynnistä sitten Ren'Py-launcher uudelleen."
# game/android.rpy:39
old "RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory."
# Automatic translation.
new "RAPT on asennettu, mutta avainta ei ole määritetty. Luo uudet avaimet tai kopioi android.keystore ja bundle.keystore perushakemistoon."
# game/android.rpy:41
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
# Automatic translation.
new "Valitse, haluatko Play Bundlen (Google Playta varten) vai Universal APK:n (sivulatausta ja muita sovelluskauppoja varten)."
# game/android.rpy:46
old "Attempts to emulate a televison-based Android console.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
# Automatic translation.
new "Yritetään emuloida televisioon perustuvaa Android-konsolia.\n\nOhjaimen syöttö on yhdistetty nuolinäppäimiin, Enter on yhdistetty valintapainikkeeseen, Escape on yhdistetty valikkopainikkeeseen ja PageUp on yhdistetty takaisin-painikkeeseen."
# game/android.rpy:48
old "Downloads and installs the Android SDK and supporting packages."
# Automatic translation.
new "Lataa ja asentaa Android SDK:n ja tukipaketit."
# game/android.rpy:49
old "Generates the keys required to sign the package."
# Automatic translation.
new "Luo paketin allekirjoittamiseen tarvittavat avaimet."
# game/android.rpy:56
old "Lists the connected devices."
# Automatic translation.
new "Luettelee liitetyt laitteet."
# game/android.rpy:57
old "Pairs with a device over Wi-Fi, on Android 11+."
# Automatic translation.
new "Pariliitos laitteen kanssa Wi-Fi-yhteyden kautta Android 11+ -käyttöjärjestelmässä."
# game/android.rpy:58
old "Connects to a device over Wi-Fi, on Android 11+."
# Automatic translation.
new "Muodostaa yhteyden laitteeseen Wi-Fi-yhteyden kautta Android 11+ -käyttöjärjestelmässä."
# game/android.rpy:59
old "Disconnects a device connected over Wi-Fi."
new "Katkaisee yhteyden Wi-Fi-yhteyden kautta yhdistetyn laitteeseen."
# game/android.rpy:61
old "Removes Android temporary files."
# Automatic translation.
new "Poistaa Androidin väliaikaiset tiedostot."
# game/android.rpy:63
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
# Automatic translation.
new "Rakentaa Android-sovelluspaketin (ABB), joka on tarkoitus ladata Google Play -palveluun. Tämä voi sisältää enintään 2 Gt dataa."
# game/android.rpy:64
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
new "Rakentaa universaalin APK-paketin, joka on tarkoitettu sivulataukseen ja muihin kauppoihin kuin Google Play'hin. Tämä voi sisältää enintään 2 Gt dataa."
# game/android.rpy:327
old "Android: [project.current.display_name!q]"
new "Android: [project.current.display_name!q]"
# game/android.rpy:383
old "Install SDK"
# Automatic translation.
new "Asenna SDK"
# game/android.rpy:387
old "Generate Keys"
# Automatic translation.
new "Luo avaimet"
# game/android.rpy:397
old "Play Bundle"
new "Play-kaupan paketti"
# game/android.rpy:402
old "Universal APK"
new "Universal APK"
# game/android.rpy:452
old "List Devices"
new "Listaa laitteet"
# game/android.rpy:456
old "Wi-Fi Debugging Pair"
# Automatic translation.
new "Wi-Fi-vianmäärityspari"
# game/android.rpy:460
old "Wi-Fi Debugging Connect"
new "Wi-Fi-vianmäärityksen yhdistäminen"
# game/android.rpy:464
old "Wi-Fi Debugging Disconnect"
# Automatic translation.
new "Wi-Fi-vianmäärityksen katkaisu"
# game/android.rpy:468
old "Clean"
new "Puhdista"
# game/android.rpy:573
old "Wi-Fi Pairing Code"
# Automatic translation.
new "Wi-Fi-pariliitäntäkoodi"
# game/android.rpy:573
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
# Automatic translation.
new "Jos tämä on tuettu, se löytyy kohdasta \"Kehittäjän asetukset\", \"Langaton virheenkorjaus\", \"Laitteen pariliitos pariliitoskoodilla\"."
# game/android.rpy:580
old "Pairing Host & Port"
# Automatic translation.
new "Isännän ja sataman yhdistäminen"
# game/android.rpy:596
old "IP Address & Port"
# Automatic translation.
new "IP-osoite ja portti"
# game/android.rpy:596
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
# Automatic translation.
new "Jos tämä on tuettu, se löytyy kohdasta 'Kehitysasetukset', 'Langaton virheenkorjaus'."
# game/android.rpy:612
old "This can be found in 'List Devices'."
new "Tämä löytyy kohdasta 'listaa laitteet'."
# game/android.rpy:632
old "Cleaning up Android project."
# Automatic translation.
new "Android-projektin siivoaminen."
# game/androidstrings.rpy:7
old "{} is not a directory."
# Automatic translation.
new "{} ei ole hakemisto."
# game/androidstrings.rpy:8
old "{} does not contain a Ren'Py game."
# Automatic translation.
new "{} ei sisällä Ren'Py-peliä."
# game/androidstrings.rpy:10
old "Run configure before attempting to build the app."
# Automatic translation.
new "Suorita configure ennen sovelluksen rakentamista."
# game/androidstrings.rpy:11
old "Updating project."
# Automatic translation.
new "Projektin päivittäminen."
# game/androidstrings.rpy:12
old "Creating assets directory."
new "Materiaalihakemiston luominen."
# game/androidstrings.rpy:13
old "Packaging internal data."
# Automatic translation.
new "Pakkauksen sisäiset tiedot."
# game/androidstrings.rpy:14
old "I'm using Gradle to build the package."
# Automatic translation.
new "Käytän Gradlea paketin rakentamiseen."
# game/androidstrings.rpy:15
old "The build seems to have failed."
# Automatic translation.
new "Rakentaminen näyttää epäonnistuneen."
# game/androidstrings.rpy:16
old "I'm installing the bundle."
# Automatic translation.
new "Asennan paketin."
# game/androidstrings.rpy:17
old "Installing the bundle appears to have failed."
new "Paketin asentaminen näyttää epäonnistuneen."
# game/androidstrings.rpy:18
old "Launching app."
new "Sovellus käynnistyy."
# game/androidstrings.rpy:19
old "Launching the app appears to have failed."
# Automatic translation.
new "Sovelluksen käynnistäminen näyttää epäonnistuneen."
# game/androidstrings.rpy:20
old "The build seems to have succeeded."
# Automatic translation.
new "Rakentaminen näyttää onnistuneen."
# game/androidstrings.rpy:21
old "What is the full name of your application? This name will appear in the list of installed applications."
new "Mikä on sovelluksesi koko nimi? Tämä nimi näkyy asennettujen sovellusten luettelossa."
# game/androidstrings.rpy:22
old "What is the short name of your application? This name will be used in the launcher, and for application shortcuts."
# Automatic translation.
new "Mikä on sovelluksesi lyhyt nimi? Tätä nimeä käytetään käynnistysohjelmassa ja sovelluksen pikakuvakkeissa."
# game/androidstrings.rpy:23
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
# Automatic translation.
new "Mikä on paketin nimi?\n\nTämä on yleensä muotoa com.domain.program tai com.domain.email.program. Se voi sisältää vain ASCII-kirjaimia ja pisteitä. Sen on sisällettävä vähintään yksi piste."
# game/androidstrings.rpy:24
old "The package name may not be empty."
# Automatic translation.
new "Paketin nimi ei saa olla tyhjä."
# game/androidstrings.rpy:25
old "The package name may not contain spaces."
# Automatic translation.
new "Paketin nimi ei saa sisältää välilyöntejä."
# game/androidstrings.rpy:26
old "The package name must contain at least one dot."
# Automatic translation.
new "Paketin nimessä on oltava vähintään yksi piste."
# game/androidstrings.rpy:27
old "The package name may not contain two dots in a row, or begin or end with a dot."
# Automatic translation.
new "Paketin nimi ei saa sisältää kahta pistettä peräkkäin eikä alkaa tai päättyä pisteeseen."
# game/androidstrings.rpy:28
old "Each part of the package name must start with a letter, and contain only letters, numbers, and underscores."
# Automatic translation.
new "Paketin nimen jokaisen osan on alettava kirjaimella, ja sen on sisällettävä vain kirjaimia, numeroita ja alleviivauksia."
# game/androidstrings.rpy:29
old "{} is a Java keyword, and can't be used as part of a package name."
# Automatic translation.
new "{} on Javan avainsana, eikä sitä voi käyttää osana paketin nimeä."
# game/androidstrings.rpy:30
old "What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots."
new "Mikä on sovelluksen versio?\n\nTämän pitäisi olla ihmisen luettava versio, jonka voisi näyttää henkilölle. Sen on sisällettävä vain numeroita ja pisteitä."
# game/androidstrings.rpy:31
old "The version number must contain only numbers and dots."
# Automatic translation.
new "Versionumero saa sisältää vain numeroita ja pisteitä."
# game/androidstrings.rpy:32
old "How much RAM (in GB) do you want to allocate to Gradle?\nThis must be a positive integer number."
# Automatic translation.
new "Kuinka paljon RAM-muistia (gigatavuina) haluat varata Gradlelle?\nTämän on oltava positiivinen kokonaisluku."
# game/androidstrings.rpy:33
old "The RAM size must contain only numbers and be positive."
# Automatic translation.
new "RAM-koon on sisällettävä vain numeroita ja oltava positiivinen."
# game/androidstrings.rpy:34
old "How would you like your application to be displayed?"
# Automatic translation.
new "Miten haluat, että sovelluksesi näytetään?"
# game/androidstrings.rpy:35
old "In landscape orientation."
# Automatic translation.
new "Maisemasuunnassa."
# game/androidstrings.rpy:36
old "In portrait orientation."
# Automatic translation.
new "Pystysuunnassa."
# game/androidstrings.rpy:37
old "In the user's preferred orientation."
# Automatic translation.
new "Käyttäjän haluamassa suunnassa."
# game/androidstrings.rpy:38
old "Which app store would you like to support in-app purchasing through?"
# Automatic translation.
new "Minkä sovelluskaupan kautta haluaisit tukea sovelluksen sisäisiä ostoja?"
# game/androidstrings.rpy:39
old "Google Play."
new "Google Playn."
# game/androidstrings.rpy:40
old "Amazon App Store."
new "Amazon App Storen."
# game/androidstrings.rpy:41
old "Both, in one app."
new "Molempien yhdessä sovelluksessa."
# game/androidstrings.rpy:42
old "Neither."
new "En kummankaan."
# game/androidstrings.rpy:43
old "Do you want to automatically update the Java source code?"
# Automatic translation.
new "Haluatko päivittää Javan lähdekoodin automaattisesti?"
# game/androidstrings.rpy:44
old "Yes. This is the best choice for most projects."
# Automatic translation.
new "Kyllä. Tämä on paras valinta useimpiin hankkeisiin."
# game/androidstrings.rpy:45
old "No. This may require manual updates when Ren'Py or the project configuration changes."
# Automatic translation.
new "Ei. Tämä saattaa vaatia manuaalisia päivityksiä, kun Ren'Py tai projektin kokoonpano muuttuu."
# game/androidstrings.rpy:46
old "Unknown configuration variable: {}"
# Automatic translation.
new "Tuntematon konfiguraatiomuuttuja: {}"
# game/androidstrings.rpy:47
old "I'm compiling a short test program, to see if you have a working JDK on your system."
new "Rakennan lyhyen testiohjelman nähdäkseni, onko järjestelmässäsi toimiva JDK."
# game/androidstrings.rpy:48
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please make sure you installed the 'JavaSoft (Oracle) registry keys'.\n\nWithout a working JDK, I can't continue."
# Automatic translation.
new "En pystynyt kääntämään testitiedostoa javacin avulla. Jos et ole vielä asentanut Java Development Kitiä, lataa se osoitteesta:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nJDK on eri asia kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta. Varmista, että olet asentanut 'JavaSoft (Oracle) registry keys'.\n\nIlman toimivaa JDK:ta en voi jatkaa."
# game/androidstrings.rpy:49
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
# Automatic translation.
new "Tietokoneessasi oleva Java-versio ei näytä olevan JDK 8, joka on ainoa Android SDK:n tukema versio. Jos sinun on asennettava JDK 8, voit ladata sen osoitteesta:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nVoit myös asettaa JAVA_HOME-ympäristömuuttujan käyttämään eri Java-versiota."
# game/androidstrings.rpy:50
old "The JDK is present and working. Good!"
# Automatic translation.
new "JDK on läsnä ja toimii. Hyvä!"
# game/androidstrings.rpy:51
old "The Android SDK has already been unpacked."
# Automatic translation.
new "Android SDK on jo purettu."
# game/androidstrings.rpy:52
old "Do you accept the Android SDK Terms and Conditions?"
# Automatic translation.
new "Hyväksytkö Android SDK:n käyttöehdot?"
# game/androidstrings.rpy:53
old "I'm downloading the Android SDK. This might take a while."
# Automatic translation.
new "Lataan Android SDK:n. Tämä saattaa kestää jonkin aikaa."
# game/androidstrings.rpy:54
old "I'm extracting the Android SDK."
# Automatic translation.
new "Puran Android SDK:n."
# game/androidstrings.rpy:55
old "I've finished unpacking the Android SDK."
# Automatic translation.
new "Olen purkanut Android SDK:n pakkauksen."
# game/androidstrings.rpy:56
old "I'm about to download and install the required Android packages. This might take a while."
# Automatic translation.
new "Aion ladata ja asentaa tarvittavat Android-paketit. Tämä saattaa kestää jonkin aikaa."
# game/androidstrings.rpy:57
old "I was unable to accept the Android licenses."
# Automatic translation.
new "En pystynyt hyväksymään Android-lisenssejä."
# game/androidstrings.rpy:59
old "I was unable to install the required Android packages."
# Automatic translation.
new "En saanut asennettua tarvittavia Android-paketteja."
# game/androidstrings.rpy:60
old "I've finished installing the required Android packages."
# Automatic translation.
new "Olen saanut asennettua tarvittavat Android-paketit."
# game/androidstrings.rpy:61
old "It looks like you're ready to start packaging games."
# Automatic translation.
new "Näyttää siltä, että olet valmis aloittamaan pelien pakkaamisen."
# game/androidstrings.rpy:62
old "Please enter your name or the name of your organization."
# Automatic translation.
new "Kirjoita nimesi tai organisaatiosi nimi."
# game/androidstrings.rpy:63
old "I found an android.keystore file in the rapt directory. Do you want to use this file?"
# Automatic translation.
new "Löysin android.keystore-tiedoston rapt-hakemistosta. Haluatko käyttää tätä tiedostoa?"
# game/androidstrings.rpy:64
old "I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?"
# Automatic translation.
new "Voin luoda sinulle sovelluksen allekirjoitusavaimen. Tätä avainta tarvitaan luodaksesi Universal APK:n sivulatausta ja muita kauppoja kuin Google Playta varten.\n\nHaluatko luoda avaimen?"
# game/androidstrings.rpy:65
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
# Automatic translation.
new "Luon avaimen android.keystore-tiedostoon.\n\nSinun on varmuuskopioitava tämä tiedosto. Jos kadotat sen, et voi päivittää sovellusta.\n\nSinun on myös pidettävä avain turvassa. Jos pahat ihmiset saavat tämän tiedoston haltuunsa, he voivat tehdä sovelluksestasi väärennettyjä versioita ja mahdollisesti varastaa käyttäjien tietoja.\n\nTeetkö varmuuskopion android.keystore-tiedostosta ja säilytät sen turvallisessa paikassa?"
# game/androidstrings.rpy:66
old "\n\nSaying 'No' will prevent key creation."
# Automatic translation.
new "\n\nJos sanot \"Ei\", avaimen luominen estyy."
# game/androidstrings.rpy:67
old "Could not create android.keystore. Is keytool in your path?"
# Automatic translation.
new "Ei voitu luoda android.keystore. Onko keytool polussasi?"
# game/androidstrings.rpy:68
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
# Automatic translation.
new "Olen saanut valmiiksi android.keystoren luomisen. Varmuuskopioi se ja säilytä se turvallisessa paikassa."
# game/androidstrings.rpy:69
old "I found a bundle.keystore file in the rapt directory. Do you want to use this file?"
# Automatic translation.
new "Löysin bundle.keystore-tiedoston rapt-hakemistosta. Haluatko käyttää tätä tiedostoa?"
# game/androidstrings.rpy:70
old "I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?"
new "Voin luoda sinulle paketin allekirjoitusavaimen. Tätä avainta tarvitaan Android-sovelluspaketin (AAB) rakentamiseen Google Playyn lataamista varten.\n\nHaluatko luoda avaimen?"
# game/androidstrings.rpy:71
old "I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?"
# Automatic translation.
new "Luon avaimen bundle.keystore-tiedostoon.\n\nSinun on varmuuskopioitava tämä tiedosto. Jos kadotat sen, et voi päivittää sovellusta.\n\nSinun on myös pidettävä avain turvassa. Jos pahat ihmiset saavat tämän tiedoston haltuunsa, he voivat tehdä sovelluksestasi väärennettyjä versioita ja mahdollisesti varastaa käyttäjien tietoja.\n\nTeetkö varmuuskopion bundle.keystore-tiedostosta ja säilytät sen turvallisessa paikassa?"
# game/androidstrings.rpy:73
old "Could not create bundle.keystore. Is keytool in your path?"
# Automatic translation.
new "Ei voitu luoda bundle.keystore. Onko keytool polussasi?"
# game/androidstrings.rpy:74
old "I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place."
# Automatic translation.
new "Olen avannut hakemiston, joka sisältää android.keystore ja bundle.keystore. Varmuuskopioi ne ja säilytä ne turvallisessa paikassa."
# game/choose_directory.rpy:67
old "Select Projects Directory"
# Automatic translation.
new "Valitse projektit Hakemisto"
# game/choose_directory.rpy:79
old "The selected projects directory is not writable."
# Automatic translation.
new "Valittuun projektihakemistoon ei voi kirjoittaa."
# game/choose_theme.rpy:508
old "changing the theme"
# Automatic translation.
new "teeman muuttaminen"
# game/distribute.rpy:1278
old "Signing the Macintosh application...\n(This may take a long time.)"
new "Macintosh-sovellusta allekirjoitetaan...\n(Tämä voi kestää kauan.)"
# game/distribute.rpy:1745
old "Copying files..."
new "Tiedostoja kopioidaan..."
# game/distribute_gui.rpy:157
old "Build Distributions: [project.current.display_name!q]"
# Automatic translation.
new "Rakenna jakelut: [project.current.display_name!q]"
# game/distribute_gui.rpy:195
old "Update old-game"
new "Päivitä old-game"
# game/distribute_gui.rpy:231
old "(DLC)"
new "(DLC)"
# game/dmgcheck.rpy:50
old "Ren'Py is running from a read only folder. Some functionality will not work."
# Automatic translation.
new "Ren'Py toimii vain lukuoikeuksilla varustetusta kansiosta. Jotkin toiminnot eivät toimi."
# game/dmgcheck.rpy:50
old "This is probably because Ren'Py is running directly from a Macintosh drive image. To fix this, quit this launcher, copy the entire %s folder somewhere else on your computer, and run Ren'Py again."
# Automatic translation.
new "Tämä johtuu luultavasti siitä, että Ren'Py toimii suoraan Macintosh-aseman kuvasta. Voit korjata tämän lopettamalla tämän käynnistysohjelman, kopioimalla koko %s-kansion jonnekin muualle tietokoneellesi ja käynnistämällä Ren'Py:n uudelleen."
# game/editor.rpy:152
old "A modern editor with many extensions including advanced Ren'Py integration."
# Automatic translation.
new "Nykyaikainen editori, jossa on monia laajennuksia, mukaan lukien edistynyt Ren'Py-integraatio."
# game/editor.rpy:153
old "A modern editor with many extensions including advanced Ren'Py integration.\n{a=jump:reinstall_vscode}Upgrade Visual Studio Code to the latest version.{/a}"
# Automatic translation.
new "Nykyaikainen editori, jossa on monia laajennuksia, mukaan lukien edistynyt Ren'Py-integraatio.\n{a=jump:reinstall_vscode}Päivitä Visual Studio Code uusimpaan versioon.{/a}"
# game/editor.rpy:169
old "Visual Studio Code"
new "Visual Studio Code"
# game/editor.rpy:169
old "Up to 110 MB download required."
# Automatic translation.
new "Jopa 110 Mt:n lataus vaaditaan."
# game/editor.rpy:182
old "A modern and approachable text editor."
# Automatic translation.
new "Moderni ja helposti lähestyttävä tekstieditori."
# game/editor.rpy:196
old "Atom"
new "Atom"
# game/editor.rpy:196
old "Up to 150 MB download required."
new "Jopa 150 Mt:n lataus vaaditaan."
# game/editor.rpy:211
old "jEdit"
new "jEdit"
# game/editor.rpy:220
old "Visual Studio Code (System)"
# Automatic translation.
new "Visual Studio Code (järjestelmä)"
# game/editor.rpy:220
old "Uses a copy of Visual Studio Code that you have installed outside of Ren'Py. It's recommended you install the language-renpy extension to add support for Ren'Py files."
new "Käyttää kopiota Visual Studio Code -ohjelmasta, jonka olet asentanut Ren'Py:n ulkopuolelle. On suositeltavaa asentaa language-renpy -laajennus lisätäksesi tuen Ren'Py-tiedostoille."
# game/editor.rpy:226
old "System Editor"
new "Järjestelmän editori"
# game/editor.rpy:245
old "None"
# Automatic translation.
new "Ei ole"
# game/editor.rpy:352
old "Edit [text]."
# Automatic translation.
new "Muokkaa [text]."
# game/front_page.rpy:58
old "PROJECTS:"
new "PROJEKTIT:"
# game/front_page.rpy:165
old "audio"
new "audio"
# game/front_page.rpy:182
old "Open project"
new "Avaa projekti"
# game/front_page.rpy:188
old "Actions"
# Automatic translation.
new "Toimet"
# game/front_page.rpy:219
old "Web"
new "Web"
# game/front_page.rpy:219
old "(Beta)"
new "(Beta)"
# game/gui7.rpy:302
old "{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"
# Automatic translation.
new "{size=-4}\n\nTämä ei korvaa tiedostoja gui/main_menu.png, gui/game_menu.png ja gui/window_icon.png, vaan luo tiedostoja, joita ei ole olemassa.{/size}"
# game/gui7.rpy:333
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
# Automatic translation.
new "Mukautettu. Käyttöliittymä on optimoitu 16:9-kuvasuhteelle."
# game/gui7.rpy:350
old "WIDTH"
# Automatic translation.
new "LEVEYS"
# game/gui7.rpy:350
old "Please enter the width of your game, in pixels."
# Automatic translation.
new "Kirjoita pelisi leveys pikseleinä."
# game/gui7.rpy:360
old "The width must be a number."
# Automatic translation.
new "Leveyden on oltava numero."
# game/gui7.rpy:366
old "HEIGHT"
# Automatic translation.
new "KORKEUS"
# game/gui7.rpy:366
old "Please enter the height of your game, in pixels."
# Automatic translation.
new "Anna pelisi korkeus pikseleinä."
# game/gui7.rpy:376
old "The height must be a number."
# Automatic translation.
new "Korkeuden on oltava numero."
# game/gui7.rpy:424
old "creating a new project"
new "uutta projektia luodaan"
# game/gui7.rpy:428
old "activating the new project"
new "uutta projektia aktivoidaan"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
# Automatic translation.
new "[name!t] ei voitu asentaa, koska Ren'Py SDK -hakemistosta ei löytynyt [zipglob] -nimistä tiedostoa."
# game/install.rpy:79
old "Successfully installed [name!t]."
new "[name!t] asennettu onnistuneesti."
# game/install.rpy:111
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
# Automatic translation.
new "Tällä näytöllä voit asentaa kirjastoja joita ei voi jakaa Ren'Py:n mukana. Jotkin näistä kirjastoista saattavat vaatia, että hyväksyt kolmannen osapuolen lisenssin ennen käyttöä tai jakelua."
# game/install.rpy:117
old "Install Steam Support"
# Automatic translation.
new "Asenna Steam-tuki"
# game/install.rpy:126
old "Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}."
# Automatic translation.
new "Ennen kuin asennat Steam-tuen, varmista, että olet {a=https://partner.steamgames.com/}Steam-kumppani{/a}."
# game/install.rpy:138
old "Steam support has already been installed."
# Automatic translation.
new "Steam-tuki on jo asennettu."
# game/install.rpy:142
old "Install Live2D Cubism SDK for Native"
new "Asenna Live2D Cubism SDK for Native"
# game/install.rpy:156
old "Install Libraries"
# Automatic translation.
new "Asenna kirjastot"
# game/install.rpy:182
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
# Automatic translation.
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} lisää tuen Live2D-mallien näyttämiselle. Aseta CubismSdkForNative-4-{i}versio{/i}.zip-tiedosto Ren'Py SDK -hakemistoon ja napsauta sitten Install. Pelin levittäminen Live2D:n avulla edellyttää, että hyväksyt Live2D, Inc:n lisenssin."
# game/install.rpy:186
old "Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support."
# Automatic translation.
new "Ren'Py:n Live2D ei tue Webiä, Android x86_64:ää (mukaan lukien emulaattorit ja Chrome OS), ja se on lisättävä iOS-projekteihin manuaalisesti. Live2D on asennettava uudelleen Ren'Py:n päivittämisen tai Android-tuen asentamisen jälkeen."
# game/install.rpy:191
old "Open Ren'Py SDK Directory"
# Automatic translation.
new "Avaa Ren'Py SDK-hakemisto"
# game/installer.rpy:10
old "Downloading [extension.download_file]."
new "Ladataan [extension.download_file]."
# game/installer.rpy:11
old "Could not download [extension.download_file] from [extension.download_url]:\n{b}[extension.download_error]"
# Automatic translation.
new "Ei voitu ladata [extension.download_file] osoitteesta [extension.download_url]:\n{b}[extension.download_error]"
# game/installer.rpy:12
old "The downloaded file [extension.download_file] from [extension.download_url] is not correct."
# Automatic translation.
new "Ladattu tiedosto [extension.download_file] osoitteesta [extension.download_url] ei ole oikein."
# game/interface.rpy:124
old "[interface.version]"
new "[interface.version]"
# game/interface.rpy:141
old "Ren'Py Sponsor Information"
new "Ren'Pyn sponsoritiedot"
# game/interface.rpy:385
old "opening the log file"
# Automatic translation.
new "lokitiedostoa avataan"
# game/ios.rpy:269
old "iOS: [project.current.display_name!q]"
new "iOS: [project.current.display_name!q]"
# game/ios.rpy:379
old "There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices."
# Automatic translation.
new "Apple Siliconin iOS-simulaattorissa on tunnettuja ongelmia. Testaa x86_64- tai iOS-laitteilla."
# game/itch.rpy:45
old "Downloading the itch.io butler."
new "Ladataan itch.io'n butler-ohjelmaa."
# game/navigation.rpy:168
old "Navigate: [project.current.display_name!q]"
# Automatic translation.
new "Navigoi: [project.current.display_name!q]"
# game/new_project.rpy:81
old "You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."
new "Luot [new_project_language]{#this substitution may be localized} -kielisen projektin. Vaihda käynnistyskieli asetuksissa, jos haluat luoda projektin toisella kielellä."
# game/preferences.rpy:106
old "General"
# Automatic translation.
new "Yleistä"
# game/preferences.rpy:107
old "Options"
new "Asetukset"
# game/preferences.rpy:224
old "Sponsor message"
new "Sponsoriviesti"
# game/preferences.rpy:227
old "Daily check for update"
# Automatic translation.
new "Päivittäinen päivityksen tarkistus"
# game/preferences.rpy:246
old "Launcher Theme:"
new "Käynnistimen Teema:"
# game/preferences.rpy:250
old "Default theme"
# Automatic translation.
new "Oletusteema"
# game/preferences.rpy:251
old "Dark theme"
# Automatic translation.
new "Tumma teema"
# game/preferences.rpy:252
old "Custom theme"
# Automatic translation.
new "Mukautettu teema"
# game/preferences.rpy:256
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:"
# Automatic translation.
new "Asenna kirjastot:"
# game/preferences.rpy:300
old "Reset window size"
new "Palauta ikkunan oletuskoko"
# game/preferences.rpy:301
old "Clean temporary files"
new "Poista väliaikaiset tiedostot"
# game/preferences.rpy:308
old "Cleaning temporary files..."
new "Poistetaan väliaikaisia tiedostoja..."
# game/preferences.rpy:338
old "{#in language font}Welcome! Please choose a language"
# Automatic translation.
new "{#in language font}Tervetuloa! Valitse kieli"
# game/preferences.rpy:373
old "{#in language font}Start using Ren'Py in [lang_name]"
new "{#in language font}Aloita Ren'Py:n käyttö kielellä [lang_name]"
# game/project.rpy:46
old "Lint checks your game for potential mistakes, and gives you statistics."
# Automatic translation.
new "Lint tarkistaa pelisi mahdollisten virheiden varalta ja antaa tilastoja."
# game/project.rpy:283
old "This may be because the project is not writeable."
# Automatic translation.
new "Tämä voi johtua siitä, että projekti ei ole kirjoitettavissa."
# game/translations.rpy:91
old "Translations: [project.current.display_name!q]"
# Automatic translation.
new "Käännökset: [project.current.display_name!q]"
# game/translations.rpy:342
old "Extract Dialogue: [project.current.display_name!q]"
new "Kerää dialogi: [project.current.display_name!q]"
# game/translations.rpy:391
old "Language (or None for the default language):"
# Automatic translation.
new "Kieli (tai Ei mitään oletuskieleksi):"
# game/updater.rpy:64
old "Release (Ren'Py 8, Python 3)"
# Automatic translation.
new "Julkaisu (Ren'Py 8, Python 3)"
# game/updater.rpy:65
old "Release (Ren'Py 7, Python 2)"
# Automatic translation.
new "Julkaisu (Ren'Py 7, Python 2)"
# game/updater.rpy:69
old "Prerelease (Ren'Py 8, Python 3)"
new "Esijulkaisu (Ren'Py 8, Python 3)"
# game/updater.rpy:70
old "Prerelease (Ren'Py 7, Python 2)"
new "Esijulkaisu (Ren'Py 7, Python 2)"
# game/updater.rpy:77
old "Nightly (Ren'Py 8, Python 3)"
new "Nightly (Ren'Py 8, Python 3)"
# game/updater.rpy:78
old "Nightly (Ren'Py 7, Python 2)"
new "Nightly (Ren'Py 7, Python 2)"
# game/updater.rpy:108
old "The update channel controls the version of Ren'Py the updater will download."
# Automatic translation.
new "Päivityskanava ohjaa Ren'Py-version, jonka päivitysohjelma lataa."
# game/updater.rpy:116
old "• {a=https://www.renpy.org/doc/html/changelog.html}View change log{/a}"
# Automatic translation.
new "- {a=https://www.renpy.org/doc/html/changelog.html}Näytä muutosloki{/a}"
# game/updater.rpy:118
old "• {a=https://www.renpy.org/dev-doc/html/changelog.html}View change log{/a}"
# Automatic translation.
new "- {a=https://www.renpy.org/dev-doc/html/changelog.html}Näytä muutosloki{/a}"
# game/updater.rpy:124
old "• This version is installed and up-to-date."
# Automatic translation.
new "- Tämä versio on asennettu ja ajan tasalla."
# game/updater.rpy:136
old "%B %d, %Y"
new "%B %d, %Y"
# game/updater.rpy:215
old "Fetching the list of update channels"
new "Haetaan päivityskanavien luetteloa"
# game/updater.rpy:220
old "downloading the list of update channels"
new "ladataan päivityskanavien luetteloa"
# game/web.rpy:428
old "Preparing progressive download"
new "Valmistellaan progressiivista latausta"
# game/web.rpy:485
old "Creating package..."
new "Luodaan pakettia..."
# game/web.rpy:505
old "Web: [project.current.display_name!q]"
new "Web: [project.current.display_name!q]"
# game/web.rpy:535
old "Build Web Application"
# Automatic translation.
new "Rakenna web-sovellus"
# game/web.rpy:536
old "Build and Open in Browser"
# Automatic translation.
new "Rakenna ja avaa selaimessa"
# game/web.rpy:537
old "Open in Browser"
# Automatic translation.
new "Avaa selaimessa"
# game/web.rpy:538
old "Open build directory"
# Automatic translation.
new "Avaa rakennushakemisto"
# game/web.rpy:560
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
# Automatic translation.
new "Kuvia ja musiikkia voi ladata toiston aikana. Progressive_download.txt-tiedosto luodaan, jotta voit määrittää tämän käyttäytymisen."
# game/web.rpy:568
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
# Automatic translation.
new "Ennen verkkosovellusten pakkaamista sinun on ladattava RenPyWeb, Ren'Pyn verkkotuki. Haluatko ladata RenPyWebin nyt?"
translate finnish strings:
# game/updater.rpy:79
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."
+28
View File
@@ -193,3 +193,31 @@ translate finnish strings:
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Kauttaviivan erottama käyttäjänimi ja itch.io-projektinimi."
translate finnish strings:
# 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."
# Automatic translation.
new "## Teksti, joka sijoitetaan pelin about-näyttöön. Sijoita teksti kolmoislauseiden väliin ja jätä kappaleiden väliin tyhjä rivi."
# 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."
# Automatic translation.
new "## Nämä kolme muuttujaa säätelevät muun muassa sitä, mitkä mikserit näytetään pelaajalle oletusarvoisesti. Jonkin näistä muuttujista asettaminen Falseen piilottaa kyseisen mikserin."
# gui/game/options.rpy:82
old "## Between screens of the game menu."
# Automatic translation.
new "## Pelivalikon näyttöjen välillä."
# gui/game/options.rpy:152
old "## Icon"
# Automatic translation.
new "## Kuvake"
# 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\"."
# Automatic translation.
new "## Google Play -lisenssiavain tarvitaan sovelluksen sisäisten ostojen tekemiseen. Se löytyy Google Play -kehittäjäkonsolista kohdasta \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
+138 -5
View File
@@ -75,7 +75,8 @@ translate finnish strings:
# screens.rpy:263
old "Skip"
new "Skip"
# Automatic translation.
new "Ohita"
# screens.rpy:264
old "Auto"
@@ -407,7 +408,8 @@ translate finnish strings:
# screens.rpy:1003
old "Enter"
new "Enter"
# Automatic translation.
new "Kirjoita"
# screens.rpy:1004
old "Advances dialogue and activates the interface."
@@ -455,7 +457,8 @@ translate finnish strings:
# screens.rpy:1027
old "Page Up"
new "Page Up"
# Automatic translation.
new "Sivu ylös"
# screens.rpy:1028
old "Rolls back to earlier dialogue."
@@ -494,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"
@@ -641,3 +644,133 @@ translate finnish strings:
old "Menu"
new "Valikko"
translate finnish strings:
# 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."
# Automatic translation.
new "## Jos sivulla on kuva, näytä se tekstin yläpuolella. Älä näytä puhelinmuunnoksessa - siinä ei ole tilaa."
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
# Automatic translation.
new "## Tee nimilaatikosta muotoiltavissa oleva Character-olio."
# 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: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:241
old "## Ensure this appears on top of other screens."
# Automatic translation.
new "## Varmista, että tämä näkyy muiden näyttöjen yläpuolella."
# gui/game/screens.rpy:280
old "## Main and Game Menu Screens"
# Automatic translation.
new "## Pää- ja pelivalikon näytöt"
# gui/game/screens.rpy:329
old "## The quit button is banned on iOS and unnecessary on Android and Web."
# Automatic translation.
new "## Lopeta-painike on kielletty iOS:ssä ja tarpeeton Androidissa ja Webissä."
# 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."
# Automatic translation.
new "## Näin varmistetaan, että kaikki muut valikkonäytöt korvataan."
# gui/game/screens.rpy:357
old "## This empty frame darkens the main menu."
# Automatic translation.
new "## Tämä tyhjä kehys tummentaa päävalikon."
# gui/game/screens.rpy:429
old "## Reserve space for the navigation section."
# Automatic translation.
new "## Varaa tilaa navigointiosuudelle."
# gui/game/screens.rpy:608
old "## The page name, which can be edited by clicking on a button."
# Automatic translation.
new "## Sivun nimi, jota voidaan muokata napsauttamalla painiketta."
# gui/game/screens.rpy:668
old "## range(1, 10) gives the numbers from 1 to 9."
# Automatic translation.
new "## range(1, 10) antaa numerot 1-9."
# gui/game/screens.rpy:676
old "Upload Sync"
# Automatic translation.
new "Lataa synkronointi"
# gui/game/screens.rpy:680
old "Download Sync"
# Automatic translation.
new "Lataa Sync"
# gui/game/screens.rpy:921
old "## This determines what tags are allowed to be displayed on the history screen."
# Automatic translation.
new "## Tämä määrittää, mitä tunnisteita saa näyttää historiaruudulla."
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
# Automatic translation.
new "Avaa saavutettavuusvalikon."
# gui/game/screens.rpy:1082
old "Left Trigger\nLeft Shoulder"
# Automatic translation.
new "Vasen liipaisin\nVasen olkapää"
# 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:1248
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
# Automatic translation.
new "## Meidän on käytettävä fonttia, jossa on BLACK RIGHT-POINTING SMALL TRIANGLE -lyhenne."
# 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:1320
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
# Automatic translation.
new "## Näyttää valikon, jos se on annettu. Valikko saatetaan näyttää virheellisesti, jos config.narrator_menu on asetettu arvoon True."
# gui/game/screens.rpy:1410
old "## Bubble screen"
# Automatic translation.
new "## Kupla näyttö"
# 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."
# Automatic translation.
new "## Puhekuplaikkunaa käytetään näyttämään dialogi pelaajalle, kun käytetään puhekuplia. Bubble screen ottaa samat parametrit kuin say screen, sen on luotava displayable, jonka id on \"what\", ja se voi luoda displayables, joiden id:t ovat \"namebox\", \"who\" ja \"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"
translate finnish 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 "## Selausparametri voi olla None tai jokin seuraavista: \"viewport\" tai \"vpgrid\". Tämä ruutu on tarkoitettu käytettäväksi yhden tai useamman lapsen kanssa, jotka siirretään (sijoitetaan) sen sisään."
+18 -7
View File
@@ -332,8 +332,6 @@
old "return"
new "retour"
translate french strings:
# renpy/common/00accessibility.rpy:76
old "Font Override"
new "Forcer la police"
@@ -392,7 +390,7 @@ translate french strings:
# renpy/common/00accessibility.rpy:34
old "viewport"
new "viewport"
new "fenêtre déroulante"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
@@ -488,7 +486,7 @@ translate french strings:
# renpy/common/00director.rpy:1561
old "(statement)"
new "(statement)"
new "(instruction)"
# renpy/common/00director.rpy:1562
old "(tag)"
@@ -508,7 +506,8 @@ translate french strings:
# renpy/common/00director.rpy:1601
old "(channel)"
new "(channel)"
# Automatic translation.
new "(canal)"
# renpy/common/00director.rpy:1602
old "(filename)"
@@ -732,7 +731,7 @@ translate french strings:
# renpy/common/_developer/developer.rpym:57
old "Show Image Load Log (F4)"
new "Montrer le log ne chargement des images (F4)"
new "Afficher le log de chargement des images (F4)"
# renpy/common/_developer/developer.rpym:60
old "Hide Image Load Log (F4)"
@@ -812,7 +811,11 @@ translate french strings:
# renpy/common/00director.rpy:1771
old "Click to set transform, right click to add to transform list."
new "Clic pour ajouter un transform, clic droit pour ajouter une liste de transforms."
new "Clic pour assigner le transform, clic droit pour ajouter à la liste des transforms."
# renpy/common/00director.rpy:1789
old "Click to set, right click to add to behind list."
new "Clic pour assigner, clic droit pour ajouter à la liste du \"behind\"."
# renpy/common/00preferences.rpy:528
old "audio when unfocused"
@@ -897,3 +900,11 @@ translate french strings:
# renpy/common/00webvideo.rpy:5
old "Touch to play the video."
new "Touchez pour jouer la vidéo."
# 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 "Cette sauvegarde a été créée sur un autre appareil. Des faux fichiers de sauvegarde peuvent être utilisés pour endommager votre ordinateur. Faites-vous confiance au créateur de cette sauvegarde et à tous ceux qui auraient pu modifier le fichier ?"
# 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 "Faites-vous confiance à l'appareil sur lequel cette sauvegarde a été créée ? Vous ne devriez dire oui que si vous en êtes l'unique utilisateur ."
+5 -1
View File
@@ -78,7 +78,7 @@
# _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}✔ image prédite (bon){/color}\n{color=#fcc}✘ image prédite (mauvais){/color}\n{color=#fff}Glissez pour bouger.{/color}"
new "\n{color=#cfc}✔ image prédite (bien){/color}\n{color=#fcc}✘ image non prédite (pas bien){/color}\n{color=#fff}Glissez pour déplacer.{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
@@ -207,3 +207,7 @@
# renpy/common/00console.rpy:784
old "stack: print the return stack"
new "stack : affiche la pile de retour"
# renpy/common/_developer/developer.rpym:70
old "Speech Bubble Editor (Shift+B)"
new "Éditeur de bulles de dialogue (Shift+B)"
+4
View File
@@ -455,3 +455,7 @@
# gui/game/gui.rpy:441
old "## Change the size and spacing of various things."
new "## Changer la taille et l'espacement de diverses choses."
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
new "## Active la vérification de propriétés invalides ou instables dans les screens et transforms"
+116 -35
View File
@@ -41,7 +41,7 @@
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
new "RAPT a été installé, mais vous devez installer le kit de développement Android pour pouvoir compiler les paquets Android. Choisissez « installer le kit de développement et créer les clés » pour cela."
new "RAPT a été installé, mais vous devez installer le kit de développement Android pour pouvoir compiler les paquets Android, avec « Installer le SDK »."
# android.rpy:33
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
@@ -65,11 +65,11 @@
# android.rpy:39
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Tentative d’émulation d'une console télé basée sur Android, comme OUYA ou Fire TV.\n\n Le contrôleur est émulé par les touches fléchées, le bouton select par la touche Entrée, le bouton menu par la touche Echap, et le bouton retour par la touche PageUp."
new "Tentative d’émulation d'une console télé basée sur Android, comme OUYA ou Fire TV.\n\nLa manette est émulée par les touches fléchées, le bouton select par la touche Entrée, le bouton menu par la touche Echap, et le bouton retour par la touche PageUp."
# android.rpy:41
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
new "Télécharge et installe le kit de développement Android et les paquets supportés. Optionnellement, génère les clés requises pour signer le paquet."
new "Télécharge et installe le kit de développement Android et les paquets requis. Optionnellement, génère les clés requises pour signer le paquet."
# android.rpy:42
old "Configures the package name, version, and other information about this project."
@@ -209,7 +209,8 @@
# choose_theme.rpy:370
old "Planetarium"
new "Planetarium"
# Automatic translation.
new "Planétarium"
# choose_theme.rpy:425
old "Choose Theme"
@@ -1107,6 +1108,14 @@
old "Release"
new "Stable"
# game/updater.rpy:64
old "Release (Ren'Py 8, Python 3)"
new "Stable (Ren'Py 8, Python 3)"
# game/updater.rpy:65
old "Release (Ren'Py 7, Python 2)"
new "Stable (Ren'Py 7, Python 2)"
# updater.rpy:97
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
new "{b}Recommandé.{/b} La version de RenPy qui devrait être utilisée pour tous les jeux récemment sortis."
@@ -1115,6 +1124,14 @@
old "Prerelease"
new "Pré-stable"
# game/updater.rpy:69
old "Prerelease (Ren'Py 8, Python 3)"
new "Pré-stable (Ren'Py 8, Python 3)"
# game/updater.rpy:70
old "Prerelease (Ren'Py 7, Python 2)"
new "Pré-stable (Ren'Py 7, Python 2)"
# updater.rpy:108
old "A preview of the next version of Ren'Py that can be used for testing and taking advantage of new features, but not for final releases of games."
new "Un aperçu de la prochaine version de RenPy qui peut être utilisée pour faire des tests et profiter de toutes nouvelles fonctionnalités, mais pas pour créer de nouveaux jeux."
@@ -1129,11 +1146,35 @@
# updater.rpy:126
old "Nightly"
new "Nightly"
new "Journalière"
# game/updater.rpy:77
old "Nightly (Ren'Py 8, Python 3)"
new "Journalière (Ren'Py 8, Python 3)"
# game/updater.rpy:78
old "Nightly (Ren'Py 7, Python 2)"
new "Journalière (Ren'Py 7, Python 2)"
# updater.rpy:132
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
new "Les toutes dernières version de RenPy encore en développement. Vous pouvez alors utiliser les toutes dernières fonctionnalités, mais le logiciel peut également ne pas sexécuter du tout."
new "La toute dernière version de RenPy, encore en développement. Elle peut contenir les toutes dernières fonctionnalités, ou alors ne pas marcher du tout."
# game/updater.rpy:76
old "Nightly Fix"
new "Journalière Corrective"
# game/updater.rpy:77
old "Nightly Fix (Ren'Py 8, Python 3)"
new "Journalière Corrective (Ren'Py 8, Python 3)"
# game/updater.rpy:78
old "Nightly Fix (Ren'Py 7, Python 2)"
new "Journalière Corrective (Ren'Py 7, Python 2)"
# game/updater.rpy:79
old "A nightly build of fixes to the release version of Ren'Py."
new "Une version journalière qui corrige les bugs de la dernière version stable."
# updater.rpy:152
old "An error has occured:"
@@ -1192,8 +1233,8 @@
new "Le nom de fichier ne peut pas être vide."
# game/android.rpy:31
old "A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un kit de développement Java 8 64-bit/x64 est requis pour construire des paquets Android depuis Windows. Le JDK est différent du JRE, donc il est possible d'avoir Java sans avoir le JDK.\n\n{a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}Téléchargez et installez le JDK{/a}, puis redémarrez Ren'Py."
old "A 64-bit/x64 Java [JDK_REQUIREMENT] Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un kit de développement Java [JDK_REQUIREMENT] 64-bit/x64 est requis pour construire des paquets Android depuis Windows. Le JDK est différent du JRE, donc il est possible d'avoir Java sans avoir le JDK.\n\n{a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}Téléchargez et installez le JDK{/a}, puis redémarrez Ren'Py."
# game/android.rpy:50
old "Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device."
@@ -1549,7 +1590,7 @@
# game/gui7.rpy:339
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
new "Personnalisé. Le GUI est optimié pour un ratio de cadre 16:9."
new "Personnalisé. Le GUI est optimisé pour un ratio de cadre 16:9."
# game/gui7.rpy:355
old "WIDTH"
@@ -2036,37 +2077,13 @@
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:"
new "Installer des bibliothèques :"
# game/updater.rpy:64
old "Release (Ren'Py 8, Python 3)"
new "Stable (Ren'Py 8, Python 3)"
# game/updater.rpy:65
old "Release (Ren'Py 7, Python 2)"
new "Stable (Ren'Py 7, Python 2)"
# game/updater.rpy:69
old "Prerelease (Ren'Py 8, Python 3)"
new "Pré-stable (Ren'Py 8, Python 3)"
# game/updater.rpy:70
old "Prerelease (Ren'Py 7, Python 2)"
new "Pré-stable (Ren'Py 7, Python 2)"
# game/updater.rpy:77
old "Nightly (Ren'Py 8, Python 3)"
new "Nightly (Ren'Py 8, Python 3)"
# game/updater.rpy:78
old "Nightly (Ren'Py 7, Python 2)"
new "Nightly (Ren'Py 7, Python 2)"
# game/preferences.rpy:327
old "{#in language font}Welcome! Please choose a language"
new "{font=fonts/Roboto-Light.ttf}Bienvenue ! Choisissez une langue{/font}"
@@ -2086,3 +2103,67 @@
# game/web.rpy:484
old "Creating package..."
new "Création du package..."
# game/android.rpy:37
old "RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory."
new "RAPT a été installé, mais aucune clé na été configurée. Veuillez générer de nouvelles clés, ou copier android.keystore and bundle.keystore dans le dossier racine du projet."
# game/android.rpy:44
old "Attempts to emulate a televison-based Android console.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Tentative d’émulation d'une console télé basée sur Android.\n\nLa manette est émulée par les touches fléchées, le bouton select par la touche Entrée, le bouton menu par la touche Echap, et le bouton retour par la touche PageUp."
# game/android.rpy:46
old "Downloads and installs the Android SDK and supporting packages."
new "Télécharge et installe le kit de développement Android et les paquets requis."
# game/android.rpy:47
old "Generates the keys required to sign the package."
new "Génère les clés requises pour signer le package."
# game/android.rpy:381
old "Install SDK"
new "Installer le SDK"
# game/android.rpy:385
old "Generate Keys"
new "Générer les clés"
# game/androidstrings.rpy:32
old "How much RAM (in GB) do you want to allocate to Gradle?\nThis must be a positive integer number."
new "Combien de RAM (in GB) voulez-vous allouer à Gradle ?\nEntrez un nombre entier positif."
# game/androidstrings.rpy:33
old "The RAM size must contain only numbers and be positive."
new "La taille de RAM ne doit contenir que des chiffres et être positive."
# game/androidstrings.rpy:63
old "I found an android.keystore file in the rapt directory. Do you want to use this file?"
new "J'ai trouvé un fichier android.keystore dans le dossier \"rapt\". Voulez-vous l'utiliser ?"
# game/androidstrings.rpy:66
old "\n\nSaying 'No' will prevent key creation."
new "\n\nRépondre \"Non\" empêchera la création de clés."
# game/androidstrings.rpy:69
old "I found a bundle.keystore file in the rapt directory. Do you want to use this file?"
new "J'ai trouvé un fichier bundle.keystore dans le dossier \"rapt\". Voulez-vous l'utiliser ?"
# game/choose_directory.rpy:72
old "No directory was selected, but one is required."
new "Un chemin d'accès est nécessaire, mais aucun n'a été fourni."
# game/choose_directory.rpy:80
old "The selected directory does not exist."
new "Le dossier sélectionné n'existe pas."
# game/choose_directory.rpy:82
old "The selected directory is not writable."
new "Le dossier sélectionné n'est pas ouvert en écriture."
# game/distribute.rpy:554
old "This may be derived from build.name and config.version or build.version."
new "Cette variable peut être dérivée de build.name, et de config.version ou build.version."
# game/new_project.rpy:66
old "Warning : you are using Ren'Py 7. It is recommended to start new projects using Ren'Py 8 instead."
new "Attention : vous utilisez Ren'Py 7. Il est recommandé d'utiliser Ren'Py 8 pour de nouveaux projets."
+23 -15
View File
@@ -34,7 +34,7 @@
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## Cet écran doit créer une entrée affichable avec l'id \"input\" pour accepter les différents paramètres."
# screens.rpy:177
old "## http://www.renpy.org/doc/html/screen_special.html#input"
@@ -54,7 +54,7 @@
# screens.rpy:221
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## Lorsque cette option est activée, les sous-titres du menu sont dits par \"narrator\". Si cette valeur est fausse, les légendes du menu seront affichées sous forme de boutons vides."
# screens.rpy:244
old "## Quick Menu screen"
@@ -162,7 +162,7 @@
# screens.rpy:369
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## L'instruction use inclut un autre écran à l'intérieur de celui-ci. Le vrai contenu du menu principal se trouve dans l'écran \"navigation\"."
# screens.rpy:413
old "## Game Menu screen"
@@ -170,11 +170,11 @@
# screens.rpy:415
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 "## 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 "## Ceci présente la structure commune de base d'un écran du menu de jeu. Il est appelé en lui passant le titre de l'écran, et il affiche l'arrière-plan, le titre et la navigation."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
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 "## Le paramètre de défilement peut être None, ou \"viewport\" ou \"vpgrid\". Cet écran est destiné à être utilisé avec un ou plusieurs enfants, qui sont transclus (placés) à l'intérieur de l'écran."
# screens.rpy:476
old "Return"
@@ -182,7 +182,7 @@
# screens.rpy:539
old "## About screen"
new "## Écran « À propos... »"
new "## Écran « À propos... »"
# screens.rpy:541
old "## This screen gives credit and copyright information about the game and Ren'Py."
@@ -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"
@@ -724,10 +724,18 @@
old "## Bubble screen"
new "## Screen des bulles"
# gui/game/screens.rpy:1399
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 "## Le screen des bulles est utilisé pour afficher des dialogues en utilisant des bulles. Ce screen prend les mêmes paramètres que le screen say, doit prévoir un displayable avec l'id \"what\", et peut créer des displayables avec les ids \"namebox\", \"who\", et \"window\"."
# 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 "## Le screen des bulles est utilisé pour afficher des dialogues en utilisant des bulles de dialogue. Ce screen prend les mêmes paramètres que le screen say, doit prévoir un displayable avec l'id \"what\", et peut créer des displayables avec les ids \"namebox\", \"who\", et \"window\"."
# gui/game/screens.rpy:1404
old "## https://www.renpy.org/doc/html/screen_special.html#bubble"
new "## https://www.renpy.org/doc/html/screen_special.html#bubble"
# 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:676
old "Upload Sync"
new "Uploader Sync"
# gui/game/screens.rpy:680
old "Download Sync"
new "Télécharger Sync"
+661 -4
View File
@@ -211,7 +211,8 @@ translate german strings:
# 00library.rpy:143
old "Clipboard voicing enabled. "
new "Clipboard voicing enabled. "
# Automatic translation.
new "Zwischenablage-Voicing aktiviert. "
# 00library.rpy:144
old "Self-voicing enabled. "
@@ -227,7 +228,8 @@ translate german strings:
# 00preferences.rpy:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Clipboard voicing enabled. Press 'shift+C' to disable."
# Automatic translation.
new "Zwischenablage-Voicing aktiviert. Drücken Sie 'Umschalt+C' zum Deaktivieren."
# 00preferences.rpy:424
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
@@ -275,7 +277,8 @@ translate german strings:
# 00updater.rpy:1049
old "While unpacking {}, unknown type {}."
new "While unpacking {}, unknown type {}."
# Automatic translation.
new "Beim Auspacken {}, unbekannter Typ {}."
# 00updater.rpy:1393
old "Updater"
@@ -327,9 +330,663 @@ translate german strings:
# 00gallery.rpy:585
old "slideshow"
new "slideshow"
# Automatic translation.
new "Diashow"
# 00gallery.rpy:586
old "return"
new "zurück"
translate german strings:
# renpy/common/00accessibility.rpy:32
old "bar"
new "bar"
# renpy/common/00accessibility.rpy:33
old "selected"
# Automatic translation.
new "ausgewählt"
# renpy/common/00accessibility.rpy:34
old "viewport"
# Automatic translation.
new "Ansichtsfenster"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
# Automatic translation.
new "Horizontales Blättern"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
# Automatic translation.
new "vertikaler Bildlauf"
# renpy/common/00accessibility.rpy:37
old "activate"
# Automatic translation.
new "aktivieren."
# renpy/common/00accessibility.rpy:38
old "deactivate"
# Automatic translation.
new "deaktivieren"
# renpy/common/00accessibility.rpy:39
old "increase"
# Automatic translation.
new "erhöhen."
# renpy/common/00accessibility.rpy:40
old "decrease"
# Automatic translation.
new "verringern"
# renpy/common/00accessibility.rpy:138
old "Font Override"
# Automatic translation.
new "Schriftart überschreiben"
# renpy/common/00accessibility.rpy:142
old "Default"
# Automatic translation.
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"
# Automatic translation.
new "Skalierung der Textgröße"
# renpy/common/00accessibility.rpy:162
old "Reset"
# Automatic translation.
new "Zurücksetzen"
# renpy/common/00accessibility.rpy:168
old "Line Spacing Scaling"
# Automatic translation.
new "Zeilenabstand Skalierung"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
# Automatic translation.
new "Hochkontrastiger Text"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing"
# Automatic translation.
new "Selbstanzeige"
# renpy/common/00accessibility.rpy:197
old "Off"
# Automatic translation.
new "Aus"
# renpy/common/00accessibility.rpy:201
old "Text-to-speech"
# Automatic translation.
new "Text-in-Sprache"
# renpy/common/00accessibility.rpy:205
old "Clipboard"
# Automatic translation.
new "Zwischenablage"
# renpy/common/00accessibility.rpy:209
old "Debug"
# Automatic translation.
new "Debuggen"
# renpy/common/00accessibility.rpy:223
old "Self-Voicing Volume Drop"
# Automatic translation.
new "Selbstlautstärkeabfall"
# 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."
# Automatic translation.
new "Die Optionen in diesem Menü dienen der Verbesserung der Zugänglichkeit. Sie funktionieren möglicherweise nicht mit allen Spielen, und einige Kombinationen von Optionen können das Spiel unspielbar machen. Dies ist kein Problem mit dem Spiel oder der Engine. Die besten Ergebnisse beim Ändern von Schriftarten erzielen Sie, wenn Sie die ursprüngliche Textgröße beibehalten."
# renpy/common/00action_file.rpy:378
old "Save slot %s: [text]"
# Automatic translation.
new "Steckplatz %s speichern: [text]"
# renpy/common/00action_file.rpy:461
old "Load slot %s: [text]"
# Automatic translation.
new "Steckplatz %s laden: [text]"
# renpy/common/00action_file.rpy:514
old "Delete slot [text]"
# Automatic translation.
new "Steckplatz löschen [text]"
# renpy/common/00action_file.rpy:593
old "File page auto"
# Automatic translation.
new "Datei Seite auto"
# renpy/common/00action_file.rpy:595
old "File page quick"
# Automatic translation.
new "Datei Seite schnell"
# renpy/common/00action_file.rpy:597
old "File page [text]"
# Automatic translation.
new "Datei-Seite [text]"
# renpy/common/00action_file.rpy:796
old "Next file page."
# Automatic translation.
new "Nächste Dateiseite."
# renpy/common/00action_file.rpy:868
old "Previous file page."
# Automatic translation.
new "Vorherige Dateiseite."
# renpy/common/00action_file.rpy:944
old "Quick save."
# Automatic translation.
new "Schnell speichern."
# renpy/common/00action_file.rpy:963
old "Quick load."
# Automatic translation.
new "Schnell laden."
# renpy/common/00action_other.rpy:381
old "Language [text]"
# Automatic translation.
new "Sprache [text]"
# renpy/common/00director.rpy:705
old "The interactive director is not enabled here."
# Automatic translation.
new "Der interaktive Regisseur ist hier nicht aktiviert."
# renpy/common/00director.rpy:1504
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1510
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1574
old "Done"
# Automatic translation.
new "Erledigt"
# renpy/common/00director.rpy:1584
old "(statement)"
# Automatic translation.
new "(Erklärung)"
# renpy/common/00director.rpy:1585
old "(tag)"
# Automatic translation.
new "(Tag)"
# renpy/common/00director.rpy:1586
old "(attributes)"
# Automatic translation.
new "(Attribute)"
# renpy/common/00director.rpy:1587
old "(transform)"
new "(transform)"
# renpy/common/00director.rpy:1612
old "(transition)"
new "(transition)"
# renpy/common/00director.rpy:1624
old "(channel)"
# Automatic translation.
new "(Kanal)"
# renpy/common/00director.rpy:1625
old "(filename)"
# Automatic translation.
new "(Dateiname)"
# renpy/common/00director.rpy:1654
old "Change"
# Automatic translation.
new "Ändern Sie"
# renpy/common/00director.rpy:1656
old "Add"
# Automatic translation.
new "hinzufügen"
# renpy/common/00director.rpy:1662
old "Remove"
# Automatic translation.
new "entfernen"
# renpy/common/00director.rpy:1697
old "Statement:"
# Automatic translation.
new "Erklärung:"
# renpy/common/00director.rpy:1718
old "Tag:"
new "Tag:"
# renpy/common/00director.rpy:1734
old "Attributes:"
# Automatic translation.
new "Attribute:"
# renpy/common/00director.rpy:1745
old "Click to toggle attribute, right click to toggle negative attribute."
# Automatic translation.
new "Klicken Sie auf das Attribut, um es einzuschalten, klicken Sie mit der rechten Maustaste, um das negative Attribut einzuschalten."
# renpy/common/00director.rpy:1757
old "Transforms:"
# Automatic translation.
new "Verwandeln:"
# renpy/common/00director.rpy:1768
old "Click to set transform, right click to add to transform list."
# Automatic translation.
new "Klicken Sie, um die Transformation festzulegen, und klicken Sie mit der rechten Maustaste, um sie zur Transformationsliste hinzuzufügen."
# renpy/common/00director.rpy:1780
old "Behind:"
# Automatic translation.
new "Hinter:"
# renpy/common/00director.rpy:1789
old "Click to set, right click to add to behind list."
# Automatic translation.
new "Zum Einstellen klicken, zum Hinzufügen zur Liste mit der rechten Maustaste klicken."
# renpy/common/00director.rpy:1801
old "Transition:"
# Automatic translation.
new "Überleitung:"
# renpy/common/00director.rpy:1819
old "Channel:"
# Automatic translation.
new "Kanal:"
# renpy/common/00director.rpy:1837
old "Audio Filename:"
# Automatic translation.
new "Audio Dateiname:"
# 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?"
# Automatic translation.
new "Dieser Spielstand wurde auf einem anderen Gerät erstellt. Böswillig erstellte Speicherdateien können Ihrem Computer schaden. Vertrauen Sie dem Ersteller dieses Spielstands und allen, die die Datei geändert haben könnten?"
# 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."
# Automatic translation.
new "Vertrauen Sie dem Gerät, auf dem die Sicherung erstellt wurde? Sie sollten nur dann Ja wählen, wenn Sie der einzige Benutzer des Geräts sind."
# renpy/common/00keymap.rpy:322
old "Failed to save screenshot as %s."
# Automatic translation.
new "Bildschirmfoto konnte nicht als %s gespeichert werden."
# renpy/common/00preferences.rpy:271
old "display"
# Automatic translation.
new "Anzeige"
# renpy/common/00preferences.rpy:283
old "transitions"
# Automatic translation.
new "Übergänge"
# renpy/common/00preferences.rpy:292
old "skip transitions"
# Automatic translation.
new "Übergänge überspringen"
# renpy/common/00preferences.rpy:294
old "video sprites"
# Automatic translation.
new "Video-Sprites"
# renpy/common/00preferences.rpy:303
old "show empty window"
# Automatic translation.
new "leeres Fenster anzeigen"
# renpy/common/00preferences.rpy:312
old "text speed"
# Automatic translation.
new "Textgeschwindigkeit"
# renpy/common/00preferences.rpy:320
old "joystick"
# Automatic translation.
new "Joystick"
# renpy/common/00preferences.rpy:320
old "joystick..."
# Automatic translation.
new "Joystick..."
# renpy/common/00preferences.rpy:327
old "skip"
# Automatic translation.
new "überspringen"
# renpy/common/00preferences.rpy:330
old "skip unseen [text]"
# Automatic translation.
new "unbesehen überspringen [text]"
# renpy/common/00preferences.rpy:335
old "skip unseen text"
# Automatic translation.
new "ungesehenen Text übergehen"
# renpy/common/00preferences.rpy:337
old "begin skipping"
# Automatic translation.
new "mit dem Springen beginnen"
# renpy/common/00preferences.rpy:341
old "after choices"
# Automatic translation.
new "nach der Wahl"
# renpy/common/00preferences.rpy:348
old "skip after choices"
# Automatic translation.
new "nach Auswahlen überspringen"
# renpy/common/00preferences.rpy:350
old "auto-forward time"
# Automatic translation.
new "automatische Vorlaufzeit"
# renpy/common/00preferences.rpy:364
old "auto-forward"
# Automatic translation.
new "automatisches Weiterleiten"
# renpy/common/00preferences.rpy:371
old "Auto forward"
# Automatic translation.
new "Automatisch vorwärts"
# renpy/common/00preferences.rpy:374
old "auto-forward after click"
# Automatic translation.
new "automatisches Weiterleiten nach Klick"
# renpy/common/00preferences.rpy:383
old "automatic move"
# Automatic translation.
new "automatischer Umzug"
# renpy/common/00preferences.rpy:392
old "wait for voice"
# Automatic translation.
new "auf Stimme warten"
# renpy/common/00preferences.rpy:401
old "voice sustain"
# Automatic translation.
new "Stimmhaltung"
# renpy/common/00preferences.rpy:410
old "self voicing"
# Automatic translation.
new "selbststimmend"
# renpy/common/00preferences.rpy:419
old "self voicing volume drop"
# Automatic translation.
new "Selbststimmende Lautstärkeabnahme"
# renpy/common/00preferences.rpy:427
old "clipboard voicing"
# Automatic translation.
new "Clipboard-Intonation"
# renpy/common/00preferences.rpy:436
old "debug voicing"
# Automatic translation.
new "Intonation debuggen"
# renpy/common/00preferences.rpy:445
old "emphasize audio"
# Automatic translation.
new "Audio hervorheben"
# renpy/common/00preferences.rpy:454
old "rollback side"
# Automatic translation.
new "Rollback-Seite"
# renpy/common/00preferences.rpy:464
old "gl powersave"
new "gl powersave"
# renpy/common/00preferences.rpy:470
old "gl framerate"
# Automatic translation.
new "Gl-Framerate"
# renpy/common/00preferences.rpy:473
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:476
old "font transform"
# Automatic translation.
new "Schriftart umwandeln"
# renpy/common/00preferences.rpy:479
old "font size"
# Automatic translation.
new "Schriftgröße"
# renpy/common/00preferences.rpy:487
old "font line spacing"
# Automatic translation.
new "Zeilenabstand der Schrift"
# renpy/common/00preferences.rpy:495
old "system cursor"
# Automatic translation.
new "System-Cursor"
# renpy/common/00preferences.rpy:504
old "renderer menu"
# Automatic translation.
new "Renderer-Menü"
# renpy/common/00preferences.rpy:507
old "accessibility menu"
# Automatic translation.
new "Menü Barrierefreiheit"
# renpy/common/00preferences.rpy:510
old "high contrast text"
# Automatic translation.
new "Text mit hohem Kontrast"
# renpy/common/00preferences.rpy:519
old "audio when minimized"
# Automatic translation.
new "Audio im minimierten Zustand"
# renpy/common/00preferences.rpy:528
old "audio when unfocused"
# Automatic translation.
new "Audio bei Unschärfe"
# renpy/common/00preferences.rpy:537
old "web cache preload"
# Automatic translation.
new "Web-Cache vorladen"
# renpy/common/00preferences.rpy:552
old "voice after game menu"
# Automatic translation.
new "Stimme nach dem Spielmenü"
# renpy/common/00preferences.rpy:571
old "main volume"
# Automatic translation.
new "Hauptvolumen"
# renpy/common/00preferences.rpy:572
old "music volume"
# Automatic translation.
new "Musiklautstärke"
# renpy/common/00preferences.rpy:573
old "sound volume"
# Automatic translation.
new "Lautstärke"
# renpy/common/00preferences.rpy:574
old "voice volume"
# Automatic translation.
new "Sprachlautstärke"
# renpy/common/00preferences.rpy:575
old "mute main"
# Automatic translation.
new "Hauptstummschaltung"
# renpy/common/00preferences.rpy:576
old "mute music"
# Automatic translation.
new "Musik stummschalten"
# renpy/common/00preferences.rpy:577
old "mute sound"
# Automatic translation.
new "Ton stummschalten"
# renpy/common/00preferences.rpy:578
old "mute voice"
# Automatic translation.
new "stumme Stimme"
# renpy/common/00preferences.rpy:579
old "mute all"
# Automatic translation.
new "alle stumm schalten"
# renpy/common/00speechbubble.rpy:344
old "Speech Bubble Editor"
# Automatic translation.
new "Sprechblasen-Editor"
# renpy/common/00speechbubble.rpy:349
old "(hide)"
# Automatic translation.
new "(ausblenden)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
# Automatic translation.
new "Sync heruntergeladen."
# renpy/common/00sync.rpy:190
old "Could not connect to the Ren'Py Sync server."
# Automatic translation.
new "Es konnte keine Verbindung zum Ren'Py Sync Server hergestellt werden."
# renpy/common/00sync.rpy:192
old "The Ren'Py Sync server timed out."
# Automatic translation.
new "Der Ren'Py Sync-Server hat eine Zeitüberschreitung."
# renpy/common/00sync.rpy:194
old "An unknown error occurred while connecting to the Ren'Py Sync server."
# Automatic translation.
new "Bei der Verbindung mit dem Ren'Py Sync-Server ist ein unbekannter Fehler aufgetreten."
# 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."
# Automatic translation.
new "Der Ren'Py Sync-Server verfügt nicht über eine Kopie dieser Synchronisierung. Die Sync-ID ist möglicherweise ungültig, oder es wurde eine Zeitüberschreitung festgestellt."
# renpy/common/00sync.rpy:409
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
# Automatic translation.
new "Bitte geben Sie die von Ihnen erstellte Sync-ID ein.\nGeben Sie niemals eine Sync-ID ein, die Sie nicht selbst erstellt haben."
# renpy/common/00sync.rpy:428
old "The sync ID is not in the correct format."
# Automatic translation.
new "Die Sync-ID hat nicht das richtige Format."
# renpy/common/00sync.rpy:448
old "The sync could not be decrypted."
# Automatic translation.
new "Die Synchronisierung konnte nicht entschlüsselt werden."
# renpy/common/00sync.rpy:471
old "The sync belongs to a different game."
# Automatic translation.
new "Die Synchronisation gehört zu einem anderen Spiel."
# renpy/common/00sync.rpy:476
old "The sync contains a file with an invalid name."
# Automatic translation.
new "Die Synchronisierung enthält eine Datei mit einem ungültigen Namen."
# renpy/common/00sync.rpy:529
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
# Automatic translation.
new "Dadurch werden Ihre Spielstände auf den {a=https://sync.renpy.org}Ren'Py Sync Server{/a} hochgeladen.\nMöchten Sie fortfahren?"
# renpy/common/00sync.rpy:558
old "Enter Sync ID"
# Automatic translation.
new "Sync-ID eingeben"
# renpy/common/00sync.rpy:569
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
# Automatic translation.
new "Dadurch wird der {a=https://sync.renpy.org}Ren'Py Sync Server{/a} kontaktiert."
# renpy/common/00sync.rpy:596
old "Sync Success"
# Automatic translation.
new "Sync-Erfolg"
# renpy/common/00sync.rpy:599
old "The Sync ID is:"
# Automatic translation.
new "Die Sync-ID lautet:"
# renpy/common/00sync.rpy:605
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}."
# Automatic translation.
new "Sie können diese ID verwenden, um Ihren Spielstand auf ein anderes Gerät herunterzuladen.\nDiese Synchronisierung läuft in einer Stunde ab.\nRen'Py Sync wird unterstützt von {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
# renpy/common/00sync.rpy:631
old "Sync Error"
# Automatic translation.
new "Sync-Fehler"
+115 -4
View File
@@ -59,11 +59,13 @@ translate german strings:
# _developer/developer.rpym:412
old "Rectangle copied to clipboard."
new "Rectangle copied to clipboard."
# Automatic translation.
new "Rechteck in die Zwischenablage kopiert."
# _developer/developer.rpym:415
old "Position copied to clipboard."
new "Position copied to clipboard."
# Automatic translation.
new "Position in die Zwischenablage kopiert."
# _developer/developer.rpym:524
old "✔ "
@@ -75,7 +77,8 @@ translate german 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}"
# Automatic translation.
new "\n{color=#cfc}✔ vorhergesagtes Bild (gut){/color}\n{color=#fcc}✘ unvorhergesehenes Bild (schlecht){/color}\n{color=#fff}Zum Verschieben ziehen.{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
@@ -91,7 +94,8 @@ translate german strings:
# _developer/inspector.rpym:71
old "Location"
new "Location"
# Automatic translation.
new "Standort"
# _developer/inspector.rpym:122
old "Inspecting Styles of [displayable_name!q]"
@@ -177,3 +181,110 @@ translate german strings:
old "jump <label>: jumps to label"
new "jump <label>: springt zum Label"
translate german strings:
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
# Automatic translation.
new "Interaktiver Direktor (D)"
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
# Automatic translation.
new "Dauerhafter Betrachter"
# renpy/common/_developer/developer.rpym:59
old "Show Image Load Log (F4)"
# Automatic translation.
new "Bildladeprotokoll anzeigen (F4)"
# renpy/common/_developer/developer.rpym:62
old "Hide Image Load Log (F4)"
# Automatic translation.
new "Bildladeprotokoll ausblenden (F4)"
# renpy/common/_developer/developer.rpym:65
old "Image Attributes"
# Automatic translation.
new "Bild-Attribute"
# renpy/common/_developer/developer.rpym:70
old "Speech Bubble Editor (Shift+B)"
# Automatic translation.
new "Sprechblasen-Editor (Umschalt+B)"
# renpy/common/_developer/developer.rpym:97
old "[name] [attributes] (hidden)"
# Automatic translation.
new "[name] [attributes] (versteckt)"
# renpy/common/_developer/developer.rpym:101
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:162
old "Hide deleted"
# Automatic translation.
new "Ausblenden gelöscht"
# renpy/common/_developer/developer.rpym:162
old "Show deleted"
# Automatic translation.
new "Anzeigen gelöscht"
# renpy/common/_developer/developer.rpym:389
old "Type to filter: "
# Automatic translation.
new "Typ zum Filtern: "
# renpy/common/_developer/developer.rpym:507
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
# Automatic translation.
new "Texturen: [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:511
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# Automatic translation.
new "Bild-Cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00console.rpy:789
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
# Automatic translation.
new "help: diese Hilfe anzeigen\n help <expr>: Signatur und Dokumentation von <expr> anzeigen"
# renpy/common/00console.rpy:813
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
# Automatic translation.
new "Die Hilfe kann undokumentierte Funktionen anzeigen. Bitte prüfen Sie, ob die Funktion oder\nKlasse, die Sie verwenden möchten, dokumentiert ist.\n\n"
# renpy/common/00console.rpy:854
old "stack: print the return stack"
# Automatic translation.
new "stack: den Rückgabestapel drucken"
# renpy/common/00console.rpy:908
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"
# Automatic translation.
new "watch <expression>: einen Python-Ausdruck beobachten\n watch short: macht die Darstellung der nachverfolgten Ausdrücke kurz (Standard)\n watch long: macht die Darstellung von verfolgten Ausdrücken wie folgt"
# renpy/common/00console.rpy:1028
old "short: Shorten the representation of objects on the console (default)."
# Automatic translation.
new "short: Verkürzt die Darstellung von Objekten auf der Konsole (Standard)."
# renpy/common/00console.rpy:1032
old "long: Print the full representation of objects on the console."
# Automatic translation.
new "long: Gibt die vollständige Darstellung der Objekte auf der Konsole aus."
# renpy/common/00console.rpy:1036
old "escape: Enables escaping of unicode symbols in unicode strings."
# Automatic translation.
new "escape: Ermöglicht das Escaping von Unicode-Symbolen in Unicode-Strings."
# renpy/common/00console.rpy:1040
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
# Automatic translation.
new "unescape: Deaktiviert das Escaping von Unicode-Symbolen in Unicode-Zeichenfolgen und druckt sie so, wie sie sind (Voreinstellung)."
+150 -10
View File
@@ -23,7 +23,8 @@ translate german strings:
# 00gltest.rpy:93
old "Enable"
new "Enable"
# Automatic translation.
new "Aktivieren Sie"
# 00gltest.rpy:109
old "Changes will take effect the next time this program is run."
@@ -91,27 +92,33 @@ translate german strings:
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "Select Gamepad to Calibrate"
# Automatic translation.
new "Gamepad zum Kalibrieren auswählen"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "No Gamepads Available"
# Automatic translation.
new "Keine Gamepads verfügbar"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "Calibrating [name] ([i]/[total])"
# Automatic translation.
new "Kalibrierung von [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!s] [kind]."
new "Press or move the [control!s] [kind]."
# Automatic translation.
new "Drücken Sie oder bewegen Sie die [control!s] [kind] ."
# 00gamepad.rpy:66
old "Skip (A)"
new "Skip (A)"
# Automatic translation.
new "Überspringen (A)"
# 00gamepad.rpy:69
old "Back (B)"
new "Back (B)"
# Automatic translation.
new "Rücken (B)"
# _errorhandling.rpym:495
old "Open Traceback"
@@ -123,11 +130,13 @@ translate german strings:
# _errorhandling.rpym:499
old "Copy to Clipboard"
new "Copy to Clipboard"
# Automatic translation.
new "In die Zwischenablage kopieren"
# _errorhandling.rpym:501
old "Copies the traceback.txt file to the clipboard."
new "Copies the traceback.txt file to the clipboard."
# Automatic translation.
new "Kopiert die Datei traceback.txt in die Zwischenablage."
# _errorhandling.rpym:519
old "An exception has occurred."
@@ -175,5 +184,136 @@ translate german strings:
# _errorhandling.rpym:612
old "Copies the errors.txt file to the clipboard."
new "Copies the errors.txt file to the clipboard."
# Automatic translation.
new "Kopiert die Datei errors.txt in die Zwischenablage."
translate german strings:
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Renderer"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Force GL Renderer"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Force ANGLE Renderer"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
# Automatic translation.
new "GLES-Renderer erzwingen"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
# Automatic translation.
new "GL2-Renderer erzwingen"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
# Automatic translation.
new "ANGLE2-Renderer erzwingen"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
# Automatic translation.
new "GLES2-Renderer erzwingen"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
# Automatic translation.
new "Aktivieren (keine Sperrliste)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Powersave"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Framerate"
# renpy/common/00gltest.rpy:177
old "Screen"
# Automatic translation.
new "Bildschirm"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Tearing"
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
# Automatic translation.
new "Dieses Spiel erfordert die Verwendung von GL2, das nicht initialisiert werden kann."
# 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."
# Automatic translation.
new "Die Datei {a=edit:1:log.txt}log.txt{/a} kann Informationen enthalten, die Ihnen helfen, das Problem mit Ihrem Computer zu lösen."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
# Automatic translation.
new "Weitere Einzelheiten zur Behebung dieses Problems finden Sie in der Dokumentation {a=[url]}{/a} ."
# renpy/common/00gltest.rpy:281
old "Change render options"
# Automatic translation.
new "Renderoptionen ändern"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
# Automatic translation.
new "Drücken Sie oder bewegen Sie die Taste '[control!s]' [kind]."
# renpy/common/_errorhandling.rpym:555
old "Open"
# Automatic translation.
new "Öffnen Sie"
# renpy/common/_errorhandling.rpym:559
old "Copy BBCode"
# Automatic translation.
new "BBCode kopieren"
# renpy/common/_errorhandling.rpym:561
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
# Automatic translation.
new "Kopiert die Datei traceback.txt in die Zwischenablage als BBcode für Foren wie https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:563
old "Copy Markdown"
# Automatic translation.
new "Markdown kopieren"
# renpy/common/_errorhandling.rpym:565
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
# Automatic translation.
new "Kopiert die Datei traceback.txt in die Zwischenablage als Markdown für Discord."
# renpy/common/_errorhandling.rpym:626
old "Ignores the exception, allowing you to continue."
# Automatic translation.
new "Ignoriert die Ausnahme, so dass Sie fortfahren können."
# renpy/common/_errorhandling.rpym:637
old "Console"
# Automatic translation.
new "Konsole"
# renpy/common/_errorhandling.rpym:639
old "Opens a console to allow debugging the problem."
# Automatic translation.
new "Öffnet eine Konsole, um das Problem zu beheben."
+267 -100
View File
@@ -3,267 +3,333 @@ translate german strings:
# gui.rpy:2
old "## Initialization"
new "## Initialization"
# Automatic translation.
new "## Initialisierung"
# 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."
# Automatic translation.
new "## Die Anweisung init offset bewirkt, dass der init-Code in dieser Datei vor dem init-Code in jeder anderen Datei ausgeführt wird."
# 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."
# Automatic translation.
new "## Der Aufruf von gui.init setzt die Stile auf sinnvolle Standardwerte zurück und setzt die Breite und Höhe des Spiels."
# gui.rpy:21
old "## Colors"
new "## Colors"
# Automatic translation.
new "## Farben"
# gui.rpy:23
old "## The colors of text in the interface."
new "## The colors of text in the interface."
# Automatic translation.
new "## Die Farben des Textes in der Schnittstelle."
# 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."
# Automatic translation.
new "## Eine Akzentfarbe, die in der gesamten Benutzeroberfläche zur Beschriftung und Hervorhebung von Text verwendet wird."
# 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."
# Automatic translation.
new "## Die Farbe, die für eine Textschaltfläche verwendet wird, wenn sie weder ausgewählt ist noch mit dem Mauszeiger bewegt wird."
# 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."
# Automatic translation.
new "## Die kleine Farbe wird für kleinen Text verwendet, der heller/dunkler sein muss, um den gleichen Effekt zu erzielen."
# 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."
# Automatic translation.
new "## Die Farbe, die für Schaltflächen und Balken verwendet wird, die mit dem Mauszeiger bewegt werden."
# 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."
# Automatic translation.
new "## Die Farbe, die für eine Textschaltfläche verwendet wird, wenn sie ausgewählt, aber nicht fokussiert ist. Eine Schaltfläche ist ausgewählt, wenn sie der aktuelle Bildschirm oder Einstellungswert ist."
# 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."
# Automatic translation.
new "## Die Farbe, die für eine Textschaltfläche verwendet wird, wenn sie nicht ausgewählt werden kann."
# 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."
# Automatic translation.
new "## Farben für die Teile der Balken, die nicht ausgefüllt sind. Diese Farben werden nicht direkt verwendet, aber bei der Neuerstellung von Balkenbilddateien eingesetzt."
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## The colors used for dialogue and menu choice text."
# Automatic translation.
new "## Die Farben, die für Dialog- und Menüauswahltext verwendet werden."
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Fonts and Font Sizes"
# Automatic translation.
new "## Schriftarten und Schriftgrößen"
# gui.rpy:58
old "## The font used for in-game text."
new "## The font used for in-game text."
# Automatic translation.
new "## Die für den Text im Spiel verwendete Schriftart."
# gui.rpy:61
old "## The font used for character names."
new "## The font used for character names."
# Automatic translation.
new "## Die für Zeichennamen verwendete Schriftart."
# gui.rpy:64
old "## The font used for out-of-game text."
new "## The font used for out-of-game text."
# Automatic translation.
new "## Die Schriftart, die für den Text außerhalb des Spiels verwendet wird."
# gui.rpy:67
old "## The size of normal dialogue text."
new "## The size of normal dialogue text."
# Automatic translation.
new "## Die Größe des normalen Dialogtextes."
# gui.rpy:70
old "## The size of character names."
new "## The size of character names."
# Automatic translation.
new "## Die Größe der Zeichennamen."
# 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."
# Automatic translation.
new "## Die Größe des Textes in der Benutzeroberfläche des Spiels."
# 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."
# Automatic translation.
new "## Die Größe der Beschriftungen in der Benutzeroberfläche des Spiels."
# gui.rpy:79
old "## The size of text on the notify screen."
new "## The size of text on the notify screen."
# Automatic translation.
new "## Die Größe des Textes auf dem Benachrichtigungsbildschirm."
# gui.rpy:82
old "## The size of the game's title."
new "## The size of the game's title."
# Automatic translation.
new "## Die Größe des Titels des Spiels."
# gui.rpy:86
old "## Main and Game Menus"
new "## Main and Game Menus"
# Automatic translation.
new "## Haupt- und Spielmenü"
# gui.rpy:88
old "## The images used for the main and game menus."
new "## The images used for the main and game menus."
# Automatic translation.
new "## Die Bilder, die für das Haupt- und das Spielmenü verwendet werden."
# 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?"
# Automatic translation.
new "## Sollten wir den Namen und die Version des Spiels anzeigen?"
# gui.rpy:96
old "## Dialogue"
new "## Dialogue"
# Automatic translation.
new "## Dialog"
# 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."
# Automatic translation.
new "## Diese Variablen steuern, wie der Dialog zeilenweise auf dem Bildschirm angezeigt wird."
# gui.rpy:101
old "## The height of the textbox containing dialogue."
new "## The height of the textbox containing dialogue."
# Automatic translation.
new "## Die Höhe des Textfeldes, das den Dialog enthält."
# 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."
# Automatic translation.
new "## Die Platzierung des Textfeldes vertikal auf dem Bildschirm. 0.0 ist der obere Rand, 0.5 ist die Mitte und 1.0 ist der untere Rand."
# 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."
# Automatic translation.
new "## Die Platzierung des Namens des sprechenden Charakters, relativ zum Textfeld. Dies kann eine ganze Anzahl von Pixeln von links oder oben sein, oder 0,5 bis zur Mitte."
# 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."
# Automatic translation.
new "## Die horizontale Ausrichtung des Namens des Zeichens. Dies kann 0.0 für linksbündig, 0.5 für zentriert und 1.0 für rechtsbündig sein."
# 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."
# Automatic translation.
new "## Die Breite, die Höhe und die Ränder des Feldes, das den Namen des Zeichens enthält, oder None, um es automatisch zu vergrößern."
# 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."
# Automatic translation.
new "## Die Ränder des Feldes, das den Namen des Zeichens enthält, in der Reihenfolge links, oben, rechts, unten."
# 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."
# Automatic translation.
new "## Wenn True, wird der Hintergrund des Namensfeldes gekachelt, wenn False, wird der Hintergrund des Namensfeldes skaliert."
# 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."
# Automatic translation.
new "## Die Platzierung des Dialogs relativ zum Textfeld. Dies kann eine ganze Anzahl von Pixeln relativ zur linken oder oberen Seite des Textfeldes oder 0,5 zur Mitte sein."
# gui.rpy:138
old "## The maximum width of dialogue text, in pixels."
new "## The maximum width of dialogue text, in pixels."
# Automatic translation.
new "## Die maximale Breite des Dialogtextes, in Pixeln."
# 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."
# Automatic translation.
new "## Die horizontale Ausrichtung des Dialogtextes. Dies kann 0.0 für linksbündig, 0.5 für zentriert und 1.0 für rechtsbündig sein."
# gui.rpy:146
old "## Buttons"
new "## Buttons"
# Automatic translation.
new "## Schaltflächen"
# 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."
# Automatic translation.
new "## Diese Variablen, zusammen mit den Bilddateien in gui/button, steuern Aspekte der Darstellung von Schaltflächen."
# 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."
# Automatic translation.
new "## Die Breite und Höhe einer Schaltfläche, in Pixeln. Falls keine, berechnet Ren'Py eine Größe."
# 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."
# Automatic translation.
new "## Die Ränder auf jeder Seite der Schaltfläche, in der Reihenfolge links, oben, rechts, unten."
# 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."
# Automatic translation.
new "## Wenn True, wird das Hintergrundbild gekachelt. Wenn False, wird das Hintergrundbild linear skaliert."
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
# Automatic translation.
new "## Die von der Schaltfläche verwendete Schriftart."
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
# Automatic translation.
new "## Die Größe des von der Schaltfläche verwendeten Textes."
# 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."
# Automatic translation.
new "## Diese Variablen überschreiben die Einstellungen für verschiedene Arten von Schaltflächen. Bitte lesen Sie in der Gui-Dokumentation nach, welche Arten von Schaltflächen verfügbar sind und wofür sie jeweils verwendet werden."
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
# Automatic translation.
new "## Diese Anpassungen werden von der Standardschnittstelle verwendet:"
# 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."
# Automatic translation.
new "## Sie können auch Ihre eigenen Anpassungen hinzufügen, indem Sie Variablen mit den richtigen Namen hinzufügen. Zum Beispiel können Sie die folgende Zeile auskommentieren, um die Breite einer Navigationsschaltfläche festzulegen."
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
# Automatic translation.
new "## Auswahltasten"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
# Automatic translation.
new "## Wahltasten werden in den Menüs im Spiel verwendet."
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
# Automatic translation.
new "## Datei Slot Schaltflächen"
# 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."
# Automatic translation.
new "## Eine Dateislot-Schaltfläche ist eine besondere Art von Schaltfläche. Er enthält ein Miniaturbild und einen Text, der den Inhalt des Speicherplatzes beschreibt. Ein Speicherslot verwendet Bilddateien in gui/button, wie die anderen Arten von Schaltflächen."
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
# Automatic translation.
new "## Die Schaltfläche \"Slot speichern\"."
# 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."
# Automatic translation.
new "## Die Breite und Höhe der Miniaturbilder, die von den Speicherplätzen verwendet werden."
# 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."
# Automatic translation.
new "## Die Anzahl der Spalten und Zeilen im Raster der Speicherplätze."
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
# Automatic translation.
new "## Positionierung und Abstände"
# 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."
# Automatic translation.
new "## Diese Variablen steuern die Positionierung und den Abstand der verschiedenen Elemente der Benutzeroberfläche."
# 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."
# Automatic translation.
new "## Die Position der linken Seite der Navigationstasten, relativ zur linken Seite des Bildschirms."
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
# Automatic translation.
new "## Die vertikale Position des Überspringungsanzeigers."
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
# Automatic translation.
new "## Die vertikale Position des Benachrichtigungsbildschirms."
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
# Automatic translation.
new "## Die Abstände zwischen den Menüoptionen."
# 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."
# Automatic translation.
new "## Schaltflächen im Navigationsbereich des Haupt- und Spielmenüs."
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
# Automatic translation.
new "## Steuert den Abstand zwischen den Einstellungen."
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
# Automatic translation.
new "## Steuert den Abstand zwischen den Einstellungsschaltflächen."
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
# Automatic translation.
new "## Der Abstand zwischen den Schaltflächen der Dateiseite."
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
# Automatic translation.
new "## Der Abstand zwischen den Dateislots."
# gui.rpy:277
old "## Frames"
@@ -271,141 +337,242 @@ translate german strings:
# 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."
# Automatic translation.
new "## Diese Variablen steuern das Aussehen von Frames, die Komponenten der Benutzeroberfläche enthalten können, wenn kein Overlay oder Fenster vorhanden ist."
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
# Automatic translation.
new "## Generische Frames, die vom Player-Code eingeführt werden."
# 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."
# Automatic translation.
new "## Der Rahmen, der als Teil des Bestätigungsbildschirms verwendet wird."
# 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."
# Automatic translation.
new "## Der Rahmen, der als Teil des Überspringungsbildschirms verwendet wird."
# 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."
# Automatic translation.
new "## Der Rahmen, der als Teil des Benachrichtigungsbildschirms verwendet wird."
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
# Automatic translation.
new "## Sollen Rahmenhintergründe gekachelt werden?"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
# Automatic translation.
new "## Balken, Bildlaufleisten und Schieberegler"
# 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."
# Automatic translation.
new "## Diese steuern das Aussehen und die Größe von Balken, Bildlaufleisten und Schiebereglern."
# 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."
# Automatic translation.
new "## Die Standard-GUI verwendet nur Schieberegler und vertikale Bildlaufleisten. Alle anderen Leisten werden nur im vom Ersteller geschriebenen Code verwendet."
# 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."
# Automatic translation.
new "## Die Höhe der horizontalen Balken, Bildlaufleisten und Schieberegler. Die Breite der vertikalen Balken, Rollbalken und Schieberegler."
# 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."
# Automatic translation.
new "## True, wenn die Balkenbilder gekachelt werden sollen. False, wenn sie linear skaliert werden sollen."
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
# Automatic translation.
new "## Horizontale Grenzen."
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
# Automatic translation.
new "## Vertikale Ränder."
# 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."
# Automatic translation.
new "## Was man mit nicht scrollbaren Bildlaufleisten in der Benutzeroberfläche macht. \"hide\" blendet sie aus, während \"None\" sie anzeigt."
# gui.rpy:331
old "## History"
new "## History"
# Automatic translation.
new "## Geschichte"
# 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."
# Automatic translation.
new "## Der Verlaufsbildschirm zeigt Dialoge an, die der Spieler bereits verworfen hat."
# 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."
# Automatic translation.
new "## Die Anzahl der Blöcke des Dialogverlaufs, die Ren'Py behält."
# 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."
# Automatic translation.
new "## Die Höhe eines Eintrags im Verlaufsbildschirm, oder None, um die Höhe auf Kosten der Leistung variabel zu machen."
# 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."
# Automatic translation.
new "## Die Position, Breite und Ausrichtung der Beschriftung, die den Namen des sprechenden Zeichens angibt."
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
# Automatic translation.
new "## Die Position, Breite und Ausrichtung des Dialogtextes."
# gui.rpy:356
old "## NVL-Mode"
new "## NVL-Mode"
# Automatic translation.
new "## NVL-Modus"
# 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."
# Automatic translation.
new "## Der NVL-Modus-Bildschirm zeigt den Dialog an, der von den Charakteren im NVL-Modus gesprochen wird."
# 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."
# Automatic translation.
new "## Die Grenzen des Hintergrunds des Hintergrundfensters im NVL-Modus."
# 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."
# Automatic translation.
new "## Die Höhe eines Eintrags im NVL-Modus. Setzen Sie dies auf None, um die Höhe der Einträge dynamisch anzupassen."
# 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."
# Automatic translation.
new "## Der Abstand zwischen NVL-Mode-Einträgen, wenn gui.nvl_height None ist, und zwischen NVL-Mode-Einträgen und einem NVL-Mode-Menü."
# 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.)"
# Automatic translation.
new "## Die Position, Breite und Ausrichtung des nvl_thought-Textes (der Text, der vom nvl_narrator-Zeichen gesprochen wird)."
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
# Automatic translation.
new "## Die Position der 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."
# Automatic translation.
new "## Dadurch werden die Schnellschaltflächen größer, damit sie auf Tablets und Handys leichter zu erreichen sind."
# 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."
# Automatic translation.
new "## Dies ändert die Größe und die Abstände verschiedener GUI-Elemente, um sicherzustellen, dass sie auf Handys gut sichtbar sind."
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
# Automatic translation.
new "## Schriftgrößen."
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
# Automatic translation.
new "## Passen Sie die Position des Textfeldes an."
# 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."
# Automatic translation.
new "## Ändern Sie die Größe und die Abstände der Elemente im Spielmenü."
# gui.rpy:436
old "## File button layout."
new "## File button layout."
# Automatic translation.
new "## Layout der Schaltfläche Datei."
# gui.rpy:440
old "## NVL-mode."
new "## NVL-mode."
# Automatic translation.
new "## NVL-Modus."
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
translate german strings:
# 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."
# Automatic translation.
new "## Die Anweisung init offset bewirkt, dass die Initialisierungsanweisungen in dieser Datei vor den init-Anweisungen in allen anderen Dateien ausgeführt werden."
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
# Automatic translation.
new "## Prüfungen auf ungültige oder instabile Eigenschaften in Bildschirmen oder Transformationen aktivieren"
# gui/game/gui.rpy:19
old "## GUI Configuration Variables"
# Automatic translation.
new "## GUI-Konfigurationsvariablen"
# gui/game/gui.rpy:167
old "## The color of button text in various states."
# Automatic translation.
new "## Die Farbe des Schaltflächentextes in verschiedenen Zuständen."
# 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)."
# Automatic translation.
new "## Die horizontale Ausrichtung des Schaltflächentextes. (0.0 ist links, 0.5 ist mittig, 1.0 ist rechts)."
# gui/game/gui.rpy:278
old "## The position of the main menu text."
# Automatic translation.
new "## Die Position des Hauptmenütextes."
# gui/game/gui.rpy:287
old "## Generic frames."
# Automatic translation.
new "## Allgemeine Rahmen."
# 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."
# Automatic translation.
new "## Die Standard-GUI verwendet nur Schieberegler und vertikale Bildlaufleisten. Alle anderen Leisten werden nur in vom Ersteller geschriebenen Bildschirmen verwendet."
# 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."
# Automatic translation.
new "## Die maximale Anzahl der Einträge im NVL-Modus, die Ren'Py anzeigt. Wenn mehr Einträge als diese Zahl angezeigt werden sollen, wird der älteste Eintrag entfernt."
# gui/game/gui.rpy:405
old "## Localization"
# Automatic translation.
new "## Lokalisierung"
# 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"
# Automatic translation.
new "## Dies steuert, wo ein Zeilenumbruch zulässig ist. Der Standardwert ist für die meisten Sprachen geeignet. Eine Liste der verfügbaren Werte finden Sie unter https://www.renpy.org/doc/html/style_properties.html#style-property-language."
# gui/game/gui.rpy:415
old "## Mobile devices"
# Automatic translation.
new "## Mobile Geräte"
# gui/game/gui.rpy:446
old "## Change the size and spacing of various things."
# Automatic translation.
new "## Ändern Sie die Größe und die Abstände verschiedener Dinge."
File diff suppressed because it is too large Load Diff
+109 -47
View File
@@ -3,119 +3,148 @@ translate german 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."
# Automatic translation.
new "## Diese Datei enthält Optionen, die geändert werden können, um das Spiel anzupassen."
# 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."
# Automatic translation.
new "## Zeilen, die mit zwei '#' beginnen, sind Kommentare und sollten nicht auskommentiert werden. Zeilen, die mit einem einzelnen '#' beginnen, sind auskommentierter Code, den Sie ggf. auskommentieren sollten."
# options.rpy:10
old "## Basics"
new "## Basics"
# Automatic translation.
new "## Grundlagen"
# 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."
# Automatic translation.
new "## Ein für Menschen lesbarer Name des Spiels. Dieser wird verwendet, um den Standard-Fenstertitel festzulegen, und wird in der Benutzeroberfläche und in Fehlerberichten angezeigt."
# 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."
# Automatic translation.
new "## Das _(), das die Zeichenkette umgibt, kennzeichnet sie als übersetzbar."
# options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 Default GUI"
# Automatic translation.
new "Ren'Py 7 Standard-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."
# Automatic translation.
new "## Bestimmt, ob der oben angegebene Titel auf dem Hauptmenübildschirm angezeigt wird. Setzen Sie dies auf False, um den Titel auszublenden."
# options.rpy:26
old "## The version of the game."
new "## The version of the game."
# Automatic translation.
new "## Die Version des Spiels."
# 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."
# Automatic translation.
new "## Text, der auf dem Info-Bildschirm des Spiels erscheint. Um eine Leerzeile zwischen Absätzen einzufügen, schreiben Sie \\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."
# Automatic translation.
new "## Ein kurzer Name für das Spiel, der für ausführbare Dateien und Verzeichnisse in der erstellten Distribution verwendet wird. Er darf nur ASCII sein und keine Leerzeichen, Doppelpunkte oder Semikolons enthalten."
# options.rpy:44
old "## Sounds and music"
new "## Sounds and music"
# Automatic translation.
new "## Klänge und Musik"
# 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."
# Automatic translation.
new "## Diese drei Variablen steuern, welche Mixer dem Spieler standardmäßig angezeigt werden. Wird eine dieser Variablen auf False gesetzt, wird der entsprechende Mischer ausgeblendet."
# 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."
# Automatic translation.
new "## Um dem Benutzer die Möglichkeit zu geben, einen Testton auf dem Ton- oder Sprachkanal abzuspielen, entfernen Sie die Kommentarzeichen in der Zeile unten und verwenden Sie sie, um einen Beispielton abzuspielen."
# 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."
# Automatic translation.
new "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. Diese Datei wird im Spiel weiter abgespielt, bis sie gestoppt wird oder eine andere Datei abgespielt wird."
# options.rpy:69
old "## Transitions"
new "## Transitions"
# Automatic translation.
new "## Übergänge"
# 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."
# Automatic translation.
new "## Diese Variablen legen Übergänge fest, die bei bestimmten Ereignissen verwendet werden. Jede Variable sollte auf einen Übergang gesetzt werden, oder auf \"None\", um anzugeben, dass kein Übergang verwendet werden soll."
# options.rpy:75
old "## Entering or exiting the game menu."
new "## Entering or exiting the game menu."
# Automatic translation.
new "## Aufrufen oder Verlassen des Spielmenüs."
# 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."
# Automatic translation.
new "## Ein Übergang, der verwendet wird, nachdem ein Spiel geladen wurde."
# 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."
# Automatic translation.
new "## Wird verwendet, wenn das Hauptmenü nach Beendigung des Spiels aufgerufen wird."
# 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."
# Automatic translation.
new "## Eine Variable zum Festlegen des Übergangs, der beim Start des Spiels verwendet wird, existiert nicht. Verwenden Sie stattdessen eine with-Anweisung, nachdem Sie die Anfangsszene gezeigt haben."
# options.rpy:96
old "## Window management"
new "## Window management"
# Automatic translation.
new "## Fensterverwaltung"
# 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."
# Automatic translation.
new "## Dies steuert, wann das Dialogfenster angezeigt wird. Wenn \"show\", wird es immer angezeigt. Wenn \"hide\", wird es nur angezeigt, wenn ein Dialog vorhanden ist. Bei \"auto\" wird das Fenster vor Szenenanweisungen ausgeblendet und wieder eingeblendet, sobald der Dialog angezeigt wird."
# 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."
# Automatic translation.
new "## Nachdem das Spiel gestartet wurde, kann dies mit den Anweisungen \"window show\", \"window hide\" und \"window auto\" geändert werden."
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
new "## Transitions used to show and hide the dialogue window"
# Automatic translation.
new "## Übergänge zum Ein- und Ausblenden des Dialogfensters"
# options.rpy:115
old "## Preference defaults"
new "## Preference defaults"
# Automatic translation.
new "## Präferenzvorgaben"
# 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."
# Automatic translation.
new "## Steuert die Standard-Textgeschwindigkeit. Die Vorgabe 0 ist unendlich, während jede andere Zahl die Anzahl der zu tippenden Zeichen pro Sekunde angibt."
# 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."
# Automatic translation.
new "## Die Standardverzögerung für die automatische Weiterleitung. Größere Zahlen führen zu längeren Wartezeiten, wobei 0 bis 30 der gültige Bereich ist."
# options.rpy:129
old "## Save directory"
new "## Save directory"
# Automatic translation.
new "## Verzeichnis speichern"
# 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:"
# Automatic translation.
new "## Legt den plattformspezifischen Ort fest, an dem Ren'Py die Speicherdateien für dieses Spiel ablegt. Die Speicherdateien werden in platziert:"
# options.rpy:134
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
@@ -131,7 +160,8 @@ translate german 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."
# Automatic translation.
new "## Dies sollte in der Regel nicht geändert werden, und wenn doch, dann sollte es sich immer um eine Zeichenkette und nicht um einen Ausdruck handeln."
# options.rpy:146
old "## Icon ########################################################################'"
@@ -139,57 +169,89 @@ translate german strings:
# options.rpy:148
old "## The icon displayed on the taskbar or dock."
new "## The icon displayed on the taskbar or dock."
# Automatic translation.
new "## Das Symbol, das in der Taskleiste oder im Dock angezeigt wird."
# options.rpy:153
old "## Build configuration"
new "## Build configuration"
# Automatic translation.
new "## Konfiguration erstellen"
# 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."
# Automatic translation.
new "## Dieser Abschnitt steuert, wie Ren'Py Ihr Projekt in Distributionsdateien umwandelt."
# 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."
# Automatic translation.
new "## Die folgenden Funktionen nehmen Dateimuster an. Die Dateimuster unterscheiden nicht zwischen Groß- und Kleinschreibung und werden mit dem Pfad relativ zum Basisverzeichnis abgeglichen, mit oder ohne führendem /. Wenn mehrere Muster übereinstimmen, wird das erste verwendet."
# options.rpy:165
old "## In a pattern:"
new "## In a pattern:"
# Automatic translation.
new "## In einem Muster:"
# options.rpy:167
old "## / is the directory separator."
new "## / is the directory separator."
# Automatic translation.
new "## / ist das Verzeichnis-Trennzeichen."
# options.rpy:169
old "## * matches all characters, except the directory separator."
new "## * matches all characters, except the directory separator."
# Automatic translation.
new "## * trifft auf alle Zeichen zu, außer auf das Verzeichnistrennzeichen."
# options.rpy:171
old "## ** matches all characters, including the directory separator."
new "## ** matches all characters, including the directory separator."
# options.rpy:173
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
# Automatic translation.
new "## ** passt auf alle Zeichen, auch auf das Verzeichnis-Trennzeichen."
# 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."
# Automatic translation.
new "## Klassifizieren Sie Dateien als None, um sie von den erstellten Distributionen auszuschließen."
# options.rpy:185
old "## To archive files, classify them as 'archive'."
new "## To archive files, classify them as 'archive'."
# Automatic translation.
new "## Um Dateien zu archivieren, klassifizieren Sie sie als \"Archiv\"."
# 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."
# Automatic translation.
new "## Dateien, die den Dokumentationsmustern entsprechen, werden in einem Mac-App-Build dupliziert, sodass sie sowohl in der App als auch in der Zip-Datei erscheinen."
# 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."
# Automatic translation.
new "## Ein Google Play-Lizenzschlüssel ist erforderlich, um Erweiterungsdateien herunterzuladen und In-App-Käufe durchzuführen. Sie finden ihn auf der Seite \"Services & APIs\" in der Google Play-Entwicklerkonsole."
# 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."
# Automatic translation.
new "## Der mit einem itch.io-Projekt verbundene Benutzername und Projektname, getrennt durch einen Schrägstrich."
# 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."
# Automatic translation.
new "## Text, der auf dem Info-Bildschirm des Spiels erscheint. Setzen Sie den Text zwischen die dreifachen Anführungszeichen und lassen Sie eine Leerzeile zwischen den Absätzen."
# 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."
# Automatic translation.
new "## Diese drei Variablen steuern unter anderem, welche Mixer dem Spieler standardmäßig angezeigt werden. Wird eine dieser Variablen auf False gesetzt, wird der entsprechende Mischer ausgeblendet."
# gui/game/options.rpy:82
old "## Between screens of the game menu."
# Automatic translation.
new "## Zwischen den Bildschirmen des Spielmenüs."
# gui/game/options.rpy:152
old "## Icon"
new "## Icon"
# 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\"."
# Automatic translation.
new "## Für In-App-Käufe ist ein Google Play-Lizenzschlüssel erforderlich. Sie finden ihn in der Google Play-Entwicklerkonsole unter \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
+354 -117
View File
@@ -3,23 +3,28 @@ translate german strings:
# screens.rpy:9
old "## Styles"
new "## Styles"
# Automatic translation.
new "## Stile"
# screens.rpy:87
old "## In-game screens"
new "## In-game screens"
# Automatic translation.
new "## Bildschirme im Spiel"
# screens.rpy:91
old "## Say screen"
new "## Say screen"
# Automatic translation.
new "## Sagen Sie Bildschirm"
# screens.rpy:93
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 "## 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.)"
# Automatic translation.
new "## Der say-Bildschirm wird verwendet, um dem Spieler einen Dialog anzuzeigen. Er benötigt zwei Parameter, who und what, die den Namen des sprechenden Charakters bzw. den anzuzeigenden Text darstellen. (Der who-Parameter kann None sein, wenn kein Name angegeben wird.)"
# screens.rpy:98
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
new "## 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."
# Automatic translation.
new "## Dieser Bildschirm muss ein Text-Displayable mit der id \"what\" erstellen, da Ren'Py dieses zur Verwaltung der Textanzeige verwendet. Es kann auch Displayables mit der id \"who\" und id \"window\" erstellen, um Stileigenschaften anzuwenden."
# screens.rpy:102
old "## https://www.renpy.org/doc/html/screen_special.html#say"
@@ -27,15 +32,18 @@ translate german strings:
# screens.rpy:169
old "## Input screen"
new "## Input screen"
# Automatic translation.
new "## Eingabebildschirm"
# screens.rpy:171
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
# Automatic translation.
new "## Dieser Bildschirm wird zur Anzeige von renpy.input verwendet. Der Prompt-Parameter wird verwendet, um eine Text-Eingabeaufforderung zu übergeben."
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
# Automatic translation.
new "## Dieser Bildschirm muss eine anzeigbare Eingabe mit der ID \"input\" erstellen, um die verschiedenen Eingabeparameter zu akzeptieren."
# screens.rpy:177
old "## http://www.renpy.org/doc/html/screen_special.html#input"
@@ -43,11 +51,13 @@ translate german strings:
# screens.rpy:205
old "## Choice screen"
new "## Choice screen"
# Automatic translation.
new "## Auswahlbildschirm"
# screens.rpy:207
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
new "## 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."
# Automatic translation.
new "## Dieser Bildschirm wird verwendet, um die Auswahlmöglichkeiten im Spiel anzuzeigen, die von der Menüanweisung präsentiert werden. Der eine Parameter, items, ist eine Liste von Objekten, jedes mit Beschriftung und Aktionsfeldern."
# screens.rpy:211
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
@@ -55,15 +65,18 @@ translate german strings:
# screens.rpy:221
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
# Automatic translation.
new "## Wenn dies wahr ist, werden die Menübeschriftungen vom Sprecher gesprochen. Bei \"false\" werden die Menübeschriftungen als leere Schaltflächen angezeigt."
# screens.rpy:244
old "## Quick Menu screen"
new "## Quick Menu screen"
# Automatic translation.
new "## Bildschirm Schnellmenü"
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
# Automatic translation.
new "## Das Schnellmenü wird im Spiel angezeigt, um einen einfachen Zugriff auf die Menüs außerhalb des Spiels zu ermöglichen."
# screens.rpy:261
old "Back"
@@ -71,7 +84,8 @@ translate german strings:
# screens.rpy:262
old "History"
new "History"
# Automatic translation.
new "Geschichte"
# screens.rpy:263
old "Skip"
@@ -99,15 +113,18 @@ translate german strings:
# screens.rpy:271
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
# Automatic translation.
new "## Dieser Code stellt sicher, dass der quick_menu-Bildschirm im Spiel angezeigt wird, wenn der Spieler die Benutzeroberfläche nicht explizit ausgeblendet hat."
# screens.rpy:291
old "## Navigation screen"
new "## Navigation screen"
# Automatic translation.
new "## Navigationsbildschirm"
# screens.rpy:293
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
# Automatic translation.
new "## Dieser Bildschirm ist im Haupt- und Spielmenü enthalten und ermöglicht die Navigation zu anderen Menüs und den Start des Spiels."
# screens.rpy:308
old "Start"
@@ -115,7 +132,8 @@ translate german strings:
# screens.rpy:316
old "Load"
new "Load"
# Automatic translation.
new "Laden Sie"
# screens.rpy:318
old "Preferences"
@@ -123,7 +141,8 @@ translate german strings:
# screens.rpy:322
old "End Replay"
new "End Replay"
# Automatic translation.
new "Wiederholung beenden"
# screens.rpy:326
old "Main Menu"
@@ -135,7 +154,8 @@ translate german strings:
# screens.rpy:332
old "## Help isn't necessary or relevant to mobile devices."
new "## Help isn't necessary or relevant to mobile devices."
# Automatic translation.
new "## Hilfe ist für mobile Geräte nicht notwendig oder relevant."
# screens.rpy:333
old "Help"
@@ -143,7 +163,8 @@ translate german strings:
# screens.rpy:335
old "## The quit button is banned on iOS and unnecessary on Android."
new "## The quit button is banned on iOS and unnecessary on Android."
# Automatic translation.
new "## Die Beenden-Schaltfläche ist auf iOS verboten und auf Android unnötig."
# screens.rpy:336
old "Quit"
@@ -151,11 +172,13 @@ translate german strings:
# screens.rpy:350
old "## Main Menu screen"
new "## Main Menu screen"
# Automatic translation.
new "## Hauptmenü-Bildschirm"
# screens.rpy:352
old "## Used to display the main menu when Ren'Py starts."
new "## Used to display the main menu when Ren'Py starts."
# Automatic translation.
new "## Wird verwendet, um das Hauptmenü beim Start von Ren'Py anzuzeigen."
# screens.rpy:354
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
@@ -163,19 +186,18 @@ translate german strings:
# screens.rpy:369
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
# Automatic translation.
new "## Die Anweisung use enthält einen weiteren Bildschirm innerhalb dieses Bildschirms. Der eigentliche Inhalt des Hauptmenüs befindet sich auf dem Navigationsbildschirm."
# screens.rpy:413
old "## Game Menu screen"
new "## Game Menu screen"
# Automatic translation.
new "## Bildschirm Spielmenü"
# screens.rpy:415
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 "## 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."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
# Automatic translation.
new "## Hier wird die allgemeine Grundstruktur eines Spielmenübildschirms festgelegt. Es wird mit dem Bildschirmtitel aufgerufen und zeigt den Hintergrund, den Titel und die Navigation an."
# screens.rpy:476
old "Return"
@@ -183,19 +205,23 @@ translate german strings:
# screens.rpy:539
old "## About screen"
new "## About screen"
# Automatic translation.
new "## Über den Bildschirm"
# screens.rpy:541
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## This screen gives credit and copyright information about the game and Ren'Py."
# Automatic translation.
new "## Dieser Bildschirm enthält Kredit- und Copyright-Informationen über das Spiel und Ren'Py."
# screens.rpy:544
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
# Automatic translation.
new "## Dieser Bildschirm ist nichts Besonderes und dient daher auch als Beispiel für die Erstellung eines benutzerdefinierten Bildschirms."
# screens.rpy:551
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
new "## 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."
# Automatic translation.
new "## Diese Anweisung schließt den Bildschirm game_menu in diesen Bildschirm ein. Das vbox-Kind wird dann in das Viewport innerhalb des game_menu-Bildschirms aufgenommen."
# screens.rpy:561
old "Version [config.version!t]\n"
@@ -203,23 +229,28 @@ translate german strings:
# screens.rpy:563
old "## gui.about is usually set in options.rpy."
new "## gui.about is usually set in options.rpy."
# Automatic translation.
new "## gui.about wird normalerweise in options.rpy eingestellt."
# screens.rpy:567
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
# Automatic translation.
new "Hergestellt mit {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only] .\n\n[renpy.license!t]"
# screens.rpy:570
old "## This is redefined in options.rpy to add text to the about screen."
new "## This is redefined in options.rpy to add text to the about screen."
# Automatic translation.
new "## Dies wird in options.rpy neu definiert, um dem Info-Bildschirm Text hinzuzufügen."
# screens.rpy:582
old "## Load and Save screens"
new "## Load and Save screens"
# Automatic translation.
new "## Bildschirme laden und speichern"
# screens.rpy:584
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 "## 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."
# Automatic translation.
new "## Diese Bildschirme sind dafür verantwortlich, dass der Spieler das Spiel speichern und wieder laden kann. Da sie fast alles gemeinsam haben, sind beide in Form eines dritten Bildschirms, file_slots, implementiert."
# screens.rpy:588
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
@@ -227,23 +258,28 @@ translate german strings:
# screens.rpy:607
old "Page {}"
new "Page {}"
# Automatic translation.
new "Seite {}"
# screens.rpy:607
old "Automatic saves"
new "Automatic saves"
# Automatic translation.
new "Automatisch speichern"
# screens.rpy:607
old "Quick saves"
new "Quick saves"
# Automatic translation.
new "Schnelles Speichern"
# screens.rpy:613
old "## This ensures the input will get the enter event before any of the buttons do."
new "## This ensures the input will get the enter event before any of the buttons do."
# Automatic translation.
new "## Dies stellt sicher, dass die Eingabe das Enter-Ereignis erhält, bevor es eine der Schaltflächen tut."
# screens.rpy:629
old "## The grid of file slots."
new "## The grid of file slots."
# Automatic translation.
new "## Das Raster der Dateislots."
# screens.rpy:649
old "{#file_time}%A, %B %d %Y, %H:%M"
@@ -251,11 +287,13 @@ translate german strings:
# screens.rpy:649
old "empty slot"
new "empty slot"
# Automatic translation.
new "leerer Steckplatz"
# screens.rpy:657
old "## Buttons to access other pages."
new "## Buttons to access other pages."
# Automatic translation.
new "## Schaltflächen für den Zugriff auf andere Seiten."
# screens.rpy:666
old "<"
@@ -275,11 +313,13 @@ translate german strings:
# screens.rpy:711
old "## Preferences screen"
new "## Preferences screen"
# Automatic translation.
new "## Bildschirm Präferenzen"
# screens.rpy:713
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## The preferences screen allows the player to configure the game to better suit themselves."
# Automatic translation.
new "## Der Einstellungsbildschirm ermöglicht es dem Spieler, das Spiel so zu konfigurieren, dass es besser zu ihm passt."
# screens.rpy:716
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
@@ -299,23 +339,28 @@ translate german strings:
# screens.rpy:744
old "Rollback Side"
new "Rollback Side"
# Automatic translation.
new "Rollback Seite"
# screens.rpy:745
old "Disable"
new "Disable"
# Automatic translation.
new "Deaktivieren Sie"
# screens.rpy:746
old "Left"
new "Left"
# Automatic translation.
new "Links"
# screens.rpy:747
old "Right"
new "Right"
# Automatic translation.
new "Rechts"
# screens.rpy:752
old "Unseen Text"
new "Unseen Text"
# Automatic translation.
new "Unsichtbarer Text"
# screens.rpy:753
old "After Choices"
@@ -327,7 +372,8 @@ translate german strings:
# screens.rpy:756
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
# Automatic translation.
new "## Hier können zusätzliche vboxes vom Typ \"radio_pref\" oder \"check_pref\" hinzugefügt werden, um weitere vom Ersteller definierte Einstellungen hinzuzufügen."
# screens.rpy:767
old "Text Speed"
@@ -355,15 +401,18 @@ translate german strings:
# screens.rpy:806
old "Mute All"
new "Mute All"
# Automatic translation.
new "Alle stummschalten"
# screens.rpy:882
old "## History screen"
new "## History screen"
# Automatic translation.
new "## Bildschirm Geschichte"
# screens.rpy:884
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 "## 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."
# Automatic translation.
new "## Dies ist ein Bildschirm, der dem Spieler den Dialogverlauf anzeigt. Es gibt zwar nichts Besonderes an diesem Bildschirm, aber er muss auf den Dialogverlauf zugreifen, der in _history_list gespeichert ist."
# screens.rpy:888
old "## https://www.renpy.org/doc/html/history.html"
@@ -371,35 +420,43 @@ translate german strings:
# screens.rpy:894
old "## Avoid predicting this screen, as it can be very large."
new "## Avoid predicting this screen, as it can be very large."
# Automatic translation.
new "## Vermeiden Sie es, diesen Bildschirm vorherzusehen, da er sehr groß sein kann."
# screens.rpy:905
old "## This lays things out properly if history_height is None."
new "## This lays things out properly if history_height is None."
# Automatic translation.
new "## Dies legt die Dinge richtig aus, wenn history_height None ist."
# screens.rpy:914
old "## Take the color of the who text from the Character, if set."
new "## Take the color of the who text from the Character, if set."
# Automatic translation.
new "## Übernimmt die Farbe des Wer-Textes aus dem Zeichen, falls festgelegt."
# screens.rpy:921
old "The dialogue history is empty."
new "The dialogue history is empty."
# Automatic translation.
new "Der Dialogverlauf ist leer."
# screens.rpy:965
old "## Help screen"
new "## Help screen"
# Automatic translation.
new "## Hilfe-Bildschirm"
# screens.rpy:967
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 "## 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."
# Automatic translation.
new "## Ein Bildschirm, der Informationen über Tasten- und Mausbelegungen liefert. Er verwendet andere Bildschirme (keyboard_help, mouse_help und gamepad_help), um die eigentliche Hilfe anzuzeigen."
# screens.rpy:986
old "Keyboard"
new "Keyboard"
# Automatic translation.
new "Tastatur"
# screens.rpy:987
old "Mouse"
new "Mouse"
# Automatic translation.
new "Maus"
# screens.rpy:990
old "Gamepad"
@@ -407,43 +464,53 @@ translate german strings:
# screens.rpy:1003
old "Enter"
new "Enter"
# Automatic translation.
new "Eingabe"
# screens.rpy:1004
old "Advances dialogue and activates the interface."
new "Advances dialogue and activates the interface."
# Automatic translation.
new "Erweitert den Dialog und aktiviert die Schnittstelle."
# screens.rpy:1007
old "Space"
new "Space"
# Automatic translation.
new "Weltraum"
# screens.rpy:1008
old "Advances dialogue without selecting choices."
new "Advances dialogue without selecting choices."
# Automatic translation.
new "Bringt den Dialog voran, ohne eine Auswahl zu treffen."
# screens.rpy:1011
old "Arrow Keys"
new "Arrow Keys"
# Automatic translation.
new "Pfeil-Tasten"
# screens.rpy:1012
old "Navigate the interface."
new "Navigate the interface."
# Automatic translation.
new "Navigieren Sie durch die Schnittstelle."
# screens.rpy:1015
old "Escape"
new "Escape"
# Automatic translation.
new "Flucht"
# screens.rpy:1016
old "Accesses the game menu."
new "Accesses the game menu."
# Automatic translation.
new "Ruft das Spielmenü auf."
# screens.rpy:1019
old "Ctrl"
new "Ctrl"
# Automatic translation.
new "Strg"
# screens.rpy:1020
old "Skips dialogue while held down."
new "Skips dialogue while held down."
# Automatic translation.
new "Überspringt Dialoge, wenn Sie die Taste gedrückt halten."
# screens.rpy:1023
old "Tab"
@@ -451,75 +518,93 @@ translate german strings:
# screens.rpy:1024
old "Toggles dialogue skipping."
new "Toggles dialogue skipping."
# Automatic translation.
new "Schaltet das Überspringen von Dialogen ein."
# screens.rpy:1027
old "Page Up"
new "Page Up"
# Automatic translation.
new "Seite oben"
# screens.rpy:1028
old "Rolls back to earlier dialogue."
new "Rolls back to earlier dialogue."
# Automatic translation.
new "Kehrt zu einem früheren Dialog zurück."
# screens.rpy:1031
old "Page Down"
new "Page Down"
# Automatic translation.
new "Seite unten"
# screens.rpy:1032
old "Rolls forward to later dialogue."
new "Rolls forward to later dialogue."
# Automatic translation.
new "Weiter geht's mit einem späteren Dialog."
# screens.rpy:1036
old "Hides the user interface."
new "Hides the user interface."
# Automatic translation.
new "Blendet die Benutzeroberfläche aus."
# screens.rpy:1040
old "Takes a screenshot."
new "Takes a screenshot."
# Automatic translation.
new "Nimmt einen Screenshot auf."
# screens.rpy:1044
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
# Automatic translation.
new "Schaltet das Hilfsmittel {a=https://www.renpy.org/l/voicing}selbststimmend{/a} um."
# screens.rpy:1050
old "Left Click"
new "Left Click"
# Automatic translation.
new "Links klicken"
# screens.rpy:1054
old "Middle Click"
new "Middle Click"
# Automatic translation.
new "Mittlerer Klick"
# screens.rpy:1058
old "Right Click"
new "Right Click"
# Automatic translation.
new "Rechtsklick"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Mouse Wheel Up\nClick Rollback Side"
old "Mouse Wheel Up"
# Automatic translation.
new "Mausrad nach oben\nKlicken Sie auf Rollback Seite"
# screens.rpy:1066
old "Mouse Wheel Down"
new "Mouse Wheel Down"
# Automatic translation.
new "Mausrad nach unten"
# screens.rpy:1073
old "Right Trigger\nA/Bottom Button"
new "Right Trigger\nA/Bottom Button"
# Automatic translation.
new "Rechter Auslöser\nA/Unterer Knopf"
# screens.rpy:1074
old "Advance dialogue and activates the interface."
new "Advance dialogue and activates the interface."
# Automatic translation.
new "Erweitert den Dialog und aktiviert die Schnittstelle."
# screens.rpy:1078
old "Roll back to earlier dialogue."
new "Roll back to earlier dialogue."
# Automatic translation.
new "Gehen Sie zu einem früheren Dialog zurück."
# screens.rpy:1081
old "Right Shoulder"
new "Right Shoulder"
# Automatic translation.
new "Rechte Schulter"
# screens.rpy:1082
old "Roll forward to later dialogue."
new "Roll forward to later dialogue."
# Automatic translation.
new "Spulen Sie vor zu einem späteren Dialog."
# screens.rpy:1085
old "D-Pad, Sticks"
@@ -527,31 +612,38 @@ translate german strings:
# screens.rpy:1089
old "Start, Guide"
new "Start, Guide"
# Automatic translation.
new "Start, Leitfaden"
# screens.rpy:1090
old "Access the game menu."
new "Access the game menu."
# Automatic translation.
new "Rufen Sie das Spielmenü auf."
# screens.rpy:1093
old "Y/Top Button"
new "Y/Top Button"
# Automatic translation.
new "Y/Top-Taste"
# screens.rpy:1096
old "Calibrate"
new "Calibrate"
# Automatic translation.
new "Kalibrieren Sie"
# screens.rpy:1124
old "## Additional screens"
new "## Additional screens"
# Automatic translation.
new "## Zusätzliche Bildschirme"
# screens.rpy:1128
old "## Confirm screen"
new "## Confirm screen"
# Automatic translation.
new "## Bildschirm bestätigen"
# screens.rpy:1130
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
# Automatic translation.
new "## Der Bestätigungsbildschirm wird aufgerufen, wenn Ren'Py dem Spieler eine Ja- oder Nein-Frage stellen will."
# screens.rpy:1133
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
@@ -559,7 +651,8 @@ translate german strings:
# screens.rpy:1137
old "## Ensure other screens do not get input while this screen is displayed."
new "## Ensure other screens do not get input while this screen is displayed."
# Automatic translation.
new "## Stellen Sie sicher, dass andere Bildschirme keine Eingaben erhalten, während dieser Bildschirm angezeigt wird."
# screens.rpy:1161
old "Yes"
@@ -571,15 +664,18 @@ translate german strings:
# screens.rpy:1164
old "## Right-click and escape answer \"no\"."
new "## Right-click and escape answer \"no\"."
# Automatic translation.
new "## Klicken Sie mit der rechten Maustaste und geben Sie die Antwort \"Nein\" ein."
# screens.rpy:1191
old "## Skip indicator screen"
new "## Skip indicator screen"
# Automatic translation.
new "## Indikatorbildschirm überspringen"
# screens.rpy:1193
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
# Automatic translation.
new "## Der Bildschirm skip_indicator wird angezeigt, um zu signalisieren, dass das Überspringen im Gange ist."
# screens.rpy:1196
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
@@ -587,19 +683,23 @@ translate german strings:
# screens.rpy:1208
old "Skipping"
new "Skipping"
# Automatic translation.
new "Überspringen"
# screens.rpy:1215
old "## This transform is used to blink the arrows one after another."
new "## This transform is used to blink the arrows one after another."
# Automatic translation.
new "## Diese Transformation wird verwendet, um die Pfeile nacheinander zu blinken."
# screens.rpy:1247
old "## Notify screen"
new "## Notify screen"
# Automatic translation.
new "## Bildschirm benachrichtigen"
# screens.rpy:1249
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 "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
# Automatic translation.
new "## Der Benachrichtigungsbildschirm wird verwendet, um dem Spieler eine Nachricht anzuzeigen. (Zum Beispiel, wenn das Spiel schnell gespeichert wird oder ein Screenshot gemacht wurde)."
# screens.rpy:1252
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
@@ -607,11 +707,13 @@ translate german strings:
# screens.rpy:1286
old "## NVL screen"
new "## NVL screen"
# Automatic translation.
new "## NVL-Bildschirm"
# screens.rpy:1288
old "## This screen is used for NVL-mode dialogue and menus."
new "## This screen is used for NVL-mode dialogue and menus."
# Automatic translation.
new "## Dieser Bildschirm wird für den Dialog und die Menüs im NVL-Modus verwendet."
# screens.rpy:1290
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
@@ -619,25 +721,160 @@ translate german strings:
# screens.rpy:1301
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Displays dialogue in either a vpgrid or the vbox."
# Automatic translation.
new "## Zeigt den Dialog entweder in einem vpgrid oder in der vbox an."
# screens.rpy:1314
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
# Automatic translation.
new "## Zeigt das Menü an, falls vorhanden. Das Menü kann falsch angezeigt werden, wenn config.narrator_menu auf True gesetzt ist, wie es oben der Fall ist."
# screens.rpy:1344
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
# Automatic translation.
new "## Dies steuert die maximale Anzahl der Einträge im NVL-Modus, die gleichzeitig angezeigt werden können."
# screens.rpy:1406
old "## Mobile Variants"
new "## Mobile Variants"
# Automatic translation.
new "## Mobile Varianten"
# screens.rpy:1413
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 "## 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."
# Automatic translation.
new "## Da eine Maus möglicherweise nicht vorhanden ist, ersetzen wir das Schnellmenü durch eine Version mit weniger und größeren Tasten, die leichter zu berühren sind."
# screens.rpy:1429
old "Menu"
new "Menu"
# Automatic translation.
new "Menü"
translate german strings:
# 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."
# Automatic translation.
new "## Wenn es ein Seitenbild gibt, zeigen Sie es über dem Text an. Nicht auf der Telefonvariante anzeigen - dort ist kein Platz."
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
# Automatic translation.
new "## Machen Sie das Namensfeld für die Gestaltung durch das Character-Objekt verfügbar."
# 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: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:241
old "## Ensure this appears on top of other screens."
# Automatic translation.
new "## Stellen Sie sicher, dass dies über den anderen Bildschirmen erscheint."
# gui/game/screens.rpy:280
old "## Main and Game Menu Screens"
# Automatic translation.
new "## Haupt- und Spielmenü-Bildschirme"
# gui/game/screens.rpy:329
old "## The quit button is banned on iOS and unnecessary on Android and Web."
# Automatic translation.
new "## Die Beenden-Schaltfläche ist auf iOS verboten und auf Android und Web unnötig."
# 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."
# Automatic translation.
new "## Dadurch wird sichergestellt, dass jeder andere Menübildschirm ersetzt wird."
# gui/game/screens.rpy:357
old "## This empty frame darkens the main menu."
# Automatic translation.
new "## Dieser leere Rahmen verdunkelt das Hauptmenü."
# gui/game/screens.rpy:429
old "## Reserve space for the navigation section."
# Automatic translation.
new "## Reservieren Sie Platz für den Navigationsbereich."
# gui/game/screens.rpy:608
old "## The page name, which can be edited by clicking on a button."
# Automatic translation.
new "## Der Seitenname, der durch Klicken auf eine Schaltfläche bearbeitet werden kann."
# gui/game/screens.rpy:668
old "## range(1, 10) gives the numbers from 1 to 9."
# Automatic translation.
new "## bereich(1, 10) liefert die Zahlen von 1 bis 9."
# gui/game/screens.rpy:676
old "Upload Sync"
# Automatic translation.
new "Sync hochladen"
# gui/game/screens.rpy:680
old "Download Sync"
# Automatic translation.
new "Sync herunterladen"
# gui/game/screens.rpy:921
old "## This determines what tags are allowed to be displayed on the history screen."
# Automatic translation.
new "## Hier wird festgelegt, welche Tags auf dem Verlaufsbildschirm angezeigt werden dürfen."
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
# Automatic translation.
new "Öffnet das Menü Barrierefreiheit."
# gui/game/screens.rpy:1082
old "Left Trigger\nLeft Shoulder"
# Automatic translation.
new "Linker Auslöser\nLinke Schulter"
# 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:1248
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
# Automatic translation.
new "## Wir müssen eine Schriftart verwenden, die die Glyphe BLACK RIGHT-POINTING SMALL TRIANGLE enthält."
# 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:1320
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
# Automatic translation.
new "## Zeigt das Menü an, falls vorhanden. Das Menü wird möglicherweise nicht korrekt angezeigt, wenn config.narrator_menu auf True gesetzt ist."
# gui/game/screens.rpy:1410
old "## Bubble screen"
# Automatic translation.
new "## Blasenbildschirm"
# 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."
# Automatic translation.
new "## Der Sprechblasenbildschirm wird verwendet, um dem Spieler einen Dialog anzuzeigen, wenn Sprechblasen verwendet werden. Der Sprechblasenbildschirm benötigt die gleichen Parameter wie der Sprechblasenbildschirm, muss ein Displayable mit der Id \"what\" erstellen und kann Displayables mit den Ids \"namebox\", \"who\" und \"window\" erstellen."
# 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"
translate german 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 "## Der Parameter scroll kann None oder einer der Parameter \"viewport\" oder \"vpgrid\" sein. Dieser Bildschirm soll mit einem oder mehreren Kindern verwendet werden, die in ihn eingeschlossen (platziert) werden."
+654 -3
View File
@@ -199,7 +199,8 @@ translate greek 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?"
# Automatic translation.
new "Είστε σίγουροι ότι θέλετε να παραλείψετε τον αθέατο διάλογο για την επόμενη επιλογή;"
# 00keymap.rpy:250
old "Saved screenshot as %s."
@@ -223,7 +224,8 @@ translate greek 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}."
# Automatic translation.
new "Αυτό το πρόγραμμα περιέχει ελεύθερο λογισμικό υπό διάφορες άδειες χρήσης, συμπεριλαμβανομένης της Άδειας MIT και της Άδειας GNU Lesser General Public License. Ένας πλήρης κατάλογος του λογισμικού, συμπεριλαμβανομένων των συνδέσμων προς τον πλήρη πηγαίο κώδικα, μπορεί να βρεθεί {a=https://www.renpy.org/l/license}εδώ{/a}."
# 00preferences.rpy:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
@@ -239,7 +241,8 @@ translate greek strings:
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
new "Contacting App Store\nPlease Wait..."
# Automatic translation.
new "Επικοινωνία με το App Store\nΠαρακαλώ περιμένετε..."
# 00updater.rpy:367
old "The Ren'Py Updater is not supported on mobile devices."
@@ -333,3 +336,651 @@ translate greek strings:
old "return"
new "επιστροφή"
translate greek strings:
# renpy/common/00accessibility.rpy:32
old "bar"
# Automatic translation.
new "μπαρ"
# renpy/common/00accessibility.rpy:33
old "selected"
# Automatic translation.
new "επιλεγμένο"
# renpy/common/00accessibility.rpy:34
old "viewport"
# Automatic translation.
new "παράθυρο προβολής"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
# Automatic translation.
new "οριζόντια κύλιση"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
# Automatic translation.
new "κατακόρυφη κύλιση"
# renpy/common/00accessibility.rpy:37
old "activate"
# Automatic translation.
new "ενεργοποιήστε το"
# renpy/common/00accessibility.rpy:38
old "deactivate"
# Automatic translation.
new "απενεργοποίηση"
# renpy/common/00accessibility.rpy:39
old "increase"
# Automatic translation.
new "αύξηση"
# renpy/common/00accessibility.rpy:40
old "decrease"
# Automatic translation.
new "μείωση"
# renpy/common/00accessibility.rpy:138
old "Font Override"
# Automatic translation.
new "Παράκαμψη γραμματοσειράς"
# renpy/common/00accessibility.rpy:142
old "Default"
# Automatic translation.
new "Προεπιλογή"
# 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"
# Automatic translation.
new "Κλιμάκωση μεγέθους κειμένου"
# renpy/common/00accessibility.rpy:162
old "Reset"
# Automatic translation.
new "Επαναφορά"
# renpy/common/00accessibility.rpy:168
old "Line Spacing Scaling"
# Automatic translation.
new "Απόσταση γραμμής Κλιμάκωση"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
# Automatic translation.
new "Κείμενο υψηλής αντίθεσης"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing"
# Automatic translation.
new "Αυτο-ομιλία"
# renpy/common/00accessibility.rpy:197
old "Off"
new "Off"
# renpy/common/00accessibility.rpy:201
old "Text-to-speech"
# Automatic translation.
new "Μετατροπή κειμένου σε ομιλία"
# renpy/common/00accessibility.rpy:205
old "Clipboard"
# Automatic translation.
new "Πρόχειρο"
# renpy/common/00accessibility.rpy:209
old "Debug"
# Automatic translation.
new "Αποσφαλμάτωση"
# renpy/common/00accessibility.rpy:223
old "Self-Voicing Volume Drop"
# Automatic translation.
new "Πτώση όγκου αυτο-ομιλίας"
# 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."
# Automatic translation.
new "Οι επιλογές σε αυτό το μενού αποσκοπούν στη βελτίωση της προσβασιμότητας. Ενδέχεται να μην λειτουργούν με όλα τα παιχνίδια και ορισμένοι συνδυασμοί επιλογών ενδέχεται να καταστήσουν το παιχνίδι μη αναπαραγώγιμο. Αυτό δεν αποτελεί πρόβλημα με το παιχνίδι ή τη μηχανή. Για καλύτερα αποτελέσματα κατά την αλλαγή των γραμματοσειρών, προσπαθήστε να διατηρήσετε το μέγεθος του κειμένου στο ίδιο μέγεθος με το αρχικό."
# renpy/common/00action_file.rpy:378
old "Save slot %s: [text]"
# Automatic translation.
new "Αποθήκευση υποδοχής %s: [text]"
# renpy/common/00action_file.rpy:461
old "Load slot %s: [text]"
# Automatic translation.
new "Φορτώστε την υποδοχή %s: [text]"
# renpy/common/00action_file.rpy:514
old "Delete slot [text]"
# Automatic translation.
new "Διαγραφή υποδοχής [text]"
# renpy/common/00action_file.rpy:593
old "File page auto"
# Automatic translation.
new "Αυτόματη σελίδα αρχείου"
# renpy/common/00action_file.rpy:595
old "File page quick"
# Automatic translation.
new "Σελίδα αρχείου γρήγορη"
# renpy/common/00action_file.rpy:597
old "File page [text]"
# Automatic translation.
new "Σελίδα αρχείου [text]"
# renpy/common/00action_file.rpy:796
old "Next file page."
# Automatic translation.
new "Επόμενη σελίδα αρχείου."
# renpy/common/00action_file.rpy:868
old "Previous file page."
# Automatic translation.
new "Προηγούμενη σελίδα αρχείου."
# renpy/common/00action_file.rpy:944
old "Quick save."
# Automatic translation.
new "Γρήγορη αποθήκευση."
# renpy/common/00action_file.rpy:963
old "Quick load."
# Automatic translation.
new "Γρήγορη φόρτωση."
# renpy/common/00action_other.rpy:381
old "Language [text]"
# Automatic translation.
new "Γλώσσα [text]"
# renpy/common/00director.rpy:705
old "The interactive director is not enabled here."
# Automatic translation.
new "Ο διαδραστικός σκηνοθέτης δεν είναι ενεργοποιημένος εδώ."
# renpy/common/00director.rpy:1504
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1510
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1574
old "Done"
# Automatic translation.
new "Έγινε"
# renpy/common/00director.rpy:1584
old "(statement)"
# Automatic translation.
new "(δήλωση)"
# renpy/common/00director.rpy:1585
old "(tag)"
# Automatic translation.
new "(ετικέτα)"
# renpy/common/00director.rpy:1586
old "(attributes)"
# Automatic translation.
new "(χαρακτηριστικά)"
# renpy/common/00director.rpy:1587
old "(transform)"
new "(transform)"
# renpy/common/00director.rpy:1612
old "(transition)"
new "(transition)"
# renpy/common/00director.rpy:1624
old "(channel)"
# Automatic translation.
new "(κανάλι)"
# renpy/common/00director.rpy:1625
old "(filename)"
# Automatic translation.
new "(όνομα αρχείου)"
# renpy/common/00director.rpy:1654
old "Change"
# Automatic translation.
new "Αλλαγή"
# renpy/common/00director.rpy:1656
old "Add"
# Automatic translation.
new "Προσθέστε"
# renpy/common/00director.rpy:1662
old "Remove"
# Automatic translation.
new "Αφαιρέστε το"
# renpy/common/00director.rpy:1697
old "Statement:"
# Automatic translation.
new "Δήλωση:"
# renpy/common/00director.rpy:1718
old "Tag:"
# Automatic translation.
new "Ετικέτα:"
# renpy/common/00director.rpy:1734
old "Attributes:"
# Automatic translation.
new "Χαρακτηριστικά:"
# renpy/common/00director.rpy:1745
old "Click to toggle attribute, right click to toggle negative attribute."
# Automatic translation.
new "Κάντε κλικ για εναλλαγή χαρακτηριστικών, δεξί κλικ για εναλλαγή αρνητικών χαρακτηριστικών."
# renpy/common/00director.rpy:1757
old "Transforms:"
# Automatic translation.
new "Μετασχηματισμοί:"
# renpy/common/00director.rpy:1768
old "Click to set transform, right click to add to transform list."
# Automatic translation.
new "Κάντε κλικ για να ορίσετε μετασχηματισμό, κάντε δεξί κλικ για να προσθέσετε στη λίστα μετασχηματισμών."
# renpy/common/00director.rpy:1780
old "Behind:"
# Automatic translation.
new "Πίσω:"
# renpy/common/00director.rpy:1789
old "Click to set, right click to add to behind list."
# Automatic translation.
new "Κάντε κλικ για να ορίσετε, κάντε δεξί κλικ για να προσθέσετε στη λίστα πίσω."
# renpy/common/00director.rpy:1801
old "Transition:"
# Automatic translation.
new "Μετάβαση:"
# renpy/common/00director.rpy:1819
old "Channel:"
# Automatic translation.
new "Κανάλι:"
# renpy/common/00director.rpy:1837
old "Audio Filename:"
# Automatic translation.
new "Όνομα αρχείου ήχου:"
# renpy/common/00gui.rpy:456
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
# Automatic translation.
new "Αυτή η αποθήκευση δημιουργήθηκε σε διαφορετική συσκευή. Τα κακόβουλα κατασκευασμένα αρχεία αποθήκευσης μπορούν να βλάψουν τον υπολογιστή σας. Εμπιστεύεστε τον δημιουργό αυτής της αποθήκευσης και όλους όσους θα μπορούσαν να έχουν αλλάξει το αρχείο;"
# 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."
# Automatic translation.
new "Εμπιστεύεστε τη συσκευή στην οποία δημιουργήθηκε η αποθήκευση; Θα πρέπει να επιλέξετε ναι μόνο αν είστε ο μοναδικός χρήστης της συσκευής."
# renpy/common/00keymap.rpy:322
old "Failed to save screenshot as %s."
# Automatic translation.
new "Απέτυχε η αποθήκευση στιγμιότυπου οθόνης ως %s."
# renpy/common/00preferences.rpy:271
old "display"
# Automatic translation.
new "οθόνη"
# renpy/common/00preferences.rpy:283
old "transitions"
# Automatic translation.
new "μεταβάσεις"
# renpy/common/00preferences.rpy:292
old "skip transitions"
# Automatic translation.
new "παράλειψη μεταβάσεων"
# renpy/common/00preferences.rpy:294
old "video sprites"
# Automatic translation.
new "sprites βίντεο"
# renpy/common/00preferences.rpy:303
old "show empty window"
# Automatic translation.
new "Εμφάνιση κενού παραθύρου"
# renpy/common/00preferences.rpy:312
old "text speed"
# Automatic translation.
new "ταχύτητα κειμένου"
# renpy/common/00preferences.rpy:320
old "joystick"
new "joystick"
# renpy/common/00preferences.rpy:320
old "joystick..."
new "joystick..."
# renpy/common/00preferences.rpy:327
old "skip"
# Automatic translation.
new "παράλειψη"
# renpy/common/00preferences.rpy:330
old "skip unseen [text]"
new "skip unseen [text]"
# renpy/common/00preferences.rpy:335
old "skip unseen text"
# Automatic translation.
new "παράλειψη αθέατου κειμένου"
# renpy/common/00preferences.rpy:337
old "begin skipping"
# Automatic translation.
new "αρχίστε να παραλείπετε"
# renpy/common/00preferences.rpy:341
old "after choices"
# Automatic translation.
new "μετά από επιλογές"
# renpy/common/00preferences.rpy:348
old "skip after choices"
# Automatic translation.
new "skip μετά από επιλογές"
# renpy/common/00preferences.rpy:350
old "auto-forward time"
# Automatic translation.
new "χρόνος αυτόματης προώθησης"
# renpy/common/00preferences.rpy:364
old "auto-forward"
# Automatic translation.
new "αυτόματη προώθηση"
# renpy/common/00preferences.rpy:371
old "Auto forward"
# Automatic translation.
new "Αυτόματη προώθηση"
# renpy/common/00preferences.rpy:374
old "auto-forward after click"
# Automatic translation.
new "αυτόματη προώθηση μετά από κλικ"
# renpy/common/00preferences.rpy:383
old "automatic move"
# Automatic translation.
new "αυτόματη κίνηση"
# renpy/common/00preferences.rpy:392
old "wait for voice"
# Automatic translation.
new "περιμένετε τη φωνή"
# renpy/common/00preferences.rpy:401
old "voice sustain"
# Automatic translation.
new "διατήρηση της φωνής"
# renpy/common/00preferences.rpy:410
old "self voicing"
# Automatic translation.
new "αυτοφωνητική"
# renpy/common/00preferences.rpy:419
old "self voicing volume drop"
# Automatic translation.
new "πτώση όγκου αυτοφωνήματος"
# renpy/common/00preferences.rpy:427
old "clipboard voicing"
# Automatic translation.
new "εκφώνηση με πρόχειρο"
# renpy/common/00preferences.rpy:436
old "debug voicing"
new "debug voicing"
# renpy/common/00preferences.rpy:445
old "emphasize audio"
# Automatic translation.
new "δώστε έμφαση στον ήχο"
# renpy/common/00preferences.rpy:454
old "rollback side"
# Automatic translation.
new "πλευρά επαναφοράς"
# renpy/common/00preferences.rpy:464
old "gl powersave"
new "gl powersave"
# renpy/common/00preferences.rpy:470
old "gl framerate"
new "gl framerate"
# renpy/common/00preferences.rpy:473
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:476
old "font transform"
# Automatic translation.
new "μετασχηματισμός γραμματοσειράς"
# renpy/common/00preferences.rpy:479
old "font size"
# Automatic translation.
new "μέγεθος γραμματοσειράς"
# renpy/common/00preferences.rpy:487
old "font line spacing"
# Automatic translation.
new "απόσταση γραμμών γραμματοσειράς"
# renpy/common/00preferences.rpy:495
old "system cursor"
# Automatic translation.
new "δρομέας συστήματος"
# renpy/common/00preferences.rpy:504
old "renderer menu"
# Automatic translation.
new "μενού renderer"
# renpy/common/00preferences.rpy:507
old "accessibility menu"
# Automatic translation.
new "μενού προσβασιμότητας"
# renpy/common/00preferences.rpy:510
old "high contrast text"
# Automatic translation.
new "κείμενο υψηλής αντίθεσης"
# renpy/common/00preferences.rpy:519
old "audio when minimized"
# Automatic translation.
new "ήχος όταν ελαχιστοποιείται"
# renpy/common/00preferences.rpy:528
old "audio when unfocused"
# Automatic translation.
new "ήχος όταν δεν είναι εστιασμένος"
# renpy/common/00preferences.rpy:537
old "web cache preload"
# Automatic translation.
new "προφόρτωση της προσωρινής μνήμης web"
# renpy/common/00preferences.rpy:552
old "voice after game menu"
# Automatic translation.
new "φωνή μετά το μενού του παιχνιδιού"
# renpy/common/00preferences.rpy:571
old "main volume"
# Automatic translation.
new "κύριος όγκος"
# renpy/common/00preferences.rpy:572
old "music volume"
# Automatic translation.
new "ένταση της μουσικής"
# renpy/common/00preferences.rpy:573
old "sound volume"
# Automatic translation.
new "ένταση ήχου"
# renpy/common/00preferences.rpy:574
old "voice volume"
# Automatic translation.
new "ένταση φωνής"
# renpy/common/00preferences.rpy:575
old "mute main"
new "mute main"
# renpy/common/00preferences.rpy:576
old "mute music"
# Automatic translation.
new "σίγαση μουσικής"
# renpy/common/00preferences.rpy:577
old "mute sound"
# Automatic translation.
new "σίγαση ήχου"
# renpy/common/00preferences.rpy:578
old "mute voice"
# Automatic translation.
new "σίγαση φωνής"
# renpy/common/00preferences.rpy:579
old "mute all"
# Automatic translation.
new "σίγαση όλων"
# renpy/common/00speechbubble.rpy:344
old "Speech Bubble Editor"
# Automatic translation.
new "Επεξεργαστής φυσαλίδων ομιλίας"
# renpy/common/00speechbubble.rpy:349
old "(hide)"
# Automatic translation.
new "(απόκρυψη)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
# Automatic translation.
new "Συγχρονισμός κατεβάσει."
# renpy/common/00sync.rpy:190
old "Could not connect to the Ren'Py Sync server."
# Automatic translation.
new "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή Ren'Py Sync."
# renpy/common/00sync.rpy:192
old "The Ren'Py Sync server timed out."
# Automatic translation.
new "Ο διακομιστής Ren'Py Sync έπαψε να λειτουργεί."
# renpy/common/00sync.rpy:194
old "An unknown error occurred while connecting to the Ren'Py Sync server."
# Automatic translation.
new "Προέκυψε άγνωστο σφάλμα κατά τη σύνδεση με τον διακομιστή Ren'Py Sync."
# 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."
# Automatic translation.
new "Ο διακομιστής Ren'Py Sync δεν έχει αντίγραφο αυτού του συγχρονισμού. Το αναγνωριστικό συγχρονισμού μπορεί να είναι άκυρο ή να έχει λήξει."
# renpy/common/00sync.rpy:409
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
# Automatic translation.
new "Εισάγετε το αναγνωριστικό συγχρονισμού που δημιουργήσατε.\nΠοτέ μην εισάγετε ένα αναγνωριστικό συγχρονισμού που δεν έχετε δημιουργήσει εσείς."
# renpy/common/00sync.rpy:428
old "The sync ID is not in the correct format."
# Automatic translation.
new "Το αναγνωριστικό συγχρονισμού δεν έχει τη σωστή μορφή."
# renpy/common/00sync.rpy:448
old "The sync could not be decrypted."
# Automatic translation.
new "Ο συγχρονισμός δεν μπόρεσε να αποκρυπτογραφηθεί."
# renpy/common/00sync.rpy:471
old "The sync belongs to a different game."
# Automatic translation.
new "Ο συγχρονισμός ανήκει σε διαφορετικό παιχνίδι."
# renpy/common/00sync.rpy:476
old "The sync contains a file with an invalid name."
# Automatic translation.
new "Ο συγχρονισμός περιέχει ένα αρχείο με μη έγκυρο όνομα."
# renpy/common/00sync.rpy:529
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
# Automatic translation.
new "Αυτό θα μεταφορτώσει τις αποθηκεύσεις σας στον {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nΘέλετε να συνεχίσετε;"
# renpy/common/00sync.rpy:558
old "Enter Sync ID"
# Automatic translation.
new "Εισάγετε το αναγνωριστικό συγχρονισμού"
# renpy/common/00sync.rpy:569
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
# Automatic translation.
new "Αυτό θα επικοινωνήσει με τον διακομιστή συγχρονισμού {a=https://sync.renpy.org}Ren'Py{/a}."
# renpy/common/00sync.rpy:596
old "Sync Success"
# Automatic translation.
new "Επιτυχία συγχρονισμού"
# renpy/common/00sync.rpy:599
old "The Sync ID is:"
# Automatic translation.
new "Το αναγνωριστικό συγχρονισμού είναι:"
# renpy/common/00sync.rpy:605
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}."
# Automatic translation.
new "Μπορείτε να χρησιμοποιήσετε αυτό το αναγνωριστικό για να κατεβάσετε την αποθήκευσή σας σε άλλη συσκευή.\nΑυτός ο συγχρονισμός θα λήξει σε μία ώρα.\nΤο Ren'Py Sync υποστηρίζεται από το {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
# renpy/common/00sync.rpy:631
old "Sync Error"
# Automatic translation.
new "Σφάλμα συγχρονισμού"
+109 -1
View File
@@ -75,7 +75,8 @@ translate greek 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}"
# Automatic translation.
new "\n{color=#cfc}✔ προβλεπόμενη εικόνα (καλή){/color}\n{color=#fcc}✘ απρόβλεπτη εικόνα (κακή){/color}\n{color=#fff}Σύρετε για να μετακινηθείτε.{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
@@ -177,3 +178,110 @@ translate greek strings:
old "jump <label>: jumps to label"
new "jump <label>: μεταπηδάει την εκτέλεση κώδικα στην ετικέτα label"
translate greek strings:
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
# Automatic translation.
new "Διευθυντής διαδραστικότητας (D)"
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
# Automatic translation.
new "Επίμονη προβολή"
# renpy/common/_developer/developer.rpym:59
old "Show Image Load Log (F4)"
# Automatic translation.
new "Εμφάνιση αρχείου καταγραφής φόρτωσης εικόνας (F4)"
# renpy/common/_developer/developer.rpym:62
old "Hide Image Load Log (F4)"
# Automatic translation.
new "Απόκρυψη αρχείου καταγραφής φόρτωσης εικόνας (F4)"
# renpy/common/_developer/developer.rpym:65
old "Image Attributes"
# Automatic translation.
new "Χαρακτηριστικά εικόνας"
# renpy/common/_developer/developer.rpym:70
old "Speech Bubble Editor (Shift+B)"
# Automatic translation.
new "Επεξεργαστής φυσαλίδων ομιλίας (Shift+B)"
# renpy/common/_developer/developer.rpym:97
old "[name] [attributes] (hidden)"
# Automatic translation.
new "[name] [attributes] (κρυφό)"
# renpy/common/_developer/developer.rpym:101
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:162
old "Hide deleted"
# Automatic translation.
new "Απόκρυψη διαγράφεται"
# renpy/common/_developer/developer.rpym:162
old "Show deleted"
# Automatic translation.
new "Εμφάνιση διαγράφεται"
# renpy/common/_developer/developer.rpym:389
old "Type to filter: "
# Automatic translation.
new "Τύπος για φιλτράρισμα: "
# renpy/common/_developer/developer.rpym:507
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
# Automatic translation.
new "Υφές: [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:511
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# Automatic translation.
new "Κρυφή μνήμη εικόνων: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00console.rpy:789
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
# Automatic translation.
new "help: δείξτε αυτή τη βοήθεια\n help <expr>: Εμφάνιση της υπογραφής και της τεκμηρίωσης της <expr>"
# renpy/common/00console.rpy:813
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
# Automatic translation.
new "Η βοήθεια μπορεί να εμφανίζει μη τεκμηριωμένες λειτουργίες. Ελέγξτε ότι η λειτουργία ή η\nκλάση που θέλετε να χρησιμοποιήσετε είναι τεκμηριωμένη.\n\n"
# renpy/common/00console.rpy:854
old "stack: print the return stack"
# Automatic translation.
new "stack: εκτύπωση της στοίβας επιστροφής"
# renpy/common/00console.rpy:908
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"
# Automatic translation.
new "watch <expression>: παρακολουθήστε μια έκφραση python\n watch short: κάνει την αναπαράσταση των ανιχνευόμενων εκφράσεων σύντομη (προεπιλογή)\n watch long: κάνει την αναπαράσταση των ιχνηλατημένων εκφράσεων όπως είναι"
# renpy/common/00console.rpy:1028
old "short: Shorten the representation of objects on the console (default)."
# Automatic translation.
new "short: Συντομεύει την αναπαράσταση των αντικειμένων στην κονσόλα (προεπιλογή)."
# renpy/common/00console.rpy:1032
old "long: Print the full representation of objects on the console."
# Automatic translation.
new "long: Εκτύπωση της πλήρους αναπαράστασης των αντικειμένων στην κονσόλα."
# renpy/common/00console.rpy:1036
old "escape: Enables escaping of unicode symbols in unicode strings."
# Automatic translation.
new "escape: Ενεργοποιεί τη διαφυγή συμβόλων unicode σε συμβολοσειρές unicode."
# renpy/common/00console.rpy:1040
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
# Automatic translation.
new "unescape: Απενεργοποιεί τη διαφυγή των συμβόλων unicode σε συμβολοσειρές unicode και την εκτύπωση ως έχει (προεπιλογή)."
+130
View File
@@ -177,3 +177,133 @@ translate greek strings:
old "Copies the errors.txt file to the clipboard."
new "Αντιγράφει το errors.txt στο clipboard."
translate greek strings:
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Renderer"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Force GL Renderer"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Force ANGLE Renderer"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
# Automatic translation.
new "Εξαναγκασμός GLES Renderer"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Force GL2 Renderer"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
# Automatic translation.
new "Δύναμη ANGLE2 Renderer"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
# Automatic translation.
new "Εξαναγκασμός GLES2 Renderer"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
# Automatic translation.
new "Ενεργοποίηση (Χωρίς λίστα αποκλεισμού)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Powersave"
# renpy/common/00gltest.rpy:173
old "Framerate"
# Automatic translation.
new "Ταχύτητα καρέ"
# renpy/common/00gltest.rpy:177
old "Screen"
# Automatic translation.
new "Οθόνη"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Tearing"
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
# Automatic translation.
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."
# Automatic translation.
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}."
# Automatic translation.
new "Περισσότερες λεπτομέρειες για το πώς να το διορθώσετε αυτό μπορείτε να βρείτε στην τεκμηρίωση {a=[url]}{/a} ."
# renpy/common/00gltest.rpy:281
old "Change render options"
# Automatic translation.
new "Αλλαγή επιλογών απόδοσης"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
# Automatic translation.
new "Πατήστε ή μετακινήστε το '[control!s]' [kind]."
# renpy/common/_errorhandling.rpym:555
old "Open"
# Automatic translation.
new "Ανοίξτε το"
# renpy/common/_errorhandling.rpym:559
old "Copy BBCode"
# Automatic translation.
new "Αντιγραφή κώδικα BBCode"
# renpy/common/_errorhandling.rpym:561
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
# Automatic translation.
new "Αντιγράφει το αρχείο traceback.txt στο πρόχειρο ως BBcode για φόρουμ όπως το https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:563
old "Copy Markdown"
# Automatic translation.
new "Αντιγραφή Markdown"
# renpy/common/_errorhandling.rpym:565
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
# Automatic translation.
new "Αντιγράφει το αρχείο traceback.txt στο πρόχειρο ως Markdown για το Discord."
# renpy/common/_errorhandling.rpym:626
old "Ignores the exception, allowing you to continue."
# Automatic translation.
new "Αγνοεί την εξαίρεση, επιτρέποντάς σας να συνεχίσετε."
# renpy/common/_errorhandling.rpym:637
old "Console"
# Automatic translation.
new "Κονσόλα"
# renpy/common/_errorhandling.rpym:639
old "Opens a console to allow debugging the problem."
# Automatic translation.
new "Ανοίγει μια κονσόλα για να επιτρέψει την αποσφαλμάτωση του προβλήματος."
+268 -100
View File
@@ -3,267 +3,333 @@ translate greek strings:
# gui.rpy:2
old "## Initialization"
new "## Initialization"
# Automatic translation.
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."
# Automatic translation.
new "## Η εντολή offset init προκαλεί την εκτέλεση του κώδικα 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."
# Automatic translation.
new "## Η κλήση του gui.init επαναφέρει τα στυλ στις λογικές προεπιλεγμένες τιμές και ορίζει το πλάτος και το ύψος του παιχνιδιού."
# gui.rpy:21
old "## Colors"
new "## Colors"
# Automatic translation.
new "## Χρώματα"
# gui.rpy:23
old "## The colors of text in the interface."
new "## The colors of text in the interface."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Χρώματα που χρησιμοποιούνται για τα τμήματα των ράβδων που δεν είναι συμπληρωμένα. Αυτά δεν χρησιμοποιούνται άμεσα, αλλά χρησιμοποιούνται κατά την επαναδημιουργία αρχείων εικόνας ράβδων."
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## The colors used for dialogue and menu choice text."
# Automatic translation.
new "## Τα χρώματα που χρησιμοποιούνται για το κείμενο των διαλόγων και των επιλογών μενού."
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Fonts and Font Sizes"
# Automatic translation.
new "## Γραμματοσειρές και μεγέθη γραμματοσειρών"
# gui.rpy:58
old "## The font used for in-game text."
new "## The font used for in-game text."
# Automatic translation.
new "## Η γραμματοσειρά που χρησιμοποιείται για το κείμενο στο παιχνίδι."
# gui.rpy:61
old "## The font used for character names."
new "## The font used for character names."
# Automatic translation.
new "## Η γραμματοσειρά που χρησιμοποιείται για τα ονόματα των χαρακτήρων."
# gui.rpy:64
old "## The font used for out-of-game text."
new "## The font used for out-of-game text."
# Automatic translation.
new "## Η γραμματοσειρά που χρησιμοποιείται για το κείμενο εκτός παιχνιδιού."
# gui.rpy:67
old "## The size of normal dialogue text."
new "## The size of normal dialogue text."
# Automatic translation.
new "## Το μέγεθος του κανονικού κειμένου διαλόγου."
# gui.rpy:70
old "## The size of character names."
new "## The size of character names."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Το μέγεθος των ετικετών στη διεπαφή χρήστη του παιχνιδιού."
# gui.rpy:79
old "## The size of text on the notify screen."
new "## The size of text on the notify screen."
# Automatic translation.
new "## Το μέγεθος του κειμένου στην οθόνη ειδοποίησης."
# gui.rpy:82
old "## The size of the game's title."
new "## The size of the game's title."
# Automatic translation.
new "## Το μέγεθος του τίτλου του παιχνιδιού."
# gui.rpy:86
old "## Main and Game Menus"
new "## Main and Game Menus"
# Automatic translation.
new "## Κύριο μενού και μενού παιχνιδιού"
# gui.rpy:88
old "## The images used for the main and game menus."
new "## The images used for the main and game menus."
# Automatic translation.
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?"
# Automatic translation.
new "## Θα πρέπει να δείξουμε το όνομα και την έκδοση του παιχνιδιού;"
# gui.rpy:96
old "## Dialogue"
new "## Dialogue"
# Automatic translation.
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."
# Automatic translation.
new "## Αυτές οι μεταβλητές ελέγχουν τον τρόπο με τον οποίο ο διάλογος εμφανίζεται στην οθόνη μία γραμμή κάθε φορά."
# gui.rpy:101
old "## The height of the textbox containing dialogue."
new "## The height of the textbox containing dialogue."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Η τοποθέτηση του διαλόγου σε σχέση με το πλαίσιο κειμένου. Αυτά μπορεί να είναι ένας ακέραιος αριθμός εικονοστοιχείων σε σχέση με την αριστερή ή την επάνω πλευρά του πλαισίου κειμένου ή 0,5 στο κέντρο."
# gui.rpy:138
old "## The maximum width of dialogue text, in pixels."
new "## The maximum width of dialogue text, in pixels."
# Automatic translation.
new "## Το μέγιστο πλάτος του κειμένου διαλόγου, σε pixels."
# gui.rpy:141
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
# Automatic translation.
new "## Η οριζόντια στοίχιση του κειμένου διαλόγου. Μπορεί να είναι 0.0 για αριστερή στοίχιση, 0.5 για κεντραρισμένη και 1.0 για δεξιά στοίχιση."
# gui.rpy:146
old "## Buttons"
new "## Buttons"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Το πλάτος και το ύψος ενός κουμπιού, σε pixels. Αν δεν υπάρχει, η 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."
# Automatic translation.
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."
# Automatic translation.
new "## Αν είναι True, η εικόνα φόντου θα είναι σε μορφή πλακιδίων. Αν False, η εικόνα φόντου θα κλιμακώνεται γραμμικά."
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
# Automatic translation.
new "## Η γραμματοσειρά που χρησιμοποιείται από το κουμπί."
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
# Automatic translation.
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."
# Automatic translation.
new "## Αυτές οι μεταβλητές παρακάμπτουν τις ρυθμίσεις για διαφορετικά είδη κουμπιών. Ανατρέξτε στην τεκμηρίωση του gui για τα είδη των διαθέσιμων κουμπιών και για τι χρησιμοποιείται το καθένα."
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
# Automatic translation.
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."
# Automatic translation.
new "## Μπορείτε επίσης να προσθέσετε τις δικές σας προσαρμογές, προσθέτοντας μεταβλητές με τα κατάλληλα ονόματα. Για παράδειγμα, μπορείτε να ξεσχολιάσετε την ακόλουθη γραμμή για να ορίσετε το πλάτος ενός κουμπιού πλοήγησης."
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
# Automatic translation.
new "## Κουμπιά επιλογής"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
# Automatic translation.
new "## Τα κουμπιά επιλογής χρησιμοποιούνται στα μενού του παιχνιδιού."
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
# Automatic translation.
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."
# Automatic translation.
new "## Το κουμπί υποδοχής αρχείων είναι ένα ειδικό είδος κουμπιού. Περιέχει μια εικόνα μικρογραφίας και κείμενο που περιγράφει τα περιεχόμενα της θυρίδας αποθήκευσης. Ένα save slot χρησιμοποιεί αρχεία εικόνας στο gui/button, όπως και τα άλλα είδη κουμπιών."
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
# Automatic translation.
new "## Το κουμπί save slot."
# 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."
# Automatic translation.
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."
# Automatic translation.
new "## Ο αριθμός των στηλών και των γραμμών στο πλέγμα των θέσεων αποθήκευσης."
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Η θέση της αριστερής πλευράς των κουμπιών πλοήγησης, σε σχέση με την αριστερή πλευρά της οθόνης."
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
# Automatic translation.
new "## Η κατακόρυφη θέση της ένδειξης παράλειψης."
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
# Automatic translation.
new "## Η κάθετη θέση της οθόνης ειδοποίησης."
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
# Automatic translation.
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."
# Automatic translation.
new "## Κουμπιά στην ενότητα πλοήγησης του κύριου μενού και του μενού παιχνιδιού."
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
# Automatic translation.
new "## Ελέγχει την απόσταση μεταξύ των προτιμήσεων."
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
# Automatic translation.
new "## Ελέγχει την απόσταση μεταξύ των κουμπιών προτίμησης."
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
# Automatic translation.
new "## Η απόσταση μεταξύ των κουμπιών σελίδας αρχείων."
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
# Automatic translation.
new "## Η απόσταση μεταξύ των θυρίδων αρχείων."
# gui.rpy:277
old "## Frames"
@@ -271,135 +337,168 @@ translate greek strings:
# 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."
# Automatic translation.
new "## Αυτές οι μεταβλητές ελέγχουν την εμφάνιση των πλαισίων που μπορούν να περιέχουν στοιχεία διεπαφής χρήστη όταν δεν υπάρχει επικάλυψη ή παράθυρο."
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Το πλαίσιο που χρησιμοποιείται ως μέρος της οθόνης ειδοποίησης."
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
# Automatic translation.
new "## Θα πρέπει τα φόντα των πλαισίων να τοποθετούνται σε κεραμίδια;"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Το προεπιλεγμένο γραφικό περιβάλλον χρησιμοποιεί μόνο ρυθμιστικά και κάθετες γραμμές κύλισης. Όλες οι άλλες μπάρες χρησιμοποιούνται μόνο στον κώδικα που γράφει ο δημιουργός."
# 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."
# Automatic translation.
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."
# Automatic translation.
new "## True αν οι εικόνες της μπάρας θα πρέπει να είναι σε κεραμίδια. False αν πρέπει να κλιμακώνονται γραμμικά."
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
# Automatic translation.
new "## Οριζόντια όρια."
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
# Automatic translation.
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."
# Automatic translation.
new "## Τι να κάνετε με μη κυλιόμενες γραμμές κύλισης στο gui. Το \"hide\" τις κρύβει, ενώ το \"None\" τις εμφανίζει."
# gui.rpy:331
old "## History"
new "## History"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Το ύψος μιας καταχώρησης στην οθόνη ιστορικού, ή Κανένα για να κάνετε το ύψος μεταβλητό με κόστος την απόδοση."
# 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."
# Automatic translation.
new "## Η θέση, το πλάτος και η στοίχιση της ετικέτας που δίνει το όνομα του χαρακτήρα που μιλάει."
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
# Automatic translation.
new "## Η θέση, το πλάτος και η στοίχιση του κειμένου διαλόγου."
# gui.rpy:356
old "## NVL-Mode"
new "## NVL-Mode"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Η απόσταση μεταξύ των καταχωρήσεων της λειτουργίας NVL όταν το 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.)"
# Automatic translation.
new "## Η θέση, το πλάτος και η στοίχιση του κειμένου nvl_thought (το κείμενο που λέει ο χαρακτήρας nvl_narrator)."
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
# Automatic translation.
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."
# Automatic translation.
new "## Αυτό αυξάνει το μέγεθος των γρήγορων κουμπιών για να είναι πιο εύκολο να τα αγγίξετε σε tablet και τηλέφωνα."
# 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."
# Automatic translation.
new "## Αυτό αλλάζει το μέγεθος και την απόσταση μεταξύ των διαφόρων στοιχείων του γραφικού περιβάλλοντος για να διασφαλίσει ότι είναι εύκολα ορατά στα τηλέφωνα."
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
# Automatic translation.
new "## Μεγέθη γραμματοσειράς."
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
# Automatic translation.
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."
# Automatic translation.
new "## Αλλαγή του μεγέθους και της απόστασης των στοιχείων στο μενού του παιχνιδιού."
# gui.rpy:436
old "## File button layout."
new "## File button layout."
# Automatic translation.
new "## Διάταξη κουμπιών αρχείων."
# gui.rpy:440
old "## NVL-mode."
@@ -407,5 +506,74 @@ translate greek strings:
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
# Automatic translation.
new "## Γρήγορα κουμπιά."
translate greek strings:
# 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."
# Automatic translation.
new "## Η εντολή init offset προκαλεί την εκτέλεση των εντολών αρχικοποίησης σε αυτό το αρχείο πριν από τις εντολές init σε οποιοδήποτε άλλο αρχείο."
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
# Automatic translation.
new "## Ενεργοποίηση ελέγχων για άκυρες ή ασταθείς ιδιότητες σε οθόνες ή μετασχηματισμούς"
# gui/game/gui.rpy:19
old "## GUI Configuration Variables"
# Automatic translation.
new "## Μεταβλητές παραμέτρων GUI"
# gui/game/gui.rpy:167
old "## The color of button text in various states."
# Automatic translation.
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)."
# Automatic translation.
new "## Η οριζόντια στοίχιση του κειμένου του κουμπιού. (0.0 είναι αριστερά, 0.5 είναι κέντρο, 1.0 είναι δεξιά)."
# gui/game/gui.rpy:278
old "## The position of the main menu text."
# Automatic translation.
new "## Η θέση του κειμένου του κύριου μενού."
# gui/game/gui.rpy:287
old "## Generic frames."
# Automatic translation.
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."
# Automatic translation.
new "## Το προεπιλεγμένο γραφικό περιβάλλον χρησιμοποιεί μόνο ρυθμιστικά και κάθετες γραμμές κύλισης. Όλες οι άλλες μπάρες χρησιμοποιούνται μόνο σε οθόνες που έχουν γραφτεί από τον δημιουργό."
# 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."
# Automatic translation.
new "## Ο μέγιστος αριθμός καταχωρήσεων λειτουργίας NVL που θα εμφανίζει η Ren'Py. Όταν πρόκειται να εμφανιστούν περισσότερες εγγραφές από αυτό το όριο, η παλαιότερη εγγραφή θα αφαιρεθεί."
# gui/game/gui.rpy:405
old "## Localization"
# Automatic translation.
new "## Εντοπισμός"
# 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"
# Automatic translation.
new "## Αυτό ελέγχει πού επιτρέπεται η αλλαγή γραμμής. Η προεπιλογή είναι κατάλληλη για τις περισσότερες γλώσσες. Μια λίστα με τις διαθέσιμες τιμές μπορείτε να βρείτε στη διεύθυνση https://www.renpy.org/doc/html/style_properties.html#style-property-language."
# gui/game/gui.rpy:415
old "## Mobile devices"
# Automatic translation.
new "## Κινητές συσκευές"
# gui/game/gui.rpy:446
old "## Change the size and spacing of various things."
# Automatic translation.
new "## Αλλαγή του μεγέθους και του διαστήματος διαφόρων πραγμάτων."
File diff suppressed because it is too large Load Diff
+115 -44
View File
@@ -3,59 +3,73 @@ translate greek 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."
# Automatic translation.
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."
# Automatic translation.
new "## Οι γραμμές που αρχίζουν με δύο σημάδια '#' είναι σχόλια, και δεν πρέπει να τις ξεσχολιάσετε. Οι γραμμές που αρχίζουν με ένα μόνο σημάδι '#' είναι σχολιασμένος κώδικας, και μπορεί να θέλετε να τις ξεσχολιάσετε όταν χρειάζεται."
# options.rpy:10
old "## Basics"
new "## Basics"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Το _() που περιβάλλει το αλφαριθμητικό το χαρακτηρίζει ως επιλέξιμο για μετάφραση."
# options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 Default GUI"
# Automatic translation.
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."
# Automatic translation.
new "## Καθορίζει αν ο τίτλος που δόθηκε παραπάνω εμφανίζεται στην οθόνη του κύριου μενού. Ορίστε την τιμή False για να αποκρύψετε τον τίτλο."
# options.rpy:26
old "## The version of the game."
new "## The version of the game."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Ένα σύντομο όνομα για το παιχνίδι που χρησιμοποιείται για τα εκτελέσιμα αρχεία και τους καταλόγους στην ενσωματωμένη διανομή. Αυτό πρέπει να είναι μόνο ASCII και δεν πρέπει να περιέχει κενά, άνω και κάτω τελεία ή άνω τελεία."
# options.rpy:44
old "## Sounds and music"
new "## Sounds and music"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Ξεσχολιάστε την ακόλουθη γραμμή για να ορίσετε ένα αρχείο ήχου που θα αναπαράγεται όταν ο παίκτης βρίσκεται στο κύριο μενού. Αυτό το αρχείο θα συνεχίσει να παίζει κατά τη διάρκεια του παιχνιδιού, μέχρι να σταματήσει ή να αναπαραχθεί άλλο αρχείο."
# options.rpy:69
old "## Transitions"
@@ -63,59 +77,73 @@ translate greek strings:
# 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."
# Automatic translation.
new "## Αυτές οι μεταβλητές ορίζουν τις μεταβάσεις που χρησιμοποιούνται όταν συμβαίνουν ορισμένα γεγονότα. Κάθε μεταβλητή θα πρέπει να οριστεί σε μια μετάβαση ή σε None για να υποδείξει ότι δεν πρέπει να χρησιμοποιηθεί καμία μετάβαση."
# options.rpy:75
old "## Entering or exiting the game menu."
new "## Entering or exiting the game menu."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Δεν υπάρχει μεταβλητή για τον καθορισμό της μετάβασης που χρησιμοποιείται κατά την έναρξη του παιχνιδιού. Αντ' αυτού, χρησιμοποιήστε μια δήλωση with μετά την εμφάνιση της αρχικής σκηνής."
# options.rpy:96
old "## Window management"
new "## Window management"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
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"
# Automatic translation.
new "## Μεταβάσεις που χρησιμοποιούνται για την εμφάνιση και απόκρυψη του παραθύρου διαλόγου"
# options.rpy:115
old "## Preference defaults"
new "## Preference defaults"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Η προεπιλεγμένη καθυστέρηση αυτόματης προώθησης. Μεγαλύτεροι αριθμοί οδηγούν σε μεγαλύτερες αναμονές, με το 0 έως 30 να είναι το έγκυρο εύρος."
# options.rpy:129
old "## Save directory"
new "## Save directory"
# Automatic translation.
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:"
# Automatic translation.
new "## Ελέγχει το συγκεκριμένο για την πλατφόρμα μέρος στο οποίο το Ren'Py θα τοποθετεί τα αρχεία αποθήκευσης για αυτό το παιχνίδι. Τα αρχεία αποθήκευσης θα τοποθετούνται στο:"
# options.rpy:134
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
@@ -131,65 +159,108 @@ translate greek 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."
# Automatic translation.
new "## Αυτό γενικά δεν θα πρέπει να αλλάζει, και αν αλλάξει, θα πρέπει πάντα να είναι μια κυριολεκτική συμβολοσειρά, όχι μια έκφραση."
# options.rpy:146
old "## Icon ########################################################################'"
new "## Icon ########################################################################'"
# Automatic translation.
new "## Εικονίδιο ########################################################################'"
# options.rpy:148
old "## The icon displayed on the taskbar or dock."
new "## The icon displayed on the taskbar or dock."
# Automatic translation.
new "## Το εικονίδιο που εμφανίζεται στη γραμμή εργασιών ή στο dock."
# options.rpy:153
old "## Build configuration"
new "## Build configuration"
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Οι ακόλουθες συναρτήσεις δέχονται πρότυπα αρχείων. Τα μοτίβα αρχείων δεν διαχωρίζουν την πεζότητα και αντιστοιχίζονται με τη διαδρομή σχετικά με τον βασικό κατάλογο, με και χωρίς ένα αρχικό /. Αν ταιριάζουν πολλά μοτίβα, χρησιμοποιείται το πρώτο."
# options.rpy:165
old "## In a pattern:"
new "## In a pattern:"
# Automatic translation.
new "## Σε ένα μοτίβο:"
# options.rpy:167
old "## / is the directory separator."
new "## / is the directory separator."
# Automatic translation.
new "## Το / είναι το διαχωριστικό του καταλόγου."
# options.rpy:169
old "## * matches all characters, except the directory separator."
new "## * matches all characters, except the directory separator."
# Automatic translation.
new "## * ταιριάζει με όλους τους χαρακτήρες, εκτός από το διαχωριστικό καταλόγου."
# options.rpy:171
old "## ** matches all characters, including the directory separator."
new "## ** matches all characters, including the directory separator."
# Automatic translation.
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."
# Automatic translation.
new "## Για παράδειγμα, το \"*.txt\" ταιριάζει με αρχεία txt στον βασικό κατάλογο, το \"game/**.ogg\" ταιριάζει με αρχεία ogg στον κατάλογο game ή σε οποιονδήποτε υποκατάλογό του και το \"**.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."
# Automatic translation.
new "## Ταξινομήστε τα αρχεία ως None για να τα αποκλείσετε από τις ενσωματωμένες διανομές."
# options.rpy:185
old "## To archive files, classify them as 'archive'."
new "## To archive files, classify them as 'archive'."
# Automatic translation.
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."
# Automatic translation.
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."
# Automatic translation.
new "## Για τη λήψη αρχείων επέκτασης και την πραγματοποίηση αγορών εντός της εφαρμογής απαιτείται κλειδί άδειας χρήσης του Google Play. Μπορείτε να το βρείτε στη σελίδα \"Services & APIs\" της κονσόλας προγραμματιστών του Google Play."
# 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."
# Automatic translation.
new "## Το όνομα χρήστη και το όνομα έργου που σχετίζονται με ένα έργο itch.io, χωρισμένα με κάθετο."
translate greek strings:
# 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."
# Automatic translation.
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."
# Automatic translation.
new "## Αυτές οι τρεις μεταβλητές ελέγχουν, μεταξύ άλλων, ποιοι μείκτες εμφανίζονται στον παίκτη από προεπιλογή. Η ρύθμιση μιας από αυτές σε False θα αποκρύψει τον αντίστοιχο μίκτη."
# gui/game/options.rpy:82
old "## Between screens of the game menu."
# Automatic translation.
new "## Μεταξύ των οθονών του μενού του παιχνιδιού."
# gui/game/options.rpy:152
old "## Icon"
new "## Icon"
# 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\"."
# Automatic translation.
new "## Για την πραγματοποίηση αγορών εντός εφαρμογής απαιτείται κλειδί άδειας χρήσης του Google Play. Μπορείτε να το βρείτε στην κονσόλα προγραμματιστών του Google Play, στην ενότητα \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
+376 -128
View File
@@ -7,7 +7,8 @@ translate greek strings:
# screens.rpy:87
old "## In-game screens"
new "## In-game screens"
# Automatic translation.
new "## Οθόνες στο παιχνίδι"
# screens.rpy:91
old "## Say screen"
@@ -15,11 +16,13 @@ translate greek strings:
# screens.rpy:93
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 "## 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.)"
# Automatic translation.
new "## Η οθόνη say χρησιμοποιείται για την εμφάνιση διαλόγου στον παίκτη. Λαμβάνει δύο παραμέτρους, who και what, οι οποίες είναι το όνομα του χαρακτήρα που μιλάει και το κείμενο που θα εμφανιστεί, αντίστοιχα. (Η παράμετρος who μπορεί να είναι None αν δεν έχει δοθεί όνομα)."
# screens.rpy:98
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
new "## 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."
# Automatic translation.
new "## Αυτή η οθόνη πρέπει να δημιουργήσει ένα text displayable με id \"what\", καθώς η Ren'Py το χρησιμοποιεί για να διαχειρίζεται την εμφάνιση κειμένου. Μπορεί επίσης να δημιουργήσει displayables με id \"who\" και id \"window\" για να εφαρμόσει ιδιότητες στυλ."
# screens.rpy:102
old "## https://www.renpy.org/doc/html/screen_special.html#say"
@@ -27,15 +30,18 @@ translate greek strings:
# screens.rpy:169
old "## Input screen"
new "## Input screen"
# Automatic translation.
new "## Οθόνη εισόδου"
# screens.rpy:171
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
# Automatic translation.
new "## Αυτή η οθόνη χρησιμοποιείται για την εμφάνιση του renpy.input. Η παράμετρος prompt χρησιμοποιείται για να περάσετε μια προτροπή κειμένου."
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
# Automatic translation.
new "## Αυτή η οθόνη πρέπει να δημιουργήσει ένα displayable εισόδου με id \"input\" για να δέχεται τις διάφορες παραμέτρους εισόδου."
# screens.rpy:177
old "## http://www.renpy.org/doc/html/screen_special.html#input"
@@ -43,11 +49,13 @@ translate greek strings:
# screens.rpy:205
old "## Choice screen"
new "## Choice screen"
# Automatic translation.
new "## Οθόνη επιλογής"
# screens.rpy:207
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
new "## 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."
# Automatic translation.
new "## Αυτή η οθόνη χρησιμοποιείται για την εμφάνιση των επιλογών εντός του παιχνιδιού που παρουσιάζονται από τη δήλωση του μενού. Η μία παράμετρος, τα αντικείμενα, είναι μια λίστα αντικειμένων, το καθένα με πεδία λεζάντας και δράσης."
# screens.rpy:211
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
@@ -55,15 +63,18 @@ translate greek strings:
# screens.rpy:221
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
# Automatic translation.
new "## Όταν αυτό είναι αληθές, οι λεζάντες του μενού θα εκφωνούνται από τον αφηγητή. Όταν είναι false, οι λεζάντες μενού θα εμφανίζονται ως κενά κουμπιά."
# screens.rpy:244
old "## Quick Menu screen"
new "## Quick Menu screen"
# Automatic translation.
new "## Οθόνη γρήγορου μενού"
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
# Automatic translation.
new "## Το γρήγορο μενού εμφανίζεται στο παιχνίδι για να παρέχει εύκολη πρόσβαση στα μενού εκτός παιχνιδιού."
# screens.rpy:261
old "Back"
@@ -71,11 +82,13 @@ translate greek strings:
# screens.rpy:262
old "History"
new "History"
# Automatic translation.
new "Ιστορία"
# screens.rpy:263
old "Skip"
new "Skip"
# Automatic translation.
new "Παράλειψη"
# screens.rpy:264
old "Auto"
@@ -83,7 +96,8 @@ translate greek strings:
# screens.rpy:265
old "Save"
new "Save"
# Automatic translation.
new "Αποθήκευση"
# screens.rpy:266
old "Q.Save"
@@ -95,39 +109,48 @@ translate greek strings:
# screens.rpy:268
old "Prefs"
new "Prefs"
# Automatic translation.
new "Προτιμήσεις"
# screens.rpy:271
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
# Automatic translation.
new "## Αυτός ο κώδικας διασφαλίζει ότι η οθόνη quick_menu εμφανίζεται στο παιχνίδι, όποτε ο παίκτης δεν έχει αποκρύψει ρητά τη διεπαφή."
# screens.rpy:291
old "## Navigation screen"
new "## Navigation screen"
# Automatic translation.
new "## Οθόνη πλοήγησης"
# screens.rpy:293
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
# Automatic translation.
new "## Αυτή η οθόνη περιλαμβάνεται στο κύριο μενού και στο μενού του παιχνιδιού και παρέχει πλοήγηση σε άλλα μενού και για την εκκίνηση του παιχνιδιού."
# screens.rpy:308
old "Start"
new "Start"
# Automatic translation.
new "Έναρξη"
# screens.rpy:316
old "Load"
new "Load"
# Automatic translation.
new "Φορτίο"
# screens.rpy:318
old "Preferences"
new "Preferences"
# Automatic translation.
new "Προτιμήσεις"
# screens.rpy:322
old "End Replay"
new "End Replay"
# Automatic translation.
new "Τέλος επανάληψης"
# screens.rpy:326
old "Main Menu"
new "Main Menu"
# Automatic translation.
new "Κύριο μενού"
# screens.rpy:328
old "About"
@@ -135,15 +158,18 @@ translate greek strings:
# screens.rpy:332
old "## Help isn't necessary or relevant to mobile devices."
new "## Help isn't necessary or relevant to mobile devices."
# Automatic translation.
new "## Η βοήθεια δεν είναι απαραίτητη ή σχετική με τις κινητές συσκευές."
# screens.rpy:333
old "Help"
new "Help"
# Automatic translation.
new "Βοήθεια"
# screens.rpy:335
old "## The quit button is banned on iOS and unnecessary on Android."
new "## The quit button is banned on iOS and unnecessary on Android."
# Automatic translation.
new "## Το κουμπί quit είναι απαγορευμένο στο iOS και περιττό στο Android."
# screens.rpy:336
old "Quit"
@@ -151,11 +177,13 @@ translate greek strings:
# screens.rpy:350
old "## Main Menu screen"
new "## Main Menu screen"
# Automatic translation.
new "## Οθόνη κύριου μενού"
# screens.rpy:352
old "## Used to display the main menu when Ren'Py starts."
new "## Used to display the main menu when Ren'Py starts."
# Automatic translation.
new "## Χρησιμοποιείται για την εμφάνιση του κύριου μενού κατά την εκκίνηση του Ren'Py."
# screens.rpy:354
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
@@ -163,19 +191,18 @@ translate greek strings:
# screens.rpy:369
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
# Automatic translation.
new "## Η δήλωση use περιλαμβάνει μια άλλη οθόνη μέσα σε αυτήν εδώ. Τα πραγματικά περιεχόμενα του κύριου μενού βρίσκονται στην οθόνη πλοήγησης."
# screens.rpy:413
old "## Game Menu screen"
new "## Game Menu screen"
# Automatic translation.
new "## Οθόνη μενού παιχνιδιού"
# screens.rpy:415
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 "## 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."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
# Automatic translation.
new "## Εδώ παρουσιάζεται η βασική κοινή δομή της οθόνης του μενού ενός παιχνιδιού. Καλείται με τον τίτλο της οθόνης και εμφανίζει το φόντο, τον τίτλο και την πλοήγηση."
# screens.rpy:476
old "Return"
@@ -183,43 +210,53 @@ translate greek strings:
# screens.rpy:539
old "## About screen"
new "## About screen"
# Automatic translation.
new "## Σχετικά με την οθόνη"
# screens.rpy:541
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## This screen gives credit and copyright information about the game and Ren'Py."
# Automatic translation.
new "## Αυτή η οθόνη δίνει πληροφορίες για τα πιστωτικά και τα πνευματικά δικαιώματα του παιχνιδιού και του Ren'Py."
# screens.rpy:544
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
# Automatic translation.
new "## Δεν υπάρχει τίποτα το ιδιαίτερο σε αυτή την οθόνη, και ως εκ τούτου χρησιμεύει επίσης ως παράδειγμα για το πώς να φτιάξετε μια προσαρμοσμένη οθόνη."
# screens.rpy:551
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
new "## 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."
# Automatic translation.
new "## Αυτή η δήλωση χρήσης περιλαμβάνει την οθόνη game_menu μέσα σε αυτήν. Το παιδί vbox περιλαμβάνεται στη συνέχεια μέσα στο παράθυρο προβολής μέσα στην οθόνη game_menu."
# screens.rpy:561
old "Version [config.version!t]\n"
new "Version [config.version!t]\n"
# Automatic translation.
new "Έκδοση [config.version!t]\n"
# screens.rpy:563
old "## gui.about is usually set in options.rpy."
new "## gui.about is usually set in options.rpy."
# Automatic translation.
new "## Το gui.about συνήθως ορίζεται στο options.rpy."
# screens.rpy:567
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
# Automatic translation.
new "Φτιαγμένο με {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only] .\n\n[renpy.license!t]"
# screens.rpy:570
old "## This is redefined in options.rpy to add text to the about screen."
new "## This is redefined in options.rpy to add text to the about screen."
# Automatic translation.
new "## Αυτό επαναπροσδιορίζεται στο options.rpy για να προσθέσει κείμενο στην οθόνη about."
# screens.rpy:582
old "## Load and Save screens"
new "## Load and Save screens"
# Automatic translation.
new "## Οθόνες φόρτωσης και αποθήκευσης"
# screens.rpy:584
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 "## 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."
# Automatic translation.
new "## Αυτές οι οθόνες είναι υπεύθυνες για να επιτρέπουν στον παίκτη να αποθηκεύει το παιχνίδι και να το φορτώνει ξανά. Δεδομένου ότι μοιράζονται σχεδόν τα πάντα από κοινού, και οι δύο υλοποιούνται με όρους μιας τρίτης οθόνης, της file_slots."
# screens.rpy:588
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
@@ -227,23 +264,28 @@ translate greek strings:
# screens.rpy:607
old "Page {}"
new "Page {}"
# Automatic translation.
new "Σελίδα {}"
# screens.rpy:607
old "Automatic saves"
new "Automatic saves"
# Automatic translation.
new "Αυτόματη αποθήκευση"
# screens.rpy:607
old "Quick saves"
new "Quick saves"
# Automatic translation.
new "Γρήγορες αποταμιεύσεις"
# screens.rpy:613
old "## This ensures the input will get the enter event before any of the buttons do."
new "## This ensures the input will get the enter event before any of the buttons do."
# Automatic translation.
new "## Αυτό εξασφαλίζει ότι η είσοδος θα λάβει το συμβάν enter πριν από οποιοδήποτε από τα κουμπιά."
# screens.rpy:629
old "## The grid of file slots."
new "## The grid of file slots."
# Automatic translation.
new "## Το πλέγμα των υποδοχών αρχείων."
# screens.rpy:649
old "{#file_time}%A, %B %d %Y, %H:%M"
@@ -251,11 +293,13 @@ translate greek strings:
# screens.rpy:649
old "empty slot"
new "empty slot"
# Automatic translation.
new "κενή υποδοχή"
# screens.rpy:657
old "## Buttons to access other pages."
new "## Buttons to access other pages."
# Automatic translation.
new "## Κουμπιά για πρόσβαση σε άλλες σελίδες."
# screens.rpy:666
old "<"
@@ -275,11 +319,13 @@ translate greek strings:
# screens.rpy:711
old "## Preferences screen"
new "## Preferences screen"
# Automatic translation.
new "## Οθόνη προτιμήσεων"
# screens.rpy:713
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## The preferences screen allows the player to configure the game to better suit themselves."
# Automatic translation.
new "## Η οθόνη προτιμήσεων επιτρέπει στον παίκτη να ρυθμίσει το παιχνίδι ώστε να ταιριάζει καλύτερα στον εαυτό του."
# screens.rpy:716
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
@@ -299,7 +345,8 @@ translate greek strings:
# screens.rpy:744
old "Rollback Side"
new "Rollback Side"
# Automatic translation.
new "Πλευρά Rollback"
# screens.rpy:745
old "Disable"
@@ -307,39 +354,48 @@ translate greek strings:
# screens.rpy:746
old "Left"
new "Left"
# Automatic translation.
new "Αριστερά"
# screens.rpy:747
old "Right"
new "Right"
# Automatic translation.
new "Δεξιά"
# screens.rpy:752
old "Unseen Text"
new "Unseen Text"
# Automatic translation.
new "Αθέατο κείμενο"
# screens.rpy:753
old "After Choices"
new "After Choices"
# Automatic translation.
new "Μετά τις επιλογές"
# screens.rpy:754
old "Transitions"
new "Transitions"
# Automatic translation.
new "Μεταβάσεις"
# screens.rpy:756
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
# Automatic translation.
new "## Εδώ μπορούν να προστεθούν επιπλέον vboxes τύπου \"radio_pref\" ή \"check_pref\", για να προσθέσετε επιπλέον προτιμήσεις που καθορίζονται από τον δημιουργό."
# screens.rpy:767
old "Text Speed"
new "Text Speed"
# Automatic translation.
new "Ταχύτητα κειμένου"
# screens.rpy:771
old "Auto-Forward Time"
new "Auto-Forward Time"
# Automatic translation.
new "Χρόνος αυτόματης προώθησης"
# screens.rpy:778
old "Music Volume"
new "Music Volume"
# Automatic translation.
new "Ένταση μουσικής"
# screens.rpy:785
old "Sound Volume"
@@ -347,23 +403,28 @@ translate greek strings:
# screens.rpy:791
old "Test"
new "Test"
# Automatic translation.
new "Δοκιμή"
# screens.rpy:795
old "Voice Volume"
new "Voice Volume"
# Automatic translation.
new "Ένταση φωνής"
# screens.rpy:806
old "Mute All"
new "Mute All"
# Automatic translation.
new "Σίγαση όλων"
# screens.rpy:882
old "## History screen"
new "## History screen"
# Automatic translation.
new "## Οθόνη ιστορίας"
# screens.rpy:884
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 "## 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."
# Automatic translation.
new "## Αυτή είναι μια οθόνη που εμφανίζει το ιστορικό των διαλόγων στον παίκτη. Αν και δεν υπάρχει κάτι ιδιαίτερο σε αυτή την οθόνη, πρέπει να έχει πρόσβαση στο ιστορικό διαλόγων που είναι αποθηκευμένο στην _history_list."
# screens.rpy:888
old "## https://www.renpy.org/doc/html/history.html"
@@ -371,35 +432,43 @@ translate greek strings:
# screens.rpy:894
old "## Avoid predicting this screen, as it can be very large."
new "## Avoid predicting this screen, as it can be very large."
# Automatic translation.
new "## Αποφύγετε την πρόβλεψη αυτής της οθόνης, καθώς μπορεί να είναι πολύ μεγάλη."
# screens.rpy:905
old "## This lays things out properly if history_height is None."
new "## This lays things out properly if history_height is None."
# Automatic translation.
new "## Αυτό τοποθετεί τα πράγματα σωστά αν το ύψος ιστορίας δεν είναι None."
# screens.rpy:914
old "## Take the color of the who text from the Character, if set."
new "## Take the color of the who text from the Character, if set."
# Automatic translation.
new "## Πάρτε το χρώμα του κειμένου who από το Character, αν έχει οριστεί."
# screens.rpy:921
old "The dialogue history is empty."
new "The dialogue history is empty."
# Automatic translation.
new "Το ιστορικό διαλόγου είναι κενό."
# screens.rpy:965
old "## Help screen"
new "## Help screen"
# Automatic translation.
new "## Οθόνη βοήθειας"
# screens.rpy:967
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 "## 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."
# Automatic translation.
new "## Μια οθόνη που δίνει πληροφορίες σχετικά με τις δεσμεύσεις πλήκτρων και ποντικιού. Χρησιμοποιεί άλλες οθόνες (keyboard_help, mouse_help και gamepad_help) για να εμφανίσει την πραγματική βοήθεια."
# screens.rpy:986
old "Keyboard"
new "Keyboard"
# Automatic translation.
new "Πληκτρολόγιο"
# screens.rpy:987
old "Mouse"
new "Mouse"
# Automatic translation.
new "Ποντίκι"
# screens.rpy:990
old "Gamepad"
@@ -407,35 +476,43 @@ translate greek strings:
# screens.rpy:1003
old "Enter"
new "Enter"
# Automatic translation.
new "Εισάγετε το"
# screens.rpy:1004
old "Advances dialogue and activates the interface."
new "Advances dialogue and activates the interface."
# Automatic translation.
new "Προωθεί το διάλογο και ενεργοποιεί τη διεπαφή."
# screens.rpy:1007
old "Space"
new "Space"
# Automatic translation.
new "Διάστημα"
# screens.rpy:1008
old "Advances dialogue without selecting choices."
new "Advances dialogue without selecting choices."
# Automatic translation.
new "Προχωράει το διάλογο χωρίς να επιλέγει επιλογές."
# screens.rpy:1011
old "Arrow Keys"
new "Arrow Keys"
# Automatic translation.
new "Πλήκτρα βέλους"
# screens.rpy:1012
old "Navigate the interface."
new "Navigate the interface."
# Automatic translation.
new "Πλοηγηθείτε στη διεπαφή."
# screens.rpy:1015
old "Escape"
new "Escape"
# Automatic translation.
new "Απόδραση"
# screens.rpy:1016
old "Accesses the game menu."
new "Accesses the game menu."
# Automatic translation.
new "Πρόσβαση στο μενού του παιχνιδιού."
# screens.rpy:1019
old "Ctrl"
@@ -443,7 +520,8 @@ translate greek strings:
# screens.rpy:1020
old "Skips dialogue while held down."
new "Skips dialogue while held down."
# Automatic translation.
new "Παραλείπει το διάλογο όσο το κρατάτε πατημένο."
# screens.rpy:1023
old "Tab"
@@ -451,91 +529,113 @@ translate greek strings:
# screens.rpy:1024
old "Toggles dialogue skipping."
new "Toggles dialogue skipping."
# Automatic translation.
new "Ενεργοποιεί την παράλειψη διαλόγου."
# screens.rpy:1027
old "Page Up"
new "Page Up"
# Automatic translation.
new "Σελίδα επάνω"
# screens.rpy:1028
old "Rolls back to earlier dialogue."
new "Rolls back to earlier dialogue."
# Automatic translation.
new "Επιστρέφει σε προηγούμενο διάλογο."
# screens.rpy:1031
old "Page Down"
new "Page Down"
# Automatic translation.
new "Σελίδα κάτω"
# screens.rpy:1032
old "Rolls forward to later dialogue."
new "Rolls forward to later dialogue."
# Automatic translation.
new "Προχωράει προς τα εμπρός για τον μετέπειτα διάλογο."
# screens.rpy:1036
old "Hides the user interface."
new "Hides the user interface."
# Automatic translation.
new "Κρύβει το περιβάλλον εργασίας χρήστη."
# screens.rpy:1040
old "Takes a screenshot."
new "Takes a screenshot."
# Automatic translation.
new "Τραβάει ένα στιγμιότυπο οθόνης."
# screens.rpy:1044
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
# Automatic translation.
new "Εναλλαγή βοηθητικών {a=https://www.renpy.org/l/voicing}αυτοφωνημάτων{/a}."
# screens.rpy:1050
old "Left Click"
new "Left Click"
# Automatic translation.
new "Αριστερό κλικ"
# screens.rpy:1054
old "Middle Click"
new "Middle Click"
# Automatic translation.
new "Μεσαίο κλικ"
# screens.rpy:1058
old "Right Click"
new "Right Click"
# Automatic translation.
new "Δεξί κλικ"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Mouse Wheel Up\nClick Rollback Side"
old "Mouse Wheel Up"
# Automatic translation.
new "Τροχός ποντικιού επάνω\nΚάντε κλικ στο Rollback Side"
# screens.rpy:1066
old "Mouse Wheel Down"
new "Mouse Wheel Down"
# Automatic translation.
new "Τροχός του ποντικιού προς τα κάτω"
# screens.rpy:1073
old "Right Trigger\nA/Bottom Button"
new "Right Trigger\nA/Bottom Button"
# Automatic translation.
new "Δεξί σκανδάλη\nA/κάτω κουμπί"
# screens.rpy:1074
old "Advance dialogue and activates the interface."
new "Advance dialogue and activates the interface."
# Automatic translation.
new "Προώθηση διαλόγου και ενεργοποίηση της διεπαφής."
# screens.rpy:1078
old "Roll back to earlier dialogue."
new "Roll back to earlier dialogue."
# Automatic translation.
new "Επιστροφή σε προηγούμενο διάλογο."
# screens.rpy:1081
old "Right Shoulder"
new "Right Shoulder"
# Automatic translation.
new "Δεξιός ώμος"
# screens.rpy:1082
old "Roll forward to later dialogue."
new "Roll forward to later dialogue."
# Automatic translation.
new "Προχωρήστε σε μεταγενέστερο διάλογο."
# screens.rpy:1085
old "D-Pad, Sticks"
new "D-Pad, Sticks"
# Automatic translation.
new "D-Pad, μπαστούνια"
# screens.rpy:1089
old "Start, Guide"
new "Start, Guide"
# Automatic translation.
new "Έναρξη, Οδηγός"
# screens.rpy:1090
old "Access the game menu."
new "Access the game menu."
# Automatic translation.
new "Πρόσβαση στο μενού του παιχνιδιού."
# screens.rpy:1093
old "Y/Top Button"
new "Y/Top Button"
# Automatic translation.
new "Y/Πάνω κουμπί"
# screens.rpy:1096
old "Calibrate"
@@ -543,15 +643,18 @@ translate greek strings:
# screens.rpy:1124
old "## Additional screens"
new "## Additional screens"
# Automatic translation.
new "## Πρόσθετες οθόνες"
# screens.rpy:1128
old "## Confirm screen"
new "## Confirm screen"
# Automatic translation.
new "## Επιβεβαίωση οθόνης"
# screens.rpy:1130
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
# Automatic translation.
new "## Η οθόνη επιβεβαίωσης καλείται όταν ο Ren'Py θέλει να κάνει στον παίκτη μια ερώτηση ναι ή όχι."
# screens.rpy:1133
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
@@ -559,7 +662,8 @@ translate greek strings:
# screens.rpy:1137
old "## Ensure other screens do not get input while this screen is displayed."
new "## Ensure other screens do not get input while this screen is displayed."
# Automatic translation.
new "## Βεβαιωθείτε ότι άλλες οθόνες δεν λαμβάνουν δεδομένα ενώ εμφανίζεται αυτή η οθόνη."
# screens.rpy:1161
old "Yes"
@@ -571,15 +675,18 @@ translate greek strings:
# screens.rpy:1164
old "## Right-click and escape answer \"no\"."
new "## Right-click and escape answer \"no\"."
# Automatic translation.
new "## Κάντε δεξί κλικ και αποφύγετε την απάντηση \"όχι\"."
# screens.rpy:1191
old "## Skip indicator screen"
new "## Skip indicator screen"
# Automatic translation.
new "## Οθόνη ένδειξης παράλειψης"
# screens.rpy:1193
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
# Automatic translation.
new "## Εμφανίζεται η οθόνη skip_indicator για να υποδείξει ότι η παράλειψη βρίσκεται σε εξέλιξη."
# screens.rpy:1196
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
@@ -587,19 +694,23 @@ translate greek strings:
# screens.rpy:1208
old "Skipping"
new "Skipping"
# Automatic translation.
new "Παράλειψη"
# screens.rpy:1215
old "## This transform is used to blink the arrows one after another."
new "## This transform is used to blink the arrows one after another."
# Automatic translation.
new "## Αυτός ο μετασχηματισμός χρησιμοποιείται για να αναβοσβήνουν τα βέλη το ένα μετά το άλλο."
# screens.rpy:1247
old "## Notify screen"
new "## Notify screen"
# Automatic translation.
new "## Ειδοποίηση οθόνης"
# screens.rpy:1249
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 "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
# Automatic translation.
new "## Η οθόνη ειδοποίησης χρησιμοποιείται για να δείξει στον παίκτη ένα μήνυμα. (Για παράδειγμα, όταν το παιχνίδι έχει αποθηκευτεί ή έχει ληφθεί ένα στιγμιότυπο οθόνης)."
# screens.rpy:1252
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
@@ -607,11 +718,13 @@ translate greek strings:
# screens.rpy:1286
old "## NVL screen"
new "## NVL screen"
# Automatic translation.
new "## Οθόνη NVL"
# screens.rpy:1288
old "## This screen is used for NVL-mode dialogue and menus."
new "## This screen is used for NVL-mode dialogue and menus."
# Automatic translation.
new "## Αυτή η οθόνη χρησιμοποιείται για τον διάλογο και τα μενού της λειτουργίας NVL."
# screens.rpy:1290
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
@@ -619,25 +732,160 @@ translate greek strings:
# screens.rpy:1301
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Displays dialogue in either a vpgrid or the vbox."
# Automatic translation.
new "## Εμφανίζει το διάλογο είτε σε ένα vpgrid είτε στο vbox."
# screens.rpy:1314
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
# Automatic translation.
new "## Εμφανίζει το μενού, αν υπάρχει. Το μενού μπορεί να εμφανιστεί εσφαλμένα αν το config.narrator_menu έχει οριστεί σε True, όπως είναι παραπάνω."
# screens.rpy:1344
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
# Automatic translation.
new "## Ελέγχει τον μέγιστο αριθμό καταχωρήσεων της λειτουργίας NVL που μπορούν να εμφανιστούν ταυτόχρονα."
# screens.rpy:1406
old "## Mobile Variants"
new "## Mobile Variants"
# Automatic translation.
new "## Παραλλαγές κινητού"
# screens.rpy:1413
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 "## 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."
# Automatic translation.
new "## Δεδομένου ότι μπορεί να μην υπάρχει ποντίκι, αντικαθιστούμε το γρήγορο μενού με μια έκδοση που χρησιμοποιεί λιγότερα και μεγαλύτερα κουμπιά που είναι πιο εύκολο να αγγίξετε."
# screens.rpy:1429
old "Menu"
new "Menu"
# Automatic translation.
new "Μενού"
translate greek strings:
# 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."
# Automatic translation.
new "## Αν υπάρχει εικόνα στο πλάι, εμφανίστε την πάνω από το κείμενο. Μην την εμφανίζετε στην παραλλαγή του τηλεφώνου - δεν υπάρχει χώρος."
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
# Automatic translation.
new "## Κάντε το πλαίσιο ονόματος διαθέσιμο για διαμόρφωση μέσω του αντικειμένου Character."
# 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: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:241
old "## Ensure this appears on top of other screens."
# Automatic translation.
new "## Βεβαιωθείτε ότι αυτό εμφανίζεται πάνω από άλλες οθόνες."
# gui/game/screens.rpy:280
old "## Main and Game Menu Screens"
# Automatic translation.
new "## Οθόνες κύριου μενού και μενού παιχνιδιού"
# gui/game/screens.rpy:329
old "## The quit button is banned on iOS and unnecessary on Android and Web."
# Automatic translation.
new "## Το κουμπί quit είναι απαγορευμένο στο iOS και περιττό στο Android και το Web."
# 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."
# Automatic translation.
new "## Αυτό εξασφαλίζει ότι οποιαδήποτε άλλη οθόνη μενού αντικαθίσταται."
# gui/game/screens.rpy:357
old "## This empty frame darkens the main menu."
# Automatic translation.
new "## Αυτό το κενό πλαίσιο σκουραίνει το κύριο μενού."
# gui/game/screens.rpy:429
old "## Reserve space for the navigation section."
# Automatic translation.
new "## Κρατήστε χώρο για το τμήμα πλοήγησης."
# gui/game/screens.rpy:608
old "## The page name, which can be edited by clicking on a button."
# Automatic translation.
new "## Το όνομα της σελίδας, το οποίο μπορεί να επεξεργαστεί κάνοντας κλικ σε ένα κουμπί."
# gui/game/screens.rpy:668
old "## range(1, 10) gives the numbers from 1 to 9."
# Automatic translation.
new "## range(1, 10) δίνει τους αριθμούς από το 1 έως το 9."
# gui/game/screens.rpy:676
old "Upload Sync"
# Automatic translation.
new "Συγχρονισμός φόρτωσης"
# gui/game/screens.rpy:680
old "Download Sync"
# Automatic translation.
new "Λήψη Sync"
# gui/game/screens.rpy:921
old "## This determines what tags are allowed to be displayed on the history screen."
# Automatic translation.
new "## Αυτό καθορίζει ποιες ετικέτες επιτρέπεται να εμφανίζονται στην οθόνη ιστορικού."
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
# Automatic translation.
new "Ανοίγει το μενού προσβασιμότητας."
# gui/game/screens.rpy:1082
old "Left Trigger\nLeft Shoulder"
# Automatic translation.
new "Αριστερό σκανδάλη\nΑριστερός ώμος"
# 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:1248
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
# Automatic translation.
new "## Πρέπει να χρησιμοποιήσουμε μια γραμματοσειρά που να έχει τη γλυφή BLACK RIGHT-POINTING SMALL TRIANGLE."
# 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:1320
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
# Automatic translation.
new "## Εμφανίζει το μενού, αν υπάρχει. Το μενού μπορεί να εμφανιστεί εσφαλμένα αν το config.narrator_menu έχει οριστεί σε True."
# gui/game/screens.rpy:1410
old "## Bubble screen"
# Automatic translation.
new "## Οθόνη φυσαλίδων"
# gui/game/screens.rpy:1412
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
# Automatic translation.
new "## Η οθόνη φυσαλίδων χρησιμοποιείται για την εμφάνιση διαλόγου στον παίκτη όταν χρησιμοποιούνται φυσαλίδες ομιλίας. Η οθόνη φυσαλίδων λαμβάνει τις ίδιες παραμέτρους με την οθόνη say, πρέπει να δημιουργήσει ένα displayable με το id \"what\" και μπορεί να δημιουργήσει displayables με τα ids \"namebox\", \"who\" και \"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"
translate greek 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 "## Η παράμετρος κύλισης μπορεί να είναι None ή ένα από τα \"viewport\" ή \"vpgrid\". Αυτή η οθόνη προορίζεται να χρησιμοποιηθεί με ένα ή περισσότερα παιδιά, τα οποία μεταφέρονται (τοποθετούνται) μέσα σε αυτήν."
+555 -2
View File
@@ -154,7 +154,8 @@
# 00action_file.rpy:235
old "%b %d, %H:%M"
new "%b %d, %H:%M"
# Automatic translation.
new "%b %d, %H: %M"
# 00action_file.rpy:820
old "Quick save complete."
@@ -345,7 +346,8 @@ translate indonesian strings:
# 00director.rpy:1469
old "(statement)"
new "(statement)"
# Automatic translation.
new "(pernyataan)"
# 00director.rpy:1470
old "(tag)"
@@ -430,3 +432,554 @@ translate indonesian strings:
# _developer\developer.rpym:569
old "{size_mb:,.1f} MB in {count} textures."
new "{size_mb:,.1f} MB pada {count} tekstur."
translate indonesian strings:
# renpy/common/00accessibility.rpy:32
old "bar"
new "bar"
# renpy/common/00accessibility.rpy:33
old "selected"
# Automatic translation.
new "dipilih"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "viewport"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
# Automatic translation.
new "gulir horizontal"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
# Automatic translation.
new "gulir vertikal"
# renpy/common/00accessibility.rpy:37
old "activate"
# Automatic translation.
new "aktifkan"
# renpy/common/00accessibility.rpy:38
old "deactivate"
# Automatic translation.
new "menonaktifkan"
# renpy/common/00accessibility.rpy:39
old "increase"
# Automatic translation.
new "meningkat"
# renpy/common/00accessibility.rpy:40
old "decrease"
# Automatic translation.
new "penurunan"
# renpy/common/00accessibility.rpy:138
old "Font Override"
# Automatic translation.
new "Penggantian Font"
# renpy/common/00accessibility.rpy:142
old "Default"
new "Default"
# 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"
# Automatic translation.
new "Penskalaan Ukuran Teks"
# renpy/common/00accessibility.rpy:162
old "Reset"
# Automatic translation.
new "Atur ulang"
# renpy/common/00accessibility.rpy:168
old "Line Spacing Scaling"
# Automatic translation.
new "Penskalaan Jarak Baris"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
# Automatic translation.
new "Teks Kontras Tinggi"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing"
# Automatic translation.
new "Menyuarakan Diri Sendiri"
# renpy/common/00accessibility.rpy:197
old "Off"
# Automatic translation.
new "Mati"
# renpy/common/00accessibility.rpy:201
old "Text-to-speech"
# Automatic translation.
new "Teks-ke-ucapan"
# renpy/common/00accessibility.rpy:205
old "Clipboard"
# Automatic translation.
new "Papan klip"
# renpy/common/00accessibility.rpy:209
old "Debug"
new "Debug"
# renpy/common/00accessibility.rpy:223
old "Self-Voicing Volume Drop"
# Automatic translation.
new "Penurunan Volume Suara Sendiri"
# 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."
# Automatic translation.
new "Opsi pada menu ini dimaksudkan untuk meningkatkan aksesibilitas. Opsi-opsi tersebut mungkin tidak berfungsi pada semua game, dan beberapa kombinasi opsi dapat membuat game tidak dapat dimainkan. Ini bukan masalah pada game atau mesin. Untuk hasil terbaik saat mengubah font, cobalah untuk menjaga ukuran teks tetap sama seperti aslinya."
# renpy/common/00action_file.rpy:378
old "Save slot %s: [text]"
# Automatic translation.
new "Simpan slot %s: [text]"
# renpy/common/00action_file.rpy:461
old "Load slot %s: [text]"
# Automatic translation.
new "Memuat slot %s: [text]"
# renpy/common/00action_file.rpy:514
old "Delete slot [text]"
# Automatic translation.
new "Hapus slot [text]"
# renpy/common/00action_file.rpy:593
old "File page auto"
# Automatic translation.
new "Halaman file otomatis"
# renpy/common/00action_file.rpy:595
old "File page quick"
# Automatic translation.
new "Mengajukan halaman file dengan cepat"
# renpy/common/00action_file.rpy:597
old "File page [text]"
# Automatic translation.
new "Halaman file [text]"
# renpy/common/00action_file.rpy:796
old "Next file page."
# Automatic translation.
new "Halaman file berikutnya."
# renpy/common/00action_file.rpy:868
old "Previous file page."
# Automatic translation.
new "Halaman file sebelumnya."
# renpy/common/00action_file.rpy:944
old "Quick save."
# Automatic translation.
new "Simpan cepat."
# renpy/common/00action_file.rpy:963
old "Quick load."
# Automatic translation.
new "Memuat dengan cepat."
# renpy/common/00action_other.rpy:381
old "Language [text]"
# Automatic translation.
new "Bahasa [text]"
# renpy/common/00director.rpy:1504
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1510
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1745
old "Click to toggle attribute, right click to toggle negative attribute."
# Automatic translation.
new "Klik untuk mengganti atribut, klik kanan untuk mengganti atribut negatif."
# renpy/common/00director.rpy:1768
old "Click to set transform, right click to add to transform list."
# Automatic translation.
new "Klik untuk mengatur transformasi, klik kanan untuk menambahkan ke daftar transformasi."
# renpy/common/00director.rpy:1789
old "Click to set, right click to add to behind list."
# Automatic translation.
new "Klik untuk mengatur, klik kanan untuk menambahkan ke daftar belakang."
# 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?"
# Automatic translation.
new "Penyimpanan ini dibuat pada perangkat yang berbeda. File penyimpanan yang dibuat dengan cara yang berbahaya dapat membahayakan komputer Anda. Apakah Anda mempercayai pembuat file penyimpanan ini dan semua orang yang dapat mengubah file tersebut?"
# 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."
# Automatic translation.
new "Apakah Anda mempercayai perangkat tempat penyimpanan dibuat? Anda sebaiknya hanya memilih ya jika Anda adalah satu-satunya pengguna perangkat."
# renpy/common/00keymap.rpy:322
old "Failed to save screenshot as %s."
# Automatic translation.
new "Gagal menyimpan tangkapan layar sebagai %s."
# renpy/common/00preferences.rpy:271
old "display"
# Automatic translation.
new "tampilan"
# renpy/common/00preferences.rpy:283
old "transitions"
# Automatic translation.
new "transisi"
# renpy/common/00preferences.rpy:292
old "skip transitions"
# Automatic translation.
new "lewati transisi"
# renpy/common/00preferences.rpy:294
old "video sprites"
# Automatic translation.
new "sprite video"
# renpy/common/00preferences.rpy:303
old "show empty window"
# Automatic translation.
new "tampilkan jendela kosong"
# renpy/common/00preferences.rpy:312
old "text speed"
# Automatic translation.
new "kecepatan teks"
# renpy/common/00preferences.rpy:320
old "joystick"
new "joystick"
# renpy/common/00preferences.rpy:320
old "joystick..."
new "joystick..."
# renpy/common/00preferences.rpy:327
old "skip"
# Automatic translation.
new "melewatkan"
# renpy/common/00preferences.rpy:330
old "skip unseen [text]"
# Automatic translation.
new "lewati yang tak terlihat [text]"
# renpy/common/00preferences.rpy:335
old "skip unseen text"
# Automatic translation.
new "lewati teks yang tidak terlihat"
# renpy/common/00preferences.rpy:337
old "begin skipping"
# Automatic translation.
new "mulai melewatkan"
# renpy/common/00preferences.rpy:341
old "after choices"
# Automatic translation.
new "setelah pilihan"
# renpy/common/00preferences.rpy:348
old "skip after choices"
# Automatic translation.
new "lewati setelah pilihan"
# renpy/common/00preferences.rpy:350
old "auto-forward time"
# Automatic translation.
new "waktu maju otomatis"
# renpy/common/00preferences.rpy:364
old "auto-forward"
# Automatic translation.
new "maju otomatis"
# renpy/common/00preferences.rpy:371
old "Auto forward"
# Automatic translation.
new "Maju otomatis"
# renpy/common/00preferences.rpy:374
old "auto-forward after click"
# Automatic translation.
new "maju otomatis setelah klik"
# renpy/common/00preferences.rpy:383
old "automatic move"
# Automatic translation.
new "gerakan otomatis"
# renpy/common/00preferences.rpy:392
old "wait for voice"
# Automatic translation.
new "menunggu suara"
# renpy/common/00preferences.rpy:401
old "voice sustain"
# Automatic translation.
new "mempertahankan suara"
# renpy/common/00preferences.rpy:410
old "self voicing"
# Automatic translation.
new "menyuarakan diri sendiri"
# renpy/common/00preferences.rpy:419
old "self voicing volume drop"
# Automatic translation.
new "penurunan volume suara sendiri"
# renpy/common/00preferences.rpy:427
old "clipboard voicing"
# Automatic translation.
new "menyuarakan papan klip"
# renpy/common/00preferences.rpy:436
old "debug voicing"
# Automatic translation.
new "men-debug suara"
# renpy/common/00preferences.rpy:445
old "emphasize audio"
# Automatic translation.
new "menekankan audio"
# renpy/common/00preferences.rpy:454
old "rollback side"
# Automatic translation.
new "sisi rollback"
# renpy/common/00preferences.rpy:464
old "gl powersave"
new "gl powersave"
# renpy/common/00preferences.rpy:470
old "gl framerate"
# Automatic translation.
new "framerate gl"
# renpy/common/00preferences.rpy:473
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:476
old "font transform"
# Automatic translation.
new "transformasi font"
# renpy/common/00preferences.rpy:479
old "font size"
# Automatic translation.
new "ukuran font"
# renpy/common/00preferences.rpy:487
old "font line spacing"
# Automatic translation.
new "spasi baris font"
# renpy/common/00preferences.rpy:495
old "system cursor"
# Automatic translation.
new "kursor sistem"
# renpy/common/00preferences.rpy:504
old "renderer menu"
# Automatic translation.
new "menu penyaji"
# renpy/common/00preferences.rpy:507
old "accessibility menu"
# Automatic translation.
new "menu aksesibilitas"
# renpy/common/00preferences.rpy:510
old "high contrast text"
# Automatic translation.
new "teks kontras tinggi"
# renpy/common/00preferences.rpy:519
old "audio when minimized"
# Automatic translation.
new "audio saat diminimalkan"
# renpy/common/00preferences.rpy:528
old "audio when unfocused"
# Automatic translation.
new "audio saat tidak fokus"
# renpy/common/00preferences.rpy:537
old "web cache preload"
# Automatic translation.
new "preload cache web"
# renpy/common/00preferences.rpy:552
old "voice after game menu"
# Automatic translation.
new "suara setelah menu permainan"
# renpy/common/00preferences.rpy:571
old "main volume"
# Automatic translation.
new "volume utama"
# renpy/common/00preferences.rpy:572
old "music volume"
# Automatic translation.
new "volume musik"
# renpy/common/00preferences.rpy:573
old "sound volume"
# Automatic translation.
new "volume suara"
# renpy/common/00preferences.rpy:574
old "voice volume"
# Automatic translation.
new "volume suara"
# renpy/common/00preferences.rpy:575
old "mute main"
# Automatic translation.
new "membisukan utama"
# renpy/common/00preferences.rpy:576
old "mute music"
# Automatic translation.
new "musik bisu"
# renpy/common/00preferences.rpy:577
old "mute sound"
# Automatic translation.
new "suara bisu"
# renpy/common/00preferences.rpy:578
old "mute voice"
# Automatic translation.
new "suara bisu"
# renpy/common/00preferences.rpy:579
old "mute all"
# Automatic translation.
new "membungkam semua"
# renpy/common/00speechbubble.rpy:344
old "Speech Bubble Editor"
# Automatic translation.
new "Editor Gelembung Ucapan"
# renpy/common/00speechbubble.rpy:349
old "(hide)"
# Automatic translation.
new "(Sembunyikan)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
# Automatic translation.
new "Sinkronisasi diunduh."
# renpy/common/00sync.rpy:190
old "Could not connect to the Ren'Py Sync server."
# Automatic translation.
new "Tidak dapat tersambung ke server Ren'Py Sync."
# renpy/common/00sync.rpy:192
old "The Ren'Py Sync server timed out."
# Automatic translation.
new "Server Ren'Py Sync habis masa berlakunya."
# renpy/common/00sync.rpy:194
old "An unknown error occurred while connecting to the Ren'Py Sync server."
# Automatic translation.
new "Terjadi kesalahan yang tidak diketahui saat menyambung ke server Ren'Py Sync."
# 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."
# Automatic translation.
new "Server Ren'Py Sync tidak memiliki salinan sinkronisasi ini. ID sinkronisasi mungkin tidak valid, atau mungkin telah habis masa berlakunya."
# renpy/common/00sync.rpy:409
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
# Automatic translation.
new "Masukkan ID sinkronisasi yang Anda buat.\nJangan pernah memasukkan ID sinkronisasi yang tidak Anda buat sendiri."
# renpy/common/00sync.rpy:428
old "The sync ID is not in the correct format."
# Automatic translation.
new "ID sinkronisasi tidak dalam format yang benar."
# renpy/common/00sync.rpy:448
old "The sync could not be decrypted."
# Automatic translation.
new "Sinkronisasi tidak dapat didekripsi."
# renpy/common/00sync.rpy:471
old "The sync belongs to a different game."
# Automatic translation.
new "Sinkronisasi termasuk dalam permainan yang berbeda."
# renpy/common/00sync.rpy:476
old "The sync contains a file with an invalid name."
# Automatic translation.
new "Sinkronisasi berisi file dengan nama yang tidak valid."
# renpy/common/00sync.rpy:529
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
# Automatic translation.
new "Ini akan mengunggah simpanan Anda ke {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nApakah Anda ingin melanjutkan?"
# renpy/common/00sync.rpy:558
old "Enter Sync ID"
# Automatic translation.
new "Masukkan ID Sinkronisasi"
# renpy/common/00sync.rpy:569
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
# Automatic translation.
new "Ini akan menghubungi {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
# renpy/common/00sync.rpy:596
old "Sync Success"
# Automatic translation.
new "Keberhasilan Sinkronisasi"
# renpy/common/00sync.rpy:599
old "The Sync ID is:"
# Automatic translation.
new "ID Sinkronisasi adalah:"
# renpy/common/00sync.rpy:605
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}."
# Automatic translation.
new "Anda dapat menggunakan ID ini untuk mengunduh simpanan Anda di perangkat lain.\nSinkronisasi ini akan berakhir dalam satu jam.\nRen'Py Sync didukung oleh {a=https://www.renpy.org/sponsors.html}Sponsor Ren'Py{/a}."
# renpy/common/00sync.rpy:631
old "Sync Error"
# Automatic translation.
new "Kesalahan Sinkronisasi"
+106 -2
View File
@@ -99,7 +99,8 @@ translate indonesian strings:
# _developer/inspector.rpym:139
old "displayable:"
new "displayable:"
# Automatic translation.
new "dapat ditampilkan:"
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
@@ -111,7 +112,8 @@ translate indonesian strings:
# _developer/inspector.rpym:185
old "<repr() failed>"
new "<repr() failed>"
# Automatic translation.
new "<repr() gagal"
# 00console.rpy:182
old "Press <esc> to exit console. Type help for help.\n"
@@ -176,3 +178,105 @@ translate indonesian strings:
# 00console.rpy:536
old "jump <label>: jumps to label"
new "jump <label>: lompat ke label"
translate indonesian strings:
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
# Automatic translation.
new "Penampil Persisten"
# renpy/common/_developer/developer.rpym:59
old "Show Image Load Log (F4)"
# Automatic translation.
new "Tampilkan Log Pemuatan Gambar (F4)"
# renpy/common/_developer/developer.rpym:62
old "Hide Image Load Log (F4)"
# Automatic translation.
new "Sembunyikan Log Pemuatan Gambar (F4)"
# renpy/common/_developer/developer.rpym:65
old "Image Attributes"
# Automatic translation.
new "Atribut Gambar"
# renpy/common/_developer/developer.rpym:70
old "Speech Bubble Editor (Shift+B)"
# Automatic translation.
new "Editor Gelembung Ucapan (Shift+B)"
# renpy/common/_developer/developer.rpym:97
old "[name] [attributes] (hidden)"
# Automatic translation.
new "[name] [attributes] (disembunyikan)"
# renpy/common/_developer/developer.rpym:101
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:162
old "Hide deleted"
# Automatic translation.
new "Sembunyikan dihapus"
# renpy/common/_developer/developer.rpym:162
old "Show deleted"
# Automatic translation.
new "Tampilkan dihapus"
# renpy/common/_developer/developer.rpym:389
old "Type to filter: "
# Automatic translation.
new "Ketik untuk memfilter: "
# renpy/common/_developer/developer.rpym:507
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
# Automatic translation.
new "Tekstur: [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:511
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# Automatic translation.
new "Tembolok gambar: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00console.rpy:789
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
# Automatic translation.
new "help: tunjukkan bantuan ini\n help <expr>: tampilkan tanda tangan dan dokumentasi dari <expr"
# renpy/common/00console.rpy:813
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
# Automatic translation.
new "Bantuan mungkin menampilkan fungsi yang tidak terdokumentasi. Harap periksa apakah fungsi atau\nkelas yang ingin Anda gunakan didokumentasikan.\n\n"
# renpy/common/00console.rpy:854
old "stack: print the return stack"
# Automatic translation.
new "stack: mencetak tumpukan balik"
# renpy/common/00console.rpy:908
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"
# Automatic translation.
new "watch <expression>: menonton ekspresi ular piton\n watch short: membuat representasi ekspresi yang ditelusuri menjadi pendek (default)\n watch long: membuat representasi ekspresi yang ditelusuri seperti apa adanya"
# renpy/common/00console.rpy:1028
old "short: Shorten the representation of objects on the console (default)."
# Automatic translation.
new "short: Mempersingkat representasi objek pada konsol (default)."
# renpy/common/00console.rpy:1032
old "long: Print the full representation of objects on the console."
# Automatic translation.
new "long: Mencetak representasi penuh objek pada konsol."
# renpy/common/00console.rpy:1036
old "escape: Enables escaping of unicode symbols in unicode strings."
# Automatic translation.
new "escape: Memungkinkan keluarnya simbol unicode dalam string unicode."
# renpy/common/00console.rpy:1040
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
# Automatic translation.
new "unescape: Menonaktifkan pelarian simbol unicode dalam string unicode dan mencetaknya apa adanya (default)."
+107
View File
@@ -204,3 +204,110 @@ translate indonesian strings:
# _errorhandling.rpym:585
old "Ignores the exception, allowing you to continue."
new "Hiraukan Kesalahan, memperbolehkan kamu untuk melanjutkan."
translate indonesian strings:
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Renderer"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Force GL Renderer"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Force ANGLE Renderer"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "Force GLES Renderer"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Force GL2 Renderer"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
# Automatic translation.
new "Paksa Penyaji ANGLE2"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "Force GLES2 Renderer"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
# Automatic translation.
new "Aktifkan (Tanpa Daftar Blokir)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Powersave"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Framerate"
# renpy/common/00gltest.rpy:177
old "Screen"
# Automatic translation.
new "Layar"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Tearing"
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
# Automatic translation.
new "Game ini membutuhkan penggunaan GL2 yang tidak dapat diinisialisasi."
# 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."
# Automatic translation.
new "File {a=edit:1:log.txt}log.txt{/a} mungkin berisi informasi untuk membantu Anda menentukan apa yang salah dengan komputer Anda."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
# Automatic translation.
new "Rincian lebih lanjut tentang cara memperbaikinya dapat ditemukan di dokumentasi {a=[url]}{/a} ."
# renpy/common/00gltest.rpy:281
old "Change render options"
# Automatic translation.
new "Mengubah opsi render"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
# Automatic translation.
new "Tekan atau pindahkan '[control!s]' [kind]."
# renpy/common/_errorhandling.rpym:559
old "Copy BBCode"
# Automatic translation.
new "Salin BBCode"
# renpy/common/_errorhandling.rpym:561
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
# Automatic translation.
new "Menyalin file traceback.txt ke clipboard sebagai BBcode untuk forum seperti https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:563
old "Copy Markdown"
# Automatic translation.
new "Salin Penurunan Harga"
# renpy/common/_errorhandling.rpym:565
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
# Automatic translation.
new "Menyalin file traceback.txt ke papan klip sebagai Markdown untuk Discord."
+130 -73
View File
@@ -159,195 +159,233 @@ translate indonesian strings:
# 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."
# Automatic translation.
new "## Variabel-variabel ini, bersama dengan file gambar di gui/button, mengontrol aspek-aspek bagaimana tombol ditampilkan."
# 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."
# Automatic translation.
new "## Lebar dan tinggi tombol, dalam piksel. Jika tidak ada, Ren'Py akan menghitung ukuran."
# 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."
# Automatic translation.
new "## Batas di setiap sisi tombol, dalam urutan kiri, atas, kanan, bawah."
# 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."
# Automatic translation.
new "## Jika Benar, gambar latar belakang akan dibuat ubin. Jika Salah, gambar latar belakang akan diskalakan secara linier."
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
# Automatic translation.
new "## Font yang digunakan oleh tombol."
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
# Automatic translation.
new "## Ukuran teks yang digunakan oleh tombol."
# 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."
# Automatic translation.
new "## Variabel-variabel ini mengganti pengaturan untuk berbagai jenis tombol. Silakan lihat dokumentasi gui untuk mengetahui jenis tombol yang tersedia, dan untuk apa tombol tersebut digunakan."
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
# Automatic translation.
new "## Kustomisasi ini digunakan oleh antarmuka default:"
# 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."
# Automatic translation.
new "## Anda juga dapat menambahkan kustomisasi Anda sendiri, dengan menambahkan variabel yang diberi nama yang tepat. Sebagai contoh, Anda dapat menghapus baris berikut ini untuk mengatur lebar tombol navigasi."
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
# Automatic translation.
new "## Tombol Pilihan"
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
# Automatic translation.
new "## Tombol Slot File"
# 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."
# Automatic translation.
new "## Tombol slot file adalah jenis tombol khusus. Tombol ini berisi gambar mini, dan teks yang menjelaskan isi slot penyimpanan. Slot penyimpanan menggunakan file gambar dalam gui/tombol, seperti jenis tombol lainnya."
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
# Automatic translation.
new "## Tombol simpan slot."
# 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."
# Automatic translation.
new "## Lebar dan tinggi gambar mini yang digunakan oleh slot penyimpanan."
# 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."
# Automatic translation.
new "## Jumlah kolom dan baris dalam kisi-kisi slot penyimpanan."
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
# Automatic translation.
new "## Pemosisian dan Spasi"
# 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."
# Automatic translation.
new "## Variabel-variabel ini mengontrol pemosisian dan jarak berbagai elemen antarmuka pengguna."
# 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."
# Automatic translation.
new "## Posisi sisi kiri tombol navigasi, relatif terhadap sisi kiri layar."
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
# Automatic translation.
new "## Posisi vertikal indikator lompatan."
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
# Automatic translation.
new "## Posisi vertikal layar notifikasi."
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
# gui.rpy:261
old "## Buttons in the navigation section of the main and game menus."
new "## Buttons in the navigation section of the main and game menus."
# Automatic translation.
new "## Jarak spasi di antara pilihan menu."
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
# Automatic translation.
new "## Mengontrol jumlah spasi di antara preferensi."
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
# Automatic translation.
new "## Mengontrol jumlah spasi di antara tombol preferensi."
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
# Automatic translation.
new "## Jarak antara tombol halaman file."
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
# Automatic translation.
new "## Jarak antara slot file."
# gui.rpy:277
old "## Frames"
new "## Frames"
# Automatic translation.
new "## Frame"
# 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."
# Automatic translation.
new "## Variabel ini mengontrol tampilan frame yang dapat berisi komponen antarmuka pengguna ketika overlay atau jendela tidak ada."
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
# Automatic translation.
new "## Bingkai umum yang diperkenalkan oleh kode pemutar."
# 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."
# Automatic translation.
new "## Bingkai yang digunakan sebagai bagian dari layar konfirmasi."
# 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."
# Automatic translation.
new "## Bingkai yang digunakan sebagai bagian dari layar lewati."
# 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."
# Automatic translation.
new "## Bingkai yang digunakan sebagai bagian dari layar pemberitahuan."
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
# Automatic translation.
new "## Haruskah latar belakang bingkai dibuat berubin?"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
# Automatic translation.
new "## Bilah, Bilah Gulir, dan Geser"
# 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."
# Automatic translation.
new "## Ini mengontrol tampilan dan ukuran bilah, bilah gulir, dan penggeser."
# 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."
# Automatic translation.
new "## GUI default hanya menggunakan slider dan scrollbar vertikal. Semua bilah lainnya hanya digunakan dalam kode yang ditulis oleh pembuat."
# 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."
# Automatic translation.
new "## Ketinggian bilah horizontal, bilah gulir, dan penggeser. Lebar bilah vertikal, bilah gulir, dan penggeser."
# 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."
# Automatic translation.
new "## Benar jika gambar batang harus diubin. Salah jika gambar harus diskalakan secara linier."
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
# Automatic translation.
new "## Batas horizontal."
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
# Automatic translation.
new "## Batas vertikal."
# 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."
# Automatic translation.
new "## Apa yang harus dilakukan dengan scrollbar yang tidak dapat digulir di gui. \"hide\" menyembunyikannya, sedangkan None tidak menampilkannya."
# gui.rpy:331
old "## History"
new "## History"
# Automatic translation.
new "## Sejarah"
# 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."
# Automatic translation.
new "## Layar riwayat menampilkan dialog yang telah diberhentikan oleh pemain."
# 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."
# Automatic translation.
new "## Jumlah blok riwayat dialog yang akan disimpan 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."
# Automatic translation.
new "## Ketinggian entri layar riwayat, atau Tidak Ada untuk membuat variabel ketinggian dengan mengorbankan kinerja."
# 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."
# Automatic translation.
new "## Posisi, lebar, dan perataan label yang memberikan nama karakter yang berbicara."
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
# Automatic translation.
new "## Posisi, lebar, dan perataan teks dialog."
# gui.rpy:356
old "## NVL-Mode"
@@ -355,61 +393,68 @@ translate indonesian strings:
# 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."
# Automatic translation.
new "## Layar mode NVL menampilkan dialog yang diucapkan oleh karakter mode 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."
# Automatic translation.
new "## Batas latar belakang jendela latar belakang mode 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."
# Automatic translation.
new "## Ketinggian entri mode NVL. Atur ini ke None (Tidak Ada) agar entri menyesuaikan tinggi secara dinamis."
# 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."
# Automatic translation.
new "## Spasi antara entri mode NVL ketika gui.nvl_height adalah None, dan antara entri mode NVL dan menu mode 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.)"
# Automatic translation.
new "## Posisi, lebar, dan perataan teks nvl_thought (teks yang diucapkan oleh karakter nvl_narrator)."
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
# Automatic translation.
new "## Posisi tombol menu nvl."
# 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."
# Automatic translation.
new "## Ini meningkatkan ukuran tombol cepat agar lebih mudah disentuh pada tablet dan ponsel."
# gui.rpy:409
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
# Automatic translation.
new "## Ini mengubah ukuran dan spasi berbagai elemen GUI untuk memastikan elemen-elemen tersebut mudah terlihat pada ponsel."
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
# Automatic translation.
new "## Sesuaikan lokasi kotak teks."
# 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."
# Automatic translation.
new "## Mengubah ukuran dan spasi item dalam menu permainan."
# gui.rpy:436
old "## File button layout."
new "## File button layout."
# Automatic translation.
new "## Tata letak tombol file."
# gui.rpy:440
old "## NVL-mode."
new "## NVL-mode."
# Automatic translation.
new "## Mode NVL."
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
translate indonesian strings:
# Automatic translation.
new "## Tombol cepat."
# gui.rpy:17
old "## GUI Configuration Variables"
@@ -458,3 +503,15 @@ translate indonesian strings:
old "## Change the size and spacing of various things."
new "## Ubah ukuran dan jarak dari berbagai hal."
translate indonesian strings:
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
# Automatic translation.
new "## Mengaktifkan pemeriksaan untuk properti yang tidak valid atau tidak stabil di layar atau transformasi"
# 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."
# Automatic translation.
new "## Jumlah maksimum entri mode NVL yang akan ditampilkan Ren'Py. Ketika lebih banyak entri daripada ini akan ditampilkan, entri tertua akan dihapus."
+860 -10
View File
@@ -129,7 +129,8 @@
# android.rpy:353
old "Build:"
new "Build:"
# Automatic translation.
new "Bangun:"
# android.rpy:361
old "Install SDK & Create Keys"
@@ -305,7 +306,8 @@
# distribute_gui.rpy:193
old "Edit options.rpy"
new "Edit options.rpy"
# Automatic translation.
new "Edit opsi.rpy"
# distribute_gui.rpy:194
old "Add from clauses to calls, once"
@@ -437,7 +439,8 @@
# front_page.rpy:166
old "The Question"
new "The Question"
# Automatic translation.
new "Pertanyaan"
# front_page.rpy:182
old "Active Project"
@@ -605,7 +608,8 @@
# interface.rpy:327
old "ERROR"
new "ERROR"
# Automatic translation.
new "KESALAHAN"
# interface.rpy:356
old "While [what!qt], an error occured:"
@@ -813,7 +817,8 @@
# navigation.rpy:202
old "TODOs"
new "TODOs"
# Automatic translation.
new "TODO"
# navigation.rpy:241
old "+ Add script file"
@@ -893,7 +898,8 @@
# preferences.rpy:117
old "Text editor: [text]"
new "Text editor: [text]"
# Automatic translation.
new "Editor teks: [text]"
# preferences.rpy:133
old "Update Channel:"
@@ -1025,7 +1031,8 @@
# translations.rpy:180
old "Update Default Interface Translations"
new "Update Default Interface Translations"
# Automatic translation.
new "Memperbarui Terjemahan Antarmuka Default"
# translations.rpy:200
old "The extract command allows you to extract string translations from an existing project into a temporary file.\n\nThe merge command merges extracted translations into another project."
@@ -1057,7 +1064,8 @@
# translations.rpy:282
old "Updating default interface translations..."
new "Updating default interface translations..."
# Automatic translation.
new "Memperbarui terjemahan antarmuka default..."
# translations.rpy:306
old "Extract Dialogue: [project.current.name!q]"
@@ -1105,7 +1113,8 @@
# updater.rpy:91
old "Release"
new "Release"
# Automatic translation.
new "Lepaskan"
# updater.rpy:97
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
@@ -1129,7 +1138,8 @@
# updater.rpy:126
old "Nightly"
new "Nightly"
# Automatic translation.
new "Setiap malam."
# updater.rpy:132
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
@@ -1325,3 +1335,843 @@ translate indonesian strings:
# web.rpy:194
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "Sebelum membangun renpy ke versi web,kamu perlu mengunduh RenpyWeb (Ren'Py's web support),unduh sekarang?"
translate indonesian strings:
# game/add_file.rpy:37
old "The file name may not be empty."
# Automatic translation.
new "Nama file tidak boleh kosong."
# game/android.rpy:37
old "A 64-bit/x64 Java [JDK_REQUIREMENT] Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}download and install the JDK{/a}, then restart the Ren'Py launcher."
# Automatic translation.
new "Sebuah 64-bit/x64 Java [JDK_REQUIREMENT] Development Kit diperlukan untuk membuat paket Android di Windows. JDK berbeda dengan JRE, jadi mungkin saja Anda memiliki Java tanpa memiliki JDK.\n\nSilakan {a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}unduh dan instal JDK{/a}, lalu mulai ulang peluncur Ren'Py."
# game/android.rpy:39
old "RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory."
# Automatic translation.
new "RAPT telah diinstal, tetapi kunci belum dikonfigurasi. Buatlah kunci baru, atau salin android.keystore dan bundle.keystore ke direktori dasar."
# game/android.rpy:41
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
# Automatic translation.
new "Pilihlah apakah Anda menginginkan Play Bundle (untuk Google Play), atau APK Universal (untuk sideload dan toko aplikasi lainnya)."
# game/android.rpy:46
old "Attempts to emulate a televison-based Android console.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
# Automatic translation.
new "Mencoba meniru konsol Android berbasis televisi.\n\nInput pengontrol dipetakan ke tombol panah, Enter dipetakan ke tombol pilih, Escape dipetakan ke tombol menu, dan PageUp dipetakan ke tombol kembali."
# game/android.rpy:48
old "Downloads and installs the Android SDK and supporting packages."
# Automatic translation.
new "Mengunduh dan menginstal Android SDK dan paket-paket pendukung."
# game/android.rpy:49
old "Generates the keys required to sign the package."
# Automatic translation.
new "Menghasilkan kunci yang diperlukan untuk menandatangani paket."
# game/android.rpy:56
old "Lists the connected devices."
# Automatic translation.
new "Mencantumkan daftar perangkat yang tersambung."
# game/android.rpy:57
old "Pairs with a device over Wi-Fi, on Android 11+."
# Automatic translation.
new "Memasangkan dengan perangkat melalui Wi-Fi, pada Android 11+."
# game/android.rpy:58
old "Connects to a device over Wi-Fi, on Android 11+."
# Automatic translation.
new "Menghubungkan ke perangkat melalui Wi-Fi, pada Android 11+."
# game/android.rpy:59
old "Disconnects a device connected over Wi-Fi."
# Automatic translation.
new "Memutuskan sambungan perangkat yang tersambung melalui Wi-Fi."
# game/android.rpy:61
old "Removes Android temporary files."
# Automatic translation.
new "Menghapus file sementara Android."
# game/android.rpy:63
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
# Automatic translation.
new "Membuat Android App Bundle (ABB), yang dimaksudkan untuk diunggah ke Google Play. Ini dapat mencakup hingga 2GB data."
# game/android.rpy:64
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
# Automatic translation.
new "Membuat paket APK Universal, yang ditujukan untuk sideload dan toko selain Google Play. Ini dapat mencakup hingga 2GB data."
# game/android.rpy:383
old "Install SDK"
# Automatic translation.
new "Instal SDK"
# game/android.rpy:387
old "Generate Keys"
# Automatic translation.
new "Hasilkan Kunci"
# game/android.rpy:397
old "Play Bundle"
new "Play Bundle"
# game/android.rpy:402
old "Universal APK"
new "Universal APK"
# game/android.rpy:452
old "List Devices"
# Automatic translation.
new "Daftar Perangkat"
# game/android.rpy:456
old "Wi-Fi Debugging Pair"
# Automatic translation.
new "Pasangan Debugging Wi-Fi"
# game/android.rpy:460
old "Wi-Fi Debugging Connect"
# Automatic translation.
new "Menghubungkan Debugging Wi-Fi"
# game/android.rpy:464
old "Wi-Fi Debugging Disconnect"
# Automatic translation.
new "Memutuskan sambungan debug Wi-Fi"
# game/android.rpy:468
old "Clean"
# Automatic translation.
new "Bersih"
# game/android.rpy:573
old "Wi-Fi Pairing Code"
# Automatic translation.
new "Kode Pemasangan Wi-Fi"
# game/android.rpy:573
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
# Automatic translation.
new "Jika didukung, hal ini dapat ditemukan di 'Opsi pengembang', 'Debugging nirkabel', 'Pasangkan perangkat dengan kode pemasangan'."
# game/android.rpy:580
old "Pairing Host & Port"
# Automatic translation.
new "Memasangkan Host & Port"
# game/android.rpy:596
old "IP Address & Port"
# Automatic translation.
new "Alamat IP & Port"
# game/android.rpy:596
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
# Automatic translation.
new "Jika didukung, hal ini dapat ditemukan di 'Opsi pengembang', 'Debugging nirkabel'."
# game/android.rpy:612
old "This can be found in 'List Devices'."
# Automatic translation.
new "Ini dapat ditemukan di 'Daftar Perangkat'."
# game/android.rpy:632
old "Cleaning up Android project."
# Automatic translation.
new "Membersihkan proyek Android."
# game/androidstrings.rpy:7
old "{} is not a directory."
# Automatic translation.
new "{} bukanlah sebuah direktori."
# game/androidstrings.rpy:8
old "{} does not contain a Ren'Py game."
# Automatic translation.
new "{} tidak mengandung permainan Ren'Py."
# game/androidstrings.rpy:10
old "Run configure before attempting to build the app."
# Automatic translation.
new "Jalankan konfigurasi sebelum mencoba membangun aplikasi."
# game/androidstrings.rpy:11
old "Updating project."
# Automatic translation.
new "Memperbarui proyek."
# game/androidstrings.rpy:12
old "Creating assets directory."
# Automatic translation.
new "Membuat direktori aset."
# game/androidstrings.rpy:13
old "Packaging internal data."
# Automatic translation.
new "Mengemas data internal."
# game/androidstrings.rpy:14
old "I'm using Gradle to build the package."
# Automatic translation.
new "Saya menggunakan Gradle untuk membangun paket."
# game/androidstrings.rpy:15
old "The build seems to have failed."
# Automatic translation.
new "Tampaknya pembangunannya gagal."
# game/androidstrings.rpy:16
old "I'm installing the bundle."
# Automatic translation.
new "Saya sedang memasang bundelnya."
# game/androidstrings.rpy:17
old "Installing the bundle appears to have failed."
# Automatic translation.
new "Pemasangan bundel tampaknya gagal."
# game/androidstrings.rpy:18
old "Launching app."
# Automatic translation.
new "Meluncurkan aplikasi."
# game/androidstrings.rpy:19
old "Launching the app appears to have failed."
# Automatic translation.
new "Peluncuran aplikasi tampaknya gagal."
# game/androidstrings.rpy:20
old "The build seems to have succeeded."
# Automatic translation.
new "Tampaknya pembangunannya telah berhasil."
# game/androidstrings.rpy:21
old "What is the full name of your application? This name will appear in the list of installed applications."
# Automatic translation.
new "Apa nama lengkap aplikasi Anda? Nama ini akan muncul di daftar aplikasi yang terinstal."
# game/androidstrings.rpy:22
old "What is the short name of your application? This name will be used in the launcher, and for application shortcuts."
# Automatic translation.
new "Apa nama singkat aplikasi Anda? Nama ini akan digunakan di peluncur, dan untuk pintasan aplikasi."
# game/androidstrings.rpy:23
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
# Automatic translation.
new "Apa nama paketnya?\n\nBiasanya berbentuk com.domain.program atau com.domain.email.program. Nama domain ini hanya boleh berisi huruf dan titik ASCII. Setidaknya harus mengandung satu titik."
# game/androidstrings.rpy:24
old "The package name may not be empty."
# Automatic translation.
new "Nama paket tidak boleh kosong."
# game/androidstrings.rpy:25
old "The package name may not contain spaces."
# Automatic translation.
new "Nama paket tidak boleh mengandung spasi."
# game/androidstrings.rpy:26
old "The package name must contain at least one dot."
# Automatic translation.
new "Nama paket harus mengandung setidaknya satu titik."
# game/androidstrings.rpy:27
old "The package name may not contain two dots in a row, or begin or end with a dot."
# Automatic translation.
new "Nama paket tidak boleh mengandung dua titik berturut-turut, atau diawali atau diakhiri dengan titik."
# game/androidstrings.rpy:28
old "Each part of the package name must start with a letter, and contain only letters, numbers, and underscores."
# Automatic translation.
new "Setiap bagian dari nama paket harus dimulai dengan huruf, dan hanya terdiri dari huruf, angka, dan garis bawah."
# game/androidstrings.rpy:29
old "{} is a Java keyword, and can't be used as part of a package name."
# Automatic translation.
new "{} adalah kata kunci Java, dan tidak dapat digunakan sebagai bagian dari nama paket."
# game/androidstrings.rpy:30
old "What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots."
# Automatic translation.
new "Apa versi aplikasi ini?\n\nIni harus merupakan versi yang dapat dibaca manusia yang akan Anda tunjukkan kepada seseorang. Hanya berisi angka dan titik."
# game/androidstrings.rpy:31
old "The version number must contain only numbers and dots."
# Automatic translation.
new "Nomor versi hanya boleh berisi angka dan titik."
# game/androidstrings.rpy:32
old "How much RAM (in GB) do you want to allocate to Gradle?\nThis must be a positive integer number."
# Automatic translation.
new "Berapa banyak RAM (dalam GB) yang ingin Anda alokasikan untuk Gradle?\nIni harus berupa bilangan bulat positif."
# game/androidstrings.rpy:33
old "The RAM size must contain only numbers and be positive."
# Automatic translation.
new "Ukuran RAM harus hanya berisi angka dan positif."
# game/androidstrings.rpy:34
old "How would you like your application to be displayed?"
# Automatic translation.
new "Bagaimana Anda ingin aplikasi Anda ditampilkan?"
# game/androidstrings.rpy:35
old "In landscape orientation."
# Automatic translation.
new "Dalam orientasi lanskap."
# game/androidstrings.rpy:36
old "In portrait orientation."
# Automatic translation.
new "Dalam orientasi potret."
# game/androidstrings.rpy:37
old "In the user's preferred orientation."
# Automatic translation.
new "Dalam orientasi pilihan pengguna."
# game/androidstrings.rpy:38
old "Which app store would you like to support in-app purchasing through?"
# Automatic translation.
new "Toko aplikasi mana yang ingin Anda dukung untuk pembelian dalam aplikasi?"
# game/androidstrings.rpy:39
old "Google Play."
new "Google Play."
# game/androidstrings.rpy:40
old "Amazon App Store."
new "Amazon App Store."
# game/androidstrings.rpy:41
old "Both, in one app."
# Automatic translation.
new "Keduanya, dalam satu aplikasi."
# game/androidstrings.rpy:42
old "Neither."
# Automatic translation.
new "Tidak juga."
# game/androidstrings.rpy:43
old "Do you want to automatically update the Java source code?"
# Automatic translation.
new "Apakah Anda ingin memperbarui kode sumber Java secara otomatis?"
# game/androidstrings.rpy:44
old "Yes. This is the best choice for most projects."
# Automatic translation.
new "Ya, ini adalah pilihan terbaik untuk sebagian besar proyek."
# game/androidstrings.rpy:45
old "No. This may require manual updates when Ren'Py or the project configuration changes."
# Automatic translation.
new "Tidak. Hal ini mungkin memerlukan pembaruan manual ketika Ren'Py atau konfigurasi proyek berubah."
# game/androidstrings.rpy:46
old "Unknown configuration variable: {}"
# Automatic translation.
new "Variabel konfigurasi yang tidak diketahui: {}"
# game/androidstrings.rpy:47
old "I'm compiling a short test program, to see if you have a working JDK on your system."
# Automatic translation.
new "Saya sedang menyusun sebuah program uji coba singkat, untuk melihat apakah Anda memiliki JDK yang berfungsi di sistem Anda."
# game/androidstrings.rpy:48
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please make sure you installed the 'JavaSoft (Oracle) registry keys'.\n\nWithout a working JDK, I can't continue."
# Automatic translation.
new "Saya tidak dapat menggunakan javac untuk mengkompilasi berkas uji coba. Jika Anda belum menginstal Java Development Kit, silakan unduh dari:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nJDK berbeda dengan JRE, jadi mungkin saja Anda memiliki Java tanpa memiliki JDK. Pastikan Anda telah menginstal 'JavaSoft (Oracle) registry keys'.\n\nTanpa JDK yang berfungsi, saya tidak bisa melanjutkan."
# game/androidstrings.rpy:49
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
# Automatic translation.
new "Versi Java di komputer Anda tampaknya bukan JDK 8, yang merupakan satu-satunya versi yang didukung oleh Android SDK. Jika Anda perlu menginstal JDK 8, Anda dapat mengunduhnya dari:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nAnda juga dapat mengatur variabel lingkungan JAVA_HOME untuk menggunakan versi Java yang berbeda."
# game/androidstrings.rpy:50
old "The JDK is present and working. Good!"
# Automatic translation.
new "JDK hadir dan berfungsi. Bagus!"
# game/androidstrings.rpy:51
old "The Android SDK has already been unpacked."
# Automatic translation.
new "SDK Android telah dibongkar."
# game/androidstrings.rpy:52
old "Do you accept the Android SDK Terms and Conditions?"
# Automatic translation.
new "Apakah Anda menerima Syarat dan Ketentuan Android SDK?"
# game/androidstrings.rpy:53
old "I'm downloading the Android SDK. This might take a while."
# Automatic translation.
new "Saya sedang mengunduh Android SDK. Ini mungkin akan memakan waktu cukup lama."
# game/androidstrings.rpy:54
old "I'm extracting the Android SDK."
# Automatic translation.
new "Saya mengekstrak SDK Android."
# game/androidstrings.rpy:55
old "I've finished unpacking the Android SDK."
# Automatic translation.
new "Saya sudah selesai membongkar Android SDK."
# game/androidstrings.rpy:56
old "I'm about to download and install the required Android packages. This might take a while."
# Automatic translation.
new "Saya akan mengunduh dan menginstal paket Android yang diperlukan. Ini mungkin akan memakan waktu cukup lama."
# game/androidstrings.rpy:57
old "I was unable to accept the Android licenses."
# Automatic translation.
new "Saya tidak dapat menerima lisensi Android."
# game/androidstrings.rpy:59
old "I was unable to install the required Android packages."
# Automatic translation.
new "Saya tidak dapat menginstal paket Android yang diperlukan."
# game/androidstrings.rpy:60
old "I've finished installing the required Android packages."
# Automatic translation.
new "Saya sudah selesai menginstal paket Android yang diperlukan."
# game/androidstrings.rpy:61
old "It looks like you're ready to start packaging games."
# Automatic translation.
new "Sepertinya Anda sudah siap untuk mulai mengemas game."
# game/androidstrings.rpy:62
old "Please enter your name or the name of your organization."
# Automatic translation.
new "Masukkan nama Anda atau nama organisasi Anda."
# game/androidstrings.rpy:63
old "I found an android.keystore file in the rapt directory. Do you want to use this file?"
# Automatic translation.
new "Saya menemukan file android.keystore di direktori rapt. Apakah Anda ingin menggunakan file ini?"
# game/androidstrings.rpy:64
old "I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?"
# Automatic translation.
new "Saya dapat membuat kunci penandatanganan aplikasi untuk Anda. Kunci ini diperlukan untuk membuat APK Universal untuk sideload dan toko selain Google Play.\n\nApakah Anda ingin membuat kunci?"
# game/androidstrings.rpy:65
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
# Automatic translation.
new "Saya akan membuat kunci di file android.keystore.\n\nAnda perlu mencadangkan file ini. Jika Anda kehilangan file tersebut, Anda tidak akan dapat meningkatkan aplikasi Anda.\n\nAnda juga perlu menyimpan kunci dengan aman. Jika orang jahat mendapatkan file ini, mereka dapat membuat versi palsu dari aplikasi Anda, dan berpotensi mencuri data pengguna.\n\nApakah Anda akan membuat cadangan android.keystore, dan menyimpannya di tempat yang aman?"
# game/androidstrings.rpy:66
old "\n\nSaying 'No' will prevent key creation."
# Automatic translation.
new "\n\nMengatakan 'Tidak' akan mencegah pembuatan kunci."
# game/androidstrings.rpy:67
old "Could not create android.keystore. Is keytool in your path?"
# Automatic translation.
new "Tidak dapat membuat android.keystore. Apakah keytool ada di jalur Anda?"
# game/androidstrings.rpy:68
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
# Automatic translation.
new "Saya telah selesai membuat android.keystore. Silakan cadangkan, dan simpan di tempat yang aman."
# game/androidstrings.rpy:69
old "I found a bundle.keystore file in the rapt directory. Do you want to use this file?"
# Automatic translation.
new "Saya menemukan file bundle.keystore di direktori rapt. Apakah Anda ingin menggunakan file ini?"
# game/androidstrings.rpy:70
old "I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?"
# Automatic translation.
new "Saya bisa membuatkan kunci penandatanganan bundel untuk Anda. Kunci ini diperlukan untuk membuat Android App Bundle (AAB) untuk diunggah ke Google Play.\n\nApakah Anda ingin membuat kunci?"
# game/androidstrings.rpy:71
old "I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?"
# Automatic translation.
new "Saya akan membuat kunci di file bundle.keystore.\n\nAnda perlu mencadangkan file ini. Jika Anda kehilangan file tersebut, Anda tidak akan dapat meningkatkan aplikasi Anda.\n\nAnda juga perlu menyimpan kunci dengan aman. Jika orang jahat mendapatkan file ini, mereka dapat membuat versi palsu dari aplikasi Anda, dan berpotensi mencuri data pengguna.\n\nApakah Anda akan membuat cadangan bundle.keystore, dan menyimpannya di tempat yang aman?"
# game/androidstrings.rpy:73
old "Could not create bundle.keystore. Is keytool in your path?"
# Automatic translation.
new "Tidak dapat membuat bundle.keystore. Apakah keytool ada di jalur Anda?"
# game/androidstrings.rpy:74
old "I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place."
# Automatic translation.
new "Saya telah membuka direktori yang berisi android.keystore dan bundle.keystore. Silakan cadangkan, dan simpan di tempat yang aman."
# game/choose_directory.rpy:67
old "Select Projects Directory"
# Automatic translation.
new "Pilih Direktori Proyek"
# game/choose_theme.rpy:508
old "changing the theme"
# Automatic translation.
new "mengubah tema"
# game/distribute.rpy:1745
old "Copying files..."
# Automatic translation.
new "Menyalin file..."
# game/distribute_gui.rpy:195
old "Update old-game"
# Automatic translation.
new "Perbarui game lama"
# game/distribute_gui.rpy:231
old "(DLC)"
new "(DLC)"
# game/dmgcheck.rpy:50
old "Ren'Py is running from a read only folder. Some functionality will not work."
# Automatic translation.
new "Ren'Py berjalan dari folder read only. Beberapa fungsionalitas tidak akan berfungsi."
# game/dmgcheck.rpy:50
old "This is probably because Ren'Py is running directly from a Macintosh drive image. To fix this, quit this launcher, copy the entire %s folder somewhere else on your computer, and run Ren'Py again."
# Automatic translation.
new "Hal ini mungkin disebabkan karena Ren'Py berjalan langsung dari image drive Macintosh. Untuk memperbaikinya, keluar dari peluncur ini, salin seluruh folder %s di tempat lain pada komputer Anda, dan jalankan Ren'Py lagi."
# game/editor.rpy:152
old "A modern editor with many extensions including advanced Ren'Py integration."
# Automatic translation.
new "Editor modern dengan banyak ekstensi termasuk integrasi Ren'Py yang canggih."
# game/editor.rpy:153
old "A modern editor with many extensions including advanced Ren'Py integration.\n{a=jump:reinstall_vscode}Upgrade Visual Studio Code to the latest version.{/a}"
# Automatic translation.
new "Editor modern dengan banyak ekstensi termasuk integrasi Ren'Py yang canggih.\n{a=jump:reinstall_vscode}Tingkatkan Visual Studio Code ke versi terbaru.{/a}"
# game/editor.rpy:169
old "Visual Studio Code"
new "Visual Studio Code"
# game/editor.rpy:169
old "Up to 110 MB download required."
# Automatic translation.
new "Diperlukan unduhan hingga 110 MB."
# game/editor.rpy:182
old "A modern and approachable text editor."
# Automatic translation.
new "Editor teks yang modern dan mudah didekati."
# game/editor.rpy:196
old "Atom"
new "Atom"
# game/editor.rpy:196
old "Up to 150 MB download required."
# Automatic translation.
new "Diperlukan unduhan hingga 150 MB."
# game/editor.rpy:211
old "jEdit"
new "jEdit"
# game/editor.rpy:220
old "Visual Studio Code (System)"
# Automatic translation.
new "Kode Visual Studio (Sistem)"
# game/editor.rpy:220
old "Uses a copy of Visual Studio Code that you have installed outside of Ren'Py. It's recommended you install the language-renpy extension to add support for Ren'Py files."
# Automatic translation.
new "Menggunakan salinan Kode Visual Studio yang telah Anda instal di luar Ren'Py. Anda disarankan untuk menginstal ekstensi language-renpy untuk menambahkan dukungan untuk file Ren'Py."
# game/editor.rpy:226
old "System Editor"
# Automatic translation.
new "Editor Sistem"
# game/editor.rpy:245
old "None"
# Automatic translation.
new "Tidak ada"
# game/editor.rpy:352
old "Edit [text]."
new "Edit [text]."
# game/front_page.rpy:165
old "audio"
new "audio"
# game/front_page.rpy:182
old "Open project"
# Automatic translation.
new "Proyek terbuka"
# game/front_page.rpy:188
old "Actions"
# Automatic translation.
new "Tindakan"
# game/front_page.rpy:219
old "Web"
new "Web"
# game/front_page.rpy:219
old "(Beta)"
new "(Beta)"
# game/gui7.rpy:302
old "{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"
# Automatic translation.
new "{size=-4}\n\nIni tidak akan menimpa gui/main_menu.png, gui/game_menu.png, dan gui/window_icon.png, tetapi akan membuat file yang tidak ada.{/size}"
# game/gui7.rpy:333
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
# Automatic translation.
new "Kustom. GUI dioptimalkan untuk rasio aspek 16:9."
# game/gui7.rpy:424
old "creating a new project"
# Automatic translation.
new "membuat proyek baru"
# game/gui7.rpy:428
old "activating the new project"
# Automatic translation.
new "mengaktifkan proyek baru"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
# Automatic translation.
new "Tidak dapat menginstal [name!t], karena file yang cocok dengan [zipglob] tidak ditemukan di direktori Ren'Py SDK."
# game/install.rpy:79
old "Successfully installed [name!t]."
# Automatic translation.
new "Berhasil diinstal [name!t]."
# game/installer.rpy:10
old "Downloading [extension.download_file]."
# Automatic translation.
new "Mengunduh [extension.download_file]."
# game/installer.rpy:11
old "Could not download [extension.download_file] from [extension.download_url]:\n{b}[extension.download_error]"
# Automatic translation.
new "Tidak dapat mengunduh [extension.download_file] dari [extension.download_url]:\n{b}[extension.download_error]"
# game/installer.rpy:12
old "The downloaded file [extension.download_file] from [extension.download_url] is not correct."
# Automatic translation.
new "File yang diunduh [extension.download_file] dari [extension.download_url] tidak benar."
# game/interface.rpy:124
old "[interface.version]"
new "[interface.version]"
# game/interface.rpy:385
old "opening the log file"
# Automatic translation.
new "membuka file log"
# game/ios.rpy:379
old "There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices."
# Automatic translation.
new "Ada beberapa masalah yang diketahui dengan simulator iOS pada Apple Silicon. Silakan uji pada perangkat x86_64 atau iOS."
# game/itch.rpy:45
old "Downloading the itch.io butler."
# Automatic translation.
new "Mengunduh butler itch.io."
# game/preferences.rpy:106
old "General"
# Automatic translation.
new "Umum"
# game/preferences.rpy:107
old "Options"
# Automatic translation.
new "Pilihan"
# game/preferences.rpy:227
old "Daily check for update"
# Automatic translation.
new "Pemeriksaan harian untuk pembaruan"
# game/preferences.rpy:246
old "Launcher Theme:"
# Automatic translation.
new "Tema Peluncur:"
# game/preferences.rpy:250
old "Default theme"
# Automatic translation.
new "Tema default"
# game/preferences.rpy:251
old "Dark theme"
# Automatic translation.
new "Tema gelap"
# game/preferences.rpy:252
old "Custom theme"
# Automatic translation.
new "Tema khusus"
# game/preferences.rpy:256
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=[skins_url]}dalam Dokumentasi Ren'Py{/a}."
# game/preferences.rpy:273
old "Install Libraries:"
# Automatic translation.
new "Instal Perpustakaan:"
# game/preferences.rpy:301
old "Clean temporary files"
# Automatic translation.
new "Bersihkan file sementara"
# game/preferences.rpy:308
old "Cleaning temporary files..."
# Automatic translation.
new "Membersihkan file sementara..."
# game/preferences.rpy:338
old "{#in language font}Welcome! Please choose a language"
# Automatic translation.
new "{#in language font}Selamat datang! Silakan pilih bahasa"
# game/preferences.rpy:373
old "{#in language font}Start using Ren'Py in [lang_name]"
# Automatic translation.
new "{#in language font}Mulai menggunakan Ren'Py di [lang_name]"
# game/project.rpy:46
old "Lint checks your game for potential mistakes, and gives you statistics."
# Automatic translation.
new "Lint memeriksa permainan Anda untuk potensi kesalahan, dan memberi Anda statistik."
# game/project.rpy:283
old "This may be because the project is not writeable."
# Automatic translation.
new "Hal ini mungkin karena proyek ini tidak dapat ditulis."
# game/translations.rpy:391
old "Language (or None for the default language):"
# Automatic translation.
new "Bahasa (atau Tidak Ada untuk bahasa default):"
# game/updater.rpy:64
old "Release (Ren'Py 8, Python 3)"
# Automatic translation.
new "Rilis (Ren'Py 8, Python 3)"
# game/updater.rpy:65
old "Release (Ren'Py 7, Python 2)"
# Automatic translation.
new "Rilis (Ren'Py 7, Python 2)"
# game/updater.rpy:69
old "Prerelease (Ren'Py 8, Python 3)"
# Automatic translation.
new "Prarilis (Ren'Py 8, Python 3)"
# game/updater.rpy:70
old "Prerelease (Ren'Py 7, Python 2)"
# Automatic translation.
new "Prarilis (Ren'Py 7, Python 2)"
# game/updater.rpy:77
old "Nightly (Ren'Py 8, Python 3)"
# Automatic translation.
new "Malam hari (Ren'Py 8, Python 3)"
# game/updater.rpy:78
old "Nightly (Ren'Py 7, Python 2)"
# Automatic translation.
new "Malam hari (Ren'Py 7, Python 2)"
# game/updater.rpy:108
old "The update channel controls the version of Ren'Py the updater will download."
# Automatic translation.
new "Saluran pembaruan mengontrol versi Ren'Py yang akan diunduh oleh pembaru."
# game/updater.rpy:116
old "• {a=https://www.renpy.org/doc/html/changelog.html}View change log{/a}"
# Automatic translation.
new "- {a=https://www.renpy.org/doc/html/changelog.html}Lihat log perubahan{/a}"
# game/updater.rpy:118
old "• {a=https://www.renpy.org/dev-doc/html/changelog.html}View change log{/a}"
# Automatic translation.
new "- {a=https://www.renpy.org/dev-doc/html/changelog.html}Lihat log perubahan{/a}"
# game/updater.rpy:124
old "• This version is installed and up-to-date."
# Automatic translation.
new "- Versi ini sudah terinstal dan terbaru."
# game/updater.rpy:136
old "%B %d, %Y"
new "%B %d, %Y"
# game/updater.rpy:215
old "Fetching the list of update channels"
# Automatic translation.
new "Mengambil daftar saluran pembaruan"
# game/updater.rpy:220
old "downloading the list of update channels"
# Automatic translation.
new "mengunduh daftar saluran pembaruan"
# game/web.rpy:485
old "Creating package..."
# Automatic translation.
new "Membuat paket..."
# game/web.rpy:505
old "Web: [project.current.display_name!q]"
new "Web: [project.current.display_name!q]"
# game/web.rpy:535
old "Build Web Application"
# Automatic translation.
new "Membangun Aplikasi Web"
# game/web.rpy:536
old "Build and Open in Browser"
# Automatic translation.
new "Membangun dan Membuka di Browser"
# game/web.rpy:537
old "Open in Browser"
# Automatic translation.
new "Buka di Browser"
# game/web.rpy:538
old "Open build directory"
# Automatic translation.
new "Buka direktori build"
# game/web.rpy:560
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
# Automatic translation.
new "Gambar dan musik dapat diunduh saat bermain. File 'progressive_download.txt' akan dibuat sehingga Anda dapat mengonfigurasi perilaku ini."
translate indonesian strings:
# game/updater.rpy:79
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."
+18
View File
@@ -210,3 +210,21 @@ translate indonesian strings:
old "## Set this to a string containing your Apple Developer ID Application to enable codesigning on the Mac. Be sure to change it to your own Apple-issued ID."
new "## Atur ini ke string yang berisi ID Developer Aplikasi Apple mu untuk mengaktifkan codesigning di Mac. Pastikan untuk mengganti nya ke ID mu sendiri yang sudah di berikan oleh Apple."
translate indonesian strings:
# 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."
# Automatic translation.
new "## Teks yang ditempatkan pada layar tentang game. Tempatkan teks di antara tanda kutip tiga, dan biarkan baris kosong di antara paragraf."
# 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."
# Automatic translation.
new "## Ketiga variabel ini mengontrol, antara lain, mixer mana yang ditampilkan kepada pemain secara default. Menetapkan salah satu dari variabel ini ke False akan menyembunyikan mixer yang sesuai."
# 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\"."
# Automatic translation.
new "## Kunci lisensi Google Play diperlukan untuk melakukan pembelian dalam aplikasi. Kunci ini dapat ditemukan di konsol pengembang Google Play, di bawah \"Monetisasi\" > \"Pengaturan Monetisasi\" > \"Lisensi\"."
+53 -8
View File
@@ -174,8 +174,8 @@ translate indonesian strings:
new "## Ini menjalaskan struktur dasar yang paling sering di gunakan di layar menu permainan, ini ditampilkan beserta layar judul, dan menampilkan latar belakang,judul,dan navigasi."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## Parameter scroll dapat berisi 'None', atau \"viewport\" dan \"vpgrid\". Ketika layar ini di maksudkan untuk di gunakan dengan cabang satu atau lebih, yang di tempatkan di dalamnya."
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 "## Parameter scroll dapat berisi 'None', atau \"viewport\" dan \"vpgrid\". Layar ini di maksudkan untuk di gunakan dengan cabang satu atau lebih, yang di tempatkan di dalamnya."
# screens.rpy:476
old "Return"
@@ -291,7 +291,8 @@ translate indonesian strings:
# screens.rpy:739
old "Window"
new "Window"
# Automatic translation.
new "Jendela"
# screens.rpy:740
old "Fullscreen"
@@ -406,7 +407,8 @@ translate indonesian strings:
# screens.rpy:1003
old "Enter"
new "Enter"
# Automatic translation.
new "Masukkan"
# screens.rpy:1004
old "Advances dialogue and activates the interface."
@@ -430,7 +432,8 @@ translate indonesian strings:
# screens.rpy:1015
old "Escape"
new "Escape"
# Automatic translation.
new "Melarikan diri"
# screens.rpy:1016
old "Accesses the game menu."
@@ -454,7 +457,8 @@ translate indonesian strings:
# screens.rpy:1027
old "Page Up"
new "Page Up"
# Automatic translation.
new "Halaman Atas"
# screens.rpy:1028
old "Rolls back to earlier dialogue."
@@ -493,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"
@@ -715,3 +719,44 @@ translate indonesian strings:
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
translate indonesian strings:
# gui/game/screens.rpy:329
old "## The quit button is banned on iOS and unnecessary on Android and Web."
# Automatic translation.
new "## Tombol keluar dilarang di iOS dan tidak diperlukan di Android dan Web."
# gui/game/screens.rpy:676
old "Upload Sync"
# Automatic translation.
new "Sinkronisasi Unggah"
# gui/game/screens.rpy:680
old "Download Sync"
# Automatic translation.
new "Unduh Sinkronisasi"
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
# Automatic translation.
new "Membuka menu aksesibilitas."
# 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."
# Automatic translation.
new "## Menampilkan menu, jika diberikan. Menu dapat ditampilkan dengan tidak benar jika config.narrator_menu diatur ke True."
# gui/game/screens.rpy:1410
old "## Bubble screen"
# Automatic translation.
new "## Layar gelembung"
# 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."
# Automatic translation.
new "## Layar gelembung digunakan untuk menampilkan dialog kepada pemain saat menggunakan gelembung ucapan. Layar gelembung mengambil parameter yang sama dengan layar ucapkan, harus membuat tampilan dengan id \"apa\", dan dapat membuat tampilan dengan id \"kotak nama\", \"siapa\", dan \"jendela\"."
# 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"
+644
View File
@@ -333,3 +333,647 @@ translate italian strings:
old "return"
new "chiudi"
translate italian strings:
# renpy/common/00accessibility.rpy:32
old "bar"
new "bar"
# renpy/common/00accessibility.rpy:33
old "selected"
# Automatic translation.
new "selezionato"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "viewport"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
# Automatic translation.
new "scorrimento orizzontale"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
# Automatic translation.
new "scorrimento verticale"
# renpy/common/00accessibility.rpy:37
old "activate"
# Automatic translation.
new "attivare"
# renpy/common/00accessibility.rpy:38
old "deactivate"
# Automatic translation.
new "disattivare"
# renpy/common/00accessibility.rpy:39
old "increase"
# Automatic translation.
new "aumento"
# renpy/common/00accessibility.rpy:40
old "decrease"
# Automatic translation.
new "diminuzione"
# renpy/common/00accessibility.rpy:138
old "Font Override"
# Automatic translation.
new "Sovrascrittura dei caratteri"
# renpy/common/00accessibility.rpy:142
old "Default"
# Automatic translation.
new "Predefinito"
# 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"
# Automatic translation.
new "Dimensione del testo in scala"
# renpy/common/00accessibility.rpy:162
old "Reset"
new "Reset"
# renpy/common/00accessibility.rpy:168
old "Line Spacing Scaling"
# Automatic translation.
new "Interlinea Scala"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
# Automatic translation.
new "Testo ad alto contrasto"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing"
# Automatic translation.
new "Autocelebrazione"
# renpy/common/00accessibility.rpy:197
old "Off"
# Automatic translation.
new "Spento"
# renpy/common/00accessibility.rpy:201
old "Text-to-speech"
new "Text-to-speech"
# renpy/common/00accessibility.rpy:205
old "Clipboard"
# Automatic translation.
new "Appunti"
# renpy/common/00accessibility.rpy:209
old "Debug"
new "Debug"
# renpy/common/00accessibility.rpy:223
old "Self-Voicing Volume Drop"
# Automatic translation.
new "Caduta di volume autoavvertita"
# 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."
# Automatic translation.
new "Le opzioni di questo menu hanno lo scopo di migliorare l'accessibilità. Potrebbero non funzionare con tutti i giochi e alcune combinazioni di opzioni potrebbero rendere il gioco ingiocabile. Non si tratta di un problema del gioco o del motore. Per ottenere i migliori risultati quando si cambiano i caratteri, cercare di mantenere le dimensioni del testo uguali a quelle originarie."
# renpy/common/00action_file.rpy:378
old "Save slot %s: [text]"
# Automatic translation.
new "Salva lo slot %s: [text]"
# renpy/common/00action_file.rpy:461
old "Load slot %s: [text]"
# Automatic translation.
new "Caricare lo slot %s: [text]"
# renpy/common/00action_file.rpy:514
old "Delete slot [text]"
# Automatic translation.
new "Elimina slot [text]"
# renpy/common/00action_file.rpy:593
old "File page auto"
# Automatic translation.
new "Pagina di file automatica"
# renpy/common/00action_file.rpy:595
old "File page quick"
# Automatic translation.
new "Pagina di file veloce"
# renpy/common/00action_file.rpy:597
old "File page [text]"
# Automatic translation.
new "Pagina di file [text]"
# renpy/common/00action_file.rpy:796
old "Next file page."
# Automatic translation.
new "Pagina successiva."
# renpy/common/00action_file.rpy:868
old "Previous file page."
# Automatic translation.
new "Pagina precedente."
# renpy/common/00action_file.rpy:944
old "Quick save."
# Automatic translation.
new "Salvataggio rapido."
# renpy/common/00action_file.rpy:963
old "Quick load."
# Automatic translation.
new "Carico rapido."
# renpy/common/00action_other.rpy:381
old "Language [text]"
# Automatic translation.
new "Lingua [text]"
# renpy/common/00director.rpy:705
old "The interactive director is not enabled here."
# Automatic translation.
new "Il direttore interattivo non è abilitato in questo caso."
# renpy/common/00director.rpy:1504
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1510
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1574
old "Done"
# Automatic translation.
new "Fatto"
# renpy/common/00director.rpy:1584
old "(statement)"
# Automatic translation.
new "(dichiarazione)"
# renpy/common/00director.rpy:1585
old "(tag)"
new "(tag)"
# renpy/common/00director.rpy:1586
old "(attributes)"
# Automatic translation.
new "(attributi)"
# renpy/common/00director.rpy:1587
old "(transform)"
new "(transform)"
# renpy/common/00director.rpy:1612
old "(transition)"
new "(transition)"
# renpy/common/00director.rpy:1624
old "(channel)"
# Automatic translation.
new "(canale)"
# renpy/common/00director.rpy:1625
old "(filename)"
# Automatic translation.
new "(nome del file)"
# renpy/common/00director.rpy:1654
old "Change"
# Automatic translation.
new "Cambiamento"
# renpy/common/00director.rpy:1656
old "Add"
# Automatic translation.
new "Aggiungi"
# renpy/common/00director.rpy:1662
old "Remove"
# Automatic translation.
new "Rimuovere"
# renpy/common/00director.rpy:1697
old "Statement:"
# Automatic translation.
new "Dichiarazione:"
# renpy/common/00director.rpy:1718
old "Tag:"
new "Tag:"
# renpy/common/00director.rpy:1734
old "Attributes:"
# Automatic translation.
new "Attributi:"
# renpy/common/00director.rpy:1745
old "Click to toggle attribute, right click to toggle negative attribute."
# Automatic translation.
new "Fare clic per attivare l'attributo, fare clic con il tasto destro per attivare l'attributo negativo."
# renpy/common/00director.rpy:1757
old "Transforms:"
# Automatic translation.
new "Trasformazioni:"
# renpy/common/00director.rpy:1768
old "Click to set transform, right click to add to transform list."
# Automatic translation.
new "Fare clic per impostare la trasformazione, fare clic con il pulsante destro del mouse per aggiungere all'elenco delle trasformazioni."
# renpy/common/00director.rpy:1780
old "Behind:"
# Automatic translation.
new "Dietro:"
# renpy/common/00director.rpy:1789
old "Click to set, right click to add to behind list."
# Automatic translation.
new "Fare clic per impostare, fare clic con il pulsante destro del mouse per aggiungere all'elenco retrostante."
# renpy/common/00director.rpy:1801
old "Transition:"
# Automatic translation.
new "Transizione:"
# renpy/common/00director.rpy:1819
old "Channel:"
# Automatic translation.
new "Canale:"
# renpy/common/00director.rpy:1837
old "Audio Filename:"
# Automatic translation.
new "Nome del file audio:"
# 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?"
# Automatic translation.
new "Questo salvataggio è stato creato su un dispositivo diverso. I file di salvataggio creati male possono danneggiare il computer. Vi fidate del creatore di questo salvataggio e di tutti coloro che potrebbero aver modificato il file?"
# 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."
# Automatic translation.
new "Vi fidate del dispositivo su cui è stato creato il salvataggio? Scegliere sì solo se si è l'unico utente del dispositivo."
# renpy/common/00keymap.rpy:322
old "Failed to save screenshot as %s."
# Automatic translation.
new "Impossibile salvare l'immagine come %s."
# renpy/common/00preferences.rpy:271
old "display"
new "display"
# renpy/common/00preferences.rpy:283
old "transitions"
# Automatic translation.
new "transizioni"
# renpy/common/00preferences.rpy:292
old "skip transitions"
# Automatic translation.
new "saltare le transizioni"
# renpy/common/00preferences.rpy:294
old "video sprites"
# Automatic translation.
new "sprite video"
# renpy/common/00preferences.rpy:303
old "show empty window"
# Automatic translation.
new "mostra la finestra vuota"
# renpy/common/00preferences.rpy:312
old "text speed"
# Automatic translation.
new "velocità del testo"
# renpy/common/00preferences.rpy:320
old "joystick"
new "joystick"
# renpy/common/00preferences.rpy:320
old "joystick..."
new "joystick..."
# renpy/common/00preferences.rpy:327
old "skip"
# Automatic translation.
new "saltare"
# renpy/common/00preferences.rpy:330
old "skip unseen [text]"
# Automatic translation.
new "saltare non visto [text]"
# renpy/common/00preferences.rpy:335
old "skip unseen text"
# Automatic translation.
new "saltare il testo non visto"
# renpy/common/00preferences.rpy:337
old "begin skipping"
# Automatic translation.
new "iniziare a saltare"
# renpy/common/00preferences.rpy:341
old "after choices"
# Automatic translation.
new "dopo le scelte"
# renpy/common/00preferences.rpy:348
old "skip after choices"
# Automatic translation.
new "saltare dopo le scelte"
# renpy/common/00preferences.rpy:350
old "auto-forward time"
# Automatic translation.
new "tempo di inoltro automatico"
# renpy/common/00preferences.rpy:364
old "auto-forward"
# Automatic translation.
new "Inoltro automatico"
# renpy/common/00preferences.rpy:371
old "Auto forward"
# Automatic translation.
new "Avanzamento automatico"
# renpy/common/00preferences.rpy:374
old "auto-forward after click"
# Automatic translation.
new "Inoltro automatico dopo il clic"
# renpy/common/00preferences.rpy:383
old "automatic move"
# Automatic translation.
new "spostamento automatico"
# renpy/common/00preferences.rpy:392
old "wait for voice"
# Automatic translation.
new "attendere la voce"
# renpy/common/00preferences.rpy:401
old "voice sustain"
# Automatic translation.
new "sostegno della voce"
# renpy/common/00preferences.rpy:410
old "self voicing"
# Automatic translation.
new "autocelebrazione"
# renpy/common/00preferences.rpy:419
old "self voicing volume drop"
# Automatic translation.
new "caduta di volume dell'autocelebrazione"
# renpy/common/00preferences.rpy:427
old "clipboard voicing"
# Automatic translation.
new "Votazione degli appunti"
# renpy/common/00preferences.rpy:436
old "debug voicing"
new "debug voicing"
# renpy/common/00preferences.rpy:445
old "emphasize audio"
# Automatic translation.
new "enfatizzare l'audio"
# renpy/common/00preferences.rpy:454
old "rollback side"
# Automatic translation.
new "lato rollback"
# renpy/common/00preferences.rpy:464
old "gl powersave"
new "gl powersave"
# renpy/common/00preferences.rpy:470
old "gl framerate"
# Automatic translation.
new "framerate gl"
# renpy/common/00preferences.rpy:473
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:476
old "font transform"
# Automatic translation.
new "trasformazione dei caratteri"
# renpy/common/00preferences.rpy:479
old "font size"
# Automatic translation.
new "dimensione del carattere"
# renpy/common/00preferences.rpy:487
old "font line spacing"
# Automatic translation.
new "interlinea del carattere"
# renpy/common/00preferences.rpy:495
old "system cursor"
# Automatic translation.
new "cursore di sistema"
# renpy/common/00preferences.rpy:504
old "renderer menu"
# Automatic translation.
new "menu del renderer"
# renpy/common/00preferences.rpy:507
old "accessibility menu"
# Automatic translation.
new "menu accessibilità"
# renpy/common/00preferences.rpy:510
old "high contrast text"
# Automatic translation.
new "testo ad alto contrasto"
# renpy/common/00preferences.rpy:519
old "audio when minimized"
# Automatic translation.
new "audio quando è ridotto a icona"
# renpy/common/00preferences.rpy:528
old "audio when unfocused"
# Automatic translation.
new "audio quando non viene messo a fuoco"
# renpy/common/00preferences.rpy:537
old "web cache preload"
# Automatic translation.
new "precaricamento della cache web"
# renpy/common/00preferences.rpy:552
old "voice after game menu"
# Automatic translation.
new "voce dopo il menu di gioco"
# renpy/common/00preferences.rpy:571
old "main volume"
# Automatic translation.
new "volume principale"
# renpy/common/00preferences.rpy:572
old "music volume"
# Automatic translation.
new "volume della musica"
# renpy/common/00preferences.rpy:573
old "sound volume"
# Automatic translation.
new "volume del suono"
# renpy/common/00preferences.rpy:574
old "voice volume"
# Automatic translation.
new "volume della voce"
# renpy/common/00preferences.rpy:575
old "mute main"
# Automatic translation.
new "silenziamento principale"
# renpy/common/00preferences.rpy:576
old "mute music"
# Automatic translation.
new "disattivare la musica"
# renpy/common/00preferences.rpy:577
old "mute sound"
# Automatic translation.
new "Disattivare l'audio"
# renpy/common/00preferences.rpy:578
old "mute voice"
# Automatic translation.
new "voce muta"
# renpy/common/00preferences.rpy:579
old "mute all"
# Automatic translation.
new "disattivare tutti"
# renpy/common/00speechbubble.rpy:344
old "Speech Bubble Editor"
# Automatic translation.
new "Editor di bolle vocali"
# renpy/common/00speechbubble.rpy:349
old "(hide)"
# Automatic translation.
new "(Nascondi)"
# renpy/common/00sync.rpy:70
old "Sync downloaded."
# Automatic translation.
new "Sincronizzazione scaricata."
# renpy/common/00sync.rpy:190
old "Could not connect to the Ren'Py Sync server."
# Automatic translation.
new "Impossibile connettersi al server Ren'Py Sync."
# renpy/common/00sync.rpy:192
old "The Ren'Py Sync server timed out."
# Automatic translation.
new "Il server Ren'Py Sync è scaduto."
# renpy/common/00sync.rpy:194
old "An unknown error occurred while connecting to the Ren'Py Sync server."
# Automatic translation.
new "Si è verificato un errore sconosciuto durante la connessione al server Ren'Py Sync."
# 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."
# Automatic translation.
new "Il server Ren'Py Sync non dispone di una copia di questa sincronizzazione. L'ID della sincronizzazione potrebbe non essere valido o potrebbe essere scaduto."
# renpy/common/00sync.rpy:409
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
# Automatic translation.
new "Inserire l'ID di sincronizzazione generato.\nNon inserite mai un ID di sincronizzazione che non avete creato voi stessi."
# renpy/common/00sync.rpy:428
old "The sync ID is not in the correct format."
# Automatic translation.
new "L'ID di sincronizzazione non è nel formato corretto."
# renpy/common/00sync.rpy:448
old "The sync could not be decrypted."
# Automatic translation.
new "Non è stato possibile decifrare la sincronizzazione."
# renpy/common/00sync.rpy:471
old "The sync belongs to a different game."
# Automatic translation.
new "La sincronizzazione appartiene a un gioco diverso."
# renpy/common/00sync.rpy:476
old "The sync contains a file with an invalid name."
# Automatic translation.
new "La sincronizzazione contiene un file con un nome non valido."
# renpy/common/00sync.rpy:529
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
# Automatic translation.
new "Questo caricherà i salvataggi sul server di sincronizzazione {a=https://sync.renpy.org}Ren'Py{/a}.\nVuoi continuare?"
# renpy/common/00sync.rpy:558
old "Enter Sync ID"
# Automatic translation.
new "Immettere l'ID di sincronizzazione"
# renpy/common/00sync.rpy:569
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
# Automatic translation.
new "Questo contatterà il server di sincronizzazione {a=https://sync.renpy.org}Ren'Py{/a}."
# renpy/common/00sync.rpy:596
old "Sync Success"
# Automatic translation.
new "Successo della sincronizzazione"
# renpy/common/00sync.rpy:599
old "The Sync ID is:"
# Automatic translation.
new "L'ID di sincronizzazione è:"
# renpy/common/00sync.rpy:605
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}."
# Automatic translation.
new "È possibile utilizzare questo ID per scaricare il salvataggio su un altro dispositivo.\nQuesta sincronizzazione scadrà tra un'ora.\nRen'Py Sync è supportato da {a=https://www.renpy.org/sponsors.html}Gli sponsor di Ren'Py{/a}."
# renpy/common/00sync.rpy:631
old "Sync Error"
# Automatic translation.
new "Errore di sincronizzazione"
+109 -1
View File
@@ -99,7 +99,8 @@ translate italian strings:
# _developer/inspector.rpym:139
old "displayable:"
new "displayable:"
# Automatic translation.
new "visualizzabile:"
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
@@ -177,3 +178,110 @@ translate italian strings:
old "jump <label>: jumps to label"
new "jump <label>: salta alla label"
translate italian strings:
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
# Automatic translation.
new "Direttore interattivo (D)"
# renpy/common/_developer/developer.rpym:51
old "Persistent Viewer"
# Automatic translation.
new "Visualizzatore persistente"
# renpy/common/_developer/developer.rpym:59
old "Show Image Load Log (F4)"
# Automatic translation.
new "Mostra registro caricamento immagini (F4)"
# renpy/common/_developer/developer.rpym:62
old "Hide Image Load Log (F4)"
# Automatic translation.
new "Nascondere il registro di caricamento dell'immagine (F4)"
# renpy/common/_developer/developer.rpym:65
old "Image Attributes"
# Automatic translation.
new "Attributi dell'immagine"
# renpy/common/_developer/developer.rpym:70
old "Speech Bubble Editor (Shift+B)"
# Automatic translation.
new "Editor di bolle vocali (Shift+B)"
# renpy/common/_developer/developer.rpym:97
old "[name] [attributes] (hidden)"
# Automatic translation.
new "[name] [attributes] (nascosto)"
# renpy/common/_developer/developer.rpym:101
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:162
old "Hide deleted"
# Automatic translation.
new "Nascondi cancellato"
# renpy/common/_developer/developer.rpym:162
old "Show deleted"
# Automatic translation.
new "Mostra cancellata"
# renpy/common/_developer/developer.rpym:389
old "Type to filter: "
# Automatic translation.
new "Tipo da filtrare: "
# renpy/common/_developer/developer.rpym:507
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
# Automatic translation.
new "Texture: [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:511
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# Automatic translation.
new "Cache immagini: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00console.rpy:789
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
# Automatic translation.
new "help: mostra questo aiuto\n help <expr>: mostra la firma e la documentazione di <expr>"
# renpy/common/00console.rpy:813
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
# Automatic translation.
new "La guida potrebbe visualizzare funzioni non documentate. Verificate che la funzione o\nLa classe che si vuole utilizzare è documentata.\n\n"
# renpy/common/00console.rpy:854
old "stack: print the return stack"
# Automatic translation.
new "stack: stampare lo stack di ritorno"
# renpy/common/00console.rpy:908
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"
# Automatic translation.
new "watch <expression>: guardare un'espressione python\n watch short: rende breve la rappresentazione delle espressioni tracciate (default)\n watch long: rende la rappresentazione delle espressioni tracciate come è"
# renpy/common/00console.rpy:1028
old "short: Shorten the representation of objects on the console (default)."
# Automatic translation.
new "short: Accorcia la rappresentazione degli oggetti sulla console (impostazione predefinita)."
# renpy/common/00console.rpy:1032
old "long: Print the full representation of objects on the console."
# Automatic translation.
new "long: Stampa la rappresentazione completa degli oggetti sulla console."
# renpy/common/00console.rpy:1036
old "escape: Enables escaping of unicode symbols in unicode strings."
# Automatic translation.
new "escape: Abilita l'escape dei simboli unicode nelle stringhe unicode."
# renpy/common/00console.rpy:1040
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
# Automatic translation.
new "unescape: Disabilita l'escape dei simboli unicode nelle stringhe unicode e le stampa così come sono (impostazione predefinita)."
+132
View File
@@ -177,3 +177,135 @@ translate italian strings:
old "Copies the errors.txt file to the clipboard."
new "Copia il file errors.txt negli appunti."
translate italian strings:
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Renderer"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
# Automatic translation.
new "Forza il renderizzatore GL"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
# Automatic translation.
new "Rendering angolare della forza"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
# Automatic translation.
new "Forza il renderizzatore GLES"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
# Automatic translation.
new "Rendering Force GL2"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
# Automatic translation.
new "Forza il renderizzatore ANGLE2"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
# Automatic translation.
new "Forza il renderizzatore GLES2"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
# Automatic translation.
new "Abilitazione (nessuna lista di blocco)"
# renpy/common/00gltest.rpy:159
old "Powersave"
# Automatic translation.
new "Risparmio energetico"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Framerate"
# renpy/common/00gltest.rpy:177
old "Screen"
# Automatic translation.
new "Schermo"
# renpy/common/00gltest.rpy:181
old "60"
new "60"
# renpy/common/00gltest.rpy:185
old "30"
new "30"
# renpy/common/00gltest.rpy:191
old "Tearing"
new "Tearing"
# renpy/common/00gltest.rpy:249
old "This game requires use of GL2 that can't be initialised."
# Automatic translation.
new "Questo gioco richiede l'uso di GL2 che non può essere inizializzato."
# 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."
# Automatic translation.
new "Il file {a=edit:1:log.txt}log.txt{/a} può contenere informazioni che aiutano a determinare il problema del computer."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
# Automatic translation.
new "Maggiori dettagli su come risolvere questo problema sono disponibili nella documentazione di {a=[url]}{/a} ."
# renpy/common/00gltest.rpy:281
old "Change render options"
# Automatic translation.
new "Modifica delle opzioni di rendering"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
# Automatic translation.
new "Premere o spostare il pulsante '[control!s]'[kind]."
# renpy/common/_errorhandling.rpym:555
old "Open"
# Automatic translation.
new "Aperto"
# renpy/common/_errorhandling.rpym:559
old "Copy BBCode"
# Automatic translation.
new "Copiare il codice BBC"
# renpy/common/_errorhandling.rpym:561
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
# Automatic translation.
new "Copia il file traceback.txt negli appunti come BBcode per forum come https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:563
old "Copy Markdown"
# Automatic translation.
new "Copiare Markdown"
# renpy/common/_errorhandling.rpym:565
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
# Automatic translation.
new "Copia il file traceback.txt negli appunti come Markdown per Discord."
# renpy/common/_errorhandling.rpym:626
old "Ignores the exception, allowing you to continue."
# Automatic translation.
new "Ignora l'eccezione, consentendo di continuare."
# renpy/common/_errorhandling.rpym:637
old "Console"
new "Console"
# renpy/common/_errorhandling.rpym:639
old "Opens a console to allow debugging the problem."
# Automatic translation.
new "Apre una console per consentire il debug del problema."
+40 -1
View File
@@ -327,7 +327,8 @@ translate italian strings:
# gui.rpy:331
old "## History"
new "## History"
# Automatic translation.
new "## Storia"
# gui.rpy:333
old "## The history screen displays dialogue that the player has already dismissed."
@@ -433,3 +434,41 @@ translate italian strings:
old "## Mobile devices"
new "## Dispositivi mobili"
translate italian strings:
# 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."
# Automatic translation.
new "## L'istruzione init offset fa sì che le istruzioni di inizializzazione in questo file vengano eseguite prima delle istruzioni di init in qualsiasi altro file."
# gui/game/gui.rpy:14
old "## Enable checks for invalid or unstable properties in screens or transforms"
# Automatic translation.
new "## Abilita i controlli per le proprietà non valide o instabili nelle schermate o nelle trasformazioni"
# gui/game/gui.rpy:278
old "## The position of the main menu text."
# Automatic translation.
new "## La posizione del testo del menu principale."
# gui/game/gui.rpy:287
old "## Generic frames."
# Automatic translation.
new "## Cornici generiche."
# 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."
# Automatic translation.
new "## L'interfaccia grafica predefinita utilizza solo i cursori e le barre di scorrimento verticali. Tutte le altre barre sono utilizzate solo nelle schermate scritte dal creatore."
# 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."
# Automatic translation.
new "## Il numero massimo di voci in modalità NVL che Ren'Py visualizzerà. Se devono essere visualizzate più voci di questa, la voce più vecchia verrà rimossa."
# gui/game/gui.rpy:446
old "## Change the size and spacing of various things."
# Automatic translation.
new "## Cambia la dimensione e la spaziatura di vari elementi."
File diff suppressed because it is too large Load Diff
+25 -1
View File
@@ -23,7 +23,8 @@ translate italian strings:
# options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 Default GUI"
# Automatic translation.
new "GUI predefinita di Ren'Py 7"
# options.rpy:20
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
@@ -197,3 +198,26 @@ translate italian strings:
old "## Icon"
new "## Icona"
translate italian strings:
# 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."
# Automatic translation.
new "## Testo che viene inserito nella schermata del gioco. Posizionare il testo tra le virgolette triple e lasciare una riga vuota tra i paragrafi."
# 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."
# Automatic translation.
new "## Queste tre variabili controllano, tra le altre cose, quali mixer vengono mostrati al giocatore per impostazione predefinita. Impostando una di queste variabili a False, si nasconde il mixer appropriato."
# gui/game/options.rpy:82
old "## Between screens of the game menu."
# Automatic translation.
new "## Tra le schermate del menu di gioco."
# 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\"."
# Automatic translation.
new "## Per eseguire gli acquisti in-app è necessaria una chiave di licenza Google Play. Si trova nella console per sviluppatori di Google Play, in \"Monetizzazione\" > \"Impostazione monetizzazione\" > \"Licenze\"."
+114 -23
View File
@@ -11,7 +11,8 @@ translate italian strings:
# screens.rpy:91
old "## Say screen"
new "## Say screen"
# Automatic translation.
new "## Dire schermo"
# screens.rpy:93
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.)"
@@ -27,7 +28,8 @@ translate italian strings:
# screens.rpy:169
old "## Input screen"
new "## Input screen"
# Automatic translation.
new "## Schermata di ingresso"
# screens.rpy:171
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
@@ -43,7 +45,8 @@ translate italian strings:
# screens.rpy:205
old "## Choice screen"
new "## Choice screen"
# Automatic translation.
new "## Schermata di scelta"
# screens.rpy:207
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
@@ -59,7 +62,8 @@ translate italian strings:
# screens.rpy:244
old "## Quick Menu screen"
new "## Quick Menu screen"
# Automatic translation.
new "## Schermata del menu rapido"
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
@@ -103,7 +107,8 @@ translate italian strings:
# screens.rpy:291
old "## Navigation screen"
new "## Navigation screen"
# Automatic translation.
new "## Schermata di navigazione"
# screens.rpy:293
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
@@ -151,7 +156,8 @@ translate italian strings:
# screens.rpy:350
old "## Main Menu screen"
new "## Main Menu screen"
# Automatic translation.
new "## Schermata del menu principale"
# screens.rpy:352
old "## Used to display the main menu when Ren'Py starts."
@@ -167,14 +173,15 @@ translate italian strings:
# screens.rpy:413
old "## Game Menu screen"
new "## Game Menu screen"
# Automatic translation.
new "## Schermata del menu di gioco"
# screens.rpy:415
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 "## Costruisce la struttura comune di tutti gli screen game menu. Viene avviato nella schermata del titolo, e mostra lo sfondo, il titolo e la navigazione."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
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 "## Il parametro 'scroll' può essere None, oppure uno fra \"viewport\" o \"vpgrid\". Questo screen è creato per essere usato con uno o più figli, che sono trasclusi (piazzati) dentro di esso."
# screens.rpy:476
@@ -183,7 +190,8 @@ translate italian strings:
# screens.rpy:539
old "## About screen"
new "## About screen"
# Automatic translation.
new "## Informazioni sullo schermo"
# screens.rpy:541
old "## This screen gives credit and copyright information about the game and Ren'Py."
@@ -215,7 +223,8 @@ translate italian strings:
# screens.rpy:582
old "## Load and Save screens"
new "## Load and Save screens"
# Automatic translation.
new "## Schermate di caricamento e salvataggio"
# screens.rpy:584
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."
@@ -275,7 +284,8 @@ translate italian strings:
# screens.rpy:711
old "## Preferences screen"
new "## Preferences screen"
# Automatic translation.
new "## Schermata delle preferenze"
# screens.rpy:713
old "## The preferences screen allows the player to configure the game to better suit themselves."
@@ -359,7 +369,8 @@ translate italian strings:
# screens.rpy:882
old "## History screen"
new "## History screen"
# Automatic translation.
new "## Schermata della storia"
# screens.rpy:884
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."
@@ -387,7 +398,8 @@ translate italian strings:
# screens.rpy:965
old "## Help screen"
new "## Help screen"
# Automatic translation.
new "## Schermata di aiuto"
# screens.rpy:967
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."
@@ -455,7 +467,8 @@ translate italian strings:
# screens.rpy:1027
old "Page Up"
new "Page Up"
# Automatic translation.
new "Pagina su"
# screens.rpy:1028
old "Rolls back to earlier dialogue."
@@ -463,7 +476,8 @@ translate italian strings:
# screens.rpy:1031
old "Page Down"
new "Page Down"
# Automatic translation.
new "Pagina giù"
# screens.rpy:1032
old "Rolls forward to later dialogue."
@@ -494,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"
@@ -523,11 +537,13 @@ translate italian strings:
# screens.rpy:1085
old "D-Pad, Sticks"
new "D-Pad, Sticks"
# Automatic translation.
new "D-Pad, bastoni"
# screens.rpy:1089
old "Start, Guide"
new "Start, Guide"
# Automatic translation.
new "Avvio, Guida"
# screens.rpy:1090
old "Access the game menu."
@@ -547,7 +563,8 @@ translate italian strings:
# screens.rpy:1128
old "## Confirm screen"
new "## Confirm screen"
# Automatic translation.
new "## Conferma la schermata"
# screens.rpy:1130
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
@@ -575,7 +592,8 @@ translate italian strings:
# screens.rpy:1191
old "## Skip indicator screen"
new "## Skip indicator screen"
# Automatic translation.
new "## Schermata dell'indicatore di salto"
# screens.rpy:1193
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
@@ -595,7 +613,8 @@ translate italian strings:
# screens.rpy:1247
old "## Notify screen"
new "## Notify screen"
# Automatic translation.
new "## Schermata di notifica"
# screens.rpy:1249
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.)"
@@ -607,7 +626,8 @@ translate italian strings:
# screens.rpy:1286
old "## NVL screen"
new "## NVL screen"
# Automatic translation.
new "## Schermo NVL"
# screens.rpy:1288
old "## This screen is used for NVL-mode dialogue and menus."
@@ -676,3 +696,74 @@ translate italian strings:
# screens.rpy:1079
old "Left Trigger\nLeft Shoulder"
new "Grilletto Sinistro\nLaterale Sinistro"
translate italian strings:
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
# Automatic translation.
new "## Rendere la casella dei nomi disponibile per lo styling attraverso l'oggetto Character."
# 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: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:329
old "## The quit button is banned on iOS and unnecessary on Android and Web."
# Automatic translation.
new "## Il pulsante di abbandono è vietato su iOS e non è necessario su Android e sul Web."
# 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:676
old "Upload Sync"
# Automatic translation.
new "Sincronizzazione del caricamento"
# gui/game/screens.rpy:680
old "Download Sync"
# Automatic translation.
new "Scarica Sync"
# gui/game/screens.rpy:921
old "## This determines what tags are allowed to be displayed on the history screen."
# Automatic translation.
new "## Determina quali tag possono essere visualizzati nella schermata della cronologia."
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
# Automatic translation.
new "Apre il menu di accessibilità."
# 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:1248
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
# Automatic translation.
new "## Dobbiamo usare un carattere che contenga il glifo NERO TRIANGOLO PICCOLO IN PUNTA DESTRA."
# 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:1410
old "## Bubble screen"
# Automatic translation.
new "## Schermo a bolle"
# 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."
# Automatic translation.
new "## La schermata bubble è usata per visualizzare il dialogo al giocatore quando si usano le bolle vocali. Lo schermo a bolle prende gli stessi parametri dello schermo say, deve creare un visualizzabile con l'id \"what\" e può creare visualizzabili con gli id \"namebox\", \"who\" e \"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"

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