Compare commits

...

1036 Commits

Author SHA1 Message Date
Tom Rothamel 136e31ada7 When a used screen takes parameters, persist its scope across interactions.
This makes sense for the new behavior of screens with parameters,
and is useful.

Fixes #194.
2014-09-08 22:59:26 -04:00
Tom Rothamel dfe32a1339 Ignore time spent not scrolling when edge scrolling.
This prevents big jumps from occuring when the mouse leaves one side
of the window, and re-enters on another side of the window.

Fixes #431.
2014-09-08 22:31:28 -04:00
Tom Rothamel bab6f8afc6 Allow a transform to have both a function and arguments.
This fixes a regression of the 6.17 behavior.

See: Jake's battle engine.
2014-09-07 22:51:00 -04:00
Tom Rothamel c0ea8ebcf2 Document use statement changes. 2014-09-07 00:11:33 -04:00
Tom Rothamel 033fcbbeaf sl2: Implement the "use <screen> id <id>" syntax.
Where sl1 used structural equality to transfer state between
screens sharing the same tag, sl2 can't do that. (Doing so would
require maintaining _name, which is expensive.)

Instead, we allow uses of screens to include an id property,
which explcitly specifies equality of used screens.
2014-09-06 23:44:54 -04:00
Tom Rothamel a2398afaf1 Update properties in Transform.default_function.
This preserves non-ATL transform behavior in the face of taking
state and execution state.

Fixes #445.
2014-09-06 20:47:10 -04:00
Tom Rothamel cacef7e71a Fix formatting of "could not find return label". 2014-09-06 20:19:42 -04:00
Tom Rothamel 54f9662bc0 Transpose grids as we render the grid.
Before this patch, we would transpose grids once, which caused a
problem where a reused grid would only be transposed once.

See: https://mail.google.com/mail/u/0/#inbox/1484b917bff1005b (Private)
2014-09-06 16:04:10 -04:00
Tom Rothamel 0fea7ee77c Use RENPY_AUTO_LOAD to override config.auto_load.
This provides an easy way to force a save load for development
purposes.
2014-09-06 14:26:30 -04:00
Tom Rothamel 1c71db539e Test that save directories are writable on Android before using them.
Relevant to #441.
2014-09-05 23:27:56 -04:00
Tom Rothamel e8a0b8413d Do not use the game-local save directory on Android.
Relevant to #441.
2014-09-05 23:18:12 -04:00
Tom Rothamel e192814d02 Error out if the base directory doesn't exist. 2014-09-05 15:21:37 -04:00
Tom Rothamel 066a6a6185 sl2: Do not take state from predicted displayables or transforms.
If the parameters to a displayable or transform change between
when a screen is predicted and when it is shown, it means that
the prediction was incorrect.

We now discard the incorrect prediction state, instead of allowing it
to influence the screen.

See: http://lemmasoft.renai.us/forums/ucp.php?i=pm&mode=view&f=0&p=144880
See: http://lemmasoft.renai.us/forums/viewtopic.php?p=338394#p338394
2014-09-04 23:05:13 -04:00
Tom Rothamel 4034f87f26 Revert take_execution_state to the 6.17 version.
This is intended to fix problems caused by the changes outside of
screens.
2014-09-04 23:05:13 -04:00
Tom Rothamel 3ee319ba9e Merge pull request #443 from LuqueDaniel/update-es
Update spanish translation
2014-09-04 08:31:42 -05:00
Tom Rothamel 4c094852e8 Various doc fixes. 2014-09-03 18:36:44 -04:00
Daniel Luque a4aef8ceb1 Update spanish translation 2014-09-03 13:54:18 +02:00
Tom Rothamel 5794e8b3b7 Fix HideInterface documentation. 2014-09-02 22:59:30 -04:00
Tom Rothamel 3ab4f62cf8 Make renpy.file() work with the with statement. 2014-09-02 21:17:40 -04:00
kyouryuukunn 7f70d22344 Merge pull request #442 from kyouryuukunn/update_japanese_template
update japanese translation
2014-09-02 23:01:13 +09:00
kyouryuukunn 4a7ca192e9 update japanese translation 2014-09-02 22:59:57 +09:00
Tom Rothamel 74fce0049c Add the OnEvent displayable to run actions on events.
By being a displayable, OnEvent is able to invoke actions even when
a screen is not being updated. This is important in the new version
of Ren'Py, which tries to avoid screen updates as much as possible.
2014-09-01 21:27:19 -04:00
Tom Rothamel 22397c225f screen: Propagate hide events to children of the screen. 2014-09-01 21:24:52 -04:00
Tom Rothamel 8f80e828c7 Do not autosave when loading an autosave file.
Doing so will screw us up, because we'll change the autsave slots
right before we load.
2014-09-01 18:20:20 -04:00
Tom Rothamel c901b4c1bd drag: Improved response to changes in position
* More accurately check for changes in position.
* Allow a change in position to override a drag_group position.
2014-09-01 15:05:40 -04:00
Tom Rothamel 2f1455351d Update doc generation to use the new location of pyanalysis. 2014-09-01 09:43:08 -04:00
Tom Rothamel 83c7eef6c8 drag: Correctly detect placement changes.
When detecting placement changes, we want to use xpos/ypos, not
self.x/self.y.
2014-08-31 23:15:17 -04:00
Tom Rothamel f29ab675ec Call run_unhovered when a drag is unhovered. 2014-08-31 22:41:43 -04:00
Tom Rothamel d4e1a1d1f3 If the placement of a drag changes, move it to the new position.
This is probably the least bad thing we can do with a drag that
has changed its placement.
2014-08-31 22:09:06 -04:00
Tom Rothamel cede3f651d Fix call to super().__init__ in Drag constructor. 2014-08-31 19:34:19 -04:00
Tom Rothamel 4ed0c8e313 atl: Try to avoid recompiling constant ATL.
This should speed things up a little by avoiding the expensive
recompile step where possible.
2014-08-31 01:42:31 -04:00
Tom Rothamel ba4c6d8b10 Add a script analysis phase.
For now, all we do in this phase it analyze ATL for const-ness.
2014-08-31 00:05:29 -04:00
Tom Rothamel 87f2975dd0 Add the ability to analyze ATL for const-ness. 2014-08-31 00:04:12 -04:00
Tom Rothamel 15717d87af transform: default_xpos -> inherited_xpos, etc.
This is a field rename to better reflect what we use the fields for,
in the hope of making code slightly more reasonable.
2014-08-30 16:04:14 -04:00
Tom Rothamel 59174e44fb Rename renpy.sl2.pyutil to renpy.pyanalysis.
It more accurately reflects what the module does, and it may be useful
outside of sl2.
2014-08-30 15:57:01 -04:00
Tom Rothamel b6778f1a9e transform: Take state in the take_state method.
Previously, we had be transferring the position state in the
take_execution_state method.
2014-08-30 14:28:54 -04:00
Tom Rothamel e693038479 take_execution_state should properly inherit xpos. 2014-08-30 14:16:43 -04:00
Tom Rothamel f1cae21fdb sl2: Force a screen update on hide.
The multiple-update-prevention was stopping us from updating the
screen on hide like we want to.
2014-08-30 12:17:30 -04:00
Tom Rothamel 33e557c04f Check that the what argument to Character.__call__ is a string. 2014-08-29 21:50:26 -04:00
Tom Rothamel 32773f3832 Ensure coordinates of drags remain integers. 2014-08-28 22:07:06 -04:00
Tom Rothamel 32a6de49c9 Allow drags to exist outside a drag_group without a drag_name. 2014-08-28 22:01:49 -04:00
Tom Rothamel 64f6038b52 sl2: Do not always treat config and style as constants.
We have a case in the wild where someone used "style" as an argument
to a screen.
2014-08-28 17:50:53 -04:00
Tom Rothamel 813ef90eb2 Remove uses of type() in store.
While a reserved word, it's the sort of thing we didn't use much,
and that might be used a lot by end users. So we'll try to avoid
adding uses of type, prefering _type instead.
2014-08-28 17:08:21 -04:00
Tom Rothamel 3ef409b4f2 Suspend self-voicing when playing voice. 2014-08-27 23:24:09 -04:00
Tom Rothamel 34ad1df5b2 Properly compare ATL contexts. 2014-08-27 22:44:32 -04:00
Tom Rothamel 41afb8e5b2 Load .rpy if .rpyc fails with an exception.
If both files exist, we prefer to load the .rpy rather than a
corrupt or obsolete rpyc.

Fixes #437.
2014-08-27 21:37:23 -04:00
kyouryuukunn 15e0d57277 Merge pull request #439 from kyouryuukunn/update_japanese_template
fix japanese template
2014-08-27 18:01:26 +09:00
kyouryuukunn 04ce5eaf09 fix japanese template 2014-08-27 18:00:42 +09:00
kyouryuukunn 130d92c5a2 Merge pull request #438 from kyouryuukunn/update_japanese_template
update japanese template
2014-08-27 16:56:56 +09:00
kyouryuukunn 504f2ff708 update japanese template 2014-08-27 16:54:22 +09:00
Tom Rothamel 99f44f7eff Add the ability to parse a screen as sl1.
This is purely to make it possible to port sl1 games up to newer
Ren'Py, without rewriting them. This shouldn't be used in new games,
and may go away at some point.
2014-08-26 21:27:57 -04:00
Tom Rothamel 0a95f50724 Update a screen on hide before copying it.
When we copy a screen, we lose the cache - but we need the cache
to propagate the state of transforms (etc) to the children of the
screen.
2014-08-26 20:11:53 -04:00
Tom Rothamel 4da7ac8af7 Preserve nearest over subsurface operation. 2014-08-25 08:05:19 -04:00
Tom Rothamel b8c6a62c8f doc: Various minor improvements. 2014-08-24 17:51:37 -04:00
Tom Rothamel 8ecc3a200f doc: IAP. 2014-08-24 17:51:26 -04:00
Tom Rothamel c8d45d3715 iap: Add Purchase and Restore actions, get_store_name function. 2014-08-24 17:19:30 -04:00
Tom Rothamel 328e389f19 Compat old screen language location. 2014-08-24 16:33:40 -04:00
Tom Rothamel 53d9a60544 Update screens once before we lock them down for a hide.
This matches 6.17 behavior, and it makes sense that a hiding screen
should show the data as of the time it was hidden.
2014-08-23 22:33:24 -04:00
Tom Rothamel 7985a39a00 Do not take transition state when a parameter changes.
When a parameter to a transition changes, we have a different
transition, so taking the state doesn't work - it means we will
be representing the state of a different transition.
2014-08-23 22:28:07 -04:00
Tom Rothamel 60ce7ca8c9 Update musicroom Play selection status.
This makes the musicroom Play action compatible with sl2's reuse
of displayables.
2014-08-22 22:34:09 -04:00
Tom Rothamel e3ee421221 Introduce renpy.substitute.
This is a new public API corresponding to renpy.substitutions.substitute.
2014-08-21 21:36:42 -04:00
Tom Rothamel d373cf93e6 Add config.transition_screens for compatibility.
Setting this to False restores compatibility with old versions of
Ren'Py, where screens would always be updated, even on the old side
of a transition.
2014-08-20 19:02:02 -04:00
Tom Rothamel 2e3f6991a2 Add self-voicing to help.html.
Fixes #424.
2014-08-19 10:17:29 -05:00
Tom Rothamel e8d78b9deb doc: Add screen optimization to the index page. 2014-08-19 00:05:09 -05:00
Tom Rothamel ca4eb8857d doc: renpy.profile_screen. 2014-08-18 23:57:03 -05:00
Tom Rothamel 91cc4aa85a doc: Include const and pure vars, add link anchors. 2014-08-18 23:36:35 -05:00
Tom Rothamel 53328bf2a8 doc: Screen prediction. 2014-08-17 23:02:39 -05:00
Tom Rothamel 6d6cc7e6c0 Merge pull request #434 from ZeikJT/master
Fixing mistakes on the Language Basics doc page
2014-08-17 12:29:04 -05:00
kyouryuukunn 411028297e Merge pull request #435 from kyouryuukunn/update_japanese_template
update japanese template
2014-08-17 15:56:03 +09:00
kyouryuukunn 7186ccc22e update japanese template 2014-08-17 15:55:02 +09:00
Tom Rothamel 4b3b9dd3f1 doc: How const optimizes screen language, const text. 2014-08-16 10:18:29 -05:00
Tom Rothamel c619ee7ef2 Add the _developer_default style.
This is needed to enter the developer menu.
2014-08-15 23:23:20 -05:00
Matias Giachino 49df5bed9c Tuple - one-item tuple text incorrect
Says they must specify a parenthesis must follow one-item special cases. The truth is a comma must follow special cases
2014-08-15 19:18:31 -07:00
Matias Giachino b3e2801f38 True, False, None section - remove trailing text 2014-08-15 19:17:08 -07:00
Tom Rothamel fa2292a811 doc: Define const and pure. 2014-08-15 11:11:54 -05:00
Tom Rothamel 3da77b1ce7 doc: Start screen optimization. 2014-08-15 09:34:02 -05:00
Tom Rothamel b89e630e77 Store the location when defining screens.
This lets us link to the screen from the inspector.
2014-08-14 23:13:51 -05:00
Tom Rothamel 03701d8c39 inspector: Clicking on a location opens it in the editor. 2014-08-14 22:56:36 -05:00
Tom Rothamel c4d41109a6 Show displayable lines numbers in the style inspector.
For sl2 only.
2014-08-14 07:25:28 -04:00
Tom Rothamel 7ef976d637 sl2: child_or_fixed should consider actual children.
It was considering the number of available children, which was
improperly considering children in if statements and so on.
2014-08-13 22:01:27 -04:00
Tom Rothamel bdc7cf062e Merge pull request #433 from LuqueDaniel/update-es
Update es
2014-08-13 07:40:45 -04:00
Daniel Luque d562fdba93 To uppercase 2014-08-13 12:36:34 +02:00
Daniel Luque 66acf402ec Updated: spanish/front_page.rpy 2014-08-13 12:30:35 +02:00
Tom Rothamel b053705869 sl2: Use implicit_add to add displayables.
This prevents us from copying transforms that already have had
take_execution_state called. This fixes a regression that caused
copied transforms to reset, and hence the show event to be fired
multiple times.
2014-08-12 19:16:15 -04:00
Tom Rothamel 8c6060b2ba sl2: Ensure screen.widgets is updated on reuse. 2014-08-11 23:28:31 -04:00
Tom Rothamel 06f5ddffbf Make XScrollValue and YScrollValue use the current screen.
This lets them deal with cases where they are reused on a copied
or hiding screen.
2014-08-11 23:21:10 -04:00
Tom Rothamel 6b259960a1 Make _current_screen valid during per_interact() and render().
This let's us defer decisions about the current screen until
closer to render time.
2014-08-11 23:18:50 -04:00
Tom Rothamel 4555020fee When putting a screen into the old state, make a copy. 2014-08-11 23:03:08 -04:00
Tom Rothamel 87d3b65f4b Fix more PyDev 3.6.0 warnings. 2014-08-11 21:14:42 -04:00
Tom Rothamel 479eac2ebb Fix PyDev 3.6.0 errors. 2014-08-11 21:03:03 -04:00
Tom Rothamel 5f80db6880 Add a script that can compare zip sizes.
This lets us attribute changes in size to particular files.
2014-08-10 19:59:39 -04:00
Tom Rothamel d66a9f0bd7 Update docs. 2014-08-10 18:23:02 -04:00
Tom Rothamel be42df7e09 Add alt text to imagemap hotspots. 2014-08-10 09:55:35 -04:00
Tom Rothamel 05b1d38e8f Try harder to find a place to return to.
When the return site exists, we simply return to it. If the return
site disappears, we look up the call site, and return to the next
node, if one exists.

If we're in developer mode, we report an error at this
point. Otherwise, we pop the stack, and try again.
2014-08-09 10:43:23 -04:00
Tom Rothamel 6f377d8253 Fix some issues with edgescroll.
* It could start on timerevent, rather than a mouse event.
* It could get the wrong edge_last_st, leading to large jumps.
2014-08-08 23:11:36 -04:00
Tom Rothamel dd02654228 distribute-made copy of screens.rpy. 2014-08-08 21:07:39 -04:00
Tom Rothamel acc82e3030 tts: Only speak text after {fast}.
This deals with extend properly.
2014-08-08 19:37:04 -04:00
Tom Rothamel 84871c65c1 Call the dynamicdisplayable function iff it has no child.
Transform may need to get the placemet, which requires a
child exist.
2014-08-07 21:34:36 -04:00
Tom Rothamel a704363c54 Make emphasize audio into a preference. 2014-08-06 23:23:23 -04:00
Tom Rothamel 86609614b8 Update name. 2014-08-06 21:47:55 -04:00
Tom Rothamel ace45f4ef0 Apply style group to detached widgets.
This seems to make sense, and fixes the sl2viewport function.
2014-08-06 21:28:44 -04:00
Tom Rothamel 2f114e59df Revert tutorial. 2014-08-05 23:35:30 -04:00
Tom Rothamel 43bed3a92b Revert options.rpy in testcases. 2014-08-05 23:26:28 -04:00
Tom Rothamel 4b3c5ecbbc sl2: Document changes. 2014-08-05 23:20:44 -04:00
Tom Rothamel d34ec5d0fd Include glib-2.0 for versions of fribidi that need it.
Fixes #303.
2014-08-04 21:20:02 -04:00
Tom Rothamel b45d9f957b Update changelog. 2014-08-04 01:01:31 -04:00
Tom Rothamel 001a5f747c voice: Deal more sensibly with the character volume being 0.
We now treat this as a mute, and do not play the voice file. This
prevents us from emphasizing voice when the user has disabled the
voice of a particular character.
2014-08-04 00:56:38 -04:00
Tom Rothamel 1d3e8e1ad7 Add the ability to emphasize certain audio channels.
When an emphasized channel is playing, all non-emphasized channels
have their volume lowered. When emphasis ends, the non-emphasized
channels resume their normal volume.

This is a generalization of (and replacement for) #360.
2014-08-04 00:40:27 -04:00
Tom Rothamel 2453eb2cbe Make reduce_volume_in_voice opt-in by creators.
This will break existing games, by changing the volumes in a way
creators will not expect. Let's make this opt in across the board.

Removed it from the various templates since voice stuff is pretty
rarely used, and shouldn't required attention from a new user.
2014-08-03 23:28:38 -04:00
Tom Rothamel 4024f4f6bd Revert "Move voice config to 00voice.rpy."
This reverts commit e612e2a168822e1e0804b825953808fefb83df7d.
2014-08-03 23:28:38 -04:00
Tom Rothamel dbefae5855 Initial run at updating the changelog. 2014-08-03 23:28:38 -04:00
Tom Rothamel a147e41609 Move voice config to 00voice.rpy.
In general, config variables that only touch common/ should only
exist in common/.
2014-08-03 23:28:38 -04:00
Tom Rothamel 724f9d91aa sl2: Fix regression reusing displayables. 2014-08-02 14:35:31 -04:00
Tom Rothamel 8f9f42352b Allow the launcher to scan/launch mac app packages.
This makes it possible to run an older mac app package with a newer
Ren'Py - to get self-voicing, for example.
2014-08-02 00:06:27 -04:00
Tom Rothamel 463d9cde79 sl2: Only reuse non-None displayables. 2014-08-01 23:53:31 -04:00
Tom Rothamel 92cae431f2 Add "Force Recompile" to the launcher.
This will be useful for people upgrading from pre-sl2 to sl2 versions
of Ren'Py, as it makes it possible to be sure all screens are using
sl2.
2014-08-01 15:47:11 -04:00
Tom Rothamel 1f93fbfd0b Use the focus system to retain grab between interactions.
With the new screen system, it's now possible to reuse the same
displayable between two interactions. Such displayables need to
retain grab until they go away, or grab is explicitly released.

This fixes a problem where a constant bar would lose focus after being
adjusted in a way that restarts the interaction, as volume sliders do.
2014-07-31 23:05:39 -04:00
Tom Rothamel f8094c21b1 Invalidate drags on child change. 2014-07-30 23:18:58 -04:00
Tom Rothamel 833cf20f56 Mark drags as focusable. 2014-07-30 23:18:43 -04:00
Tom Rothamel 581d30debb sl2: Properly get old_main. 2014-07-30 23:18:15 -04:00
Tom Rothamel 71d771d172 Store the new position in the drag_group on drag snap.
Fixes the first part of #396.
2014-07-30 22:42:37 -04:00
Tom Rothamel d6745e7492 Remove syntax error. 2014-07-30 11:08:24 -04:00
Tom Rothamel 8a66bab786 Handle android mouse release move in Ren'Py.
Previously, we were handling this in SDL. However, this conflicted
with the MOUSEMOTION merging - the other event could be moved before
the mouse release, leading to unsightly jumps, and (perhaps) the
viewport being in the wrong place.

We now synthesize the mouse release move in Ren'Py, which lets us
control the order in which it occurs.

Fixes #391.
2014-07-29 23:28:46 -04:00
Tom Rothamel 20be450e1a Mouse focus only on mouse events.
We had been using the mouse to determine focus at the start of
each interaction. We now only use the mouse to determine focus
if the last event - the event that ended the interaction - was
a mouse event.

Fixes #299.
2014-07-28 23:53:12 -04:00
Tom Rothamel 4277d2b049 Merge pull request #324 from duanemoody/master
Add application category for OS X
2014-07-28 23:26:46 -04:00
Tom Rothamel 8ddf658543 Use an adv-mode narrator for adv-mode _default_empty_window.
Fixes #330, using kyouryuukunn's second approach.
2014-07-28 23:23:34 -04:00
Tom Rothamel 3d3f437f57 Add config.autosave_on_choice.
This variable determines if Ren'Py autosaves at menus.
2014-07-28 23:04:29 -04:00
Tom Rothamel 99330bb1eb Do not save ScreenDisplayable.children.
This is recreated on load, and saving it just leads to slower save and
load times.
2014-07-28 22:57:09 -04:00
Tom Rothamel eff11fec79 sl2: Properly finish and imagemaps.
Previously, we were failing to finish the imagemaps we created, which
both leaked the md5 object and generally hurt performance.
2014-07-28 22:55:56 -04:00
Tom Rothamel af0784af3b Perform save dumps before we pickle things.
This makes config.save_dump a powerful tool for debugging pickle
problems, where previously it was only useful for finding out the size
of save files.
2014-07-28 22:54:24 -04:00
Tom Rothamel 4607b2db38 sl2: Improve prediction of screens.
This includes:

* When predicting, we do not stop on the first exception. Instead, we
  keep going, trying to predict what we can.

* This includes screen parameters and arguments as well.

* If we can't evaluate the list part of a for loop, we use [ 0 ] - in
  conjunction with the error handling, this should get us
  something. In many cases, it gets us everything important.

* Once per if statement, we predict all branches.
2014-07-27 22:53:32 -04:00
Tom Rothamel acbaa4c9ba _hide hides the hiding screen, not the not-hiding screen.
This fixes a regression that caused screens without hide transforms to
immediately become empty, even when they should have been used in an
old transition.
2014-07-27 15:00:15 -04:00
Tom Rothamel b9d4a6f6f5 If a Fixed with a layer_name does not have a scene list, do not copy it. 2014-07-26 22:34:17 -04:00
Tom Rothamel d82ff5c7d6 sl2: Track which SLNodes can have keywords.
There are certain nodes that can't have keywords, like if nodes that
occur after a python statement that defines a variable used by the if
statement.

This change ensures that we only execute the keywords() method if:

* Some keywords are present.
* Nothing precludes the keywords method from running.
2014-07-26 22:17:56 -04:00
Tom Rothamel 569f6c0f95 Add portuguese translation by mrstalker. 2014-07-26 11:15:56 -04:00
Tom Rothamel 1a5f693ccd sl2: Pop the open viewport from the ui stack. 2014-07-25 23:02:09 -04:00
Tom Rothamel 92ed019e6c sl2: Fix sl2viewport.
We now properly get the outer and inner elements for all sl2viewports.
2014-07-24 23:08:21 -04:00
Tom Rothamel ebbca682f7 Make autosave_on_quit apply to autosave on load. 2014-07-24 10:39:07 -04:00
Tom Rothamel 33f2c0670d Merge pull request #338 from kyouryuukunn/autosave_before_load
autosave before load
2014-07-23 23:02:58 -04:00
Tom Rothamel 7f85657c0a Add config.autosave_on_quit.
This variable lets us control if Ren'Py autosaves when entering the
quit or main menu prompts.
2014-07-23 21:01:35 -04:00
Tom Rothamel c24b99a0a6 Do not convert the screenshot to the screen's format.
The screen's format may not be the for RGBA format we expect surfaces
to be in when we load them into textures. This would cause
FileCurrentScreenshot to break.

Fixes #314.
2014-07-21 23:27:23 -04:00
Tom Rothamel c2a2572aec Reduce over-passing of show arguments to nvl screen.
We would pass say_vbox_properties, which is only used in pre-screens
code. When iterating through a say_list containing multiple
lines of text, we could use say_args from a previous line.
2014-07-20 23:16:31 -04:00
kyouryuukunn dd5796a59d Merge pull request #419 from kyouryuukunn/update_japanese_template
update japanese template
2014-07-21 11:57:49 +09:00
kyouryuukunn 280ef1c396 update japanese template 2014-07-21 11:56:58 +09:00
Tom Rothamel a2a48e4603 Merge pull request #358 from kyouryuukunn/pass_show_args
NVLCharacter now passes show_ arguments to the nvl screen.
2014-07-20 21:49:07 -04:00
Tom Rothamel 52413479a6 Merge pull request #354 from kyouryuukunn/character_volume
Make voice volume adjustable on a per-character basis.
2014-07-20 21:38:57 -04:00
Tom Rothamel 919bbbca87 Merge pull request #388 from renoa/patch-2
Update Arabic template translation.
2014-07-20 21:36:27 -04:00
Tom Rothamel 9c8a4e17f3 Track mouse and keyboard focuse separately. Make joy depend on key.
This more accurately models how one would expect the joystick to work
on Linux.

Fixes #402.
2014-07-20 21:34:27 -04:00
Tom Rothamel cb359e8a45 When a default_focus appears, if nothing is focused, focus it.
This fixes #417, an issue that was causing problems when the default
focuse only appeared at the end of a transition.
2014-07-20 19:23:30 -04:00
Tom Rothamel 20bfd1298f Update android packaging doc to represent the latest approach. 2014-07-19 21:28:05 -04:00
Tom Rothamel 108ca1f981 Launcher language selection improvements.
* Sort alphabetically.
* Turn "_" into " ".
* Add scrollbar.
2014-07-19 21:03:30 -04:00
Tom Rothamel 8573bb76f9 Merge pull request #404 from LuqueDaniel/update-es
Update es
2014-07-19 20:30:19 -04:00
Tom Rothamel 1176d159af Use name_only when extending a string-named character.
Fixes #408.
2014-07-19 20:25:16 -04:00
Tom Rothamel f554e19a1a Move the code for accessing a character into its own function.
This will make it easier to change in the future.
2014-07-19 20:24:55 -04:00
Tom Rothamel be17f9cc6b Nearest neighbor filtering.
This takes the form of the "nearest" transform property. When the
transform property is true, blits use nearest-neighbor filtering.
2014-07-19 00:05:56 -04:00
Tom Rothamel bdf788b5eb Add config.adjust_view_size.
This is optionally a function that returns the size of the OpenGL
viewport in which Ren'Py draws the game. Having this a callback makes
it possible to constrain the sizes of the game window.

For example, this makes it possible to limit the viewport to integer
multiples of the starting window size, as requested in #406.
2014-07-18 23:25:33 -04:00
Tom Rothamel 27cd90d6db Merge pull request #409 from kyouryuukunn/fix_doc
fix doc
2014-07-18 21:24:03 -04:00
Tom Rothamel 60b8ee46a1 Add renpy.count_{,seen_}_dialogue_blocks().
These are functions to count the number of dialogue blocks and the
number of seen dialogue blocks in the game. This makes it possible
to give an indication of how much of the game text the player has
seen.
2014-07-18 00:07:08 -04:00
Tom Rothamel 7e533fbb8f Fix regression in the handling of insensitive buttons.
The focusable field was not being set correctly, which made the button
participate in the focus mechanism and get the idle background when
it should have been insensitive.
2014-07-17 22:57:51 -04:00
Tom Rothamel 329ff9fc5c Clean up last merge a bit. 2014-07-16 22:02:44 -04:00
Tom Rothamel 980104b35e Merge pull request #377 from HikkeKun/master
Small fix for newline_indent behavior.
2014-07-16 21:48:50 -04:00
Tom Rothamel e51000c947 Fix name conflict in android code. 2014-07-16 21:46:06 -04:00
Tom Rothamel ef69a69a3f Limit when we supply the image parameter to the say screen.
It's normally only used for compatability with older games, and
isn't documented, nor is is present in the say screen.
2014-07-16 21:17:32 -04:00
Tom Rothamel c4880e33f3 Add parameter lists to screens in documentation and screens.rpy.
This is to make everything conform to the new best practices.
2014-07-16 21:09:55 -04:00
Tom Rothamel 00d3da2040 Fix two bugs in lint.
Fixes #415, in which show would check all attributes, when partial
would do.

Fixes #416, in which lint would check disabled old_substitutions.
2014-07-15 23:34:16 -04:00
Tom Rothamel 895350ed4d Limit scope of used screens with parameters.
Used screens that take parameters now run isolated from their parent
context. This lets us treat global const variables as constant,
without having to worry about the parent scope redefining them.
2014-07-15 22:53:25 -04:00
Tom Rothamel f97b59c414 sl2: Take args and kwargs into account when finding a screen to reuse. 2014-07-14 23:36:28 -04:00
Tom Rothamel 62e85b728c sl2: Do not treat screen parameters as constant.
Our definition of constant includes field access, indexing, etc. Since
a screens parameter might be mutable (a list, for example), we can't
treat it as const in the general case.
2014-07-14 23:34:08 -04:00
Tom Rothamel ead4e44d80 sl2: Give constants to parameterized screens.
We can analyze parameterized screens more thoroughly than
non-parameterized screens, since the parameters limit what can
be overridden in the screens' scope.
2014-07-13 19:56:14 -04:00
Tom Rothamel 0b5a54f0f8 Deal with problems that occur when we have no glyphs in a line. 2014-07-13 17:03:50 -04:00
Tom Rothamel 626981c349 Do not call the DynamicDisplayable function on per_interact.
It's not necessary, and can cause problems since st and at are not
correct.
2014-07-13 16:13:31 -04:00
Tom Rothamel bed9699983 sl2: Only treat a function as pure if it's also const.
This lets us redefine a const function and get away with it.
2014-07-13 01:10:01 -04:00
Tom Rothamel dc97bdb194 sl2: Extend local/global const analysis to slast.
This brings us to the point where we can run the launcher using
the local/global const analysis.
2014-07-13 00:17:15 -04:00
Tom Rothamel f6df843499 sl2: More work to distingush local const from global const. 2014-07-12 21:07:48 -04:00
Tom Rothamel 46ba33dde1 iap: Add missing import. 2014-07-11 23:59:35 -04:00
Tom Rothamel 1a969be8fd iap: Separate product names and identifiers.
Each product has a name, used to identify it. This name may be
different from the names used in the various app stores, which can be
specified independently.
2014-07-11 23:42:22 -04:00
Tom Rothamel c8de62c682 iap: Bugfixes. 2014-07-11 23:29:55 -04:00
Tom Rothamel 4197f10d18 Fix link to keytool. 2014-07-11 08:54:35 -04:00
Tom Rothamel c403d13119 iap: Start work on high-level IAP framework.
This code runs, but hasn't been tested yet.
2014-07-10 23:50:37 -04:00
Tom Rothamel 9b4ec3206c Merge pull request #413 from kyouryuukunn/gallery_nav
enable customizing the look of gallery navigation
2014-07-09 20:35:54 -04:00
kyouryuukunn 61da5d93ec rename gallery_nav to gallery_gavigation 2014-07-10 08:17:20 +09:00
kyouryuukunn 1486932b49 enable customizing the look of gallery navigation 2014-07-10 08:08:53 +09:00
Tom Rothamel 4e5199b6a1 Add gallery testcase. 2014-07-08 18:18:38 -04:00
Tom Rothamel 2e8494a2c8 Re-prepare screens when rebuilding styles. 2014-07-08 18:18:12 -04:00
Tom Rothamel f753db5862 sl2: Introduce three levels of const-ness.
This lets us distinguish compile-time constants from expressions
that are const within a single screen.
2014-07-08 18:11:37 -04:00
kyouryuukunn 18d4039aa1 Merge pull request #411 from kyouryuukunn/update_japanese
update japanese
2014-07-08 19:32:12 +09:00
kyouryuukunn 1125cc4b32 update japanese 2014-07-08 19:29:39 +09:00
Tom Rothamel 137e71c461 Fix comparison of gallery actions. 2014-07-07 23:10:29 -04:00
Tom Rothamel 027099daad Deal with the first image in gallery button being locked.
Fixes #410, and adds a test case for the gallery.
2014-07-07 23:08:50 -04:00
Tom Rothamel c6472da521 Update changelog.
Conflicts:
	sphinx/source/changelog.rst
2014-07-06 18:01:42 -04:00
Tom Rothamel aedd0273a4 Ignore .rpyc files that cannot be loaded.
This makes it possible to version down if the .rpy file exists and
do not use any newer features.
2014-07-06 17:56:29 -04:00
Tom Rothamel 6872f3db62 Revert parameterization of launcher screens.
We want to be able to pass in arbitrary arguments, so we can sub
them into text.
2014-07-06 00:24:27 -04:00
kyouryuukunn 8311fafeb4 fix doc 2014-07-06 12:25:12 +09:00
Tom Rothamel 7cba90c0d0 Add the selected parameter to the common screen. 2014-07-05 21:31:36 -04:00
Tom Rothamel 36c9df4353 Distribute the project given to android_build.
This fixes a bug where we would distribute the current project
instead of the one supplied on the command line, causing things
not to work.
2014-07-05 20:26:07 -04:00
Tom Rothamel 4705aa2b6f sl2: Fix fixed.
The SL fixed statement was calling renpy.display.layout.Fixed with
the layout parameter. Since Fixed also supplied a layout parameter
we'd get a crash.
2014-07-05 10:19:06 -04:00
Tom Rothamel 5ae2ae3075 Remove constant offsets from video timestamps.
We had previously been assuming the audio started at 0, while
respecting the video PTS. If the PTS of the first video frame was
non-zero, this would lead to the video being delayed behind the audio
and never catching up.

Fixes #386.
2014-07-04 21:16:01 -04:00
Tom Rothamel b45998fdec sl2: Fix FieldValue equality. 2014-07-03 19:15:36 -04:00
Tom Rothamel 4c273f6a3b sl2: Fix analysis of Python if statements. 2014-07-03 19:15:19 -04:00
Tom Rothamel 0098a41633 sl2: Version the screen language cache.
This ensures that when we prepare screens - such as after a language
change - the cache is dropped. If we don't do this, sl2 can use old
values for displayable arguments and const displayables.
2014-07-02 22:03:20 -04:00
Daniel Luque 20b80bb706 project to lowercase 2014-07-02 12:08:28 +02:00
Daniel Luque 3327378d4f Updated spanish/preferences.rpy 2014-07-02 12:03:19 +02:00
Daniel Luque 7cc4820e96 Updated spanish/front_page.rpy 2014-07-02 11:59:40 +02:00
Tom Rothamel 725ba33062 Merge pull request #403 from kyouryuukunn/fix_MusicRoom
Fix selected status in musicroom.
2014-07-01 23:31:31 -04:00
Tom Rothamel f85b13642b Merge pull request #325 from kyouryuukunn/list_of_action
If a list of Actions contains SensitiveIf or SelectedIf, those take precedence over other actions.

This also introduces the new SensitiveIf action.
2014-07-01 22:44:07 -04:00
Tom Rothamel 95dd481b3a Rename Chinese_Simplified -> simplified_chinese.
This makes the naming similar to the other languages we support.
2014-07-01 22:36:52 -04:00
Tom Rothamel 479a13f5fc Remove text from Chinese translation, per:
https://github.com/renpy/renpy/pull/365#issuecomment-44358481
2014-07-01 22:33:01 -04:00
Tom Rothamel 1fb9fe7bb8 Remove TODOs from simpified chinese translation. 2014-07-01 22:32:29 -04:00
kyouryuukunn 3daae9b0f0 add SetCharacterVolume 2014-07-02 11:28:41 +09:00
Tom Rothamel 4fa044fbc0 Remove +x bit from Chinese translation. 2014-07-01 22:22:05 -04:00
Tom Rothamel 2c676c2fc2 Fix license on DroidSansFallback.ttf.
According to

    https://github.com/android/platform_frameworks_base/tree/master/data/fonts ,

the Droid fonts are under the Apache license.
2014-07-01 22:21:07 -04:00
Tom Rothamel d0ad2d924f Merge pull request #365 from huanxuantian/system-translations-chinese
Chinese (Simplified) translation of launcher.
2014-07-01 22:17:57 -04:00
Tom Rothamel 02a1447837 The voice system should ignore interactions caused by window
show/hide/auto.

Based on a pull request by kyouryuukunn.
2014-07-01 22:03:45 -04:00
Tom Rothamel 2422e2c477 Merge pull request #360 from kyouryuukunn/reduce_volume_in_voice
reduce bgm volume during voice playing
2014-07-01 21:49:35 -04:00
Tom Rothamel 2ae0592486 Merge pull request #397 from renpy/template-replace-symlink
Copy target files of symbolic links
2014-07-01 21:47:26 -04:00
Tom Rothamel 56fc7f8603 Report autoreload as part of the window title. 2014-07-01 21:32:59 -04:00
Tom Rothamel dbe1ccc29e Merge pull request #383 from kyouryuukunn/fix_doc
fix doc
2014-06-30 22:30:15 -04:00
Tom Rothamel 02e2916a82 Merge pull request #401 from renpy/my-tts
config.tts_function to support user defined TTS processor
2014-06-30 22:25:09 -04:00
Tom Rothamel 2e6a836e2d Mark less names as const.
Do not mark transforms that aren't intended for use in screens - but
may have names that would be common for screen parameters - as const.

This should improve compatibility with older screens.
2014-06-30 22:22:41 -04:00
Tom Rothamel 5f671d9990 Ignore profile_screen.txt when distributing. 2014-06-30 21:50:58 -04:00
Tom Rothamel 4286cdca0e Make the parameters to the default screens.rpy to be explicit. 2014-06-30 21:49:22 -04:00
Tom Rothamel 6793a176e0 Launcher screens take an explicit parameter list.
This fixes a problem where sl2 was considering the "default"
parameter const.
2014-06-30 21:47:07 -04:00
Tom Rothamel 4f790bdc11 Properly mark parameters as non-const. 2014-06-30 21:46:45 -04:00
Koichi Akabe cc841c5f52 Move the process managiment into default_tts_function 2014-07-01 02:06:08 +09:00
Koichi Akabe 53d3039ee8 Add tts_function config to support user defined TTS function 2014-06-30 23:58:13 +09:00
Tom Rothamel f2d69c078e Ignore tmp/ directory when navigating .rpy files. 2014-06-30 00:13:07 -04:00
Tom Rothamel ce76ab25f6 Include Ren'Py with android distributions.
RAPT will now use this version of Ren'Py, which can include patches
by the creator.

Fixes #368.
2014-06-30 00:03:57 -04:00
Tom Rothamel a8c0cc096c Add some self-voicing support to the launcher. 2014-06-28 21:55:26 -04:00
Tom Rothamel 60a6f6adfc Add a large-fonts mode to the launcher.
Fixes #399.
2014-06-28 21:43:17 -04:00
Tom Rothamel c471e3ff26 Generate lists of const and pure variables. 2014-06-28 21:12:07 -04:00
Tom Rothamel 249ebb8b0c sl2: Flag more things pure. 2014-06-28 17:19:43 -04:00
Tom Rothamel 24de1990ce Fix typo. 2014-06-28 17:18:41 -04:00
Tom Rothamel 8cac7510ee Invalidate, rather than redraw, on Transform.set_child.
This prevents a redraw from unconditionally occuring when the
child is changed - we only want the change to occur if we're
not already in a redraw.
2014-06-28 00:10:01 -04:00
Tom Rothamel fae51e39bd sl2: Make sl2 the default screen language. 2014-06-27 23:07:31 -04:00
Tom Rothamel 4c94285195 sl2: Analyze screen parameters. 2014-06-27 22:58:44 -04:00
Tom Rothamel 0a6797340f sl2: Let the user dump the results of const analysis. 2014-06-27 18:15:03 -04:00
Tom Rothamel e3f2c70144 sl2: Make defines and transforms pure.
They should be, and this should help make more things const.
2014-06-27 17:42:48 -04:00
Tom Rothamel 6c97478a81 sl2: Flag renpy.<name> as pure functions, when appropriate. 2014-06-27 09:44:37 -04:00
Tom Rothamel 738321cc4e sl2: Pure functions should also be constants. 2014-06-27 09:23:22 -04:00
Koichi Akabe 2990efac7a Copy target files of symbolic links 2014-06-27 21:48:16 +09:00
Tom Rothamel 31419d103b sl2: Perform const/not-const analysis on Python code. 2014-06-26 22:50:19 -04:00
Tom Rothamel 57b6d6124b Keep the source of PyCode objects around.
We're no longer as memory-limited as we once were, and this makes
the source available for code analysis, when necessary.
2014-06-26 22:49:17 -04:00
Tom Rothamel a01f3b8432 sl2: Analyze sl2 statements (not including python). 2014-06-25 17:29:48 -04:00
Tom Rothamel 76477f103e sl2: Frameworks for fixed-point analysis.
This doesn't do anything yet, but provides the structure for constant
analysis.
2014-06-24 22:07:48 -04:00
Tom Rothamel 394c19b9c2 sl2: Encapsulate code analysis into a single object.
This is in preparation for analyzing const/non-const inside a screen.
2014-06-23 22:19:04 -04:00
kyouryuukunn c159dcce30 pass show_args to 'nvl' screen 2014-06-23 23:22:55 +09:00
Tom Rothamel 50d8f356e2 sl2: Fix debug. 2014-06-22 23:38:17 -04:00
Tom Rothamel 366257119b sl2: Screen profiling debugging.
This entails writing information about the decisions we make when
creating the displayables comprising the screen.
2014-06-22 23:32:41 -04:00
Tom Rothamel 64159e840b Basic framework for profiling screen execution. 2014-06-22 22:02:32 -04:00
Tom Rothamel 680131beb3 Simplify ScreenDisplayable._hide and make it work with sl2. 2014-06-21 10:57:31 -04:00
Tom Rothamel 857a5a06b5 sl2: Migrate grab. 2014-06-20 23:03:33 -04:00
Tom Rothamel 4dab5e849b Allow RevertableDict to be past as the properties argument to Style.
Fixes #323.
2014-06-19 21:45:45 -04:00
Tom Rothamel 925cd35947 Merge pull request #384 from kyouryuukunn/Function
Add Function action, which calls a function with arguments.
2014-06-19 21:14:24 -04:00
Tom Rothamel 17b77dcce2 Remove spurious code. 2014-06-19 08:40:02 -04:00
Tom Rothamel 96260b4ec8 sl2: Pass default keyword arguments to the displayable.
This is required so we can pass the layout argument to MultiBox,
which makes the distiniction between fixed, horizontal, and vertical
layouts when the style does not.
2014-06-18 23:08:17 -04:00
Tom Rothamel 16d361c714 Document self-voicing, generate doc includes. 2014-06-18 20:23:42 -04:00
Tom Rothamel 738f93b156 tts: Speak bar text immediately. 2014-06-18 00:19:02 -04:00
Tom Rothamel 23b03ea790 tts: Allow the user to unfocus all widgets.
This will read out the default text.
2014-06-17 23:45:20 -04:00
Tom Rothamel 6a27c02a9b tts: Add a new linear focus ordering.
This allows one to navigate through all of the displayables on the
screen with the cursor keys, without having to do 2-d navigation,
which is what Ren'Py does by default.
2014-06-17 23:35:14 -04:00
Tom Rothamel d1f6132637 tts: Add self-voicing text to file actions. 2014-06-17 20:29:01 -04:00
Tom Rothamel c612db1551 tts: Read non-prefs labels.
We want to read yesno_label, for example.
2014-06-17 20:28:56 -04:00
kyouryuukunn d5e8e70d7c fix 2014-06-17 12:58:57 +09:00
kyouryuukunn 724cae119b update 2014-06-17 12:56:07 +09:00
Tom Rothamel 845d318a44 tts: Make nvl-mode compatible with tts.
This involves using alt to disable speaking of already-spoken text.
2014-06-16 21:36:14 -04:00
Tom Rothamel 28ec3f2326 Directly invoke platform-specific TTS commands.
Pyttsx would try to invoke TTS from the python process, which
required a ton of dependencies. (Pyobjc and win32api) We now
use subprocess to run platform-specific executables, passing
the text to speak on the commands line.
2014-06-16 21:31:34 -04:00
Tom Rothamel f7e763f8a8 tts: Make self voicing a preference. 2014-06-15 22:52:03 -04:00
Tom Rothamel 8e5c2a1532 tts: Make the alt property available in sl1 and sl2. 2014-06-15 20:18:00 -04:00
Tom Rothamel 077ae1b609 tts: Self-voicing improvements.
* Generate alt text only when voice is enabled.
* Allow the text of the children to be interpolated into alt text.
* Alt text for the preferences screen.
2014-06-15 15:56:18 -04:00
Tom Rothamel 179301421c tts: Initial implementation of self-voicing. 2014-06-15 13:23:46 -04:00
Tom Rothamel 88439529e4 Merge pull request #361 from oshi-shinobu/renpy-it
Added Italian translations for launcher and template
2014-06-15 11:34:11 -04:00
Tom Rothamel 74b7cbe06c Make SL2 screens copy displayables during transitions.
This required several fixes, including making sure copy_on_change works
and copying constant displayables if a change to the scope causes a Text
to change its contents.
2014-06-14 22:38:29 -04:00
Tom Rothamel 4d8144d320 Fixes to make transitions and screens work together.
This currently only works for sl1 screens, as sl2 screens are
over-agressively reusing displayables.
2014-06-14 20:56:04 -04:00
Tom Rothamel 251cfacb22 Implement ScreenDisplayable._in_old_scene(). 2014-06-13 18:22:57 -04:00
Tom Rothamel b9a47a2bb8 Merge pull request #389 from renpy/fix-doc-vbk
Fix typos in the documentation
2014-06-13 13:08:10 -04:00
Koichi Akabe 9a06636789 Fix many typos in the documentation
Following documents are checked:
* skins
* sprites
* statement_equivalents
* store_variables
* style
* style_properties
* text
* thequestion
* thequestion_nvl
* trans_trans_python
* transforms
* transitions
* translation
* udd
* updater
* voice
2014-06-14 01:43:21 +09:00
Koichi Akabe 413c2dee85 Fix many typos in the documentation
Following documents are checked:
* label
* language_basics
* license
* menus
* modes
* movie
* nvl_mode
* other
* persistent
* problems
* python
* quickstart
* reserved
* rooms
* save_load_rollback
* screen_actions
* screen_python
* screen_special
* screens
* side_image
2014-06-14 01:21:12 +09:00
Koichi Akabe a7000ffb14 Fix many typos in the documentation
Following documents are checked:
* developer_tools
* dialogue
* display_problems
* displayables
* displaying_images
* distributor
* drag_drop
* editor
* environment_variables
* file_python
* incompatible
* index
* input
* keymap
2014-06-14 00:41:47 +09:00
Koichi Akabe 76b7b471a4 Fix many typos in the documentation
Following documents are checked:
* android
* android-packaging
* atl
* audio
* build
* cds
* changelog
* character_callbacks
* conditional
* config
2014-06-14 00:11:50 +09:00
Renoa 97000fd87a Update screens.rpy
fixed the path where Ren'Py had the wrong path for the arabic font AdvertisingBold.ttf which created an error message while trying to access "Options" from the inside the game.
2014-06-13 16:27:19 +03:00
Tom Rothamel f639a201a6 Add ui.implicit_add for internal use.
This is a function that takes displayables that are being implicitly
added to a widget by ChildOrFixed. We do not want to copy transforms
added this way, which we had been doing, causing problems.
2014-06-13 00:35:17 -04:00
Tom Rothamel b63be138d5 Mark buttons with an action (but not clicked) as Focusable.
This lets Ren'Py transfer focus to them at the start of an interaction,
preventing hovered actions from being called repeatedly.
2014-06-12 23:30:44 -04:00
Tom Rothamel 55a45c54be Further optimization. 2014-06-12 12:27:36 -04:00
Tom Rothamel 2fc9c3d4c0 Optimize MultiBox._in_old_scene.
We now only use the newly-created boxes if at least one displayable
has changed. Otherwise, we don't bother, preferring to use the old
box (which likely has been cached).
2014-06-12 01:00:30 -04:00
Tom Rothamel ef9cffdbf6 Implement MultiBox._in_old_scene(). 2014-06-12 00:41:14 -04:00
Tom Rothamel c3a87909ce Add Displayable._in_old_scene().
This is a method that can copy layers and screens when they're being
used as the old_widget in a transition.
2014-06-11 18:37:34 -04:00
Koichi Akabe 3d553e31f0 Fix typo in doc: translatoon -> translation 2014-06-11 17:42:32 +09:00
Tom Rothamel fa1d3b7e21 sl2: Implement copy_on_change functionality.
This will copy displayables when their children change, which will
eventually let us use transitions to show changes in screen state.
2014-06-10 17:52:36 -04:00
Tom Rothamel e6dc0aa644 Merge pull request #385 from LuqueDaniel/update-es
Update-es
2014-06-09 08:29:05 -04:00
Daniel Luque 0994579c2a Added new string 2014-06-09 12:29:27 +02:00
kyouryuukunn 45e1854786 add Function Action 2014-06-09 17:54:50 +09:00
kyouryuukunn 7897a9c369 fix doc 2014-06-09 17:26:45 +09:00
Tom Rothamel 7fa4517439 sl2: Only pass scope to a displayable it it uses the scope. 2014-06-08 10:37:37 -04:00
Tom Rothamel 8a69b0c03f play sound / queue sound should respect loop parameters.
Fixes #378.
2014-06-07 21:02:58 -07:00
Tom Rothamel 0a3ca8bc3a Prompt the user to back up their project.
Brought to you by citizens against data loss.
2014-06-07 21:24:35 -04:00
Tom Rothamel ab4951d08c Window show None should not use config.window_show_transition.
And similary for window hide None and config.window_hide_transition.

Fixes #381.
2014-06-06 21:53:28 -07:00
Tom Rothamel c7de8a8b50 Merge pull request #379 from kyouryuukunn/fix_doc
fix doc about LiveComposite
2014-06-06 23:08:42 -04:00
Tom Rothamel 635ccdf130 Add the uses_scope property to Text.
This tells us if we need to update the text when the scope changes.
2014-06-05 23:21:10 -04:00
kyouryuukunn 246888c794 fix doc about MoveTransition 2014-06-05 16:50:31 +09:00
Tom Rothamel 845d78df2e Properly encode unicode strings in exceptions.
Previously, if a non-ascii unicode string was in an exception,
we'd fail to encode the exception and crash.
2014-06-05 00:28:28 -04:00
Nobody Really a325ffff22 Fixed very minor typos 2014-06-04 15:50:46 +02:00
kyouryuukunn 6372563998 fix doc about LiveComposite 2014-06-04 21:16:36 +09:00
Nobody Really 91c46649e1 Removed TODO and duplicates, added README.html 2014-06-04 00:07:52 +02:00
Helloise 5f920b5b0a Small fix for newline_indent behavior.
Now should work as described in documentation ( http://www.renpy.org/doc/html/style_properties.html#style-property-newline_indent )
2014-06-03 22:39:00 +04:00
Tom Rothamel 689d3acc63 Use list_logical_lines to scan for translations.
This will properly handle comments, and so fixes #363.
2014-06-03 08:42:12 -04:00
Tom Rothamel 6fe2f8afa2 Fix queuing of unicode filenames.
Fixes #369, again.
2014-06-02 22:33:46 -04:00
Tom Rothamel 776ea299c3 Properly format style names for lint.
Fixes #367.
2014-06-02 18:16:15 -04:00
Nobody Really 1580502949 Fixed screens.rpy 2014-06-02 20:27:33 +02:00
Tom Rothamel c092d687d7 Transform: Fix and optimize argument parsing.
Transform had a problem parsing arguments with underscores in the
name, like transform_anchor. That's been fixed.

Transform also did a lot of allocation for rare cases, such a
Transform being given an argument with a style prefix,
like hover_xpos. This has been optimized in order to reduce
the amount of allocation required.
2014-06-01 23:42:30 -04:00
Tom Rothamel a5301ec50c Add an 'events' transform property.
This determines if events will be passed to the child of the
transform. This allows one to prevent events from being passed
to the old_widget in an ATL transform.
2014-06-01 22:49:26 -04:00
Tom Rothamel d0e01f5c9c Transform.set_child should update the transform's children.
This lets us pass events to a new child when the child changes.
2014-06-01 22:28:03 -04:00
Tom Rothamel c717c42b13 Encode PSS_play extension using UTF-8.
This prevents a crash that occurs when a unicode filename is passed
to PSS_play.

Fixes #369, thanks to everyone for tracking this down.
2014-06-01 10:39:24 -04:00
Tom Rothamel 65ed8f87b0 Get rid of _predict_screens.
This has been obsoleted by the new code.
2014-05-31 22:59:12 -04:00
Tom Rothamel 0f2b67745c New functions for continuously predicting displayables and screens. 2014-05-31 22:56:32 -04:00
Tom Rothamel 30ce6b5033 Add __hash__ to Image and Solid. 2014-05-31 22:07:22 -04:00
Tom Rothamel d6768da6c8 Predict show screen and call screen statements with arguments.
This is a behavior change, and a potentially dangerous one, since it
could execute arguments with side effects multiple times. But those
should be rare, this provides a nice performance boost, and users
will be able to disable prediction using the new nopredict clause.
2014-05-30 21:29:22 -04:00
Tom Rothamel 6c8e997cf2 Fix prediction of argument-containing screens.
We were passing the arguments incorrectly, which prevented them from
working.
2014-05-30 21:28:49 -04:00
Tom Rothamel 62458fa036 Fix regression: Set Text.dirty before we use it. 2014-05-30 08:31:28 -04:00
Tom Rothamel bcf47fd43a Fix prediction of screens without arguments.
Fixes #370, at least partially.
2014-05-29 23:17:45 -04:00
Tom Rothamel 39b168eda9 Do not wait for an event to occur to proceed with prediction. 2014-05-29 23:17:25 -04:00
Tom Rothamel 80130db047 Do not redraw Text if it hasn't been drawn at least once. 2014-05-29 23:09:27 -04:00
Tom Rothamel 2942ddc53d Merge pull request #373 from Shizmob/master
Only consider unique image attributes when determining best match.
2014-05-29 21:19:53 -04:00
Shiz b127da3a41 Only consider unique image attributes when determining best match. 2014-05-30 03:18:27 +02:00
Tom Rothamel 0375b7cf1a Merge pull request #372 from Shizmob/master
Restart interaction when MixerValue value changes.
2014-05-29 17:40:09 -04:00
Shiz 294e6611ef Restart interaction when MixerValue value changes.
This allows UIs which rely on the mixer value for other UI elements to
be properly updated as the value changes.
2014-05-29 23:37:32 +02:00
Tom Rothamel c03d1fddd1 Fix dump of non-ASCII defines. 2014-05-28 22:47:35 -04:00
Tom Rothamel 59e3eecb92 sl2: Ensure exceptions in screens work.
This means clearing out the various gui stacks if an exception occurs.
2014-05-28 21:45:52 -04:00
Tom Rothamel 0e11a964cc Fix XScrollValue and YScrollValue.
These have been broken since we started deferring get_adjustment()s.
2014-05-28 21:34:14 -04:00
Tom Rothamel 3744a729b3 Make renpy.get_widget() accept a ScreenDisplayable.
This makes it possible to do:

    self.screen = renpy.current_screen()

and later:

    renpy.get_widget(self.current_screen, "name")
2014-05-28 21:33:25 -04:00
Tom Rothamel 9dafe56266 Allow non-ascii identifiers to be used as character names.
There are a couple of caveats here, since non-ascii identifiers
can't be used in python code.

* The names must be defined with the define statement.
* The names can't be accessed in python code.

Stil, something like:

    define 彁 = Character("Boy who is not able satisfactorily to explain what a Hrung is, nor why it should choose to collapse on Betelgeuse Seven")

    彁 "Don't forget your towel."

should work.
2014-05-27 22:42:39 -04:00
Tom Rothamel a705f46018 sl1: Fix label and textbutton.
Now that we're creating the widgets directly, we need to apply the
function wrapper to the results of _label and _textbutton.
2014-05-27 21:13:56 -04:00
Tom Rothamel 1bf516bd79 Fix transform_anchor to work with anchors of type absolute. 2014-05-27 19:14:25 -04:00
Tom Rothamel 533b22e9d8 Remove accidentally included text. 2014-05-27 17:43:22 -04:00
huanxuantian 94e1681802 Chinese_Simplified translation for ren'py launcher 1.3c release
orgin version:0.98a
current version:1.3c
least update date:2014-5-27
2014-05-27 19:05:44 +08:00
Tom Rothamel bee2a91d3d sl2: sl2viewport no longer uses ChildList. 2014-05-26 23:50:18 -04:00
Tom Rothamel 1c80515112 sl2: More optimizations. 2014-05-26 23:34:19 -04:00
Tom Rothamel 6eec5cd454 sl2: Various minor optimizations 2014-05-26 23:11:02 -04:00
Tom Rothamel 263a2d4c51 sl2: Allow the use of cprofile to profile the screen implementation. 2014-05-26 22:27:28 -04:00
Tom Rothamel 042a87b2ce sl2: Prepare screens ahead of time. 2014-05-26 21:58:19 -04:00
Tom Rothamel c823bef1c6 Add the ability to profile various phases of a screen's life. 2014-05-26 21:15:40 -04:00
Tom Rothamel c7e5856fdb sl2: Store the location the displayable was created at. 2014-05-25 23:42:52 -04:00
Tom Rothamel 1d3a8a0459 sl2: Fix cache.children issues. 2014-05-25 23:42:08 -04:00
Tom Rothamel 77ae9668b8 sl2: Store the children of displayables in the cache.
This means we don't have to re-add them all the time, and prevents
clear from being called for no-child displayables.
2014-05-25 22:43:53 -04:00
Tom Rothamel a964d2fc9a Merge pull request #355 from kyouryuukunn/fix_doc8
Fix get_playing doc
2014-05-25 10:09:05 -04:00
kyouryuukunn 27ecb992e9 fix doc 2014-05-25 23:07:41 +09:00
Tom Rothamel fd3c89c3ff Allow ImageButtons to not have children.
Since ImageButtons do not use their child, it makes sense to not
require one - especially since _clear() will occasionally remove
it.
2014-05-24 23:35:20 -04:00
huanxuantian c7bae1eee8 Signed-off-by: huanxuantian <huanxuantian@msn.cn>
Chinese_Simplified translation for ren'py launcher
Created by huanxuantian
Translate by huanxuantian
Translation version 1.3.b
update to github on 2014-5-25 sun
2014-05-25 09:52:36 +08:00
Tom Rothamel a45df6e964 sl2: Fix regression in imagemap.
The _reuse() method would clear out the fixed during reuse,
which would remove the ground from the imagemap.
2014-05-24 17:48:43 -04:00
Tom Rothamel 905b0e0534 Simple expressions take words as field names.
This lets one use a keyword (like transform) as a field name.
2014-05-23 22:00:34 -04:00
Tom Rothamel bfeae69e5e Screen language keywords (incl. at) take comma separated expressions. 2014-05-23 21:59:38 -04:00
Tom Rothamel 1e0b224ccc Fix sl1 and sl2 pass statements.
Neither ever worked, despite being part of SL design from the
beginning.
2014-05-22 23:00:29 -04:00
Tom Rothamel 1fc90fb3b5 sl2: Add slast.SLOn.
Since on doesn't create a displayable, it makes sense to handle it
differently rather than complicating SLDisplayable.
2014-05-22 22:18:45 -04:00
Tom Rothamel bebbc73210 Update screens at most once per interaction. 2014-05-21 23:52:54 -04:00
Tom Rothamel 9615971e2e Store and use the cache of predicted screens.
This will generally let us show the screen a lot faster.
2014-05-21 23:49:25 -04:00
Tom Rothamel 55f8782da9 Fix all errors and warnings reported by pydev 3.5.
The predefinition directory (predef) needs to be added to the Ren'Py
interpreter in PyDev for this to work.
2014-05-21 22:13:11 -04:00
Tom Rothamel 651da7e487 Add shift+P to profile once.
This restarts the interaction, and then reports the amount of time
it took to do so. This can give us an idea of how much (if any)
performance is being improved by the new screens code.
2014-05-21 09:22:48 -04:00
Tom Rothamel 248793923a sl2: Fix bar handling.
We have to figure out the style in the sl2 code so the context is
available to the code that gets the bar style.
2014-05-20 23:18:39 -04:00
Tom Rothamel 66e07d6e9b sl2: Fix handling of tuple patterns in SLFor. 2014-05-20 21:28:53 -04:00
Tom Rothamel 079d311228 sl2: Use eval and exec directly in execute and keywords code.
For performance reasons.
2014-05-19 23:42:53 -04:00
Tom Rothamel afb1da6248 sl2: Fix const on if statements. 2014-05-19 23:34:13 -04:00
Tom Rothamel 72c1aa0f8d Improve profiling and control screen prediction with an envvar. 2014-05-19 23:32:51 -04:00
Tom Rothamel b4b7fcfc26 Mark config and style as constants. 2014-05-19 23:32:21 -04:00
Tom Rothamel 372d8cb748 Fix __repr__ on displayable - encode unicode. 2014-05-19 23:31:06 -04:00
Tom Rothamel 6ee38b1817 Fix --compile. 2014-05-19 23:30:39 -04:00
Tom Rothamel ee24f4f96d Import os before running os.startfile. 2014-05-19 18:49:37 -04:00
Tom Rothamel 16ae08345e A regression prevented insensitive buttons from working. 2014-05-18 23:11:33 -04:00
Tom Rothamel e651810ade Do not attempt to resize a 0-width or 0-height displayable.
This prevents a divide-by-zero.
2014-05-18 21:10:39 -04:00
Tom Rothamel ec59eef066 sl2: Make the version of screen language used configurable.
For now, this is controlled by an environment variable.
2014-05-18 20:06:14 -04:00
Tom Rothamel f8f147ad30 Add --compile and --lint arguments.
--compile compiles the script before doing anything else.

--lint is a backwards compatable way of invoking the lint
command. We've been parsing it as an argument for a while, but it
didn't work.
2014-05-18 17:41:57 -04:00
Tom Rothamel d50c922c87 sl2: Transforms take a child parameter, while transforms just take an argument. 2014-05-17 22:21:45 -04:00
Tom Rothamel d0bbf09783 Reset Viewport and Input when first shown.
This supports reuse, by eliminating state state from these
displayables.
2014-05-17 08:57:54 -04:00
Tom Rothamel d69c59beca Get a new adjustment from bars on each interaction.
This lets us reuse the Bar objects, and yet update the object in
the face of changing data.
2014-05-16 23:43:36 -04:00
Tom Rothamel b3a1571038 Evaluate button role and sensitivity per-interaction.
This lets us reuse buttons, and still update the role/sensitivity
as the actions dictate.
2014-05-16 08:46:27 -04:00
Nobody Really d91f9ce376 Added Italian translations for launcher and template 2014-05-16 12:23:38 +02:00
Tom Rothamel ee1295c98b sl2: Implement constant displayables.
These are displayables that have constant arguments and constant
children, and hence where the same displayable can alwaye be used.  We
use a very fast path for these displayables (simply retrieving them
from the cache), and avoid evaluating their children entirely.
2014-05-16 00:05:00 -04:00
Tom Rothamel 94cc959880 sl2: Do not pass keywords intended for a displayable to its parent.
Due to inheritance of SLBlocks, we had the problem that

    frame:
        textbutton "test" xysize (100, 100)

Would pass the xysize parameter to both the textbutton and the frame.
2014-05-15 09:10:05 -04:00
Tom Rothamel 1c7685550d sl2: Use object identity and count in slfor. 2014-05-15 08:41:57 -04:00
Tom Rothamel 37f5738b86 sl2: Update the scope when we reuse a displayable. 2014-05-14 22:56:29 -04:00
Tom Rothamel bde2cf84f7 sl2: Redraw cleared displayables.
If we don't do this, we won't actually show the changes.
2014-05-14 21:57:13 -04:00
Tom Rothamel e393d647f0 Allow auto to take images as well as image filenames. 2014-05-13 18:42:07 -04:00
Tom Rothamel 1d534a6162 Add renpy.image_exists, a function that makes it possible to tell
if an image exists.
2014-05-13 18:11:09 -04:00
Tom Rothamel 0cbc06a241 Make more Displayables comparable. 2014-05-12 22:49:48 -04:00
Tom Rothamel 911f179631 An object should be equal to itself. 2014-05-12 22:11:21 -04:00
Tom Rothamel 043a2c7213 Make styles comparable. 2014-05-12 22:11:05 -04:00
Tom Rothamel 87073bcd0b render cache: use id(d) as the key.
This is needed so we can start defining __eq__ on various
displayables, even when we don't want them being considered the same
by the cache.
2014-05-12 21:17:01 -04:00
kyouryuukunn 9e895e2575 reduce bgm volume during voice playing 2014-05-12 16:13:23 +09:00
Tom Rothamel eec2d6e7d6 Annotate more functions as pure. 2014-05-11 22:04:20 -04:00
Tom Rothamel 44a8128326 The define statement now marks variables as const. 2014-05-11 09:15:47 -04:00
Tom Rothamel 292e24b640 Annotate BarValues for purity and equality. 2014-05-10 23:28:07 -04:00
Tom Rothamel a37c841d16 Merge pull request #341 from kyouryuukunn/DictValue
Add DictValue
2014-05-10 23:15:44 -04:00
Tom Rothamel 878bde34fc Annotate actions for purity and equality. 2014-05-10 22:47:07 -04:00
Tom Rothamel 6e49ed1a15 New renpy.const and renpy.pure functions.
These allow one to declare variables const and functions/classes pure,
for the purpose of sl2.
2014-05-10 22:04:50 -04:00
Tom Rothamel 2c6c97b27a sl2: Pass the main displayable to replaces=. 2014-05-09 21:26:21 -04:00
Tom Rothamel 143cb26ae3 sl2: Add viewport and the concept of a main displayable.
Viewport was broken with sl2, so we now have a compatible
implementation.

Several screen language things are implemented as composite
displayables. For example, a textbutton consists of a Text
and a Button, and a viewport scrollbars "both" consists of
a Side, two Bars, and a Viewport.

The main displayable (stored in _main on the outer displayable) is the
displayable we add children to, and return for get_widget.
2014-05-09 21:18:55 -04:00
Tom Rothamel 2d1af033f8 sl2: Improve reuse.
* SLFor now reuses the cache.
* SLDisplayable no longer clears composite displayables.
2014-05-08 23:56:19 -04:00
Tom Rothamel 1abb87e2a2 sl2: The result of a pure function called with constants is constant. 2014-05-08 23:51:20 -04:00
Tom Rothamel a53eb8b3ce Fix doc typo in queue_event.
Thanks, KiloTango.
2014-05-07 21:59:51 -04:00
Tom Rothamel 26ea3fb14e Fix changelog. 2014-05-07 21:50:55 -04:00
Tom Rothamel 3232620a12 Add 6.17.6 changelog. 2014-05-07 21:38:58 -04:00
Tom Rothamel 28fbf90342 Only enable config.rtl in the launcher iff Arabic is the language.
This is a workaround for #351, which only seems to manifest on certain
Macs, and hence is proving hard to actually fix. At least with this
change, it will only show up when switching to Arabic. (And may not
show up at all, as it may have something to do with filesystem
encodings.)
2014-05-07 20:30:22 -04:00
Tom Rothamel 8f7a2acba5 Extend tkaskdir to handle non-ASCII directories. 2014-05-06 21:53:26 -04:00
Tom Rothamel f50726b5ce Edit a bit. 2014-05-06 21:13:42 -04:00
Tom Rothamel 94d11b0e01 Merge pull request #344 from kyouryuukunn/update_doc
add doc about translations for the launcher
2014-05-06 21:12:04 -04:00
Tom Rothamel 71ef71611b Improve wording of sl/sl2 syntax errors.
Fixes #348.
2014-05-05 21:43:59 -04:00
Tom Rothamel 3da1b368e0 Merge pull request #349 from LuqueDaniel/update-es
Update Spanish translation.
2014-05-05 09:30:40 -04:00
Tom Rothamel 4fea47f3f2 Add Korean translation, by Baekansi. 2014-05-05 09:25:56 -04:00
Daniel Luque 00a92329dd Update launcher/game/tl/spanish/android.rpy 2014-05-05 08:31:38 +02:00
Tom Rothamel fe79eb948f sl2: Reuse displayables where possible.
Reusing a displayable is possible when we realize that the positional
and keyword arguments of the displayable are the same. We can also
reuse the transform if we apply the same transform to the
displayable.
2014-05-04 23:23:41 -04:00
Tom Rothamel e85c0ade0f Add _clear methods to containers.
This facilitates reuse of the underlying displayable.
2014-05-04 21:55:28 -04:00
Tom Rothamel 45c6eb156f sl2: Persist the cache. 2014-05-03 21:09:56 -04:00
Tom Rothamel e45a935c7e sl2: Fix parsing layouts. 2014-05-03 20:19:50 -04:00
Tom Rothamel 094c07ce3c Add screen profiling.
For now, this is intended for Ren'Py development use, so we can
see if sl2 is actually making things faster, as optimizations are
implemented.
2014-05-02 22:39:48 -04:00
Tom Rothamel 1d3a14bc99 Add a German Translation of the launcher. (By NoJoker) 2014-05-02 15:29:27 -04:00
Tom Rothamel 7aa971a978 Add project.json to Arabic template. 2014-05-01 22:46:49 -04:00
Tom Rothamel d0b3ba90f2 Various Arabic fixes. 2014-05-01 22:45:51 -04:00
Tom Rothamel 45b8cb3051 Update documentation for 6.17.5. 2014-05-01 21:22:18 -04:00
Tom Rothamel 4829a32c29 Fix save_directory in arabic translation. 2014-05-01 18:14:46 -04:00
Tom Rothamel e355c451e5 Properly set up the context after a warp occurs. 2014-04-30 18:19:54 -07:00
Tom Rothamel 3301f8c87b Fix --warp.
Fixes #345.
2014-04-30 18:03:40 -07:00
Tom Rothamel 13c4c97e59 Improved memory debugging. 2014-04-29 21:42:21 -07:00
Tom Rothamel 6355e0d623 Re-initialize the cache after shift+R.
Fixes a major memory leak, where textures would be placed in a
stopped cache and never deallocated.
2014-04-29 21:40:40 -07:00
Tom Rothamel 94f0ff71a1 Pause defaults to only setting a checkpoint if delay is not set.
This fixes an issue where renpy.pause(0) would effectively block
rollback, since there would be no time for the rollback to occur.
(The same issue occurs when pausing for a short time.)
2014-04-28 23:26:45 -04:00
kyouryuukunn 3e966d308f add doc about translations for the launcher 2014-04-29 11:52:48 +09:00
Tom Rothamel 2c49d5902d Add/use the renpy.object.Sentinel class.
This is a class that can be used to create sentinel objects. Even if
we pickle and unpickle an object of this class, it remains the same
object, as far as the 'is' operator is concerned.

This fixes a problem with the shift+R module backups. (The same
problem 9dec1f32ab tried to fix.)
2014-04-28 22:17:43 -04:00
Tom Rothamel 816d60eae0 Merge pull request #333 from renoa/master
add arabic translation
2014-04-28 17:47:32 -04:00
Tom Rothamel be258d878d Merge pull request #335 from kyouryuukunn/fix_doc3
fix doc
2014-04-28 17:46:36 -04:00
Daniel Luque 92c4c68942 Add new tl 2014-04-28 14:30:07 +02:00
kyouryuukunn fc25414deb Merge pull request #343 from kyouryuukunn/update_japanese_template
Update japanese template
2014-04-28 20:03:11 +09:00
kyouryuukunn 137e8ba77d update the japanese translation for launcher 2014-04-28 20:01:17 +09:00
kyouryuukunn 0a26eeaa7e update japanese_template 2014-04-28 18:58:28 +09:00
Tom Rothamel 9dec1f32ab Do not backup / restore flag singletons.
The reload backup process would back up singletons, but not functions
and methods that used those singletons as default arguments. The
result was that the singletons would change identity, but not
the default arguments - and the code using them would fail in
odd ways.

An example problem this caused is
http://lemmasoft.renai.us/forums/viewtopic.php?p=320775#p320757 .
2014-04-27 22:44:34 -04:00
Tom Rothamel 499762aad4 atl: Properly transfer child_st_offset, raw_child, and debug.
The major problem fixed here is one where if a transform was
replaced (like one in a screen would be), it would not know that
the old child was being shown. This would prevent the
"<displayable> with <transition>" ATL construct from doing
anything.

Fixes #340.
2014-04-27 19:52:42 -04:00
Tom Rothamel 6cac00a688 Remove raspi stuff. 2014-04-27 01:40:29 -04:00
Tom Rothamel 37d31a6f85 Add raspberry pi and x11 egl modes.
The raspi one somewhat works (it has problems, such as positioning the
window in the wrong place), but the slowness of the raspi system make
using it problematic.

The x11 mode hasn't been tested.
2014-04-27 01:28:16 -04:00
Tom Rothamel 116d344519 Rename eg_gl to egl_none, since it's really used in cases where we're not managing egl. 2014-04-26 23:13:21 -04:00
Tom Rothamel 6739a9a268 Make it easier to add EGL support. 2014-04-26 14:16:33 -04:00
Tom Rothamel 96058a9de3 Get things building on Raspberry Pi.
Right now, we can run Ren'Py, but at an unusably slow speed.
2014-04-26 13:53:45 -04:00
Tom Rothamel b6e71f20c2 Add a new debug ATL property.
This can be accessed in the Ren'Py internals to dump particular
transforms that are having problems.
2014-04-25 22:04:50 -04:00
Tom Rothamel ebd9274776 Add RENPY_TIMEWARP.
This environment variable, if set, makes time itself run faster or
slower. (Well, at least inside the game.)
2014-04-25 21:41:32 -04:00
kyouryuukunn f3a52917cd add DictValue 2014-04-25 16:57:46 +09:00
Tom Rothamel f24379aec6 sl2: Report tracebacks using the screen lines they originate on. 2014-04-24 19:19:52 -04:00
Tom Rothamel 49fa961502 Do not back up renpy.display.presplash.
This prevents an issue with copying modules that only occurs when
presplash is present.
2014-04-23 21:48:23 -04:00
Tom Rothamel 3abba0c7e9 sl2: Supply location to SLDefault. 2014-04-23 21:46:16 -04:00
Tom Rothamel ab00c6a876 sl2: Annotate the ast nodes with locations. 2014-04-22 23:44:30 -04:00
Tom Rothamel 769a65467a Only change the reported traceback if it is not the proximate cause
of the error.
2014-04-22 19:25:04 -04:00
Tom Rothamel 62c66b3794 Various fixes to the documentation. 2014-04-22 19:20:35 -04:00
Tom Rothamel 19889c7457 Remove unused functions. 2014-04-22 19:08:27 -04:00
Tom Rothamel bc3ee8667c Rewrite tracebacks.
We now use the .report_traceback method whenever it's available to
produce nicer-looking tracebacks. (Previously, we only used it
for the simple tracebacks, and only for Contexts.)
2014-04-21 23:54:05 -04:00
Tom Rothamel d2c6f47299 Break up bootstrap.py.
The traceback code went into renpy.error, while the memory dump code
went into renpy/memory.py.
2014-04-21 22:18:59 -04:00
Tom Rothamel 16a4019a40 raise_at_location: A function that raises a traceback at a given location. 2014-04-20 13:38:32 -04:00
Tom Rothamel ec37eb9a84 sl2: Direct path for use.
This makes the ast of the used screen available to the using screen,
allowing for potential optimizations.
2014-04-20 13:13:57 -04:00
Tom Rothamel 96d4440960 sl2: SLScreen is now a SLBlock.
We also now properly handle parsing SLScreen keywords.
2014-04-20 12:38:15 -04:00
kyouryuukunn 738f939f2e Merge pull request #337 from kyouryuukunn/update_japanese_template
Update japanese template
2014-04-20 22:13:14 +09:00
kyouryuukunn cc4591848f autosave before load 2014-04-20 22:03:57 +09:00
Renoa 57afa2ca46 Update android.rpy 2014-04-20 15:02:49 +03:00
Tom Rothamel 7b3072983f Fix regression in times for children of transformed layers.
The regression was introduced by dd4d3410a6,
and shows up in the Sunrider tutorial battle, when the PACT ships
attack with missiles.

The problem was that we were adjusting the times improperly - using
AdjustTimes to make the adjustment. Instead, we want the MultiBox
containing the layer to make the adjustment (which it does when
layer_name is set). This is because the MultiBox handles start
and animation times that are not the time at which the layer
was shown.
2014-04-19 21:40:56 -04:00
Tom Rothamel b1ae62b45f Add environment variables to skip main_menu and splashscreen.
These are RENPY_SKIP_MAIN_MENU and RENPY_SKIP_SPLASHSCREEN.
2014-04-19 18:48:09 -04:00
Renoa dc80ec27e1 Update common.rpy 2014-04-19 19:41:36 +03:00
Renoa 17ef16b3c3 Update distribute.rpy 2014-04-19 19:31:11 +03:00
Renoa 7fdd823745 Update front_page.rpy 2014-04-19 19:30:56 +03:00
Renoa 1cfba7a745 Update preferences.rpy 2014-04-19 19:30:39 +03:00
Renoa 2942dd3390 Update new_project.rpy 2014-04-19 19:30:13 +03:00
Renoa 3afa5e5944 Update project.rpy 2014-04-19 19:29:49 +03:00
Renoa d7b463a445 Update updater.rpy 2014-04-19 19:29:17 +03:00
kyouryuukunn 123dd8d0c7 update japanese template 2014-04-19 20:16:41 +09:00
kyouryuukunn 98d66242c4 update japanese template 2014-04-19 20:09:17 +09:00
Tom Rothamel 205efcccdd Fix typo. 2014-04-18 23:53:03 -04:00
kyouryuukunn 23e7301b6d fix doc 2014-04-19 12:15:51 +09:00
Tom Rothamel 711f7bb608 sl2: Pass arguments to use_screen. 2014-04-18 22:55:09 -04:00
Tom Rothamel b4271b6b7b Deduplicate argument evaluation code. 2014-04-18 22:34:09 -04:00
Tom Rothamel d3b7a84bcd sl2: Initial implementation of use.
This doesn't support arguments yet, and passes everything through to
use_screen. But it does successfully let one include SL2 and SL1
screens inside an SL2 screen.
2014-04-17 23:11:13 -04:00
Renoa 278eb7f522 Create updater.rpy 2014-04-17 13:45:54 +03:00
Renoa 6349eff9b7 Create translations.rpy 2014-04-17 13:45:42 +03:00
Renoa 2518af39ca Create style.rpy 2014-04-17 13:45:28 +03:00
Renoa 85457996d4 Create project.rpy 2014-04-17 13:45:17 +03:00
Renoa 73ca7320b4 Create preferences.rpy 2014-04-17 13:45:05 +03:00
Renoa 8c3903cb04 Create new_project.rpy 2014-04-17 13:44:51 +03:00
Renoa f02bf4e826 Create navigation.rpy 2014-04-17 13:44:38 +03:00
Renoa f591a66dda Rename choose_theme to choose_theme.rpy 2014-04-17 13:44:17 +03:00
Renoa 5cde6f1eb4 Create interface.rpy 2014-04-17 13:43:50 +03:00
Renoa 24959e2e0a Create front_page.rpy 2014-04-17 13:43:37 +03:00
Renoa 9d2858f558 Create editor.rpy 2014-04-17 13:43:23 +03:00
Renoa cdd045f30d Create distribute_gui.rpy 2014-04-17 13:20:17 +03:00
Renoa 80a0031ab5 Create distribute.rpy 2014-04-17 13:20:01 +03:00
Renoa 9d01fe5d81 Create common.rpy 2014-04-17 13:19:39 +03:00
Renoa 198e7aaa43 Create choose_theme 2014-04-17 13:19:25 +03:00
Renoa 98d7e022fe Create android.rpy 2014-04-17 13:19:09 +03:00
Renoa 9091a0fea0 Create add_file.rpy 2014-04-17 13:18:42 +03:00
Renoa ad91211ca1 Create about.rpy 2014-04-17 13:18:25 +03:00
Renoa 083e69f826 Create script.rpy 2014-04-17 13:17:24 +03:00
Renoa 43124767b9 Create screens.rpy 2014-04-17 13:17:12 +03:00
Renoa 1cc4b21275 Create options.rpy 2014-04-17 13:16:59 +03:00
Renoa 63cf67e078 Create screens.rpy 2014-04-17 13:16:18 +03:00
Renoa 32ff178ae7 Create common.rpy
testing how to add Arabic translation to the templates in Renpy
2014-04-17 13:16:01 +03:00
Tom Rothamel 6b48d71a1e Implement renpy.queue_event.
This queues an event by name. For example, renpy.queue_event("dismiss")
will act like dismiss has been pressed.

This is intended to make it easier to interface Ren'Py with custom
controllers.
2014-04-16 20:20:14 -07:00
Tom Rothamel 77533e042f Renumber user events.
User event 32 seems too high, and we no longer need to reserve space
for PSS events.
2014-04-16 20:17:53 -07:00
Tom Rothamel 97ef93855e Uncomment screen2. 2014-04-16 20:17:15 -07:00
Tom Rothamel 42e9b0f81a Revert changes caused by 6.17 merge. 2014-04-15 20:41:24 -04:00
Tom Rothamel bc213c48fd Add renpy.clear_keymap_cache. 2014-04-15 20:38:47 -04:00
Tom Rothamel ced53fe72a Leave disabled file pacges.
This kicks in if we're on the auto or quick pages, and a creator
sets has_autosave or has_quicksave to false.
2014-04-14 21:31:54 -04:00
Tom Rothamel df7eef44ce Make imagemap_button inherit from hotspot, remove modern uses of imagemap_button. 2014-04-14 21:23:59 -04:00
Tom Rothamel c9f935d008 Docs. 2014-04-13 20:29:29 -07:00
Tom Rothamel 7937e7e103 Disable SL2. 2014-04-13 23:04:19 -04:00
Tom Rothamel 0b8045f7b6 Make autoreload configurable, and default it to off. 2014-04-13 23:02:25 -04:00
Tom Rothamel bc8ca388af Mark this as version 6.17. 2014-04-13 22:45:04 -04:00
Tom Rothamel 101b0c62d1 Merge pull request #321 from javimat/master
Update Spanish translation of the Template and the Launcher
2014-04-13 22:40:07 -04:00
Tom Rothamel ab70f0f11b Update to use newer RAPT. 2014-04-13 16:01:58 -04:00
Tom Rothamel cfd3331ede Fix problem with MoveTransition and multiple interactions.
The problem would manifest when we did something like
$ renpy.transition(move), and restarted the interaction. We had been
creating a MultiBox with a layers dict, which would adjust the times
for its children. When shown as part of the second interaction, the
times would be reset to 0, and the move would appear to restart.

By getting rid of the layers dict, we prevent this the adjustment
of times from occuring, and things work as expected.
2014-04-12 21:48:37 -07:00
Tom Rothamel db8dc43ab9 Remote ADB connect interface.
It's now possible to enter the address to connect to.
2014-04-11 23:38:37 -04:00
Tom Rothamel 9b571dc8ce Add support for connecting to remote ADB. 2014-04-11 17:11:46 -04:00
Tom Rothamel 2a3e691305 Make fit_first fit images bigger than the screen.
It's only used for imagemaps, and it makes sense for an imagemap to
be bigger than the screen. (For example, if you put it into a
viewport.)
2014-04-10 21:11:55 -04:00
Tom Rothamel 0ba7f0011a Add _bar and _vbar styles.
The _bar style being missing was a regression. Fixes #326. Fixes #327.
2014-04-09 22:06:08 -04:00
Tom Rothamel f8d051f2cd Pass all hyperlink URLs to the web browser, not just http URLs. 2014-04-08 11:46:46 -04:00
Tom Rothamel 1f877be8a3 Automatically use background thread for screenshots.
If we try to take a screenshot outside of the display thread, we
segfault. This ensures that can't happen.

Fixes #329.
2014-04-07 23:11:01 -04:00
Tom Rothamel 4ebde6fc38 sl2: Store transforms and transfer state. 2014-04-06 20:48:35 -04:00
Tom Rothamel e53c1673dc sl2: Pass locals to py_eval_bytecode. 2014-04-06 20:47:54 -04:00
Tom Rothamel c745bc47e3 Add replaces to timer. 2014-04-05 22:50:02 -07:00
Tom Rothamel c601a0ff2b sl2: Implement replaces for displayables. 2014-04-05 22:44:42 -07:00
Tom Rothamel 681efdf8fa Do not back up data on Android.
Since we won't reload it, there's not point. And android has some
arbitrary system-specific stuff that can't be pickled.
2014-04-05 01:17:28 -04:00
Tom Rothamel 4d8859ec79 Detect the Amazon Fire TV, and set the "firetv" screen
variant if we find one.
2014-04-05 01:16:58 -04:00
Tom Rothamel a3cbf14ede sl2: Implement the on statement. 2014-04-04 18:06:06 -04:00
kyouryuukunn 4f13cb73b0 fix selected status in musicroom 2014-04-04 19:41:58 +09:00
kyouryuukunn 61a37f225c If SensitiveIf is in a list of Actions, it is uesd to check sensitive 2014-04-04 19:31:46 +09:00
kyouryuukunn 379b340210 If SelectedIf is in a list of Actions, it is uesd to check selected 2014-04-04 19:23:07 +09:00
Tom Rothamel 5f3dba9725 Use hotspot as the style for hotspots.
This fixes a problem where we'd inherit padding from the button
style, which could cause the hotspots to show up in odd places.

This would only occur if ui.hotspot was called directly - so almost
never in actual code.
2014-04-03 21:54:32 -04:00
Tom Rothamel f16cc57d52 sl2: Add add. 2014-04-03 20:59:07 -04:00
Tom Rothamel 61cbc9e6c7 sl2: Implement child_or_fixed behavior. 2014-04-03 00:21:35 -04:00
Tom Rothamel 5867d4f7ac sl2: Add imagemaps.
These don't work, due to incorrect handling of displayables that
take one child.
2014-04-02 23:47:12 -04:00
Tom Rothamel cc92d83fd6 sl2: Evaluate keywords and children separately.
This is necessary for us to have imagemap statements. The imagemap
needs the keywords to be evaluated, and the imagemap needs to be
created before the keywords can be created.
2014-04-02 23:22:44 -04:00
duanemoody 298e4ae2de Add application category for OS X
The Applications folder in OS X is large and installers tend to expect apps to stay where they were placed (i.e. the root of /Applications). Since Lion, there's been application category metadata for View --> Arrange by Application Category but if the metadata's not in info.plist, the app gets sorted into "Other" at the bottom. 

https://developer.apple.com/library/Mac/releasenotes/General/SubmittingToMacAppStore/#//apple_ref/doc/uid/TP40010572-CH16-SW8 (this applies to all Mac apps, not just those installed through App Store).
2014-04-02 13:43:37 -07:00
Tom Rothamel 436f4f2c8b Document various NVL-mode config variables. 2014-04-01 23:11:48 -04:00
Tom Rothamel 4af52c43a4 Add layer selection to menu/choice and NVL.
Adds config.say_layer, config.menu_layer, and config.nvl_layer to
select layers for the various screens.
2014-04-01 22:51:50 -04:00
Tom Rothamel 984448ae4f Add a show_layer parameter to Character.
This makes it possible to choose the layer the say screen appears
on, which might be necessary for side images and so on.
2014-04-01 22:17:20 -04:00
Tom Rothamel 7cae393d72 Fix a style-related memory leak.
When unbuilding styles, we would deallocate the cache, but not XDECREF
the contents of the cache, leading to a crash. This fixes the problem.
2014-03-31 23:05:34 -04:00
Tom Rothamel 667676f55b Fix memory leaks on reload.
The big fix was to de-init the draw module before deallocating it,
which is what frees up textures. There are a lot of smaller fixes
here as well.
2014-03-30 16:13:12 -04:00
Tom Rothamel 2ff748c5e1 Re-initalize modules rather than reloading them entirely.
This prevents memory leaks through reloaded modules, and should
make reload faster. (It doesn't eliminate all memory leaks,
however.)
2014-03-29 23:52:33 -04:00
Tom Rothamel 65513fb8d7 Make the layout functions (Fixed, VBox, Hbox, and Grid) pickleable.
The Displayables were, but the constructor functions weren't.
This fixes that by turning the functions into classes.
2014-03-29 23:51:28 -04:00
Tom Rothamel 992d9ca419 Fix prediction of windows and bars.
The style rewrite prevented direct access to prefixed styles,
which caused prediction not to work. With this change, we
handle the prediction in cython, which has access to
prefixed and unprefixed styles.
2014-03-28 21:46:39 -04:00
Tom Rothamel bc02b71c76 Reset the styles before reloading. 2014-03-27 22:29:49 -07:00
javimat 01cccefcc1 Update common.rpy 2014-03-27 23:51:41 +01:00
javimat c2e71a4b31 Update new_project.rpy 2014-03-27 23:48:03 +01:00
javimat f86b91f29a Update common.rpy 2014-03-27 23:43:43 +01:00
javimat 7836e58608 Update common.rpy 2014-03-27 23:40:30 +01:00
javimat eddab9a802 Update screens.rpy
Simplifying comments (deleting the English ones).
Changing to the new style language.
2014-03-27 23:39:00 +01:00
Tom Rothamel f6fa2d391f sl2: Add the default statement. 2014-03-26 22:41:29 -04:00
Tom Rothamel e119633cc6 Implement the pass statement. 2014-03-25 23:51:59 -04:00
Tom Rothamel aa9a2461cc Add set_projects_directory and get_projects_directory commands.
These let users set the projects directory from the command line,
which is useful if they don't have python-tkinter installed.
2014-03-25 19:04:15 -04:00
Tom Rothamel 71555a229e sl2: Parse multi-line Python statements. 2014-03-24 23:31:20 -04:00
Tom Rothamel 3b009de99c sl2: Parse one-line python statements. 2014-03-24 23:15:19 -04:00
Tom Rothamel 92b00df7af sl2: Improve sl2.
Largely, got the code written yesterday working.
2014-03-24 22:19:17 -04:00
Tom Rothamel bbf671555f sl2: Untested implementation of the for statement. 2014-03-24 00:03:27 -04:00
Tom Rothamel 929a1e916e If a non-existent screen is loaded, replace its contents with Null.
This can happen with some game changes, especially when changing
config.developer = True to False. Rather than crashing in this
case, we display an empty screen.

Fixes #320.
2014-03-23 19:12:25 -04:00
Tom Rothamel e6e2761396 Process common keywords in SL2:
* style_group, with styles.
* id
* at
2014-03-22 22:12:30 -04:00
Tom Rothamel 1412429d23 Add textbutton and label to sldisplayables. 2014-03-21 17:52:35 -04:00
Tom Rothamel 6210907701 Cleanup various PyDev warnings. 2014-03-21 15:40:11 -04:00
Tom Rothamel d8c2d743bd Add more displayables to sl2. 2014-03-20 23:50:28 -04:00
Tom Rothamel 5181b90473 sl2: Implement the if statement.
As a new feature, the if statement can apply to keyword arguments
as well as other statements.
2014-03-20 01:26:52 -04:00
Tom Rothamel ed5b914c12 Share parser code between ScreenParser and DisplayableParser. 2014-03-19 22:27:11 -04:00
Tom Rothamel 9e9611be7d sl2: Finish what's needed to have a screen run SL2 code.
With this, we can display the simplest screens.
2014-03-18 23:17:11 -04:00
Tom Rothamel 967abe7bd2 sl2: Implement execute for SLBlock and SLDisplayable. 2014-03-17 20:47:09 -07:00
Tom Rothamel 0c3ce7955c sl2: Prepare SLBlocks.
This prepares keyword arguments and children.
2014-03-17 23:21:51 -04:00
Tom Rothamel 7c1a7465d5 sl2: Evaluate positional arguments.
Constant positional arguments are evaluated during a prepare phase,
while non-constant arguments are evaluated at runtime. (When a mix
of arguments is given, they are combined.)
2014-03-16 21:03:37 -07:00
Tom Rothamel ef894d3040 Note that libavresample-dev is now required. 2014-03-16 15:35:29 -04:00
Tom Rothamel 8c823cc638 sl2: Start creating an AST. 2014-03-15 23:14:58 -04:00
Tom Rothamel 0920d32457 Hook up more of the screen language parsing. 2014-03-14 23:19:54 -04:00
Tom Rothamel 5c4650bce1 Correct transition documentation. 2014-03-13 23:10:37 -04:00
Tom Rothamel 65f3e0cef9 Move sl2 into its own package, tie it to parser.
This introduces the "screen2" statement, which is a temporary way of
accessing the sl2 stuff until it's ready to take over.
2014-03-13 23:07:16 -04:00
Tom Rothamel 0835958d92 Quit if the player hits quit while we're executing a prior quit.
This is in alternative to the current behavior, which opens
multiple quit windows if the user clicks slowly.

Double-clicking quit still exits.
2014-03-12 22:18:15 -04:00
Tom Rothamel 4aae1808ed Prefer main_menu to renpy.context()._main_menu. 2014-03-11 11:09:19 -04:00
Tom Rothamel dd4d3410a6 Adjust times for children of tranformed layers.
If we don't do this, the children will be shown at the timebase
of the layer at_list, which cause huge problems if the children
themselves are being transformed.
2014-03-10 23:14:54 -04:00
Tom Rothamel 0212094b9d Make shift+R toggle autoreload.
There's also an indicator, although its look needs to be revised.
2014-03-09 20:59:43 -04:00
Tom Rothamel 1b69f5930c Protect the safe mode stuff with a try/except.
It does some wierd direct keyboard access stuff that might change
in future versions of windows or linux, so this seems like a
reasonable bit of paranoia.
2014-03-08 08:53:54 -05:00
Tom Rothamel 1be159692b On windows, use ctypes to check if we should enter safe mode.
Fixes #316. It looks like using pygame to detect keypresses on an
unmapped window is now broken, perhaps since the most recent
pygame upgrade.
2014-03-07 22:10:38 -05:00
Tom Rothamel be0c6e6262 Avoid reinitializing the pygame window on Ren'Py reload.
This provides for a smoother reload process, by avoiding the window
disappearing and reappearing, potentially changing place and causing
focus issues.
2014-03-06 23:20:22 -05:00
Tom Rothamel 0e7e9ccced Initial implementation of autoreload.
This is a feature that scans for changes in file existence and times.
If a file changes, this triggers a restart of Ren'Py, reloading the
script and game.
2014-03-05 22:16:40 -05:00
Tom Rothamel 06d9557e4d Rewrite missing images in terms of screens and styles.
This makes it possible to customize the missing image indicator,
which is useful if it conflicts with the background of the game.
2014-03-03 22:35:51 -05:00
Tom Rothamel dd150047a6 Word-like operators have to end at word boundaries.
This prevents us from parsing strings like "8 insensitive" as "8 in
sensitive", and then failing when we go to eval it.

Fixes http://lemmasoft.renai.us/forums/viewtopic.php?f=32&t=25510
2014-03-02 22:03:38 -05:00
Tom Rothamel 838c8862a5 Finish documenting the functions in renpy.exports. 2014-03-02 21:53:47 -05:00
Tom Rothamel de5c0a8d9c Keymap fixes.
* Add toggle_music back in, because creators depend on the most obscure
  parts of Ren'Py.
* Update documentation.
2014-03-01 16:45:22 -05:00
Tom Rothamel 362759fdfb Remove debug print. 2014-03-01 16:45:17 -05:00
Tom Rothamel aed9864f26 Add missing comma, fixes selected_hover_ and selected_insensitive prefixes. 2014-03-01 16:45:11 -05:00
Tom Rothamel 378d0cab7b Fix docs. 2014-03-01 10:52:35 -05:00
Tom Rothamel 11107dcbdd Always reset l.init, not only on exceptions. 2014-02-28 17:43:41 -05:00
Tom Rothamel bb711f187e Merge commit 'ecd1ccf'
Conflicts:
	renpy/__init__.py
2014-02-28 16:31:28 -05:00
Tom Rothamel ecd1ccf0e7 Minor doc fixes. 2014-02-28 16:25:14 -05:00
Tom Rothamel d89d4f4f94 Bump version. 2014-02-28 16:20:41 -05:00
Tom Rothamel cd2029e759 Add the "translate <language> style <style>:" statement.
This is a localized equivalent of the style statement.
2014-02-28 16:19:11 -05:00
Tom Rothamel c50e91e970 More error checking for projects directory. 2014-02-28 16:18:38 -05:00
Tom Rothamel d7482744e8 Fix renpy.input documentation.
Fixes #296.
2014-02-28 16:18:38 -05:00
Tom Rothamel 7cc5cfcbae Ignore arguments passed into RevertableObject.__new__.
Some versions of Python ignore them, others do not. We ignore them
ourselves to be on the safe side.
2014-02-28 16:18:38 -05:00
Tom Rothamel 918158fcae It listing directories fails, treat it as if the directory was empty. 2014-02-28 16:18:38 -05:00
Tom Rothamel 23e2f4f0a8 Document translate style. 2014-02-28 16:18:38 -05:00
Tom Rothamel 25a6ec4ce6 Update the Japanese launcher & tutorial to use translate style. 2014-02-28 16:18:38 -05:00
Tom Rothamel 96351b039c More error checking for projects directory. 2014-02-28 16:17:01 -05:00
Tom Rothamel bcfc7d1d89 Fix renpy.input documentation.
Fixes #296.
2014-02-27 21:22:47 -05:00
Tom Rothamel e33bb7a3ae Ignore arguments passed into RevertableObject.__new__.
Some versions of Python ignore them, others do not. We ignore them
ourselves to be on the safe side.
2014-02-27 19:52:07 -05:00
Tom Rothamel 924da674c6 It listing directories fails, treat it as if the directory was empty. 2014-02-26 23:10:43 -05:00
Tom Rothamel 8e58ce8617 Document translate style. 2014-02-26 22:43:36 -05:00
Tom Rothamel 6274355089 Update the Japanese launcher & tutorial to use translate style. 2014-02-26 22:13:17 -05:00
Tom Rothamel 13d74b8d56 Add the "translate <language> style <style>:" statement.
This is a localized equivalent of the style statement.
2014-02-26 22:12:35 -05:00
Tom Rothamel 8f1ec59948 Expand is_constant to encompass names. 2014-02-25 21:58:39 -05:00
Tom Rothamel fccef8c639 Re-update version. 2014-02-25 20:31:59 -05:00
Tom Rothamel 0c04e5e861 There's no need to add RAPT anymore. 2014-02-24 23:13:05 -05:00
Tom Rothamel 6f328c8984 Version 6.17.1. 2014-02-24 22:30:23 -05:00
Tom Rothamel 61d2ad2202 I18n fixes and translatable console.
Merge remote-tracking branch 'origin/system-translations' into maintenance/6.17
2014-02-24 22:23:10 -05:00
Tom Rothamel 93acff591f Use double colons to show code correctly.
Merge remote-tracking branch 'origin/doc-doublecolon' into maintenance/6.17
2014-02-24 22:22:34 -05:00
Tom Rothamel 314446cffd We don't have a key if local.properties is missing. 2014-02-24 22:21:08 -05:00
Koichi Akabe e5186a7d63 Update Japanese translation for console 2014-02-24 16:40:21 +09:00
Koichi Akabe aaba96b31e Make console translatable 2014-02-24 16:40:01 +09:00
Koichi Akabe ca1f9855fa Use __() to show translated texts of the position picker 2014-02-24 16:39:49 +09:00
Koichi Akabe 3c6eb040f8 use double colons to show codes correctly 2014-02-24 14:28:40 +09:00
Tom Rothamel 856a99c3f2 Merge branch 'maintenance/6.17' 2014-02-23 23:52:01 -05:00
Tom Rothamel 959434f404 Safely list directories outside the Ren'Py base directory.
Directories in the projects directory might contain filenames
that aren't representable in the system encoding. We now
ignore these directories, rather than throwing an exception.
2014-02-23 23:41:17 -05:00
Tom Rothamel 435ef3f5b6 Documentation updates. 2014-02-23 22:47:37 -05:00
Tom Rothamel e5d39cf4de Make single_track and shuffle exclusive of each other.
Merge remote-tracking branch 'kyouryuukunn/musicroom' into maintenance/6.17
2014-02-23 21:57:04 -05:00
Tom Rothamel c03fa98992 Merge branch 'maintenance/6.17' 2014-02-22 22:36:03 -05:00
Tom Rothamel 195d3eb8e2 Add documentation of show layer.
Merge remote-tracking branch 'kyouryuukunn/show_layer' into maintenance/6.17
2014-02-22 22:35:26 -05:00
kyouryuukunn f6a2e7ed1f Document about show layer 2014-02-23 12:16:02 +09:00
kyouryuukunn cb3bc2341f update japanese 2014-02-22 22:02:54 -05:00
kyouryuukunn dcc38c3ab6 update japanese 2014-02-22 22:02:43 -05:00
kyouryuukunn d37188abfe Merge pull request #305 from kyouryuukunn/update_japanese
Update Japanese translation
2014-02-23 11:59:40 +09:00
kyouryuukunn b97ec70769 update japanese 2014-02-23 11:55:26 +09:00
kyouryuukunn aaec19d784 update japanese 2014-02-23 11:53:21 +09:00
Tom Rothamel c44ef66bcb Ensure the projects directory is valid before using it.
See #304.
2014-02-22 18:34:31 -05:00
Tom Rothamel 104e46bb45 Ensure the projects directory is valid before using it.
See #304.
2014-02-22 18:33:45 -05:00
kyouryuukunn 4da70a637c Change single_track and shuffle exclusive 2014-02-22 16:00:36 +09:00
Tom Rothamel e10325aa7d Write function that determines if a python expression is constant.
This will be improved as incremental screen language work
continues, but this is a start.
2014-02-22 01:18:46 -05:00
Tom Rothamel c0f4395a53 Bump version. 2014-02-21 21:56:44 -05:00
Tom Rothamel fd6f59e39a Fix typos. 2014-02-20 23:41:12 -05:00
Tom Rothamel de69ac7843 Update changelog. 2014-02-19 02:02:25 -05:00
Tom Rothamel a6174993d1 Merge pull request #297 from renpy/fix-doc
fix doc error ("width" -> "height" in ysize description)
2014-02-18 22:58:46 -05:00
Koichi Akabe d263552a79 fix doc error ("width" -> "height" in ysize description) 2014-02-18 17:15:41 +09:00
Tom Rothamel e67f671fe6 Fsdecode tail output.
This is stdout for the android tools, which is likely to be encoded
using the local encoding, at least when filenames are involved.
2014-02-17 21:29:58 -05:00
Tom Rothamel bee097f3cd Document store variables. 2014-02-16 16:06:53 -05:00
Tom Rothamel 61c2fc4e49 Revert "Return to the main menu on right click from load, save, prefs, etc."
This reverts commit 5bff9be02c.
2014-02-15 22:38:55 -05:00
Tom Rothamel 6f7398e4ae Improve prediction of side images. 2014-02-15 01:11:22 -05:00
Tom Rothamel 5f1e49978b Properly update the prediction info.
This lets us predict more than one image.
2014-02-15 00:22:59 -05:00
Tom Rothamel 564a82c187 Do not call missing_show during image prediction. 2014-02-14 23:41:00 -05:00
Tom Rothamel ea2243ea86 Predict partial image specifications.
Fixes #293.
2014-02-14 00:49:59 -05:00
Tom Rothamel 4be828ede3 A character should only stop skipping if it causes an interaction.
Fixes #294.
2014-02-13 23:08:10 -05:00
Tom Rothamel 88e14a14d8 Pass the results of a UserStatement predict to the predicition code.
Fixes #292.
2014-02-12 21:52:22 -05:00
Tom Rothamel b583d53f61 Document window auto. 2014-02-11 19:14:27 -05:00
Tom Rothamel fa79703f09 Implement window auto. 2014-02-10 23:29:21 -05:00
Tom Rothamel e122d22ef8 Add config.statement_callbacks.
These are functions that are called at the start of each statement,
with the statement name.
2014-02-10 23:24:56 -05:00
Tom Rothamel 34c070d37b Factor the window statements out into their own file, and
move the guts of _window_show and _window_hide into
functions.
2014-02-10 20:14:37 -05:00
Tom Rothamel b9c5f2f988 Rename window_during_transitions to show_empty_window.
We were already using window_during_transitions for an obsolete
function, and the preference controls all versions of this, rather
than just during transitions.
2014-02-09 21:21:31 -05:00
Tom Rothamel adb4ab80db Merge pull request #290 from vbkaisetsu/template-ja-translation
update Japanese translation of template
2014-02-09 11:12:02 -05:00
Tom Rothamel b55e36853e Update and fix documentation. 2014-02-08 18:21:10 -05:00
Koichi Akabe 46c547a9b0 update Japanese translation of template 2014-02-08 16:43:21 +09:00
Tom Rothamel 6c753a4a09 Remove window auto, adjust semantics of window during transitions.
This is separating the two functions out, since window during
transitions is useful with window show/window hide, and the
auto function should probably trigger window show/window hide.
2014-02-08 00:08:52 -05:00
kyouryuukunn 88417761ee Add Preference window during transitions 2014-02-07 23:31:08 -05:00
Tom Rothamel 5bff9be02c Return to the main menu on right click from load, save, prefs, etc.
Alternative implementation of #289.
2014-02-06 23:31:21 -05:00
Tom Rothamel de4c50bb2a Update changelog. 2014-02-05 22:16:20 -05:00
Tom Rothamel 5895fbcced The focus_mask style property can now as an argument a callable.
If the callable returns true, the displayable should be focused.
This lets us avoid an RTT.
2014-02-05 22:12:33 -05:00
Tom Rothamel 5fc7f32b5a Add new keywords to screenlang and sphinx. 2014-02-05 22:09:34 -05:00
Tom Rothamel a30500d665 Fix spanish translation. 2014-02-05 06:08:26 -05:00
Tom Rothamel 9cd9e126a2 Merge pull request #287 from javimat/master
Update Spanish translation
2014-02-04 16:56:18 -08:00
Tom Rothamel 6d7da4f882 Report an error if an imagebutton can't find its idle image. 2014-02-04 19:53:46 -05:00
Tom Rothamel bffa96a344 Use the unexpanded size of text when checking for overflows.
Fixes #286.
2014-02-03 19:49:51 -05:00
javimat 393df20e44 Update common.rpy 2014-02-03 10:09:03 +01:00
javimat 6acf2605bb Update common.rpy 2014-02-03 10:06:42 +01:00
javimat bd1524c362 Update common.rpy 2014-02-03 09:57:58 +01:00
javimat d9db6cc96a Update project.rpy 2014-02-03 09:49:55 +01:00
javimat 1f004edc6a Update distribute.rpy 2014-02-03 09:49:25 +01:00
javimat d6b9ea81de Update common.rpy 2014-02-03 09:48:55 +01:00
javimat d869f67126 Update common.rpy 2014-02-03 09:48:13 +01:00
javimat 92630baa6e Update options.rpy 2014-02-03 09:46:06 +01:00
Tom Rothamel e8adc17543 Make the fonts used by A White Tulip customizable. 2014-02-02 15:11:09 -05:00
Tom Rothamel d72a03aeb4 Add xsize, ysize, and xysize style properties.
These allow users to directly set the size of resizable
displayables.

The names are chosen so they don't conflict with height, width, and
size, which are already in use.
2014-02-01 17:33:26 -05:00
Tom Rothamel f5e75a7c4c Set the default template to english.
This fixes a bug that occurs when no template is selected.
2014-01-31 16:50:33 -05:00
Tom Rothamel 2aa92d02d3 Backup launcher styles (in Russian translation). 2014-01-31 16:37:36 -05:00
Tom Rothamel b04e511767 Fix location of logo. 2014-01-31 16:33:47 -05:00
Tom Rothamel 34616cdbd3 Fix sphinx build. 2014-01-30 22:22:09 -05:00
Tom Rothamel dfccf93175 Check for invalid characters when building distributions. 2014-01-30 22:03:26 -05:00
Tom Rothamel 34a62d74b5 Demo show layer. 2014-01-30 21:53:39 -05:00
Tom Rothamel 41c48a5941 Copy screens.rpy. 2014-01-29 22:06:44 -05:00
Tom Rothamel c4f2d2894b Allow testcases to be automated with a command line argument.
(This is to support test_all.py.)
2014-01-29 21:42:00 -05:00
Tom Rothamel fc77c0e0ec Use the nightly url for DLC, when on the nightly channel.
If we don't do this, the DLC won't be able to download, or might
be out of date.
2014-01-28 22:22:50 -05:00
Tom Rothamel 99fa4e9c15 Remove unused import. 2014-01-28 20:26:58 -05:00
Tom Rothamel 913a1078df Update copyright to 2014.
Also:

* Include the copyright in .rpy files.
* Fix missing copyrights.
* Add the BOM to .rpy/.rpym files that were missing it.
2014-01-27 22:58:15 -05:00
Tom Rothamel ed5e38727c Check BOM presence/absence. 2014-01-27 22:58:03 -05:00
Tom Rothamel 28a5d5fcf2 Check for the presence of the license as well as the copyright. 2014-01-27 22:35:07 -05:00
Tom Rothamel a96e9614c4 Update copyright scripts for new organization, 2014. 2014-01-27 22:17:46 -05:00
Tom Rothamel 598d4faea0 Add console and image load log to developer menu.
To get the console to work, changed the developer menu into a modal
screen that runs in the current context. Changed everything else to
work with this.
2014-01-27 00:19:12 -05:00
Tom Rothamel 3776ec0ef7 Bring the changelog up to date. 2014-01-26 23:09:31 -05:00
Tom Rothamel 8a2546a83c Fix problem introduced by rebase.
Since I don't know how to git.
2014-01-26 16:38:45 -05:00
Daniel Luque 566cb0f1cf Move: launcher/game/scrollbar_center.png 2014-01-26 16:36:31 -05:00
Daniel Luque 6fee9e81e9 Remove images 2014-01-26 16:36:31 -05:00
Daniel Luque 5ef6952c95 Change skins documentation. 2014-01-26 16:36:31 -05:00
Daniel Luque 366306b8cc The images has been moved to the "images".
launcher/game/background.png -->  launcher/game/images/background.png
launcher/game/checkbox_empty.png -->  launcher/game/images/checkbox_empty.png
launcher/game/checkbox_full.png -->  launcher/game/images/checkbox_full.png
launcher/game/logo.png --> launcher/game/images/logo.png
launcher/game/logo32.png -->  launcher/game/images/logo32.png
launcher/game/pattern --> launcher/game/images/pattern.png
launcher/game/vscrollbar_center.png -->  launcher/game/images/vscrollbar_center.png
launcher/game/winddow.png -->  launcher/game/images/window.png
2014-01-26 16:36:31 -05:00
Tom Rothamel 7d74ff010c Convert screens.rpy to using the style statement. 2014-01-26 12:47:19 -05:00
Tom Rothamel bb2a80f5e8 Allow the init statement to combine with any other statement.
This allows "init 1 define", "init 1 image", "init 1 style" and
other constructs to be one-liners.
2014-01-26 12:11:25 -05:00
Tom Rothamel 0c31f22fb4 Deal with set_parent. 2014-01-26 11:42:40 -05:00
Tom Rothamel fb74356541 Styles changelog. 2014-01-26 00:09:43 -05:00
Tom Rothamel ee18baed5e style.fixed and style.image should inherit from default.
Not _default.
2014-01-25 23:32:30 -05:00
Tom Rothamel 9f8b327aa8 Document new styles.
Apart from a lot of writing, this consisted of breaking the style
docs up into two files, one for the statements and python, and
a second one for the properties.
2014-01-25 23:24:38 -05:00
Tom Rothamel ba34df1a2e Add layers to appropriate MoveTransition results.
This fixes a problem that occured when a modal screen (that raised
IgnoreLayers) was placed inside a MoveTransition.
2014-01-25 00:17:17 -05:00
Tom Rothamel 35584ebcba If tkaskdir fails, explain why. 2014-01-24 23:31:36 -05:00
Tom Rothamel dedc3af9d4 Re-create .pyo files with documentation before building docs. 2014-01-23 22:46:35 -05:00
Tom Rothamel 57652ce002 Implement the "auto-forward after click" preference.
If true, a click will take Ren'Py out of auto-forward mode. The
default is false, and clicks will take Ren'Py out of auto-forward
mode.
2014-01-23 22:32:05 -05:00
Tom Rothamel 1f4f5e5030 Remove "Style Hierarchy" screen.
This doesn't work with the new style implementation, and it is
redundant to the new style inspector.
2014-01-22 22:15:47 -05:00
Tom Rothamel 0a6a43e139 Back out translation of the Style Test screen. 2014-01-22 22:06:18 -05:00
Tom Rothamel f930a2addb Merge pull request #278 from LuqueDaniel/update-es
Update Spanish translation and more
2014-01-22 18:41:27 -08:00
Tom Rothamel 77f3ba0198 Add the "show layer" statement.
This wraps the renpy.layer_at_list function, which allows one to apply
transforms to entire layers. The show layer statement currently takes
at lists and ATL.
2014-01-22 00:58:13 -05:00
Tom Rothamel 7dd98cd421 Backwards compatibility for Frame. 2014-01-21 12:28:09 -05:00
Tom Rothamel 3ebf9d4b28 Ignore layers that do not exist when clearing layers. 2014-01-21 11:56:00 -05:00
Tom Rothamel eefc1412fa Merge pull request #276 from antoinentx/patch-2
create french translation
2014-01-20 20:59:31 -08:00
Tom Rothamel a0f38b9442 Ignore traceback.txt and errors.txt files when distributing Ren'Py. 2014-01-20 23:50:28 -05:00
Tom Rothamel 123e96b872 Detect the names of templates to compile.
Since we have so many of them. World domination - achieved.
2014-01-20 23:43:27 -05:00
Daniel Luque 14672d6f9b Update translation common.rpy 2014-01-20 13:54:49 +01:00
Daniel Luque ccc950a703 Fixed some errors caused by commit aee59b6 2014-01-20 13:10:04 +01:00
Daniel Luque aee59b6a05 More, Make translatable developer.rpym 2014-01-20 13:03:55 +01:00
Daniel Luque 1a5345f089 Make translatable "Developer Menu" title
Make translatable renpy/common/_developer/developer.rpym line 44
2014-01-20 12:48:24 +01:00
Daniel Luque 6ee705dd21 Update translation template spanish 2014-01-20 12:35:32 +01:00
Daniel Luque fe197216b9 Update translation common.rpy 2014-01-20 12:34:56 +01:00
Daniel Luque 462730fcae Update translation updater.rpy 2014-01-20 11:53:25 +01:00
Daniel Luque 972da30f8c Update translation project.rpy 2014-01-20 11:37:53 +01:00
Daniel Luque 5f07ce8c32 Update translation android.rpy 2014-01-20 09:49:58 +01:00
Tom Rothamel 1940c98e67 Syntax-hilight style as a keyword. 2014-01-19 23:41:34 -05:00
Tom Rothamel c1f8a23f17 Add the android_build subcommand to the launcher.
This provides a way of invoking the new Android build process from
the launcher.
2014-01-19 23:29:32 -05:00
Tom Rothamel 7da459ae63 Make the nightly channel available through the updater. 2014-01-19 22:29:32 -05:00
Tom Rothamel 9125823bc9 Properly handle non-acceptance of Android terms and conditions. 2014-01-19 21:24:24 -05:00
Tom Rothamel 188a0bac0a Fix re-launching of Ren'Py. 2014-01-19 21:24:02 -05:00
Tom Rothamel 7d33f1663c Use the DLC system to download RAPT. 2014-01-19 21:13:47 -05:00
Tom Rothamel d3c075e11f Update .gitignore. 2014-01-19 00:51:16 -05:00
Tom Rothamel 2c984ed8f5 Include the common directory in the android distribution.
This prevents us from having to include common/ twice,
once in Ren'Py and once in RAPT.
2014-01-19 00:26:58 -05:00
Tom Rothamel 7f3563bcb0 Do not use "experimental" as a distribution name.
We use it for a symlink, and using it twice led to problems.
2014-01-19 00:25:37 -05:00
Tom Rothamel a6ab0e84e6 Fix SDK writing. 2014-01-18 18:32:00 -05:00
Tom Rothamel d40dc4acc6 Build RAPT before distribute. Supply path to Ren'Py to RAPT build.
The former is in preparation to distributing RAPT as part of Ren'Py.

The latter is so that we can build RAPT as part of a nightly build.
2014-01-18 18:15:24 -05:00
Tom Rothamel d9d8eb4175 Report errors when launching a waited-on project fails. 2014-01-17 23:20:33 -05:00
Tom Rothamel 18df24da42 Fix vertical scrollbar in error messages. 2014-01-17 23:03:46 -05:00
Tom Rothamel 99f4b021d3 Simple expressions can now include operators. 2014-01-17 00:02:50 -05:00
Tom Rothamel 19bc668e0a Convert to using the style statement. 2014-01-16 23:10:57 -05:00
Tom Rothamel fe0a6a8e47 Correctly parse multi-line property assignments. 2014-01-16 23:10:39 -05:00
Tom Rothamel d8c51b32b2 Error out if a style is too complex.
A style is too complex if inheritance goes more than 100 layers
deep. The most common reason for this is likely that there's a
loop in the style inheritance graph.
2014-01-15 23:51:14 -05:00
Tom Rothamel 92b1a67e4a Convert 00style.rpy to using style statements.
As part of this, move the list styles into the developer.rpym file.
2014-01-15 23:47:08 -05:00
Tom Rothamel 5a41588969 Initialize the root of the style hierarchy. 2014-01-15 23:46:16 -05:00
Tom Rothamel 749236868a Allow style names to be keywords.
We have some style names, like transform, that correspond to
keywords.
2014-01-15 23:45:20 -05:00
Tom Rothamel c741f0cded Use the style statement to define styles. 2014-01-15 22:06:21 -05:00
Tom Rothamel 638ecbbd2a Add support for style.create. 2014-01-15 22:06:11 -05:00
Tom Rothamel 697664de8f Use the style statement to define styles in _errorhandling.rpym. 2014-01-14 18:32:24 -05:00
antoinentx b66379b203 Create screens.rpy 2014-01-14 19:22:29 +01:00
antoinentx 92492d1198 Create common.rpy 2014-01-14 19:22:08 +01:00
antoinentx a325ea8bff Create script.rpy 2014-01-14 19:21:35 +01:00
antoinentx 4b3627a1e3 Create screens.rpy 2014-01-14 19:20:52 +01:00
antoinentx 44ea36b475 Create options.rpy 2014-01-14 19:19:38 +01:00
antoinentx 1348a53fa8 Create README.html 2014-01-14 19:18:50 +01:00
antoinentx c34c8ebd3c Create project.json 2014-01-14 19:18:20 +01:00
Tom Rothamel e2650d11dd Deal with .take() and .clear() 2014-01-14 01:04:49 -05:00
Tom Rothamel a73abc82e3 Script to turn python styles into style statements. 2014-01-14 00:54:30 -05:00
Tom Rothamel d08933ce88 Fixes to newer code to work when building RAPT. 2014-01-12 23:20:10 -05:00
Tom Rothamel 09ca171e81 Log more progress information to android.txt. 2014-01-12 23:18:02 -05:00
Tom Rothamel 7affd8cfbb Deal with unicode TODOS. 2014-01-12 20:30:02 -05:00
Tom Rothamel 73763275fb Fix termination. 2014-01-12 19:39:28 -05:00
Tom Rothamel 9d93ef10b5 Store say_attributes as part of the context.
A problem was reported that Ren'Py would crash on a shift+R
reload. It turned out that while displaying the reload message,
Ren'Py would use the attributes from the previous say statement.

This fixes that.
2014-01-12 14:57:26 -05:00
antoinentx 6fd7fd89e5 Create updater.rpy 2014-01-12 14:35:29 +01:00
antoinentx 3fa1dbe10e Create translations.rpy 2014-01-12 14:34:46 +01:00
antoinentx f52735ef53 Create style.rpy 2014-01-12 14:34:22 +01:00
antoinentx 50988a167b Create project.rpy 2014-01-12 14:33:55 +01:00
antoinentx 60232028c2 Create preferences.rpy 2014-01-12 14:33:33 +01:00
antoinentx f1384edaf5 Create new_project.rpy 2014-01-12 14:33:06 +01:00
antoinentx bed8233afe Create navigation.rpy 2014-01-12 14:32:40 +01:00
antoinentx a1fd8c6d1c Create interface.rpy 2014-01-12 14:32:00 +01:00
antoinentx 8868d6c99a Create front_page.rpy 2014-01-12 14:31:38 +01:00
antoinentx 293b191739 Create editor.rpy 2014-01-12 14:30:49 +01:00
antoinentx ce4ebffd69 Create distribute_gui.rpy 2014-01-12 14:30:13 +01:00
antoinentx b08a0daa10 Create distribute.rpy 2014-01-12 14:29:36 +01:00
antoinentx 3bd0557948 Create common.rpy 2014-01-12 14:29:11 +01:00
antoinentx 5ceb663fb3 Create choose_theme.rpy 2014-01-12 14:28:26 +01:00
antoinentx 8c684678c9 Create android.rpy 2014-01-12 14:27:54 +01:00
antoinentx 8749f3d178 Create add_file.rpy 2014-01-12 14:27:21 +01:00
antoinentx a001313516 create french translation 2014-01-12 14:20:45 +01:00
Tom Rothamel 4fc8554384 Tweak sunflower-slow-drag.ogg.
* Trim silence at the start and end.
* Compress the volume, to make the quiet parts a little louder, and vice versa.
2014-01-11 15:27:34 -05:00
Tom Rothamel 91f0b8452a Report missing _renpy, and offer a suggestion on what to do about it. 2014-01-11 11:59:42 -05:00
Tom Rothamel d1d71b8065 Remove old style code. 2014-01-11 11:49:04 -05:00
Tom Rothamel 96929bce42 Return an error code to the os when an exception occurs. 2014-01-11 11:39:18 -05:00
Tom Rothamel 3c38654a8b Remove obsolete module version checking code. 2014-01-11 11:28:51 -05:00
Tom Rothamel baeb458879 Merge pull request #275 from tlm-2501/master
Fix some comments in options.rpy, and a typo in the docs.
2014-01-10 21:00:09 -08:00
Tom Rothamel 7ecb7a36a0 Deal with a rollback after retain_after_load.
It's not enough to simply discard the rollback information on
retain_after_load, we need to retain it and roll it back when
the next rollback occurs.
2014-01-10 23:51:29 -05:00
Tom Rothamel a688687736 Check in images used in testcases. 2014-01-09 23:49:53 -05:00
Tom Rothamel 32c904935b Check in generated docs. 2014-01-09 23:49:33 -05:00
Tom Rothamel 1484505bd4 Document renpy.retain_after_load(). 2014-01-09 23:48:57 -05:00
Tom Rothamel cba6a15dda Do not strip docstrings in run.sh. 2014-01-09 23:47:50 -05:00
Tom Rothamel c4cc830b7a Implement renpy.retain_after_load()
This does not rollback data that is changed between the current
statement and the next checkpoint. The main use case is to be able
to save while a screen is displayed using call screen.

For example, a user can be assigning points to a character in a
screen, save, load, and have the same points assigned.
2014-01-09 22:45:45 -05:00
tlm-2501 e83ec927de Fix another typo in android-packaging.rst
APs -> APKs.
2014-01-09 12:59:34 +03:00
tlm-2501 caa9ebc25c Fix typo in docs (android-packaging.rst)
Changed "android.keyring" to "android.keystore" to represent the valid filename.
2014-01-09 12:40:37 +03:00
tlm-2501 9175fad5c1 theme.roundrect is no logner the only theme. Fixed options.rpy accordingly. 2014-01-09 11:49:01 +04:00
tlm-2501 13d8861459 Fixed... another typo in options.rpy. Whoops. 2014-01-09 11:47:52 +04:00
tlm-2501 7e7525e3d3 Merge branch 'master' of https://github.com/tlm-2501/renpy 2014-01-09 11:47:28 +04:00
tlm-2501 6e789307ef Fixed typos in options.rpy of the English template. 2014-01-09 11:46:57 +04:00
tlm-2501 ec8308b82c Fixed typo in options.rpy of the English template. 2014-01-09 11:44:52 +04:00
Tom Rothamel f5efeec320 Merge pull request #272 from tlm-2501/master
Russian translation.
2014-01-08 19:46:39 -08:00
Tom Rothamel 649fda046c Rename place_images -> get_image_bounds, add testcase. 2014-01-08 22:45:42 -05:00
Tom Rothamel dcd829931c Remove the shift+Y binding to dump styles.
It wasn't used all that much, and it's made redundant by the new
style inspector.
2014-01-08 22:22:37 -05:00
Tom Rothamel d63f5ba134 Run functional testcases w/o human intervention. 2014-01-08 00:54:04 -05:00
Tom Rothamel 647c1a026b Fix indexed styles in lint. 2014-01-07 23:54:17 -05:00
Tom Rothamel 3ea8d6a368 Better error handling for style properties.
When a style property is invalid, we report the name of the
style and the name of the property.
2014-01-07 23:36:36 -05:00
Tom Rothamel 625a6afb1f Fix lint to work with the new style system. 2014-01-07 23:36:11 -05:00
Tom Rothamel 9d8ccec0ee Ignore spurious PyDev warnings. 2014-01-07 21:58:42 -05:00
Tom Rothamel 32554bf5e6 Merge pull request #262 from vbkaisetsu/fix-doc
fix line breaking
2014-01-06 18:52:35 -08:00
Tom Rothamel a03c4d6f39 Merge pull request #265 from CensoredUsername/master
added extra arguments for the screen to ShowMenu()
2014-01-06 18:52:27 -08:00
Tom Rothamel eeefba5a45 Save persistent data to disk before we suspend on android.
This is needed because we might be killed by suspend. If we're killed,
we'll reload the game, but persistent data (incl preferences) will be
lost - unless we save it.
2014-01-06 21:50:49 -05:00
tlm-2501 22d87d62d6 Added a Russian template for a new game. 2014-01-07 05:31:42 +04:00
tlm-2501 8a1d6cd934 Added Russian translation for the launcher. 2014-01-07 04:27:17 +04:00
Tom Rothamel 5769fbfb5a Fix get_text_style.
It didn't handle default correctly.
2014-01-05 23:16:24 -05:00
Tom Rothamel 6912acaa3d Quote newlines in Text.__unicode__. 2014-01-05 22:42:40 -05:00
Tom Rothamel 1df3f281fd Add the ability to inspect a style and display the properties
that contribute to the displayable.
2014-01-05 22:33:49 -05:00
Tom Rothamel f1c0df3156 Allow viewports shrink to fit their content.
This only occurs when the viewports have xfill or yfill set
to False.
2014-01-05 20:21:02 -05:00
Tom Rothamel 6c5c1ff1bd Hide the Fixed immediately inside a screen.
It's not that interesting, since it's always there and never has
properties.
2014-01-05 00:54:07 -05:00
Tom Rothamel e37c0ac09b Use slightly nicer names for screens. 2014-01-05 00:24:52 -05:00
Tom Rothamel c0572eb996 Redesign style inspector into displayable inspector. 2014-01-04 23:41:39 -05:00
Tom Rothamel 1b745a9c21 Split _developer.rpym into multiple modules. 2014-01-04 22:37:54 -05:00
Tom Rothamel cc855e3573 Merge pull request #269 from vbkaisetsu/default-env
Please set "cython" to RENPY_CYTHON
2014-01-04 16:35:20 -08:00
Tom Rothamel 7089bb2d95 Merge pull request #270 from LuqueDaniel/update-es
Update Spanish translation
2014-01-04 16:33:50 -08:00
Koichi Akabe 256d33e20f set "cython" as a default variable of RENPY_CYTHON 2014-01-04 18:56:11 +09:00
Daniel Luque d6b66629e0 Replace string
Replace: "Pantalla guardada como" --> "Captura de pantalla guardada como"
2014-01-04 07:01:11 +01:00
Daniel Luque d813a1b58f Adds new strings
Add new strings related to commit 7f6c8ef
2014-01-04 06:48:21 +01:00
Tom Rothamel 7f6c8efb57 Display blurb each time we launch a game.
For now, these blurbs teach users about keyboard features, like
shift+R and shift+O.
2014-01-03 23:41:22 -05:00
Tom Rothamel af5420c949 Add Style.inspect()
This is a method that, when called on a style, returns a list giving,
for each parent of the style:

* The name of the parent.
* A dictionary that, for each property that affects the inspected
  style. gives the property name and its value.
2014-01-03 01:09:31 -05:00
Tom Rothamel 5b28bc1bcd Generate information used by style inspection. 2014-01-03 01:09:00 -05:00
Tom Rothamel 42d5d62575 Add a variant clause to the style statement.
This lets us use different styles for different variants. For example,
we can use a style for touch devices that increases the size of
buttons, so the player can touch them.
2014-01-02 01:27:35 -05:00
Tom Rothamel 525657843c renpy.variants can check for a list of variants. 2014-01-02 01:27:16 -05:00
Tom Rothamel c4b15d9c84 Improvements to the style statment.
* The take clause takes properties from another style.
* The clear clause deletes all properties.
* The del clause deletes one property.
2014-01-02 00:42:27 -05:00
Tom Rothamel 099f3d5cc8 Make the style statement more renpythonic.
It can now be written on a single line, or on multiple lines
with a block of property/value pairs.
2014-01-01 13:50:51 -05:00
Tom Rothamel 07b4407f03 Export sets of style property names, so we can test against
them.
2014-01-01 11:23:36 -05:00
Tom Rothamel e8adb1b30b style statement: More checking. 2014-01-01 11:23:24 -05:00
Tom Rothamel 8995873089 Initial implementation of the style statement.
This is a statement that adds syntax (in the usual Ren'Py form of word
<expr>) for defining styles.

Happy new year.
2014-01-01 00:44:53 -05:00
Tom Rothamel cda0083a3e Add renpy.styleclass to builds. 2013-12-31 23:42:43 -05:00
Tom Rothamel e32eae2946 Ensure the output of generate_style is deterministic.
This prevents us from regenerating the files, and ensures that
ccache always gets the same file.
2013-12-31 23:41:46 -05:00
Tom Rothamel b6a1c28bfc Generate code in binary mode. 2013-12-31 22:24:14 -05:00
Tom Rothamel 457673a3bb Create the gen directory if it doesn't exist. 2013-12-31 22:00:46 -05:00
Tom Rothamel 10f2620590 Generate the styles files upon checkout. 2013-12-31 21:43:50 -05:00
Tom Rothamel 9d9c924d82 Update README.rst. 2013-12-31 00:26:28 -05:00
Tom Rothamel 23a7f8d00d Merge branch 'master' of github.com:paulmorio/renpy 2013-12-30 23:34:55 -05:00
Tom Rothamel 259c010d4e Fix get_text_style. 2013-12-30 23:25:58 -05:00
Tom Rothamel b728d85b00 Use RENPY_CC and RENPY_LD environment variables during build.
One use of this might be to enable ccache if it's known to
be available.
2013-12-30 21:50:27 -05:00
Tom Rothamel bf1e3af046 Fixes to styles.
* Only set the style name if it's not already set. This is for
  compatibility with the way the old style code did it.

* Do not auto-create styles beginning with _. This prevents us
  from accidentally creating a style that inherits from a
  non-underscore style.
2013-12-29 23:00:40 -05:00
Tom Rothamel bfb8bbfc29 Allow styles to be pickled. 2013-12-29 22:58:29 -05:00
Tom Rothamel 259dd579eb Ignore missing music after rollback.
Not style-related, but this was needed to load old saves so I could
test style loading.
2013-12-29 20:54:01 -05:00
Tom Rothamel 8554a64c8b More style improvmements:
* activate_sound and hover_sound are now their own style properties,
  and work again.
* Other than that, we ignore the various selected_activate and activate_
  style properties.
2013-12-29 14:48:16 -05:00
Tom Rothamel 36c8ed2648 Many minor fixes to the new style system.
Together, these are enough to get Ren'Py starting up.
2013-12-29 02:00:14 -05:00
Tom Rothamel a02ee4cef0 Replace the old style system with the new style system. 2013-12-29 00:07:41 -05:00
Tom Rothamel 5e337bb971 Add various style functions used by other modules.
These haven't been tested - I'm checking them in so I can rename things.
2013-12-28 22:22:45 -05:00
Tom Rothamel 4e2916c3f0 Implement style property retrieval with inheritance. 2013-12-27 23:19:35 -05:00
Tom Rothamel c4ebac7fcf Build all styles. 2013-12-27 23:04:46 -05:00
Tom Rothamel 01899980a5 Add some style unit tests. 2013-12-26 23:48:30 -05:00
Tom Rothamel 11c4f64f9d Implement style naming.
This includes the StyleManager class and style indexing.
2013-12-26 23:47:46 -05:00
M v H 0334c56441 added extra arguments for the screen to ShowMenu() 2013-12-27 03:22:31 +01:00
Tom Rothamel f63731d18d Implement Style.set_prefix. 2013-12-26 01:18:17 -05:00
Tom Rothamel 33c07fc986 Add various fields to the pxd. 2013-12-26 01:17:57 -05:00
Tom Rothamel 7a398bc847 Break styleaccel up into two files.
The new styleclass.pyx file contains the Style class. We compile it
separately since it's huge, and changes rarely.
2013-12-25 23:56:32 -05:00
Tom Rothamel e9dbadab56 Build styles and retrive attributes from a single style. 2013-12-25 00:16:11 -05:00
Tom Rothamel 622bfa44fb Start generating the Style class.
The style class has properties supporting set and delete for each
prefixed style property.
2013-12-24 16:35:25 -05:00
Tom Rothamel 73cfd1b29c Fix renpy.import_all()
Doing:

    import renpy; renpy.import_all()

now works, so we can use it in test code.
2013-12-24 16:16:41 -05:00
Tom Rothamel eae987f665 Generate style property functions.
These are functions that take the value being assigned to a style,
process it if necessary, and assign it to each style's cache.
2013-12-24 01:02:47 -05:00
Tom Rothamel bcd95d937c Add style properties and synthetic properties to generate_styles. 2013-12-23 22:24:39 -05:00
Tom Rothamel 87fea5b4c7 Start work on style generation code.
First off, we create a list of prefixes and the order in which
they are stored.
2013-12-23 22:02:03 -05:00
Koichi Akabe ee29f1c2c0 fix typo 2013-12-23 14:31:25 +09:00
Tom Rothamel 995d483072 Add renpy.place_image.
This returns the bounding box containing an image that's currently
being shown.

Fixes #255, or at least the underlying request.
2013-12-22 23:00:40 -05:00
Tom Rothamel 5a209b0384 Add Preferences("display", "any window").
This is selected when in any windowed mode, and changes back to the previous
window size.
2013-12-21 12:27:40 -05:00
Tom Rothamel db6911da6d Change the tutorial music to Sunflower Slow Drag.
This was the music used (as a midi file) for the very oldest versions
of the Ren'Py.

We use a 1994 recording by the US Marine Band, taken from
Wikipedia. It's public domain due to age (of the original) and due to
being the work of the US Government (for the recording).
2013-12-21 11:10:37 -05:00
Tom Rothamel 2e2d29b0f5 Do not include binary files in the source distro.
Fixes #256.
2013-12-20 23:59:23 -05:00
Koichi Akabe 77fc911f7e fix line breaking 2013-12-20 14:44:42 +09:00
Tom Rothamel a4f659387f QuickSave shouldn't take a screenshot while in a menu.
Fixes #251.
2013-12-19 23:12:57 -05:00
Tom Rothamel 33a452dab6 Merge pull request #261 from vbkaisetsu/fix-doc
fix typos
2013-12-19 20:01:19 -08:00
Koichi Akabe d9b4d916c8 fix typos 2013-12-20 12:55:21 +09:00
Tom Rothamel 599cc25f7c Fix documentation.
Thanks to Koichi Akabe for the proofreading.
2013-12-18 23:27:12 -05:00
Tom Rothamel 4054cd1c72 Add the pixel_width property to input.
This allows one to limit the width of an input field to a certain
number of pixels.

Fixes #254.
2013-12-18 23:14:22 -05:00
Tom Rothamel eb1f96ad20 Merge pull request #259 from kyouryuukunn/fix_doc
fix typo
2013-12-16 19:44:41 -08:00
kyouryuukunn c1d1a766c7 fix typo 2013-12-16 18:51:11 +09:00
Tom Rothamel 2cb7632e96 Fix sense of environment-encoding test. 2013-12-16 01:35:12 -05:00
Tom Rothamel e14464081e Report NO_RAPT before NO_JDK.
On Windows, RAPT is responsible for detecting the JDK. If RAPT is
missing, the JDK will also be reported missing - even if it's
installed.

Changing the reporting order makes this less confusing.
2013-12-15 22:02:20 -05:00
Tom Rothamel 49fa613b48 Fix typo that broke Android.
We copied script_version.rpy onto script_version.rpyc, which
made things fail to start on Android.
2013-12-15 20:22:17 -05:00
Tom Rothamel c7dca40479 Document alternate. 2013-12-14 14:51:33 -05:00
Tom Rothamel d9d7801a50 When ignoring a touch, move the "mouse" offscreen.
This will cause any focused button to lose focus until the user
touches the screen again.
2013-12-14 02:23:39 -05:00
Tom Rothamel 44edd1c723 Invoke the alternate action on longpress. 2013-12-14 00:48:44 -05:00
Tom Rothamel a46ddc9e55 Add an alternate action to Button.
On devices that support it, an alternate action is triggered by
right-click.
2013-12-13 00:27:58 -05:00
Tom Rothamel c12560fed3 Merge pull request #257 from LuqueDaniel/fix-rmtree
Fix delete the tmp directory
2013-12-12 06:08:10 -08:00
Daniel Luque f7dbfeec3f Fix delete the tmp directory 2013-12-12 12:33:00 +01:00
Tom Rothamel 2b44ffe0e2 Add FileCurrentScreenshot.
This is a displayable that accesses the screenshot stored by
FileTakeScreenshot or ShowMenu.

Fixes #253.
2013-12-11 23:09:38 -05:00
Tom Rothamel 643fe8928b More documentation and flagging as undocumented. 2013-12-10 19:04:25 -05:00
Tom Rothamel a6f9d787ef Document NoRollback as class, not function. 2013-12-09 23:17:54 -05:00
Tom Rothamel cf993a71da Document renpy.map_event. 2013-12-09 23:07:37 -05:00
Tom Rothamel 8f9ecee00a Ignore errors in OpenDirectory. 2013-12-09 22:23:40 -05:00
Tom Rothamel 8ffe6eaad4 Document NoRollback. 2013-12-09 22:16:16 -05:00
Tom Rothamel 3256bd10b7 Remove renpy.toggle_music.
Fixes #252.
2013-12-08 11:42:55 -05:00
Tom Rothamel 2b5bf3055e Fix bug where Reply would not properly evaluate locked=None. 2013-12-07 23:55:31 -05:00
Tom Rothamel 51743d03e6 Check in inc/disp_grid. 2013-12-07 23:54:41 -05:00
Tom Rothamel 50fdc88754 Document Grid. 2013-12-07 16:38:21 -05:00
Tom Rothamel f04f3e7961 Ensure that all generated documentation is included. 2013-12-06 23:23:56 -05:00
Tom Rothamel d38e96dfac Check documentation for unused includes. 2013-12-06 21:14:03 -05:00
Tom Rothamel d09f5764bd Documentation. 2013-12-06 20:40:48 -05:00
Tom Rothamel 608a55b942 Allow Ren'Py to compile with freetype 2.5.1.
Fixes #250.
2013-12-05 22:41:30 -05:00
Tom Rothamel 0141ef770e Change list_saved_games as well.
Thanks, zorexx.
2013-12-04 22:50:51 -05:00
Tom Rothamel d936a9a28b scan_saved_game should use _save_name, not _extra_info. 2013-12-04 11:24:28 -05:00
Tom Rothamel bc941d4e7a Link variables and classes in the reserved names list. 2013-12-03 20:31:06 -05:00
Tom Rothamel a777919dcf Adjust how default_afm_enable works.
Previously, it set afm_enable on every startup. Now when afm_enable
is not None, afm_enable is persisted.
2013-12-02 21:39:36 -05:00
Tom Rothamel 73c9479474 Default preferences.mouse_move to enabled.
If a creator decides to use MouseMove, it should work by default.
2013-12-01 19:22:15 -05:00
Tom Rothamel 179af6dffb Simplify the actions so there's just MouseMove. 2013-12-01 19:21:49 -05:00
Tom Rothamel 8cab84384b Do not block during mouse moves. 2013-12-01 19:18:19 -05:00
Tom Rothamel 92e0e32c83 Merge pull request #233 from kyouryuukunn/set_mouse_pos
Functions and actions to set the mouse position.
2013-12-01 13:44:43 -08:00
Tom Rothamel 0f73bda3a5 Fix distribution script in case where we're at a tag.
When we're exactly at a base revision, the description relative to the
tag is missing some components.
2013-11-30 12:28:30 -05:00
Tom Rothamel 1a19c95b60 Bump version to 6.17.0. 2013-11-30 12:13:15 -05:00
Tom Rothamel 2269a3a70c Remove unneeded warnings. 2013-11-29 16:19:09 -05:00
Tom Rothamel afa4d561c6 Bump version. 2013-11-29 15:45:31 -05:00
Tom Rothamel b0524459b6 Generate script_version.rpy. 2013-11-29 15:43:05 -05:00
Tom Rothamel 5142810101 Open the android.txt log file in an editor when an Android build fails. 2013-11-28 10:04:17 -05:00
Tom Rothamel 365544d62f Classify the new Android files. 2013-11-28 00:29:34 -05:00
Tom Rothamel 3e77dafbc7 Document the image files used in Android packaging. 2013-11-28 00:26:42 -05:00
Tom Rothamel ec45a88c61 Only write documentation if changed.
This might lead to a slight speedup in sphinx, which seems to cache
unchanged files.
2013-11-25 22:32:56 -05:00
Tom Rothamel 9c6b3ca4d0 Add menu docs. 2013-11-25 22:32:49 -05:00
Tom Rothamel d4eefdc3ab Document renpy.display_menu as a statement equivalent. 2013-11-25 22:24:30 -05:00
Tom Rothamel 2771c25f37 Clean up unused textures.
This limits how much texture memory Ren'Py can use. (Previously,
texture memory was limited, but to an impractically large size.)
2013-11-24 20:33:51 -05:00
Tom Rothamel 46137dd7cf Use a set of texture numbers, rather than a list.
This makes it easier to deallocate textures, an eventual goal.
2013-11-23 18:20:04 -05:00
Tom Rothamel 006efeb15f Document renpy.transition. 2013-11-23 00:19:40 -05:00
Tom Rothamel 3b18174c8c Fix typo. 2013-11-21 21:54:00 -05:00
Tom Rothamel e50f3147a9 Bump version to 6.16.2. 2013-11-21 21:38:08 -05:00
Tom Rothamel 145b33bd3d Update changelog for 6.16.2. 2013-11-21 21:30:40 -05:00
Tom Rothamel edc5b84082 Merge pull request #248 from javimat/master
Fixed pseudo-typo in Spanish options.rpy
2013-11-21 18:16:01 -08:00
javimat d99c52614c Spanish translation of the comments in screens.rpy 2013-11-21 17:03:41 +01:00
javimat 39e626cca3 Fix pseudo-typo options.rpy
The new Spanish grammar (2009-2011) doesn't allows a tilde in the adverb 'solo'.
2013-11-21 15:38:35 +01:00
javimat cf848e8d2f Merge pull request #2 from renpy/master
updating my fork
2013-11-21 06:29:58 -08:00
Tom Rothamel 0a6f6ae8d3 Merge pull request #247 from LuqueDaniel/master
Update Spanish translation.
2013-11-21 06:04:02 -08:00
Daniel Luque fde580d67d Update translation: templates/spanish/README.html. 2013-11-21 13:37:20 +01:00
Daniel Luque dde4c3fee3 Now templates/spanish/README.html uses utf-8.
Add label meta charset with utf-8.

Replaces "&oacute;" --> "ó"
Replaces "&aacute;" --> "á"
Replaces "&uacute;" --> "ú"
Replaces "&iacute;" --> "í"
2013-11-21 13:21:43 +01:00
Daniel Luque 461d1a2ef5 Fix typo. 2013-11-21 12:52:35 +01:00
Tom Rothamel 28ccb37b58 Merge pull request #245 from kyouryuukunn/fix_document
fix doc
2013-11-20 21:02:30 -08:00
kyouryuukunn e36908d9e5 fix doc 2013-11-21 13:58:10 +09:00
Tom Rothamel 63c94e7987 Allow interface.error() to work when label=None.
Fixes #230.
2013-11-20 23:47:32 -05:00
Tom Rothamel 41767642f4 Fix a weird case in parse error handling. 2013-11-20 23:31:50 -05:00
Tom Rothamel e33987183a Fix various minor problems with the quickstart doc.
Fixes #225.
2013-11-20 23:28:36 -05:00
Tom Rothamel 32c4029b4b Merge pull request #244 from javimat/master
Translate comments in Spanish template (and some typos)
2013-11-20 18:10:50 -08:00
javimat fec8125ae3 Fix Spanish comments on options.rpy 2013-11-21 02:19:16 +01:00
javimat c368a70d0b Translate comments on options.rpy 2013-11-21 02:14:40 +01:00
javimat 70a3a3c454 Fix typo 2013-11-21 01:14:02 +01:00
javimat 17d4933ff6 Translate comments on script.rpy 2013-11-21 01:08:24 +01:00
javimat 774cb588d1 Update screens.rpy 2013-11-21 01:04:50 +01:00
javimat 1e68f0e583 Fix typo: renpy.music.register_channel 2013-11-21 01:00:49 +01:00
javimat e911f5a2d0 More translation of the comments in options.rpy 2013-11-21 00:49:29 +01:00
javimat abd473a384 Traduciendo options.rpy 2013-11-21 00:09:34 +01:00
javimat 43143e69eb Update screens.rpy 2013-11-20 23:42:03 +01:00
javimat 43f6c19b1e Merge pull request #1 from renpy/master
Updating my fork
2013-11-20 14:35:26 -08:00
javimat 2e97d84c5b Update screens.rpy 2013-11-20 19:04:11 +01:00
javimat 6132dde743 Update options.rpy 2013-11-20 19:03:24 +01:00
javimat 613f7c0511 Update options.rpy 2013-11-20 18:53:52 +01:00
javimat 572c829179 Using PROJECT_NAME
Changed:
config.window_title = u"PROJECT_NAME"
config.name = "PROJECT_NAME"
in lines 38 and 45
2013-11-20 11:03:36 +01:00
javimat 533b969d5c Using PROJECT_NAME
Changed:
config.window_title = u"PROJECT_NAME"
config.name = "PROJECT_NAME"
in lines 26 and 30
2013-11-20 11:01:26 +01:00
javimat 177b0c0bde config.name = "PROJECT_NAME"
Changed:
config.window_title = u"PROJECT_NAME"
config.name = "PROJECT_NAME"
in lines 26 and 30
2013-11-20 10:59:22 +01:00
Tom Rothamel dde25cfcc7 Fix typo. 2013-11-19 23:13:37 -05:00
Daniel Luque 85e86fe406 Merge pull request #242 from LuqueDaniel/update-sp-translation
Update Spanish translation.
2013-11-19 05:31:43 -08:00
Daniel Luque abaf4056dd Replaced 'Abrir' and 'Grabar'. I think it's better to use 'Cargar' and 'Guardar 2013-11-19 14:19:45 +01:00
Daniel Luque 32a0e92b69 Replaced 'incluye' -> 'incluir': launcher/game/tl/spanish/preferences.rpy 2013-11-19 13:55:28 +01:00
Tom Rothamel 7d4a1d7532 Merge pull request #241 from javimat/patch-1
Update updater.rpy
2013-11-18 08:40:32 -08:00
javimat 9031bf8100 Update updater.rpy
Two typos corrected.
2013-11-18 17:39:10 +01:00
Tom Rothamel 8c4b21ad62 Merge pull request #239 from javimat/patch-1
Update distribute.rpy
2013-11-18 08:01:37 -08:00
Tom Rothamel 8e21344356 Merge pull request #240 from vbkaisetsu/launcher-ja
update Japanese translation of launcher
2013-11-18 08:01:22 -08:00
javimat b3620191d8 Update distribute.rpy 2013-11-18 13:14:42 +01:00
javimat 8ecdef81c9 Update distribute.rpy 2013-11-18 12:20:21 +01:00
Tom Rothamel 43db399352 Merge pull request #237 from LuqueDaniel/translation-no-jdk
Added Spanish translation.
2013-11-17 06:07:19 -08:00
Daniel Luque 798dd075ba Added translation for: launcher/game/android.rpy:13 2013-11-17 14:12:51 +01:00
Daniel Luque 6794e5fa36 Updated line number: launcher/game/tl/spanish/android.rpy 2013-11-17 14:01:26 +01:00
Koichi Akabe 799716565c update Japanese translation of launcher 2013-11-17 11:22:45 +09:00
Tom Rothamel de15d2045f Merge pull request #226 from javimat/master
Spanish template
2013-11-16 17:37:13 -08:00
Tom Rothamel 219767251c Merge pull request #227 from LuqueDaniel/master
Ren'Py Launcher translated into Spanish, based on Japanese translation.
2013-11-16 17:29:59 -08:00
Tom Rothamel 5272af0b06 Require a 32-bit JDK on windows. Warn the creator if it doesn't exist. 2013-11-16 19:40:15 -05:00
Tom Rothamel 2325691fcb Fix newest_slot when regexp=None.
Forgot to check for this case.
2013-11-16 00:43:47 -05:00
Tom Rothamel 2f072f4a26 Save improvements.
* Do not cycle saves if the user says no to quicksave.
* Rescan immediately after a save.
* Ensure scan_saved_game always returns a valid result.

Fixes #236, hopefully.
2013-11-16 00:40:42 -05:00
kyouryuukunn e57842386c fix doc 2013-11-14 14:37:33 +09:00
Tom Rothamel 09d682cd23 Merge pull request #229 from kyouryuukunn/get_mouse_pos
add renpy.get_mouse_pos()
2013-11-13 20:11:33 -08:00
morio b03f96a756 Fix for smaller issues, will work on second major issue soon 2013-11-13 23:29:13 +00:00
kyouryuukunn 4d553c9db6 add MouseMove and MouseJump action 2013-11-13 18:58:00 +09:00
kyouryuukunn 61f09261d4 add renpy.set_mouse_pos() 2013-11-13 18:11:34 +09:00
Tom Rothamel b38551eef8 Fix fast skipping. 2013-11-12 18:49:31 -05:00
kyouryuukunn 79cf7df614 add renpy.get_mouse_pos() 2013-11-13 02:15:25 +09:00
Daniel Luque e2eecee1d8 Added translation for game/front_page.rpy:122 2013-11-12 13:11:37 +01:00
Daniel Luque 2d51144c43 Added translation for game/preferences.rpy:146 2013-11-12 13:08:19 +01:00
Daniel Luque d4565981b1 Fix typo /launcher/game/tl/spanish/updater.rpy 2013-11-12 12:55:13 +01:00
Daniel Luque e0ffeeea2a Fix typo /launcher/game/tl/spanish/translations.rpy 2013-11-12 12:49:36 +01:00
Daniel Luque a8e83dc58c Fix typo /launcher/game/tl/spanish/project.rpy 2013-11-12 12:47:13 +01:00
Daniel Luque ea6666185a Fix typo /launcher/game/tl/spanish/preferences.rpy 2013-11-12 12:41:43 +01:00
Daniel Luque efe70fad93 Fix typo /launcher/game/tl/spanish/new_project.rpy 2013-11-12 12:39:01 +01:00
Daniel Luque f4fec843e1 Fix typo /launcher/game/tl/spanish/navigation.rpy 2013-11-12 12:33:26 +01:00
Daniel Luque fadbe0e226 Fix typo /launcher/game/tl/spanish/interface.rpy 2013-11-12 12:30:39 +01:00
Daniel Luque 69068c8720 Fix typo /launcher/game/tl/spanish/editor.rpy 2013-11-12 12:23:30 +01:00
Daniel Luque f7960006cc Fix typo /launcher/game/tl/spanish/distribute_gui.rpy 2013-11-12 12:14:28 +01:00
Daniel Luque fb214d9ab8 Translation changed /launcher/game/tl/spanish/android.rpy 2013-11-12 12:07:48 +01:00
Daniel Luque d5d68632e7 Fix typo /launcher/game/tl/spanish/android.rpy 2013-11-12 12:03:08 +01:00
Daniel Luque b5ec036687 Fix typo /launcher/game/tl/spanish/add_file.rpy 2013-11-12 11:31:55 +01:00
Tom Rothamel 3e1a5c18a9 Make string translatable. 2013-11-11 22:56:15 -05:00
Tom Rothamel b480580399 Templates can now be seen in the launcher.
This means that it will be possible to use "Generate Translations" to
update a template when Ren'Py changes.
2013-11-11 22:50:22 -05:00
Tom Rothamel 2822624e85 Decode TODO lines.
This allows for non-ASCII TODO lines.
2013-11-11 21:37:21 -05:00
javimat 205019a769 Create README.html 2013-11-11 15:18:22 +01:00
javimat 3d935e164d Create project.json 2013-11-11 15:17:46 +01:00
javimat 915fc5d6d8 Create script.rpy 2013-11-11 15:17:11 +01:00
javimat 3b60108c7a Create screens.rpy 2013-11-11 15:16:30 +01:00
javimat c624331af5 Create options.rpy 2013-11-11 15:15:56 +01:00
javimat 1e096ec479 Create screens.rpy 2013-11-11 15:14:54 +01:00
javimat d9ba99962c Create common.rpy 2013-11-11 15:13:47 +01:00
Daniel Luque 6e3cd02fdc Ren'Py Launcher translated into Spanish, based on Japanese translation. 2013-11-11 15:08:32 +01:00
Tom Rothamel 98520d6d74 Various changes to make nightly builds possible. 2013-11-10 23:57:33 -05:00
Tom Rothamel 5085b1300b Fsencode the path to the update directory.
This should help make the updater work on non-ASCII systems.
2013-11-09 22:12:41 -05:00
Tom Rothamel 88275fa716 Use correct variable to access preferences.
Fixes a bug when config.default_language is set.
2013-11-09 14:53:53 -05:00
Tom Rothamel ce752343ca Document that video playback is supported on Android. 2013-11-09 12:36:39 -05:00
Tom Rothamel f74fb6ab29 Merge pull request #224 from DragoonHP/patch-1
Fix Doc
2013-11-09 06:36:28 -08:00
DragoonHP 7b185e022a Fix Doc 2013-11-09 10:47:39 +05:30
Tom Rothamel f9523a63f3 Use renpy.sh to generate documentation includes. 2013-11-08 20:51:36 -05:00
Tom Rothamel 524d9a77a2 Change the command line we use to run Ren'Py on Linux/Mac.
We remove one -O from the python command line. This prevents python
from removing docstrings, which means we can now use renpy.sh to
generate the documentation includes.
2013-11-08 20:49:22 -05:00
Tom Rothamel 7362261469 Ensure the environment contains only encoded strings.
Fixes #222.
2013-11-08 20:42:46 -05:00
paulmorio bf98392005 Forgot final line on README 2013-11-08 13:39:31 +00:00
paulmorio 037686e7a1 More installation options for sphinx and cython if global rights. 2013-11-08 13:27:13 +00:00
morio 9df83fb0ae Format and look for README 2013-11-08 13:22:29 +00:00
morio 1486757426 Fixed codeblocks for new README 2013-11-08 13:18:46 +00:00
morio b9671f7c77 README altered to show more information and options in building renpy 2013-11-08 13:10:47 +00:00
Tom Rothamel f95ff022d4 Allow the title of the input prompt to be translated.
Fixes #221.
2013-11-07 18:02:25 -05:00
Tom Rothamel 25661cf69e Bump version to 6.16.1. 2013-11-07 17:41:45 -05:00
Tom Rothamel c2cb614750 Flag a string as translatable.
This doesn't have any actual effect, but makes the code read
better. That's because "Test" is already translated in a bunch
of other places.
2013-11-06 21:50:10 -05:00
Tom Rothamel e326c8d66e Document rare problems that can be worked around. 2013-11-06 21:30:22 -05:00
Tom Rothamel 030edbd5d8 Check in generated file. 2013-11-05 23:04:55 -05:00
Tom Rothamel 4bab0874b7 Document some functions. 2013-11-05 23:04:24 -05:00
Tom Rothamel 26b5b3a315 Update generated documentation. 2013-11-04 22:33:56 -05:00
Tom Rothamel bc94ee0cfa Use the build mechanism to build android distributions.
This allows creators to use build.classify to exclude files from
an Android distribution, or specify that files are Android-only.
2013-11-04 22:13:12 -05:00
Tom Rothamel a7aba0642b Do not fail if a module import can't be decoded as utf-8. 2013-11-03 21:04:26 -05:00
Tom Rothamel 956b9aff4a Merge pull request #218 from kyouryuukunn/fix_doc4
Fix doc4
2013-11-03 16:23:38 -08:00
kyouryuukunn 25bea3444f fix doc 2013-11-04 08:55:01 +09:00
kyouryuukunn 71ea4caeb9 fix doc 2013-11-04 08:46:33 +09:00
Tom Rothamel 9d354bfcf9 Merge pull request #216 from kyouryuukunn/fix_doc4
fix doc
2013-11-03 15:41:20 -08:00
kyouryuukunn b548b851ce fix doc 2013-11-04 08:37:20 +09:00
Tom Rothamel 6d2faf0d02 Fix typo.
Thanks to xavimat for the report.
2013-11-03 10:19:59 -05:00
Tom Rothamel 154c9f9d4a Merge pull request #214 from vbkaisetsu/fix-typo
fix typo
2013-11-03 07:11:15 -08:00
Koichi Akabe 579701cd30 fix typo 2013-11-03 23:53:33 +09:00
Tom Rothamel aacbd640e0 Support for building an android-suitable distribution.
This is the first step in using the build system to select the files
that will be included in an Android package.
2013-11-03 09:12:51 -05:00
Tom Rothamel 01e8296661 Add android package build information. 2013-11-02 23:45:19 -04:00
Tom Rothamel 32f2fc8126 Properly generate options.rpy for the japanese template.
The japanese template includes the build stuff, which also needs
to be updated when it's used to create a game.
2013-11-02 22:46:10 -04:00
Tom Rothamel 076e342f65 Fix a deadlock.
When the auto-save thread kicked off at the end of the game, it could
sit there waiting for a screenshot that would never be taken. This
fixes that, both by taking the screenshot and adding timeouts
that should prevent eternal pauses.
2013-11-02 21:59:24 -04:00
Tom Rothamel b186a703e2 Deal with symlinks leading to renpy.sh. 2013-11-01 18:11:08 -04:00
Tom Rothamel c9bfd1e377 Merge pull request #212 from vbkaisetsu/fix-typo-n-style
fix typos and style
2013-11-01 11:33:12 -07:00
Koichi Akabe 3365a073cb fix typos and style 2013-11-01 14:10:29 +09:00
560 changed files with 43804 additions and 6299 deletions
+5 -4
View File
@@ -5,15 +5,15 @@
*.pyo
*~
*.bak
*.bak
saves
tmp
cache
log.txt
errors.txt
traceback.txt
/errors.txt
/traceback.txt
styles.txt
@@ -46,8 +46,9 @@ styles.txt
/module/gen
/editra
/launcher/game/theme
/launcher/game/script_version.rpy
dl
renpy/vc_version.py
.externalToolBuilders
rapt-*
rapt
+113 -27
View File
@@ -4,46 +4,132 @@ The Ren'Py Visual Novel Engine
http://www.renpy.org
Ren'Py development takes place on the ``master`` branch, and occasionally
on feature branches.
Branches
========
Getting Started
===============
Ren'Py development takes place on two branches, ``master`` and
``devel``, as well as the occasional feature branch.
Ren'Py depends on a number of python modules written in Cython and C. For
changes to Ren'Py that only involve python modules, you can use the modules
found in the latest nightly build. Otherwise, you'll have to compile the
modules yourself.
Master
-----
The development scripts assume a POSIX-like platform. The scripts should run
on Linux or Mac OS X, and can be made to run on Windows using an environment
like Msys.
The master branch contains code that can be run using the libraries in
the latest (release or pre-release) version of Ren'Py. It's used for
bugfixes and features that do not require C or Cython code to
implement.
Nightly Build
-------------
After checking out master, run::
Nightly builds can be downloaded from:
./after_checkout.sh <path-to-renpy>
http://nightly.renpy.org
to link in the libraries from the most recent Ren'Py. (On Windows, you
will need to run this under msys or cygwin.)
Note that the latest nightly build is at the bottom of the list. Once you've
unpacked the nightly, change into this repository, and run::
Ren'Py can then be run by running renpy.exe, renpy.sh, or renpy.app as
appropriate.
./after_checkout.sh <path-to-nightly>
Devel
-----
Once this script completes, you should be able to run Ren'Py using renpy.sh,
renpy.app, or renpy.exe, as appropriate for your platform.
The devel branch contains code that requires a recompile of modules
implemented in C or Cython. Building devel requires you to have the
prerequisite libraries installed. Then set RENPY_DEPS_INSTALLED to
a \::-separated list of paths containing dependencies. For example::
If the current nightly build doesn't work, please wait 24 hours for a new
build to occur. If that build still doesn't work, contact Tom (`pytom at bishoujo.us`,
or @renpytom on twitter) to find out what's wrong.
export RENPY_DEPS_INSTALL=/usr::/usr/lib/x86_64-linux-gnu/
The ``doc`` symlink will dangle until documentation is built, as described
below.
Finally, change into the modules directory, and run::
Compiling the Modules
----------------------
python setup.py install
Building the modules requires you have the many dependencies installed on
your system. On Ubuntu and Debian, these dependencies can be installed with
the command::
Ren'Py can then be run by using python to run renpy.py.
apt-get install python-dev python-pygame libavcodec-dev libavformat-dev \
libavresample-dev libfreetype6-dev libglew1.6-dev libsdl1.2-dev \
libsdl-image1.2-dev libfribidi-dev libswscale-dev libesd0-dev libpulse-dev
Other platforms may have an equivalent command. Otherwise, you'll need to
build `renpy-deps <https://github.com/renpy/renpy-deps>`_.
We strongly suggest installing the Ren'Py modules into a Python
virtualenv. `This page <http://dabapps.com/blog/introduction-to-pip-and-virtualenv-python/>`_
describes how to install pip and the virtualenv tool, and set up a new virtualenv.
After activating the virtualenv, install cython::
pip install -U cython
Next, set RENPY_DEPS_INSTALL To a \::-separated list of paths containing the
dependencies, and RENPY_CYTHON to the name of the cython command::
export RENPY_DEPS_INSTALL=/usr::/usr/lib/x86_64-linux-gnu/
export RENPY_CYTHON=cython
Finally, change into the `modules` directory, and run::
python setup.py install
Ren'Py will be installed into the activated virtualenv. It can then be run
using the command::
python -O renpy.py
Documentation
=============
Building
--------
Building the documentation requires Ren'Py to work. You'll either need to
link in a nightly build, or compile the modules as described above. You'll
also need the `Sphinx <http://sphinx-doc.org/>`_ documentation generator.
If you have pip working, install Sphinx using::
pip install -U sphinx
Once Sphinx is installed, change into the ``sphinx`` directory inside the
Ren'Py checkout and run::
./build.sh
Format
------
Ren'Py's documentation consists of reStructuredText files found in sphinx/source, and
generated documentation found in function docstrings scattered throughout the code. Do
not edit the files in sphinx/source/inc directly, as they will be overwritten.
Docstrings may include tags on the first few lines:
\:doc: `section` `kind`
Indicates that this functions should be documented. `section` gives
the name of the include file the function will be documented in, while
`kind` indicates the kind of object to be documented (one of ``function``,
``method`` or ``class``. If omitted, `kind` will be auto-detected.
\:name: `name`
The name of the function to be documented. Function names are usually
detected, so this is only necessary when a function has multiple aliases.
\:args: `args`
This overrides the detected argument list. It can be used if some arguments
to the function are deprecated.
For example::
def warp_speed(factor, transwarp=False):
"""
:doc: warp
:name: renpy.warp_speed
:args: (factor)
Exceeds the speed of light.
"""
renpy.engine.warp_drive.engage(factor)
Contributing
@@ -51,5 +137,5 @@ Contributing
For bug fixes, documentation improvements, and simple changes, just
make a pull request. For more complex changes, it might make sense
to file an issue so we can discuss the design.
to file an issue first so we can discuss the design.
-1
View File
@@ -47,7 +47,6 @@ check_dirty()
os.chdir("/home/tom/ab/renpy/android")
check_dirty()
subprocess.check_call([ "./add_renpy.sh", short_version ])
if not args.no_tag:
subprocess.check_call([ "git", "tag", "-a", "rapt-" + version, "-m", "Tagging RAPT release." ])
-1
View File
@@ -7,7 +7,6 @@ ln -s "$ROOT/help.html" "$ROOT/the_question/README.html"
ln -s "$ROOT/help.html" "$ROOT/templates/english/README.html"
ln -s "$ROOT/sphinx/source/license.rst" "$ROOT/LICENSE.txt"
ln -s "$ROOT/sphinx/build/html" "$ROOT/doc"
if [ "$1" != "" ]; then
ln -s "$1/lib" "$ROOT/lib"
+53 -40
View File
@@ -1,4 +1,4 @@
#!/home/tom/bin/renpython -OO
#!/home/tom/bin/renpython -O
# Builds a distribution of Ren'Py.
@@ -8,8 +8,9 @@ import compileall
import shutil
import subprocess
import argparse
import glob
CWD = os.getcwdu()
ROOT = os.path.dirname(os.path.abspath(__file__))
def copy_tutorial_file(src, dest):
"""
@@ -59,7 +60,11 @@ def main():
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", "--match", match_version ])
parts = s.strip().split("-")
vc_version = int(parts[1])
if len(parts) <= 2:
vc_version = 0
else:
vc_version = int(parts[1])
if parts[-1] == "dirty":
vc_version += 1
@@ -67,14 +72,24 @@ def main():
with open("renpy/vc_version.py", "w") as f:
f.write("vc_version = {}".format(vc_version))
reload(sys.modules['renpy.vc_version']) #@UndefinedVariable
try:
reload(sys.modules['renpy.vc_version']) #@UndefinedVariable
except:
import renpy.vc_version # @UnusedImport
reload(sys.modules['renpy'])
# Check that the versions match.
full_version = ".".join(str(i) for i in renpy.version_tuple) #@UndefinedVariable
if args.version != "experimental" and not full_version.startswith(args.version):
if args.version != "renpy-experimental" \
and not args.version.startswith("renpy-nightly-") \
and not full_version.startswith(args.version):
raise Exception("The command-line and Ren'Py versions do not match.")
# The destination directory.
destination = os.path.join("dl", args.version)
print "Version {} ({})".format(args.version, full_version)
# Copy over the screens, to keep them up to date.
@@ -83,16 +98,42 @@ def main():
# Compile all the python files.
compileall.compile_dir("renpy/", ddir="renpy/", force=1, quiet=1)
# Compile the various games
# Generate launcher/game/script_version.rpy
with open("launcher/game/script_version.rpy", "w") as f:
f.write("init -999 python:\n")
f.write(" config.script_version = {!r}\n".format(renpy.version_tuple[:3])) # @UndefinedVariable
# Compile the various games.
if not args.fast:
for i in [ 'tutorial', 'launcher', 'templates/english', 'templates/japanese', 'the_question' ]:
for i in [ 'tutorial', 'launcher', 'the_question' ] + glob.glob("templates/*"):
print "Compiling", i
subprocess.check_call(["./renpy.sh", i, "quit" ])
# The destination directory.
destination = os.path.join("dl", args.version)
# Kick off the rapt build.
if not args.fast:
out = open("/tmp/rapt_build.txt", "wb")
print("Building RAPT.")
android = os.path.abspath("android")
rapt_build = subprocess.Popen([
os.path.join(android, "build_renpy.sh"),
"renpy",
ROOT,
],
cwd = android,
stdout=out,
stderr=out)
code = rapt_build.wait()
if code:
print "RAPT build failed. The output is in /tmp/rapt_build.txt."
sys.exit(1)
else:
print "RAPT build succeeded."
if not os.path.exists(destination):
os.makedirs(destination)
@@ -124,26 +165,6 @@ def main():
print
subprocess.check_call(cmd)
# Kick off the rapt build.
if not args.fast:
out = open("/tmp/rapt_build.txt", "wb")
print os.getcwd()
print("Building RAPT in the background.")
android = os.path.abspath("android")
rapt_build = subprocess.Popen([
os.path.join(android, "build_renpy.sh"),
zip_version
],
cwd = android,
stdout=out,
stderr=out)
else:
rapt_build = None
# Sign the update.
if not args.fast:
subprocess.check_call([
@@ -156,6 +177,9 @@ def main():
# Write 7z.exe.
sdk = "renpy-{}-sdk".format(zip_version)
if args.version.startswith("renpy-nightly-"):
sdk = args.version + "-sdk"
if not args.fast:
# shutil.copy("renpy-ppc.zip", os.path.join(destination, "renpy-ppc.zip"))
@@ -204,16 +228,5 @@ def main():
print
if rapt_build:
code = rapt_build.wait()
if code:
print "RAPT build failed. The output is in /tmp/rapt_build.txt"
else:
print "RAPT build succeeded."
print
print "Did you run me with renpython -OO?"
print "Did you update renpy.py and launcher/script_version.rpy?"
if __name__ == "__main__":
main()
+83 -79
View File
@@ -42,86 +42,90 @@ display: none;
<p><a name="Basic_Help" id="Basic_Help"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=1" title="Edit section: Basic Help">edit</a>]</span> <span class="mw-headline">Basic Help</span></h2>
<p>To advance through the game, <tt>left-click</tt> or press the <tt>space</tt> or <tt>enter</tt> keys. When at a menu, <tt>left-click</tt> to make a choice, or use the arrow keys to select a choice and <tt>enter</tt> to activate it.</p>
<p><a name="Game_Menu" id="Game_Menu"></a></p>
<h3><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=2" title="Edit section: Game Menu">edit</a>]</span> <span class="mw-headline">Game Menu</span></h3>
<p>When playing a game, <tt>right-click</tt> or press the <tt>escape</tt> key to enter the game menu. The game menu gives the following choices:</p>
<dl>
<dt>Return</dt>
<dd>Returns to the game.</dd>
<dt>Save Game</dt>
<dd>Allows you to save a game by clicking on a save slot.</dd>
<dt>Load Game</dt>
<dd>Allows you to load a game by clicking on a save slot. Clicking on "Auto" accesses the automatic save slots.</dd>
<dt>Preferences</dt>
<p><a name="Basic_Help" id="Basic_Help"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=1" title="Edit section: Basic Help">edit</a>]</span> <span class="mw-headline">Basic Help</span></h2>
<p>To advance through the game, <tt>left-click</tt> or press the <tt>space</tt> or <tt>enter</tt> keys. When at a menu, <tt>left-click</tt> to make a choice, or use the arrow keys to select a choice and <tt>enter</tt> to activate it.</p>
<p><a name="Game_Menu" id="Game_Menu"></a></p>
<h3><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=2" title="Edit section: Game Menu">edit</a>]</span> <span class="mw-headline">Game Menu</span></h3>
<p>When playing a game, <tt>right-click</tt> or press the <tt>escape</tt> key to enter the game menu. The game menu gives the following choices:</p>
<dl>
<dt>Return</dt>
<dd>Returns to the game.</dd>
<dt>Save Game</dt>
<dd>Allows you to save a game by clicking on a save slot.</dd>
<dt>Load Game</dt>
<dd>Allows you to load a game by clicking on a save slot. Clicking on "Auto" accesses the automatic save slots.</dd>
<dt>Preferences</dt>
<dd>Changes the game preferences (options/configuration):
<dl>
<dt>Display</dt>
<dd>Switches between fullscreen and windowed mode.</dd>
<dt>Transitions</dt>
<dd>Controls the display of transitions between game screens.</dd>
<dt>Text Speed</dt>
<dd>Controls the rate at which text displays. The further to the right this slider is, the faster the text will display. All the way to the right causes text to be shown instantly.</dd>
<dt>Joystick</dt>
<dd>Lets you control the game using a joystick.</dd>
<dt>Skip</dt>
<dd>Chooses between skipping messages that have been already seen (in any play through the game), and skipping all messages.</dd>
<dt>Begin Skipping</dt>
<dd>Returns to the game, while skipping.</dd>
<dt>After Choices</dt>
<dd>Controls if skipping stops upon reaching a menu.</dd>
<dt>Auto-Forward Time</dt>
<dd>Controls automatic advance. The further to the left this slider is, the shorter the amount of time before the game advances. All the way to the right means text will never auto-forward.</dd>
<dt>Music, Sound, and Voice Volume</dt>
<dd>Controls the volume of the Music, Sound effect, and Voice channels, respectively. The further to the right these are, the louder the volume.</dd>
</dl>
</dd>
</dl>
<dl>
<dt>Main Menu</dt>
<dd>Returns to the main menu, ending the current game.</dd>
<dt>Help</dt>
<dd>Shows this help screen.</dd>
<dt>Quit</dt>
<dd>Exits the game; the game will be closed and ended.</dd>
</dl>
<p><a name="Key_and_Mouse_Bindings" id="Key_and_Mouse_Bindings"></a></p>
<h3><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=3" title="Edit section: Key and Mouse Bindings">edit</a>]</span> <span class="mw-headline">Key and Mouse Bindings</span></h3>
<dl>
<dt>Left-click, Enter</dt>
<dd>Advances through the game, activates menu choices, buttons, and sliders.</dd>
<dt>Space</dt>
<dd>Advances through the game, but does not activate choices.</dd>
<dt>Arrow Keys</dt>
<dd>Selects menu choices, buttons, and sliders.</dd>
<dt>Ctrl</dt>
<dd>Causes skipping to occur while the ctrl key is held down.</dd>
<dt>Tab</dt>
<dd>Toggles skipping, causing it to occur until tab is pressed again.</dd>
<dt>Mousewheel-Up, PageUp</dt>
<dd>Causes rollback to occur. Rollback reverses the game back in time, showing prior text and even allowing menu choices to be changed.</dd>
<dt>Mousewheel-Down, PageDown</dt>
<dd>Causes rollforward to occur, cancelling out a previous rollback.</dd>
<dt>Right-click, Escape</dt>
<dd>Enters the game menu. When in the game menu, returns to the game.</dd>
<dt>Middle-click, H</dt>
<dd>Hides the text window and other transient displays.</dd>
<dt>F</dt>
<dd>Toggles fullscreen mode</dd>
<dt>S</dt>
<dd>Takes a screenshot, saving it in a file named screenshotxxxx.png, where xxxx is a serial number.</dd>
<dt>Alt-M, Command-H</dt>
<dd>Hides (iconifies) the window.</dd>
<dt>Alt-F4, Command-Q</dt>
<dd>Quits the game.</dd>
<dt>Delete</dt>
<dd>When a save slot is selected, deletes that save slot.</dd>
</dl>
<p><a name="Legal_Notice" id="Legal_Notice"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=4" title="Edit section: Legal Notice">edit</a>]</span> <span class="mw-headline">Legal Notice</span></h2>
<p>This game uses source code from a number of open source projects. For a list, and a location where the source code can be downloaded from, please view the LICENSE.txt file in the renpy directory, or visit <a href="http://www.renpy.org/wiki/renpy/License" class="external free" title="http://www.renpy.org/wiki/renpy/License" rel="nofollow">http://www.renpy.org/wiki/renpy/License</a> .</p>
<dl>
<dt>Display</dt>
<dd>Switches between fullscreen and windowed mode.</dd>
<dt>Transitions</dt>
<dd>Controls the display of transitions between game screens.</dd>
<dt>Text Speed</dt>
<dd>Controls the rate at which text displays. The further to the right this slider is, the faster the text will display. All the way to the right causes text to be shown instantly.</dd>
<dt>Joystick</dt>
<dd>Lets you control the game using a joystick.</dd>
<dt>Skip</dt>
<dd>Chooses between skipping messages that have been already seen (in any play through the game), and skipping all messages.</dd>
<dt>Begin Skipping</dt>
<dd>Returns to the game, while skipping.</dd>
<dt>After Choices</dt>
<dd>Controls if skipping stops upon reaching a menu.</dd>
<dt>Auto-Forward Time</dt>
<dd>Controls automatic advance. The further to the left this slider is, the shorter the amount of time before the game advances. All the way to the right means text will never auto-forward.</dd>
<dt>Music, Sound, and Voice Volume</dt>
<dd>Controls the volume of the Music, Sound effect, and Voice channels, respectively. The further to the right these are, the louder the volume.</dd>
</dl>
</dd>
</dl>
<dl>
<dt>Main Menu</dt>
<dd>Returns to the main menu, ending the current game.</dd>
<dt>Help</dt>
<dd>Shows this help screen.</dd>
<dt>Quit</dt>
<dd>Exits the game; the game will be closed and ended.</dd>
</dl>
<p><a name="Key_and_Mouse_Bindings" id="Key_and_Mouse_Bindings"></a></p>
<h3><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=3" title="Edit section: Key and Mouse Bindings">edit</a>]</span> <span class="mw-headline">Key and Mouse Bindings</span></h3>
<dl>
<dt>Left-click, Enter</dt>
<dd>Advances through the game, activates menu choices, buttons, and sliders.</dd>
<dt>Space</dt>
<dd>Advances through the game, but does not activate choices.</dd>
<dt>Arrow Keys</dt>
<dd>Selects menu choices, buttons, and sliders.</dd>
<dt>Ctrl</dt>
<dd>Causes skipping to occur while the ctrl key is held down.</dd>
<dt>Tab</dt>
<dd>Toggles skipping, causing it to occur until tab is pressed again.</dd>
<dt>Mousewheel-Up, PageUp</dt>
<dd>Causes rollback to occur. Rollback reverses the game back in time, showing prior text and even allowing menu choices to be changed.</dd>
<dt>Mousewheel-Down, PageDown</dt>
<dd>Causes rollforward to occur, cancelling out a previous rollback.</dd>
<dt>Right-click, Escape</dt>
<dd>Enters the game menu. When in the game menu, returns to the game.</dd>
<dt>Middle-click, H</dt>
<dd>Hides the text window and other transient displays.</dd>
<dt>F</dt>
<dd>Toggles fullscreen mode</dd>
<dt>S</dt>
<dd>Takes a screenshot, saving it in a file named screenshotxxxx.png, where xxxx is a serial number.</dd>
<dt>Alt-M, Command-H</dt>
<dd>Hides (iconifies) the window.</dd>
<dt>Alt-F4, Command-Q</dt>
<dd>Quits the game.</dd>
<dt>Delete</dt>
<dd>When a save slot is selected, deletes that save slot.</dd>
<dt>v</dt>
<dd>Toggles self-voicing mode, which reads text to the user using an os-supplied
speech synthesizer. For more information, please read the <a href="http://www.renpy.org/dev-doc/html/self_voicing.html">self-voicing</a>
documentation.</dd>
</dl>
<p><a name="Legal_Notice" id="Legal_Notice"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=renpy/Help&amp;action=edit&amp;section=4" title="Edit section: Legal Notice">edit</a>]</span> <span class="mw-headline">Legal Notice</span></h2>
<p>This game uses source code from a number of open source projects. For a list, and a location where the source code can be downloaded from, please view the LICENSE.txt file in the renpy directory, or visit <a href="http://www.renpy.org/wiki/renpy/License" class="external free" title="http://www.renpy.org/wiki/renpy/License" rel="nofollow">http://www.renpy.org/wiki/renpy/License</a> .</p>
</body>
+20 -2
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Checks for various abilities that might be taken away from us by
# redistributors.
+21 -3
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
screen about:
@@ -14,7 +32,7 @@ screen about:
has vbox xfill True
add "logo.png" xalign 0.5 yoffset -5
add "images/logo.png" xalign 0.5 yoffset -5
null height 15
+21
View File
@@ -1,3 +1,24 @@
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
label add_file:
python hide:
+244 -48
View File
@@ -1,15 +1,34 @@
# Copyright 2004-2013 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
ANDROID_NO_RAPT = 0
ANDROID_NO_SDK = 1
ANDROID_NO_KEY = 2
ANDROID_NO_CONFIG = 3
ANDROID_OK = 4
ANDROID_NO_JDK = 1
ANDROID_NO_SDK = 2
ANDROID_NO_KEY = 3
ANDROID_NO_CONFIG = 4
ANDROID_OK = 5
NO_RAPT_TEXT = _("To build Android packages, please download RAPT (from {a=http://www.renpy.org/dl/android}here{/a}), unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
NO_RAPT_TEXT = _("To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
NO_JDK_TEXT = _("A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_SDK_TEXT = _("RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this.")
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore.")
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
@@ -17,7 +36,7 @@ init python:
PHONE_TEXT = _("Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button.")
TABLET_TEXT = _("Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button.")
OUYA_TEXT = _("Attempts to emulate an OUYA 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.")
OUYA_TEXT = _("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.")
INSTALL_SDK_TEXT = _("Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package.")
CONFIGURE_TEXT = _("Configures the package name, version, and other information about this project.")
@@ -25,6 +44,9 @@ init python:
BUILD_TEXT = _("Builds the Android package.")
BUILD_AND_INSTALL_TEXT = _("Builds the Android package, and installs it on an Android device connected to your computer.")
CONNECT_TEXT = _("Connects to an Android device running ADB in TCP/IP mode.")
DISCONNECT_TEXT = _("Disconnects from an Android device running ADB in TCP/IP mode.")
import subprocess
import re
@@ -37,28 +59,14 @@ init python:
candidates = [ ]
for fn in os.listdir(config.renpy_base):
if not fn.startswith("rapt-"):
continue
if not os.path.isdir(os.path.join(config.renpy_base, fn)):
continue
try:
version = fn[5:]
version = tuple(int(i) for i in version.split('.'))
except ValueError:
continue
candidates.append((version, fn))
if not candidates:
RAPT_PATH = None
else:
RAPT_PATH = os.path.join(config.renpy_base, candidates[-1][1])
RAPT_PATH = os.path.join(config.renpy_base, "rapt")
if os.path.isdir(RAPT_PATH):
import sys
sys.path.insert(0, os.path.join(RAPT_PATH, "buildlib"))
else:
RAPT_PATH = None
RAPT_PATH is None
find_rapt()
@@ -70,6 +78,7 @@ init python:
import rapt.configure
import rapt.install_sdk
import rapt.plat
import rapt.interface
else:
rapt = None
@@ -80,9 +89,13 @@ init python:
if RAPT_PATH is None:
return ANDROID_NO_RAPT
if not os.path.exists(os.path.join(RAPT_PATH, "android-sdk/extras/google/play_licensing")):
if renpy.windows and not "JAVA_HOME" in os.environ:
return ANDROID_NO_JDK
if not os.path.exists(rapt.plat.path("android-sdk/extras/google/play_licensing")):
return ANDROID_NO_SDK
if not os.path.exists(os.path.join(RAPT_PATH, "android.keystore")):
if not os.path.exists(rapt.plat.path("android.keystore")):
return ANDROID_NO_KEY
if not os.path.exists(rapt.plat.path("local.properties")):
return ANDROID_NO_KEY
if not os.path.exists(os.path.join(project.current.path, ".android.json")):
return ANDROID_NO_CONFIG
@@ -96,6 +109,8 @@ 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:
@@ -127,9 +142,16 @@ init python:
with open(self.filename, "w"):
pass
def log(self, msg):
with open(self.filename, "a") as f:
f.write("\n")
f.write(msg)
f.write("\n")
def info(self, prompt):
self.info_msg = prompt
interface.processing(prompt, pause=False)
self.log(prompt)
def yesno(self, prompt, submessage=None):
return interface.yesno(prompt, submessage=submessage)
@@ -140,7 +162,10 @@ init python:
def terms(self, url, prompt):
submessage = _("{a=%s}%s{/a}") % (url, url)
return interface.yesno(prompt, submessage=submessage)
if not interface.yesno(prompt, submessage=submessage):
self.fail("You must accept the terms and conditions to proceed.", edit=False)
def input(self, prompt, empty=None):
@@ -158,20 +183,40 @@ init python:
def choice(self, prompt, choices, default):
return interface.choice(prompt, choices, default, cancel=Jump("android"))
def fail(self, prompt):
def fail(self, prompt, edit=True):
self.log(prompt)
prompt = re.sub(r'(http://\S+)', r'{a=\1}\1{/a}', prompt)
# Open android.txt in the editor.
if edit:
editor.EditAbsolute(self.filename)()
interface.error(prompt, label="android")
def success(self, prompt):
self.log(prompt)
interface.info(prompt, pause=False)
def final_success(self, prompt):
self.log(prompt)
interface.info(prompt, label="android")
def call(self, cmd, cancel=False, use_path=False):
def run_yes_thread(self):
import time
if not use_path:
cmd = [ rapt.plat.path(cmd[0]) ] + list(cmd[1:])
try:
while self.run_yes:
self.process.stdin.write('y\n')
self.process.stdin.flush()
time.sleep(.2)
except:
import traceback
traceback.print_exc()
def call(self, cmd, cancel=False, use_path=False, yes=False):
print
print " ".join(cmd)
self.cmd = cmd
@@ -191,11 +236,29 @@ init python:
try:
interface.processing(self.info_msg, show_screen=True, cancel=cancel_action)
self.process = subprocess.Popen(cmd, cwd=RAPT_PATH, stdout=f, stderr=f, startupinfo=startupinfo)
kwargs = { }
if yes:
kwargs["stdin"] = subprocess.PIPE
self.process = subprocess.Popen(cmd, cwd=RAPT_PATH, stdout=f, stderr=f, startupinfo=startupinfo, **kwargs)
if yes:
import threading
self.run_yes = True
self.yes_thread = threading.Thread(target=self.run_yes_thread)
self.yes_thread.daemon = True
self.yes_thread.start()
renpy.call_screen("android_process", interface=self)
finally:
f.close()
interface.hide_screen()
if yes and self.yes_thread:
self.run_yes = False
self.yes_thread.join()
self.process = None
def check_process(self):
@@ -266,16 +329,19 @@ init python:
p = project.current
p.launch(env=env)
def update_android_json():
def update_android_json(p, gui):
"""
Updates .android.json to include the google play information.
`p`
The project to update json for.
"""
project.current.update_dump(True)
p.update_dump(True, gui=gui)
build = project.current.dump["build"]
build = p.dump["build"]
filename = os.path.join(project.current.path, ".android.json")
filename = os.path.join(p.path, ".android.json")
with open(filename, "r") as f:
android_json = json.load(f)
@@ -298,7 +364,45 @@ init python:
with open(filename, "w") as f:
json.dump(android_json, f)
def android_build(command, p=None, gui=True):
"""
This actually builds the package.
"""
if p is None:
p = project.current
update_android_json(p, gui)
dist = p.temp_filename("android.dist")
if os.path.exists(dist):
shutil.rmtree(dist)
if gui:
reporter = distribute.GuiReporter()
rapt_interface = AndroidInterface()
else:
reporter = distribute.TextReporter()
rapt_interface = rapt.interface.Interface()
distribute.Distributor(p,
reporter=reporter,
packages=[ 'android' ],
build_update=False,
noarchive=True,
packagedest=dist,
report_success=False,
)
with interface.nolinks():
rapt.build.build(rapt_interface, dist, command)
# The android support can stick unicode into os.environ. Fix that.
init 100 python:
for k, v in list(os.environ.items()):
if not isinstance(v, str):
os.environ[k] = renpy.fsencode(v)
screen android_process(interface):
@@ -402,6 +506,28 @@ screen android:
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_and_install"))
hovered tt.Action(BUILD_AND_INSTALL_TEXT)
add SPACER
add SEPARATOR2
frame:
style "l_indent"
has vbox
text _("Other:")
add HALF_SPACER
frame style "l_indent":
has vbox
textbutton _("Remote ADB Connect"):
action AndroidIfState(state, ANDROID_OK, Jump("android_connect"))
hovered tt.Action(CONNECT_TEXT)
textbutton _("Remote ADB Disconnect"):
action AndroidIfState(state, ANDROID_OK, Jump("android_disconnect"))
hovered tt.Action(DISCONNECT_TEXT)
# Right side.
@@ -430,6 +556,11 @@ screen android:
label android:
if RAPT_PATH is None:
$ interface.yesno(_("Before packaging Android apps, you'll need to download RAPT, the Ren'Py Android Packaging Tool. Would you like to download RAPT now?"), no=Jump("front_page"))
$ add_dlc("rapt", restart=True)
call screen android
@@ -452,19 +583,84 @@ label android_configure:
label android_build:
python:
with interface.nolinks():
update_android_json()
rapt.build.build(AndroidInterface(), project.current.path, [ 'release' ])
$ android_build([ 'release' ])
jump android
label android_build_and_install:
python:
with interface.nolinks():
update_android_json()
rapt.build.build(AndroidInterface(), project.current.path, [ 'release', 'install' ])
$ android_build([ 'release', 'install' ])
jump android
label android_connect:
python hide:
if persistent.connect_address is not None:
address = persistent.connect_address
else:
address = ""
while True:
address = interface.input(
_("Remote ADB Address"),
_("Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."),
default=address,
cancel=Jump("android"),
)
address = address.strip()
try:
host, port = address.split(":")
except:
interface.error(_("Invalid remote ADB address"), _("The address must contain one exactly one ':'."), label=None)
continue
if " " in host:
interface.error(_("Invalid remote ADB address"), _("The host may not contain whitespace."), label=None)
continue
try:
int(port)
except:
interface.error(_("Invalid remote ADB address"), _("The port must be a number."), label=None)
continue
break
persistent.connect_address = address
rapt_interface = AndroidInterface()
rapt.build.connect(rapt_interface, address)
jump android
label android_disconnect:
python hide:
rapt_interface = AndroidInterface()
rapt.build.disconnect(rapt_interface)
jump android
init python:
def android_build_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("project", help="The path to the project directory.")
ap.add_argument("command", help="Commands to pass to ant. (Try 'release' 'install'.)", nargs='+')
args = ap.parse_args()
p = project.Project(args.project)
android_build(args.command, p=p, gui=False)
return False
renpy.arguments.register_command("android_build", android_build_command)
+20 -2
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Ren'Py archiver. This builds a Ren'Py archive file, and the
# associated index file. These files are really easy to
+21
View File
@@ -1,3 +1,24 @@
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# http://www.csn.ul.ie/~caolan/publink/winresdump/winresdump/doc/pefile.html
# Contains a reasonable description of the format.
+20 -2
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
import random
+95 -20
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# This file contains code that manages the distribution of Ren'Py games
# and Ren'Py proper.
@@ -249,7 +267,7 @@ init python in distribute:
This manages the process of building distributions.
"""
def __init__(self, project, destination=None, reporter=None, packages=None, build_update=True, open_directory=False):
def __init__(self, project, destination=None, reporter=None, packages=None, build_update=True, open_directory=False, noarchive=False, packagedest=None, report_success=True):
"""
Distributes `project`.
@@ -270,10 +288,23 @@ init python in distribute:
`open_directory`
If true, the directory containing the built files will be opened
if the build succeeds.
`noarchive`
If true, files will not be placed into archives.
`packagedest`
If given, gives the full path to the single package (without any
extensions).
`report_success`
If true, we report that the build succeeded.
"""
if packagedest is not None:
if packages is None or len(packages) != 1:
raise Exception("Packagedest requires a single package be given.")
# Safety - prevents us frome releasing a launcher that won't update.
# Safety - prevents us from releasing a launcher that won't update.
if store.UPDATE_SIMULATE:
raise Exception("Cannot build distributions when UPDATE_SIMULATE is True.")
@@ -300,6 +331,11 @@ init python in distribute:
self.executable_name = build['executable_name']
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)
self.log.close()
return
# The destination directory.
if destination is None:
destination = build["destination"]
@@ -308,10 +344,13 @@ init python in distribute:
else:
self.destination = destination
try:
os.makedirs(self.destination)
except:
pass
if not packagedest:
try:
os.makedirs(self.destination)
except:
pass
self.packagedest = packagedest
# Status reporter.
self.reporter = reporter
@@ -332,7 +371,10 @@ init python in distribute:
for i in build['packages']:
name = i['name']
if (packages is None) or (name in packages):
if packages is None:
if not i['hidden']:
build_packages.append(i)
elif name in packages:
build_packages.append(i)
if not build_packages:
@@ -345,7 +387,10 @@ init python in distribute:
self.scan_and_classify(project.path, build["base_patterns"])
self.archive_files(build["archives"])
if noarchive:
self.ignore_archives(build['archives'])
else:
self.archive_files(build["archives"])
# Add Ren'Py.
self.reporter.info(_("Scanning Ren'Py files..."))
@@ -395,7 +440,8 @@ init python in distribute:
# Finish up.
self.log.close()
self.reporter.info(_("All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."))
if report_success:
self.reporter.info(_("All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."))
if open_directory:
store.OpenDirectory(self.destination)()
@@ -405,7 +451,7 @@ init python in distribute:
def scan_and_classify(self, directory, patterns):
"""
Walks through the `directory`, finds files and directories that
match the pattern, and assds them to the appropriate file list.
match the pattern, and assigns them to the appropriate file list.
`patterns`
A list of pattern, file_list tuples. The pattern is a string
@@ -483,6 +529,20 @@ init python in distribute:
for fl in file_list:
self.file_lists[fl].append(f)
def ignore_archives(self, archives):
"""
Ignore archiving commands by adding the files that would be in
archives into packages instead.
"""
for arcname, file_lists in archives:
if not self.file_lists[arcname]:
continue
for f in self.file_lists[arcname]:
for fl in file_lists:
self.file_lists[fl].append(f)
def archive_files(self, archives):
"""
Add files to archives.
@@ -521,13 +581,20 @@ init python in distribute:
Add Ren'Py-generic files to the project.
"""
if not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpy")):
self.add_file("all", "game/script_version.rpy", os.path.join(config.gamedir, "script_version.rpy"))
SCRIPT_VERSION_RPY = os.path.join(config.gamedir, "script_version.rpy")
SCRIPT_VERSION_RPYC = os.path.join(config.gamedir, "script_version.rpyc")
LICENSE_TXT = os.path.join(config.renpy_base, "LICENSE.txt")
if not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpyc")):
self.add_file("all", "game/script_version.rpyc", os.path.join(config.gamedir, "script_version.rpyc"))
if os.path.exists(SCRIPT_VERSION_RPY):
if not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpy")):
self.add_file("all", "game/script_version.rpy", SCRIPT_VERSION_RPY)
self.add_file("all", "renpy/LICENSE.txt", os.path.join(config.renpy_base, "LICENSE.txt"))
if os.path.exists(SCRIPT_VERSION_RPYC):
if not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpyc")):
self.add_file("all", "game/script_version.rpyc", SCRIPT_VERSION_RPYC)
if os.path.exists(LICENSE_TXT):
self.add_file("renpy", "renpy/LICENSE.txt", LICENSE_TXT)
def write_plist(self):
@@ -546,6 +613,7 @@ init python in distribute:
CFBundlePackageType="APPL",
CFBundleShortVersionString=version,
CFBundleVersion="1.0.{0}".format(int(time.time())),
LSApplicationCategoryType="public.app-category.simulation-games",
CFBundleDocumentTypes = [
{
"CFBundleTypeOSTypes" : [ "****", "fold", "disk" ],
@@ -705,6 +773,9 @@ init python in distribute:
filename = self.base_name + "-" + variant
path = os.path.join(self.destination, filename)
if self.packagedest:
path = self.packagedest
fl = FileList.merge([ self.file_lists[i] for i in file_lists ])
fl = fl.copy()
fl.sort()
@@ -742,7 +813,7 @@ init python in distribute:
fl = fl.mac_transform(self.app, self.documentation_patterns)
# If we're not an update file, prepend the directory.
if (not dlc) and format != "update":
if (not dlc) and format != "update" and format != "directory":
fl.prepend_directory(filename)
if format == "tar.bz2":
@@ -754,6 +825,8 @@ init python in distribute:
elif format == "zip" or format == "app-zip":
path += ".zip"
pkg = ZipPackage(path)
elif format == "directory":
pkg = DirectoryPackage(path)
for i, f in enumerate(fl):
self.reporter.progress(_("Writing the [variant] [format] package."), i, len(fl), variant=variant, format=format)
@@ -899,9 +972,11 @@ init python in distribute:
def distribute_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("--destination", "--dest", default=None, action="store", help="The directory where the packaged files should be placed.")
ap.add_argument("--packagedest", default=None, action="store", help="If given, gives the full path to the package file, without extensions." )
ap.add_argument("--no-update", default=True, action="store_false", dest="build_update", help="Prevents updates from being built.")
ap.add_argument("project", help="The path to the project directory.")
ap.add_argument("--package", action="append", help="If given, a package to build. Defaults to building all packages.")
ap.add_argument("--no-archive", action="store_true", help="If given, files will not be added to archives.")
ap.add_argument("project", help="The path to the project directory.")
args = ap.parse_args()
@@ -912,7 +987,7 @@ init python in distribute:
else:
packages = None
Distributor(p, destination=args.destination, reporter=TextReporter(), packages=packages, build_update=args.build_update)
Distributor(p, destination=args.destination, reporter=TextReporter(), packages=packages, build_update=args.build_update, noarchive=args.no_archive, packagedest=args.packagedest)
return False
+23 -6
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
class PackageToggle(Action):
@@ -197,10 +215,9 @@ screen build_distributions:
$ packages = project.current.dump["build"]["packages"]
for pkg in packages:
$ description = pkg["description"]
textbutton "[description!q]" action PackageToggle(pkg["name"]) style "l_checkbox"
if not pkg["hidden"]:
$ description = pkg["description"]
textbutton "[description!q]" action PackageToggle(pkg["name"]) style "l_checkbox"
add SPACER
+21
View File
@@ -1,3 +1,24 @@
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
import urllib2
+39 -5
View File
@@ -1,17 +1,36 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Editor Support.
#
# This contains code for scanning for editors, and for allowing the user to
# select an editor.
init python in editor:
init 1 python in editor:
from store import Action, renpy, config, persistent
import store.project as project
import store.updater as updater
import store.interface as interface
import store.util as util
import store
import glob
@@ -65,8 +84,19 @@ init python in editor:
if d is None:
continue
for filename in glob.glob(d + "/*/*.edit.py"):
scan_editor(filename)
if not os.path.isdir(d):
continue
for i in util.listdir(d):
i = os.path.join(d, i)
if not os.path.isdir(d):
continue
for j in util.listdir(i):
j = os.path.join(i, j)
if j.endswith(".edit.py"):
scan_editor(j)
########################################################################
@@ -277,6 +307,8 @@ init python in editor:
class Edit(Action):
alt = "Edit [text]."
def __init__(self, filename, line=None, check=False):
"""
An action that opens the given line of the given file in a
@@ -378,6 +410,8 @@ init python in editor:
Opens all scripts that are part of the current project in a web browser.
"""
alt = "Edit [text]."
def __init__(self):
return
+58 -11
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
define PROJECT_ADJUSTMENT = ui.adjustment()
@@ -14,6 +32,8 @@ init python:
the project root.
"""
alt = _("Open [text] directory.")
def __init__(self, directory, absolute=False):
if absolute:
self.directory = directory
@@ -25,14 +45,18 @@ init python:
def __call__(self):
directory = renpy.fsencode(self.directory)
try:
directory = renpy.fsencode(self.directory)
if renpy.windows:
os.startfile(directory)
elif renpy.macintosh:
subprocess.Popen([ "open", directory ])
else:
subprocess.Popen([ "xdg-open", directory ])
if renpy.windows:
os.startfile(directory)
elif renpy.macintosh:
subprocess.Popen([ "open", directory ])
else:
subprocess.Popen([ "xdg-open", directory ])
except:
pass
# Used for testing.
def Relaunch():
@@ -40,6 +64,8 @@ init python:
screen front_page:
frame:
alt ""
style_group "l"
style "l_root"
@@ -111,21 +137,34 @@ screen front_page:
screen front_page_project_list:
$ projects = project.manager.projects
$ templates = project.manager.templates
vbox:
if templates and persistent.show_templates:
for p in templates:
textbutton _("[p.name!q] (template)"):
action project.Select(p)
alt _("Select project [text].")
style "l_list"
null height 12
if projects:
for p in projects:
textbutton "[p.name!q]":
action project.Select(p)
alt _("Select project [text].")
style "l_list"
null height 12
textbutton _("Tutorial") action project.Select("tutorial") style "l_list"
textbutton _("The Question") action project.Select("the_question") style "l_list"
textbutton _("Tutorial") action project.Select("tutorial") style "l_list" alt _("Select project [text].")
textbutton _("The Question") action project.Select("the_question") style "l_list" alt _("Select project [text].")
# This is used for the right side of the screen, which is where the project-specific
@@ -192,6 +231,7 @@ screen front_page_project:
textbutton _("Check Script (Lint)") action Jump("lint")
textbutton _("Change Theme") action Jump("choose_theme")
textbutton _("Delete Persistent") action Jump("rmpersistent")
textbutton _("Force Recompile") action Jump("force_recompile")
# textbutton "Relaunch" action Relaunch
@@ -239,3 +279,10 @@ label rmpersistent:
jump front_page
label force_recompile:
python hide:
interface.processing(_("Recompiling all rpy files into rpyc files..."))
project.current.launch([ 'compile' ], wait=True)
jump front_page

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 687 B

Before

Width:  |  Height:  |  Size: 96 B

After

Width:  |  Height:  |  Size: 96 B

Before

Width:  |  Height:  |  Size: 106 B

After

Width:  |  Height:  |  Size: 106 B

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

+34 -8
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
################################################################################
# Interface actions.
@@ -210,8 +228,7 @@ screen launcher_input:
add SPACER
text _("Due to package format limitations, non-ASCII file and directory names are not allowed.")
label _("[title]") style "l_info_label" text_color QUESTION_COLOR
label title style "l_info_label" text_color QUESTION_COLOR
if cancel:
textbutton _("Cancel") action cancel style "l_left_button"
@@ -290,13 +307,18 @@ init python in interface:
`label`
The label to redirect to when the user finishes displaying the error. None
to just return.
to just return False.
Keyword arguments are passed into the screen so that they can be substituted into
the message.
"""
common(_("ERROR"), store.ERROR_COLOR, message=message, submessage=submessage, back=Jump(label), **kwargs)
if label is None:
action = Return(False)
else:
action = Jump(label)
common(_("ERROR"), store.ERROR_COLOR, message=message, submessage=submessage, back=action, **kwargs)
@contextlib.contextmanager
@@ -381,7 +403,7 @@ init python in interface:
common(_("INFORMATION"), store.INFO_COLOR, message, submessage, pause0=True, **kwargs)
def interaction(title, message, submessage=None, **kwargs):
def interaction(title, message, submessage=None, pause=0, **kwargs):
"""
Put up on the screen while an interaction with an external program occurs.
This shows the message, then immediately returns.
@@ -394,9 +416,13 @@ init python in interface:
`submessage`
An optional sub message.
`pause`
The amount of time to pause for after showing the message.
"""
common(title, store.INTERACTION_COLOR, message, submessage, pause0=True, **kwargs)
common(title, store.INTERACTION_COLOR, message, submessage=None, pause=pause, show_screen=True, **kwargs)
renpy.pause(pause)
def processing(message, submessage=None, complete=None, total=None, **kwargs):
"""
+20 -2
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python in navigation:
import store.interface as interface
+28 -7
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
import shutil
@@ -9,7 +27,7 @@ init python:
screen select_template:
default result = project.manager.get("template")
default result = project.manager.get("english")
frame:
style_group "l"
@@ -49,6 +67,9 @@ label new_project:
if persistent.projects_directory is None:
call choose_projects_directory
if persistent.projects_directory is None:
$ interface.error(_("The projects directory could not be set. Giving up."))
python hide:
project_name = interface.input(
@@ -77,11 +98,11 @@ label new_project:
template_path = template.path
with interface.error_handling("creating a new project"):
shutil.copytree(template_path, project_dir)
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")):
os.path.rmtree(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"))
@@ -91,8 +112,8 @@ label new_project:
with open(fn, "rb") as f:
options = f.read().decode("utf-8")
save_dir = project_name + "-" + str(int(time.time()))
options = re.sub(r'template-\d+', save_dir, options)
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"))
+56 -11
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## This file contains some of the options that can be changed to customize
## your Ren'Py game. It only contains the most common options... there
@@ -166,8 +184,8 @@ init -1 python hide:
config.sound = False
config.quit_action = Quit(confirm=False)
config.gl_resize = False
config.window_icon = "logo.png"
config.windows_icon = "logo32.png"
config.window_icon = "images/logo.png"
config.windows_icon = "images/logo32.png"
config.has_autosave = False
config.log_enable = False
config.mouse_hide_time = 86400 * 366
@@ -179,11 +197,14 @@ init -1 python hide:
quit = renpy.quit_event,
iconify = renpy.iconify,
choose_renderer = renpy.curried_call_in_new_context("_choose_renderer"),
self_voicing = Preference("self voicing", "toggle"),
),
]
config.rollback_enabled = False
translate None python:
config.rtl = False
## This section controls how to build Ren'Py. (Building the launcher is how
## we build Ren'Py distributions.)
@@ -198,7 +219,11 @@ init python:
## The name that's used for directories and archive files. For example, if
## this is 'mygame-1.0', the windows distribution will be in the
## directory 'mygame-1.0-win', in the 'mygame-1.0-win.zip' file.
build.directory_name = "renpy-" + config.version.rsplit('.', 1)[0]
if 'RENPY_NIGHTLY' in os.environ:
build.directory_name = os.environ['RENPY_NIGHTLY']
else:
build.directory_name = "renpy-" + config.version.rsplit('.', 1)[0]
## The name that's uses for executables - the program that users will run
## to start the game. For example, if this is 'mygame', then on Windows,
@@ -219,6 +244,9 @@ init python:
# correct for Ren'Py.
## Now, add the Ren'Py distribution in using classify_renpy.
build.classify_renpy("rapt/**", "rapt")
build.classify_renpy("**~", None)
build.classify_renpy("**/#*", None)
build.classify_renpy("**/thumbs.db", None)
@@ -230,20 +258,36 @@ init python:
build.classify_renpy("**.pyc", None)
build.classify_renpy("**/log.txt", None)
build.classify_renpy("**/traceback.txt", None)
build.classify_renpy("**/errors.txt", None)
build.classify_renpy("**/saves/", None)
build.classify_renpy("**/tmp/", None)
build.classify_renpy("**/.Editra", None)
# main source.
def source_and_binary(pattern):
"""
Classifies source and binary files beginning with `pattern`.
.pyo, .rpyc, .rpycm, and .rpyb go into binary, everything
else goes into source.
"""
build.classify_renpy(pattern + ".pyo", "binary")
build.classify_renpy(pattern + ".rpyc", "binary")
build.classify_renpy(pattern + ".rpymc", "binary")
build.classify_renpy(pattern + ".rpyb", "binary")
build.classify_renpy(pattern, "source")
build.classify_renpy("renpy.py", "source")
build.classify_renpy("renpy/**", "source")
source_and_binary("renpy/**")
# games.
build.classify_renpy("launcher/game/theme/", None)
build.classify_renpy("launcher/**", "source")
build.classify_renpy("templates/**", "source")
build.classify_renpy("the_question/**", "source")
build.classify_renpy("tutorial/**", "source")
source_and_binary("launcher/**")
source_and_binary("templates/**")
source_and_binary("the_question/**")
source_and_binary("tutorial/**")
# docs.
build.classify_renpy("doc/", "source")
@@ -294,8 +338,9 @@ init python:
build.package("sdk", "zip tar.bz2", "source binary")
build.package("source", "tar.bz2", "source", update=False)
build.package("jedit", "zip", "jedit")
build.package("jedit", "zip", "jedit", dlc=True)
build.package("editra-linux", "tar.bz2", "editra-all editra-linux", dlc=True)
build.package("editra-mac", "zip", "editra-all editra-mac", dlc=True)
build.package("editra-windows", "zip", "editra-all editra-windows", dlc=True)
build.package("rapt", "zip", "rapt", dlc=True)
+49 -2
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python in distribute:
@@ -9,6 +27,7 @@ init python in distribute:
import zlib
import struct
import stat
import shutil
from zipfile import crc32
@@ -177,3 +196,31 @@ init python in distribute:
def close(self):
self.tarfile.close()
class DirectoryPackage(object):
def mkdir(self, path):
if not os.path.isdir(path):
os.mkdir(path, 0755)
def __init__(self, path):
self.path = path
self.mkdir(path)
def add_file(self, name, path, xbit):
fn = os.path.join(self.path, name)
shutil.copy2(path, fn)
if xbit:
os.chmod(fn, 0755)
else:
os.chmod(fn, 0644)
def add_directory(self, name, path):
fn = os.path.join(self.path, name)
self.mkdir(fn)
def close(self):
return
+23 -3
View File
@@ -1,5 +1,6 @@
#@PydevCodeAnalysisIgnore
"""pefile, Portable Executable reader module
@@ -15,10 +16,29 @@ To the best of my knowledge most of the abuses are handled gracefully.
Copyright (c) 2005, 2006, 2007, 2008, 2009 Ero Carrera <ero@dkbza.org>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
For detailed copyright information see the file COPYING in
the root of the distribution archive.
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.
"""
__revision__ = "$LastChangedRevision: 63 $"
+43 -11
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
if persistent.gl_enable is None:
@@ -20,7 +38,9 @@ init python:
rv = [ ( "English", None) ]
for i in languages:
rv.append((i.title(), i))
rv.append((i.replace("_", " ").title(), i))
rv.sort()
return rv
@@ -32,6 +52,7 @@ screen preferences:
frame:
style_group "l"
style "l_root"
alt "Preferences"
window:
@@ -65,10 +86,13 @@ screen preferences:
frame style "l_indent":
if persistent.projects_directory:
textbutton _("[persistent.projects_directory!q]") action Jump("projects_directory_preference")
textbutton _("[persistent.projects_directory!q]"):
action Jump("projects_directory_preference")
alt _("Projects directory: [text]")
else:
textbutton _("Not Set") action Jump("projects_directory_preference")
textbutton _("Not Set"):
action Jump("projects_directory_preference")
alt _("Projects directory: [text]")
add SPACER
@@ -87,9 +111,9 @@ screen preferences:
frame style "l_indent":
if persistent.editor:
textbutton persistent.editor action Jump("editor_preference")
textbutton persistent.editor action Jump("editor_preference") alt _("Text editor: [text]")
else:
textbutton _("Not Set") action Jump("editor_preference")
textbutton _("Not Set") action Jump("editor_preference") alt _("Text editor: [text]")
add SPACER
@@ -143,6 +167,8 @@ screen preferences:
add HALF_SPACER
textbutton _("Hardware rendering") style "l_checkbox" action ToggleField(persistent, "gl_enable")
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
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")
@@ -184,10 +210,16 @@ screen preferences:
add HALF_SPACER
# frame style "l_indent":
viewport:
scrollbars "vertical"
mousewheel True
for tlname, tlvalue in translations:
textbutton tlname action Language(tlvalue) style "l_list"
has vbox
# frame style "l_indent":
for tlname, tlvalue in translations:
textbutton tlname action Language(tlvalue) style "l_list"
textbutton _("Back") action Jump("front_page") style "l_left_button"
+101 -15
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Code that manages projects.
@@ -23,6 +41,16 @@ init python in project:
import re
import tempfile
if persistent.blurb is None:
persistent.blurb = 0
LAUNCH_BLURBS = [
_("After making changes to the script, press shift+R to reload your game."),
_("Press shift+O (the letter) to access the console."),
_("Press shift+D to access the developer menu."),
_("Have you backed up your projects recently?"),
]
class Project(object):
def __init__(self, path):
@@ -34,7 +62,10 @@ init python in project:
raise Exception("{} does not exist.".format(path))
# The name of the project.
self.name = os.path.basename(path)
if path.endswith(".app/Contents/Resources/autorun"):
self.name = os.path.basename(path[:-len(".app/Contents/Resources/autorun")])
else:
self.name = os.path.basename(path)
# The path to the project.
self.path = path
@@ -161,7 +192,7 @@ init python in project:
raise Exception("Python interpreter not found: %r", executables)
# Put together the basic command line.
cmd = [ executable, "-EOO", sys.argv[0] ]
cmd = [ executable, "-EO", sys.argv[0] ]
cmd.append(self.path)
cmd.extend(args)
@@ -188,7 +219,8 @@ init python in project:
p = subprocess.Popen(cmd, env=environ)
if wait:
p.wait()
if p.wait():
interface.error(_("Launching the project failed."), _("Please ensure that your project launches normally before running this command."))
def update_dump(self, force=False, gui=True):
"""
@@ -241,7 +273,12 @@ init python in project:
for l, line in enumerate(data):
l += 1
m = re.search(r".*#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
try:
line = line.decode("utf-8")
except:
continue
m = re.search(ur".*#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
if m is None:
continue
@@ -253,7 +290,7 @@ init python in project:
while not todo_text or todo_text in todos:
index += 1
todo_text = "{0} ({1})".format(raw_todo_text, index)
todo_text = u"{0} ({1})".format(raw_todo_text, index)
todos[todo_text] = [f, l]
@@ -281,7 +318,8 @@ init python in project:
"""
rv = [ ]
rv.extend(i for i, isdir in util.walk(self.path) if (not isdir) and (i.endswith(".rpy") or i.endswith(".rpym")) )
rv.extend(i for i, isdir in util.walk(self.path)
if (not isdir) and (i.endswith(".rpy") or i.endswith(".rpym")) and (not i.startswith("tmp/")) )
return rv
@@ -347,13 +385,18 @@ init python in project:
if not os.path.isdir(d):
return
for pdir in os.listdir(d):
for pdir in util.listdir(d):
ppath = os.path.join(d, pdir)
# A project must be a directory.
if not os.path.isdir(ppath):
continue
autorun = os.path.join(ppath, "Contents", "Resources", "autorun")
if os.path.exists(autorun):
ppath = autorun
# A project has either a game/ directory, or a project.json
# file.
if (not os.path.isdir(os.path.join(ppath, "game"))) and (not os.path.exists(os.path.join(ppath, "project.json"))):
@@ -475,8 +518,16 @@ init python in project:
def get_sensitive(self):
return self.project is not None
def post_launch(self):
blurb = LAUNCH_BLURBS[persistent.blurb % len(LAUNCH_BLURBS)]
persistent.blurb += 1
interface.interaction(_("Launching"), blurb, pause=2.5)
def __call__(self):
self.project.launch()
renpy.invoke_in_new_context(self.post_launch)
class Rescan(Action):
def __call__(self):
@@ -530,17 +581,23 @@ label choose_projects_directory:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
choice = p.stdout.read()
p.wait()
if choice:
path = renpy.fsdecode(choice)
code = p.wait()
except:
import traceback
traceback.print_exc()
code = 0
choice = ""
path = None
interface.error(_("Ren'Py was unable to run python with tkinter to choose the projects directory."), label=None)
interface.error(_("Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."), label=None)
if code:
interface.error(_("Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."), label=None)
elif choice:
path = choice.decode("utf-8")
if path is None:
path = default_path
@@ -548,7 +605,36 @@ label choose_projects_directory:
path = renpy.fsdecode(path)
persistent.projects_directory = path
if os.path.isdir(path):
persistent.projects_directory = path
else:
path = os.path.abspath(config.renpy_base)
project.manager.scan()
return
init python:
def set_projects_directory_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("projects", help="The path to the projects directory.")
args = ap.parse_args()
persistent.projects_directory = args.projects
renpy.save_persistent()
return False
renpy.arguments.register_command("set_projects_directory", set_projects_directory_command)
def get_projects_directory_command():
ap = renpy.arguments.ArgumentParser()
args = ap.parse_args()
print persistent.projects_directory
return False
renpy.arguments.register_command("get_projects_directory", get_projects_directory_command)
-2
View File
@@ -1,2 +0,0 @@
init -999:
$ config.script_version = (6, 16, 0)
+233 -193
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init -1 python:
@@ -21,14 +39,14 @@ init -1 python:
SCROLLBAR_HOVER = "#d86b45"
# An image used as a separator pattern.
PATTERN = "pattern.png"
PATTERN = "images/pattern.png"
# A displayable used for the background of everything.
BACKGROUND = "background.png"
BACKGROUND = "images/background.png"
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = Frame("window.png", 0, 0, tile=True)
WINDOW = Frame("images/window.png", 0, 0, tile=True)
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = Null()
@@ -45,8 +63,26 @@ init -1 python:
# The color of input text.
INPUT_COLOR = "#d86b45"
# FONTS/WEIGHTS
LIGHT = "Roboto-Light.ttf"
REGULAR = "Roboto-Regular.ttf"
if persistent.large_print:
LIGHT = REGULAR
init 1 python:
def size(n):
"""
Adjusts the font size if we're in large-print mode.
"""
if persistent.large_print and n < 18:
n = 18
return n
INDENT = 20
HALF_INDENT = 10
@@ -61,243 +97,247 @@ init 1 python:
HALF_SPACER_HEIGHT = 6
HALF_SPACER = Null(height=HALF_SPACER_HEIGHT)
# FONTS/WEIGHTS
LIGHT = "Roboto-Light.ttf"
REGULAR = "Roboto-Regular.ttf"
DARK = "Roboto-Medium.ttf"
# DIVIDING THE SCREEN
ONETHIRD = 258
TWOTHIRDS = 496
ONEHALF = 377
# Default style.
style.l_default = Style(style.default)
style.l_default.font = LIGHT
style.l_default.color = TEXT
style.l_default.idle_color = IDLE
style.l_default.hover_color = HOVER
style.l_default.size = 18
def checkbox(full, color):
if full:
return im.Twocolor("images/checkbox_full.png", color, color, yalign=0.5)
else:
return im.Twocolor("images/checkbox_empty.png", color, color, yalign=0.5)
style.l_text = Style(style.l_default)
init 1:
style.l_button = Style(style.l_default)
style.l_button_text = Style(style.l_default)
style.l_button_text.insensitive_color = DISABLED
style.l_button_text.selected_font = REGULAR
# The default style.
style l_default is default:
font LIGHT
color TEXT
idle_color IDLE
hover_color HOVER
size size(18)
style l_text is l_default
style l_button is l_default
style l_button_text is l_default:
insensitive_color DISABLED
selected_font REGULAR
# A small button, used at the bottom of the screen.
style.l_link = Style(style.l_default)
style.l_link_text = Style(style.l_default)
style.l_link_text.size = 14
style.l_link_text.font = LIGHT
style l_link is l_default
style l_link_text is l_default:
size size(14)
font LIGHT
# Action buttons on the bottom of the screen.
style.l_right_button = Style(style.l_default)
style.l_right_button.xalign = 1.0
style.l_right_button.ypos = 600 - 128 + 12
style.l_right_button.left_margin = 8 + INDENT
style.l_right_button.right_margin = 10 + INDENT
style.l_right_button_text = Style(style.l_default)
style.l_right_button_text.size = 30
style l_right_button is l_default:
xalign 1.0
ypos 600 - 128 + 12
left_margin 8 + INDENT
right_margin 10 + INDENT
style.l_left_button = Style(style.l_right_button)
style.l_left_button.xalign = 0.0
style.l_left_button_text = Style(style.l_right_button_text)
style l_right_button_text is l_default:
size size(30)
style l_left_button is l_right_button:
xalign 0.0
style l_left_button_text is l_right_button_text
# The root frame. This contains everything but the bottom navigation, back
# button, and tooltip button.
style.l_root = Style(style.l_default)
style.l_root.background = BACKGROUND
style.l_root.xpadding = 10
style.l_root.top_padding = 64
style.l_root.bottom_padding = 128
# The root frame. This contains everything but the bottom navigation,
# and buttons.
style l_root is l_default:
background BACKGROUND
xpadding 10
top_padding 64
bottom_padding 128
# An inner window.
style.l_window = Style(style.l_default)
style l_window is l_default:
background WINDOW
left_padding 6
xfill True
yfill True
style.l_window.background = WINDOW
# Normal size labels.
style l_label is l_default:
xfill True
top_padding 10
bottom_padding 8
bottom_margin 12
background SEPARATOR
style.l_window.left_padding = 6
style.l_window.xfill = True
style.l_window.yfill = True
style l_label_text is l_default:
size size(24)
xpos INDENT
yoffset 6
# Normal-sized labels.
style.l_label = Style(style.l_default)
style.l_label.xfill = True
style.l_label.top_padding = 10
style.l_label.bottom_padding = 8
style.l_label.bottom_margin = 12
style.l_label.background = SEPARATOR
style.l_label_text = Style(style.l_default)
style.l_label_text.size = 24
style.l_label_text.xpos = INDENT
style.l_label_text.yoffset = 6
style l_label_small is l_default:
xfill True
bottom_padding 8
bottom_margin HALF_SPACER_HEIGHT
background SEPARATOR
# Small labels.
style.l_label_small = Style(style.l_default)
style.l_label_small.xfill = True
style.l_label_small.bottom_padding = 8
style.l_label_small.bottom_margin = HALF_SPACER_HEIGHT
style.l_label_small.background = SEPARATOR
style.l_label_small_text = Style(style.l_default)
style.l_label_small_text.xpos = INDENT
style.l_label_small_text.yoffset = 6
style.l_label_small_text.size = 20
style l_label_small_text is l_default:
xpos INDENT
yoffset 6
size size(20)
# Alternate labels. This nests inside an l_label, and gives a button
# or label that's nested inside another label.
style.l_alternate = Style(style.l_default)
style.l_alternate.xalign = 1.0
style.l_alternate.yalign = 1.0
style.l_alternate.yoffset = 4
style.l_alternate.right_margin = INDENT
style.l_alternate_text = Style(style.l_default)
style.l_alternate_text.size = 14
style.l_alternate_text.font = LIGHT
style.l_alternate_text.text_align = 1.0
style.l_small_button = Style(style.l_button)
style.l_small_button_text = Style(style.l_button_text)
style.l_small_button_text.size = 14
style.l_small_text = Style(style.l_text)
style.l_small_text.size = 14
style l_alternate is l_default:
xalign 1.0
yalign 1.0
yoffset 4
right_margin INDENT
style l_alternate_text is l_default:
size size(14)
font LIGHT
text_align 1.0
style l_small_button is l_button
style l_small_button_text is l_button_text:
size size(14)
style l_small_text is l_text:
size size(14)
# Indents its contents.
style.l_indent = Style(style.l_default)
style.l_indent.left_margin = INDENT
style l_indent is l_default:
left_margin INDENT
# Indents its contents and pads them vertically.
style.l_indent_margin = Style(style.l_indent)
style.l_indent_margin.ymargin = 6
# Indents its contents and pads vertically.
style l_indent_margin is l_indent:
ymargin 6
# List button.
style.l_list = Style(style.l_default)
style.l_list.left_padding = HALF_INDENT
style.l_list.xfill = True
style.l_list.selected_background = REVERSE_IDLE
style.l_list.selected_hover_background = REVERSE_HOVER
style.l_list_text = Style(style.l_default)
style.l_list_text.idle_color = IDLE
style.l_list_text.hover_color = HOVER
style.l_list_text.selected_idle_color = REVERSE_TEXT
style.l_list_text.selected_hover_color = REVERSE_TEXT
style.l_list_text.insensitive_color = DISABLED
# Lists.
style l_list is l_default:
left_padding HALF_INDENT
xfill True
selected_background REVERSE_IDLE
selected_hover_background REVERSE_HOVER
style.l_list2 = Style(style.l_list)
style.l_list2.left_padding = HALF_INDENT + INDENT
style.l_list2_text = Style(style.l_list_text)
style l_list_text is l_default:
idle_color IDLE
hover_color HOVER
selected_idle_color REVERSE_TEXT
selected_hover_color REVERSE_TEXT
insensitive_color DISABLED
style l_list2 is l_list:
left_padding (HALF_INDENT + INDENT)
style l_list2_text is l_list_text
# Scrollbar.
style.l_vscrollbar = Style(style.l_default)
style.l_vscrollbar.thumb = Fixed(
Solid(SCROLLBAR_IDLE, xmaximum=8, xalign=0.5),
Image("vscrollbar_center.png", xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
style.l_vscrollbar.hover_thumb = Fixed(
Solid(SCROLLBAR_HOVER, xmaximum=8, xalign=0.5),
Image("vscrollbar_center.png", xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
style.l_vscrollbar.xmaximum = SCROLLBAR_SIZE
style.l_vscrollbar.bar_vertical = True
style.l_vscrollbar.bar_invert = True
style.l_vscrollbar.unscrollable = "hide"
style l_vscrollbar is l_default:
thumb Fixed(
Solid(SCROLLBAR_IDLE, xmaximum=8, xalign=0.5),
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
hover_thumb Fixed(
Solid(SCROLLBAR_HOVER, xmaximum=8, xalign=0.5),
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
xmaximum SCROLLBAR_SIZE
bar_vertical True
bar_invert True
unscrollable "hide"
# Information window.
style.l_info_vbox = Style(style.vbox)
style.l_info_vbox.yalign = 0.5
style.l_info_vbox.xalign = 0.5
style.l_info_vbox.xfill = True
style l_info_vbox is vbox:
yalign 0.5
xalign 0.5
xfill True
style.l_info_frame = Style(style.l_default)
style.l_info_frame.ypadding = 21
style.l_info_frame.xfill = True
style l_info_frame is l_default:
ypadding 21
xfill True
background Fixed(
INFO_WINDOW,
Frame(PATTERN, 0, 0, tile=True, ymaximum=5, yalign=0.0, yoffset=8),
Frame(PATTERN, 0, 0, tile=True, ymaximum=5, yalign=1.0, yoffset=-8),
)
yminimum 180
ypos 75
style.l_info_frame.background = Fixed(
INFO_WINDOW,
Frame(PATTERN, 0, 0, tile=True, ymaximum=5, yalign=0.0, yoffset=8),
Frame(PATTERN, 0, 0, tile=True, ymaximum=5, yalign=1.0, yoffset=-8),
)
style l_info_label is l_default:
xalign 0.5
ypos 75
yanchor 1.0
yoffset 12
style.l_info_frame.yminimum = 180
style.l_info_frame.ypos = 75
style l_info_label_text is l_default:
size size(36)
style.l_info_label = Style(style.l_default)
style.l_info_label.xalign = 0.5
style.l_info_label.ypos = 75
style.l_info_label.yanchor = 1.0
style.l_info_label.yoffset = 12
style.l_info_label_text = Style(style.l_default)
style.l_info_label_text.size = 36
style l_info_text is l_default:
xalign 0.5
style.l_info_text = Style(style.l_default)
style.l_info_text.xalign = 0.5
style l_info_button is l_button:
xalign 0.5
xmargin 50
style.l_info_button = Style(style.l_button)
style.l_info_button.xalign = 0.5
style.l_info_button.xmargin = 50
style.l_info_button_text = Style(style.l_button_text)
style.l_info_button_text.text_align = 0.5
style.l_info_button_text.layout = "subtitle"
style l_info_button_text is l_button_text:
text_align 0.5
layout "subtitle"
# Code navigation
style.l_navigation_button = Style(style.l_button)
style.l_navigation_button.size_group = "navigation"
style.l_navigation_button.right_margin = INDENT
style.l_navigation_button.top_margin = 3
style.l_navigation_button_text = Style(style.l_button_text)
style.l_navigation_button_text.size = 14
style.l_navigation_button_text.font = REGULAR
# Progress bar.
style l_progress_frame is l_default:
background Frame(PATTERN, 0, 0, tile=True)
ypadding 5
style.l_navigation_text = Style(style.l_text)
style.l_navigation_text.size = 12
style.l_navigation_text.font = LIGHT
style.l_navigation_text.color = TEXT
style l_progress_bar is l_default:
left_bar REVERSE_IDLE
right_bar Null()
ymaximum 24
# Check boxes
style.l_checkbox = Style(style.l_button)
style.l_checkbox.left_padding = INDENT
# Navigation.
style l_navigation_button is l_button:
size_group "navigation"
right_margin INDENT
top_margin 3
def checkbox(full, color):
if full:
return im.Twocolor("checkbox_full.png", color, color, yalign=0.5)
else:
return im.Twocolor("checkbox_empty.png", color, color, yalign=0.5)
style l_navigation_button_text is l_button_text:
size size(14)
font REGULAR
style.l_checkbox.background = checkbox(False, IDLE)
style.l_checkbox.hover_background = checkbox(False, HOVER)
style.l_checkbox.selected_idle_background = checkbox(True, IDLE)
style.l_checkbox.selected_hover_background = checkbox(True, HOVER)
style.l_checkbox.insensitive_background = checkbox(False, DISABLED)
style l_navigation_text is l_text:
size size(14)
font LIGHT
color TEXT
style.l_checkbox_text = Style(style.l_button_text)
style.l_checkbox_text.selected_font = LIGHT
# Checkboxes.
style l_checkbox is l_button:
left_padding INDENT
background checkbox(False, IDLE)
hover_background checkbox(False, HOVER)
selected_idle_background checkbox(True, IDLE)
selected_hover_background checkbox(True, HOVER)
insensitive_background checkbox(False, DISABLED)
# A normal button that lines up with checkboxes.
style.l_nonbox = Style(style.l_button)
style.l_nonbox.xpadding = INDENT
style.l_nonbox_text = Style(style.l_button_text)
style.l_nonbox_text.selected_font = LIGHT
style l_checkbox_text is l_button_text:
selected_font LIGHT
# A progress bar and its frame.
style.l_progress_frame = Style(style.l_default)
style.l_progress_frame.background = Frame(PATTERN, 0, 0, tile=True)
style.l_progress_frame.ypadding = 5
# Lines up with a checkbox.
style l_nonbox is l_button:
xpadding INDENT
style.l_progress_bar = Style(style.l_default)
style.l_progress_bar.left_bar = REVERSE_IDLE
style.l_progress_bar.right_bar = Null()
style.l_progress_bar.ymaximum = 24
style l_nonbox_text is l_button_text:
selected_font LIGHT
# The projects window.
style.l_projects = Style(style.l_default)
style.l_projects.background = PROJECTS_WINDOW
# Projects list.
style l_projects is l_default:
background PROJECTS_WINDOW
style.hyperlink_text.size = 18
style.hyperlink_text.font = LIGHT
style.hyperlink_text.color = IDLE
style.hyperlink_text.hover_color = HOVER
style hyperlink_text:
size size(18)
font LIGHT
color IDLE
hover_color HOVER
+26 -2
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2013 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
@@ -16,6 +34,12 @@ init python:
try:
with open(self.filename) as f:
text = f.read()
try:
text = renpy.fsdecode(text)
except:
text = text.decode("latin-1")
text = text.strip()
text = text.split("\n")
+25 -2
View File
@@ -1,5 +1,23 @@
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python in theme_data:
@@ -554,6 +572,11 @@ init python in theme_data:
## should take up the full height and width of the screen.
gm_root = "%(gm_root)s",
## The fonts used by this theme. The default fonts may not be
## suitable for non-English languages.
regular_font = "_theme_awt/Quicksand-Regular.ttf",
bold_font = "_theme_awt/Quicksand-Bold.ttf",
## And we're done with the theme. The theme will customize
## various styles, so if we want to change them, we should
## do so below.
+27 -3
View File
@@ -1,7 +1,25 @@
#!/usr/bin/env python
# Copyright 2004-2012 Tom Rothamel <pytom@bishoujo.us>
# See LICENSE.txt for license details.
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# This is used on Linux and Mac to prompt the user for the projects
# directory.
@@ -16,6 +34,12 @@ except ImportError:
from Tkinter import Tk
from tkFileDialog import askdirectory
# Binary mode stdout for python3.
try:
sys.stdout = sys.stdout.buffer
except:
pass
# Create the TK canvas.
if __name__ == "__main__":
@@ -23,4 +47,4 @@ if __name__ == "__main__":
root.withdraw()
result = askdirectory(initialdir=sys.argv[1], parent=root, title="Select Ren'Py Projects Directory")
sys.stdout.write(result)
sys.stdout.write(result.encode("utf8"))
+16
View File
@@ -0,0 +1,16 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/about.rpy:21
old "[version!q]"
new "[version!q]"
# game/about.rpy:25
old "View license"
new "عرض الرخصة"
# game/about.rpy:27
old "Back"
new "عودة"
+24
View File
@@ -0,0 +1,24 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/add_file.rpy:7
old "FILENAME"
new "اسم الملف"
# game/add_file.rpy:7
old "Enter the name of the script file to create."
new "إختر اسم لملف الحوار الذي سيتم تكوينه"
# game/add_file.rpy:10
old "The filename must have the .rpy extension."
new "يجب ان ينتهي اسم الملف بالصيغة .rpy"
# game/add_file.rpy:18
old "The file already exists."
new "هذا الملف موجود مسبقاً"
# game/add_file.rpy:21
old "# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n"
new "رينباي يقوم بتشغيل الملفات المنتهية بـ .rpy تلقائياً. لكي تستعمل هذا الملف, اختر له تبويب وافتحه عبر ملف آخر."
+164
View File
@@ -0,0 +1,164 @@
# : Translation updated at 2013-11-17 23:18
translate arabic strings:
# game/android.rpy:12
old "To build Android packages, please download RAPT (from {a=http://www.renpy.org/dl/android}here{/a}), unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "لتجهيز اللعبة للعمل على اجهزة اندرويد يمكنك تحميل الحزمة الخاصة بذلك {a=http://www.renpy.org/dl/android}here{/a}) و فك الضغط عنها, ثم نسخها إلى مجلد رينباي الرئيسي ثم إعادة فتح هذا المشغِّل."
# game/android.rpy:13
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 موجوده, لكنك تحتاج لتنصيب Android SDK قبل ان تبدأ بتجهيز حزم للعمل على اندرويد. الرجاء اختيار تنصيب Android SDK لتستطيع ذلك."
# game/android.rpy:14
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
new "حزمة اندرويد RAPT موجوده, لكن المفتاح لم يتم تجهيزه. الرجاء تكوين مفتاح جديد او استرجاع android.keystore"
# game/android.rpy:15
old "The current project has not been configured. Use \"Configure\" to configure it before building."
new "المشروع الحالي لم يتم تجهيز إعدادته. الرجاء اختيار \"Configure\" لتقوم بتجهيزها قبل بناء الحزمة."
# game/android.rpy:16
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
new "قم باختيار زر \"Build\" لتقوم بتجهيز المشروع الحالي إلى حزمة قابلة للعمل على اندرويد. او قم بربط جهاز اندرويد و اختيار \"Build & Install\" ليتم تنصيبها مباشرة على الجهاز المطلوب."
# game/android.rpy:18
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "يقوم بمحاكاة جهاز اندرويد هاتفي محمول. \n\n خاصية اللمس يتم محاكاتها عبر مؤشر الفأره, لكن فقط حين يكون زر الفأره مضغوطاً. زر الخروج يقوم باستدعاء نافذة القائمة الرئيسية, و PageUp هو زر العودة إلى الوراء."
# game/android.rpy:19
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "يقوم بمحاكاة جهاز اندرويد تابلت. \n\n خاصية اللمس يتم محاكاتها عبر مؤشر الفأره, لكن فقط حين يكون زر الفأره مضغوطاً. زر الخروج يقوم باستدعاء نافذة القائمة الرئيسية, و PageUp هو زر العودة إلى الوراء"
# game/android.rpy:20
old "Attempts to emulate an OUYA 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 "يقوم بمحاكاة جهاز Ouya. \n\n يد التحكم تتم محاكاتها بأزرار الإتجاهات, زر الإدخال يحاكي select, زر الخروج يحاكي زر menu, و PageUp يحاكي زر العودة."
# game/android.rpy:22
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
new "يقوم بتحميل و تنصيب Android SDK والحزم المساندة لها. يعطيك خيار تكوين المفاتيح المطلوبة لتتمكن من استعمال الحزمة."
# game/android.rpy:23
old "Configures the package name, version, and other information about this project."
new "يقوم بتجهيز إعدادات الحزمة, رقم النسخة, و معلومات أخرى تتعلق بهذا المشروع."
# game/android.rpy:24
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
new "يفتح الملف الخاص بمعلومات مفتاح Google Play في محرر النصوص. \n\n هذه الخطوة غير مطلوبة إلا لو كان البرنامج يحتاج إحدى الحوم المساندة expansion APK. الرجاء الإطلاع على ملفات المساعدة للحصول على المزيد من المعلومات."
# game/android.rpy:25
old "Builds the Android package."
new "يقوم ببناء حزمة للأندرويد."
# game/android.rpy:26
old "Builds the Android package, and installs it on an Android device connected to your computer."
new "يقوم ببناء حزمة للأندرويد, ثم يقوم بتنصيبها على جهاز أندرويد المتصل بحاسوبك."
# game/android.rpy:142
old "{a=%s}%s{/a}"
new "{a=%s}%s{/a}"
# game/android.rpy:361
old "Android: [project.current.name!q]"
new "أندرويد: [project.current.name!q]"
# game/android.rpy:381
old "Emulation:"
new "محاكاة"
# game/android.rpy:389
old "Phone"
new "هاتف"
# game/android.rpy:393
old "Tablet"
new "تابلت/ لوحي"
# game/android.rpy:397
old "Television / OUYA"
new "تلفزيون / OUYA"
# game/android.rpy:409
old "Build:"
new ""
# game/android.rpy:417
old "Install SDK & Create Keys"
new "تنصيب SDK و اختلاق مفاتيح"
# game/android.rpy:421
old "Configure"
new "إعدادات"
# game/android.rpy:425
old "Build Package"
new "بناء الحزمة"
# game/android.rpy:429
old "Build & Install"
new "بناء و تنصيب"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# game/android.rpy:30
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "لبناء ملفات الأندرويد, الرجاء تحميل RAPT, ثم فك الضغط عن الملف ووضعه في مجلد رينباي. قد تحتاج لإعادة تشغيل رينباي ليعمل بشكل صحيح."
# game/android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "تحتاج لنسخة برمجية من جافا تعتمد الـ 32-بت لتستطيع إنشاء ملفات الأندرويد على نظام الوندوز. حزمة JDK تختلف عن JRE, قد تكون الجافا لديك موجوده لكنها تفتقد الـ JDK. \n\n الرجاء {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}تحميل و تنصيب JDK{/a} ثم إعادة تشغيل رينباي"
# game/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 "يحاول محاكاة نظام تلفزيوني للأندرويد مثل جهاز OUYA او Fire TV. \n\n يتم تخطيط الأزرار لعصا التحكم لتناسب ازرار جهاز التحكم عن بعد. Controller 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."
# game/android.rpy:47
old "Connects to an Android device running ADB in TCP/IP mode."
new "يتصل بجهاز أندرويد يعمل على نظام ADB عن طريق TCP/IP mode"
# game/android.rpy:48
old "Disconnects from an Android device running ADB in TCP/IP mode."
new "يفصل الاتصال عن جهاز أندرويد يعمل على نظام ADB عن طريق TCP/IP mode"
# game/android.rpy:516
old "Other:"
new "آخر:"
# game/android.rpy:524
old "Remote ADB Connect"
new "الإتصال عن بعد عن طريق ADB"
# game/android.rpy:528
old "Remote ADB Disconnect"
new "قطع إتصال ADB عن بعد"
# game/android.rpy:561
old "Before packaging Android apps, you'll need to download RAPT, the Ren'Py Android Packaging Tool. Would you like to download RAPT now?"
new "قبل ان تصتطيع إنشاء ملفات للأندرويد, عليك ان تقوم بتحميل ملفات RAPT الخاصة بتحويل ملفات رينباي للأندرويد. هل تريد ان تقوم بتحميل الحزمة الآن؟"
# game/android.rpy:608
old "Remote ADB Address"
new "عنوان ADB عن بعد"
# game/android.rpy:609
old "Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."
new "الرجاء إدخال عنوان الأي بي ورقم المنفذ المطلوب للإتصال, على شكل \"192.168.1.143:5555\". الرجاء العودة لدليل المستخدم الخاص بجهازك لتعرف إن كان يدعم الإتصال عن بعد للـ ADB و إن كان قادراً على ذلك, ستجد العنوان و المنفذ المطلوبان."
# game/android.rpy:619
old "Invalid remote ADB address"
new "عنوان ِADB خاطيء"
# game/android.rpy:619
old "The address must contain one exactly one ':'."
new "العنوان يجب ان يحتوي على علامة ':' واحده فقط لا غير"
# game/android.rpy:623
old "The host may not contain whitespace."
new "الخادم يجب ان لا يحتوي على مساحات فارغة"
# game/android.rpy:629
old "The port must be a number."
new "يجب ان يكون العنوان مكون من أرقام فقط"
+44
View File
@@ -0,0 +1,44 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/choose_theme.rpy:274
old "Could not change the theme. Perhaps options.rpy was changed too much."
new "لم يتمكن رينباي من تغيير المظهر, ربما ملف options.rpy قد تغير بشكل كبير"
# game/choose_theme.rpy:332
old "Display"
new "عرض"
# game/choose_theme.rpy:333
old "Window"
new "نافذة"
# game/choose_theme.rpy:334
old "Fullscreen"
new "ملء الشاشة"
# game/choose_theme.rpy:335
old "Planetarium"
new "Planetarium"
# game/choose_theme.rpy:342
old "Sound Volume"
new "مستوى الصوت"
# game/choose_theme.rpy:376
old "Choose Theme"
new "إختر المظهر"
# game/choose_theme.rpy:389
old "Theme"
new "المظهر"
# game/choose_theme.rpy:413
old "Color Scheme"
new "توليفة الألوان"
# game/choose_theme.rpy:444
old "Continue"
new "استمرار"
+520
View File
@@ -0,0 +1,520 @@
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/00action_file.rpy:118
old "%b %d, %H:%M"
new "%b %d, %H:%M"
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/00gltest.rpy:50
old "Graphics Acceleration"
new "تسريع الرسومات"
# renpy/common/00gltest.rpy:54
old "Automatically Choose"
new "إختر بشكل اوتوماتيكي"
# renpy/common/00gltest.rpy:59
old "Force Angle/DirectX Renderer"
new "فرض استعمال محركات Angle/DirectX"
# renpy/common/00gltest.rpy:63
old "Force OpenGL Renderer"
new "فرض استعمال محركات OpenGL"
# renpy/common/00gltest.rpy:67
old "Force Software Renderer"
new "فرض استعمال المحركات البرمجية software renderer"
# renpy/common/00gltest.rpy:73
old "Changes will take effect the next time this program is run."
new "سيتم تفعيل التغييرات في المرة القادمة التي تفتح فيها البرنامج"
# renpy/common/00gltest.rpy:77
old "Quit"
new "خروج"
# renpy/common/00gltest.rpy:82
old "Return"
new "عودة"
# renpy/common/00gltest.rpy:112
old "Performance Warning"
new "تحذير عن الأداء"
# renpy/common/00gltest.rpy:117
old "This computer is using software rendering."
new "هذا الجهاز يستعمل software rendering"
# renpy/common/00gltest.rpy:119
old "This computer is not using shaders."
new "هذا الجهاز لا يستعمل shaders"
# renpy/common/00gltest.rpy:121
old "This computer is displaying graphics slowly."
new "هذا الجهاز يستعرض الرسوميات بشكل بطيء"
# renpy/common/00gltest.rpy:123
old "This computer has a problem displaying graphics: [problem]."
new "هذا الجهاز يواجه مشكلة في استعراض الرسوميات [problem]"
# renpy/common/00gltest.rpy:128
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
new "محركات الرسوميات قد تكون قديمة او لا تعمل بشكل صحيح. قد يسبب ذلك بطء او اخطاء في الاستعراض, القيام بتحديث directX قد يساعد في حل المشكلة."
# renpy/common/00gltest.rpy:130
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new " محركات الرسوميات قد تكون قديمة او لا تعمل بشكل صحيح. قد يسبب ذلك بطء او اخطاء في الاستعراض."
# renpy/common/00gltest.rpy:135
old "Update DirectX"
new "تحديث DirectX"
# renpy/common/00gltest.rpy:141
old "Continue, Show this warning again"
new "استمرار, الرجاء عرض هذا التحذير في المرة الثادمة ايضاً"
# renpy/common/00gltest.rpy:145
old "Continue, Don't show warning again"
new "استمرار, لا تعرض هذا التحذير مرة اخرى"
# renpy/common/00gltest.rpy:171
old "Updating DirectX."
new "يتم تحديث DirectX"
# renpy/common/00gltest.rpy:175
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
new "يتم الآن تنصيب DirectX, قد يبدأ ذلك بشكل مصغر في شريط المهام. الرجاء اتباع التعليمات لاكمال التنصيب."
# renpy/common/00gltest.rpy:179
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
new "{b}ملاحظة:{/b} مايكروسوفت دايركت أكس يقوم تلقائياً بتنصيب شريط بينق Bing toolbar. إذا لم ترغب بذلك الرجاء القيام بإلغاء تحديد خانة الاختيار"
# renpy/common/00gltest.rpy:183
old "When setup finishes, please click below to restart this program."
new "حيثن ينتهي التنصيب, الرجاء الضغط ادناه لإعادة تشغيل البرنامج"
# renpy/common/00gltest.rpy:185
old "Restart"
new "إعادة تشغيل"
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/00keymap.rpy:167
old "Saved screenshot as %s."
new "تم حفظ الصورة كـ %s"
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/00layout.rpy:421
old "Are you sure?"
new "هل انت متأكد؟"
# renpy/common/00layout.rpy:422
old "Are you sure you want to delete this save?"
new "هل انت متأكد من رغبتك في حذف خانة الحفظ هذه؟"
# renpy/common/00layout.rpy:423
old "Are you sure you want to overwrite your save?"
new "هل انت متأكد من رغبتك في الحفظ على هذه الخانة؟"
# renpy/common/00layout.rpy:424
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "الاسترجاع سيضيع كل ما فعلته منذ خانة الحفظ السابقة. \n هل انت متأكد من رغبتك في الاسترجاع إلى هذه النقطة؟"
# renpy/common/00layout.rpy:425
old "Are you sure you want to quit?"
new "هل انت متأكد من رغبتك في الخروج؟"
# renpy/common/00layout.rpy:426
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "هل انت متأكد من رغبتك في العودة للقائمة الرئيسية؟ \n كل ما لم تقم بحفظة سيضيع."
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/00library.rpy:77
old "Skip Mode"
new "وضع التسريع"
# renpy/common/00library.rpy:80
old "Fast Skip Mode"
new "وضع التسريع السريع"
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/00updater.rpy:1258
old "Updater"
new "برنامج التحديث"
# renpy/common/00updater.rpy:1267
old "This program is up to date."
new "هذه النسخة هي الأحدث"
# renpy/common/00updater.rpy:1269
old "[u.version] is available. Do you want to install it?"
new "النسخة [u.version] متوفرة, هل ترغب في تنصيبها؟"
# renpy/common/00updater.rpy:1271
old "Preparing to download the updates."
new "يتم التجهيز لتحميل البرنامج من الانترنت"
# renpy/common/00updater.rpy:1273
old "Downloading the updates."
new "يتم تنزيل التحديثات"
# renpy/common/00updater.rpy:1275
old "Unpacking the updates."
new "يتم فك الضغط عن التحديثات"
# renpy/common/00updater.rpy:1279
old "The updates have been installed. The program will restart."
new "تم التحديث.. سيتم إعادة تشغيل البرنامج."
# renpy/common/00updater.rpy:1281
old "The updates have been installed."
new "تم التحديث."
# renpy/common/00updater.rpy:1283
old "The updates were cancelled."
new "تم إلغاء التحديث."
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/_compat/gamemenu.rpym:180
old "Empty Slot."
new "خانة فارغة"
# renpy/common/_compat/gamemenu.rpym:337
old "Previous"
new "السابق"
# renpy/common/_compat/gamemenu.rpym:344
old "Next"
new "التالي"
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/_compat/preferences.rpym:411
old "Joystick Mapping"
new "خيارات عصى التحكم"
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/_errorhandling.rpym:408
old "An exception has occurred."
new "حصل استثناء"
# renpy/common/_errorhandling.rpym:434
old "Rollback"
new "تراجع"
# renpy/common/_errorhandling.rpym:436
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "يقوم بالتراجع لنقطة سابقة لكي تستطيع اختيار شيء آخر"
# renpy/common/_errorhandling.rpym:439
old "Ignore"
new "تجاهل"
# renpy/common/_errorhandling.rpym:441
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "يتجاهل الاستثناء مما يستمح لك بالاستمرار. قد يسبب هذا المزيد من الاخطاء."
# renpy/common/_errorhandling.rpym:444
old "Reload"
new "إعادة المحاولة"
# renpy/common/_errorhandling.rpym:446
old "Reloads the game from disk, saving and restoring game state if possible."
new "يعيد تشغيل اللعبة من القرص الصلب, مع محاولة استعمادة آخر نقطة وحفظها عند الإستطاعة."
# renpy/common/_errorhandling.rpym:448
old "Open Traceback"
new "قراءة التقرير"
# renpy/common/_errorhandling.rpym:450
old "Opens the traceback.txt file in a text editor."
new "يفتح تقرير الخطأ في برنامج الملفات النصية."
# renpy/common/_errorhandling.rpym:456
old "Quits the game."
new "يخرج من اللعبة."
# renpy/common/_errorhandling.rpym:483
old "Parsing the script failed."
new "حصل خطأ أثناء تشغيل النص."
# renpy/common/_errorhandling.rpym:510
old "Open Parse Errors"
new "يفتح قائمة اخطاء التشغيل."
# renpy/common/_errorhandling.rpym:512
old "Opens the errors.txt file in a text editor."
new "يفتح ملف errors.txt في برنامج الملفات النصية"
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# renpy/common/_layout/classic_load_save.rpym:152
old "a"
new "a"
# renpy/common/_layout/classic_load_save.rpym:161
old "q"
new "q"
# : Translation updated at 2013-11-17 23:18
translate arabic strings:
# renpy/common/00action_file.rpy:587
old "Quick save complete."
new "تم الحفظ السريع بنجاح"
# : Translation updated at 2013-11-17 23:18
translate arabic strings:
# renpy/common/00gallery.rpy:521
old "Image [index] of [count] locked."
new "يوجد عدد صور [index] من أصل [count] مقفل"
# renpy/common/00gallery.rpy:539
old "prev"
new "السابق"
# renpy/common/00gallery.rpy:540
old "next"
new "التالي"
# renpy/common/00gallery.rpy:541
old "slideshow"
new "عرض الشرائح"
# renpy/common/00gallery.rpy:542
old "return"
new "العودة"
# : Translation updated at 2013-11-17 23:18
translate arabic strings:
# renpy/common/00layout.rpy:427
old "Are you sure you want to begin skipping?"
new "هل أنت متأكد من رغبتك في البدء بالتسريع؟"
# renpy/common/00layout.rpy:428
old "Are you sure you want to skip to the next choice?"
new "هل انت متأكد من رغبتك في التسريع حتى الخيار التالي؟"
# renpy/common/00layout.rpy:429
old "Are you sure you want to skip to unseen dialogue or the next choice?"
new "هل انت متأكد من رغبتك في تسريع الخيارات و الحوار الذي لم يسبق لك قرائته؟"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# renpy/common/00console.rpy:179
old "%(version)s console, originally by Shiz, C, and delta.\n"
new ""
# renpy/common/00console.rpy:180
old "Press <esc> to exit console. Type help for help.\n"
new "إضغط زر الخروج لإغلاق لوحة التحكم, اكتب كلمة help للمساعدة"
# renpy/common/00console.rpy:184
old "Ren'Py script enabled."
new "لغة برمحة رينباي متاحه"
# renpy/common/00console.rpy:186
old "Ren'Py script disabled."
new "لغة برمجة رينباي غير متاحه"
# renpy/common/00console.rpy:392
old "help: show this help"
new "مساعده: عرض هذه المساعده"
# renpy/common/00console.rpy:397
old "commands:\n"
new "أوامر: \n"
# renpy/common/00console.rpy:407
old " <renpy script statement>: run the statement\n"
new "<renpy script statement>: عرض الأوامر\n"
# renpy/common/00console.rpy:409
old " <python expression or statement>: run the expression or statement"
new " <python expression or statement>: عرض التعبير او الأوامر"
# renpy/common/00console.rpy:417
old "clear: clear the console history"
new "clear: مسح تاريخ لوحة التحكم"
# renpy/common/00console.rpy:421
old "exit: exit the console"
new "exit: الخروج من لوحة التحكم"
# renpy/common/00console.rpy:429
old "load <slot>: loads the game from slot"
new "استرجاع <slot>: يقوم باسترجاع اللعب من نقطة الحفظ"
# renpy/common/00console.rpy:442
old "save <slot>: saves the game in slot"
new "حفظ <slot>: يقوم بحفظ اللعب في نقطة الحفظ"
# renpy/common/00console.rpy:453
old "reload: reloads the game, refreshing the scripts"
new "reload: يعيد تشغيل اللعبة مع عرض التغييرات في النص"
# renpy/common/00console.rpy:461
old "watch <expression>: watch a python expression"
new "مشاهده <expression>: يقوم بعرض تبيرات بايثون"
# renpy/common/00console.rpy:470
old "unwatch <expression>: stop watching an expression"
new "unwatch <expression>: يقوم بإيقاف تعبير بايثون"
# renpy/common/00console.rpy:478
old "unwatchall: stop watching all expressions"
new "unwatchall: يقوم بإيقاف كل تعبيرات بايثون"
# renpy/common/00console.rpy:484
old "jump <label>: jumps to label"
new "jump <label>: يقفز للعنوان"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# renpy/common/00keymap.rpy:332
old "Autoreload"
new "إعادة التحميل تلقائياً"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# renpy/common/_developer/developer.rpym:65
old "Developer Menu"
new "قائمة المبرمج"
# renpy/common/_developer/developer.rpym:67
old "Reload Game (Shift+R)"
new "إعادة تشغيل اللعبة (Shift+R)"
# renpy/common/_developer/developer.rpym:69
old "Console (Shift+O)"
new "لوحة التحكم (Shift+O)"
# renpy/common/_developer/developer.rpym:71
old "Variable Viewer"
new "مستعرض الأوامر"
# renpy/common/_developer/developer.rpym:73
old "Theme Test"
new "اختبار القوالب"
# renpy/common/_developer/developer.rpym:75
old "Image Location Picker"
new "مكان الصور المطلوبة"
# renpy/common/_developer/developer.rpym:77
old "Filename List"
new "قائمة اسماء الملفات"
# renpy/common/_developer/developer.rpym:81
old "Show Image Load Log"
new "عرض قائمة الصور "
# renpy/common/_developer/developer.rpym:84
old "Hide Image Load Log"
new "إخفاء قائمة الصور"
# renpy/common/_developer/developer.rpym:149
old "No variables have changed since the game started."
new "لم يتم تغيير اي من الأوامر منذ ان بدأت اللعبة"
# renpy/common/_developer/developer.rpym:152
old "Return to the developer menu"
new "العودة للوحة المبرمج"
# renpy/common/_developer/developer.rpym:272
old "{b}Missing Images{/b}"
new "{b}صور مفقودة{/b}"
# renpy/common/_developer/developer.rpym:424
old "Rectangle: %r"
new "مثلث: %r"
# renpy/common/_developer/developer.rpym:429
old "Mouse position: %r"
new "مكان المؤشر: %r"
# renpy/common/_developer/developer.rpym:431
old "Right-click or escape to quit."
new "إضغط بالزر الايمن او إضغط زر الخروح للإغلاق"
# renpy/common/_developer/developer.rpym:482
old "Done"
new "تم"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# renpy/common/_developer/inspector.rpym:43
old "Displayable Inspector"
new "اختبار المستعرضات"
# renpy/common/_developer/inspector.rpym:49
old "Nothing to inspect."
new "لا يوجد شيء ليتم اختباره"
# renpy/common/_developer/inspector.rpym:58
old "Size"
new "حجم"
# renpy/common/_developer/inspector.rpym:63
old "Style"
new "مظهر"
# renpy/common/_developer/inspector.rpym:123
old "Inspecting Styles of [displayable_name!q]"
new "يتم اختبار المظهر الخاص بـ [displayable_name!q]"
# renpy/common/_developer/inspector.rpym:135
old "displayable:"
new "مستعرضات"
# renpy/common/_developer/inspector.rpym:142
old " (no properties affect the displayable)"
new " (لا توجد اي مؤثرات على هذا المستعرض)"
# renpy/common/_developer/inspector.rpym:144
old " (default properties omitted)"
new " (تم استبعاد تأثير المؤثرات القياسية)"
# renpy/common/_developer/inspector.rpym:174
old "<repr() failed>"
new "<repr() failed>"
+52
View File
@@ -0,0 +1,52 @@
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/distribute.rpy:333
old "Nothing to do."
new "لا شيء لإنجازه"
# game/distribute.rpy:337
old "Scanning project files..."
new "يتم فحص الملفات..."
# game/distribute.rpy:344
old "Scanning Ren'Py files..."
new "يتم فحص ملفات رينباي..."
# game/distribute.rpy:494
old "Archiving files..."
new "يتم أرشفة الملفات..."
# game/distribute.rpy:745
old "Writing the [variant] [format] package."
new "يتم كتابة ملفات [variant] [format]"
# game/distribute.rpy:758
old "Making the [variant] update zsync file."
new "Making the [variant] update zsync file."
# game/distribute.rpy:854
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "تم انهاء {b}[complete]{/b} من عدد {b}[total]{/b} من الملفات."
# game/distribute.rpy:915
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
new "تم الإنتهاء من تكوين رزمة البيانات لنشر اللعبة. بسبب اختلاف نظام الملفات في الأنظمة التشغيلية ماك و لينوكس, لا يمكن فك الضغط عن الرزمة الخاصة بتلك الأنظمة على نظام وندوز."
# : Translation updated at 2013-11-17 23:18
translate arabic strings:
# game/distribute.rpy:358
old "No packages are selected, so there's nothing to do."
new "لم يتم اختيار اي حزمة, لم يحصل اي شيء."
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# game/distribute.rpy:335
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
new "فشل بناء ملفات النشر. build.directory_name يجب أن لا يحتوي على مساحات فارغة, فواصل, او فواصل منقوطة في إسم المجلد "
@@ -0,0 +1,48 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/distribute_gui.rpy:139
old "Build Distributions: [project.current.name!q]"
new "تجميع الملفات تجهيزاً للنشر: [project.current.name!q]"
# game/distribute_gui.rpy:154
old "Directory Name:"
new "اسم المجلد:"
# game/distribute_gui.rpy:158
old "Executable Name:"
new "اسم الملف التشغيلي:"
# game/distribute_gui.rpy:167
old "Actions:"
new "الأوامر:"
# game/distribute_gui.rpy:175
old "Edit options.rpy"
new "تحرير options.rpy"
# game/distribute_gui.rpy:176
old "Refresh"
new "إعادة تحميل"
# game/distribute_gui.rpy:193
old "Build Packages:"
new "بناء الرزمة البيانية:"
# game/distribute_gui.rpy:208
old "Build Updates"
new "بناء تحديثات:"
# game/distribute_gui.rpy:212
old "Build"
new "بناء"
# game/distribute_gui.rpy:219
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
new "تم ايجاد بعض الاخطاء في المشروع. الرجاء التأكد من خلو المشروع من الأخطاء قبل نشره بشكل نهائي."
# game/distribute_gui.rpy:236
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
new "مشروعك يخلو من معلومات النشر, هل ترغب في إضافة هذه المعلومات في نهاية ملف options.rpy؟"
+64
View File
@@ -0,0 +1,64 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/editor.rpy:120
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
new "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
# game/editor.rpy:121
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
# game/editor.rpy:137
old "The may have occured because wxPython is not installed on this system."
new "قد يكون السبب ان wxPython غير موجود على هذا الجهاز."
# game/editor.rpy:144
old "Up to 22 MB download required."
new "Up to 22 MB download required."
# game/editor.rpy:157
old "1.8 MB download required."
new "1.8 MB download required."
# game/editor.rpy:158
old "This may have occured because Java is not installed on this system."
new "قد يكون السبب ان الجافا غير موجوده على هذا الجهاز."
# game/editor.rpy:327
old "An exception occured while launching the text editor:\n[exception!q]"
new "حصل استثناء اثناء فتح المحرر: \n[exception!q]"
# game/editor.rpy:378
old "Select Editor"
new "الرجاء اختيار المحرر"
# game/editor.rpy:393
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
new ""
# game/editor.rpy:415
old "Cancel"
new "إلغاء الامر"
# TODO: Translation updated at 2013-11-17 23:18
translate arabic strings:
# game/editor.rpy:137
old "This may have occured because wxPython is not installed on this system."
new "قد يكون سبب ذلك ان wxPython غير موجود في نظام التشغيل لديك"
# game/editor.rpy:155
old "A mature editor that requires Java."
new "محرر متخصص يستعمل لغة جافا"
# game/editor.rpy:164
old "Invokes the editor your operating system has associated with .rpy files."
new "يقوم بفتح البرنامج المسؤول عن تحرير ملفات .rpy في نظامك التشغيلي"
# game/editor.rpy:180
old "Prevents Ren'Py from opening a text editor."
new "يمنع رينباي من فتح اي محرر نصوص"
+96
View File
@@ -0,0 +1,96 @@
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/front_page.rpy:79
old "+ Create New Project"
new "+ إبدأ مشروعاً جديداً"
# game/front_page.rpy:90
old "Launch Project"
new "تشغيل المشروع"
# game/front_page.rpy:111
old "Tutorial"
new "الدليل العملي"
# game/front_page.rpy:112
old "The Question"
new "السؤال"
# game/front_page.rpy:128
old "Active Project"
new "المشروع الحالي"
# game/front_page.rpy:136
old "Open Directory"
new "فتح مجلد"
# game/front_page.rpy:141
old "game"
new "اللعبة"
# game/front_page.rpy:142
old "base"
new "المشروع كله"
# game/front_page.rpy:148
old "Edit File"
new "تحرير ملف"
# game/front_page.rpy:156
old "All script files"
new "جميع الملفات النصية"
# game/front_page.rpy:165
old "Navigate Script"
new "مهام إضافية"
# game/front_page.rpy:176
old "Check Script (Lint)"
new "فحص الملف (لينت)"
# game/front_page.rpy:177
old "Change Theme"
new "تغيير المظهر"
# game/front_page.rpy:178
old "Delete Persistent"
new "حذف الملفات المؤقتة"
# game/front_page.rpy:186
old "Build Distributions"
new "تجميع المشروع للنشر"
# game/front_page.rpy:188
old "Generate Translations"
new "تجهيز ملفات للترجمة"
# game/front_page.rpy:204
old "Checking script for potential problems..."
new "يتم فحص الملفات لأي اخطاء محتملة..."
# game/front_page.rpy:219
old "Deleting persistent data..."
new "يتم الآن حذف الملفات المؤقتة "
# : Translation updated at 2013-11-17 23:18
translate arabic strings:
# game/front_page.rpy:204
old "Android"
new "أندرويد"
# game/front_page.rpy:206
old "Extract Dialogue"
new "استخراج النص"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# game/front_page.rpy:144
old "[p.name!q] (template)"
new "[p.name!q] (template)"
+92
View File
@@ -0,0 +1,92 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/interface.rpy:89
old "Documentation"
new "المستندات المرفقة"
# game/interface.rpy:90
old "Ren'Py Website"
new "موقع رينباي"
# game/interface.rpy:91
old "Ren'Py Games List"
new "قائمة ألعاب رينباي"
# game/interface.rpy:92
old "About"
new "معلومات"
# game/interface.rpy:99
old "update"
new "تحديث"
# game/interface.rpy:101
old "preferences"
new "خيارات"
# game/interface.rpy:102
old "quit"
new "خروج"
# game/interface.rpy:149
old "Yes"
new "نعم"
# game/interface.rpy:151
old "No"
new "لا"
# game/interface.rpy:181
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
new "بسبب محدودية التجميع, الاحرف الغير لاتينيه غير مسموح بها في اسم الملف او المجلدات"
# game/interface.rpy:183
old "[title]"
new "[title]"
# game/interface.rpy:248
old "ERROR"
new "خطأ"
# game/interface.rpy:280
old "While [what!q], an error occured:"
new "حصل خطأ أثناء [what!q]"
# game/interface.rpy:281
old "[exception!q]"
new "[exception!q]"
# game/interface.rpy:298
old "Text input may not contain the {{ or [[ characters."
new "لا يمكن استعمال الرمزان {{ و ]] هنا"
# game/interface.rpy:303
old "File and directory names may not contain / or \\."
new "غير مسموح ان يحتوي اسم الملف او المجلد على الرمزان / أو \\"
# game/interface.rpy:309
old "File and directory names must consist of ASCII characters."
new "اسم الملف و المجلدات التي تحتويه يجب ان تكون مكتوبة بأحرف ASCII "
# game/interface.rpy:330
old "INFORMATION"
new "معلومات"
# game/interface.rpy:373
old "PROCESSING"
new "يتم إجراء العمليات"
# game/interface.rpy:390
old "QUESTION"
new "سؤال"
# TODO: Translation updated at 2013-11-17 23:18
translate arabic strings:
# game/interface.rpy:451
old "CHOICE"
new "إختيار"
+72
View File
@@ -0,0 +1,72 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/navigation.rpy:150
old "Navigate: [project.current.name]"
new "الذهاب إلى: [project.current.name]"
# game/navigation.rpy:159
old "Order: "
new "الترتيب:"
# game/navigation.rpy:160
old "alphabetical"
new "أبجدي"
# game/navigation.rpy:162
old "by-file"
new "ملف ملف"
# game/navigation.rpy:164
old "natural"
new "طبيعي"
# game/navigation.rpy:168
old "refresh"
new "إعادة تحميل"
# game/navigation.rpy:176
old "Category:"
new "فئة:"
# game/navigation.rpy:178
old "files"
new "ملفات"
# game/navigation.rpy:179
old "labels"
new "وسم"
# game/navigation.rpy:180
old "defines"
new "تحديد"
# game/navigation.rpy:181
old "transforms"
new "التحول"
# game/navigation.rpy:182
old "screens"
new "النوافذ"
# game/navigation.rpy:183
old "callables"
new "ما يمكن استجلابه"
# game/navigation.rpy:184
old "TODOs"
new "TODOs"
# game/navigation.rpy:223
old "+ Add script file"
new "+إضافة ملف نص"
# game/navigation.rpy:231
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
new "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
# game/navigation.rpy:238
old "The list of names is empty."
new "قائمة الأسماء فارغة"
+48
View File
@@ -0,0 +1,48 @@
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/new_project.rpy:22
old "Choose Project Template"
new "الرجاء اختيار تصميم المظهر للمشروع"
# game/new_project.rpy:40
old "Please select a template to use for your new project. Ren'Py ships with a default template that creates an English-language game with standard screens."
new "الرجاء اختيار التصميم الذي ترغبه لمشروعك الجديد. رينباي يأتي بعدة تصاميم قياسية يمكنك التعديل عليها لاحقاً."
# game/new_project.rpy:55
old "PROJECT NAME"
new "اسم المشروع"
# game/new_project.rpy:56
old "Please enter the name of your project:"
new "الرجاء اختيار اسم لمشروعك الجديد"
# game/new_project.rpy:62
old "The project name may not be empty."
new "لا يمكن ان يكون اسم المشروع فارغاً"
# game/new_project.rpy:67
old "[project_name!q] already exists. Please choose a different project name."
new "الاسم [project_name!q] يوجد مسبقاً, الرجاء اختيار اسم مختلف."
# game/new_project.rpy:70
old "[project_dir!q] already exists. Please choose a different project name."
new "[project_dir!q] يوجد مسبقاً, الرجاء اختيار اسم مختلف."
# : Translation updated at 2013-11-17 23:18
translate arabic strings:
# game/new_project.rpy:40
old "Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'."
new "الرجاء اختيار القالب المطلوب للمشروع الجديد. هذه القوالب تقوم بتجهيز اتجاه النص و اللغه المستخدمة في الواجهة لتسهل عملية البدء. إذا لم تكن لغتك مدعومة الرجاء اختيار اللغة الانجليزية."
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# game/new_project.rpy:71
old "The projects directory could not be set. Giving up."
new "لم يتم تحديد مجلد المشاريع, سيتم الإلغاء"
+68
View File
@@ -0,0 +1,68 @@
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/preferences.rpy:40
old "Launcher Preferences"
new "خيارات برنامج التشغيل"
# game/preferences.rpy:61
old "Projects Directory:"
new "دليل المشاريع:"
# game/preferences.rpy:68
old "[persistent.projects_directory!q]"
new "[persistent.projects_directory!q]"
# game/preferences.rpy:70
old "Not Set"
new "غير محدد"
# game/preferences.rpy:84
old "Text Editor:"
new "محرر الملفات النصية:"
# game/preferences.rpy:106
old "Update Channel:"
new "مصدر التحديثات:"
# game/preferences.rpy:126
old "Navigation Options:"
new "خيارات استعراض المجلدات"
# game/preferences.rpy:130
old "Include private names"
new "تضمين الأسماء الخاصة"
# game/preferences.rpy:131
old "Include library names"
new "تضمين اسماء المكتبات"
# game/preferences.rpy:141
old "Launcher Options:"
new "خيارات برنامج التشغيل:"
# game/preferences.rpy:145
old "Hardware rendering"
new "الإستعراض بواسطة قطع الجهاز الداخلية"
# game/preferences.rpy:148
old "Console output"
new "الإستعراض بواسطة البرمجيات المتوفرة"
# game/preferences.rpy:169
old "Open launcher project"
new "فتح الواجهة التشغيلية كمشروع"
# game/preferences.rpy:183
old "Language:"
new "اللغة:"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# game/preferences.rpy:164
old "Show templates"
new "عرض القوالب"
+60
View File
@@ -0,0 +1,60 @@
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/project.rpy:196
old "Ren'Py is scanning the project..."
new "رينباي يقوم بفحص المشروع"
# game/project.rpy:485
old "PROJECTS DIRECTORY"
new "سياق مجلدات المشاريع"
# game/project.rpy:485
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
new "الرجاء اختيار نسق المشاريع من الصفحة الخاصة بذلك. \n{b}قد تكون النافذة ظهرت خلف هذه النافذة.{/b}"
# game/project.rpy:485
old "This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."
new "سيقوم البرنامج بفحص المجلد هذا لإيجاد المشاريع السابقة, أو ليضع المشاريع الجديده فيه, و ايضاً لوضع المشاريع المنتهيه عند تجهيزها للنشر."
# game/project.rpy:525
old "Ren'Py was unable to run python with tkinter to choose the projects directory."
new "رينباي لم يستطع تشغيل برمجيات بايثون للبحث عن مجلد المشاريع."
# game/project.rpy:529
old "Ren'Py has set the projects directory to:"
new "رينباي قام بتحديد مجلد المشاريع إلى المكان التالي:"
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# game/project.rpy:48
old "After making changes to the script, press shift+R to reload your game."
new "عند إجراء أي تغييرات في ملف الحوار, يمكنك ضغط shift+R لترى التغييرات داخل اللعبة"
# game/project.rpy:49
old "Press shift+O (the letter) to access the console."
new "إضغط shift+O للدخول على لوحة التحكم"
# game/project.rpy:50
old "Press shift+D to access the developer menu."
new "إضغط shift+D للدخول على لوحة تحكم المبرمج"
# game/project.rpy:219
old "Launching the project failed."
new "لم تنجح محاولة إقلاع المشروع"
# game/project.rpy:219
old "Please ensure that your project launches normally before running this command."
new "الرجاء التأكد من سلامة إقلاع المشروع قبل تشغيل هذا الأمر البرمجي"
# game/project.rpy:516
old "Launching"
new "جاري الإقلاع"
# game/project.rpy:585
old "Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."
new "رينباي لم يتمكن من تشغيل بايثون مع tkinter لكي يختار مجلد المشاريع, الرجاء تنصيب Python-tk او tkinter"
+17
View File
@@ -0,0 +1,17 @@
translate arabic python:
al = "DejaVuSans.ttf"
style.l_default.font = al
style.l_default.size = 16
style.l_button_text.selected_font = al
style.l_button_text.selected_bold = True
style.l_link_text.font = al
style.l_alternate_text.font = al
style.l_navigation_button_text.font = al
style.l_navigation_text.font = al
style.l_navigation_text.bold = True
style.l_checkbox_text.selected_font = al
style.l_nonbox_text.selected_font = al
style.hyperlink_text.font = al
make_style_backup()
config.rtl = True
+40
View File
@@ -0,0 +1,40 @@
# TODO: Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/translations.rpy:10
old "Create or Update Translations"
new "صنع او تحديث الترجمات"
# game/translations.rpy:10
old "Please enter the name of the language for which you want to create or update translations."
new "الرجاء كتابة اسم اللغة التي ستقوم بالترجمة إليها و الضغط على زر انتر"
# game/translations.rpy:15
old "The language name can not be the empty string."
new "لا يمكن ان يكون اسم اللغة فارغاً"
# game/translations.rpy:26
old "Ren'Py is generating translations...."
new "يقوم رينباي بتصنيع ملفات الترجمة..."
# game/translations.rpy:30
old "Ren'Py has finished generating [language] translations."
new "انتهى رينباي من صناعة ملفات الترجمة إلى [language]"
# TODO: Translation updated at 2013-11-17 23:18
translate arabic strings:
# game/translations.rpy:44
old "What format would you like for the extracted dialogue?"
new "ما هي الصيغة التي تريدها للنص المستخرج؟"
# game/translations.rpy:56
old "Ren'Py is extracting dialogue...."
new "رينباي يقوم باستخراج الحوار إلى ملف نص"
# game/translations.rpy:60
old "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[format] in the base directory."
new "رينباي انتهى من استخراج الحوار. الحوار المستخرج يوجد الآن في [format] في المجلد الرئيسي"
+100
View File
@@ -0,0 +1,100 @@
# : Translation updated at 2013-04-30 07:54
translate arabic strings:
# game/updater.rpy:54
old "Select Update Channel"
new "الرجاء اختيار طريقة التحديث"
# game/updater.rpy:65
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
new "طريقة التحديث تحدد لبرنامج رينباي اي المواقع يستخدم لإيجاد النسخ الجديدة. الرجاء اختيار الطريقة التي تناسبك."
# game/updater.rpy:70
old "Release"
new "نسخة مكتملة"
# game/updater.rpy:76
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
new "{b}موصى به.{/b} نسخة رينباي التي يفضل استعمالها مع كل الالعاب الجديدة."
# game/updater.rpy:81
old "Prerelease"
new "نسخة مبدأية"
# game/updater.rpy:87
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 "عينة من نسخة رينباي القادمة تسمح لك بتجربة الإضافات الجديدة. لا ننصح باستعمالها لصناعة ألعاب معدة للنشر."
# game/updater.rpy:93
old "Experimental"
new "نسخة تجريبية"
# game/updater.rpy:99
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
new "النسخ التجريبية من رينباي. الأفضل ألا تستعمل هذه النسخ إلا لو طلب منك ذلك احد مبرمجي رينباي"
# game/updater.rpy:119
old "An error has occured:"
new "حصل خطأ:"
# game/updater.rpy:121
old "Checking for updates."
new "يتم البحث عن تحديثات."
# game/updater.rpy:123
old "Ren'Py is up to date."
new "نسخة رينباي التي لديك هي الأحدث."
# game/updater.rpy:125
old "[u.version] is now available. Do you want to install it?"
new "النسخة [u.version] متوفرة, هل ترغب في تنصيبها؟"
# game/updater.rpy:127
old "Preparing to download the update."
new "يتم التجهيز لتنزيل التحديث."
# game/updater.rpy:129
old "Downloading the update."
new "يتم تنزيل التحديث."
# game/updater.rpy:131
old "Unpacking the update."
new "يتم فك الضغط عن التحديث."
# game/updater.rpy:133
old "Finishing up."
new "اللمسات النهائية."
# game/updater.rpy:135
old "The update has been installed. Ren'Py will restart."
new "تم تنصيب التحديثات بنجاح, سيتم إعادة تشغيل رينباي الآن."
# game/updater.rpy:137
old "The update has been installed."
new "تم تنصيب التحديثات."
# game/updater.rpy:139
old "The update was cancelled."
new "تم إلغاء التحديث."
# game/updater.rpy:156
old "Ren'Py Update"
new "تحديثات رينباي."
# game/updater.rpy:162
old "Proceed"
new "استمرار."
# : Translation updated at 2014-04-17 13:01
translate arabic strings:
# game/updater.rpy:129
old "Nightly"
new "مسائي"
# game/updater.rpy:135
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
new "أحدث نسخة طازجة من رينباي التجريبي, قد يحتوي على آخر مستجدات رينباي و قد لا يعمل مطلقاً"
+10
View File
@@ -0,0 +1,10 @@
translate french strings:
# game/about.rpy:21
old "[version!q]"
new "[version!q]"
# game/about.rpy:25
old "View license"
new "Voir la licence"
+22
View File
@@ -0,0 +1,22 @@
translate french strings:
# game/add_file.rpy:7
old "FILENAME"
new "NOM DU FICHIER"
# game/add_file.rpy:7
old "Enter the name of the script file to create."
new "Entrez le nom du fichier de script à créer."
# game/add_file.rpy:10
old "The filename must have the .rpy extension."
new "Le fichier doit avoir l'extension .rpy."
# game/add_file.rpy:18
old "The file already exists."
new "Le fichier éxiste déjà."
# game/add_file.rpy:21
old "# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n"
new "Ren'Py charge automatiquement tous les fichiers de script finissant par .rpy. Pour utiliser ce ficher\n#, définissez un label et faites un «jump» vers lui depuis un autre fichier.\n"
+101
View File
@@ -0,0 +1,101 @@
translate french strings:
# game/android.rpy:12
old "To build Android packages, please download RAPT (from {a=http://www.renpy.org/dl/android}here{/a}), unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "Pour construire les paquets Android, téléchargez RAPT (depuis {a=http://www.renpy.org/dl/android}here{/a}), dézippé le, et placez le dans le répertoire de Ren'Py. Puis, redémarrez Ren'Py."
# game/android.rpy:13
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 construire les paquets Android. Choisissez \"installer le kit de développement et créer les clés\" pour cela"
# game/android.rpy:14
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
new "RAPT a été installé, mais aucune clé n'a été configurée. Créez une nouvelle clé, ou restaurez android.keystore."
# game/android.rpy:15
old "The current project has not been configured. Use \"Configure\" to configure it before building."
new "Le projet courant n'a pas été configuré. Choisissez \"Configurer\' pour effectuer la configuration."
# game/android.rpy:16
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
new "Choisissez \"Construire\" pour construire le projet courant, ou connecté un appareil Android et choisissez \"Construire et Installer\" pour l'installer sur l'appareil."
# game/android.rpy:18
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Tentative d'émulation d'un téléphone Android.\n\nLe touché est émulé via la souris, mails uniquement lorsque le bouton est pressé. La barre d'espace correspond au bouton menu, et la touche PageUp correspond au bouton retour."
# game/android.rpy:19
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Tentative d'émulation d'une tablette Android.\n\nLe touché est émulé via la souris, mails uniquement lorsque le bouton est pressé. La barre d'espace correspond au bouton menu, et la touche PageUp correspond au bouton retour."
# game/android.rpy:20
old "Attempts to emulate an OUYA 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 OUYA.\n\nLe pad est émulé via les flèches du clavier. La touche Entrée correspond au bouton select, la barre d'espace au bouton menu, et la touche PageUp correspond au bouton retour."
# game/android.rpy:22
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."
# game/android.rpy:23
old "Configures the package name, version, and other information about this project."
new "Configure le nom du packet, sa version et d'autres informations à propos de ce projet."
# game/android.rpy:24
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
new "Ouvre le fichier contenant les clés Google Play dans l'éditeur.\n\nCela est nécessaire uniquement si l'application utilise une expansion APK. Référez-vous à la documentation pour plus d'informations."
# game/android.rpy:25
old "Builds the Android package."
new "Construire le paquet Android."
# game/android.rpy:26
old "Builds the Android package, and installs it on an Android device connected to your computer."
new "Construire le paquet Android, et l'installer sur l'appareil Android connecté à votre ordinateur."
# game/android.rpy:142
old "{a=%s}%s{/a}"
new "{a=%s}%s{/a}"
# game/android.rpy:361
old "Android: [project.current.name!q]"
new "Android: [project.current.name!q]"
# game/android.rpy:381
old "Emulation:"
new "Émulateur:"
# game/android.rpy:389
old "Phone"
new "Téléphone"
# game/android.rpy:393
old "Tablet"
new "Tablette"
# game/android.rpy:397
old "Television / OUYA"
new "Télévision / OUYA"
# game/android.rpy:409
old "Build:"
new "Construire:"
# game/android.rpy:417
old "Install SDK & Create Keys"
new "Installer le kit de développement et créer les clés"
# game/android.rpy:421
old "Configure"
new "Configurer"
# game/android.rpy:425
old "Build Package"
new "Construire le paquet"
# game/android.rpy:429
old "Build & Install"
new "Construire et installer"
# game/android.rpy:13
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un Kit de Développement Java (JDK) 32 bits est nécessaire pour construire les paquets pour Android depuis Windows. Le JDK n'est pas la même chose que le JRE, il est possible que Java soit installé sur votre machine sans le JDK.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Téléchargez et installez le JDK{/a}, puis relancer le lanceur Ren'Py."
+41
View File
@@ -0,0 +1,41 @@
translate french strings:
# game/choose_theme.rpy:274
old "Could not change the theme. Perhaps options.rpy was changed too much."
new "Impossible de changer le thème. Peut être que options.rpy a été trop modifié."
# game/choose_theme.rpy:332
old "Display"
new "Affichage"
# game/choose_theme.rpy:333
old "Window"
new "Fenêtre"
# game/choose_theme.rpy:334
old "Fullscreen"
new "Plein écran"
# game/choose_theme.rpy:335
old "Planetarium"
new "Planetarium"
# game/choose_theme.rpy:342
old "Sound Volume"
new "Volume sonore"
# game/choose_theme.rpy:376
old "Choose Theme"
new "Choisir un thème"
# game/choose_theme.rpy:389
old "Theme"
new "Thème"
# game/choose_theme.rpy:413
old "Color Scheme"
new "Agencement des couleurs"
# game/choose_theme.rpy:444
old "Continue"
new "Continuer"
+281
View File
@@ -0,0 +1,281 @@
translate french strings:
# renpy/common/00updater.rpy:1258
old "Updater"
new "Programme de mise à jour"
# renpy/common/00updater.rpy:1267
old "This program is up to date."
new "Ce programme est à jour."
# renpy/common/00updater.rpy:1269
old "[u.version] is available. Do you want to install it?"
new "La version [u.version]. Voulez-vous l'installer ?"
# renpy/common/00updater.rpy:1271
old "Preparing to download the updates."
new "Préparation du téléchargement de la mise à jour."
# renpy/common/00updater.rpy:1273
old "Downloading the updates."
new "Téléchargement de la mise à jour."
# renpy/common/00updater.rpy:1275
old "Unpacking the updates."
new "Dépaquetage de la mise à jour."
# renpy/common/00updater.rpy:1279
old "The updates have been installed. The program will restart."
new "La mise à jour a bien été effectuée. Le programme va redémarrer."
# renpy/common/00updater.rpy:1281
old "The updates have been installed."
new "La mise à jour a bien été effectuée."
# renpy/common/00updater.rpy:1283
old "The updates were cancelled."
new "La mise à jour a été annullée."
# renpy/common/_layout/classic_load_save.rpym:120
old "Empty Slot."
new "Emplacement vide."
# renpy/common/_layout/classic_load_save.rpym:152
old "a"
new "a"
# renpy/common/_layout/classic_load_save.rpym:161
old "q"
new "q"
# renpy/common/_layout/classic_joystick_preferences.rpym:76
old "Joystick Mapping"
new "Joystick"
# renpy/common/00layout.rpy:421
old "Are you sure?"
new "Êtes-vous sûr ?"
# renpy/common/00layout.rpy:422
old "Are you sure you want to delete this save?"
new "Êtes-vous sûr de vouloir supprimer cette sauvegarde ?"
# renpy/common/00layout.rpy:423
old "Are you sure you want to overwrite your save?"
new "Êtes-vous sûr de vouloir écraser cette sauvegarde ?"
# renpy/common/00layout.rpy:424
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "En effectuant ce chargement, vous perderez votre avancement non sauvegardé.\nÊtes-vous sûr de vouloire faire ça ?"
# renpy/common/00layout.rpy:425
old "Are you sure you want to quit?"
new "Êtes-vous sûr de vouloir quitter ?"
# renpy/common/00layout.rpy:426
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Êtes-vous sûr de vouloir retourner au menu principal ?\nVous perdrez votre avancement non sauvegardé."
# renpy/common/00keymap.rpy:167
old "Saved screenshot as %s."
new "La capture d'écran a été enregistrée en tant que %s"
# renpy/common/00gltest.rpy:50
old "Graphics Acceleration"
new "Accélération graphique"
# renpy/common/00gltest.rpy:54
old "Automatically Choose"
new "Choix automatique"
# renpy/common/00gltest.rpy:59
old "Force Angle/DirectX Renderer"
new "Forcer le rendu Angle/DirectX"
# renpy/common/00gltest.rpy:63
old "Force OpenGL Renderer"
new "Forcer le rendu OpenGL"
# renpy/common/00gltest.rpy:67
old "Force Software Renderer"
new "Forcer le rendu logiciel"
# renpy/common/00gltest.rpy:73
old "Changes will take effect the next time this program is run."
new "Les changement seront pris en compte au prochin démarrage du programme."
# renpy/common/00gltest.rpy:77
old "Quit"
new "Quitter"
# renpy/common/00gltest.rpy:82
old "Return"
new "Retour"
# renpy/common/00gltest.rpy:112
old "Performance Warning"
new "Avertissement sur les performances"
# renpy/common/00gltest.rpy:117
old "This computer is using software rendering."
new "Cet ordinateur utilise le rendu logiciel."
# renpy/common/00gltest.rpy:119
old "This computer is not using shaders."
new "Cet ordinateur n'utilise pas les shaders."
# renpy/common/00gltest.rpy:121
old "This computer is displaying graphics slowly."
new "Cet ordinateur affiche lentement les graphismes."
# renpy/common/00gltest.rpy:123
old "This computer has a problem displaying graphics: [problem]."
new "Cet ordinateur rencontre des difficultés à afficher les graphismes: [problem]."
# renpy/common/00gltest.rpy:128
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
new "Les pilotes graphiques ne semblent pas à jour ou dysfonctionnent. Cela peut entraîner des ralentissements ou de mauvais affichages. Mettre à jour DirectX pourraît régler ce problème."
# renpy/common/00gltest.rpy:130
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "Les pilotes graphiques ne semblent pas à jour ou dysfonctionnent. Cela peut entraîner des ralentissements ou de mauvais affichages."
# renpy/common/00gltest.rpy:135
old "Update DirectX"
new "Mettre à jour DirectX"
# renpy/common/00gltest.rpy:141
old "Continue, Show this warning again"
new "Continer, Afficher cet avertissement la prochaine fois."
# renpy/common/00gltest.rpy:145
old "Continue, Don't show warning again"
new "Continer, Ne plus afficher cet avertissement."
# renpy/common/00gltest.rpy:171
old "Updating DirectX."
new "Mettre à jour de DirectX en cours"
# renpy/common/00gltest.rpy:175
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
new "La mise à jour de DirectX a débutée. Elle est sans doute minimisée dans la bare de tâche. Merci de suivre les instructions pour installer DirectX."
# renpy/common/00gltest.rpy:179
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
new "{b}Note:{/b} le programme d'installation de Microsoft's DirectX va, par defaut, installer la barre d'outils Bing. Si vous ne voulez pas de cette barre, décochez la case appropriée."
# renpy/common/00gltest.rpy:183
old "When setup finishes, please click below to restart this program."
new "Lorsque l'instllation sera terminée, cliquez ci-dessous pour redémarrer ce programme."
# renpy/common/00gltest.rpy:185
old "Restart"
new "Redémarrer"
# renpy/common/_errorhandling.rpym:408
old "An exception has occurred."
new "Une exception a été levée."
# renpy/common/_errorhandling.rpym:434
old "Rollback"
new "Revenir en arrière"
# renpy/common/_errorhandling.rpym:436
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Tenter de revenir en arrière, vous permet de sauvegarder ou de faire un autre choix."
# renpy/common/_errorhandling.rpym:439
old "Ignore"
new "Ignorer"
# renpy/common/_errorhandling.rpym:441
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignorer l'exception vous permet de continuer. Cela entraîne généralement des erreurs additionelles."
# renpy/common/_errorhandling.rpym:444
old "Reload"
new "Recharger"
# renpy/common/_errorhandling.rpym:446
old "Reloads the game from disk, saving and restoring game state if possible."
new "Recharger le jeu depuis le disque dur and tenter de restaurer le jeu dans l'état actuel."
# renpy/common/_errorhandling.rpym:448
old "Open Traceback"
new "Ouvrir la pile d'appel"
# renpy/common/_errorhandling.rpym:450
old "Opens the traceback.txt file in a text editor."
new "Ouvrir traceback.txt dans un éditeur de texte."
# renpy/common/_errorhandling.rpym:456
old "Quits the game."
new "Quitter le jeu."
# renpy/common/_errorhandling.rpym:483
old "Parsing the script failed."
new "L'analyse du script a échouée."
# renpy/common/_errorhandling.rpym:510
old "Open Parse Errors"
new "Ouvrir les erreurs d'analyse."
# renpy/common/_errorhandling.rpym:512
old "Opens the errors.txt file in a text editor."
new "Ouvrir errors.txt dans un éditeur de texte."
# renpy/common/00action_file.rpy:118
old "%b %d, %H:%M"
new "%b %d, %H:%M"
# renpy/common/_compat/gamemenu.rpym:337
old "Previous"
new "Précédent"
# renpy/common/_compat/gamemenu.rpym:344
old "Next"
new "Suivant"
# renpy/common/00library.rpy:77
old "Skip Mode"
new "Mode rapide"
# renpy/common/00library.rpy:80
old "Fast Skip Mode"
new "Mode très rapide"
# renpy/common/00gallery.rpy:521
old "Image [index] of [count] locked."
new "Image [index] sur [count] verrouillée."
# renpy/common/00gallery.rpy:539
old "prev"
new "précédent"
# renpy/common/00gallery.rpy:540
old "next"
new "suivant"
# renpy/common/00gallery.rpy:541
old "slideshow"
new "diaporama"
# renpy/common/00gallery.rpy:542
old "return"
new "retour"
# renpy/common/00layout.rpy:427
old "Are you sure you want to begin skipping?"
new "Êtes-vous sûr de vouloir commencer à sauter certaines étapes ?"
# renpy/common/00layout.rpy:428
old "Are you sure you want to skip to the next choice?"
new "Êtes-vous sûr de vouloir sauter le prochain choix ?"
# renpy/common/00layout.rpy:429
old "Are you sure you want to skip to unseen dialogue or the next choice?"
new "Êtes-vous sûr de vouloir sauter des dialogues non lus or le prochain choix ?"
# renpy/common/00action_file.rpy:587
old "Quick save complete."
new "Sauvegarde rapide effectuée."
+37
View File
@@ -0,0 +1,37 @@
translate french strings:
# game/distribute.rpy:333
old "Nothing to do."
new "Rien à faire."
# game/distribute.rpy:337
old "Scanning project files..."
new "Scan des fichiers du projet..."
# game/distribute.rpy:344
old "Scanning Ren'Py files..."
new "Scan des fichiers Ren'Py..."
# game/distribute.rpy:494
old "Archiving files..."
new "Archivage des fichiers..."
# game/distribute.rpy:745
old "Writing the [variant] [format] package."
new "Écriture du paquet [variant] [format]."
# game/distribute.rpy:758
old "Making the [variant] update zsync file."
new "Création du fichier de mise à jour zsync [variant]."
# game/distribute.rpy:854
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "Traitement du fichier {b}[complete]{/b} sur {b}[total]{/b}."
# game/distribute.rpy:915
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
new "Tous les paquets ont été contruits.\n\nDu fait de la présence des systèmes de permissions, il n'est pas possible de reconstruire les paquets construits sur GNU-Linux ou Mac OS sur Windows."
# game/distribute.rpy:358
old "No packages are selected, so there's nothing to do."
new "Aucun paquet sélectionné, il n'y a donc rien à faire."
@@ -0,0 +1,41 @@
translate french strings:
# game/distribute_gui.rpy:139
old "Build Distributions: [project.current.name!q]"
new "Construction des packets: [project.current.name!q]"
# game/distribute_gui.rpy:154
old "Directory Name:"
new "Nom du répertoire:"
# game/distribute_gui.rpy:158
old "Executable Name:"
new "Nom de l'exécutable:"
# game/distribute_gui.rpy:175
old "Edit options.rpy"
new "Éditer options.rpy"
# game/distribute_gui.rpy:176
old "Refresh"
new "Rafraichir"
# game/distribute_gui.rpy:193
old "Build Packages:"
new "Construire les packets:"
# game/distribute_gui.rpy:208
old "Build Updates"
new "Construire les mises à jour"
# game/distribute_gui.rpy:212
old "Build"
new "Construire"
# game/distribute_gui.rpy:219
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
new "Des erreurs ont été détectées lors de l'utilisation du projet. Assurez-vous qu'il n'y ait plus d'erreur avant de construire les packets."
# game/distribute_gui.rpy:236
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
new "Votre projet ne contient pas d'information pour la construction. Voulez-vous ajouter ces informations à la fin de options.rpy ?"
+57
View File
@@ -0,0 +1,57 @@
translate french strings:
# game/editor.rpy:120
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
new "{b}Recommendé.{/b} Un éditeur en version bêta avec une interface simple et des fonctionnalités d'assistance au développement. Editra manque pour le moment du support pour les textes en chinois, japonais et coréen."
# game/editor.rpy:121
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "{b}Recommendé.{/b} Un éditeur en version bêta avec une interface simple et des fonctionnalités d'assistance au développement. Editra manque pour le moment du support pour les textes en chinois, japonais et coréen. Sur GNU-Linux, Editra nécessite wxPython."
# game/editor.rpy:137
old "The may have occured because wxPython is not installed on this system."
new "Cela est sans doute arrivé car wxPython n'est pas installé sur ce système."
# game/editor.rpy:144
old "Up to 22 MB download required."
new "Jusqu'à 22 MB de téléchargement requis."
# game/editor.rpy:157
old "1.8 MB download required."
new "1.8 MB de réléchargement requis."
# game/editor.rpy:158
old "This may have occured because Java is not installed on this system."
new "Cela est sans doute arrivé car Java n'est pas installé sur ce système."
# game/editor.rpy:327
old "An exception occured while launching the text editor:\n[exception!q]"
new "Une exception a été levée lors du lancement de l'édieteur de texte :\n[exception!q]"
# game/editor.rpy:378
old "Select Editor"
new "Sélectionnez un éditeur"
# game/editor.rpy:393
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
new "Un éditeur de texte est un logiciel que vous utilisez pour éditer les fichiers de script Ren'Py. Vous pouvez choisir l'édteur que Ren'Py utilise. Si ce n'est pas déjà le cas, l'éditeur sera automatiquement téléchargé et installé."
# game/editor.rpy:415
old "Cancel"
new "Annuler"
# game/editor.rpy:137
old "This may have occured because wxPython is not installed on this system."
new "Cela est sans doute dû au fait que wxPython n'est pas installé sur votre système."
# game/editor.rpy:155
old "A mature editor that requires Java."
new "Un éditeur éprouvé nécessitant Java."
# game/editor.rpy:164
old "Invokes the editor your operating system has associated with .rpy files."
new "Lance l'éditeur associé par votre systèmes aux fichiers .rpy."
# game/editor.rpy:180
old "Prevents Ren'Py from opening a text editor."
new "Empêche Ren'Py d'ouvrir un éditeur de texte."
+81
View File
@@ -0,0 +1,81 @@
translate french strings:
# game/front_page.rpy:79
old "+ Create New Project"
new "+ Créer un nouveau projet"
# game/front_page.rpy:111
old "Tutorial"
new "Tutoriel"
# game/front_page.rpy:112
old "The Question"
new "The Question"
# game/front_page.rpy:128
old "Active Project"
new "Projet actif"
# game/front_page.rpy:136
old "Open Directory"
new "Ouvrir le répertoire"
# game/front_page.rpy:141
old "game"
new "game"
# game/front_page.rpy:142
old "base"
new "base"
# game/front_page.rpy:148
old "Edit File"
new "Éditer le fichier"
# game/front_page.rpy:156
old "All script files"
new "Tous les fichiers de script"
# game/front_page.rpy:165
old "Navigate Script"
new "Naviguer dans le script"
# game/front_page.rpy:176
old "Check Script (Lint)"
new "Vérifier le script (Lint)"
# game/front_page.rpy:177
old "Change Theme"
new "Changer de thème"
# game/front_page.rpy:178
old "Delete Persistent"
new "Supprimer persistant"
# game/front_page.rpy:186
old "Build Distributions"
new "Construire les packets"
# game/front_page.rpy:188
old "Generate Translations"
new "Générer fichiers de traduction"
# game/front_page.rpy:204
old "Checking script for potential problems..."
new "Vérifier le script vis à vis des problèmes potentiels..."
# game/front_page.rpy:219
old "Deleting persistent data..."
new "Supprimer les données persistantes..."
# game/front_page.rpy:204
old "Android"
new "Android"
# game/front_page.rpy:206
old "Extract Dialogue"
new "Extraire dialogue"
# game/front_page.rpy:126
old "[p.name!q] (template)"
new "[p.name!q] (gabarit)"
+85
View File
@@ -0,0 +1,85 @@
translate french strings:
# game/interface.rpy:89
old "Documentation"
new "Documentation"
# game/interface.rpy:90
old "Ren'Py Website"
new "Site Web de Ren'Py"
# game/interface.rpy:91
old "Ren'Py Games List"
new "Liste des jeux Ren'Py"
# game/interface.rpy:92
old "About"
new "À propos"
# game/interface.rpy:99
old "update"
new "mise à jour"
# game/interface.rpy:101
old "preferences"
new "préférences"
# game/interface.rpy:102
old "quit"
new "quitter"
# game/interface.rpy:149
old "Yes"
new "Oui"
# game/interface.rpy:151
old "No"
new "Non"
# game/interface.rpy:181
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
new "Les caractères non-ASCII ne sont pas autorisés pour les noms de fichiers et répertoires."
# game/interface.rpy:183
old "[title]"
new "[title]"
# game/interface.rpy:248
old "ERROR"
new "ERREUR"
# game/interface.rpy:280
old "While [what!q], an error occured:"
new "Pendant que [what!q], une erreur est arrivée:"
# game/interface.rpy:281
old "[exception!q]"
new "[exception!q]"
# game/interface.rpy:298
old "Text input may not contain the {{ or [[ characters."
new "Le texte ne devrait pas contenir les caractères {{ ou [[."
# game/interface.rpy:303
old "File and directory names may not contain / or \\."
new "Les noms de fichiers et répertoires ne devrait pas contenir / ou \\."
# game/interface.rpy:309
old "File and directory names must consist of ASCII characters."
new "Les noms de fichiers et de répertoires doivent contenir uniquement des caractères ASCII."
# game/interface.rpy:330
old "INFORMATION"
new "INFORMATION"
# game/interface.rpy:373
old "PROCESSING"
new "TRAITEMENT"
# game/interface.rpy:390
old "QUESTION"
new "QUESTION"
# game/interface.rpy:451
old "CHOICE"
new "CHOIX"
+73
View File
@@ -0,0 +1,73 @@
translate french strings:
# game/navigation.rpy:150
old "Navigate: [project.current.name]"
new "Navigation: [project.current.name]"
# game/navigation.rpy:159
old "Order: "
new "Ordre:"
# game/navigation.rpy:160
old "alphabetical"
new "alphabétique"
# game/navigation.rpy:162
old "by-file"
new "par fichier"
# game/navigation.rpy:164
old "natural"
new "naturel"
# game/navigation.rpy:168
old "refresh"
new "rafraichir"
# game/navigation.rpy:176
old "Category:"
new "Catégorie:"
# game/navigation.rpy:178
old "files"
new "fichiers"
# game/navigation.rpy:179
old "labels"
new "labels"
# game/navigation.rpy:180
old "defines"
new "définitions"
# game/navigation.rpy:181
old "transforms"
new "transformations"
# game/navigation.rpy:182
old "screens"
new "écrans"
# game/navigation.rpy:183
old "callables"
new "appelables"
# game/navigation.rpy:184
old "TODOs"
new "TODOs"
# game/navigation.rpy:223
old "+ Add script file"
new "+ Ajouter un fichier de script"
# game/navigation.rpy:231
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
new "Aucun commentaire «TODO» trouvé.\n\nPour un créer un, écrivez \"# TODO\" dans le script."
# game/navigation.rpy:238
old "The list of names is empty."
new "La liste des noms est vide."
# game/navigation.rpy:243
old "Launch Project"
new "Lancer le projet"
+33
View File
@@ -0,0 +1,33 @@
translate french strings:
# game/new_project.rpy:22
old "Choose Project Template"
new "Choisissez un patron de projet"
# game/new_project.rpy:40
old "Please select a template to use for your new project. Ren'Py ships with a default template that creates an English-language game with standard screens."
new "Merci de sélectioner un patron à utiliser pour votre nouveau projet. Ren'Py est livré avec un patron par défaut qui créé un jeu en anglais avec des écrans standards."
# game/new_project.rpy:55
old "PROJECT NAME"
new "NOM DU PROJET"
# game/new_project.rpy:56
old "Please enter the name of your project:"
new "Entrez le nom de votre projet:"
# game/new_project.rpy:62
old "The project name may not be empty."
new "Le nom du projet ne doit pas être vide."
# game/new_project.rpy:67
old "[project_name!q] already exists. Please choose a different project name."
new "Le projet [project_name!q] éxiste déjà. Choisissez un nom de projet différend."
# game/new_project.rpy:70
old "[project_dir!q] already exists. Please choose a different project name."
new "Le projet [project_name!q] éxiste déjà. Choisissez un nom de projet différend."
# game/new_project.rpy:40
old "Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'."
new "Sélectionnez un gabarit pour votre nouveau projet. Le gabarit définit la police par défaut, ainsi que la langue de l'interface. Si votre langue n'est pas supportée, sélectionnez 'english'."
+69
View File
@@ -0,0 +1,69 @@
translate french strings:
# game/preferences.rpy:40
old "Launcher Preferences"
new "Préférence du lanceur"
# game/preferences.rpy:61
old "Projects Directory:"
new "Répertoire des projets:"
# game/preferences.rpy:68
old "[persistent.projects_directory!q]"
new "[persistent.projects_directory!q]"
# game/preferences.rpy:70
old "Not Set"
new "Non précisé"
# game/preferences.rpy:84
old "Text Editor:"
new "Éditeur:"
# game/preferences.rpy:106
old "Update Channel:"
new "Version"
# game/preferences.rpy:126
old "Navigation Options:"
new "Options de navigation:"
# game/preferences.rpy:130
old "Include private names"
new "Inclure les noms privés"
# game/preferences.rpy:131
old "Include library names"
new "Inclure les noms des bibliothèques"
# game/preferences.rpy:141
old "Launcher Options:"
new "Options du lanceur:"
# game/preferences.rpy:145
old "Hardware rendering"
new "Rendu matériel"
# game/preferences.rpy:148
old "Console output"
new "Sortie console"
# game/preferences.rpy:165
old "Actions:"
new "Actions:"
# game/preferences.rpy:169
old "Open launcher project"
new "Ouvrir le projet lanceur"
# game/preferences.rpy:183
old "Language:"
new "Langue:"
# game/preferences.rpy:193
old "Back"
new "Retour"
# game/preferences.rpy:146
old "Show templates"
new "Montrer les gabarits"
+25
View File
@@ -0,0 +1,25 @@
translate french strings:
# game/project.rpy:196
old "Ren'Py is scanning the project..."
new "Ren'Py est en train de scanner le projet..."
# game/project.rpy:485
old "PROJECTS DIRECTORY"
new "RÉPERTOIRE DES PROJETS"
# game/project.rpy:485
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
new "Choisissez le répertoire des projets avec le sélecteur de fichier.\n{b}Il se peut que le sélecteur de fichier s'ouvre derière cette fenêtre.{/b}"
# game/project.rpy:485
old "This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."
new "Ce lanceur va scanner ce répertoire pour trouver des projets éxistants, créra les nouveaux projets dans ce répertoire, et placera les projets construits dans ce répertoire."
# game/project.rpy:525
old "Ren'Py was unable to run python with tkinter to choose the projects directory."
new "Ren'Py n'a pas pu lancer python avec le module tkinker pout choisir le répertoire des projets."
# game/project.rpy:529
old "Ren'Py has set the projects directory to:"
new "Le répertoire des projets vient d'être établit:"
+6
View File
@@ -0,0 +1,6 @@
translate french python:
style.l_default.size = 16
style.l_button_text.selected_bold = True
style.l_navigation_text.bold = False
make_style_backup()
+33
View File
@@ -0,0 +1,33 @@
translate french strings:
# game/translations.rpy:10
old "Create or Update Translations"
new "Créer ou mettre à jour les traductions"
# game/translations.rpy:10
old "Please enter the name of the language for which you want to create or update translations."
new "Entrez le nom de la langue pour laquelle vous voullez créer ou mettre à jour les traductions."
# game/translations.rpy:15
old "The language name can not be the empty string."
new "La langue ne peut pas être une chaîne vide."
# game/translations.rpy:26
old "Ren'Py is generating translations...."
new "Ren'Py est en train de générer les traductions..."
# game/translations.rpy:30
old "Ren'Py has finished generating [language] translations."
new "Ren'Py a fini de générer les fichiers de traductions pour [language]."
# game/translations.rpy:44
old "What format would you like for the extracted dialogue?"
new "Dans quel format souhaitez vous que le dialogue soit extrait ?"
# game/translations.rpy:56
old "Ren'Py is extracting dialogue...."
new "Ren'Py est en train d'extraire le dialogue...."
# game/translations.rpy:60
old "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[format] in the base directory."
new "Ren'Py a fini d'extraire le dialogue. Le dialogue extrait est disponible dans dialogue.[format] dans le répertoire de base."
+85
View File
@@ -0,0 +1,85 @@
translate french strings:
# game/updater.rpy:54
old "Select Update Channel"
new "Choisissez une version."
# game/updater.rpy:65
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
new "Choisissez une version."
# game/updater.rpy:70
old "Release"
new "version courrante."
# game/updater.rpy:76
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
new "{b}Recommendé.{/b} La version de Ren'Py qui devrait être utilisée pour créer de nouveaux jeux."
# game/updater.rpy:81
old "Prerelease"
new "Version de test"
# game/updater.rpy:87
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 Ren'Py qui peut être utilisée pour faire des tests et profiter de toutes nouvelles fonctionnalitées, mais par pour créer de nouveaux jeux."
# game/updater.rpy:93
old "Experimental"
new "Expérimental"
# game/updater.rpy:99
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
new "Version expérimentale de Ren'Py. Vous ne devriez pas choisir cette version, à moins qu'un développeur de Ren'Py ne vous y invite."
# game/updater.rpy:119
old "An error has occured:"
new "Une erreur est apparue."
# game/updater.rpy:121
old "Checking for updates."
new "Vérifier les mises à jour."
# game/updater.rpy:123
old "Ren'Py is up to date."
new "Ren'Py est à jour."
# game/updater.rpy:125
old "[u.version] is now available. Do you want to install it?"
new "La version [u.version] est disponible. Voulez-vous l'installer ?"
# game/updater.rpy:127
old "Preparing to download the update."
new "Préparation du téléchargement de la mise à jour."
# game/updater.rpy:129
old "Downloading the update."
new "Téléchargement de la mise à jour."
# game/updater.rpy:131
old "Unpacking the update."
new "Dépaquetage de la mise à jour."
# game/updater.rpy:133
old "Finishing up."
new "Dernier réglages."
# game/updater.rpy:135
old "The update has been installed. Ren'Py will restart."
new "La mise à jour a bien été effectuée. Ren'Py va redémarrer."
# game/updater.rpy:137
old "The update has been installed."
new "La mise à jour a bien été effectuée."
# game/updater.rpy:139
old "The update was cancelled."
new "La mise à jour a été annullée."
# game/updater.rpy:156
old "Ren'Py Update"
new "Mise à jour de Ren'Py"
# game/updater.rpy:162
old "Proceed"
new "Continuer"
+13
View File
@@ -0,0 +1,13 @@
translate german strings:
# game/about.rpy:21
old "[version!q]"
new "[version!q]"
# game/about.rpy:25
old "View license"
new "Lizenz ansehen"
# game/about.rpy:27
old "Back"
new "Zurück"
+21
View File
@@ -0,0 +1,21 @@
translate german strings:
# game/add_file.rpy:7
old "FILENAME"
new "DATEINAME"
# game/add_file.rpy:7
old "Enter the name of the script file to create."
new "Geben Sie den Namen der Script-Datei ein, um sie zu erstellen."
# game/add_file.rpy:10
old "The filename must have the .rpy extension."
new "Der Dateiname muss die Endung .rpy haben."
# game/add_file.rpy:18
old "The file already exists."
new "Die Datei existiert bereits."
# game/add_file.rpy:21
old "# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n"
new "# RenPy lädt automatisch alle Skript-Dateien, die auf .rpy enden. Um diese\n# Datei zu verwenden, setzen sie ein Label und springen sie aus einer anderen Datei dorthin.\n"
+160
View File
@@ -0,0 +1,160 @@
translate german strings:
# game/android.rpy:12
old "To build Android packages, please download RAPT (from {a=http://www.renpy.org/dl/android}here{/a}), unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT ({a=http://www.renpy.org/dl/android}hier{/a}) herunter, entpacken Sie es und platzieren Sie es im RenPy Verzeichnis. Starten Sie dann bitte RenPy neu."
# game/android.rpy:13
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 wurde installiert, aber Sie müssen das Android-SDK installieren, bevor Sie Android-Dateien erstellen können. Wählen Sie „SDK Installieren“, um dies zu tun."
# game/android.rpy:14
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
new "RAPT wurde installiert, aber ein Key wurde nicht eingestellt. Bitte erstellen Sie einen neuen Key oder stellen Sie android.keystore wieder her."
# game/android.rpy:15
old "The current project has not been configured. Use \"Configure\" to configure it before building."
new "Das aktuelle Projekt wurde nicht eingestellt. Verwenden Sie „Einstellen“, um es vor der Erstellung anzupassen."
# game/android.rpy:16
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
new "Wählen Sie „Erstellen“, um das aktuelle Projekt zu erstellen oder schließen Sie ein Android-Gerät an und wählen Sie „Erstellen und installieren“, um es zu erstellen und auf dem Gerät zu installieren."
# game/android.rpy:18
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Emuliert ein Android-Handy.\n\nDie Berührungseingabe wird mithilfe der Maus emuliert, aber nur, wenn die Schaltfläche gedrückt wird. „Escape“ fungiert als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
# game/android.rpy:19
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Emuliert ein Android-Tablet.\n\nDie Berührungseingabe wird mithilfe der Maus emuliert, aber nur, wenn die Schaltfläche gedrückt wird. „Escape“ fungiert als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
# game/android.rpy:20
old "Attempts to emulate an OUYA 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 "Emuliert eine OUYA-Konsole.\n\nDie Contollereingabe wird mithilfe der Pfeiltasten emuliert, „Enter“ fungiert als Auswahlschaltfläche, „Escape“ als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
# game/android.rpy:22
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
new "Lädt das Android SDK herunter und installiert es. Generiert optional die Keys, die für die Authentifizierung der Datei benötigt werden."
# game/android.rpy:23
old "Configures the package name, version, and other information about this project."
new "Stellt Dateinamen, Version und andere Informationen über dieses Projekt ein."
# game/android.rpy:24
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
new "Öffnet die Datei mit den Google-Play-Keys im Editor.\n\nDies ist nur nötig, wenn die Anwendung ein Expansion-APK verwendet. Lesen Sie die Dokumentation für weitere Details."
# game/android.rpy:25
old "Builds the Android package."
new "Erstellt die Android-Datei."
# game/android.rpy:26
old "Builds the Android package, and installs it on an Android device connected to your computer."
new "Erstellt die Android-Datei und installiert es auf ein Android-Gerät, das mit Ihrem Computer verbunden ist."
# game/android.rpy:142
old "{a=%s}%s{/a}"
new "{a=%s}%s{/a}"
# game/android.rpy:361
old "Android: [project.current.name!q]"
new "Android: [project.current.name!q]"
# game/android.rpy:381
old "Emulation:"
new "Emulation:"
# game/android.rpy:389
old "Phone"
new "Handy"
# game/android.rpy:393
old "Tablet"
new "Tablet"
# game/android.rpy:397
old "Television / OUYA"
new "Fernseher / OUYA"
# game/android.rpy:409
old "Build:"
new "Erstellen:"
# game/android.rpy:417
old "Install SDK & Create Keys"
new "SDK installieren und Keys erstellen"
# game/android.rpy:421
old "Configure"
new "Einstellen"
# game/android.rpy:425
old "Build Package"
new "Datei erstellen"
# game/android.rpy:429
old "Build & Install"
new "Erstellen und installieren"
translate german strings:
# game/android.rpy:30
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT herunter, entpacken Sie es und platzieren Sie es im RenPy Verzeichnis. Starten Sie dann bitte RenPy neu."
# game/android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Ein 32-bit Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den RenPy-Launcher neu."
# game/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 "Emuliert eine Fernseher-Android-Konsole wie die OUYA oder Fire TV.\n\nDie Contollereingabe wird mithilfe der Pfeiltasten emuliert, „Enter“ fungiert als Auswahlschaltfläche, „Escape“ als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
# game/android.rpy:47
old "Connects to an Android device running ADB in TCP/IP mode."
new "Verbindet mit einem Android-Gerät, das auf ADB im TCP/IP-Modus läuft."
# game/android.rpy:48
old "Disconnects from an Android device running ADB in TCP/IP mode."
new "Trennt Verbindung von einem Android-Gerät, das auf ADB im TCP/IP-Modus läuft."
# game/android.rpy:516
old "Other:"
new "Anderes:"
# game/android.rpy:524
old "Remote ADB Connect"
new "Remote-ADB verbinden"
# game/android.rpy:528
old "Remote ADB Disconnect"
new "Remote-ADB trennen"
# game/android.rpy:561
old "Before packaging Android apps, you'll need to download RAPT, the Ren'Py Android Packaging Tool. Would you like to download RAPT now?"
new "Bevor Sie Android-Apps erstellen können, müssen Sie RAPT herunterladen, das RenPy-Android-Packaging-Tool. Möchten Sie RAPT jetzt herunterladen?"
# game/android.rpy:608
old "Remote ADB Address"
new "Remote-ADB-Adresse"
# game/android.rpy:609
old "Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."
new "Bitte geben Sie die IP-Adresse und die Port-Nummer zum Verbinden ein, Beispiel: „192.168.1.143:5555“. Schauen Sie im Handbuch ihres Geräts nach, um festzustellen, ob es Remote-ADB unterstützt, und wenn ja, schauen Sie die Adresse und den Port nach."
# game/android.rpy:619
old "Invalid remote ADB address"
new "Ungültige Remote-ADB-Adresse"
# game/android.rpy:619
old "The address must contain one exactly one ':'."
new "Die Adresse muss exakt ein „:“ beinhalten."
# game/android.rpy:623
old "The host may not contain whitespace."
new "Der Host darf keine Leerzeichen enthalten."
# game/android.rpy:629
old "The port must be a number."
new "Der Port muss eine Nummer sein."
+41
View File
@@ -0,0 +1,41 @@
translate german strings:
# game/choose_theme.rpy:274
old "Could not change the theme. Perhaps options.rpy was changed too much."
new "Konnte Theme nicht ändern. Vielleicht wurde options.rpy zu stark verändert."
# game/choose_theme.rpy:332
old "Display"
new "Anzeige"
# game/choose_theme.rpy:333
old "Window"
new "Fenster"
# game/choose_theme.rpy:334
old "Fullscreen"
new "Vollbild"
# game/choose_theme.rpy:335
old "Planetarium"
new "Planetarium"
# game/choose_theme.rpy:342
old "Sound Volume"
new "Soundlautstärke"
# game/choose_theme.rpy:376
old "Choose Theme"
new "Theme auswählen"
# game/choose_theme.rpy:389
old "Theme"
new "Theme"
# game/choose_theme.rpy:413
old "Color Scheme"
new "Farbschema"
# game/choose_theme.rpy:444
old "Continue"
new "Weiter"
+458
View File
@@ -0,0 +1,458 @@
translate german strings:
# renpy/common/00action_file.rpy:118
old "%b %d, %H:%M"
new "%d. %b, %H:%M"
# renpy/common/00action_file.rpy:587
old "Quick save complete."
new "Schnellspeicherung erfolgreich."
translate german strings:
# renpy/common/00gallery.rpy:521
old "Image [index] of [count] locked."
new "Grafik [index] von [count] gesperrt."
# renpy/common/00gallery.rpy:539
old "prev"
new "vor"
# renpy/common/00gallery.rpy:540
old "next"
new "weiter"
# renpy/common/00gallery.rpy:541
old "slideshow"
new "slideshow"
# renpy/common/00gallery.rpy:542
old "return"
new "zurück"
translate german strings:
# renpy/common/00gltest.rpy:50
old "Graphics Acceleration"
new "Grafikbeschleuniger"
# renpy/common/00gltest.rpy:54
old "Automatically Choose"
new "Automatisch auswählen"
# renpy/common/00gltest.rpy:59
old "Force Angle/DirectX Renderer"
new "Angle/DirectX-Darstellung erzwingen"
# renpy/common/00gltest.rpy:63
old "Force OpenGL Renderer"
new "OpenGL-Darstellung erzwingen"
# renpy/common/00gltest.rpy:67
old "Force Software Renderer"
new "Software-Darstellung erzwingen"
# renpy/common/00gltest.rpy:73
old "Changes will take effect the next time this program is run."
new "Die Änderungen werden beim nächsten Neustart des Programms übernommen."
# renpy/common/00gltest.rpy:82
old "Return"
new "Zurück"
# renpy/common/00gltest.rpy:112
old "Performance Warning"
new "Performance Warnung"
# renpy/common/00gltest.rpy:117
old "This computer is using software rendering."
new "Dieser Computer verwendet Software-Darstellung."
# renpy/common/00gltest.rpy:119
old "This computer is not using shaders."
new "Dieser Computer verwendet keine Shader."
# renpy/common/00gltest.rpy:121
old "This computer is displaying graphics slowly."
new "Dieser Computer zeigt Grafiken langsam an."
# renpy/common/00gltest.rpy:123
old "This computer has a problem displaying graphics: [problem]."
new "Dieser Computer hat ein Problem, Grafiken anzuzeigen: [problem]."
# renpy/common/00gltest.rpy:128
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
new "Die Grafiktreiber könnten nicht mehr aktuell sein oder nicht korrekt funktionieren. Dies kann zu langsamer oder inkorrekter Grafikanzeige führen. Das Aktualisieren von DirectX könnte dieses Problem beheben."
# renpy/common/00gltest.rpy:130
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "Die Grafiktreiber könnten nicht mehr aktuell sein oder nicht korrekt funktionieren. Dies kann zu langsamer oder inkorrekter Grafikanzeige führen."
# renpy/common/00gltest.rpy:135
old "Update DirectX"
new "DirectX aktualisieren"
# renpy/common/00gltest.rpy:141
old "Continue, Show this warning again"
new "Fortsetzen, diese Warnung wieder anzeigen"
# renpy/common/00gltest.rpy:145
old "Continue, Don't show warning again"
new "Fortsetzen, diese Warnung nicht mehr anzeigen"
# renpy/common/00gltest.rpy:171
old "Updating DirectX."
new "DirectX aktualisieren."
# renpy/common/00gltest.rpy:175
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
new "DirectX Websetup wurde gestartet. Es könnte minimiert in der Taskleiste starten. Bitte folgen Sie den Anweisungen, um DirectX zu installieren."
# renpy/common/00gltest.rpy:179
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
new "{b}Anmerkung:{/b} Microsofts DirectX Websetup-Programm installiert automatisch die Bing-Toolbar. Wenn Sie diese Toolbar nicht möchten, entfernen Sie das Häkchen bei der entsprechenden Schaltfläche."
# renpy/common/00gltest.rpy:183
old "When setup finishes, please click below to restart this program."
new "Wenn die Installation abgeschlossen ist, klicken Sie bitte unten, um dieses Programm neuzustarten."
# renpy/common/00gltest.rpy:185
old "Restart"
new "Neustart"
translate german strings:
# renpy/common/00keymap.rpy:167
old "Saved screenshot as %s."
new "Screenshot unter %s gespeichert."
translate german strings:
# renpy/common/00layout.rpy:421
old "Are you sure?"
new "Sind Sie sicher?"
# renpy/common/00layout.rpy:422
old "Are you sure you want to delete this save?"
new "Sind Sie sicher, dass Sie diese Datei löschen möchten?"
# renpy/common/00layout.rpy:423
old "Are you sure you want to overwrite your save?"
new "Sind Sie sicher, dass Sie diese Datei überschreiben möchten?"
# renpy/common/00layout.rpy:424
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Beim Laden geht ungespeicherter Fortschritt verloren.\nSind Sie sicher, dass Sie das tun möchten?"
# renpy/common/00layout.rpy:425
old "Are you sure you want to quit?"
new "Sind Sie sicher, dass Sie beenden möchten?"
# renpy/common/00layout.rpy:426
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Sind Sie sicher, dass Sie zurück zum Hauptmenü möchten?\nUngespeicherter Fortschritt geht dabei verloren."
# renpy/common/00layout.rpy:427
old "Are you sure you want to begin skipping?"
new "Sind Sie sicher, dass Sie vorspulen möchten?"
# renpy/common/00layout.rpy:428
old "Are you sure you want to skip to the next choice?"
new "Sind Sie sicher, dass Sie zur nächsten Auswahl vorspulen möchten?"
# renpy/common/00layout.rpy:429
old "Are you sure you want to skip to unseen dialogue or the next choice?"
new "Sind Sie sicher, dass Sie zum nächsten ungelesenen Dialog oder zur nächsten Auswahl vorspulen möchten?"
translate german strings:
# renpy/common/00library.rpy:77
old "Skip Mode"
new "Vorspulen"
# renpy/common/00library.rpy:80
old "Fast Skip Mode"
new "Schnell vorspulen"
translate german strings:
# renpy/common/00updater.rpy:1255
old "Updater"
new "Aktualisieren"
# renpy/common/00updater.rpy:1264
old "This program is up to date."
new "Dieses Programm ist aktuell."
# renpy/common/00updater.rpy:1266
old "[u.version] is available. Do you want to install it?"
new "[u.version] ist verfügbar. Möchten Sie sie installieren?"
# renpy/common/00updater.rpy:1268
old "Preparing to download the updates."
new "Vorbereiten, um die Aktualisierungen herunterzuladen."
# renpy/common/00updater.rpy:1270
old "Downloading the updates."
new "Aktualisierungen werden heruntergeladen."
# renpy/common/00updater.rpy:1272
old "Unpacking the updates."
new "Aktualisierungen werden entpackt."
# renpy/common/00updater.rpy:1276
old "The updates have been installed. The program will restart."
new "Die Aktualisierungen wurden installiert. Das Programm wird nun neustarten."
# renpy/common/00updater.rpy:1278
old "The updates have been installed."
new "Die Aktualisierungen wurden installiert."
# renpy/common/00updater.rpy:1280
old "The updates were cancelled."
new "Die Aktualisierungen wurden abgebrochen."
translate german strings:
# renpy/common/_compat/gamemenu.rpym:180
old "Empty Slot."
new "Leerer Speicherplatz."
# renpy/common/_compat/gamemenu.rpym:337
old "Previous"
new "Vorige"
# renpy/common/_compat/gamemenu.rpym:344
old "Next"
new "Nächste"
translate german strings:
# renpy/common/_compat/preferences.rpym:411
old "Joystick Mapping"
new "Joystickbelegung"
translate german strings:
# renpy/common/_errorhandling.rpym:434
old "Rollback"
new "Zurückscrollen"
# renpy/common/_errorhandling.rpym:436
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Versucht zu einem früheren Zeitpunkt zu gehen und ermöglicht es zu speichern oder eine andere Auswahl zu treffen."
# renpy/common/_errorhandling.rpym:441
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignoriert den Fehler und ermöglicht es, fortzufahren. Dies führt oft zu weiteren Fehlern."
# renpy/common/_errorhandling.rpym:446
old "Reloads the game from disk, saving and restoring game state if possible."
new "Startet das Spiel neu und stellt den Spielstand wieder her, wenn möglich."
# renpy/common/_errorhandling.rpym:450
old "Opens the traceback.txt file in a text editor."
new "Öffnet die traceback.txt Datei in einem Texteditor."
# renpy/common/_errorhandling.rpym:483
old "Parsing the script failed."
new "Syntaxanalyse gescheitert."
# renpy/common/_errorhandling.rpym:510
old "Open Parse Errors"
new "Fehleranalyse öffnen"
# renpy/common/_errorhandling.rpym:512
old "Opens the errors.txt file in a text editor."
new "Öffnet die errors.txt Datei in einem Texteditor."
translate german strings:
# renpy/common/_layout/classic_load_save.rpym:152
old "a"
new "a"
# renpy/common/_layout/classic_load_save.rpym:161
old "q"
new "s"
translate german strings:
# renpy/common/00console.rpy:179
old "%(version)s console, originally by Shiz, C, and delta.\n"
new "%(version)s Konsole, ursprünglich von Shiz, C und delta.\n"
# renpy/common/00console.rpy:180
old "Press <esc> to exit console. Type help for help.\n"
new "Drücken Sie <esc>, um die Konsole zu schließen. Geben Sie „help“ ein, um die Hilfe anzuzeigen.\n"
# renpy/common/00console.rpy:184
old "Ren'Py script enabled."
new "RenPy Skript aktiviert."
# renpy/common/00console.rpy:186
old "Ren'Py script disabled."
new "RenPy Skript deaktiviert."
# renpy/common/00console.rpy:392
old "help: show this help"
new "help: zeigt diese Hilfe an"
# renpy/common/00console.rpy:397
old "commands:\n"
new "Befehle:\n"
# renpy/common/00console.rpy:407
old " <renpy script statement>: run the statement\n"
new " <renpy script statement>: startet die Anweisung\n"
# renpy/common/00console.rpy:409
old " <python expression or statement>: run the expression or statement"
new " <python expression or statement>: startet den Ausdruck oder die Anweisung"
# renpy/common/00console.rpy:417
old "clear: clear the console history"
new "clear: leert das Konsolenprotokoll"
# renpy/common/00console.rpy:421
old "exit: exit the console"
new "exit: schließt die Konsole"
# renpy/common/00console.rpy:429
old "load <slot>: loads the game from slot"
new "load <slot>: lädt das Spiel aus dem Speicherplatz"
# renpy/common/00console.rpy:442
old "save <slot>: saves the game in slot"
new "save <slot>: speichert das Spiel im Speicherplatz"
# renpy/common/00console.rpy:453
old "reload: reloads the game, refreshing the scripts"
new "reload: startet das Spiel neu und erneuert die Skripte"
# renpy/common/00console.rpy:461
old "watch <expression>: watch a python expression"
new "watch <expression>: beobachtet einen Python-Ausdruck"
# renpy/common/00console.rpy:470
old "unwatch <expression>: stop watching an expression"
new "unwatch <expression>: beendet das Beobachten eines Ausdrucks"
# renpy/common/00console.rpy:478
old "unwatchall: stop watching all expressions"
new "unwatchall: beendet das Beobachten aller Ausdrücke"
# renpy/common/00console.rpy:484
old "jump <label>: jumps to label"
new "jump <label>: springt zum Label"
translate german strings:
# renpy/common/00keymap.rpy:332
old "Autoreload"
new "Autoneustart"
translate german strings:
# renpy/common/_developer/developer.rpym:65
old "Developer Menu"
new "Entwicklermenü"
# renpy/common/_developer/developer.rpym:67
old "Reload Game (Shift+R)"
new "Spiel neustarten (Shift + R)"
# renpy/common/_developer/developer.rpym:69
old "Console (Shift+O)"
new "Konsole (Shift + O)"
# renpy/common/_developer/developer.rpym:71
old "Variable Viewer"
new "Variablen anzeigen"
# renpy/common/_developer/developer.rpym:73
old "Theme Test"
new "Themetest"
# renpy/common/_developer/developer.rpym:75
old "Image Location Picker"
new "Grafikposition auswählen"
# renpy/common/_developer/developer.rpym:77
old "Filename List"
new "Liste der Dateinamen"
# renpy/common/_developer/developer.rpym:81
old "Show Image Load Log"
new "Grafiklog anzeigen"
# renpy/common/_developer/developer.rpym:84
old "Hide Image Load Log"
new "Grafiklog verbergen"
# renpy/common/_developer/developer.rpym:149
old "No variables have changed since the game started."
new "Keine Variablen wurden geändert, seit das Spiel gestartet wurde."
# renpy/common/_developer/developer.rpym:152
old "Return to the developer menu"
new "Zurück zum Entwicklermenü"
# renpy/common/_developer/developer.rpym:272
old "{b}Missing Images{/b}"
new "{b}Fehlende Grafiken{/b}"
# renpy/common/_developer/developer.rpym:424
old "Rectangle: %r"
new "Rechteck: %r"
# renpy/common/_developer/developer.rpym:429
old "Mouse position: %r"
new "Mausposition: %r"
# renpy/common/_developer/developer.rpym:431
old "Right-click or escape to quit."
new "Rechtsklick oder Escape, um zu beenden."
# renpy/common/_developer/developer.rpym:482
old "Done"
new "Fertig"
translate german strings:
# renpy/common/_developer/inspector.rpym:43
old "Displayable Inspector"
new "Darstellungen prüfen"
# renpy/common/_developer/inspector.rpym:49
old "Nothing to inspect."
new "Nichts zum Prüfen verfügbar"
# renpy/common/_developer/inspector.rpym:58
old "Size"
new "Größe"
# renpy/common/_developer/inspector.rpym:63
old "Style"
new "Stil"
# renpy/common/_developer/inspector.rpym:123
old "Inspecting Styles of [displayable_name!q]"
new "Prüft Stile von [displayable_name!q]"
# renpy/common/_developer/inspector.rpym:135
old "displayable:"
new "Darstellungen:"
# renpy/common/_developer/inspector.rpym:142
old " (no properties affect the displayable)"
new " (keine Eigenschaften beeinflussen diese Darstellung)"
# renpy/common/_developer/inspector.rpym:144
old " (default properties omitted)"
new " (Standardeigenschaften entfallen)"
# renpy/common/_developer/inspector.rpym:174
old "<repr() failed>"
new "<repr() gescheitert>"
+42
View File
@@ -0,0 +1,42 @@
translate german strings:
# game/distribute.rpy:313
old "Nothing to do."
new "Nichts zu tun."
# game/distribute.rpy:317
old "Scanning project files..."
new "Projektdateien werden geprüft …"
# game/distribute.rpy:324
old "Scanning Ren'Py files..."
new "RenPy-Dateien werden geprüft …"
# game/distribute.rpy:474
old "Archiving files..."
new "Dateien werden archiviert …"
# game/distribute.rpy:722
old "Writing the [variant] [format] package."
new "Das [variant] [format] Package wird erstellt."
# game/distribute.rpy:735
old "Making the [variant] update zsync file."
new "Die [variant] Update-zsync-Datei wird erstellt."
# game/distribute.rpy:831
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "{b}[complete]{/b} von {b}[total]{/b} Dateien verarbeitet."
# game/distribute.rpy:892
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
new "Alle Packages wurden erstellt.\n\nAufgrund von Zugriffsinformationen ist das Entpacken und Neupacken der Linux und Macintosh Veröffentlichungen unter Windows nicht unterstützt."
# game/distribute.rpy:358
old "No packages are selected, so there's nothing to do."
new "Keine Packages wurden ausgewählt."
# game/distribute.rpy:335
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
new "Erstellen von Veröffentlichungen gescheiter:\n\nDie build.directory_name Variable darf keine Leerzeichen, Doppelpunkte oder Semikolons enthalten."
@@ -0,0 +1,45 @@
translate german strings:
# game/distribute_gui.rpy:139
old "Build Distributions: [project.current.name!q]"
new "Erstellt Veröffentlichung: [project.current.name!q]"
# game/distribute_gui.rpy:154
old "Directory Name:"
new "Verzeichnisname:"
# game/distribute_gui.rpy:158
old "Executable Name:"
new "Programmdateiname:"
# game/distribute_gui.rpy:167
old "Actions:"
new "Aktionen:"
# game/distribute_gui.rpy:175
old "Edit options.rpy"
new "options.rpy bearbeiten"
# game/distribute_gui.rpy:176
old "Refresh"
new "Aktualisieren"
# game/distribute_gui.rpy:193
old "Build Packages:"
new "Packages erstellen:"
# game/distribute_gui.rpy:208
old "Build Updates"
new "Aktualisierungen erstellen"
# game/distribute_gui.rpy:212
old "Build"
new "Erstellen"
# game/distribute_gui.rpy:219
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
new "Fehler wurden beim Starten des Projekts gefunden. Bitte stellen Sie sicher, dass das Projekt ohne Fehler läuft, bevor Sie Veröffentlichungen erstellen."
# game/distribute_gui.rpy:236
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
new "Ihr Projekt enthält keine Erstellinformationen. Würden Sie gerne Erstellinformationen am Ende der options.rpy-Datei einfügen?"
+56
View File
@@ -0,0 +1,56 @@
translate german strings:
# game/editor.rpy:120
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
new "{b}Empfohlen.{/b} Ein Betaeditor mit einer leichten Benutzeroberfläche und Funktionen, die bei der Entwicklung helfen, wie eine Rechtschreibprüfung. Editra fehlt derzeit die Eingabemethode, die für Chinesisch, Japanisch und Koreanisch benötigt wird."
# game/editor.rpy:121
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "{b}Empfohlen.{/b} Ein Betaeditor mit einer leichten Benutzeroberfläche und Funktionen, die bei der Entwicklung helfen, wie eine Rechtschreibprüfung. Editra fehlt derzeit die Eingabemethode, die für Chinesisch, Japanisch und Koreanisch benötigt wird. Unter Linux benötigt Editra wxPython."
# game/editor.rpy:137
old "This may have occured because wxPython is not installed on this system."
new "Dies ist vermutlich passiert, weil wxPython nicht auf Ihrem System installiert ist."
# game/editor.rpy:144
old "Up to 22 MB download required."
new "Etwa 22 MB benötigt."
# game/editor.rpy:157
old "1.8 MB download required."
new "1,8 MB benötigt."
# game/editor.rpy:158
old "This may have occured because Java is not installed on this system."
new "Dies ist vermutlich passiert, weil Java nicht auf Ihrem System installiert ist."
# game/editor.rpy:327
old "An exception occured while launching the text editor:\n[exception!q]"
new "Ein Fehler ist beim Starten des Texteditors aufgetreten:\n[exception!q]"
# game/editor.rpy:378
old "Select Editor"
new "Editor auswählen"
# game/editor.rpy:393
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
new "Ein Texeditor ist ein Programm, das verwendet wird, um RenPy Skript-Dateien zu bearbeiten. Hier können Sie den Editor auswählen, den RenPy verwenden soll. Wenn dieser noch nicht installiert ist, wird er automatisch heruntergeladen und installiert."
# game/editor.rpy:415
old "Cancel"
new "Abbrechen"
old "A mature editor that requires Java."
new "Ein fortgeschrittener Editor, der Java benötigt."
old "System Editor"
new "Systemeditor"
old "Invokes the editor your operating system has associated with .rpy files."
new "Startet den Editor, den dein Betriebssystem mit .rpy-Dateien assoziiert."
old "None"
new "Keinen"
old "Prevents Ren'Py from opening a text editor."
new "Verhindert, dass RenPy einen Texteditor öffnet."
+26
View File
@@ -0,0 +1,26 @@
translate german strings:
# game/front_page.rpy:90
old "Launch Project"
new "Projekt starten"
# game/front_page.rpy:204
old "Checking script for potential problems..."
new "Überprüft Script auf potentielle Probleme …"
# game/front_page.rpy:219
old "Deleting persistent data..."
new "Löscht Persistent-Dateien …"
# game/front_page.rpy:204
old "Android"
new "Android"
# game/front_page.rpy:206
old "Extract Dialogue"
new "Dialoge extrahieren"
# game/front_page.rpy:144
old "[p.name!q] (template)"
new "[p.name!q] (Vorlage)"
+85
View File
@@ -0,0 +1,85 @@
translate german strings:
# game/interface.rpy:89
old "Documentation"
new "Dokumentation"
# game/interface.rpy:90
old "Ren'Py Website"
new "RenPy Webseite"
# game/interface.rpy:91
old "Ren'Py Games List"
new "RenPy Spieleliste"
# game/interface.rpy:92
old "About"
new "Über"
# game/interface.rpy:99
old "update"
new "Aktualisieren"
# game/interface.rpy:101
old "preferences"
new "Einstellungen"
# game/interface.rpy:102
old "quit"
new "Beenden"
# game/interface.rpy:149
old "Yes"
new "Ja"
# game/interface.rpy:151
old "No"
new "Nein"
# game/interface.rpy:181
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
new "Aufgrund von Formateinschränkungen sind nicht-ASCII Datei- und Verzeichnisnamen nicht erlaubt."
# game/interface.rpy:183
old "[title]"
new "[title]"
# game/interface.rpy:248
old "ERROR"
new "FEHLER"
# game/interface.rpy:280
old "While [what!q], an error occured:"
new "Während [what!q] ist ein Fehler aufgetreten:"
# game/interface.rpy:281
old "[exception!q]"
new "[exception!q]"
# game/interface.rpy:298
old "Text input may not contain the {{ or [[ characters."
new "Die Texteingabe darf keine {{ oder [[ enthalten."
# game/interface.rpy:303
old "File and directory names may not contain / or \\."
new "Datei- und Verzeichnisnamen dürfen keine / oder \\ enthalten."
# game/interface.rpy:309
old "File and directory names must consist of ASCII characters."
new "Datei- und Verzeichnisnamen müssen aus ASCII-Buchstaben bestehen."
# game/interface.rpy:330
old "INFORMATION"
new "INFORMATION"
# game/interface.rpy:373
old "PROCESSING"
new "VERARBEITUNG"
# game/interface.rpy:390
old "QUESTION"
new "FRAGE"
# game/interface.rpy:451
old "CHOICE"
new "AUSWAHL"
+69
View File
@@ -0,0 +1,69 @@
translate german strings:
# game/navigation.rpy:150
old "Navigate: [project.current.name]"
new "Navigieren: [project.current.name]"
# game/navigation.rpy:159
old "Order: "
new "Reihenfolge:"
# game/navigation.rpy:160
old "alphabetical"
new "Alphabetisch"
# game/navigation.rpy:162
old "by-file"
new "Nach Datei"
# game/navigation.rpy:164
old "natural"
new "Natürlich"
# game/navigation.rpy:168
old "refresh"
new "Aktualisieren"
# game/navigation.rpy:176
old "Category:"
new "Kategorie"
# game/navigation.rpy:178
old "files"
new "Dateien"
# game/navigation.rpy:179
old "labels"
new "Labels"
# game/navigation.rpy:180
old "defines"
new "Defines"
# game/navigation.rpy:181
old "transforms"
new "Transforms"
# game/navigation.rpy:182
old "screens"
new "Bildschirme"
# game/navigation.rpy:183
old "callables"
new "Callables"
# game/navigation.rpy:184
old "TODOs"
new "TODOs"
# game/navigation.rpy:223
old "+ Add script file"
new "+ Script-Datei hinzufügen"
# game/navigation.rpy:231
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
new "Keine TODO-Kommentare gefunden.\n\nUm einen zu erstellen, bauen Sie „# TODO“ in Ihr Script ein."
# game/navigation.rpy:238
old "The list of names is empty."
new "Die Namensliste ist leer."
+38
View File
@@ -0,0 +1,38 @@
translate german strings:
# game/new_project.rpy:22
old "Choose Project Template"
new "Projektvorlage auswählen"
# game/new_project.rpy:40
old "Please select a template to use for your new project. Ren'Py ships with a default template that creates an English-language game with standard screens."
new "Bitte wählen Sie eine Vorlage für Ihr neues Projekt. RenPy hat eine Standard-Vorlage, die ein englischsprachiges Spiel mit Standardmenüs erstellt."
# game/new_project.rpy:55
old "PROJECT NAME"
new "PROJEKT NAME"
# game/new_project.rpy:56
old "Please enter the name of your project:"
new "Bitte geben Sie den Namen Ihres Projekts ein:"
# game/new_project.rpy:62
old "The project name may not be empty."
new "Der Projektname kann nicht leer sein."
# game/new_project.rpy:67
old "[project_name!q] already exists. Please choose a different project name."
new "[project_name!q] existiert bereits. Bitte wählen Sie einen anderen Projektnamen."
# game/new_project.rpy:70
old "[project_dir!q] already exists. Please choose a different project name."
new "[project_dir!q] existiert bereits. Bitte wählen Sie einen anderen Projektnamen."
# game/new_project.rpy:40
old "Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'."
new "Bitte wählen Sie eine Vorlage für Ihr neues Projekt. Die Vorlage legt die Standard-Schriftart fest und die Sprache der Benutzeroberfläche. Wenn Ihre Sprache nicht verfügbar ist, wählen Sie bitte 'english'."
# game/new_project.rpy:71
old "The projects directory could not be set. Giving up."
new "Das Projektverzeichnis konnte nicht festgelegt werden."
+57
View File
@@ -0,0 +1,57 @@
translate german strings:
# game/preferences.rpy:40
old "Launcher Preferences"
new "Launcher Einstellungen"
# game/preferences.rpy:61
old "Projects Directory:"
new "Projektverzeichnis:"
# game/preferences.rpy:68
old "[persistent.projects_directory!q]"
new "[persistent.projects_directory!q]"
# game/preferences.rpy:70
old "Not Set"
new "Nicht eingestellt"
# game/preferences.rpy:84
old "Text Editor:"
new "Texteditor:"
# game/preferences.rpy:106
old "Update Channel:"
new "Aktualisierungskanal:"
# game/preferences.rpy:126
old "Navigation Options:"
new "Navigationsoptionen:"
# game/preferences.rpy:130
old "Include private names"
new "Vertrauliche Namen einschließen"
# game/preferences.rpy:131
old "Include library names"
new "Programmnamen einschließen"
# game/preferences.rpy:141
old "Launcher Options:"
new "Launcher Optionen:"
# game/preferences.rpy:145
old "Hardware rendering"
new "Hardware Wiedergabe"
# game/preferences.rpy:148
old "Console output"
new "Konsolenausgabe"
# game/preferences.rpy:169
old "Open launcher project"
new "Launcherprojekt öffnen"
# game/preferences.rpy:183
old "Language:"
new "Sprache:"
+54
View File
@@ -0,0 +1,54 @@
translate german strings:
# game/project.rpy:199
old "Ren'Py is scanning the project..."
new "RenPy scannt das Projekt …"
# game/project.rpy:488
old "PROJECTS DIRECTORY"
new "PROJEKTVERZEICHNIS"
# game/project.rpy:488
old "Please choose the projects directory."
new "Bitte wählen Sie das Projektverzeichnis."
# game/project.rpy:488
old "This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."
new "Dieser Launcher scannt nach Projekten in diesem Verzeichnis, erstellt neue Projekte und platziert erstellte Projekte dort."
# game/project.rpy:536
old "Ren'Py was unable to run zenity to choose the projects directory."
new "RenPy konnte Zenity nicht starten, um das Projektverzeichnis auszuwählen."
# game/project.rpy:540
old "Ren'Py has set the projects directory to:"
new "RenPy hat das Projektverzeichnis verschoben in:"
# game/project.rpy:485
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
new "Bitte wählen Sie das Projektverzeichnis mit dem Verzeichnisauswähler.\n{b}Der Verzeichnisauswähler könnte hinter diesem Fenster geöffnet sein.{/b}"
# game/project.rpy:525
old "Ren'Py was unable to run python with tkinter to choose the projects directory."
new "RenPy konnte Python mit tkinter zur Projektsverzeichniswahl nicht starten."
# game/project.rpy:48
old "After making changes to the script, press shift+R to reload your game."
new "Nachdem Sie das Skript verändert haben, drücken Sie Shift + R, um Ihr Spiel neuzustarten."
# game/project.rpy:50
old "Press shift+D to access the developer menu."
new "Drücken Sie Shift + D, um das Entwicklermenü aufzurufen."
# game/project.rpy:219
old "Launching the project failed."
new "Starten des Projekts gescheitert."
# game/project.rpy:219
old "Please ensure that your project launches normally before running this command."
new "Bitte stellen Sie sicher, dass Ihr Projekt normal startet, bevor Sie diesen Befehl ausführen."
# game/project.rpy:585
old "Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."
new "RenPy konnte Python mit tkinter zur Projektsverzeichniswahl nicht starten. Bitte installieren Sie python-tk oder tkinter."
+197
View File
@@ -0,0 +1,197 @@
translate german strings:
old "PROJECTS:"
new "PROJEKTE:"
old "[p.name!q]"
new "[p.name!q]"
old "An exception has occurred."
new "Ein Fehler ist aufgetreten."
old "Ignore"
new "Ignorieren"
translate german strings:
old "Tutorial"
new "Tutorial"
old "The Question"
new "The Question"
old "Reload"
new "Neustarten"
old "Open Traceback"
new "Traceback öffnen"
translate german strings:
old "+ Create New Project"
new "+ Neues Projekt erstellen"
old "Active Project"
new "Aktives Projekt"
old "Quit"
new "Beenden"
old ""
new ""
translate german strings:
old "Open Directory"
new "Verzeichnis öffnen"
old "game"
new "Spielverzeichnis"
old "Quits the game."
new "Beendet das Spiel."
translate german strings:
old "base"
new "Hauptverzeichnis"
old "Edit File"
new "Dateien bearbeiten"
translate german strings:
old "script.rpy"
new "script.rpy"
old "options.rpy"
new "options.rpy"
translate german strings:
old "screens.rpy"
new "screens.rpy"
old "All script files"
new "Alle Dateien"
translate german strings:
old "Navigate Script"
new "Skript navigieren"
old "Check Script (Lint)"
new "Skript überprüfen (Lint)"
translate german strings:
old "Change Theme"
new "Theme ändern"
old "Delete Persistent"
new "Persistent-Dateien löschen"
translate german strings:
old "Build Distributions"
new "Veröffentlichungen erstellen"
old "Generate Translations"
new "Übersetzungen generieren"
translate german strings:
old "Editra"
new "Editra"
old "[name!q]"
new "[name!q]"
old " | "
new " | "
translate german strings:
old "I'm compiling a short test program, to see if you have a working JDK on your\nsystem.\n"
new "Es wird ein kurzes Testprogramm erstellt, um zu testen, ob Sie ein funktionierendes JDK haben.\n"
old "I was unable to use javac to compile a test file. If you haven't installed\nthe Java Development Kit yet, please download it from:\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}http://www.oracle.com/technetwork/java/javase/downloads/index.html{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java\nwithout having the JDK. Without a working JDK, I can't continue.\n"
new "Es konnte javac nicht verwendet werden, um eine Testdatei zu erstellen. Wenn Sie\ndas Java Development Kit noch nicht installiert haben, laden Sie es bitte herunter:\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}http://www.oracle.com/technetwork/java/javase/downloads/index.html{/a}\n\nDas JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java\nohne JDK haben. Ohne ein funktionierendes JDK, kann ich nicht weitermachen.\n"
translate german strings:
old "[value!q]"
new "[value!q]"
old "[description!q]"
new "[description!q]"
translate german strings:
old "Press shift+O (the letter) to access the console."
new "Drücken Sie Shift + O, um die Konsole aufzurufen."
old "Launching"
new "Startet"
translate german strings:
old "Show templates"
new "Vorlagen anzeigen"
translate german strings:
old "What is the full name of your application? This name will appear in the list of installed applications."
new "Wie lautet der volle Titel Ihrer Anwendung? Dieser Titel wird in der Liste von installierten Anwendungen angezeigt."
old "[ft.text!q]"
new "[ft.text!q]"
old "The JDK is present and working. Good!"
new "Das JDK ist verfügbar und funktioniert. Gut!"
old "Apache ANT has already been unpacked."
new "Apache-ANT wurde bereits entpackt."
old "The Android SDK has already been unpacked."
new "Das Android-SDK wurde bereits entpackt."
old "The required Android packages are already installed."
new "Die benötigten Android-Packages wurden bereits installiert."
old "You've already created an Android keystore, so I won't create a new one for you."
new "Sie haben bereits einen Android-Key erstellt, es wird kein neuer erstellt."
old "It looks like you're ready to start packaging games."
new "Es sieht aus, als wären Sie bereit, Spiele zu erstellen."
# TODO: Translation updated at 2014-05-02 13:54
translate german strings:
old "English"
new "English"
old "German"
new "German"
old "Japanese"
new "Japanese"
# TODO: Translation updated at 2014-05-02 14:07
translate german strings:
old "French"
new "French"
old "Spanish"
new "Spanish"
old "Russian"
new "Russian"
old "Arabic"
new "Arabic"
+33
View File
@@ -0,0 +1,33 @@
translate german strings:
# game/translations.rpy:10
old "Create or Update Translations"
new "Erstellt oder aktualisiert Übersetzungen"
# game/translations.rpy:10
old "Please enter the name of the language for which you want to create or update translations."
new "Bitte geben Sie den Namen der Sprache ein, deren Übersetzung Sie erstellen oder aktualisieren möchten."
# game/translations.rpy:15
old "The language name can not be the empty string."
new "Der Name der Sprache darf nicht leer sein."
# game/translations.rpy:26
old "Ren'Py is generating translations...."
new "RenPy erstellt Übersetzungen …"
# game/translations.rpy:30
old "Ren'Py has finished generating [language] translations."
new "RenPy hat die Übersetzungen für [language] erstellt."
# game/translations.rpy:44
old "What format would you like for the extracted dialogue?"
new "In welchem Format möchten Sie die extrahierten Dialoge?"
# game/translations.rpy:56
old "Ren'Py is extracting dialogue...."
new "RenPy extrahiert Dialoge …"
# game/translations.rpy:60
old "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[format] in the base directory."
new "RenPy hat die Dialoge fertig extrahiert. Die extrahierten Dialoge können im Hauptverzeichnis unter dialogue.[format] gefunden werden."
+94
View File
@@ -0,0 +1,94 @@
translate german strings:
# game/updater.rpy:54
old "Select Update Channel"
new "Aktualisierungskanal auswählen"
# game/updater.rpy:65
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
new "Der Aktualisierungskanal kontrolliert die Version, die Renpy herunterlädt. Bitte wählen Sie einen Aktualisierungskanal:"
# game/updater.rpy:70
old "Release"
new "Veröffentlichungen"
# game/updater.rpy:76
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
new "{b}Empfohlen.{/b} Die Version von RenPy, die für alle neuen Spielveröffentlichungen verwendet werden sollte."
# game/updater.rpy:81
old "Prerelease"
new "Vorveröffentlichungen"
# game/updater.rpy:87
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 "Eine Vorschau auf die nächste Version von RenPy, die zu Testzwecken und mit neuen Funktionen verwendet werden kann, jedoch nicht für Veröffentlichung von Spielen geeignet ist."
# game/updater.rpy:93
old "Experimental"
new "Experimentell"
# game/updater.rpy:99
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
new "Experimentelle Versionen von RenPy. Sie sollten diesen Kanal nur auswählen, wenn Sie von einem RenPy-Entwickler dazu aufgefordert werden."
# game/updater.rpy:119
old "An error has occured:"
new "Ein Fehler ist aufgetreten:"
# game/updater.rpy:121
old "Checking for updates."
new "Überprüft auf Aktualisierungen."
# game/updater.rpy:123
old "Ren'Py is up to date."
new "RenPy ist aktuell"
# game/updater.rpy:125
old "[u.version] is now available. Do you want to install it?"
new "[u.version] ist nun verfügbar. Möchten Sie sie installieren?"
# game/updater.rpy:127
old "Preparing to download the update."
new "Vorbereiten, um die Aktualisierungen herunterzuladen."
# game/updater.rpy:129
old "Downloading the update."
new "Aktualisierungen werden heruntergeladen."
# game/updater.rpy:131
old "Unpacking the update."
new "Aktualisierungen werden entpackt."
# game/updater.rpy:133
old "Finishing up."
new "Abschließen."
# game/updater.rpy:135
old "The update has been installed. Ren'Py will restart."
new "Die Aktualisierungen wurden installiert. RenPy startet neu."
# game/updater.rpy:137
old "The update has been installed."
new "Die Aktualisierungen wurden installiert."
# game/updater.rpy:139
old "The update was cancelled."
new "Die Aktualisierungen wurde abgebrochen."
# game/updater.rpy:156
old "Ren'Py Update"
new "RenPy aktualisieren"
# game/updater.rpy:162
old "Proceed"
new "Fortsetzen"
# game/updater.rpy:129
old "Nightly"
new "Nightly"
# game/updater.rpy:135
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
new "Die allerneuste RenPy Version. Diese enthält die neusten Funktionen, könnte aber auch überhaupt nicht funktionieren."
+9
View File
@@ -0,0 +1,9 @@
translate italian strings:
# game/about.rpy:21
old "[version!q]"
new "[version!q]"
# game/about.rpy:25
old "View license"
new "Leggi licenza"
+21
View File
@@ -0,0 +1,21 @@
translate italian strings:
# game/add_file.rpy:7
old "FILENAME"
new "Nome del file"
# game/add_file.rpy:7
old "Enter the name of the script file to create."
new "Inserisci il nome del file di script da creare."
# game/add_file.rpy:10
old "The filename must have the .rpy extension."
new "Il file deve avere estensione .rpy."
# game/add_file.rpy:18
old "The file already exists."
new "Il file esiste già."
# game/add_file.rpy:21
old "# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n"
new "# Ren'Py carica automaticamente tutti i file di script che finiscono con .rpy.\nPer usare questo file, definisci una label e saltaci (jump) da un altro file."
+162
View File
@@ -0,0 +1,162 @@
translate italian strings:
# game/android.rpy:12
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "Per compilare un pacchetto di Android si prega di scaricare RAPT, estrarlo e posizionarlo nella cartella di Ren'Py e riavviare il launcher di Ren'Py."
# game/android.rpy:13
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "La versione a 32-bit del Java Development Kit é necessaria per compilare pacchetti Android su Windows. Il JDK é diverso dal JRE ed é quindi possibile che tu abbia installato Java senza però aver installato il JDK.\n\n Si prega di {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}scaricare ed installare il JDK{/a} e, successivamente, riavviare il launcher di Ren'Py."
# game/android.rpy:14
old "To build Android packages, please download RAPT (from {a=http://www.renpy.org/dl/android}here{/a}), unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "Per compilare i pacchetti di Android, si prega di scaricare RAPT (da {a=http://www.renpy.org/dl/android}qui{/a}), estrarlo, posizionarlo nella cartella di Ren'Py ed infine riavviare il launcher di Ren'Py."
# game/android.rpy:15
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 é stato installato ma devi ancora installare l'Android SDK prima di poter compilare pacchetti per Android; scegli \"Install SDK\" per farlo."
# game/android.rpy:16
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
new "RAPT é stato installato ma la chiave non é stata configurata. Si prega di creare una chiave o di ripristinare android.keystore."
# game/android.rpy:17
old "The current project has not been configured. Use \"Configure\" to configure it before building."
new "Il progetto corrente non é stato configurato. Usa \"Configura\" per configurarlo prima della compilazione."
# game/android.rpy:18
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
new "Scegli \"Compila\" per compilare il progetto corrente o collega un dispositivo Android e scegli \"Compila ed Installa\" per compilarlo ed installarlo sul dispositivo."
# game/android.rpy:20
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Prova ad emulare un dispositivo Android.\n\nL'input tattile viene emulato attraverso il mouse e soltanto quando il tasto rimane premuto. Esc é assegnato al pulsante \"menu\" e PaginaSu é assegnato al pulsante \"indietro\"."
# game/android.rpy:21
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Prova ad emulare un tablet Android.\n\nL'input tattile viene emulato attraverso il mouse e soltanto quando il tasto é tenuto premuto. Esc é assegnato al pulsante \"menu\" e PaginaSu é assegnato al pulsante \"indietro\"."
# game/android.rpy:22
old "Attempts to emulate an OUYA 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 "Prova ad emulare una console OUYA.\n\nL'input del controller é assegnato alle freccie direzionali, Invio é assegnato al tasto \"select\", \"Esc\" é assegnato al tasto \"menu\" e PaginaSu é assegnato al tasto \"back\"."
# game/android.rpy:23
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
new "Scarica ed installa l'Android SDK ed i pacchetti di supporto. Opzionalmente, genera le chiavi richieste per firmare il pacchetto."
# game/android.rpy:24
old "Configures the package name, version, and other information about this project."
new "Configure il nome del pacchetto, la versione ed altre informazioni su questo progetto."
# game/android.rpy:25
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
new "Apre il file contenente le chiavi di Google Play nell'editor.\n\nQuesto serve solamente se l'applicazione sta usando un APK di espansione. Leggi la documentazione per maggiori dettagli."
# game/android.rpy:26
old "Builds the Android package."
new "Compila il pacchetto di Android."
# game/android.rpy:27
old "Builds the Android package, and installs it on an Android device connected to your computer."
new "Compila il pacchetto di Android e lo installa su un dispositivo connesso al tuo computer."
# game/android.rpy:148
old "{a=%s}%s{/a}"
new "{a=%s}%s{/a}"
# game/android.rpy:157
old "QUESTION"
new "DOMANDA"
# game/android.rpy:367
old "Android: [project.current.name!q]"
new "Android: [project.current.name!q]"
# game/android.rpy:387
old "Emulation:"
new "Emulazione:"
# game/android.rpy:395
old "Phone"
new "Telefono"
# game/android.rpy:399
old "Tablet"
new "Tablet"
# game/android.rpy:403
old "Television / OUYA"
new "Televisione / OUYA"
# game/android.rpy:415
old "Build:"
new "Compila:"
# game/android.rpy:423
old "Install SDK & Create Keys"
new "Installa SDK e Crea Chiavi"
# game/android.rpy:427
old "Configure"
new "Configura"
# game/android.rpy:431
old "Build Package"
new "Compila pacchetto"
# game/android.rpy:435
old "Build & Install"
new "Compila ed Installa"
# game/android.rpy:486
old "Before packaging Android apps, you'll need to download RAPT, the Ren'Py Android Packaging Tool. Would you like to download RAPT now?"
new "Prima di pacchettizzare le applicazioni di Android hai bisogno di scaricare RAPT (Ren'Py Android Packaging Tool). Vuoi scaricarlo adesso?"
# game/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 "Prova ed emulare una console connessa a televisore come OUYA o Fire TV.\n\nL'input del controller é assegnato alle freccie direzionali, Invio é assegnato al tasto \"select\", \"Esc\" é assegnato al tasto \"menu\" e PageUp é assegnato al tasto \"back\". "
# game/android.rpy:47
old "Connects to an Android device running ADB in TCP/IP mode."
new "Connette ad un dispositivo Android che esegue ADB in modalità TCP/IP."
# game/android.rpy:48
old "Disconnects from an Android device running ADB in TCP/IP mode."
new "Disconnette da un dispositivo Android che esegue ADB in modalità TCP/IP."
# game/android.rpy:516
old "Other:"
new "Altro:"
# game/android.rpy:524
old "Remote ADB Connect"
new "Connessione remota ad ADB"
# game/android.rpy:528
old "Remote ADB Disconnect"
new "Disconessione remota da ADB"
# game/android.rpy:608
old "Remote ADB Address"
new "Indirizzo remoto di ADB"
# game/android.rpy:609
old "Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."
new "Si prega di inserire l'indirizzo IP ed il numero della porta a cui connettersi nel formato \"192.168.1.143:5555\". Consulta le istruzioni del tuo dispositivo per determinare se questo supporta ADB e con quali numeri di indirizzo e porta."
# game/android.rpy:619
old "Invalid remote ADB address"
new "Indirizzo remoto di ADB invalido"
# game/android.rpy:619
old "The address must contain one exactly one ':'."
new "L'indirizzo deve contenere esattamente un ':'."
# game/android.rpy:623
old "The host may not contain whitespace."
new "L'host non può contenere spazi vuoti."
# game/android.rpy:629
old "The port must be a number."
new "La porta deve essere un numero."
+37
View File
@@ -0,0 +1,37 @@
translate italian strings:
# game/choose_theme.rpy:274
old "Could not change the theme. Perhaps options.rpy was changed too much."
new "Non é stato possibile cambiare il tema. Forse options.rpy é stato modificato troppo radicalmente."
# game/choose_theme.rpy:332
old "Display"
new "Schermo"
# game/choose_theme.rpy:333
old "Window"
new "Finestra"
# game/choose_theme.rpy:334
old "Fullscreen"
new "Schermo intero"
# game/choose_theme.rpy:335
old "Planetarium"
new "Planetarium"
# game/choose_theme.rpy:342
old "Sound Volume"
new "Volume audio"
# game/choose_theme.rpy:376
old "Choose Theme"
new "Scegli tema"
# game/choose_theme.rpy:389
old "Theme"
new "Tema"
# game/choose_theme.rpy:413
old "Color Scheme"
new "Schema di colore"
+498
View File
@@ -0,0 +1,498 @@
#translation: renpy/common/00action_file.rpy
translate italian strings:
# renpy/common/00action_file.rpy:124
old "%b %d, %H:%M"
new "%d %b, %H:%M"
# renpy/common/00action_file.rpy:587
old "Quick save complete."
new "Salvataggio rapido completato."
#translation: renpy/common/00gallery.rpy
translate italian strings:
# renpy/common/00gallery.rpy:521
old "Image [index] of [count] locked."
new "Immagine [index] di [count] bloccata."
# renpy/common/00gallery.rpy:539
old "prev"
new "prec"
# renpy/common/00gallery.rpy:540
old "next"
new "succ"
# renpy/common/00gallery.rpy:541
old "slideshow"
new "presentazione"
# renpy/common/00gallery.rpy:542
old "return"
new "ritorna"
#translation: renpy/common/00gltest.rpy
translate italian strings:
# renpy/common/00gltest.rpy:50
old "Graphics Acceleration"
new "Accelerazione grafica"
# renpy/common/00gltest.rpy:54
old "Automatically Choose"
new "Scegli automaticamente"
# renpy/common/00gltest.rpy:59
old "Force Angle/DirectX Renderer"
new "Forza renderer via Angle/DirectX"
# renpy/common/00gltest.rpy:63
old "Force OpenGL Renderer"
new "Forza renderer via OpenGL"
# renpy/common/00gltest.rpy:67
old "Force Software Renderer"
new "Forza renderer via software"
# renpy/common/00gltest.rpy:73
old "Changes will take effect the next time this program is run."
new "Le modifiche prenderanno effetto al prossimo avvio di questo programma."
# renpy/common/00gltest.rpy:77
old "Quit"
new "Esci"
# renpy/common/00gltest.rpy:82
old "Return"
new "Ritorna"
# renpy/common/00gltest.rpy:112
old "Performance Warning"
new "Avviso di prestazioni"
# renpy/common/00gltest.rpy:117
old "This computer is using software rendering."
new "Questo computer sta usando il rendering via software."
# renpy/common/00gltest.rpy:119
old "This computer is not using shaders."
new "Questo computer non fa uso degli shaders."
# renpy/common/00gltest.rpy:121
old "This computer is displaying graphics slowly."
new "Questo computer sta visualizzando la grafica lentamente."
# renpy/common/00gltest.rpy:123
old "This computer has a problem displaying graphics: [problem]."
new "Questo computer ha un problema a visualizzare la grafica: [problem]."
# renpy/common/00gltest.rpy:128
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
new "I suoi driver video potrebbero essere vecchi o non funzionanti correttamente. Questo potrebbe portare a visualizzare la grafica lentamente o impropriamente. Aggiornare DirectX potrebbe risolvere questo problema."
# renpy/common/00gltest.rpy:130
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "I suoi driver video potrebbero essere vecchi o non funzionanti correttamente. Questo potrebbe portare a visualizzare la grafica lentamente o impropriamente."
# renpy/common/00gltest.rpy:135
old "Update DirectX"
new "Aggiorna DirectX"
# renpy/common/00gltest.rpy:141
old "Continue, Show this warning again"
new "Continua, Mostra questo avviso nuovamente"
# renpy/common/00gltest.rpy:145
old "Continue, Don't show warning again"
new "Continua, Non mostrare più questo avviso"
# renpy/common/00gltest.rpy:171
old "Updating DirectX."
new "Aggiornando DirectX."
# renpy/common/00gltest.rpy:175
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
new "Il programma di installazione web di DirectX è stato avviato e potrebbe essere minimizzato nella barra delle applicazioni. Prego seguire le istruzioni per installare DirectX."
# renpy/common/00gltest.rpy:179
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
new "{b}Nota:{/b} Il programma di installazione web di DirectX di Microsoft proverà ad installare la barra di Bing. Per evitare che ciò accada, spunta l'opzione appropriata"
# renpy/common/00gltest.rpy:183
old "When setup finishes, please click below to restart this program."
new "Una volta finita l'installazione, si prega di cliccare qui in basso per riavviare questo programma."
# renpy/common/00gltest.rpy:185
old "Restart"
new "Riavvia"
#translation: renpy/common/00keymap.rpy
translate italian strings:
# renpy/common/00keymap.rpy:168
old "Saved screenshot as %s."
new "Screenshot salvato come %s."
#translation: renpy/common/00layout.rpy
translate italian strings:
# renpy/common/00layout.rpy:421
old "Are you sure?"
new "Confermi?"
# renpy/common/00layout.rpy:422
old "Are you sure you want to delete this save?"
new "Confermi di voler cancellare questo salvataggio?"
# renpy/common/00layout.rpy:423
old "Are you sure you want to overwrite your save?"
new "Confermi di voler sovrascrivere questo salvataggio?"
# renpy/common/00layout.rpy:424
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Caricare causerà la perdita di progressi non salvati.\n Confermi?"
# renpy/common/00layout.rpy:425
old "Are you sure you want to quit?"
new "Confermi di voler uscire?"
# renpy/common/00layout.rpy:426
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Confermi di voler tornare al menù principale?\nQuesto causerà la perdita di progressi non salvati."
# renpy/common/00layout.rpy:427
old "Are you sure you want to begin skipping?"
new "Confermi di voler iniziare a saltare?"
# renpy/common/00layout.rpy:428
old "Are you sure you want to skip to the next choice?"
new "Confermi di voler saltare alla prossima scelta?"
# renpy/common/00layout.rpy:429
old "Are you sure you want to skip to unseen dialogue or the next choice?"
new "Confermi di voler saltare al dialogo non letto o alla prossima scelta?"
#translation: renpy/common/00library.rpy
translate italian strings:
# renpy/common/00library.rpy:77
old "Skip Mode"
new "Modalità salto"
# renpy/common/00library.rpy:80
old "Fast Skip Mode"
new "Modalità salto rapido"
#translation: renpy/common/00updater.rpy
translate italian strings:
# renpy/common/00updater.rpy:1258
old "Updater"
new "Updater"
# renpy/common/00updater.rpy:1267
old "This program is up to date."
new "Questo programma è aggiornato."
# renpy/common/00updater.rpy:1269
old "[u.version] is available. Do you want to install it?"
new "[u.version] è disponibile. Vuoi installarla?"
# renpy/common/00updater.rpy:1271
old "Preparing to download the updates."
new "Preparando lo scaricamento dell'aggiornamento."
# renpy/common/00updater.rpy:1273
old "Downloading the updates."
new "Scaricando l'aggiornamento."
# renpy/common/00updater.rpy:1275
old "Unpacking the updates."
new "Estraendo l'aggiornamento."
# renpy/common/00updater.rpy:1279
old "The updates have been installed. The program will restart."
new "L'aggiornamento è stato installato. Il programma verrà riavviato."
# renpy/common/00updater.rpy:1281
old "The updates have been installed."
new "L'aggiornamento è stato installato."
# renpy/common/00updater.rpy:1283
old "The updates were cancelled."
new "L'aggiornamento è stato annullato."
#translation: renpy/common/_compat/gamemenu.rpym
translate italian strings:
# renpy/common/_compat/gamemenu.rpym:180
old "Empty Slot."
new "Slot Vuoto."
# renpy/common/_compat/gamemenu.rpym:337
old "Previous"
new "Precedente"
# renpy/common/_compat/gamemenu.rpym:344
old "Next"
new "Successivo"
#translation: renpy/common/_compat/preferences.rpym
translate italian strings:
# renpy/common/_compat/preferences.rpym:411
old "Joystick Mapping"
new "Mapping del Joystick"
#translation: renpy/common/_errorhandling.rpym
translate italian strings:
# renpy/common/_errorhandling.rpym:408
old "An exception has occurred."
new "Si è verificata un'eccezione."
# renpy/common/_errorhandling.rpym:434
old "Rollback"
new "Regredisci"
# renpy/common/_errorhandling.rpym:436
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Prova a regredire ad una data precedente, permettendoti di salvare o selezionare un'altra scelta."
# renpy/common/_errorhandling.rpym:439
old "Ignore"
new "Ignora"
# renpy/common/_errorhandling.rpym:441
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignore l'eccezione, permettendoti di continuare. Spesso introduce nuovi errori."
# renpy/common/_errorhandling.rpym:444
old "Reload"
new "Ricarica"
# renpy/common/_errorhandling.rpym:446
old "Reloads the game from disk, saving and restoring game state if possible."
new "Ricarica il gioco dal disco, salvando e ripristinando lo stato di gioco se possibile."
# renpy/common/_errorhandling.rpym:448
old "Open Traceback"
new "Apri Traceback"
# renpy/common/_errorhandling.rpym:450
old "Opens the traceback.txt file in a text editor."
new "Apri il file traceback.txt in un editor di testo."
# renpy/common/_errorhandling.rpym:456
old "Quits the game."
new "Esce dal gioco."
# renpy/common/_errorhandling.rpym:483
old "Parsing the script failed."
new "L'analisi dello script ha fallito."
# renpy/common/_errorhandling.rpym:510
old "Open Parse Errors"
new "Apri errori di analisi"
# renpy/common/_errorhandling.rpym:512
old "Opens the errors.txt file in a text editor."
new "Apre il file errors.txt in un editor di testo."
#translation: renpy/common/_layout/classic_load_save.rpym
translate italian strings:
# renpy/common/_layout/classic_load_save.rpym:152
old "a"
new "a"
# renpy/common/_layout/classic_load_save.rpym:161
old "q"
new "q"
# renpy/common/_developer/inspector.rpym:25
old "Displayable Inspector"
new "Ispettore di displayable"
# renpy/common/_developer/inspector.rpym:31
old "Nothing to inspect."
new "Niente da ispezionare."
# renpy/common/_developer/inspector.rpym:40
old "Size"
new "Dimensione"
# renpy/common/_developer/inspector.rpym:45
old "Style"
new "Stile"
# renpy/common/_developer/inspector.rpym:105
old "Inspecting Styles of [displayable_name!q]"
new "Ispezionando stili di [displayable_name!q]"
# renpy/common/_developer/inspector.rpym:117
old "displayable:"
new "visualizzabile:"
# renpy/common/_developer/inspector.rpym:124
old " (no properties affect the displayable)"
new " (nessuna proprietà ha effetto sul displayable)"
# renpy/common/_developer/inspector.rpym:126
old " (default properties omitted)"
new " (proprietà predefinite omesse)"
# renpy/common/_developer/inspector.rpym:156
old "<repr() failed>"
new "<repr() fallito>"
# renpy/common/_developer/developer.rpym:46
old "Reload Game (Shift+R)"
new "Ricarica Gioco (Shift+R)"
# renpy/common/_developer/developer.rpym:49
old "Variable Viewer"
new "Visualizzatore di variabili"
# renpy/common/_developer/developer.rpym:52
old "Theme Test"
new "Prova tema"
# renpy/common/_developer/developer.rpym:58
old "Image Location Picker"
new "Selettore dell'ubicazione delle immagini"
# renpy/common/_developer/developer.rpym:61
old "Filename List"
new "Lista dei file"
# renpy/common/_developer/developer.rpym:307
old "Undefined Images"
new "Immagini non definite"
# renpy/common/_developer/developer.rpym:410
old "Mouse position: %r"
new "Posizione del mouse: %r"
# renpy/common/_developer/developer.rpym:412
old "Right-click or escape to quit."
new "Click destro o Esc per uscire."
# renpy/common/_developer/developer.rpym:465
old "Done"
new "Fatto"
# renpy/common/_developer/developer.rpym:44
old "Developer Menu"
new "Menù dello sviluppatore"
# renpy/common/_developer/developer.rpym:405
old "Rectangle: %r"
new "Rettangolo: %r"
# renpy/common/_developer/developer.rpym:69
old "Console (Shift+O)"
new "Console (Shift+O)"
# renpy/common/_developer/developer.rpym:81
old "Show Image Load Log"
new "Mostra log di caricamento delle immagini"
# renpy/common/_developer/developer.rpym:84
old "Hide Image Load Log"
new "Nascondi log di caricamento delle immagini"
# renpy/common/_developer/developer.rpym:149
old "No variables have changed since the game started."
new "Nessuna variabile è stata cambiata dall'ultima esecuzione del gioco."
# renpy/common/_developer/developer.rpym:152
old "Return to the developer menu"
new "Ritorna al menù dello sviluppatore"
# renpy/common/00console.rpy:179
old "%(version)s console, originally by Shiz, C, and delta.\n"
new "Versione della console %(version)s, autori originali Shiz, C e delta.\n"
# renpy/common/00console.rpy:180
old "Press <esc> to exit console. Type help for help.\n"
new "Premi <esc> per uscire dalla console. Scrivi \"help\" per aiuto.\n"
# renpy/common/00console.rpy:184
old "Ren'Py script enabled."
new "Script di Ren'Py abilitato."
# renpy/common/00console.rpy:186
old "Ren'Py script disabled."
new "Script di Ren'Py disabilitato."
# renpy/common/00console.rpy:392
old "help: show this help"
new "help: mostra questo aiuto"
# renpy/common/00console.rpy:397
old "commands:\n"
new "comandi:\n"
# renpy/common/00console.rpy:407
old " <renpy script statement>: run the statement\n"
new " <comando renpy script>: esegui il comando\n"
# renpy/common/00console.rpy:409
old " <python expression or statement>: run the expression or statement"
new " <espressione o comando python>: esegui l'espressione o il comando"
# renpy/common/00console.rpy:417
old "clear: clear the console history"
new "clear: pulisci la cronologia della console"
# renpy/common/00console.rpy:421
old "exit: exit the console"
new "exit: esci dalla console"
# renpy/common/00console.rpy:429
old "load <slot>: loads the game from slot"
new "load <slot>: carica il gioco dallo slot"
# renpy/common/00console.rpy:442
old "save <slot>: saves the game in slot"
new "save <slot>: salva il gioco nello slot"
# renpy/common/00console.rpy:453
old "reload: reloads the game, refreshing the scripts"
new "reload: ricarica il gioco, aggiornando gli script"
# renpy/common/00console.rpy:461
old "watch <expression>: watch a python expression"
new "watch <espressione>: osserva un'espressione Python"
# renpy/common/00console.rpy:470
old "unwatch <expression>: stop watching an expression"
new "unwatch <espressione>: smetti di osservare un'espressione"
# renpy/common/00console.rpy:478
old "unwatchall: stop watching all expressions"
new "unwatchall: smetti di osservare tutte le espressioni"
# renpy/common/00console.rpy:484
old "jump <label>: jumps to label"
new "jump <label>: salta alla label"
# renpy/common/_developer/developer.rpym:272
old "{b}Missing Images{/b}"
new "{b}Immagini mancanti{/b}"
# renpy/common/00keymap.rpy:332
old "Autoreload"
new "Autoricarica"
+37
View File
@@ -0,0 +1,37 @@
translate italian strings:
# game/distribute.rpy:358
old "No packages are selected, so there's nothing to do."
new "Nessun pacchetto selezionato, nessun compito da eseguire."
# game/distribute.rpy:363
old "Scanning project files..."
new "Analizzando i file del progetto..."
# game/distribute.rpy:373
old "Scanning Ren'Py files..."
new "Analizzando i file di Ren'Py..."
# game/distribute.rpy:421
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
new "Tutti i pacchetti sono stati compilati.\n\nData la presenza di informazioni sui permessi, estrarre e ri-archiviare le distribuzioni Linux e Macintosh su Windows non é supportato."
# game/distribute.rpy:545
old "Archiving files..."
new "Archiviando i file..."
# game/distribute.rpy:801
old "Writing the [variant] [format] package."
new "Scrivendo il pacchetto [variant] [format]."
# game/distribute.rpy:814
old "Making the [variant] update zsync file."
new "Creando il file di aggiornamento di zync per [variant]"
# game/distribute.rpy:910
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "Processati {b}[complete]{/b} file su {b}[total]{/b}."
# game/distribute.rpy:335
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
new "Compilazione delle distribuzioni fallita:\n\nLa variable build.directory_name non può includere spazi, due punti e punti e virgole."
@@ -0,0 +1,45 @@
translate italian strings:
# game/distribute_gui.rpy:139
old "Build Distributions: [project.current.name!q]"
new "Compila distrubuzioni: [project.current.name!q]"
# game/distribute_gui.rpy:154
old "Directory Name:"
new "Nome della cartella:"
# game/distribute_gui.rpy:158
old "Executable Name:"
new "Nome dell'eseguibile:"
# game/distribute_gui.rpy:167
old "Actions:"
new "Azioni:"
# game/distribute_gui.rpy:175
old "Edit options.rpy"
new "Modifica options.rpy"
# game/distribute_gui.rpy:176
old "Refresh"
new "Aggiorna"
# game/distribute_gui.rpy:193
old "Build Packages:"
new "Compila pacchetti:"
# game/distribute_gui.rpy:208
old "Build Updates"
new "Compila aggiornamenti"
# game/distribute_gui.rpy:212
old "Build"
new "Compila"
# game/distribute_gui.rpy:219
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
new "Errori riscontrati durante l'esecuzione del progetto. Prego assicurarsi che il progetto possa essere eseguito senza errori prima di compilare distrubuzioni."
# game/distribute_gui.rpy:236
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
new "Il tuo progetto non contiene informazioni di compilazione. Vuoi aggiungere informazioni di compilazione alla fine di options.rpy?"
+65
View File
@@ -0,0 +1,65 @@
translate italian strings:
# description for the option: "Editra"
# game/editor.rpy:120
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
new "{b}Raccomandato.{/b} Un editor in fase Beta con un'interfaccia facile da usare e funzionalità adatte allo sviluppo come il controllo ortografico. Editra al momento non ha il supporto IMO richiesto per Cinese, Giapponese e Coreano."
# description for "Editra" on Linux
# game/editor.rpy:121
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "{b}Raccomandato.{/b} Un editor in fase Beta con un'interfaccia facile da usare e funzionalità adatte allo sviluppo come il controllo ortografico. Editra al momento non ha il supporto IMO richiesto per Cinese, Giapponese e Coreano e richiede wxPython su Linux."
# game/editor.rpy:137
old "This may have occured because wxPython is not installed on this system."
new "Potrebbe essersi verificato per via dell'assenza di wxPython su questo sistema."
# game/editor.rpy:144
old "Up to 22 MB download required."
new "Richiesti fino a 22 MB."
# description for the option: "JEdit"
# game/editor.rpy:155
old "A mature editor that requires Java."
new "Un editor maturo che richiede Java."
# game/editor.rpy:157
old "1.8 MB download required."
new "Download di 1.8 MB richiesto."
# game/editor.rpy:158
old "This may have occured because Java is not installed on this system."
new "Potrebbe essersi verificato per l'assenza di Java su questo sistema."
# option: "System Editor"
# game/editor.rpy:163
old "System Editor"
new "Editor di sistema"
# description for the option: "System Editor"
# game/editor.rpy:164
old "Invokes the editor your operating system has associated with .rpy files."
new "Invoca l'editor che il tuo sistema operativo ha associato con i file .rpy."
# option: "None"
# game/editor.rpy:179
old "None"
new "Nessuno"
# description for the option: "None"
# game/editor.rpy:180
old "Prevents Ren'Py from opening a text editor."
new "Non permette a Ren'Py di aprire un editor di testo."
# game/editor.rpy:327
old "An exception occured while launching the text editor:\n[exception!q]"
new "Si é verificata un'eccezione durante il lancio dell'editor:\n[exception!q]"
# game/editor.rpy:423
old "Select Editor"
new "Seleziona editor"
# game/editor.rpy:438
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
new "L'editor di testo é il programma che viene usato per modificare i file di script di Ren'Py. Qui puoi selezionare l'editor da usare con Ren'Py. Se assente, l'editor verrà automaticamente scaricato ed installato."
+93
View File
@@ -0,0 +1,93 @@
translate italian strings:
# game/font_page.rpy 65
old "PROJECTS:"
new "PROGETTI:"
# game/front_page.rpy:67
old "refresh"
new "aggiorna"
# game/front_page.rpy:94
old "+ Create New Project"
new "+ Crea un nuovo progetto"
# game/front_page.rpy:106
old "Launch Project"
new "Avvia progetto"
# game/front_page.rpy:122
old "[p.name!q] (template)"
new "[p.name!q] (modello)"
# game/front_page.rpy:127
old "Tutorial"
new "Tutorial"
# game/front_page.rpy:128
old "The Question"
new "The Question"
# game/front_page.rpy:144
old "Active Project"
new "Progetto attivo"
# game/front_page.rpy:152
old "Open Directory"
new "Apri cartella"
# game/front_page.rpy:157
old "game"
new "game"
# game/front_page.rpy:158
old "base"
new "base"
# game/front_page.rpy:164
old "Edit File"
new "Modifica file"
# game/front_page.rpy:172
old "All script files"
new "Tutti i file di script"
# game/front_page.rpy:181
old "Navigate Script"
new "Naviga script"
# game/front_page.rpy:192
old "Check Script (Lint)"
new "Controlla script (Lint)"
# game/front_page.rpy:193
old "Change Theme"
new "Cambia tema"
# game/front_page.rpy:194
old "Delete Persistent"
new "Cancella dati persistenti"
# game/front_page.rpy:202
old "Build Distributions"
new "Compila distribuzioni"
# game/front_page.rpy:204
old "Android"
new "Android"
# game/front_page.rpy:205
old "Generate Translations"
new "Genera traduzioni"
# game/front_page.rpy:206
old "Extract Dialogue"
new "Estrai dialoghi"
# game/front_page.rpy:222
old "Checking script for potential problems..."
new "Controllando lo script per potenziali problemi..."
# game/front_page.rpy:237
old "Deleting persistent data..."
new "Eliminando dati persistenti..."

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