This is a lesser form of config.include_i686, the idea being that
the Ren'Py launcher will be whitelisted. (If it works, then we
can remove the Ren'Py icon from the launcher in the next
release.)
SDL2 only seems to check the hint once, at init time. However,
the Enable/Disable functions can be called at any time.
Fixes#2626, hopefully for good this time.
Made it so the focus_extreme function (used when arrow key is pressed if self voicing is off and no displayable on screen is currently focused) ignores displayables with keyboard_focus set to False.
Another attempt at this. It's really only the pause statment not
ending when a modal screen is up that is confusing, so we fix this
by allowing just pauses to avoid modal.
A common cause of display resets seems to be Androuid devices that
lose the egl context when going to sleep. This ensures we make
progress to actually going to sleep when this happens.
This isn't a performance enhancement, anymore, as surfaces aren't
used much any more. It was also causing a memory leak, as the
Texture kept a reference to the Surface, which kept the Surface
alive, which kept the Texture in the cache even if it should have
been purged.
This fixes a jitter problem that happens when the framerate is an
integer multiple of the movie rate. You might skip a frame because
it's a small fraction of a second early, only to have to wait for
the next frame to show it.
These can be performance critical, and involve a render to texture.
This change adds the ability to determine if the new textures have
mipmaps generated.
... which was that dynamic variables wouldn't get reset after a
rollback happened. This wasn't a huge problem, since dynamic
variables mostly were used in contexts, and contexts rarely
cause rollback.
However, we offer rollback as an option when an error in a context
occurs, which could trigger this issue.
Fixes#2599.
First off, it makes sense that if a size is being forced on a
displayable, it should fill to fit that size in possible. So
now xsize, ysize, and xysize force xfill and/or yfill in the
appropriate dimensions.
If box_wrap is true, however, fill is turned off for the last
line. This prevents it from being expanded unnaturally.
Fixes#2589, while preserving the fix for #2081.
This controller doesn't work without some other software to send
the init to it. Trying to use hidapi to initialize the controller
didn't work, and led to problems with other software that uses
USB. (And fundamentally, I don't think Ren'Py should use direct USB
access.)
So, instead, we detect the pro controller and ignore it.
The TimerState object expects to roll back, but there's an edge
case, since usually an object doesn't roll back to the start of
the interaction period when it was first created. However, due
to being reachable through a displayable that doesn't roll back,
the TimerState needs to roll back to its initial state.
Fixes#2596.
- Go back to using SDL_calloc on Windows, as it can be freed properly.
- Go back to 16 byte alignment, now that we patch ffmpeg to handle
alignment properly.
This lets a creator change the amount of time Live2D spends fading,
per the discussion at #2552.
This also changes the motion semantics to be inclusive of the
segment end time, which means the last segment of the motion will
continue forever if not faded out.
This works around the issue fixed by ffmpeg/ffmpeg@ba3e771a42
on sse3 systems, and prepares Ren'Py for other platforms that might want 32-byte alignment.
This may also help crashes (which have never been reported) with movies that have a row
length that is not a multiple of 4 pixels.
This is actually pretty rarely used, basically just for things
like:
label foo(a=1
+ 2):
...
Where an expression is inside parenthesis that exist in Python but
not Ren'Py. This inserts \ before each newline, but with the change
that it doesn't do it when inside a string, where newlines can
be meaningful.
Fixes#2549.
This helps with mipmap construction, as it means that a 1px line on
the edge can blend into transparency as well as other colors.
Fixes#2541, at least when scalling down to > 12.5%.
This will determine if the calling script was compiled in python 2
or python 3 mode, and invoke the python 2 or python 3 open function,
as appropriate.
Intended to address #2543.
Fixes#2539.
What happened is that the object was changed and then became
unreachable. Since purge_unreachable occured in change order,
the object was purged, and was restored in the new, rather than old
version.
This fixes a problem that only occured on AMD GPUs, where buttons
with a focus_mask would not be focused, probably because the
picel was being drawn in the wrong place, at least when anisotropy
is taken into account.
This is because it's possible for very small rounding errors to
cause a computed size to be infitesimally smaller than it should
be, and hence the texture to be a full pixels smaller.
Ren'Py requires that polygons used for clipping meshes or other
polygons all have the same winding order. (Counterclockwise,
in the usual Ren'Py coordinate system.) Certain matrix
multiplications can change winding order, and hence prevent
intersection from working.
This adds a pass that checks and fixes winding orders before
an intersection can occur.
Fixes#2472.
This is the strict handler built into Python, and it's used for
finding errors in Ren'Py script files. (This works around the
patch to Python 2.7 that makes surrogateescape the de-facto
default.)
* Once a rendererer is selected, keep using it even if Ren'Py is restarted.
* Store config.gl2 in persistent._gl2, and restore it if an error happens.
This should work well except for an autreload where config.gl2 is changed,
which ideally shouldn't happen.
Fixes#2457.
This is designed to fix a number of problems caused when running
on a filesystem in which a path is not representable in utf-8.
There are functions, like os.getcwdu that will attempt to decode
these paths, but fail. This ensures that paths can always round-trip
to and from unicode, which should help things work.
* Make CFBundleVersion more readable.
* Add build.mac_info_plist, to provide a more straightforward way
of customizing Info.plist, which lets the about screen be customized.
Fixes#2443.
Sleeping inside Ren'Py or Pygame_SDL2 has been proving to be
problematic. I'm not 100% sure why, though it seems Asyncify is
involved. It may have something to do with the names generated
by cython not being stable, though that's just a guess.
This avoids this problem by preventing Ren'Py from putting
SDL2 into a mode where it can block, and then explicitly
calling emscripten.sleep to emulate the original behavior.
This works around a bug that appears to manifest in the angle2
renderer when running on my radeon on Windows. When that bug
happens:
* GL_NEAREST_MIPMAP_* does not work when ANISOTROPY is non-zero.
* Setting the texture anisotropy to zero doesn't work when it has
been set to non-zero.
Hence, there's a new gl property that, when set, prevents anisotropy
from being added to newly-created textures.
Despite Tkinter being Python's de-facto GUI library, it's often not
installed by default on Linux distributions. PyGObject has very good
support on the other hand, and has the benefit of accessing the native
file picker available on a desktop through Gtk.FileChooserNative. This
commit will have the directory picker attempt to use the Gtk directory
picker first, or else fall back to the tkinter backend.
Some systems don't have libjpeg-turbo8-dev, and need libjpeg62-turbo-dev instead. Use the libjpeg-dev metapackage like https://github.com/renpy/pygame_sdl2/blob/master/README.rst does, which seems to work everywhere. Also, use `$(uname -m)` instead of hardcoding `x86_64` so the same instructions work on ARM systems too.
This fixes#2403, but also opens up some new space for shaders.
Peviously, we'd subsurface the children of a Render with mesh=True,
which would change the coordinates.
Now, the children are not cropped, which allows a shader to look up
value in a second child, if needed.
These need to be declared, but once they are they may be used
in conjunction with a normal expression. This can be used to
model clothing, pose changes, etc in conjunction with a normal
expression.
Fixes#2358.
This fixes a problem with the Haru sample model, where the masks
for her eyes were hidden and at 0 alpha, which mean that the masks
were not rendered, and hence couldn't be used.
Giving mesh True causes a flatten operation, which means that
the outline and top textures of the text become a single layer
before alpha is applied to it. Since alpha is applied once,
the colors are less murky, and we can raise the transparency
without reducing the amount of the background that shows through.
Previously, only the outermost transform would be considered, and
inner transforms would go away. With this change, the child of
the innermost transform is changed, while the outermost transform
is placed in the displayable tree.
This widens the keyboard out some, and will let us use slightly
bigger buttons.
This also adds ., and removes {, }, [, and ], which Ren'Py doesn't
like as part of input.
It hasn't been developed sinced 2013, as far as I can tell, and
the website has been down since 2019. Atom has basically replaced
it.
Editra, thank you for being part of Ren'Py.
Rather than doing weird things with offset, these now work by using
crop to crop the image to its original size. This should make pans
work better with other ATL properties.
Fixes#2320.
LOD is now controlled by u_lod_bias.
There is now a dictionary that is passed around through the gl2
renderer, properties. It's intended as the place to store
information that controls the fixed-function portions of
the GL pipeline. Right now, it controls the texture_scaling
mode (used to implement nearest neighbor rendering), and
pixel_perfect rendering, but it can be used for other things
in the future.
The full set of texture_scaling modes are now available.
It could trigger in a case where a C function in the module had the
same name as the module itself. (Like the render function in
renpy.display.render.) This causes functions that import it to
report an error.
The drawable align shader has a number of problems, most notably
that it could be triggered by accident - for example, the corners
of a Frame would trigger it. It could also move the diferent corners
of a texture differently, which would lead to blurring.
This replaces it with the concept of pixel perfect rendering. A
Render can be rendered in a pixel perfect manner if the only
transforms it has undergone are shifts by an integer number of
pixels. After a Render opts in (right now, Text is the only Render
that does so), each Model that it draws is shifted until (0, 0) is
located on an integer pixel on the screen.
Compared to drawable_align, pixel perfect rendering is simpler - by
actually transforming a point, it's easy to determine the nearest
pixel, and then move the draw by up to 1/2 of a pixel in each
axis.
After compared with the below code table, added some lacked characters.
GB 2312-80 (China)
Big 5 (Taiwan) + frequency table
JIS X 0208 (Japan) + joyo kanji
This replaces the flatten property, and explicitly flattens into
a mesh, if possible. Optionally, this takes a tuple, that
defines the number of points in the horizontal and vertical
directions that make up the mesh. (The idea being that a
vertex shader can then distort the mesh.)
The different shader variables now get prefixed with the GLSL
type - u_ for uniform, a_ for attribute, v_ for varying. This
makes sure that we're good if OpenGL adds new functions.
There are two new uniforms - u_time is the frame time, and u_random
is a vec4 with 4 random values in it.
Uniforms beginning with u_renpy and the standard uniforms (u_transform,
u_time, and u_random) are not exposed to ATL. (Since Ren'Py would just
overwrite them, anyway.)
Instead of special-casing these uniforms, they're updated by the
displayables that change them, and then config.merge_uniforms
makes sure that things like nested color matrixes and nested
alpha combine properly.
This is a dictionary that explains how to merge together uniforms
that are provided by the same shader in multiple places. For example,
the alpha should me multiplied, not replaced.
ColorMatrix is the new base class for objects that can be called
to return a Matrix. ATL can interpolate between different instances
of the same ColorMatrix subclass, and ColorMatrixes can be multiplied
together, in which case the relevant Matrixes wil be multipled
together.
Thinking about Patreon + #2255, I've realized that reusing im.matrix
is probably a bad idea. The 5x5 matrices don't make sense with
premultiplied alpha, and ATL really wants function-like objects
that help animated things.
In the redesign, matrixcolor takes either a 4x4 Matrix, or a
function-like object (a ColorMatrix object) that takes an old
object to interpolate from, a completion amount, and returns
a Matrix.
These were mostly used by the software renderer, which is no longer
performance-critical. The MMX-based stuff appears to be broken on
i686 on recent GCCs (it had been disabled on Linux for years), so
it's easy to justify removing it.
Changes all instances of `<dict>.has_key(<key>)` to `<key> in <dict>` across all Python and RenPy files, as Python 3 has removed the `has_key` method.
Excuse my grammar and missing backtick quoted content in my last commit... how embarassing.
The last commit was supposed to say: "Changed all instances of `except <type>, <var>` to `except <type> as <var>`"...
Setting size to None is used reset and few other places so we need to
keep support for clearing size in that way rather than requiring code to
be ported to explicitly setting xsize and ysize to None.
If maxsize is specified, minsize is ignored.
If not None, minsize causes the displayable to be scaled so that it fills a box of this size, while preserving aspect ratio. (Note that this means that one of the dimensions may be greater than the size of this box.)
Since there's no direct linking to OpenGL anymore, there's no reason
to delay this import, and doing so makes the Live2D API available
in the standard manner.
Generally, the resource segment Ren'Py uses will be bigger than the
one used in games. If it is, keep it. Otherwise, use the delta
between section sizes everywhere.
This provides a way to profile init blocks.
It's probably best used with something like:
init -1000 python:
config.profile_init = .2
To display any init block that takes longer than .2 seconds.
Changes to Apple's notatization system make it hard to include
unsigned executables. To fix this, we'll attempt to write the
executables after the launcher starts.
Such messages arise with
label start:
pause # eval failed here
$var = None
pause # non-existing label None here
$var = "test"
pause
call expression var
jump expression var
In addition, minor refactoring and error description change in parse_play_music to be more consistent with parse_queue_music and the new parse_stop_music
Introduce new 'voice' type in progressive_download.txt.
Predict 'voice' statements and pre-downloads them; removes files after 3mn to avoid consuming all memory.
Currently auto-voicing is not supported (may need prediction in "say" statement).
* Allow the player to select the model-based renderers.
* Remove the framerate test. (This was after seeing a Surface that
reported the error, but was working fine. Plus, it's not clear
that DX would have helped.)
* Remove the DirectX installer.
As Ren'Py become more dependent on GL for functionality and
performance, the purpose of the software renderer is to provide
error messages to players.
As a result, support for fullscreen mode and a custom mouse has
been removed.
This is a much better fit for modern computers, as it means that Ren'Py
can use the window that has been resized for it, rather than having to
restart the video system whenever a resize occurs.
The update to the newest SDL on Androd seems to call terminate,
even when the app might come back to life. It's okay to let the
OS kill us, so we do that.
It took me forever to spot that there are 2 functions with the same name, and the first one in the documentation (which we find through Ctrl+F) did not mention that.
This had mostly been true, but there were a few places where
if the android module had been importable was what mattered.
This has been fixed by moving to a unified Python library.
Very basic (static elasticity) Catmull-Rom implementation to work with knots in ATL. Slight tweak to allow a knot to be a tuple of tuples and minor documentation changes.
This is the start of integrating the renpy-build results into the
Ren'Py build process. As part of this, renpy.sh has been moved into
renpy-build, and is copied here as the dependences are built.
Per #2079.
The idea here is that music may often not be mixed with the
thought of self voicing in mind, and so it makes sense to drop
the music and sound mixers when self-voicing is enabled. The
amount to drop by is controllable from the accessibility menu,
for games where this is not desired.
This removes a the image manipulators that depend on a file from the
image cache when one of the files that are depended on change. This
is also a first draft of the function needed to load files from the
web on the fly.
Apart from being faster in some circumstances, this is close to
what other platforms (ie, Live2D) use internally, so at some point
we can avoid copying over that data.
This removes a the image manipulators that depend on a file from the
image cache when one of the files that are depended on change. This
is also a first draft of the function needed to load files from the
web on the fly.
There was a problem reported whenre Py_DECREF could cause arbitrary
pauses to occur. Now, the names stored inside renpysound are C strings,
rather than Python strings, and so they can be deallocated without
risk of triggering the garbage collector.
Locking has also been somewhat simplified - theree are now two
locks, the audio and name lock, with rules of each. The functions
now do not grab the GIL automatically, as there's no need.
This is part of the ongoing modernization program. OpenGL 1.x is
now hopelessly obsolete, so it's gone. SDL2 now supports creating
contexts for us, so we'll use it to manage the EGL path.
- Use \n separator in renpyweb_remote_files.txt
- Move download code to a new module
- load_core() now throws a DownloadNeeded exception which is caught by Image.load(), calling renpy.webloader.enqueue()
- renpyweb_remote_files.txt is now only processed if downloading is enabled
This compiles python in a .rpy file in a way that is more compatible
with Python 3. (It enables Python 3 division, and will enable Python3
.items(), .keys(), and .values().)
Cython implements .iteritems, .itervalues, and .iterkeys for dicts
in a way that works with Python 3 - so long as it knows that it's
dealing with a dict type. This add some annotations to help it out.
This is the start of a series of changes that will embrace future's
philosophy - that Python 2/3 source should be as close to Python 3
as possible - and even extended a bit, like with dictviews.
We do have to pick and choose with future - it's important that
Ren'Py remain performant over the transition period - but things
like using sys.modules to map modules to their new Python 3
locations does appeal to me.
It now triggers on: from __future__ import with_statement, division.
This should be a bit safer, because with_statement is obsolete - even if
it is used by any Python, it can be removed without changing the
semantics of the program. (We can't trigger _just_ on it, as all
old .rpycs are compiled with that flag.)
Right now, this is opted into when "from __future__ import division"
is given, and lets us program using Python 3's dict semantics while
still working in Python 2.
Probably the only way py3 Ren'Py is going to look acceptable is
to support .items(), and the only way to do that is to patch Python
2.7 to replace the method with one that returns the appropriate
proxy.
While we're at it, we can re-add iteritems() and itervalues(),
makng those accessible to older code via dict.
This is intended for use as the clip polygon, and hence it doesn't
need 3d support. (The new Mesh implermentation doesn't use this,
as it has its own polygons.)
This is part of a series of performance improvements when threaded
optimizations are enabled on Nvidia cards. (__GL_THREADED_OPTIMIZATIONS=1
on Linux.)
glGenTextures was taking a long time - 3ms! - to complete. So we
avoid it entirely, and instead allocate the texture numbers
beforehand and clear the textures without deallocating the
numbers.
This particular use case appears to be safe, but I could make Ren'Py crash with more complex async_call-s.
This may also explain some irregular crashes a while ago when letting RenPyWeb run unattended.
This is somewhat similar to running Python in two threads. In doubt, let's avoid.
Moreover, however autosave is run, the browser will freeze a bit, no significant change.
This is possible for certain things like viewports that share an
adjustement, or bars that are rendered before the corresponding
viewport. This detects this case are restores the render to a
useable state.
Turns out that a .zip can't really represent the extended
attributes used for signing some files properly, but the
tar format can. So we use that to ship things over, and
get a working .dmg.
This should fix a race condition where that could cause unprefixed
key commands (like 'v' or 'a') to trigger if KEYDOWN is present
but the TEXTINPUT hasn't been delivered yet.
This is a backport of a performance improvement from the gl2
branch, where profiling reported that rebinding the framebuffer
was very slow, and simply copying the pixels out is much
faster.
Additional stores are available as local variables in the default 'store' under their name already, consequently 'import store.mystore as mystore' is a no-op
While we could have just added it to the tuple of shaders created in
GL2DrawingContext, that would lead to creating a tuple on every
render. So instead, it's added in the shader compiler.
* Ask GL for the maximum size.
* Remove the idea of generations - we swap out the loader when a
generation is obsolete.
* Cache the fbo so changing it is needed less often.
This improves gl2 Polygons and Meshes by making it clear if a
new object is created or they're updated in place, by supporting
multiplication by matrices directly, and by including the repr
function everywhere.
Really, a quality of life improvement.
After extensive profiling my GTX 1060, it appears that using
glFrameBufferTexture2D is unacceptably slow. (300+us for just that
one call). glCopyTexImage seem to be much faster, with realistic
small texture loads (like button images) taking 60us or so.
Add support for tile="integer" to frame.
This is a version of tiling that always does an integer number of repeats, scaling as necessary to accomplish this.
This might actually change over the lifecycle of a polygon, as the
winding of the polygon changes when it goes from the pygame/Ren'Py
coordinate space to the OpenGL viewport space.
This change means it doesn't matter - polygon intersection can
always occur.
The differentiation between .deinit() and .quit() was hard to understand.
This change makes it clear - .kill_textures frees all of the OpenGL textures,
while .quit() releases all GL resources.
This is a much simpler fix for the problem in a1dd218560,
which is that the wrong scope will be given in a used screen that happens to be
constant.
The realization is that if a used screen is constant, it can't change - and hence
it doesn't need to be given a new scope at all.
Fixes#1905, where several bugs got collected into one place. The
main problem is that we need to store the actual values of
non-constant variables that, for example, change durting iteration,
while at the same time allowing things that use the scope to
update when the screen scope changes (from new parameters, or
something like SetScreenVairable).
This uses a method (scope_changed, similar to copy_on_change) to
take things that use the scope out of the cache when a scope change
happens.
- Move it to 00acessibility.rpy, where I can find it.
- sv -> alt (The old name still works.)
- Allow the creator to supply a character that's used to display
descriptive text.
The check hadn't included that, which means that text tags would
not be processed when self_closing_custom_text_tags was set, and
custom_text_tags was not.
A field (especially a global Variable) might not exists at the beginning of the interaction. This causes the application to crash e.g. if the variable is set on the 'action' of a button.
The solution is that the get_selected returns False if the given field does not exists at the moment.
Before this change, if an invaidation was to occur mid-render,
it was possible the new render would not be added to the cache.
Fixes#1856.
This also defers invalidation when a redraw is going to happen.
# Copyright 2004-2019 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -28,7 +28,7 @@ init python:
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 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_JDK_TEXT = _("A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_SDK_TEXT = _("RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this.")
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore.")
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
# This file contains strings used by RAPT, so the Ren'Py translation framework
# can find them. It's automatically generated by rapt/update_translations.py, and
# hence should not be changed by hand.
@@ -17,7 +17,8 @@ init python hide:
__("The build seems to have failed.")
__("Launching app.")
__("The build seems to have succeeded.")
__("The armeabi-v7a version works on most phones or tablets, while the x86_64 version works on the simulator and chromebooks.")
__("The arm64-v8a version works on newer Android devices, the armeabi-v7a version works on older devices, and the x86_64 version works on the simulator and chromebooks.")
__("The universal version works everywhere but is larger.")
__("What is the full name of your application? This name will appear in the list of installed applications.")
__("What is the short name of your application? This name will be used in the launcher, and for application shortcuts.")
__("What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot.")
@@ -41,16 +42,17 @@ init python hide:
__("Both, in one app.")
__("Neither.")
__("Would you like to create an expansion APK?")
__("Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}.")
__("No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded.")
__("Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)")
__("Do you want to allow the app to access the Internet?")
__("Do you want to automatically update the generated project?")
__("Do you want to automatically update the Java source code?")
__("Yes. This is the best choice for most projects.")
__("No. This may require manual updates when Ren'Py or the project configuration changes.")
__("Unknown configuration variable: {}")
__("I'm compiling a short test program, to see if you have a working JDK on your system.")
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue.")
__("The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variabe to use a different version of Java.")
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue.")
__("The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java.")
__("The JDK is present and working. Good!")
__("The Android SDK has already been unpacked.")
__("Do you accept the Android SDK Terms and Conditions?")
@@ -59,12 +61,13 @@ init python hide:
__("I've finished unpacking the Android SDK.")
__("I'm about to download and install the required Android packages. This might take a while.")
__("I was unable to accept the Android licenses.")
__("I was unable to accept the Android licenses.")
__("I was unable to install the required Android packages.")
__("I've finished installing the required Android packages.")
__("You set the keystore yourself, so I'll assume it's how you want it.")
__("You've already created an Android keystore, so I won't create a new one for you.")
__("I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?")
__("I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\n\You also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?")
__("I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?")
__("Please enter your name or the name of your organization.")
__("Could not create android.keystore. Is keytool in your path?")
__("I've finished creating android.keystore. Please back it up, and keep it in a safe place.")
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
if code:
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
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)
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)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
SIL OPEN FONT LICENSE
Version 1.1 - 26 February 2007
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,
to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework
in which fonts may be shared and improved in partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold
by themselves.
The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided
that any reserved names are not used by derivative works.
The fonts and derivatives, however, cannot be released under any other type of license.
The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,
embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,
may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,
provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,
human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields
can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written
permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented
to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise
any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit
written permission.
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed
under any other license. The requirement for fonts to remain under this license does not apply to any document created using
the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.
IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-4-*.zip", patterns)
jump front_page
screen install():
frame:
style_group "l"
style "l_root"
window:
has vbox
label _("Install Libraries")
add HALF_SPACER
hbox:
frame:
style "l_indent"
xfill True
viewport:
scrollbars "vertical"
mousewheel True
has vbox
text _("This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed.")
add HALF_SPACER
add SPACER
textbutton _("Install Live2D Cubism SDK for Native"):
action Jump("install_live2d")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc.")
add SPACER
text _("Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support.")
add SPACER
if not achievement.has_steam:
textbutton _("Install Steam Support"):
action Jump("install_steam")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}.")
else:
textbutton _("Install Steam Support")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("Steam support has already been installed.")
new "Pendant que [what!q], une erreur est survenue:"
old "While [what!qt], an error occured:"
new "Pendant que [what!qt], une erreur est survenue:"
# interface.rpy:356
old "[exception!q]"
@@ -819,7 +819,7 @@ translate french strings:
# navigation.rpy:249
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
new "Aucun commentaire «TODO» trouvé.\n\nPour en créer un, écrivez \"# TODO\" dans le script."
new "Aucun commentaire «TODO» trouvé.\n\nPour en créer un, écrivez \"# TODO\" dans le script."
# navigation.rpy:256
old "The list of names is empty."
@@ -919,7 +919,7 @@ translate french strings:
# preferences.rpy:173
old "Show templates"
new "Afficher les modèles"
new "Afficher les modèles"
# preferences.rpy:174
old "Show edit file section"
@@ -1115,7 +1115,7 @@ translate french strings:
# updater.rpy:108
old "A preview of the next version of Ren'Py that can be used for testing and taking advantage of new features, but not for final releases of games."
new "Un aperçu de la prochaine version de Ren’Py qui peut être utilisée pour faire des tests et profiter de toutes nouvelles fonctionnalités, mais par pour créer de nouveaux jeux."
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és, mais pas pour créer de nouveaux jeux."
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "イメージキャッシュ: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00accessibility.rpy:76
old "Font Override"
new "フォントオーバーライド"
# renpy/common/00accessibility.rpy:80
old "Default"
new "デフォルト"
# renpy/common/00accessibility.rpy:84
old "DejaVu Sans"
new "DejaVu Sans"
# renpy/common/00accessibility.rpy:88
old "Opendyslexic"
new "Opendyslexic"
# renpy/common/00accessibility.rpy:94
old "Text Size Scaling"
new "テキストサイズのスケーリング"
# renpy/common/00accessibility.rpy:100
old "Reset"
new "リセット"
# renpy/common/00accessibility.rpy:105
old "Line Spacing Scaling"
new "行間のスケーリング"
# renpy/common/00accessibility.rpy:117
old "Self-Voicing"
new "セルフボイシング"
# renpy/common/00accessibility.rpy:121
old "Off"
new "オフ"
# renpy/common/00accessibility.rpy:125
old "Text-to-speech"
new "テキストを読む"
# renpy/common/00accessibility.rpy:129
old "Clipboard"
new "クリップボード"
# renpy/common/00accessibility.rpy:133
old "Debug"
new "デバッグ"
# renpy/common/00accessibility.rpy:191
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "このメニューのオプションはアクセス性を改善するためのものです。すべてのゲームで動作するわけではなく、特定の組合せではゲームを正常にレンダリングしないでしょう。これはゲームやエンジンの問題ではありません。フォント変更時に最良の結果を得るには、テキストサイズをオリジナルのままにしてください。"
old "short: Shorten the representation of objects on the console (default)."
new "short: コンソール上のオブジェクトを短く表現する(デフォルト)"
# renpy/common/00console.rpy:690
old "long: Print the full representation of objects on the console."
new "long: コンソール上のオブジェクトを全て表現する"
translate japanese strings:
# renpy/common/00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "watch <expression>: python式をウォッチ\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: ユニコード文字列中でのユニコードシンボルのエスケープを有効化"
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: ユニコード文字列中でのユニコードシンボルのエスケープを無効化し (default) として表示"
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
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."
@@ -51,7 +51,7 @@ translate japanese strings:
# android.rpy:35
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 デバイスを接続して「ビルド & インストール」を選択し、ビルド後そのデバイスにインストールしてください。"
new "「ビルド」を選択して現在のプロジェクトをビルドするか、Android デバイスを接続して「ビルドとインストール」を選択し、そのデバイスにインストールしてください。"
# android.rpy:37
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."
@@ -135,7 +135,7 @@ translate japanese strings:
# android.rpy:365
old "Configure"
new "設定"
new "構成の設定"
# android.rpy:369
old "Build Package"
@@ -143,7 +143,7 @@ translate japanese strings:
# android.rpy:373
old "Build & Install"
new "ビルド & インストール"
new "ビルドとインストール"
# android.rpy:377
old "Build, Install & Launch"
@@ -606,8 +606,8 @@ translate japanese strings:
new "エラー"
# interface.rpy:356
old "While [what!q], an error occured:"
new "[what!q] 中にエラーが発生しました:"
old "While [what!qt], an error occured:"
new "[what!qt] 中にエラーが発生しました:"
# interface.rpy:356
old "[exception!q]"
@@ -623,7 +623,7 @@ translate japanese strings:
# interface.rpy:386
old "File and directory names must consist of ASCII characters."
new "ファイル、ディレクトリー名はアスキーコードの文字列で構成される必要があります。"
new "ファイル、ディレクトリー名はアスキーコードの文字列でなければなりません。"
# interface.rpy:454
old "PROCESSING"
@@ -1011,7 +1011,7 @@ translate japanese strings:
# translations.rpy:170
old "Merge String Translations"
new "文字列の翻訳を併合"
new "文字列の翻訳を統合"
# translations.rpy:175
old "Replace existing translations"
@@ -1027,7 +1027,7 @@ translate japanese strings:
# translations.rpy:200
old "The extract command allows you to extract string translations from an existing project into a temporary file.\n\nThe merge command merges extracted translations into another project."
new "抽出コマンドは、既存のプロジェクトから文字列の翻訳(台詞以外の翻訳)を一時ファイルとして抽出します。\n\n併合コマンドは、抽出した翻訳を他のプロジェクトに併合します。"
new "抽出コマンドは、このプロジェクトから文字列の翻訳(台詞以外の翻訳)を一時ファイルとして抽出します。\n\n統合コマンドは、抽出した翻訳をこのプロジェクトに統合します。"
# translations.rpy:224
old "Ren'Py is generating translations...."
@@ -1047,11 +1047,11 @@ translate japanese strings:
# translations.rpy:271
old "Ren'Py is merging string translations..."
new "Ren'Py は文字列の翻訳を併合しています…"
new "Ren'Py は文字列の翻訳を統合しています…"
# translations.rpy:274
old "Ren'Py has finished merging [language] string translations."
new "Ren'Py は [language] の文字列の翻訳を併合しました。"
new "Ren'Py は [language] の文字列の翻訳を統合しました。"
# translations.rpy:282
old "Updating default interface translations..."
@@ -1321,3 +1321,434 @@ translate japanese strings:
# front_page.rpy:221
old "Actions"
new "アクション"
translate japanese strings:
# game/add_file.rpy:37
old "The file name may not be empty."
new "ファイル名が与えられていません。"
# game/android.rpy:31
old "A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "ウィンドウズでアンドロイドパッケージをビルドするには、 64-bit/x64 Java 8 Development Kit が必要になります。 JDK は JRE とは違うもので、Java には含まれていません。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK{/a}をダンロード、インストールしてから Ren'Py ランチャーを再起動してください。"
# game/android.rpy:50
old "Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device."
new "Android Studio からアクセスできるデバッグビルドを選択する。 デバッグビルドとリリースビルドを切り替えるには、デバイスからアンインストールする必要があります。"
# game/android.rpy:51
old "Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device."
new "ストアへアップロード可能なリリースビルドを選択する。 デバッグビルドとリリースビルドを切り替えるには、デバイスからアンインストールする必要があります。"
# game/androidstrings.rpy:7
old "{} is not a directory."
new "{} はディレクトリーではありません。"
# game/androidstrings.rpy:8
old "{} does not contain a Ren'Py game."
new "{} に Ren'Py のゲームは含まれていません。"
# game/androidstrings.rpy:9
old "Run configure before attempting to build the app."
new "アプリをビルドする前に構成を変更する。"
# game/androidstrings.rpy:10
old "Google Play support is enabled, but build.google_play_key is not defined."
new "Google Play サポートは有効になりましたが、 build.google_play_key が定義されていません。"
# game/androidstrings.rpy:11
old "Updating project."
new "プロジェクトを更新しています。"
# game/androidstrings.rpy:12
old "Creating assets directory."
new "アセットディレクトリーを作成しています"
# game/androidstrings.rpy:13
old "Creating expansion file."
new "拡張ファイルを作成しています。"
# game/androidstrings.rpy:14
old "Packaging internal data."
new "内部データをパッケージングしています。"
# game/androidstrings.rpy:15
old "I'm using Gradle to build the package."
new "パッケージのビルドに Gradle を使用しています。"
# game/androidstrings.rpy:16
old "Uploading expansion file."
new "拡張ファイルをアップロードしています。"
# game/androidstrings.rpy:17
old "The build seems to have failed."
new "ビルドに失敗したようです"
# game/androidstrings.rpy:18
old "Launching app."
new "アプリを起動しています。"
# game/androidstrings.rpy:19
old "The build seems to have succeeded."
new "ビルドに成功したようです。"
# game/androidstrings.rpy:20
old "The arm64-v8a version works on newer Android devices, the armeabi-v7a version works on older devices, and the x86_64 version works on the simulator and chromebooks."
new "arm64-v8a version は新しいアンドロイドデバイスで動きます。 armeabi-v7a version は古いデバイスで動きます。 the x86_64 version はシミュレーターやクロームブックで動きます。"
# game/androidstrings.rpy:21
old "What is the full name of your application? This name will appear in the list of installed applications."
new "アプリのフルネームはなんですか? フルネームはインストール済みアプリの一覧に表示されます。"
# game/androidstrings.rpy:22
old "What is the short name of your application? This name will be used in the launcher, and for application shortcuts."
new "アプリのショートネームは何ですか? ショートネームはランチャーやショートカットで使われます。"
# game/androidstrings.rpy:23
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
new "パッケージ名はなんですか?\n\nこれは通常 com.domain.program や com.domain.email.program の形を取ります。 ASCII 文字とドットのみで構成され、最低一つのドットを含まなければなりません。"
# game/androidstrings.rpy:24
old "The package name may not be empty."
new "パッケージ名が与えられていません。"
# game/androidstrings.rpy:25
old "The package name may not contain spaces."
new "パッケージ名はスペースを含んではいけません。"
# game/androidstrings.rpy:26
old "The package name must contain at least one dot."
new "パッケージ名は最低一つのドットを含まなければなりません。"
# game/androidstrings.rpy:27
old "The package name may not contain two dots in a row, or begin or end with a dot."
new "パッケージ名は2つのドットが連続したり、最初や最後がドットになってはいけません。"
# game/androidstrings.rpy:28
old "Each part of the package name must start with a letter, and contain only letters, numbers, and underscores."
new "パッケージ名の各部分は文字から始めまり、文字・数字・アンダースコアのみを使用しなければなりません"
# game/androidstrings.rpy:29
old "{} is a Java keyword, and can't be used as part of a package name."
new "{} は Java のキーワードのため、パッケージ名に使用することはできません。."
# game/androidstrings.rpy:30
old "What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots."
new "アプリケーションのバージョンはなんですか?\n\nバージョンは他の人に分かりやすい名前にします。数字とドットのみが使用できます。"
# game/androidstrings.rpy:31
old "The version number must contain only numbers and dots."
new "バージョンナンバーは数字とドットのみが使用できます。"
# game/androidstrings.rpy:32
old "What is the version code?\n\nThis must be a positive integer number, and the value should increase between versions."
new "バージョンコードは何ですか?\n\nこれは正の整数で、バージョンが上がるごとに増えていきます。"
# game/androidstrings.rpy:33
old "The numeric version must contain only numbers."
new "バージョンコードは数字のみが使用できます。"
# game/androidstrings.rpy:34
old "How would you like your application to be displayed?"
new "どのようにアプリケーションを表示したいですか?"
# game/androidstrings.rpy:35
old "In landscape orientation."
new "ランドスケープ(横向き)"
# game/androidstrings.rpy:36
old "In portrait orientation."
new "ポートレイト(縦向き)"
# game/androidstrings.rpy:37
old "In the user's preferred orientation."
new "ユーザーが選択した向き"
# game/androidstrings.rpy:38
old "Which app store would you like to support in-app purchasing through?"
new "アプリ内課金をどのアプリストアに対応させますか?"
# game/androidstrings.rpy:39
old "Google Play."
new "Google Play"
# game/androidstrings.rpy:40
old "Amazon App Store."
new "Amazon App Store"
# game/androidstrings.rpy:41
old "Both, in one app."
new "一つのアプリで両方とも"
# game/androidstrings.rpy:42
old "Neither."
new "どちらも対応させない"
# game/androidstrings.rpy:43
old "Would you like to create an expansion APK?"
new "APK 拡張ファイルを作成しますか?"
# game/androidstrings.rpy:44
old "No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded."
new "いいえ。Google Play では100MBのサイズ制限がありますが、他のストアを通したり、直接配布することが可能です。"
# game/androidstrings.rpy:45
old "Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)"
new "はい。2GBのサイズまで作成できますが、 Google Play 以外では動きません。(ドキュメンテーションを参照してください。)"
# game/androidstrings.rpy:46
old "Do you want to allow the app to access the Internet?"
new "アプリのインターネット接続を許可しますか?"
# game/androidstrings.rpy:47
old "Do you want to automatically update the generated project?"
new "作成したプロジェクトを自動的に更新させますか?"
# game/androidstrings.rpy:48
old "Yes. This is the best choice for most projects."
new "はい。多くのプロジェクトで最良の選択です。"
# game/androidstrings.rpy:49
old "No. This may require manual updates when Ren'Py or the project configuration changes."
new "いいえ。Ren'Py やプロジェクトの構成が変更されるごとに、手動でアップデートする必要があります。"
# game/androidstrings.rpy:50
old "Unknown configuration variable: {}"
new "未知の構成変数: {}"
# game/androidstrings.rpy:51
old "I'm compiling a short test program, to see if you have a working JDK on your system."
new "小さなテストプログラムをコンパイルして、あなたのシステムで JDK が動作するか確認しています。"
# game/androidstrings.rpy:52
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue."
new "テストファイルのコンパイルに javac が利用できません。Java Development Kit をダウンロードしていないなら、\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nからダウンロードしてください。 JDK は JRE とは違うもので、Java には含まれていません。JDK がなければ継続できません。"
# game/androidstrings.rpy:53
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
old "Do you accept the Android SDK Terms and Conditions?"
new "Android SDK の契約内容・条件を承諾しますか?"
# game/androidstrings.rpy:57
old "I'm downloading the Android SDK. This might take a while."
new "Android SDK をダウンロードしています。この処理にはしばらくかかります。"
# game/androidstrings.rpy:58
old "I'm extracting the Android SDK."
new "Android SDK を解凍しています。"
# game/androidstrings.rpy:59
old "I've finished unpacking the Android SDK."
new "Android SDK の解凍を完了しました。"
# game/androidstrings.rpy:60
old "I'm about to download and install the required Android packages. This might take a while."
new "必要な Android パッケージをダウンロードしてインストールしようとしています。この処理にはしばらくかかります。"
# game/androidstrings.rpy:61
old "I was unable to accept the Android licenses."
new "Android ライセンスを承諾出来ませんでした。"
# game/androidstrings.rpy:62
old "I was unable to install the required Android packages."
new "必要な Android パッケージをインストールできませんでした。"
# game/androidstrings.rpy:63
old "I've finished installing the required Android packages."
new "必要な Android パッケージのインストールが終了しました。"
# game/androidstrings.rpy:64
old "You set the keystore yourself, so I'll assume it's how you want it."
new "keystore が設定されているため、あなた自身で設定したいのだと判断しました。"
# game/androidstrings.rpy:65
old "You've already created an Android keystore, so I won't create a new one for you."
new "Android keystore が既に作成済みのため、新しい keystore の作成は行いません。"
# game/androidstrings.rpy:66
old "I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?"
new "アプリケーションに署名するキーを発行できます。このキーでアプリケーションに署名すると、アンドロイドマーケットや他のストアで配布できるようになります。\n\nキーを作成しますか?"
# game/androidstrings.rpy:67
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "android.keystore ファイルを作成します。\n\nこのファイルはバックアップしてください。もし失くした場合はアプリをアップグレードすることが出来なくなります。\n\nまた、このファイルは安全な場所に保管してください。このファイルが悪意のある人間の手に渡ると、アプリのフェイクバージョンを作られたり、ユーザーデータを盗まれる恐れがあります。\n\nandroid.keystore のバックアップを作成し、安全な場所に保存しますか?"
# game/androidstrings.rpy:68
old "Please enter your name or the name of your organization."
new "あなたの名前か組織名を入力してください。"
# game/androidstrings.rpy:69
old "Could not create android.keystore. Is keytool in your path?"
new "android.keystore を作成できませんでした。keytool があなたのパスに存在しますか?"
# game/androidstrings.rpy:70
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
new "android.keystore の作成を終了しました。 このファイルをバックアップして、安全な場所に保管してください。"
# game/androidstrings.rpy:71
old "It looks like you're ready to start packaging games."
new "ゲームのパッケージングの準備が整ったようです。"
# game/choose_theme.rpy:507
old "changing the theme"
new "テーマを変更しています。"
# game/front_page.rpy:252
old "Web"
new "Web"
# game/front_page.rpy:252
old "(Beta)"
new "(Beta)"
# game/front_page.rpy:198
old "audio"
new "audio"
# game/gui7.rpy:429
old "creating a new project"
new "新しいプロジェクトを作成しています。"
# game/gui7.rpy:433
old "activating the new project"
new "新しいプロジェクトを認証しています。"
# game/interface.rpy:372
old "opening the log file"
new "ログファイルを開いています。"
# game/itch.rpy:43
old "Downloading the itch.io butler."
new "itch.io butler をダウンロードしています。"
# game/updater.rpy:101
old "The update channel controls the version of Ren'Py the updater will download."
new "アップロードチャンネルはアップデーターのバージョンをコントロールします。"
# game/updater.rpy:110
old "• This version is installed and up-to-date."
new "• このバージョンは最新の状態でインストールされています。"
# game/updater.rpy:118
old "%B %d, %Y"
new "%B %d, %Y"
# game/updater.rpy:188
old "Fetching the list of update channels"
new "アップデートチャンネルのリストを取得しています。"
# game/updater.rpy:194
old "downloading the list of update channels"
new "アップデートチャンネルのリストをダウンロードしています。"
# game/updater.rpy:198
old "parsing the list of update channels"
new "アップデートチャンネルのリストを解析しています。"
# game/web.rpy:118
old "Web: [project.current.display_name!q]"
new "Web: [project.current.display_name!q]"
# game/web.rpy:148
old "Build Web Application"
new "ウェブアプリケーションをビルドする"
# game/web.rpy:149
old "Build and Open in Browser"
new "ビルドしてブラウザで開く"
# game/web.rpy:150
old "Open in Browser"
new "ブラウザで開く"
# game/web.rpy:151
old "Open build directory"
new "ビルドしたディレクトリーを開く"
# game/web.rpy:155
old "Support:"
new "サポート:"
# game/web.rpy:163
old "RenPyWeb Home"
new "RenPyWeb ホーム"
# game/web.rpy:164
old "Beuc's Patreon"
new "Beuc's Patreon"
# game/web.rpy:182
old "Ren'Py web applications require the entire game to be downloaded to the player's computer before it can start."
new "Ren'Py ウェブアプリケーションは、ゲームをスタートする前に、プレイヤーのコンピューターにデータを全てダウンロードする必要があります。"
# game/web.rpy:186
old "Current limitations in the web platform mean that loading large images, audio files, or movies may cause audio or framerate glitches, and lower performance in general."
new "現在のウェブプラットホームの限界により、一般的なパフォーマンスの低下や、大きな画像・音声・動画ファイルのロードによる音声やフレームレートの異常が発生します。"
# game/web.rpy:195
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "ウェブアプリをパッケージングするために、RenPyWeb (Ren'Py's web support) をダウンロードする必要があります。 RenPyWeb をダウンロードしますか?"
translate japanese strings:
# game/androidstrings.rpy:47
old "Do you want to automatically update the Java source code?"
new "Javaのソースコードを自動的に更新したいですか?"
# game/choose_directory.rpy:93
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Ren'Pyはpythonでtkinterkを実行してディレクトリを選択できません。python3-tkまたはtkinterパッケージをインストールしてください。"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "Ren'Py SDKディレクトリに[zipglob]にマッチするファイルが見つからなかったため、[name!t]をインストールできませんでした。"
# game/install.rpy:76
old "Successfully installed [name!t]."
new "[name!t]のインストールに成功しました。"
# game/install.rpy:104
old "Install Libraries"
new "ライブラリのインストール"
# game/install.rpy:119
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "この画面ではRen'pyと共に配布できないライブラリをダウンロードします。これらのライブラリの一部は使用や配布前にサードパーティーのライセンスに同意が必要です。"
# game/install.rpy:134
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Custom SDK for Native {/a}はLive2Dモデルの表示サポートを追加します。Ren'Py SDK ディレクトリにCubismSdkForNative-4-{i}version{/i}.zipを置き、クリックしてインストールしてください。Live2Dと共にゲームを配布するには Live2D Inc.のライセンスに同意が必要です。"
# game/install.rpy:138
old "Open Ren'Py SDK Directory"
new "Ren'Py SDKディレクトリを開く"
# game/preferences.rpy:138
old "Install libraries"
new "ライブラリのインストール"
# game/preferences.rpy:140
old "Reset window size"
new "ウィンドウサイズリセット"
# game/web.rpy:242
old "Preparing progressive download"
new "プログレッシブダウンロードの準備"
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "画像と音声がプレイ中にダウンロード可能です。 'progressive_download.txt' ファイルが作成されるのでこれを編集して振舞を設定できます。"
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "이 메뉴의 옵션은 접근성을 향상시키기 위한 것입니다. 모든 게임에서 작동하지 않을 수 있고 일부 옵션 조합은 게임을 플레이할 수 없게 만들 수 있으며 이러한 경우 게임이나 엔진의 문제가 아닙니다. 글꼴을 변경할 때 최상의 결과를 얻으려면 글자 크기를 원래대로 유지하십시오."
new "oadlay <otslay>: oadslay hetay amegay omfray otslay"
# 00console.rpy:574
# renpy/common/00console.rpy:795
old "save <slot>: saves the game in slot"
new "avesay <otslay>: avessay hetay amegay inay otslay"
# 00console.rpy:585
# renpy/common/00console.rpy:806
old "reload: reloads the game, refreshing the scripts"
new "eloadray: eloadsray hetay amegay, efreshingray hetay criptssay"
# 00console.rpy:593
old "watch <expression>: watch a python expression"
new "atchway <expressionay>: atchway aay ythonpay expressionay"
# renpy/common/00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
old "This computer is displaying graphics slowly."
new "Histay omputercay isay isplayingday aphicsgray owlyslay."
# 00gltest.rpy:224
# renpy/common/00gltest.rpy:247
old "This computer has a problem displaying graphics: [problem]."
new "Histay omputercay ashay aay roblempay isplayingday aphicsgray: [problem]."
# 00gltest.rpy:229
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
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."
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
old "## These customizations are used by the default interface:"
new "## Hesetay ustomizationscay areay useday ybay hetay efaultday interfaceay:"
# gui.rpy:195
# gui/game/gui.rpy:195
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
old "## Choice buttons are used in the in-game menus."
new "## Hoicecay uttonsbay areay useday inay hetay inay-amegay enusmay."
# gui.rpy:218
# gui/game/gui.rpy:218
old "## File Slot Buttons"
new "## Ilefay Lotsay Uttonsbay"
# gui.rpy:220
# gui/game/gui.rpy:220
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## Hetay ositionpay ofay vlnay enu_buttonsmay."
# gui.rpy:402
# gui/game/gui.rpy:402
old "## Localization"
new "## Ocalizationlay"
# gui.rpy:404
# gui/game/gui.rpy:404
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
old "## * matches all characters, except the directory separator."
new "## * atchesmay allay aracterschay, exceptay hetay irectoryday eparatorsay."
# options.rpy:177
# gui/game/options.rpy:177
old "## ** matches all characters, including the directory separator."
new "## ** atchesmay allay aracterschay, includingay hetay irectoryday eparatorsay."
# options.rpy:179
# gui/game/options.rpy:179
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
old "## Set this to a string containing your Apple Developer ID Application to enable codesigning on the Mac. Be sure to change it to your own Apple-issued ID."
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
old "## https://www.renpy.org/doc/html/screen_special.html#input"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#inputay"
# screens.rpy:199
# gui/game/screens.rpy:199
old "## Choice screen"
new "## Hoicecay creensay"
# screens.rpy:201
# gui/game/screens.rpy:201
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#avesay ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#oadlay"
# screens.rpy:604
# gui/game/screens.rpy:602
old "Page {}"
new "Agepay {}"
# screens.rpy:604
# gui/game/screens.rpy:602
old "Automatic saves"
new "Utomaticaay avessay"
# screens.rpy:604
# gui/game/screens.rpy:602
old "Quick saves"
new "Uickqay avessay"
# screens.rpy:610
# gui/game/screens.rpy:608
old "## This ensures the input will get the enter event before any of the buttons do."
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "Параметры этого меню предназначены для увеличения доступности. Они могут работать не со всеми играми, а некоторые комбинации опций могут сделать игру отображаемой некорректно. Это не проблема с игрой или движком. Для достижения наилучших результатов при изменении шрифтов старайтесь сохранять размер текста таким, каким он был изначально."
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "Уменьшение громкости при озвучке через синтезатор речи"
# renpy/common/00preferences.rpy:384
old "self voicing volume drop"
new "уменьшение громкости при озвучке через синтезатор речи"
old "short: Shorten the representation of objects on the console (default)."
new "short: Сокращённое представление обектов (repr) в консоли (по умолчанию)."
# 00console.rpy:690
old "long: Print the full representation of objects on the console."
new "long: Выводить полное представление обектов (repr) в консоли."
# renpy/common/00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "watch <выражение>: наблюдать за выражением python\n watch short: укорачивает отображение отслеживаемых выражений (по умолчанию)\n watch long: делает отображение отслеживаемых выражений как есть"
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: Включает экранирование Unicode символов в строках unicode."
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: Выключает экранирование Unicode символов в строках unicode и выводит их как есть (по умолчанию)."
new "Я не смогла воспользоваться javac для компиляции тестового файла. Если у вас не установлен Инструментарий Разработки Java, пожалуйста, загрузите его с:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nJDK отличается от JRE, так что есть вероятность, что у вас установлена Java без JDK. Без функционирующего JDK я не могу продолжить."
# androidstrings.rpy:52
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variabe to use a different version of Java."
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "Судя по всему, версия Java на вашем компьютере - не JDK 8, единственная версия, поддерживаемая Android SDK. Если вам нужно установить JDK 8, вы можете скачать его с:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nТакже вы можете изменить переменную окружения JAVA_HOME, чтобы воспользоваться другой версией Java."
# androidstrings.rpy:53
@@ -418,8 +418,8 @@ translate russian strings:
new "Я могу создать для вас ключ для подписи приложения. Подпись приложения этим ключом позволит разместить его в Android Market и других магазинах приложений.\n\nХотите создать ключ?"
# androidstrings.rpy:66
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\n\\You also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Я создам ключ в файле android.keystore.\n\nВам нужно сохранить этот файл. Если вы его потеряете, то не сможете обновлять ваше приложение. n.\n\n\\Также вам нужно держать ваш ключ в безопасность. Если злоумышленникам удастся получить его, они потенциально могут создать вредоносную версию приложения и красть данные ваших пользователей.\n\nБудете ли вы хранить android.keystore и держать его в надёжном месте?"
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Я создам ключ в файле android.keystore.\n\nВам нужно сохранить этот файл. Если вы его потеряете, то не сможете обновлять ваше приложение.\n\nТакже вам нужно держать ваш ключ в безопасность. Если злоумышленникам удастся получить его, они потенциально могут создать вредоносную версию приложения и красть данные ваших пользователей.\n\nБудете ли вы хранить android.keystore и держать его в надёжном месте?"
# androidstrings.rpy:67
old "Please enter your name or the name of your organization."
old "The arm64-v8a version works on newer Android devices, the armeabi-v7a version works on older devices, and the x86_64 version works on the simulator and chromebooks."
new "Версия arm64-v8a работает на новых Android устройствах, версия armeabi-v7a требуется для старых устройств, а версия x86_64 требуется для симуляторов и хромбуков."
# front_page.rpy:252
old "Web"
new "Веб-инструменты"
# game/front_page.rpy:252
old "(Beta)"
new "(Бета)"
# interface.rpy:394
old "While [what!qt], an error occured:"
new "В процессе выполнения \"[what!qt]\" произошла ошибка:"
# interface.rpy:394
old "[exception!q]"
new "[exception!q]"
# itch.rpy:43
old "Downloading the itch.io butler."
new "Загрузка itch.io помошника"
# web.rpy:118
old "Web: [project.current.display_name!q]"
new "Web: [project.current.display_name!q]"
# web.rpy:148
old "Build Web Application"
new "Построить приложение для сети"
# web.rpy:149
old "Build and Open in Browser"
new "Построить и открыть в браузере"
# web.rpy:150
old "Open without Build"
new "Открыть без постройки"
# web.rpy:154
old "Support:"
new "Поддержка:"
# web.rpy:162
old "RenPyWeb Home"
new "RenPyWeb главная страница"
# web.rpy:163
old "Beuc's Patreon"
new "Патреон Beuc"
# web.rpy:181
old "Ren'Py web applications require the entire game to be downloaded to the player's computer before it can start."
new "Веб-приложения Ren'Py требуют, чтобы вся игра была загружена на компьютер игрока, прежде чем она запуститься."
# web.rpy:185
old "Current limitations in the web platform mean that loading large images, audio files, or movies may cause audio or framerate glitches, and lower performance in general."
new "Текущие ограничения веб-платформы означают, что загрузка больших изображений, аудиофайлов или фильмов может привести к сбоям звука или частоты смены кадров, а также к снижению производительности в целом."
# web.rpy:194
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "Перед упаковкой веб-приложений вам необходимо загрузить RenPyWeb, веб-поддержку Ren'Py. Вы хотите загрузить RenPyWeb прямо сейчас?"
# choose_theme.rpy:507
old "changing the theme"
new "смена темы"
# gui7.rpy:429
old "creating a new project"
new "создание нового проекта"
# gui7.rpy:433
old "activating the new project"
new "активация нового проекта"
# interface.rpy:372
old "opening the log file"
new "открытие лог-файла"
# updater.rpy:194
old "downloading the list of update channels"
new "загрузка списка каналов обновления"
# updater.rpy:198
old "parsing the list of update channels"
new "разбор списка каналов обновления"
# game/web.rpy:150
old "Open in Browser"
new "Открыть в браузере"
# game/web.rpy:151
old "Open build directory"
new "Открыть папку сборки"
# game/androidstrings.rpy:47
old "Do you want to automatically update the Java source code?"
new "Вы хотите автоматически обновлять исходный код Java?"
# game/choose_directory.rpy:93
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Ren'Py не смог запустить python с tkinter для выбора каталога. Пожалуйста, установите модуль python3-tk или tkinter."
# game/front_page.rpy:198
old "audio"
new "звук"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "Установка [name!t] провалилась, так как файл, соответствующий [zipglob] не был найден в папке Ren'Py SDK."
# game/install.rpy:76
old "Successfully installed [name!t]."
new "Успешно установлен [name!t]."
# game/install.rpy:104
old "Install Libraries"
new "Установка библиотек"
# game/install.rpy:119
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "Этот экран позволяет установить библиотеки, которые не могут распространяться вместе с Ren'Py. Некоторые из этих библиотек могут потребовать от вас принятия сторонней лицензии для использования или распространения."
# game/install.rpy:131
old "Install Live2D Cubism SDK for Native"
new "Установить Live2D Cubism SDK for Native"
# game/install.rpy:134
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} добавляет поддержку отображения моделей Live2D. Поместите CubismSdkForNative-4-{i}версия{/i}.zip в папку Ren'Py SDK, а затем нажмите кнопку Установить. Для распространения игры с Live2D необходимо принять лицензию от Live2D, Inc."
# game/install.rpy:138
old "Open Ren'Py SDK Directory"
new "Открыть папку Ren'Py SDK"
# game/preferences.rpy:138
old "Install libraries"
new "Установить библиотеки"
# game/preferences.rpy:140
old "Reset window size"
new "Сбросить размер окна"
# game/install.rpy:144
old "Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support."
new "Live2D в Ren'Py не поддерживается на Web, Android x86_64 (включая эмуляторы и Chrome OS), а также должен добавлятся в iOS проекты вручную. Live2D должен быть установлен заново после обновления Ren'Py и/или установки пакета поддержки Android."
# game/install.rpy:151
old "Install Steam Support"
new "Установить поддержку Steam"
# game/install.rpy:160
old "Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}."
new "Перед установкой поддержки Steam убедитесь что вы являетесь {a=https://partner.steamgames.com/}партнёром Steam{/a}."
# game/install.rpy:172
old "Steam support has already been installed."
new "Поддержка Steam уже установлена."
# game/web.rpy:242
old "Preparing progressive download"
new "Подготовка прогрессивной загрузки"
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Изображения и музыка могут загружаться во время игры. Будет создан файл 'progressive_download.txt', чтобы вы могли настроить такое поведение."
# game/androidstrings.rpy:21
old "The universal version works everywhere but is larger."
new "Универсальная версия работает на всех устройствах но занимает больше места."
# game/androidstrings.rpy:45
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
new "Автоматическая установка APK-расширения {a=https://issuetracker.google.com/issues/160942333}может не работать на Android 11{/a}."
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
new "此菜单上的选项旨在改善辅助功能。这些选项可能不适用于所有游戏,并且某些选项组合可能会导致游戏无法游玩。这不是游戏或引擎的问题。为了在更改字体时获得最佳效果,请尝试保持文字大小与原始大小相同。"
old "Are you sure you want to overwrite your save?"
new "您确定要覆盖此存档吗?"
# 00gui.rpy:373
# 00gui.rpy:377
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "读取存档将会使未保存的进度丢失。\n您确定要继续吗?"
# 00gui.rpy:374
# 00gui.rpy:378
old "Are you sure you want to quit?"
new "您确定要退出吗?"
# 00gui.rpy:375
# 00gui.rpy:379
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "您确定要返回到标题画面吗?\n此操作将会使未保存的进度丢失。"
new "您确定要返回到标题界面吗?\n此操作将会使未保存的进度丢失。"
# 00gui.rpy:376
# 00gui.rpy:380
old "Are you sure you want to end the replay?"
new "您确定要结束回放吗?"
# 00gui.rpy:377
# 00gui.rpy:381
old "Are you sure you want to begin skipping?"
new "您确定要开始快进吗?"
# 00gui.rpy:378
# 00gui.rpy:382
old "Are you sure you want to skip to the next choice?"
new "您确定要直接快进到下个选项吗?"
# 00gui.rpy:379
# 00gui.rpy:383
old "Are you sure you want to skip unseen dialogue to the next choice?"
new "您确定要跳过未读对话,直接快进到下个选项吗?"
# 00keymap.rpy:258
# 00keymap.rpy:280
old "Failed to save screenshot as %s."
new "截图保存到以下位置时失败:%s"
# 00keymap.rpy:270
# 00keymap.rpy:292
old "Saved screenshot as %s."
new "截图已保存到以下位置:%s"
# 00library.rpy:146
old "Self-voicing disabled."
new "自动朗读已关闭。"
# 00library.rpy:147
old "Clipboard voicing enabled. "
new "剪贴板朗读已开启。"
# 00library.rpy:148
old "Self-voicing enabled. "
new "自动朗读已开启。"
# 00library.rpy:150
old "bar"
new "bar"
# 00library.rpy:151
old "selected"
new "selected"
# 00library.rpy:152
old "viewport"
new "viewport"
# 00library.rpy:153
old "horizontal scroll"
new "horizontal scroll"
# 00library.rpy:154
old "vertical scroll"
new "vertical scroll"
# 00library.rpy:155
old "activate"
new "activate"
# 00library.rpy:156
old "deactivate"
new "deactivate"
# 00library.rpy:157
old "increase"
new "increase"
# 00library.rpy:158
old "decrease"
new "decrease"
# 00library.rpy:193
# 00library.rpy:195
old "Skip Mode"
new "快进"
# 00library.rpy:279
# 00library.rpy:281
old "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
new "本程序包含了由数个许可证授权的免费软件,包括 MIT 许可证和 GNU 宽松通用公共许可证。完整软件列表及源代码链接,请{a=https://www.renpy.org/l/license}访问此处{/a}。"
# 00preferences.rpy:207
# 00preferences.rpy:240
old "display"
new "display"
# 00preferences.rpy:219
# 00preferences.rpy:252
old "transitions"
new "transitions"
# 00preferences.rpy:228
# 00preferences.rpy:261
old "skip transitions"
new "skip transitions"
# 00preferences.rpy:230
# 00preferences.rpy:263
old "video sprites"
new "video sprites"
# 00preferences.rpy:239
# 00preferences.rpy:272
old "show empty window"
new "show empty window"
# 00preferences.rpy:248
# 00preferences.rpy:281
old "text speed"
new "text speed"
# 00preferences.rpy:256
# 00preferences.rpy:289
old "joystick"
new "joystick"
# 00preferences.rpy:256
# 00preferences.rpy:289
old "joystick..."
new "joystick..."
# 00preferences.rpy:263
# 00preferences.rpy:296
old "skip"
new "skip"
# 00preferences.rpy:266
# 00preferences.rpy:299
old "skip unseen [text]"
new "skip unseen [text]"
# 00preferences.rpy:271
# 00preferences.rpy:304
old "skip unseen text"
new "skip unseen text"
# 00preferences.rpy:273
# 00preferences.rpy:306
old "begin skipping"
new "begin skipping"
# 00preferences.rpy:277
# 00preferences.rpy:310
old "after choices"
new "after choices"
# 00preferences.rpy:284
# 00preferences.rpy:317
old "skip after choices"
new "skip after choices"
# 00preferences.rpy:286
# 00preferences.rpy:319
old "auto-forward time"
new "auto-forward time"
# 00preferences.rpy:300
# 00preferences.rpy:333
old "auto-forward"
new "auto-forward"
# 00preferences.rpy:307
# 00preferences.rpy:340
old "Auto forward"
new "自动前进"
# 00preferences.rpy:310
# 00preferences.rpy:343
old "auto-forward after click"
new "auto-forward after click"
# 00preferences.rpy:319
# 00preferences.rpy:352
old "automatic move"
new "automatic move"
# 00preferences.rpy:328
# 00preferences.rpy:361
old "wait for voice"
new "wait for voice"
# 00preferences.rpy:337
# 00preferences.rpy:370
old "voice sustain"
new "voice sustain"
# 00preferences.rpy:346
# 00preferences.rpy:379
old "self voicing"
new "self voicing"
# 00preferences.rpy:355
# 00preferences.rpy:388
old "self voicing volume drop"
new "self voicing volume drop"
# 00preferences.rpy:396
old "clipboard voicing"
new "clipboard voicing"
# 00preferences.rpy:364
# 00preferences.rpy:405
old "debug voicing"
new "debug voicing"
# 00preferences.rpy:373
# 00preferences.rpy:414
old "emphasize audio"
new "emphasize audio"
# 00preferences.rpy:382
# 00preferences.rpy:423
old "rollback side"
new "rollback side"
# 00preferences.rpy:392
# 00preferences.rpy:433
old "gl powersave"
new "gl powersave"
# 00preferences.rpy:398
# 00preferences.rpy:439
old "gl framerate"
new "gl framerate"
# 00preferences.rpy:401
# 00preferences.rpy:442
old "gl tearing"
new "gl tearing"
# 00preferences.rpy:413
# 00preferences.rpy:445
old "font transform"
new "font transform"
# 00preferences.rpy:448
old "font size"
new "font size"
# 00preferences.rpy:456
old "font line spacing"
new "font line spacing"
# 00preferences.rpy:464
old "system cursor"
new "system cursor"
# 00preferences.rpy:484
old "music volume"
new "music volume"
# 00preferences.rpy:414
# 00preferences.rpy:485
old "sound volume"
new "sound volume"
# 00preferences.rpy:415
# 00preferences.rpy:486
old "voice volume"
new "voice volume"
# 00preferences.rpy:416
# 00preferences.rpy:487
old "mute music"
new "mute music"
# 00preferences.rpy:417
# 00preferences.rpy:488
old "mute sound"
new "mute sound"
# 00preferences.rpy:418
# 00preferences.rpy:489
old "mute voice"
new "mute voice"
# 00preferences.rpy:419
# 00preferences.rpy:490
old "mute all"
new "mute all"
# 00preferences.rpy:500
# 00preferences.rpy:571
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "剪贴板朗读已开启。按 Shift+C 来关闭。"
# 00preferences.rpy:502
# 00preferences.rpy:573
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "自动朗读将开始朗读“[renpy.display.tts.last]”。按 Alt+Shift+V 来关闭。"
# 00preferences.rpy:504
# 00preferences.rpy:575
old "Self-voicing enabled. Press 'v' to disable."
new "自动朗读已开启。按 V 来关闭。"
# _compat\gamemenu.rpym:198
# _compat/gamemenu.rpym:198
old "Empty Slot."
new "空存档位。"
# _compat\gamemenu.rpym:355
# _compat/gamemenu.rpym:355
old "Previous"
new "上一页"
# _compat\gamemenu.rpym:362
# _compat/gamemenu.rpym:362
old "Next"
new "下一页"
# _compat\preferences.rpym:428
# _compat/preferences.rpym:428
old "Joystick Mapping"
new "手柄映射"
# _developer\developer.rpym:38
# _developer/developer.rpym:38
old "Developer Menu"
new "开发者菜单"
# _developer\developer.rpym:43
# _developer/developer.rpym:43
old "Interactive Director (D)"
new "互动导演 (D)"
# _developer\developer.rpym:45
# _developer/developer.rpym:45
old "Reload Game (Shift+R)"
new "重新加载游戏 (Shift+R)"
# _developer\developer.rpym:47
# _developer/developer.rpym:47
old "Console (Shift+O)"
new "控制台 (Shift+O)"
# _developer\developer.rpym:49
# _developer/developer.rpym:49
old "Variable Viewer"
new "变量查看器"
# _developer\developer.rpym:51
# _developer/developer.rpym:51
old "Image Location Picker"
new "图像坐标提取器"
# _developer\developer.rpym:53
# _developer/developer.rpym:53
old "Filename List"
new "文件列表"
# _developer\developer.rpym:57
# _developer/developer.rpym:57
old "Show Image Load Log (F4)"
new "显示图像加载日志 (F4)"
# _developer\developer.rpym:60
# _developer/developer.rpym:60
old "Hide Image Load Log (F4)"
new "隐藏图像加载日志 (F4)"
# _developer\developer.rpym:63
# _developer/developer.rpym:63
old "Image Attributes"
new "图像属性"
# _developer\developer.rpym:90
# _developer/developer.rpym:90
old "[name] [attributes] (hidden)"
new "[name] [attributes](隐藏)"
# _developer\developer.rpym:94
# _developer/developer.rpym:94
old "[name] [attributes]"
new "[name] [attributes]"
# _developer\developer.rpym:137
# _developer/developer.rpym:143
old "Nothing to inspect."
new "无对象可查验。"
# _developer\developer.rpym:265
# _developer/developer.rpym:154
old "Hide deleted"
new "隐藏已删除项"
# _developer/developer.rpym:154
old "Show deleted"
new "显示已删除项"
# _developer/developer.rpym:278
old "Return to the developer menu"
new "返回到开发者菜单"
# _developer\developer.rpym:425
# _developer/developer.rpym:443
old "Rectangle: %r"
new "矩形参数:%r"
# _developer\developer.rpym:430
# _developer/developer.rpym:448
old "Mouse position: %r"
new "鼠标坐标:%r"
# _developer\developer.rpym:435
# _developer/developer.rpym:453
old "Right-click or escape to quit."
new "右键点击或按下 Esc 键来退出。"
# _developer\developer.rpym:467
# _developer/developer.rpym:485
old "Rectangle copied to clipboard."
new "矩形参数已复制到剪贴板。"
# _developer\developer.rpym:470
# _developer/developer.rpym:488
old "Position copied to clipboard."
new "坐标已复制到剪贴板。"
# _developer\developer.rpym:489
# _developer/developer.rpym:506
old "Type to filter: "
new "输入关键字过滤:"
# _developer\developer.rpym:617
# _developer/developer.rpym:631
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "贴图:[tex_count] ([tex_size_mb:.1f] MB)"
# _developer\developer.rpym:621
# _developer/developer.rpym:635
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "图像缓存:[cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# _developer\developer.rpym:631
# _developer/developer.rpym:645
old "✔ "
new "✔ "
# _developer\developer.rpym:634
# _developer/developer.rpym:648
old "✘ "
new "✘ "
# _developer\developer.rpym:639
# _developer/developer.rpym:653
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ 已预载图像(良好){/color}\n{color=#fcc}✘ 未预载图像(糟糕){/color}\n{color=#fff}拖动来移动位置。{/color}"
# _developer\inspector.rpym:38
# _developer/inspector.rpym:38
old "Displayable Inspector"
new "可视组件查验器"
# _developer\inspector.rpym:61
# _developer/inspector.rpym:61
old "Size"
new "大小"
# _developer\inspector.rpym:65
# _developer/inspector.rpym:65
old "Style"
new "样式"
# _developer\inspector.rpym:71
# _developer/inspector.rpym:71
old "Location"
new "坐标"
# _developer\inspector.rpym:122
# _developer/inspector.rpym:122
old "Inspecting Styles of [displayable_name!q]"
new "正在查验 [displayable_name!q] 的样式"
# _developer\inspector.rpym:139
# _developer/inspector.rpym:139
old "displayable:"
new "displayable:"
# _developer\inspector.rpym:145
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
new " (可视组件尚无属性关联)"
# _developer\inspector.rpym:147
# _developer/inspector.rpym:147
old " (default properties omitted)"
new " (已省略默认属性)"
# _developer\inspector.rpym:185
# _developer/inspector.rpym:185
old "<repr() failed>"
new "<repr() failed>"
# _layout\classic_load_save.rpym:170
# _layout/classic_load_save.rpym:170
old "a"
new "a"
# _layout\classic_load_save.rpym:179
# _layout/classic_load_save.rpym:179
old "q"
new "q"
# 00iap.rpy:217
# 00iap.rpy:219
old "Contacting App Store\nPlease Wait..."
new "正在联系 App Store\n请稍后……"
new "正在连线 App Store\n请稍后……"
# 00updater.rpy:375
# 00updater.rpy:374
old "The Ren'Py Updater is not supported on mobile devices."
new "Py 更新器尚不支持移动设备。"
new "Ren'Py 尚不支持在移动设备上执行更新。"
# 00updater.rpy:494
# 00updater.rpy:493
old "An error is being simulated."
new "已模拟一个错误。"
# 00updater.rpy:678
# 00updater.rpy:677
old "Either this project does not support updating, or the update status file was deleted."
new "此工程不支持更新,或者是更新状态文件已被删除。"
# 00updater.rpy:692
# 00updater.rpy:691
old "This account does not have permission to perform an update."
new "此帐号没有执行更新的权限。"
# 00updater.rpy:695
# 00updater.rpy:694
old "This account does not have permission to write the update log."
new "此帐号没有写入更新日志的权限。"
# 00updater.rpy:722
# 00updater.rpy:721
old "Could not verify update signature."
new "无法验证更新签名。"
# 00updater.rpy:997
# 00updater.rpy:992
old "The update file was not downloaded."
new "更新文件未能下载。"
# 00updater.rpy:1015
# 00updater.rpy:1010
old "The update file does not have the correct digest - it may have been corrupted."
new "更新文件校验失败。文件可能已损坏。"
# 00updater.rpy:1071
# 00updater.rpy:1064
old "While unpacking {}, unknown type {}."
new "解压 {} 时出现未知错误 {}。"
# 00updater.rpy:1439
# 00updater.rpy:1430
old "Updater"
new "更新器"
new "更新程序"
# 00updater.rpy:1450
# 00updater.rpy:1441
old "This program is up to date."
new "此程序已是最新版本。"
# 00updater.rpy:1452
# 00updater.rpy:1443
old "[u.version] is available. Do you want to install it?"
new "[u.version] 现已可用。您希望现在安装吗?"
# 00updater.rpy:1454
# 00updater.rpy:1445
old "Preparing to download the updates."
new "正在准备下载更新。"
# 00updater.rpy:1456
# 00updater.rpy:1447
old "Downloading the updates."
new "正在下载更新。"
# 00updater.rpy:1458
# 00updater.rpy:1449
old "Unpacking the updates."
new "正在解压更新。"
# 00updater.rpy:1462
# 00updater.rpy:1453
old "The updates have been installed. The program will restart."
old "Press <esc> to exit console. Type help for help.\n"
new "按 Esc 来退出控制台。输入 help 来查看帮助。\n"
# 00console.rpy:496
old "Ren'Py script enabled."
new "Ren'Py 脚本已开启。"
# 00console.rpy:498
old "Ren'Py script disabled."
new "Ren'Py 脚本已关闭。"
# 00console.rpy:745
old "help: show this help"
new "help:显示此帮助信息"
# 00console.rpy:750
old "commands:\n"
new "命令:\n"
# 00console.rpy:760
old " <renpy script statement>: run the statement\n"
new " <renpy 脚本语句>:运行此语句\n"
# 00console.rpy:762
old " <python expression or statement>: run the expression or statement"
new " <python 表达式或语句>:运行此表达式或语句"
# 00console.rpy:770
old "clear: clear the console history"
new "clear:清除控制台历史记录"
# 00console.rpy:774
old "exit: exit the console"
new "exit:退出控制台"
# 00console.rpy:782
old "load <slot>: loads the game from slot"
new "load <档位>:读取该档位的存档"
# 00console.rpy:795
old "save <slot>: saves the game in slot"
new "save <档位>:存储存档到该档位"
# 00console.rpy:806
old "reload: reloads the game, refreshing the scripts"
new "reload:重新加载游戏,并重新整理脚本"
# 00console.rpy:814
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
new "watch <表达式>:监视该 python 表达式\n watch short:简短表征所跟踪的表达式(默认)\n watch long:按原样表征所跟踪的表达式"
# 00console.rpy:849
old "unwatch <expression>: stop watching an expression"
new "unwatch <表达式>:停止监视该表达式"
# 00console.rpy:884
old "unwatchall: stop watching all expressions"
new "unwatchall:停止监视所有表达式"
# 00console.rpy:901
old "jump <label>: jumps to label"
new "jump <标签>:跳转到此标签"
# 00console.rpy:917
old "short: Shorten the representation of objects on the console (default)."
new "short:在控制台中缩短对象的表征(默认)。"
# 00console.rpy:921
old "long: Print the full representation of objects on the console."
new "long:在控制台中打印出对象的完整表征。"
# 00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape:启用转义 Unicode 字符串中的 Unicode 符号。"
# 00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape:禁止转义 Unicode 字符串中的 Unicode 符号,并按原样显示(默认)。"
old "Changes will take effect the next time this program is run."
new "更改将会在下次启动程序时生效。"
# 00gltest.rpy:238
old "Performance Warning"
new "性能影响警告"
# 00gltest.rpy:243
old "This computer is using software rendering."
new "此计算机正在使用软件渲染。"
# 00gltest.rpy:245
old "This game requires use of GL2 that can't be initialised."
new "此游戏需要使用 GL2,但其无法初始化。"
# 00gltest.rpy:247
old "This computer has a problem displaying graphics: [problem]."
new "此计算机显示图形时出错:[problem]"
# 00gltest.rpy:251
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "目前图形驱动程序版本可能过旧或未正确运行。这会导致图形显示缓慢或者错误。"
# 00gltest.rpy:256
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "关于如何解决该问题的更多详情可以在{a=[url]}文档{/a}中找到。"
# 00gltest.rpy:261
old "Continue, Show this warning again"
new "继续,下次继续显示该警告"
# 00gltest.rpy:265
old "Continue, Don't show warning again"
new "继续,不再显示该警告"
# 00gltest.rpy:273
old "Change render options"
new "更改渲染选项"
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "选择手柄来校准"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "无可用手柄"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "正在校准 [name]([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!s] [kind]."
new "按下或移动 [control!s] [kind]。"
# 00gamepad.rpy:66
old "Skip (A)"
new "跳过(A)"
# 00gamepad.rpy:69
old "Back (B)"
new "返回(B)"
# _errorhandling.rpym:540
old "Open"
new "打开"
# _errorhandling.rpym:542
old "Opens the traceback.txt file in a text editor."
new "在文本编辑器中打开追溯报告(traceback.txt)。"
# _errorhandling.rpym:544
old "Copy BBCode"
new "复制 BBCode"
# _errorhandling.rpym:546
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "复制追溯报告(traceback.txt)的内容到剪贴板,作为 https://lemmasoft.renai.us/ 等论坛的 BBcode。"
# _errorhandling.rpym:548
old "Copy Markdown"
new "复制 Markdown"
# _errorhandling.rpym:550
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "复制追溯报告(traceback.txt)的内容到剪贴板,作为 Discord 的 Markdown。"
# _errorhandling.rpym:579
old "An exception has occurred."
new "发生异常。"
# _errorhandling.rpym:602
old "Rollback"
new "回滚"
# _errorhandling.rpym:604
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "尝试回滚到先前的状态,使您可以存档或者选择不同选项。"
# _errorhandling.rpym:607
old "Ignore"
new "忽略"
# _errorhandling.rpym:611
old "Ignores the exception, allowing you to continue."
new "忽略异常,让您可以继续。"
# _errorhandling.rpym:613
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "忽略异常,让您可以继续。但这通常会引起更多错误。"
# _errorhandling.rpym:617
old "Reload"
new "重新加载"
# _errorhandling.rpym:619
old "Reloads the game from disk, saving and restoring game state if possible."
new "从硬盘重新加载游戏,尝试保存和恢复游戏状态。"
# _errorhandling.rpym:622
old "Console"
new "控制台"
# _errorhandling.rpym:624
old "Opens a console to allow debugging the problem."
new "打开控制台,允许您对问题进行调试。"
# _errorhandling.rpym:637
old "Quits the game."
new "退出游戏。"
# _errorhandling.rpym:658
old "Parsing the script failed."
new "解析脚本失败。"
# _errorhandling.rpym:684
old "Opens the errors.txt file in a text editor."
new "在文本编辑器中打开追溯报告(traceback.txt)。"
# _errorhandling.rpym:688
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "复制解析错误文件(errors.txt)到剪贴板,作为 https://lemmasoft.renai.us/ 等论坛的 BBcode。"
# _errorhandling.rpym:692
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "复制解析错误文件(errors.txt)到剪贴板,作为 Discord 的 Markdown。"
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.