We were already using window_during_transitions for an obsolete
function, and the preference controls all versions of this, rather
than just 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
* 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.
* 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.
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).
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.
* 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.
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.
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.
It's possible to have the launcher without the tutorial or vice versa,
and some Linux distros package Ren'Py in this way. Copying the font
file ensures we work in this case.
This will increase the size of the zip file, but probably not of
the 7z or tar.bz2.
When we get "None" as the name of the language to generate translation
for, we generate it for the None language. We only generate string
translations, as that's the only thing that makes sense to translate
in the None language.
Fixes#203.
`after_checkout.sh` has been using `readlink(1)` to get an absolute path (with
no symlinks) to the renpy root directory. Unfortunately, `readlink -f` is a
GNU extension, and thus unavailable on the BSDs, including OS X.
There are[0] a number of options for those systems. While an exec out to
Python seems like overkill (and is, in fact, a bit slow on my system), the
delay is small enough to not be a problem in a one-time script like this.
Additionally, it seemed silly to include a dozen-line shell function just for
this one usage. Plus, we know for certain the user has Python, because
otherwise they couldn't run Ren'Py. ;)
I included the parens around `print` just to make sure it works with both
Python 2.x and 3.x. I doubt this matters, but I figured I might as well.
If we stop caring about resolving symlinks, this entire line can be replaced
with `$PWD##*`. [1]
[0]: http://stackoverflow.com/q/1055671/120999
[1]: http://stackoverflow.com/a/1371283/120999
Some truetype fonts have bounding boxes that contain the origin. (This
may be becuase of font design, auto-hinthing, or anti-aliasing.) We
deal with these fonts by rendering all the available pixels, even
those to the left of the origin.
This may make the actual area drawn to the screen bigger than the
displayable itself, so we deal with that when necessary.
Fixes#34.
* Make the order more consistent.
* Add rollback ("Back")
* We don't need to make F.Skip so easy to disable - it's no worse
than normal skip when skip unseen is off.
Japanese doc information shouldn't be shown in Japanese, and it should be untranslatable text.
This commit adds two tags: language_LANGUAGE and gettext to support it.
Automatically saving persistent data may be too slow (and might cause
a laptop's hard drive to spin up), so we now save it at shutdown or
when renpy.save_persistent is called.
We also allow creators to register a merge function that's called when
loading updated persistence data from disk.
This provides a way to associate arbitrary information with Ren'Py
save files. (For example, we could store which character's route
we're on, or scoring information.)
This introduces config.save_json_callbacks, which contains callback
functions that add information to the json callbacks.
The new MultiLocation lets us save to multiple locations. We now save
both to the user's save directory and a game-local save directory.
Also, refactored the save location in FileLocation into its own
method.
While only used for saves at the moment, this system will eventually
let us use multiple locations.
This also introduces the SaveRecord object, which is where save data
is stored before we write it to disk.
Now that we're almost always running on a multi-core device, there's
little reason not to just run the auto-save thread whenever we want.
This also will make some of the new save stuff simpler.
Previously, were re-compiling the expressions each time the
ConditionSwitch ran, which was leading to performance problem
when there was an absurdly large number of conditions.
These were required to get the Ren'Py 5.0 demo to run. (You'll need
to create a script_version.rpy file set to (5, 0, 0) to get things
actually working.)
We look in:
* The public directory used by very old RAPT versions.
* The private directory used by newer RAPT versions.
* The getExternalFilesDir directory, used by the newest RAPT versions.
This means that saves will now be placed in a public place, so they
can be copied and otherwise shared.
When additive blending is 1.0, the software renderer will not
display an image. This is probably preferable to the image
displaying incorrectly, since they're likely to be effect
images.
This commit adds in the backend support, for varying the additive
blending factor.
Additive blending will not be added to the (mostly obsolete) software
renderer. Instead, added a way to test if the current renderer
supports additive blending.
Thes won't run when optimization is enabled, which is the default
for Ren'Py. It's better to eliminate them entirely, so we have
the same configuration in testing and production.
This was the behavior of of Ren'Py until switching to Freetype 2.4. The
autohinter more resembles the older Ren'Pys, seems to produce better
forms on most fonts, and fixes spacing issues on broken fonts.
Previously, we used 666 and 777, and expected the user's umask to take
care of adjusting the permissions. Unfortunately, info-zip overrides
the umask, writing world-writable files to disk.
Thanks to Spiky Caterpillar for the bug and the fix.
A greedy load after rollback can roll-back through with statements,
which are turned into with None statements until the start of the
next interaction. (Which is sensible behavior for the rollback
case, but fails when an after_load transition is scheduled.)
Fixes#95.
Previously, we used the angle copy function to copy surfaces, which
used the pygame blit function. The pygame blit function was more
complex and held the GIL while blitting, and led to slowdowns in
loading.
Nogil_copy appears to be safe for Ren'Py, which doesn't use software
surfaces.
The image cache is no longer locked for expensive operations,
such as image loads. While this may cause us to load an image
twice (in rare circumstances), it also lets us preload images
without blocking loads frome the main thread.
than the end of an interaction.
Kicking it off at the end of the interaction lead to bad behavior
where the start of the next interaction would fight with the
preload thread for the image cache lock.
been processed.
This is necessary to deal with the way a size may offer the viewport
a smaller area than initially necessary, once scrollbars take up
some space.
Fixes#88.
The segfaulting occured when a TTF Font contains a GSUB table with a
Lookup type other than one. This caused us to initialize a data
structure that represents the lookup table, but never fill it in.
Rarely, one of these tables would hava field initalized to 1 or 2. In
that case, we'd try to free associated data that was never properly
initialized, and we'd crash.
The fix was to intialize the data structures before use.
This involved breaking the prediction coroutine, and the context
prediction routine up further. By predicting one statement at a time,
we can interleve predicitions with frame display, and prevent
dissolves or ATL transforms from starving the image predictor, at
least in simple (non-screen) cases.
Before this change, code that created and then immediately modified a
list, dict, set, or object that was rollback-able would cause a small
memory leak until the end of the interaction.
This helps ensure that code that creates many text objects in a
single interaction will now consume unbounded memory if it lets
those Text objects be GCed.
Window preference.)
This prevents the possibility of spurious resize events, and also
prevents the black bars from appearing on the screen after such
a resize.
Previously, we would load entire files into RAM, compress the entire
file, and write out the compressed data. This was breaking down on
large .rpas, hence the change.
We use ZWSP in input so we properly size an empty line. Some fonts
do not include this character, and replace it with an undefined
character glyph (often a square).
This fix prevents Ren'Py from rendering the ZWSP, making the
problem invisible to the user.
It didn't work on windows, since windows locales work using the ANSI
code page, and there's no way to get them to use UTF-8 or unicode.
(Also, having multiple locale names is asking for problems.)
We generate template/game/screens.rpy from tutorial/game/screens.rpy -
but now, the tutorial version has the language preference in it. We don't
want the language preference to be in the default template, so we use
distribute.py to filter it out.
This prevents an issue that was triggered by an old screen hanging
around during a game restart, but that screen using a variable that
is no longer defined after game start.
This fixes#65, a bug where [1, 2, 3] * 4 would produce a RevertableList,
but 4 * [1, 2, 3] would produce an unwrapped list (that doesn't
participare in rollback).
A bunch of small changes, but the big one here is that we now generate
the mac app from scratch, using the plist creation code that was
checked in earlier.
This transforms the anchor using the same matrix as the rest of
the transform, essentially allowing the point around which the
image rotates/zooms to be specified.
This could happy in various cases, such as when the show and hide
operations were called. The result is that the time inside an
interpolate could go massively negative, and we'd get overly-long
delays and other artifacts.
This triggers the slow text callback, which might be needed to end
something called in one of the other callbacks. (For example, the
PW-style beeping speech.)
* Update the linebreaking to the algorithm and tables in unicode 6.2.
* Implement japanese-strict, japanese-normal, and japanese-loose breaking methods.
This reverses the order of an hbox or vbox's children. For example, in
a box_reversed hbox, the first child will be rightmost, and the last
child will be leftmost.
Vertical text is now automatically rotated to the vertical
orientation.
Add the vtext image and vcentered character, which are the
vertical-text equivalents of image text and centered.
* Taking execution state now works with nested Transforms.
* An ATL transform will take the child of the Transform it replaces,
if it has no child of its own.
The problem we had was that the REDRAW and TIMEEVENT events weren't
scheduled until the prediction coroutine was run. When prediction was
taking a while, the events wouldn't cancel it.
This manifiested as slow skipping, among other problems.
Greedy rollback rolls back as far as it can without crossing a
checkpoint. Non-greedy rollback rolls back to the start of
the checkpoint statement, or the start of the current
statement if we're in a statement.
(This is used by the console to get back to the start of the
current statement.)
The problem is that when we have two rollbackable contexts sharing
a store, variable changes in the inner context aren't rolled back
when a rollback occurs in the main context.
This adds initial support for the memory mode, where we replay
a scene in a new context.
This requires a bunch of changes to rollback, so that it is possible
to rollback a context other than context[0]. Most notably,
RestartException has been replaced by RestartContext and
RestartTopContext.
This also fixes a bug where the rollback_limit was being decremented
even when a checkpoint wasn't reach. This manifiested as a reduced
amount of rollback, especially at the start of the game.
There's two parts to this. First off, there's a new "Generate
Translations" option, which lets the creator or translator generate
the translation files. Then, I added the ability to change the language
the launcher itself uses.
This removes the old .rpt support, and replaces it with a translate
string statement. The RENPY_UPDATE_STRINGS statement now writes
a .rpy file containing the new strings.
This adds a new pass to script loading, one where Ren'Py iterates
through the script and groups say statements and translatable user
statements into translate blocks.
To support the new voice tag feature, character gains a voice_tag
parameter, and the new config.voice_tag_callback variable comes into
existence. When a character speaks, config.voice_tag_callback is
called with that character's voice tag.
This is the last use of a command-line argument in code that isn't
part of the run command. We can now start a Ren'Py game with a
command other than the run command.
This is a minor behavior change. Before this, renpy.play would stop
the playing sound if called with None - which is the default in a lot
of circumstances.
This lets us register a group of fonts, with each covering a portion
of the unicode character space. A string can then be segmented based
on this, dividing it up into runs of characters using various fonts.
The problem is that python seems to generate two kinds of code to
access module globals. Variable access in the global scope uses object
methods, and so setitem and delitem are called. But when a global
is accessd from a function, the dict is accessed directly, and so
we can't intercept them.
This means that the new O(1) method of determining what changed in
the store is massively broken.
Ren'Py now uses an O(n) method of detecting store changes, which
is what we used in 6.13, modified to support multiple stores.
* Always display the first frame of a video.
* Improve sync at the start of a video.
* Update the Movie displayable on a regular basis, even if a movie isn't playing. (This
lets a movie start playing later.)
Fixes#24.
6.13.
This fixes crashing bugs that may have been caused by data structures
being updated while the audio callback is being run in the background.
The big change between 6.13 and this is that playing_name is now
protected by a mutex. PSS_playing_name only tries to grab this mutex,
and doesn't grab the SDL audio lock, preventing it from blocking if
video decoding is too far behind.
If the height of the glyph is small, horiBearingY returns
a non-expected value for vertical layout simulation, but bbox.yMax
returns the same value for all glyphs.
When we error-handle a failure that occurs while rendering, it's
possible that one or more Renders will be kept alive in a
traceback. This prevents us from giving the render-leak warning in
this case.
A movie stop is necessary when the software renderer is being used
because setting the mode will kill the surface that the movie is
drawing to. In GL mode, we use a different surface, so a reset
isn't necessary.
We had been checking that the _chosen dict was non-empty in ChoiceJump
and ChoiceReturn actions. This wasn't necessary given the logic of the
program, and failed in the case of a game that hadn't been played
before.
Fixes http://lemmasoft.renai.us/forums/viewtopic.php?p=214590#p214590
We now generally synchronize video to wall time. We adjust this
synchronization slowly if we're slightly out of sync with the audio,
or by a lot if we're way out of sync.
This ensures that the frame rate remains stable even if the times of
audio decode vary a bit.
We also now support the Movie displayable again.
Previously, video playback was done using SDL events. This was at best
laggy, as the time it took for an SDL event to be delivered was up to
30 ms. Worse, if an event was ever lost, video playback would stop,
packets would queue up, and eventually audio playback (and Ren'Py
itself) would crash.
In the new approach, when a video is playing Ren'Py polls the video
system for new frames. Busy-waiting (with short sleeps to give control
to the decoder threads) ensures that frames are draw promptly, and
so the buffers can't fill up.
This code doesn't explicitly address latency, so that's a wash.
Previously, we limited the maximum size of a texture that Ren'Py could
deal with to 512, and mandated the textures were 66% full. In the movie
case - with a lot of texture uploads - this was bad news, as making new
textures is slow on an intel GPU. So now, we can ask for a big texture
to be created in a single chunk.
Also, we now use 1024px textures, instead of being limited to 512px.
Analogue passes floats to Grid, which passes them to range(), which changed
its behavior in python 2.7 to crash when it gets something other than an
integer.
This fixes a bug where, if a project existed already, the user could
try to launch it, and it would try to create navigation.json in a
directory that didn't exist.
In 6.13.11, __dirty was a boolean. In 6.13.12, it change to an object with
a field - but loading a 6.13.11 game would overwrite that, causing crashes.
Having a totally new variable fixes the problem.
Edwin's fix at 81c265c didn't work when an adjustment was ranged more
than once, with smaller and larger values, as it would shrink to fit
the smaller value. This version applies the in-range check when the
value is accessed.
Zsync only produces output when its stdin is a terminal, which isn't
the case on windows. Attempts to recompile it to change this
behavior proved fruitless.
So instead, we look at the downloaded file, and see how closely it
matches the correct file. (By downloading a list of hashes for each
64k block in the correct file.)
To make builds more convenient, functionality was added to the
launcher to allow the command line tool to not build updates,
and to build a subset of packages.
When the user goes to edit something and no editor has been selected,
the launcher will prompt the creator to select an editor. If the editor
selected is not installed, it will be downloaded and installed.
Movetransition now interpolates the positions of the image
in the before and after cases. This means that if the image is
moving in one or both of the cases, it will be moved between the
two locations.
The new movetransition uses transforms to specify where to move
to and from, rather than factory functions.
It's easier to use, but somewhat less flexible.
The old move transition is around as OldMoveTransition, and compat
will swap it in based on the script version.
The break in the bar could be a non-integer number of pixels, causing
both the left and right sides of the bar to be rounded down and the
total bar to lose a pixel of length.
and easier to use.
The xzoom and yzoom properties are now applied before, rotation. This means
that the shape of the image will remain consistent as the image is rotated.
Previously, the image to change shape as it was rotated.
The xzoom and yzoom properties may now be negative, with negative zoom
values causing the images to be flipped. The positioning code now takes
this into account, and positions a flipped image properly.
This fixes a bug that would cause lines to be too long - the lines
were correct in texwrap, since widths were fine as ints, but expanded
when rendered with the full glyph advances.
This is for compatibility with 6.10 and prior versions of Ren'Py, and
because it makes sense. Zooming an image wants to create an image with
a non-integer width and height. This is especially true when xalign is
non-zero - we need to take the precise width into account when
centering the displayable (at least when using subpixel precision).
It's possible to have a font's bitmap go above its ascent. When this
happened, we would write outside of memory. This fixes that bug by not
drawing - it might render the font wrong, but it should prevent
crashing.
This is a list of functions that are called at the end of each Python
block. One use of this would be to allow variables to manipulated with
normal mathematical operators, and then have a callback ensure that
they remain within a range.
When using negative kerning, we can have a line of text with a
fractional computed width. Rounding down this case lead to the last
pixel being cut off.
We want one layer of overlay pages in the launcher. This lets
us replace the current page with other info, and then easily and
automatically get back to the main page.
Tried a stack, but it's too complex for our needs.
means that it's no longer possible to raise the volume from within Ren'Py.
Controlling the system volume exhibited bugs on all three platforms, including
hard-to-predict volume changes that affect other applications.
to that of their ground image. (Previously, they took up the entire
screen.) This change makes it easier to position an imagemap at a
different location on screen, such as the bottom.
Imagemaps now take an alpha argument. If true (the default), hotspots
are only focused if the mouse is over a non-transparent part of the
idle or hover image. If set to false, the hotspot is focused whenever
the mouse is within its boundaries.
the ui functions.
Changed the _replaces method to be a replaces constructor parameter.
Make the periodic method take st.
Add a periodic method to BarValue.
Implement AnimatedValue.
file can be run from the command line to build distributions in shell
scripts and other automated processes.
Plug games.renpy.org when building distributions.
Change xoffset and yoffset in transforms so that they stack with that
of the child.
pads rotated displayables. When set to False, _not_ the default, it's
now possible to rotate a (100, 50) displayable by 90 degrees, and have
the result be (50, 100) in size.
Rewrote the scene lists. This added support for "replaced" images, but
more importantly, cleaned up the code quite a bit, by making it be in
terms of objects rather than tuples.
Tweak config.default_transform behavior so that it only applies to
non-transforms, so we better match the old behavior.
fix renpy.ui.Many to work with with.
properties to be set using a single parameter. The new composite style
properties are:
* pos - takes a pair, and uses it to set xpos and ypos.
* anchor - takes a pair, and uses it to set xanchor and yanchor.
* align - takes a pair, and uses it to set xalign and yalign. (And
hence xpos, ypos, xanchor, and yanchor.)
* area - take (x, y, height, width) pair, and tries to set properties
such that the displayable will be placed inside the rectangle. This
sets the xpos, ypos, xanchor, yanchor, xfill, yfill, xminimum, yminimum,
xmaximum, and ymaximum properties.
the default for the projects directory, if it has not already been set
by the user. It also will report an error when creating a project fails,
rather than producing a traceback.
false positives where pylint isn't able to fully analyze Ren'Py.
Add annotations to Ren'Py to further supress false positives. The result
is that we can now run pylint and pick out regressions.
can lead to a speedup in text display when there are many words of
text on the screen, and that text is re-displayed, as is the case
where the text text speed is not the maximum. This is especially
beneficial for eastasian languages, where every character is treated
as a word.
can lead to a speedup in text display when there are many words of
text on the screen, and that text is re-displayed, as is the case
where the text text speed is not the maximum. This is especially
beneficial for eastasian languages, where every character is treated
as a word.
now allow one to define variant screens. This allows one to select an
imagemap main menu screen to use, or to define different screens for
loading and saving.
something like {image=eileen happy} is legal, if odd.
Fixed a bug that could prevent files from being loaded if Ren'Py was
run from a path that contains non-ascii characters. (Even in directories
that were not part of the Ren'Py distribution.)
renpy.display.pgrender.surface and other functions in that
module. This function creates a surface with a 1px border in
all directions. This will let us not have to worry about transform32
overrunning the surface.
the use of TrueType collections. Using a name of 0@font.ttc will get
the first font in the collection, 1@font.ttc will get the second font,
and so on.
ATL typo.
that is automatically loaded when Ren'Py starts. For example, setting
this to "1" loads the game in save slot 1. This is intended for use by
developers, so they can easily return to a point in the game after
restarting Ren'Py.
statement. Container displayables now support the context manager
protocol, automatically closing at the end of a with block. (Note
that the python with statement postdates the Ren'Py with statement,
and has totally different semantics.)
argument, which is can be used to specify images to replace the
text of a yes/no prompt.
Make buttons give out the role + hover status.
Allow transform to control the render size of its child.
image with that tag, and if that image used a transform. If this is
true, Ren'Py does two things:
# If the new image is not a transform, it wraps it in a transform.
# The transform is initialized to have the properties of the old transform.
The generally has the effect of "remembering" the position of images
shown on the screen. In some cases, this memory effect may override a
position encoded into an image. In that case, the image must be hidden
and shown again.
directories above your Ren'Py installation. If found, save data will
be placed in that directory, rather than the system-specific default
location. This should help make it easier to develop Ren'Py games when
using a USB drive.
rollback if it was not being referred to by an object in the current
state. For example, if we did:
$ o.foo = [ ]
"point a"
$ o.foo.append(1)
"point b"
$ o.foo = None
"point c"
and then rolled back from point c to point a, o.foo would improperly remain
[1]. (And would become bigger each time we rolled back and forth.)
shown when no character is speaking. Specifically, the
window show [transition]
statement shows the window, and the
window hide [transition]
statement hides it. Both can take an optional
transition. config.empty_window is responsible for displaying the
window, while config.window_show_transition and
config.window_hide_transition are default transitions. The state of
the window can be determined by testing _window. The
renpy.shown_window function can be called to suppress displaying the
empty window, and is called automatically when characters speak.
The new renpy.get_placement function returns information about the
placement of displayables.
layout.imagemap_load_save, layout.imagemap_preferences, and
layout.imagemap_yesno_prompt. Doing so prevents layout.navigation from
being called for that screen. It also allows opaque imagemaps to be
used, rather than forcing them to be transparent to allow the
navigation to show through.
displayables now use the style.motion style, which now has xanchor and
yanchor both set to 0. This gives these movements the same semantics
when used inside an image clause as they have outside one.
unscrollbable scrollbars are displays. None keeps the current
behavior, which shows the bar normally. If set to "insensitive", the
bar becomes insensitive, while if set to "hide", the bar is not
drawn at all.
menus. This is controlled by the config.help variable. By default
the help system shows the README.html file in the game's base directory.
The new RENPY_SCREENSHOT_PATTERN environment variable lets you
configure the name of screenshot files. Ren'Py can now write out
screenshots as JPGs, as well as PNGs.
quit button on the top of the window. The first press brings up the
quit prompt, and a second press forcibly terminates the game. Alt
is mapped to Command on the Mac, so Command-q now works on Macintosh.
Alt/Command-h hides (iconifies) the window.
as the icon of the windows exe when building the windows
distribution. Similarly, the file icon.icns will be used as the icon
of the Macintosh application. (Note that .icns is a different file format
from .ico.)
The Macintosh application will now show the name of the game in the
menu bar, rather than "Ren'Py Launcher".
parent of a style. The new style.rebuild function allows styles to be
rebuilt even after the game has begun running, with some
caveats. (Changes are not persisted, for one thing.)
The new renpy.easy_displayable method can be used by user-defined
displayables to convert strings into Solid or Image displayables.
or scene statement, a list of undefined images will appear centered at
the top of the screen. A black screen will be show instead of any missing
background. This makes it easier to write a script before all images are
present.
allows you to specify one or more outlines, including offset
ones. This allows for several fairly complicated text effects, similar
to what you'd see in modern subtitles. [demo]
* We believe the bug preventing fonts from being archived has been
fixed. It should now be possible to include a font in an archive, and
have that work. The archiver has been modified to allow this.
improve smoothness on fast enough machines.
Ren'Py now scans the game directory for all .rpa files, and adds them
to config.archives automatically. In addition, the archiver tool now
prompts for the name of archives, and uses filename patterns to decide
what to archive. This makes it easier to break the files up into
multiple archives, in a single game.
encountered.
Fixed a bug that prevented im.AlphaMask and ImageDissolve from working
with some images. Also improved the quality of im.AlphaMask, which was
incorrectly blending fractional alphas with black.
with some images.
Using stdin for the remote control didn't work on Windows, and could
lead to errors in some cases. Instead, the remote control mode now
uses a file, which gets deleted after processing the command.
begin the pause once all text has been displayed.
Lint will no longer produce an error when encountering a user-defined
text tag of the form: {/=style}.
transition that occurs after a game has been loaded. [doc]
Calling renpy.restart_interaction() will no longer cause ongoing
transitions to be terminated. [test, doc]
take 4- and 5-component tuples, respectively. In both cases, the new
last component is a python expression that must be true for the button
to be shown.
Pressing control will no longer cause transitions to end when
config.allow_skipping is False.
optionally takes an adjustment object, which is what stores
information about the range, value, page size, and step size of
the bar. [doc]
Bars now take a new style_property, bar_resizing. If this is true, we
resize sub-bars, rather than rendering them at the full bar size and
then cropping. This changes the look of bars a bit.
Viewports now use adjustments to control their x and y scrolling
information. They properly fill in a range and step size, allowing
scrollbars to indicate the fraction of the viewport that is being
displayed to the user. [doc]
Viewports now also support several new ways of scrolling around. If
a true mousewheel argument is given to ui.viewport, the user will be
able to scroll the viewport using the mousewheel. If the draggable
argument is true, then the user will be able to drag the viewport
around using the mouse. [doc, implement draggable, doc config.keymap]
expression with the values of dynamic variables found inside the
function that has been called.
Added a new variable, _mouse_visible, that controls if the mouse
should be visible at any given moment. [doc]
renpy.with_statement and ui.interact now take a clear argument, which
controls if the transient layer is cleared at the end of a transition
or interaction. [doc]
The new At function provides a nicer syntax for applying position
objects (the result of Position, Move, etc.) to displayables. [doc]
rewritten. It is now possible for hyperlinks to span more than one
line. It is also possible to have code run when a hyperlink has been
focused, using the config.hyperlink_focus callback.
This necessitated some changes to how hyperlinks work. They are no
longer buttons, so style.hyperlink is no longer used... now, only
style.hyperlink_text is used to change the look of a hyperlink.
The new im.AlphaMask image operator lets you use an image to
alpha-mask another. The new config.missing_image_callback lets you
specify a function that's called when an image is missing. Together,
they provide the necessary infrastructure for JCC--- JPEG Compression of
Character art.
displayables. This involved making public the types renpy.Displayable,
renpy.Render, and renpy.IgnoreEvent; and the functions renpy.render,
renpy.redraw, and renpy.timeout.
config.developer is true. [elaborate, doc, implement]
The activate_ property prefix has made a comeback. This prefix is
applied to buttons that have been selected by the user. It is applied
when the button is first selected (while the clicked function is
running). If the clicked function returns a non-None value, or an
exception, then the button remains activated forever. [doc]
The new xoffset and yoffset placement properties allow one to specify
a pixel offset to the position computed using xpos/xanchor and
ypos/yanchor. This makes it easy to specify, say, that a button's
label should be a pixel or two above center. [doc]
The default roundrect theme now takes a new argument, less_rounded. If
True, this will use the 6-pixel rounded rectangles, even on an 800x600
game. This is the default for new projects. [doc, implement]
Setting _game_menu_screen = None prevents the game menu from being
shown. (Setting it to a value like "_save_screen" or "_load_screen"
shows the game menu again.) This is the default during the
splashscreen. [doc]
shown. (Setting it to a value like "_save_screen" or "_load_screen"
shows the game menu again.) This is the default during the
splashscreen. [doc]
NVLCharacter has a new parameter, clear, that if true causes the nvl-mode
screen to be cleared after that character speaks. [doc]
Rewrote the input handling code. Now, we can deal with keysyms prefixed
with alt_, shift_, and noshift_.
renpy.movie_cutscene so that it allows a delay of None, which will
delay until the user clicks. (Note that you still need to specify
loops=-1 in this case.) [doc]
Ren'Py itself. Supplying the --trace option to Ren'Py will write
information about function calls to trace.txt. Supplying --trace twice
will also dump information about line execution and function
returns. Note that trace mode comes with a significant speed penalty,
when active.
statement is allowed to be dismissed, by setting
config.say_allow_dismiss. ui.saybehavior has been updated with similar
functionality. This was added to support children's games, where
dismissing dialogue before it's fully spoken harms the value of a game
as a pedagogical tool... this functionality should not be used in visual
novels aimed at adults.
be used to replace the buttons and labels (respectively) found on the
game and main menus with image-based replacements.
The new focus_mask property allows image buttons to take a mask image
that defines where the mouse must be for it to be focused. The
focus_rect property lets a subrectangle be used to specify focus, when
two imagebuttons overlap.
functions.
Modified the launcher so the user can chose which files are archived
by the "Archive Files" tool. (Which has been renamed from "Archive Images".)
Fixed a bug that prevented new projects from being created under
Linux.
config.has_voice when assigning mixer names to channels. If all of
these are set False, sound will be disabled. If only some are set,
only those mixers will control system volume.
contained within init blocks. It has long been an error to run an
image statement outside of an init block, so this primarily checks for
useless init statements.
statements the same internal name they had in the previous version of
the script. This means that it's now usually possible to load in a
changed script, and come back to roughly the spot where you left
off. (Previously, the closest we would come is the prior label.) Of
course, variables are given the values they when the game was saved.
This allows us to implement a new feature. Pressing shift+R when
config.developer is set saves the game, reloads the script from disk,
and then reloads the game. Doing this generally brings you to the last
unchanged line seen before saving, making it easy to edit the script
and then see your changes in action. Like many developer features,
this may not work perfectly in all circumstances.
when they occured in interactions beginning with a transition, when no
events occured during the interaction. A symptom of the bug was that
if the user moved the mouse, the pause would immediately terminate and
the game would advance.
statements the same internal name they had in the previous version of
the script. This means that it's now usually possible to load in a
changed script, and come back to roughly the spot where you left
off. (Previously, the closest we would come is the prior label.) Of
course, variables are given the values they when the game was saved.
colors, one of which replaces white and one which replaces
black. This is accessed through im.Twocolor. This effect can also be
applied to SFonts using the black_color style property.
uppermost full-screen image that does not have an alpha channel.
Images below this image cannot be seen, and now are not drawn. This
optimization only considers the presence or absence of an alpha
channel, and not the content of that channel. So a PNG image with an
alpha channel that has full opacity will not trigger this
optimization, while the same image with the alpha channel removed will.
xanchor, ypos, and yanchor.
There are now two new properties, xalign and yalign. Assigning to xalign
is equivalent to assigning the same value to xpos and xanchor, and
similarly for yalign. This means that it is now possible to write
xalign=0.5 to center a displayable, rather than having to write
xpos=0.5, xanchor=0.5. [doc]
color is supplied to a SFont, the supplied image is remapped so that
each channel has its value interpolated between 0 and the supplied
color. Most importantly, this means that white pixels will have the
supplied color. This functionality means that drop shadows are now
rendered correctly.
config.with_callback has been changed. It now takes two arguments. The
first is the transition being performed. If this transition is a None
transition created as part of a scene, show, or hide statement, then
the second argument is the transition found in that
statement. Otherwise, it is None. config.with_callback is now requried
to return a transition, which replaces the specified
transition. Hopefully, this is enough to make with_callback useful, by
always giving the callback information specified by the user.
+++
Fixed a bug in renpy.music.set_music, in which the test was inverted
in the code. (But not in the documentation.) Flagged this as requiring
an update, as it could require script changes.
the slow text effect. This may be a regression, but it's fixed now.
Ren'Py now takes some new command line options:
* --savedir allows the user to set the directory in which Ren'Py saves
data in. This allows Ren'Py games to be run from a non-writable
directory.
* --version prints the version of Ren'Py.
OGG Vorbis and especially OGG Speex files. Also, made voice
automatically sustain through pauses.
Fixed a bug in Ren'Py that was causing the voice extra to
malfunction. The bug was caused by the contents of the config
namespace being copied at the wrong time, leading it to not be
restored properly to default values when Ren'Py was reset (as the Main
Menu choice.)
Removed a leftover debugging statement that caused Ren'Py to spew out
all of the say statements in .rpy files it parsed.
rather than just images with filenames. It was also updated to support
tuples, corresponding to composing one image atop another, and lists,
which display things in sequence. To support this, the tuples used by
gallery take a third argument which gives a filename which is used,
somewhat indirectly, to compute the thumbnail.
Empty strings are now allowed in Say statements, although it's not
immediately obvious to me why they would be used, except in some
strange cases, or as placeholders.
contiguously on disk. This allows us to use disk access to retrieve
files from archives, whereas previously the files had to be
reassembled in memory before use. Eliminating this memory assembly can
drop the resident size of Ren'Py significantly. (When music was
playing, there was a memory overhead equal to double the size of the
playing file... this has been eliminated.) While Ren'Py remains
compatible with the older-format archives, regenerating the archives
for a game allows it to take advantage of the new format.
time, rather than pausing and restarting sound playback as
necessary. This eliminates popping and errors in some edge cases, like
playing a very short sound.
<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><aname="Game_Menu"id="Game_Menu"></a></p>
<h3><spanclass="editsection">[<ahref="/w/index.php?title=renpy/Help&action=edit&section=2"title="Edit section: Game Menu">edit</a>]</span><spanclass="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>
<h3><spanclass="editsection">[<ahref="/w/index.php?title=renpy/Help&action=edit&section=3"title="Edit section: Key and Mouse Bindings">edit</a>]</span><spanclass="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>
<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 <ahref="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>
contents += _("# 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")
contents += "\n"
try:
os.makedirs(dir)
except:
pass
contents = u"\uFEFF"
contents += _("# 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")
# 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_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, 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.")
OK_TEXT = _("Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device.")
PHONE_TEXT = _("Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button.")
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.")
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.")
PLAY_KEYS_TEXT = _("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.")
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.")
$ 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"))
interface.error(_("Errors were detected when running the project. Please ensure the project runs without errors before building distributions."))
return
label build_distributions:
call build_update_dump
if not project.current.dump["build"]["directory_name"]:
jump build_missing
call screen build_distributions
label build_missing:
python hide:
interface.yesno(_("Your project does not contain build information. Would you like to add build information to the end of options.rpy?"), yes=Return(True), no=Jump("front_page"))
# The priority of the editor. Lower priorities will come later
# in the list.
self.priority = priority
# The name of the editor.
self.name = name
# Is the editor installed?
self.installed = name in editors
# The dlc needed to install the editor.
self.dlc = dlc
# A description of the editor.
self.description = description
# A description of the download.
self.dldescription = dldescription
# An error message to display if the editor failed to start.
self.error_message = error_message
def fancy_scan_editors():
"""
Creates the list of FancyEditorInfo objects.
"""
global fancy_editors
scan_all()
fei = fancy_editors = [ ]
# Editra.
ED = _("{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.")
EDL = _("{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.")
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
class EditAll(Action):
"""
Opens all scripts that are part of the current project in a web browser.
"""
def __init__(self):
return
def __call__(self):
if not check_editor():
return
scripts = project.current.script_files()
scripts = [ i for i in scripts if not i.startswith("game/tl/") ]
scripts.sort(key=lambda fn : fn.lower())
for fn in [ "game/screens.rpy", "game/options.rpy", "game/script.rpy" ]:
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
screen editor:
frame:
style_group "l"
style "l_root"
window:
has vbox
label _("Select Editor")
add HALF_SPACER
hbox:
frame:
style "l_indent"
xfill True
viewport:
scrollbars "vertical"
mousewheel True
has vbox
text _("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.") style "l_small_text"
text _("Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'.")
interface.interaction(_("PROJECTS DIRECTORY"), _("Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"), _("This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."),)
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 = renpy.fsdecode(choice)
if path is None:
path = default_path
interface.info(_("Ren'Py has set the projects directory to:"), "[path!q]", path=path)
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"
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."
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 ?"
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."
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."
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'."
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:"
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."
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 "Androidパッケージをビルドするためには{a=http://www.renpy.org/dl/android}RAPT{/a}をダウンロードして解凍し、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 はインストールされましたが、Androidパッケージをビルドする前に Android SDK もインストールする必要があります。このために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 "現在のプロジェクトは設定されていません。「設定」を利用してビルド前に設定してください。"
# 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 "「ビルド」を選択して現在のプロジェクトをビルドするか、Android デバイスを接続して「ビルド & インストール」を選択し、ビルド後そのデバイスにインストールしてください。"
# 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 "Android Phoneをエミュレートします。\n\nタッチ入力はマウスを利用してエミュレートされますが、ボタン押下時のみです。Escapeはメニューボタン、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 "Android tabletをエミュレートします。\n\nタッチ入力はマウスを利用してエミュレートされますが、ボタン押下時のみです。Escapeはメニューボタン、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 "Android OUYAをエミュレートします。\n\nコントローラーの入力は矢印キー、Enterはセレクトボタン、Escapeはメニューボタン、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 key を含むファイルをエディターで開いてください。\n\nこれはアプリが拡張APKを使用する場合のみ必要となります。詳細はドキュメントを参照してください。"
# game/android.rpy:25
old "Builds the Android package."
new "Androidパッケージをビルドします。"
# game/android.rpy:26
old "Builds the Android package, and installs it on an Android device connected to your computer."
new "Androidパッケージをビルドし、コンピューターに接続されたAndroidデバイスにインストールします。"
# game/android.rpy:142
old "{a=%s}%s{/a}"
new "{a=%s}%s{/a}"
# game/android.rpy:151
old "QUESTION"
new "質問"
# game/android.rpy:351
old "Android: [project.current.name!q]"
new "Android: [project.current.name!q]"
# game/android.rpy:371
old "Emulation:"
new "エミュレーター:"
# game/android.rpy:379
old "Phone"
new "Phone"
# game/android.rpy:383
old "Tablet"
new "Tablet"
# game/android.rpy:387
old "Television / OUYA"
new "Television / OUYA"
# game/android.rpy:399
old "Build:"
new "ビルド:"
# game/android.rpy:407
old "Install SDK & Create Keys"
new "SDKのインストール & キーの作成"
# game/android.rpy:411
old "Configure"
new "設定"
# game/android.rpy:415
old "Build Package"
new "パッケージのビルド"
# game/android.rpy:419
old "Build & Install"
new "ビルド & インストール"
# 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 "Windowsでは、Androidパッケージのビルドに32-bitのJava開発キットが必要です。JDKはJREとは異なるため、JDKが無くてもJavaが利用できます。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}JDKのダウンロードとインストール{/a}を行い、Ren'Pyランチャーを再起動して下さい。"
# 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 "Androidパッケージをビルドするには、RAPTをダウンロード・展開し、Ren'Pyのディレクトリーに設置して下さい。その後、Ren'Pyを再起動して下さい。"
# game/android.rpy:504
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 "Androidアプリをパッケージングする前に、RAPT(Ren'Py Android Packaging Tool)をダウンロードする必要があります。今すぐダウンロードしますか?"
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 "このコンピュータはソフトウェアレンダリングを使用しています。"
# renpy/common/00gltest.rpy:119
old "This computer is not using shaders."
new "このコンピューターはシェーダーを使用していません。"
# 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ウェブセットアップが開始されました。タスクバーに最小化された状態で開始したので、画面に従って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} MicrosoftのDirectXウェブセットアッププログラムは、デフォルトでBingツールバーをインストールします。このツールバーが不要な場合は、対応したチェックボックスを解除して下さい。"
# 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 "再起動"
translate japanese strings:
# renpy/common/00keymap.rpy:168
old "Saved screenshot as %s."
new "スクリーンショットを %s に保存しました。"
translate japanese 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これによって未保存のゲームが失われます。"
# 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 "本当に未読の会話、もしくは次の選択肢までスキップしますか?"
translate japanese strings:
# renpy/common/00library.rpy:77
old "Skip Mode"
new "スキップモード"
# renpy/common/00library.rpy:80
old "Fast Skip Mode"
new "高速スキップモード"
translate japanese 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 "アップデートがキャンセルされました。"
translate japanese 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 "次へ"
translate japanese strings:
# renpy/common/_compat/preferences.rpym:411
old "Joystick Mapping"
new "ジョイスティックのマッピング"
translate japanese 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."
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "{b}[total]{/b} 中 {b}[complete]{/b} ファイルが処理されました。"
# game/distribute.rpy:917
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
new "すべてのパッケージがビルドされました。\n\nパーミッション情報のために、Windows上でのLinuxやMacintosh用の配布物の解凍、再圧縮はサポートされません。"
# game/distribute.rpy:358
old "No packages are selected, so there's nothing to do."
new "パッケージが選択されていないため、何もすることがありません。"
# game/distribute.rpy:335
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
new "配布物のビルドに失敗しました:\n\nbuild.directory_name 変数にスペース、コロン、セミコロンを含めてはいけません。"
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}推奨{/b} スペルチュックのような開発目的のインターフェースや機能を簡単に使用可能なベータエディターです。Editraは現在中国、韓国、日本語の入力に必要な IME のサポートに欠陥があります。"
# 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}推奨{/b} スペルチェックのような開発目的のインターフェースや機能を簡単に使用可能なベータエディターです。Editraは現在中国、韓国、日本語の入力に必要な IME のサポートに欠陥があります。LinuxではEditraはwxpythonを必要とします。"
# game/editor.rpy:137
old "This 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 "22MB までのダウンロードが必要です。"
# game/editor.rpy:157
old "1.8 MB download required."
new "1.8 MB のダウンロードが必要です。"
# game/editor.rpy:158
old "This may have occured because Java is not installed on this system."
new "これはおそらくJavaがこのシステムにインストールされていないため発生しました。"
# game/editor.rpy:327
old "An exception occured while launching the text editor:\n[exception!q]"
new "テキストエディターの選択中にエラーが発生しました:\n[exception!q]"
# game/editor.rpy:423
old "Select Editor"
new "エディターを選択"
# 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 "テキストエディタはRen'Pyスクリプトファイルを編集するためのプログラムです。ここではRen'Pyが使用するエディターを選択可能です。存在しなければエディターは自動的にダウンロードされインストールされます。"
# game/editor.rpy:460
old "Cancel"
new "キャンセル"
translate japanese strings:
# game/editor.rpy:155
old "A mature editor that requires Java."
new "Javaを必要とする成熟したエディターです。"
# game/editor.rpy:164
old "Invokes the editor your operating system has associated with .rpy files."
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 "新しいプロジェクトで使用するテンプレートを選択してください。Ren'Pyはデフォルトのフォントとユーザーインターフェイスの言語を設定します。あなたの言語がサポートされていないなら 'english' を選択してください。"
# 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."
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:503
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:543
old "Ren'Py was unable to run python with tkinter to choose the projects directory."
new "Ren'Py はプロジェクトディレクトリーを選択するために tkinter でpythonを実行することは出来ません。"
# game/project.rpy:547
old "Ren'Py has set the projects directory to:"
new "Ren'Py は以下にプロジェクトディレクトリーを設定します:"
# 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:515
old "Launching"
new "起動中"
# game/project.rpy:584
old "Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."
new "Ren'Pyはプロジェクトディレクトリー選択のためのtkinterをPythonの実行時に読み込めませんでした。python-tkもしくはtkinterパッケージをインストールして下さい。"
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 "# Ren'Py автоматически загружает все файлы сценариев, заканчивающиеся на .rpy\n#Чтобы использовать этот файл, определите метку и прыгните (jump) к ней из другого файла.\n"
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-разрядный инструментарий разработки Java требуется, чтобы построить Android-пакеты на Windows. JDK отличен от JRE, и возможно, у вас есть Java без JDK.\n\nПожалуйста, {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}загрузите и установите JDK{/a}, и перезапустите Ren'Py Launcher."
# 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 "Чтобы строить Android-пакеты, пожалуйста, загрузите RAPT ({a=http://www.renpy.org/dl/android}отсюда{/a}), распакуйте его, и поместите его в папку Ren'Py. После этого, перезапустите Ren'Py Launcher."
# 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 установлен, но вам понадобится установить Android SDK до того, как вы сможете создавать Android-пакеты. Выберите Установить SDK, чтобы сделать это."
# 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 установлен, но отсутствует ключ. Пожалуйста, создайте новый ключ, или восстановите android.keystore."
# game/android.rpy:17
old "The current project has not been configured. Use \"Configure\" to configure it before building."
new "Текущий проект не настроен. Используйте \"Настроить\", чтобы настроить его перед сборкой."
# 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 "Выберите \"Построить\", чтобы собрать текущий проект, или присоедините Android-устройство и выберите \"Построить и Установить\", чтобы собрать и установить его на устройстве."
# 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 "Пытается эмулировать Android-телефон.\n\nПрикосновения иммитируются мышью при зажатой кнопке. Escape назначен на кнопку меню, а PageUp - на кнопку назад."
# 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 "Пытается эмулировать Android-планшет.\n\nПрикосновения иммитируются мышью при зажатой кнопке. Escape назначен на кнопку меню, а PageUp - на кнопку назад."
# 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 "Пытается эмулировать приставку OUYA.\n\nВвод контроллера назначен на клавиши со стрелками, Enter - на кнопку Select, Escape - на кнопку меню, а PageUp - на кнопку назад."
# game/android.rpy:24
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:25
old "Configures the package name, version, and other information about this project."
new "Настраивает имя пакета, версию, и другую информацию о проекте."
# game/android.rpy:26
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Это необходимо лишь для случаев, если приложение использует расширяющий APK. Прочтите документацию для больших деталей."
# game/android.rpy:27
old "Builds the Android package."
new "Собирает Android-пакет."
# game/android.rpy:28
old "Builds the Android package, and installs it on an Android device connected to your computer."
new "Собирает Android-пакет, устанавливает его на Android-устройстве, подключенном к компьютеру."
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Это приведет к потере несохраненного прогресса."
# 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 "Вы уверены, что хотите пропустить все до невиданного диалога или следующего выбора?"
# TODO: Translation updated at 2013-12-08 21:52
translate russian strings:
# renpy/common/_compat/gamemenu.rpym:337
old "Previous"
new "Предыдущий"
# renpy/common/_compat/gamemenu.rpym:344
old "Next"
new "Следующий"
# TODO: Translation updated at 2013-12-08 21:52
translate russian strings:
# renpy/common/00keymap.rpy:168
old "Saved screenshot as %s."
new "Скришнот сохранен как %s."
# TODO: Translation updated at 2013-12-08 21:52
translate russian 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 "Обновления были отменены."
# TODO: Translation updated at 2013-12-08 21:52
translate russian 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 "Насильно Отображать Програмно"
# 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 "Этот компьютер использует програмный рендеринг."
# renpy/common/00gltest.rpy:119
old "This computer is not using shaders."
new "Этот компьютер не использует шейдеры."
# 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 был запущен. Вероятно, он запустился в свернутом состоянии. Пожалуйста, следуйте инструкциям для установки 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} Установщик DirectX по умолчанию попытается установить панель инструментов Bing. Если вы этого не хотите, снимите соответствующую галочку."
# 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 "Перезапустить"
# TODO: Translation updated at 2013-12-08 21:52
translate russian 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 "вернуться"
# TODO: Translation updated at 2013-12-08 21:52
translate russian 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 "Открывает файл traceback.txt в текстовом редакторе."
# 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 в текстовом редакторе."
old "No packages are selected, so there's nothing to do."
new "Пакеты не выбраны. Делать нечего."
# game/distribute.rpy:363
old "Scanning project files..."
new "Сканирую файлы проекта..."
# game/distribute.rpy:373
old "Scanning Ren'Py files..."
new "Сканирую файлы 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 "Все пакеты были построены.\n\nВ связи с наличием информации о правах доступа, не распаковывайте дистрибутивы для Linux и Macintosh на Windows."
# game/distribute.rpy:545
old "Archiving files..."
new "Архивирую файлы..."
# game/distribute.rpy:808
old "Writing the [variant] [format] package."
new "Пишу пакет [variant] [format]"
# game/distribute.rpy:821
old "Making the [variant] update zsync file."
new "Создаю файл zsync для обновления [variant]"
# game/distribute.rpy:917
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
new "Обработано {b}[complete]{/b} из {b}[total]{/b} файлов."
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.