6.7.0 - Alpha14 - 主页抽屉开关类条目标题可点击; 主页抽屉增加 "所有文件管理权限"; 客户端模式特殊用途 IP 检测提示

This commit is contained in:
SuperMonster003
2026-01-15 15:40:28 +08:00
parent 8812471328
commit 1b2ca9a93a
61 changed files with 1608 additions and 917 deletions

View File

@@ -396,7 +396,11 @@
<service
android:name="org.autojs.autojs.external.foreground.MainActivityForegroundService"
android:foregroundServiceType="specialUse" />
android:foregroundServiceType="specialUse">
<property
android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
android:value="To ensure the app can smoothly complete automation workflow even when running in the background" />
</service>
<service android:name="org.autojs.autojs.external.ScriptExecutionIntentService" />

View File

@@ -9,27 +9,33 @@ import org.autojs.autojs.ui.main.drawer.SocketItemHelper
/**
* Created by SuperMonster003 on Jun 24, 2022.
* Modified by SuperMonster003 as of Jan 9, 2026.
* Modified by SuperMonster003 as of Jan 14, 2026.
*/
abstract class AbstractJsonSocketTool(final override val context: Context) : SocketItemHelper {
protected val devPlugin by lazy { App.app.devPluginService }
@JvmField
protected var onConnectionException: Consumer<in Throwable> = Consumer { }
protected var stateDisposable: Disposable? = null
@JvmField
protected var stateDisposable: Disposable? = null
protected var onConnectionException: Consumer<in Throwable> = Consumer { }
@JvmField
protected var onConnectionDialogDismissed = DialogInterface.OnDismissListener { }
internal abstract fun connectIfNotNormallyClosed()
fun setOnConnectionException(consumer: Consumer<in Throwable>) = also { onConnectionException = consumer }
fun setOnConnectionException(consumer: Consumer<in Throwable>) {
onConnectionException = consumer
}
fun setStateDisposable(disposable: Disposable?) = also { stateDisposable = disposable }
fun setStateDisposable(disposable: Disposable?) {
stateDisposable = disposable
}
fun setOnConnectionDialogDismissed(dialog: DialogInterface.OnDismissListener) = also { onConnectionDialogDismissed = dialog }
fun setOnConnectionDialogDismissed(dialog: DialogInterface.OnDismissListener) {
onConnectionDialogDismissed = dialog
}
}

View File

@@ -1,21 +1,35 @@
package org.autojs.autojs.app.tool
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.os.Handler
import android.os.Looper
import android.text.InputFilter
import android.view.KeyEvent
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog
import io.reactivex.android.schedulers.AndroidSchedulers
import org.autojs.autojs.app.DialogUtils
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.pluginclient.JsonSocketClient
import org.autojs.autojs.ui.common.NotAskAgainDialog
import org.autojs.autojs.util.Observers
import org.autojs.autojs.util.ViewUtils
import org.autojs.autojs6.R
import java.lang.ref.WeakReference
class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
// Keep a weak reference of current dialog to avoid leaking window on Activity destroy.
// zh-CN: 使用弱引用保存当前 dialog, 避免 Activity 销毁时发生窗口泄漏.
private var connectionDialogRef: WeakReference<MaterialDialog?>? = null
// Main thread handler for UI operations, because connectToRemoteServer is @AnyThread.
// zh-CN: 主线程 handler 用于 UI 操作, 因为 connectToRemoteServer 标注为 @AnyThread.
private val mainHandler = Handler(Looper.getMainLooper())
override val isConnected
get() = devPlugin.isJsonSocketClientConnected
@@ -38,14 +52,40 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
override fun disconnect() {
devPlugin.jsonSocketClient?.switchOff()
isNormallyClosed = true
dismissConnectionDialogSilently()
}
override fun dispose() {
stateDisposable?.dispose()
dismissConnectionDialogSilently()
}
private fun isContextInvalidForDialog(): Boolean {
val a = (context as? Activity) ?: return false
return a.isFinishing || a.isDestroyed
}
private fun runOnMainThread(action: () -> Unit) {
if (Looper.myLooper() == Looper.getMainLooper()) {
action()
} else {
mainHandler.post { action() }
}
}
private fun dismissConnectionDialogSilently() {
runOnMainThread {
runCatching {
connectionDialogRef?.get()?.dismiss()
}
connectionDialogRef = null
}
}
@SuppressLint("CheckResult")
private fun inputRemoteHost(isAutoConnect: Boolean) {
if (isContextInvalidForDialog()) return
val host = Pref.getServerAddress()
if (isAutoConnect) {
devPlugin
@@ -56,7 +96,7 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
MaterialDialog.Builder(context)
.title(R.string.text_pc_server_address)
.input(context.getString(R.string.text_pc_server_address), host) { dialog, _ ->
connectToRemoteServer(dialog)
validateAndConnectToRemoteServer(dialog)
}
.widgetThemeColor()
.neutralText(R.string.dialog_button_history)
@@ -69,7 +109,7 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
.itemsCallback { dHistories, _, _, text ->
dHistories.dismiss()
dialog.inputEditText?.setText(text)
connectToRemoteServer(dialog)
validateAndConnectToRemoteServer(dialog)
}
.itemsLongCallback { dHistories, _, _, text ->
MaterialDialog.Builder(context)
@@ -127,21 +167,28 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
.negativeText(R.string.text_cancel)
.negativeColorRes(R.color.dialog_button_default)
.onNegative { dialog, _ -> dialog.dismiss() }
.positiveText(R.string.dialog_button_confirm)
.positiveText(R.string.dialog_button_connect)
.positiveColorRes(R.color.dialog_button_attraction)
.autoDismiss(false)
.dismissListener(onConnectionDialogDismissed)
.dismissListener {
runOnMainThread { connectionDialogRef = null }
onConnectionDialogDismissed.onDismiss(it)
}
.show()
.also { dialog: MaterialDialog ->
runOnMainThread { connectionDialogRef = WeakReference(dialog) }
dialog.setOnKeyListener { _, keyCode, _ ->
if (keyCode == KeyEvent.KEYCODE_ENTER) {
connectToRemoteServer(dialog)
validateAndConnectToRemoteServer(dialog)
true
} else {
false
}
}
dialog.inputEditText!!.filters += InputFilter { source, start, end, dest, dstart, dend ->
val editText = dialog.inputEditText ?: return@also
editText.filters += InputFilter { source, start, end, dest, dstart, dend ->
if (end > start) {
val fullText = dest.substring(0, dstart) +
source.subSequence(start, end) +
@@ -219,24 +266,59 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
}
@SuppressLint("CheckResult")
private fun connectToRemoteServer(dialog: MaterialDialog) {
private fun validateAndConnectToRemoteServer(dialog: MaterialDialog) {
if (isContextInvalidForDialog()) {
dismissConnectionDialogSilently()
return
}
val input = dialog.inputEditText?.text?.toString() ?: ""
val isInHistory = { JsonSocketClient.serverAddressHistories.contains(input) }
val isPotentiallyInvalid = { POTENTIALLY_INVALID_IP_ADRESS_LIST_FOR_REMOTE_SERVER.any { input.matches(it) } }
fun connectToServer() = devPlugin
.connectToRemoteServer(context, input)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ Pref.setServerAddress(input) },
onConnectionException,
)
.also {
runOnMainThread {
runCatching { dialog.dismiss() }
connectionDialogRef = null
}
}
if (!rexValidIp.matches(input)) {
if (input.isEmpty()) {
showSnack(dialog, R.string.error_ip_address_should_not_be_empty)
} else {
showSnack(dialog, R.string.error_invalid_ip_address)
when (input.isEmpty()) {
true -> showSnack(dialog, R.string.error_ip_address_should_not_be_empty)
else -> showSnack(dialog, R.string.error_invalid_ip_address)
}
return
}
dialog.dismiss()
devPlugin
.connectToRemoteServer(context, input)
.subscribe({ Pref.setServerAddress(input) }, onConnectionException)
when {
!isInHistory() && isPotentiallyInvalid() -> NotAskAgainDialog.Builder(context)
.title(R.string.text_prompt)
.content(context.getString(R.string.text_ip_address_may_be_invalid_for_server_connection, input))
.widgetThemeColor()
.negativeText(R.string.dialog_button_quit_connecting)
.negativeColorRes(R.color.dialog_button_default)
.positiveText(R.string.dialog_button_continue_connecting)
.positiveColorRes(R.color.dialog_button_caution)
.onPositive { _, _ -> connectToServer() }
.cancelable(false)
.show() ?: connectToServer()
else -> connectToServer()
}
}
private fun showSnack(dialog: MaterialDialog, strRes: Int) {
ViewUtils.showSnack(dialog.view, dialog.context.getString(strRes))
runOnMainThread {
if (isContextInvalidForDialog()) return@runOnMainThread
ViewUtils.showSnack(dialog.view, dialog.context.getString(strRes))
}
}
private fun isRepeatedCharacter(source: CharSequence, nearest: Char, regex: String): Boolean {
@@ -263,6 +345,48 @@ class JsonSocketClientTool(context: Context) : AbstractJsonSocketTool(context) {
private const val REGEX_IP_DEC = "\\d{1,3}"
private const val REGEX_PORT = "\\d{1,5}"
private val POTENTIALLY_INVALID_IP_ADRESS_LIST_FOR_REMOTE_SERVER by lazy {
listOf(
// APIPA.
// zh-CN: 自动专用 IP 地址.
Regex("""^169\.254\.\d+\.\d+$"""), // 169.254.0.0/16
// Loopback: 127.0.0.0/8.
// zh-CN: 环回地址: 127.0.0.0/8.
Regex("""^127\.\d+\.\d+\.\d+$"""),
// "This network": 0.0.0.0/8.
// zh-CN: "本网络": 0.0.0.0/8.
Regex("""^0\.\d+\.\d+\.\d+$"""),
// Carrier-grade NAT (CGNAT / Shared Address Space).
// zh-CN: 运营商级 NAT (CGNAT / 共享地址空间).
Regex("""^100\.(?:6[4-9]|[7-9]\d|1[01]\d|12[0-7])\.\d+\.\d+$"""), // 100.64.0.0/10
// Documentation example network segments (test-net): commonly used in documentation/tutorials, will not appear on the public network.
// zh-CN: 文档示例网段 (test-net): 常用于文档/教程, 不会在公网出现.
Regex("""^192\.0\.2\.\d+$"""), // 192.0.2.0/24
Regex("""^198\.51\.100\.\d+$"""), // 198.51.100.0/24
Regex("""^203\.0\.113\.\d+$"""), // 203.0.113.0/24
// Benchmarking network segment.
// zh-CN: 基准测试网段.
Regex("""^198\.1[89]\.\d+\.\d+$"""), // 198.18.0.0/15
// 6to4 Relay Anycast (deprecated but still for special purposes).
// zh-CN: 6to4 中继任播 (已弃用但仍属特殊用途).
Regex("""^192\.88\.99\.\d+$"""), // 192.88.99.0/24
// Multicast address: 224.0.0.0/4 (non-unicast, usually should not be used as "host address").
// zh-CN: 多播地址: 224.0.0.0/4 (非单播, 通常不应作为 "主机地址").
Regex("""^(?:22[4-9]|23\d)\.\d+\.\d+\.\d+$"""),
// Reserved/future use: 240.0.0.0/4 (including 255.x.x.x; 255.255.255.255 is also included).
// zh-CN: 保留/未来用途: 240.0.0.0/4 (包含 255.x.x.x; 255.255.255.255 也在其中).
Regex("""^(?:24\d|25[0-5])\.\d+\.\d+\.\d+$"""),
)
}
val rexPartialIp = Regex("^$REGEX_IP_DEC($REGEX_DOT($REGEX_IP_DEC($REGEX_DOT($REGEX_IP_DEC($REGEX_DOT($REGEX_IP_DEC)?)?)?)?)?)?")
val rexFullIpWithColon = Regex("\\d+$REGEX_DOT\\d+$REGEX_DOT\\d+$REGEX_DOT\\d+$REGEX_COLON\\d*")
val rexValidIp = Regex("$REGEX_IP_DEC$REGEX_DOT$REGEX_IP_DEC$REGEX_DOT$REGEX_IP_DEC$REGEX_DOT$REGEX_IP_DEC($REGEX_COLON$REGEX_PORT)?")

View File

@@ -18,7 +18,7 @@ object MaterialDialogExtensions {
fun MaterialDialog.makeSettingsLaunchable(viewGetter: (dialog: MaterialDialog) -> View?, packageName: String?) {
viewGetter(this)?.setOnClickListener {
packageName?.let { pkg ->
IntentUtils.goToAppDetailSettings(this.context, pkg)
IntentUtils.launchAppDetailsSettings(this.context, pkg)
} ?: ViewUtils.showSnack(this.view, R.string.error_app_not_installed)
}
}

View File

@@ -2,12 +2,12 @@ package org.autojs.autojs.inrt.theme.preference
import android.content.Context
import android.util.AttributeSet
import org.autojs.autojs.permission.ManageAllFilesPermission
import org.autojs.autojs.permission.AllFilesAccessPermission
import org.autojs.autojs.theme.preference.ThemeColorPermissionSwitchPreference
class ManageAllFilesPermissionSwitchPreference : ThemeColorPermissionSwitchPreference {
val perm by lazy { ManageAllFilesPermission(context) }
val perm by lazy { AllFilesAccessPermission(context) }
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)

View File

@@ -8,6 +8,7 @@ import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.Settings
import androidx.annotation.RequiresApi
import androidx.core.app.ActivityCompat
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.permission.Base.getPermissionsToRequest
@@ -21,54 +22,66 @@ import org.autojs.autojs6.R
/**
* Created by SuperMonster003 on Jun 21, 2022.
*/
class ManageAllFilesPermission(override val context: Context) : PermissionItemHelper, AbleToUrge {
class AllFilesAccessPermission(override val context: Context) : PermissionItemHelper, AbleToUrge {
override fun has(): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Environment.isExternalStorageManager()
} else {
getPermissionsToRequest(context, LEGACY_STORAGE_PERMISSIONS).isEmpty()
}
}
override fun request(): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
return try {
Intent()
.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
.setData(Uri.fromParts("package", context.packageName, null))
.let { context.startActivity(it) }
true
} catch (e: Exception) {
try {
Intent()
.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
.let { context.startActivity(it) }
true
} catch (e: Exception) {
false
}
}
} else {
return try {
ActivityCompat.requestPermissions((context as Activity), LEGACY_STORAGE_PERMISSIONS, Base.REQUEST_CODE)
true
} catch (e: Exception) {
config()
false
override fun has(): Boolean =
when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
Environment.isExternalStorageManager()
}
else -> getPermissionsToRequest(context, LEGACY_STORAGE_PERMISSIONS).isEmpty()
}
override fun request(): Boolean =
when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
manageAllFilesAccess()
}
else -> requestLegacyStoragePermissions() || launchAppDetailsSettings()
}
private fun requestLegacyStoragePermissions(): Boolean =
runCatching {
ActivityCompat.requestPermissions((context as Activity), LEGACY_STORAGE_PERMISSIONS, Base.REQUEST_CODE)
}.isSuccess
override fun revoke(): Boolean {
when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
manageAllFilesAccess()
}
else -> launchAppDetailsSettings()
}
return false
}
override fun revoke(): Boolean = false.also { config() }
@RequiresApi(Build.VERSION_CODES.R)
private fun manageAllFilesAccess(): Boolean = runCatching {
Intent()
.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
.setData(Uri.fromParts("package", context.packageName, null))
.let { context.startActivity(it) }
true
}.isSuccess || runCatching {
Intent()
.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)
.let { context.startActivity(it) }
}.isSuccess
private fun config() {
IntentUtils.goToAppDetailSettings(context, context.packageName)
}
private fun launchAppDetailsSettings() = IntentUtils.launchAppDetailsSettings(context)
fun config(): Boolean =
when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
manageAllFilesAccess()
}
else -> launchAppDetailsSettings()
}
override fun urge() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
return Unit.also { request() }
request()
return
}
NotAskAgainDialog.Builder(context, key(R.string.key_dialog_manage_all_files_permission))
.title(R.string.text_all_files_access)

View File

@@ -6,8 +6,8 @@ import android.os.Looper
import ezy.assist.compat.SettingsCompat
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.ui.common.NotAskAgainDialog
import org.autojs.autojs.ui.enhancedfloaty.util.FloatingWindowPermissionUtil
import org.autojs.autojs.ui.main.drawer.PermissionItemHelper
import org.autojs.autojs.util.IntentUtils
import org.autojs.autojs.util.RhinoUtils.isMainThread
import org.autojs.autojs.util.StringUtils.key
import org.autojs.autojs.util.ThreadUtils
@@ -32,7 +32,7 @@ class DisplayOverOtherAppsPermission(override val context: Context) : Permission
SettingsCompat.manageDrawOverlays(context)
} catch (e: Exception) {
e.printStackTrace()
FloatingWindowPermissionUtil.goToAppDetailSettings(context, context.packageName)
IntentUtils.launchAppDetailsSettings(context)
}
}

View File

@@ -20,7 +20,7 @@ class PostNotificationsPermission(override val context: Context) : PermissionIte
override fun revoke(): Boolean = false.also { config() }
private fun config() = NotificationUtils.launchSettings()
fun config() = NotificationUtils.launchSettings()
override fun urge() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {

View File

@@ -144,7 +144,7 @@ class DevPluginService(val context: Context) {
// Show connecting subtitle immediately.
// zh-CN: 立即显示正在连接的 subtitle.
clientConnectionIpAddress.onNext("$ip ...");
clientConnectionIpAddress.onNext("$ip ...")
return Observable
.just(JsonSocketClient(this, context, ip, port))

View File

@@ -99,12 +99,8 @@ class AppUtils(context: Context, @get:ScriptInterface val fileProviderAuthority:
else -> packageManager.getApplicationInfo(packageName, flags)
}
// @ScriptInterface
// @Deprecated("Use openAppSettings instead.", ReplaceWith("this.launchSettings(packageName)"))
// fun openAppSetting(packageName: String): Boolean = launchSettings(packageName)
@ScriptInterface
fun launchSettings(packageName: String): Boolean = IntentUtils.goToAppDetailSettings(mContext, packageName)
fun launchSettings(packageName: String): Boolean = IntentUtils.launchAppDetailsSettings(mContext, packageName)
val currentActivity: Activity?
get() {

View File

@@ -225,7 +225,7 @@ object WrappedShizuku {
Shizuku.removeRequestPermissionResultListener(mRequestPermissionResultListener)
}
private fun getLaunchIntent(context: Context): Intent? {
fun getLaunchIntent(context: Context): Intent? {
return context.packageManager.getLaunchIntentForPackage(SHIZUKU.packageName)?.apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}

View File

@@ -84,10 +84,15 @@ class App(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
::launchDualApp.name to AS_GLOBAL,
::getPackageName.name to AS_GLOBAL,
::getAppName.name to AS_GLOBAL,
::launchSettings.name to AS_GLOBAL,
::launchDualSettings.name to AS_GLOBAL,
::openAppSetting.name to AS_GLOBAL,
::openDualAppSetting.name to AS_GLOBAL,
::launchAppDetailsSettings.name to listOf(
"launchAppDetailsSettings", "launchSettings", "openAppSetting", "openAppSettings",
) to AS_GLOBAL,
::launchDualAppDetailsSettings.name to listOf(
"launchDualAppDetailsSettings", "launchDualSettings", "openDualAppSetting", "openDualAppSettings",
) to AS_GLOBAL,
::isInstalled.name to AS_GLOBAL,
::isDualInstalled.name to AS_GLOBAL,
::uninstall.name to AS_GLOBAL,
@@ -671,7 +676,7 @@ class App(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
@JvmStatic
@RhinoRuntimeFunctionInterface
fun launchSettings(scriptRuntime: ScriptRuntime, args: Array<out Any?>): Boolean = ensureArgumentsOnlyOne(args) { o ->
fun launchAppDetailsSettings(scriptRuntime: ScriptRuntime, args: Array<out Any?>): Boolean = ensureArgumentsOnlyOne(args) { o ->
when {
o.isJsNullish() -> false
o is PresetApp -> scriptRuntime.app.launchSettings(o.packageName)
@@ -683,7 +688,7 @@ class App(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
@JvmStatic
@RhinoRuntimeFunctionInterface
fun launchDualSettings(scriptRuntime: ScriptRuntime, args: Array<out Any?>): Boolean = ensureArgumentsOnlyOne(args) { o ->
fun launchDualAppDetailsSettings(scriptRuntime: ScriptRuntime, args: Array<out Any?>): Boolean = ensureArgumentsOnlyOne(args) { o ->
runCatching {
when {
o.isJsNullish() -> false
@@ -695,20 +700,6 @@ class App(scriptRuntime: ScriptRuntime) : Augmentable(scriptRuntime) {
}.isSuccess
}
@JvmStatic
@RhinoRuntimeFunctionInterface
@Deprecated("Function app.openAppSetting(app) is deprecated", ReplaceWith("app.launchSettings(app)"))
fun openAppSetting(scriptRuntime: ScriptRuntime, args: Array<out Any?>): Boolean {
return launchSettings(scriptRuntime, args)
}
@JvmStatic
@RhinoRuntimeFunctionInterface
@Deprecated("Function app.openDualAppSetting(app) is deprecated", ReplaceWith("app.launchDualSettings(app)"))
fun openDualAppSetting(scriptRuntime: ScriptRuntime, args: Array<out Any?>): Boolean {
return launchDualSettings(scriptRuntime, args)
}
@JvmStatic
@RhinoRuntimeFunctionInterface
fun uninstall(scriptRuntime: ScriptRuntime, args: Array<out Any?>): Undefined = ensureArgumentsOnlyOne(args) { o ->

View File

@@ -1,15 +1,15 @@
package org.autojs.autojs.ui.enhancedfloaty.util;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.view.WindowManager;
import org.autojs.autojs.annotation.ReservedForCompatibility;
import org.autojs.autojs.util.IntentUtils;
/**
* Created by Stardust on Mar 10, 2017.
* Modified by SuperMonster003 as of Jan 15, 2026.
*/
public class FloatingWindowPermissionUtil {
@@ -26,7 +26,7 @@ public class FloatingWindowPermissionUtil {
Uri.parse("package:" + packageName))
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
} catch (Exception e) {
goToAppDetailSettings(context, packageName);
IntentUtils.launchAppDetailsSettings(context, packageName);
}
}
@@ -34,17 +34,10 @@ public class FloatingWindowPermissionUtil {
return Settings.canDrawOverlays(context);
}
@Deprecated
@ReservedForCompatibility
public static boolean goToAppDetailSettings(Context context, String packageName) {
try {
Intent i = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setData(Uri.parse("package:" + packageName));
context.startActivity(i);
return true;
} catch (ActivityNotFoundException ignored) {
return false;
}
return IntentUtils.launchAppDetailsSettings(context, packageName);
}
}

View File

@@ -33,9 +33,8 @@ import org.autojs.autojs.event.BackPressedHandler.HostActivity
import org.autojs.autojs.extension.ViewExtensions.setOnTitleViewLongClickListener
import org.autojs.autojs.model.explorer.Explorers
import org.autojs.autojs.permission.DisplayOverOtherAppsPermission
import org.autojs.autojs.permission.ManageAllFilesPermission
import org.autojs.autojs.permission.AllFilesAccessPermission
import org.autojs.autojs.permission.PostNotificationsPermission
import org.autojs.autojs.runtime.api.WrappedShizuku
import org.autojs.autojs.service.ForegroundService
import org.autojs.autojs.theme.ThemeColorManager
import org.autojs.autojs.theme.ThemeColorManager.addViewBackground
@@ -142,7 +141,7 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
FloatyWindowManger.refreshCircularMenuIfNeeded(this)
PostNotificationsPermission(this).urgeIfNeeded()
ManageAllFilesPermission(this).urgeIfNeeded()
AllFilesAccessPermission(this).urgeIfNeeded()
DisplayOverOtherAppsPermission(this).urgeIfNeeded()
}

View File

@@ -2,7 +2,9 @@ package org.autojs.autojs.ui.main.drawer
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.provider.Settings
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -18,6 +20,8 @@ import org.autojs.autojs.app.tool.JsonSocketServerTool
import org.autojs.autojs.core.accessibility.AccessibilityTool
import org.autojs.autojs.core.plugin.center.PluginCenterActivity
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.external.foreground.MainActivityForegroundService
import org.autojs.autojs.permission.AllFilesAccessPermission
import org.autojs.autojs.permission.DisplayOverOtherAppsPermission
import org.autojs.autojs.permission.IgnoreBatteryOptimizationsPermission
import org.autojs.autojs.permission.MediaProjectionPermission
@@ -29,6 +33,7 @@ import org.autojs.autojs.permission.WriteSystemSettingsPermission
import org.autojs.autojs.pluginclient.DevPluginService
import org.autojs.autojs.pluginclient.JsonSocketClient
import org.autojs.autojs.pluginclient.JsonSocketServer
import org.autojs.autojs.runtime.api.WrappedShizuku
import org.autojs.autojs.service.AccessibilityService
import org.autojs.autojs.service.ForegroundService
import org.autojs.autojs.service.NotificationService
@@ -44,6 +49,7 @@ import org.autojs.autojs.util.DisplayUtils
import org.autojs.autojs.util.IntentUtils.App.exit
import org.autojs.autojs.util.IntentUtils.App.restart
import org.autojs.autojs.util.NetworkUtils
import org.autojs.autojs.util.NotificationUtils
import org.autojs.autojs.util.ViewUtils
import org.autojs.autojs.util.ViewUtils.MODE
import org.autojs.autojs6.BuildConfig
@@ -51,8 +57,10 @@ import org.autojs.autojs6.R
import org.autojs.autojs6.databinding.FragmentDrawerBinding
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import rikka.shizuku.Shizuku
import java.lang.ref.WeakReference
import kotlin.math.roundToInt
import org.autojs.autojs.util.App as UtilApp
/**
* Created by Stardust on Jan 30, 2017.
@@ -87,11 +95,12 @@ open class DrawerFragment : Fragment() {
private lateinit var mAccessibilityServiceItem: DrawerMenuToggleableItem
private lateinit var mForegroundServiceItem: DrawerMenuToggleableItem
private lateinit var mFloatingWindowItem: DrawerMenuToggleableItem
private lateinit var mFloatingButtonItem: DrawerMenuToggleableItem
private lateinit var mClientModeItem: DrawerMenuDisposableItem
private lateinit var mServerModeItem: DrawerMenuDisposableItem
private lateinit var mNotificationPostItem: DrawerMenuToggleableItem
private lateinit var mNotificationAccessItem: DrawerMenuToggleableItem
private lateinit var mAllFilesAccessPermissionItem: DrawerMenuToggleableItem
private lateinit var mUsageStatsPermissionItem: DrawerMenuToggleableItem
private lateinit var mIgnoreBatteryOptimizationsItem: DrawerMenuToggleableItem
private lateinit var mDisplayOverOtherAppsItem: DrawerMenuToggleableItem
@@ -124,7 +133,7 @@ open class DrawerFragment : Fragment() {
mA11yTool = AccessibilityTool(mContext)
mAccessibilityServiceItem = DrawerMenuToggleableItem(
object : AccessibilityService(mContext) {
helper = object : AccessibilityService(mContext) {
override fun refreshSubtitle(aimState: Boolean) {
val oldSubtitle = mAccessibilityServiceItem.subtitle
@@ -145,22 +154,40 @@ open class DrawerFragment : Fragment() {
}
},
R.drawable.ic_accessibility_black_48dp,
R.string.text_a11y_service,
DrawerMenuItem.DEFAULT_DIALOG_CONTENT,
R.string.key_a11y_service,
)
icon = R.drawable.ic_accessibility_black_thicker_48dp,
title = R.string.text_a11y_service,
descriptionRes = R.string.description_accessibility_service,
prefKey = R.string.key_a11y_service,
) {
it.setOnLaunchManagerListener { d ->
if (d != null) {
ViewUtils.showSnack(d.view, R.string.text_under_development, 1_200)
} else {
ViewUtils.showToast(mContext, R.string.text_under_development)
}
}
it.setOnLaunchSettingsListener {
Intent().apply {
action = Settings.ACTION_ACCESSIBILITY_SETTINGS
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}.let { i -> mContext.startActivity(i) }
}
}
mForegroundServiceItem = DrawerMenuToggleableItem(
ForegroundService(mContext),
R.drawable.ic_service_green,
R.string.text_foreground_service,
R.string.text_foreground_service_description,
R.string.key_foreground_service,
)
helper = ForegroundService(mContext),
icon = R.drawable.ic_service_green,
title = R.string.text_foreground_service,
descriptionRes = R.string.description_foreground_service,
prefKey = R.string.key_foreground_service,
) {
it.setOnLaunchSettingsListener {
NotificationUtils.launchChannelSettings(mContext, MainActivityForegroundService::class.java)
}
}
mFloatingWindowItem = DrawerMenuToggleableItem(
object : FloatingButtonTool(mContext) {
mFloatingButtonItem = DrawerMenuToggleableItem(
helper = object : FloatingButtonTool(mContext) {
override fun toggle(aimState: Boolean): Boolean = runCatching {
// @BeforeSuper
if (!aimState /* is to switch off */) {
@@ -181,18 +208,26 @@ open class DrawerFragment : Fragment() {
// }
}.isSuccess
},
R.drawable.ic_robot_64,
R.string.text_floating_button,
DrawerMenuItem.DEFAULT_DIALOG_CONTENT,
R.string.key_floating_menu_shown,
)
icon = R.drawable.ic_robot_thicker_64,
title = R.string.text_floating_button,
descriptionRes = R.string.description_floating_button,
prefKey = R.string.key_floating_menu_shown,
) { item ->
item.setOnLaunchSettingsListener {
val helper = item.getHelper() as DisplayOverOtherAppsPermission
helper.config()
}
}
JsonSocketClientTool(mActivity).apply {
val devPluginService = App.app.devPluginService
val drawerItem = DrawerMenuDisposableItem(this, R.drawable.ic_computer_black_48dp, R.string.text_client_mode).also {
mClientModeItem = it
}
val drawerItem = DrawerMenuDisposableItem(
helper = this,
icon = R.drawable.ic_computer_black_48dp,
title = R.string.text_client_mode,
descriptionRes = R.string.description_client_mode,
).also { mClientModeItem = it }
val disposable = Observable
.combineLatest(
@@ -215,20 +250,34 @@ open class DrawerFragment : Fragment() {
}
}
setStateDisposable(disposable)
setOnConnectionException { e: Throwable ->
drawerItem.setCheckedIfNeeded(false)
ViewUtils.showToast(context, getString(R.string.error_connect_to_remote, e.message), true)
}
setOnConnectionDialogDismissed { drawerItem.setCheckedIfNeeded(false) }
setOnConnectionDialogDismissed {
drawerItem.setCheckedIfNeeded(false)
}
connectIfNotNormallyClosed()
}
JsonSocketServerTool(mActivity).apply {
val devPluginService = App.app.devPluginService
val drawerItem = DrawerMenuDisposableItem(this, R.drawable.ic_smartphone_black_48dp, R.string.text_server_mode).also {
mServerModeItem = it
}
val drawerItem = DrawerMenuDisposableItem(
helper = this,
icon = R.drawable.ic_smartphone_black_48dp,
title = R.string.text_server_mode,
descriptionRes = R.string.description_server_mode,
) {
it.setOnLaunchManagerListener { d ->
if (d != null) {
ViewUtils.showSnack(d.view, R.string.text_under_development, 1_200)
} else {
ViewUtils.showToast(mContext, R.string.text_under_development)
}
}
}.also { mServerModeItem = it }
val disposable = Observable
.combineLatest(
@@ -243,7 +292,7 @@ open class DrawerFragment : Fragment() {
state.isDisconnected() -> null
else -> NetworkUtils.getIpAddress().let { ip ->
when {
count > 0 -> "$ip [ ${context.getString(R.string.text_connected_count_with_colon, count)} ]"
count > 0 -> "$ip [ ${this.context.getString(R.string.text_connected_count_with_colon, count)} ]"
else -> ip
}
}
@@ -255,6 +304,7 @@ open class DrawerFragment : Fragment() {
}
}
setStateDisposable(disposable)
setOnConnectionException { e: Throwable ->
drawerItem.setCheckedIfNeeded(false)
ViewUtils.showToast(context, getString(R.string.error_enable_server, e.message), true)
@@ -263,65 +313,131 @@ open class DrawerFragment : Fragment() {
}
mNotificationPostItem = DrawerMenuToggleableItem(
PostNotificationsPermission(mContext),
R.drawable.ic_ali_notification,
R.string.text_post_notifications_permission,
)
helper = PostNotificationsPermission(mContext),
icon = R.drawable.ic_ali_notification,
title = R.string.text_post_notifications_permission,
descriptionRes = R.string.description_post_notifications,
) { item ->
item.setOnLaunchSettingsListener {
val helper = item.getHelper() as PostNotificationsPermission
helper.config()
}
}
mNotificationAccessItem = DrawerMenuToggleableItem(
NotificationService(mContext),
R.drawable.ic_ali_notification,
R.string.text_notification_access_permission,
)
helper = NotificationService(mContext),
icon = R.drawable.ic_ali_notification,
title = R.string.text_notification_access_permission,
descriptionRes = R.string.description_notification_access,
) { item ->
item.setOnLaunchSettingsListener {
val helper = item.getHelper() as NotificationService
helper.config()
}
}
mAllFilesAccessPermissionItem = DrawerMenuToggleableItem(
helper = AllFilesAccessPermission(mContext),
icon = R.drawable.ic_database_black_48dp,
title = R.string.text_all_files_access,
descriptionRes = R.string.description_all_files_access,
) { item ->
item.setOnLaunchSettingsListener {
val helper = item.getHelper() as AllFilesAccessPermission
helper.config()
}
}
mUsageStatsPermissionItem = DrawerMenuToggleableItem(
UsageStatsPermission(mContext),
R.drawable.ic_assessment_black_48dp,
R.string.text_usage_stats_permission,
R.string.text_usage_stats_permission_description,
)
helper = UsageStatsPermission(mContext),
icon = R.drawable.ic_assessment_black_48dp,
title = R.string.text_usage_stats_permission,
descriptionRes = R.string.description_usage_stats_access,
) { item ->
item.setOnLaunchSettingsListener {
val helper = item.getHelper() as UsageStatsPermission
helper.config()
}
}
mIgnoreBatteryOptimizationsItem = DrawerMenuToggleableItem(
IgnoreBatteryOptimizationsPermission(mContext),
R.drawable.ic_battery_std_black_48dp,
R.string.text_ignore_battery_optimizations,
)
helper = IgnoreBatteryOptimizationsPermission(mContext),
icon = R.drawable.ic_battery_std_black_48dp,
title = R.string.text_ignore_battery_optimizations,
descriptionRes = R.string.description_ignore_battery_optimizations,
) { item ->
item.setOnLaunchSettingsListener {
Intent().apply {
action = Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}.let { i -> mContext.startActivity(i) }
}
}
mDisplayOverOtherAppsItem = DrawerMenuToggleableItem(
DisplayOverOtherAppsPermission(mContext),
R.drawable.ic_layers_black_48dp,
R.string.text_display_over_other_app,
)
helper = DisplayOverOtherAppsPermission(mContext),
icon = R.drawable.ic_layers_black_48dp,
title = R.string.text_display_over_other_app,
descriptionRes = R.string.description_display_over_other_app,
) { item ->
item.setOnLaunchSettingsListener {
val helper = item.getHelper() as DisplayOverOtherAppsPermission
helper.config()
}
}
mWriteSystemSettingsItem = DrawerMenuToggleableItem(
WriteSystemSettingsPermission(mContext),
R.drawable.ic_settings_black_48dp,
R.string.text_write_system_settings,
)
helper = WriteSystemSettingsPermission(mContext),
icon = R.drawable.ic_settings_black_48dp,
title = R.string.text_write_system_settings,
descriptionRes = R.string.description_write_system_settings,
) { item ->
item.setOnLaunchSettingsListener {
val helper = item.getHelper() as WriteSystemSettingsPermission
helper.config()
}
}
mWriteSecuritySettingsItem = DrawerMenuToggleableItem(
WriteSecureSettingsPermission(mContext),
R.drawable.ic_security_black_48dp,
R.string.text_write_secure_settings,
R.string.text_write_secure_settings_description,
helper = WriteSecureSettingsPermission(mContext),
icon = R.drawable.ic_security_black_48dp,
title = R.string.text_write_secure_settings,
descriptionRes = R.string.description_write_secure_settings,
)
mProjectMediaAccessItem = DrawerMenuToggleableItem(
MediaProjectionPermission(mContext),
R.drawable.ic_cast_connected_black_48dp,
R.string.text_project_media_access,
R.string.text_project_media_access_description,
helper = MediaProjectionPermission(mContext),
icon = R.drawable.ic_cast_connected_black_48dp,
title = R.string.text_project_media_access,
descriptionRes = R.string.description_project_media_access,
)
mShizukuAccessItem = DrawerMenuToggleableItem(
ShizukuPermission(mContext),
R.drawable.ic_app_shizuku_representative,
R.string.text_shizuku_access,
R.string.text_shizuku_access_description,
)
helper = ShizukuPermission(mContext),
icon = R.drawable.ic_app_shizuku_representative,
title = R.string.text_shizuku_access,
descriptionRes = R.string.description_shizuku_access,
) {
positiveText(UtilApp.SHIZUKU.getAppName())
positiveTextAllCaps(false)
positiveColorRes(R.color.dialog_button_advanced_settings)
onPositive { d, _ ->
when {
!WrappedShizuku.isInstalled(mContext) -> {
ViewUtils.showSnack(d.view, R.string.error_shizuku_is_not_installed)
}
Shizuku.isPreV11() -> {
ViewUtils.showSnack(d.view, R.string.error_shizuku_version_is_not_supported)
}
else -> WrappedShizuku.getLaunchIntent(mContext)?.let {
runCatching { mContext.startActivity(it) }.getOrNull()
} ?: ViewUtils.showSnack(d.view, R.string.error_failed_to_revoke_shizuku_access)
}
}
}
mAutoNightModeItem = DrawerMenuToggleableItem(
object : DrawerMenuItemCustomHelper(mContext) {
helper = object : DrawerMenuItemCustomHelper(mContext) {
override fun toggle(): Boolean = runCatching {
val isTurningOn = !isActive
val isNightModeYes = ViewUtils.isNightModeYes(resources.configuration)
@@ -347,14 +463,22 @@ open class DrawerFragment : Fragment() {
override val isInMainThread = true
},
R.drawable.ic_automatic_brightness,
R.string.text_auto_night_mode,
DrawerMenuItem.DEFAULT_DIALOG_CONTENT,
R.string.key_auto_night_mode_enabled,
).apply { isHidden = !ViewUtils.AutoNightMode.isFunctional() }
icon = R.drawable.ic_automatic_brightness_thicker,
title = R.string.text_auto_night_mode,
descriptionRes = R.string.description_auto_night_mode,
prefKey = R.string.key_auto_night_mode_enabled,
) { item ->
item.isHidden = !ViewUtils.AutoNightMode.isFunctional()
item.setOnLaunchSettingsListener {
Intent().apply {
action = Settings.ACTION_DISPLAY_SETTINGS
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}.let { i -> mContext.startActivity(i) }
}
}
mNightModeItem = DrawerMenuToggleableItem(
object : DrawerMenuItemCustomHelper(mContext) {
helper = object : DrawerMenuItemCustomHelper(mContext) {
override fun toggle(): Boolean = runCatching {
if (!mAutoNightModeItem.isHidden) {
ViewUtils.isAutoNightModeEnabled = false
@@ -376,14 +500,21 @@ open class DrawerFragment : Fragment() {
override val isInMainThread = true
},
R.drawable.ic_night_mode,
R.string.text_night_mode,
DrawerMenuItem.DEFAULT_DIALOG_CONTENT,
R.string.key_night_mode_enabled,
)
icon = R.drawable.ic_night_mode_thicker,
title = R.string.text_night_mode,
descriptionRes = R.string.description_night_mode,
prefKey = R.string.key_night_mode_enabled,
) { item ->
item.setOnLaunchSettingsListener {
Intent().apply {
action = Settings.ACTION_DISPLAY_SETTINGS
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}.let { i -> mContext.startActivity(i) }
}
}
mKeepScreenOnWhenInForegroundItem = DrawerMenuToggleableItem(
object : DrawerMenuItemCustomHelper(mContext) {
helper = object : DrawerMenuItemCustomHelper(mContext) {
override val isActive: Boolean
get() = ViewUtils.isKeepScreenOnWhenInForegroundEnabled
@@ -411,12 +542,12 @@ open class DrawerFragment : Fragment() {
super.refreshSubtitle(aimState)
}
},
R.drawable.ic_lightbulb_outline_black_48dp,
R.string.text_keep_screen_on_when_in_foreground,
DrawerMenuItem.DEFAULT_DIALOG_CONTENT,
icon = R.drawable.ic_lightbulb_outline_black_thicker_48dp,
title = R.string.text_keep_screen_on_when_in_foreground,
descriptionRes = R.string.description_keep_screen_on_when_in_foreground,
)
mThemeColorItem = DrawerMenuShortcutItem(R.drawable.ic_personalize, R.string.text_theme_color)
mThemeColorItem = DrawerMenuShortcutItem(R.drawable.ic_personalize_thicker, R.string.text_theme_color)
.setAction(Runnable { ColorSelectBaseActivity.startActivity(mContext) })
.apply { subtitle = ColorSelectBaseActivity.getCurrentColorSummary(mContext) }
@@ -511,18 +642,19 @@ open class DrawerFragment : Fragment() {
}
private fun initMenuItems() {
drawerMenuAdapter = listOf(
val items = listOf(
DrawerMenuGroup(R.string.text_service),
mAccessibilityServiceItem,
mForegroundServiceItem,
DrawerMenuGroup(R.string.text_tools),
mFloatingWindowItem,
mFloatingButtonItem,
DrawerMenuGroup(R.string.text_connect_to_pc),
mClientModeItem,
mServerModeItem,
DrawerMenuGroup(R.string.text_permissions),
mNotificationPostItem,
mNotificationAccessItem,
mAllFilesAccessPermissionItem,
mUsageStatsPermissionItem,
mIgnoreBatteryOptimizationsItem,
mDisplayOverOtherAppsItem,
@@ -537,7 +669,17 @@ open class DrawerFragment : Fragment() {
mThemeColorItem,
DrawerMenuGroup(R.string.text_about),
mAboutAppAndDevItem,
).let { items -> DrawerMenuAdapter(items.filterNot { it.isHidden }) }
)
val drawerMenuAdapter = DrawerMenuAdapter(items.filterNot { it.isHidden })
// Wire item change notifications to this fragment's adapter instance.
// zh-CN: 将 item 的刷新通知绑定到当前 Fragment 的 adapter 实例.
items.filterIsInstance<DrawerMenuToggleableItem>().forEach { item ->
item.setOnNotifyItemChangedListener { changedItem ->
drawerMenuAdapter.notifyItemChanged(changedItem)
}
}
mDrawerMenu.apply {
adapter = drawerMenuAdapter
@@ -546,18 +688,19 @@ open class DrawerFragment : Fragment() {
}
private fun initMenuItemStates() = listOf(
mFloatingWindowItem,
mFloatingButtonItem,
mForegroundServiceItem,
).forEach { it.selfActive() }
private fun syncMenuItemStates() = listOf(
mAccessibilityServiceItem,
mForegroundServiceItem,
mFloatingWindowItem,
mFloatingButtonItem,
mClientModeItem,
mServerModeItem,
mNotificationPostItem,
mNotificationAccessItem,
mAllFilesAccessPermissionItem,
mUsageStatsPermissionItem,
mIgnoreBatteryOptimizationsItem,
mDisplayOverOtherAppsItem,
@@ -570,9 +713,6 @@ open class DrawerFragment : Fragment() {
companion object {
lateinit var drawerMenuAdapter: DrawerMenuAdapter
private set
class Event {
interface OnDrawerOpened
interface OnDrawerClosed

View File

@@ -1,6 +1,40 @@
package org.autojs.autojs.ui.main.drawer
class DrawerMenuDisposableItem(private val helper: SocketItemHelper, icon: Int, title: Int) : DrawerMenuToggleableItem(helper, icon, title) {
import com.afollestad.materialdialogs.MaterialDialog
class DrawerMenuDisposableItem : DrawerMenuToggleableItem {
private val helper: SocketItemHelper
constructor(
helper: SocketItemHelper,
icon: Int,
title: Int,
onTitleContainerClickListener: (MaterialDialog.Builder.(menuItem: DrawerMenuToggleableItem) -> Unit)? = null,
) : super(
helper,
icon,
title,
onTitleContainerClickListener = onTitleContainerClickListener,
) {
this.helper = helper
}
constructor(
helper: SocketItemHelper,
icon: Int,
title: Int,
descriptionRes: Int,
onTitleContainerClickListener: (MaterialDialog.Builder.(menuItem: DrawerMenuToggleableItem) -> Unit)? = null,
) : super(
helper,
icon,
title,
descriptionRes,
onTitleContainerClickListener = onTitleContainerClickListener,
) {
this.helper = helper
}
fun dispose() = helper.dispose()

View File

@@ -2,9 +2,8 @@ package org.autojs.autojs.ui.main.drawer;
import android.view.View;
import android.widget.TextView;
import org.autojs.autojs6.R;
import org.autojs.autojs.ui.widget.BindableViewHolder;
import org.autojs.autojs6.R;
/**
* Created by Stardust on Dec 10, 2017.
@@ -21,7 +20,7 @@ public class DrawerMenuGroupViewHolder extends BindableViewHolder<DrawerMenuItem
@Override
public void bind(DrawerMenuItem data, int position) {
mTextView.setText(data.getTitle());
int padding = itemView.getResources().getDimensionPixelOffset(R.dimen.divider_drawer_menu_group) / 3;
int padding = itemView.getResources().getDimensionPixelOffset(R.dimen.divider_drawer_menu_group);
itemView.setPadding(0, position == 0 ? 0 : padding, 0, 0);
}
}

View File

@@ -13,8 +13,6 @@ public class DrawerMenuItem {
void onClick(DrawerMenuItemViewHolder holder) throws IOException;
}
public static final int DEFAULT_DIALOG_CONTENT = 0;
public static final int DEFAULT_PREFERENCE_KEY = 0;
private final int mIcon;

View File

@@ -3,15 +3,15 @@ package org.autojs.autojs.ui.main.drawer
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.core.view.isVisible
import me.zhanghai.android.materialprogressbar.MaterialProgressBar
import org.autojs.autojs.ui.widget.BindableViewHolder
import org.autojs.autojs.ui.widget.PrefSwitch
import org.autojs.autojs6.databinding.DrawerMenuItemBinding
import java.io.IOException
/**
* Created by Stardust on Dec 10, 2017.
* Modified by SuperMonster003 as of Dec 1, 2021.
* Modified by SuperMonster003 as of Jan 14, 2026.
* Transformed by SuperMonster003 on May 13, 2023.
*/
class DrawerMenuItemViewHolder(itemView: View) : BindableViewHolder<DrawerMenuItem?>(itemView) {
@@ -24,10 +24,8 @@ class DrawerMenuItemViewHolder(itemView: View) : BindableViewHolder<DrawerMenuIt
private var mAntiShake = false
private var mLastClickMillis: Long = 0
private var mDrawerMenuItem: DrawerMenuItem? = null
val switchCompat
get() = mSwitchCompat
private lateinit var mDrawerMenuItem: DrawerMenuItem
init {
val binding = DrawerMenuItemBinding.bind(itemView)
@@ -37,21 +35,45 @@ class DrawerMenuItemViewHolder(itemView: View) : BindableViewHolder<DrawerMenuIt
mTitle = binding.title
mSubtitle = binding.subtitle
mSwitchCompat.setOnCheckedChangeListener { _, _ ->
try {
onClick()
} catch (e: IOException) {
e.printStackTrace()
}
onClick()
}
itemView.setOnClickListener {
if (mSwitchCompat.visibility == View.VISIBLE) {
val toggleAction = {
if (mSwitchCompat.isVisible) {
mSwitchCompat.toggle()
} else {
try {
onClick()
} catch (e: IOException) {
e.printStackTrace()
onClick()
}
}
binding.iconContainer.setOnClickListener {
toggleAction()
}
binding.iconContainer.setOnLongClickListener {
when (val menuItem = mDrawerMenuItem) {
is DrawerMenuToggleableItem -> {
menuItem.launchManagerIfPossible()
}
else -> false
}
}
binding.titleContainer.setOnClickListener {
when (val menuItem = mDrawerMenuItem) {
is DrawerMenuToggleableItem -> {
menuItem.onTitleContainerClick()
}
else -> toggleAction()
}
}
binding.titleContainer.setOnLongClickListener {
when (val menuItem = mDrawerMenuItem) {
is DrawerMenuToggleableItem -> {
menuItem.launchManagerIfPossible()
}
else -> false
}
}
}
@@ -61,14 +83,18 @@ class DrawerMenuItemViewHolder(itemView: View) : BindableViewHolder<DrawerMenuIt
mDrawerMenuItem = data
mIcon.setImageResource(data.icon)
mTitle.setText(data.title)
val subtitle = data.subtitle
mSubtitle.text = subtitle
mSubtitle.visibility = if (subtitle != null) View.VISIBLE else View.GONE
mAntiShake = data.antiShake()
setSwitch(data)
setProgress(data.isProgress)
}
fun isChecked() = mSwitchCompat.isChecked
private fun setSwitch(item: DrawerMenuItem) {
if (!item.isSwitchEnabled) {
mSwitchCompat.visibility = View.GONE
@@ -84,16 +110,15 @@ class DrawerMenuItemViewHolder(itemView: View) : BindableViewHolder<DrawerMenuIt
}
}
@Throws(IOException::class)
private fun onClick() {
mDrawerMenuItem!!.isChecked = mSwitchCompat.isChecked
if (mAntiShake && System.currentTimeMillis() - mLastClickMillis < CLICK_TIMEOUT) {
mSwitchCompat.setChecked(!mSwitchCompat.isChecked, false)
return
}
mLastClickMillis = System.currentTimeMillis()
if (mDrawerMenuItem != null) {
mDrawerMenuItem!!.performAction(this)
runCatching {
mDrawerMenuItem.isChecked = mSwitchCompat.isChecked
if (mAntiShake && System.currentTimeMillis() - mLastClickMillis < CLICK_TIMEOUT) {
mSwitchCompat.setChecked(!mSwitchCompat.isChecked, false)
return
}
mLastClickMillis = System.currentTimeMillis()
mDrawerMenuItem.performAction(this)
}
}

View File

@@ -1,6 +1,7 @@
package org.autojs.autojs.ui.main.drawer
import android.annotation.SuppressLint
import android.app.Activity
import com.afollestad.materialdialogs.MaterialDialog
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -8,33 +9,144 @@ import io.reactivex.schedulers.Schedulers
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.extension.MaterialDialogExtensions.widgetThemeColor
import org.autojs.autojs.ui.common.NotAskAgainDialog
import org.autojs.autojs.util.ViewUtils
import org.autojs.autojs6.R
open class DrawerMenuToggleableItem : DrawerMenuItem, IToggleableItem {
private lateinit var mItemHelper: DrawerMenuItemHelper
constructor(helper: DrawerMenuItemHelper, icon: Int, title: Int) : super(icon, title, DEFAULT_PREFERENCE_KEY) {
init(helper, null)
private var mDescription: String? = null
private var mDescriptionDialogBuilderProvider: (() -> MaterialDialog.Builder)? = null
private var mOnTitleContainerClickListener: (MaterialDialog.Builder.(menuItem: DrawerMenuToggleableItem) -> Unit)? = null
private var mOnLauncherManagerListener: ((MaterialDialog?) -> Unit)? = null
private var mOnLaunchSettingsListener: ((MaterialDialog) -> Unit)? = null
private var mOnNotifyItemChangedListener: ((DrawerMenuItem) -> Unit)? = null
constructor(
helper: DrawerMenuItemHelper,
icon: Int,
title: Int,
descriptionRes: Int? = null,
onTitleContainerClickListener: (MaterialDialog.Builder.(menuItem: DrawerMenuToggleableItem) -> Unit)? = null,
) : super(icon, title, DEFAULT_PREFERENCE_KEY) {
init(helper, null, descriptionRes, onTitleContainerClickListener)
}
constructor(helper: DrawerMenuItemHelper, icon: Int, title: Int, content: Int) : super(icon, title, DEFAULT_PREFERENCE_KEY) {
init(helper, helper.context.takeUnless { content == DEFAULT_DIALOG_CONTENT }?.getString(content))
constructor(
helper: DrawerMenuItemHelper,
icon: Int,
title: Int,
switchOnHintRes: Int? = null,
descriptionRes: Int? = null,
onTitleContainerClickListener: (MaterialDialog.Builder.(menuItem: DrawerMenuToggleableItem) -> Unit)? = null,
) : super(icon, title, DEFAULT_PREFERENCE_KEY) {
init(helper, switchOnHintRes, descriptionRes, onTitleContainerClickListener)
}
constructor(helper: DrawerMenuItemHelper, icon: Int, title: Int, content: Int, prefKey: Int = DEFAULT_PREFERENCE_KEY) : super(icon, title, prefKey) {
init(helper, helper.context.takeUnless { content == DEFAULT_DIALOG_CONTENT }?.getString(content))
constructor(
helper: DrawerMenuItemHelper,
icon: Int,
title: Int,
switchOnHintRes: Int? = null,
prefKey: Int = DEFAULT_PREFERENCE_KEY,
descriptionRes: Int? = null,
onTitleContainerClickListener: (MaterialDialog.Builder.(menuItem: DrawerMenuToggleableItem) -> Unit)? = null,
) : super(icon, title, prefKey) {
init(helper, switchOnHintRes, descriptionRes, onTitleContainerClickListener)
}
private fun init(itemHelper: DrawerMenuItemHelper, content: String?) {
private fun init(
itemHelper: DrawerMenuItemHelper,
switchOnHintRes: Int?,
descriptionRes: Int?,
onTitleContainerClickListener: (MaterialDialog.Builder.(menuItem: DrawerMenuToggleableItem) -> Unit)? = null,
) {
mItemHelper = itemHelper
setContent(content)
switchOnHintRes?.let { content = itemHelper.context.getString(it) }
setAction { holder ->
when (holder.switchCompat.isChecked) {
when (holder.isChecked()) {
true -> getPrompt(true) ?: toggle(true)
else -> toggle(false)
}
}
val description = descriptionRes?.let {
itemHelper.context.getString(it)
} ?: itemHelper.context.getString(R.string.text_no_content_description)
mDescription = description
// Provide a fresh builder each time to avoid stale context.
// zh-CN: 每次都提供新的 builder, 避免 context 过期.
mDescriptionDialogBuilderProvider = {
MaterialDialog.Builder(mItemHelper.context)
.title(title)
.content(description)
.negativeText(R.string.dialog_button_dismiss)
.negativeColorRes(R.color.dialog_button_default)
.onNegative { d, _ -> d.dismiss() }
.autoDismiss(false)
.apply {
mOnLauncherManagerListener?.let { listener ->
neutralText(R.string.dialog_button_manager)
neutralColorRes(R.color.dialog_button_manager)
onNeutral { d, _ ->
runCatching {
listener(d)
}.getOrNull() ?: ViewUtils.showSnack(d.view, R.string.error_failed_to_launch_manager)
}
}
mOnLaunchSettingsListener?.let { listener ->
positiveText(R.string.dialog_button_system_settings_simplified)
positiveColorRes(R.color.dialog_button_advanced_settings)
onPositive { d, _ ->
runCatching {
listener(d)
}.getOrNull() ?: ViewUtils.showSnack(d.view, R.string.error_failed_to_launch_system_settings)
}
}
}
}
mOnTitleContainerClickListener = onTitleContainerClickListener
}
fun setOnNotifyItemChangedListener(listener: ((DrawerMenuItem) -> Unit)?) {
mOnNotifyItemChangedListener = listener
}
fun getHelper(): DrawerMenuItemHelper {
return mItemHelper
}
private fun isContextInvalidForDialog(): Boolean {
val a = (mItemHelper.context as? Activity) ?: return false
return a.isFinishing || a.isDestroyed
}
fun onTitleContainerClick() {
if (isContextInvalidForDialog()) return
val builder = mDescriptionDialogBuilderProvider?.invoke() ?: return
mOnTitleContainerClickListener?.invoke(builder, this)
runCatching { builder.show() }
}
fun launchManagerIfPossible(): Boolean {
val listener = mOnLauncherManagerListener ?: return false
return runCatching {
listener(null)
true
}.getOrDefault(false)
}
fun setOnLaunchManagerListener(onClickListener: (MaterialDialog?) -> Unit) {
mOnLauncherManagerListener = onClickListener
}
fun setOnLaunchSettingsListener(onClickListener: (MaterialDialog) -> Unit) {
mOnLaunchSettingsListener = onClickListener
}
override fun sync() {
@@ -61,24 +173,23 @@ open class DrawerMenuToggleableItem : DrawerMenuItem, IToggleableItem {
}
fun getPrompt(aimState: Boolean): MaterialDialog? {
return content?.let {
var isPositiveButtonPressed = false
val key = "${DrawerMenuToggleableItem::class.simpleName}\$${mItemHelper.context.getString(title)}"
NotAskAgainDialog.Builder(mItemHelper.context, key)
.title(title)
.content(it)
.widgetThemeColor()
.negativeText(R.string.dialog_button_cancel)
.negativeColorRes(R.color.dialog_button_default)
.positiveText(R.string.dialog_button_continue)
.positiveColorRes(R.color.dialog_button_attraction)
.onPositive { _, _ ->
isPositiveButtonPressed = true
toggle(aimState)
}
.dismissListener { if (!isPositiveButtonPressed) sync() }
.show()
}
val dialogContent = content ?: return null
var isPositiveButtonPressed = false
val key = "${DrawerMenuToggleableItem::class.simpleName}\$${mItemHelper.context.getString(title)}"
return NotAskAgainDialog.Builder(mItemHelper.context, key)
.title(title)
.content(dialogContent)
.widgetThemeColor()
.negativeText(R.string.dialog_button_cancel)
.negativeColorRes(R.color.dialog_button_default)
.positiveText(R.string.dialog_button_continue)
.positiveColorRes(R.color.dialog_button_attraction)
.onPositive { _, _ ->
isPositiveButtonPressed = true
toggle(aimState)
}
.dismissListener { if (!isPositiveButtonPressed) sync() }
.show()
}
override fun setProgress(onProgress: Boolean) {
@@ -87,29 +198,25 @@ open class DrawerMenuToggleableItem : DrawerMenuItem, IToggleableItem {
}
private fun notifyItemChanged() {
DrawerFragment.drawerMenuAdapter.notifyItemChanged(this)
mOnNotifyItemChangedListener?.invoke(this)
}
@SuppressLint("CheckResult")
override fun toggle(aimState: Boolean) {
if (!isHidden) {
when (mItemHelper.isInMainThread) {
true -> {
val tryToggleResult = mItemHelper.toggle(aimState)
if (isHidden) return
if (mItemHelper.isInMainThread) {
val tryToggleResult = mItemHelper.toggle(aimState)
syncDelay { if (tryToggleResult) mItemHelper.callback(aimState) }
} else {
isProgress = true
Observable
.fromCallable { mItemHelper.toggle(aimState) }
.subscribeOn(Schedulers.single())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { tryToggleResult ->
isProgress = false
syncDelay { if (tryToggleResult) mItemHelper.callback(aimState) }
}
else -> {
isProgress = true
Observable
.fromCallable { mItemHelper.toggle(aimState) }
.subscribeOn(Schedulers.single())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { tryToggleResult ->
isProgress = false
syncDelay { if (tryToggleResult) mItemHelper.callback(aimState) }
}
}
}
}
}

View File

@@ -14,11 +14,12 @@ object ContextUtils {
@JvmStatic
fun Context.findActivity(): Activity? {
var context: Context? = this
while (context !is Activity) {
context = (context as? ContextWrapper)?.baseContext
var ctx: Context? = this
while (ctx is ContextWrapper) {
if (ctx is Activity) return ctx
ctx = ctx.baseContext
}
return context as? Activity?
return null
}
}

View File

@@ -8,11 +8,9 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
import org.autojs.autojs6.R;
/**
@@ -52,7 +50,7 @@ public class ForegroundServiceUtils {
.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.autojs6_status_bar_icon)
.setAutoCancel(true)
.setOngoing(false)
.setOngoing(true)
.setSilent(true)
.setWhen(System.currentTimeMillis())
.setChannelId(channelId)
@@ -64,11 +62,10 @@ public class ForegroundServiceUtils {
}
@NonNull
public static String getChannelId(Class<?> className) {
return className.getName() + ".foreground";
public static String getChannelId(Class<?> clazz) {
return clazz.getName() + ".foreground";
}
/**
* @noinspection deprecation
*/

View File

@@ -3,7 +3,6 @@ package org.autojs.autojs.util
import android.app.ActivityManager
import android.app.AlarmManager
import android.app.PendingIntent
import android.content.ActivityNotFoundException
import android.content.Context
import android.content.Context.ALARM_SERVICE
import android.content.Intent
@@ -27,6 +26,7 @@ import com.huaban.analysis.jieba.CharsDictionaryDatabase
import com.huaban.analysis.jieba.PhrasesDictionaryDatabase
import com.huaban.analysis.jieba.WordDictionaryDatabase
import org.autojs.autojs.AutoJs
import org.autojs.autojs.annotation.ReservedForCompatibility
import org.autojs.autojs.core.image.capture.ScreenCapturerForegroundService
import org.autojs.autojs.core.pref.Pref
import org.autojs.autojs.execution.ExecutionConfig
@@ -36,6 +36,7 @@ import org.autojs.autojs.runtime.api.Mime
import org.autojs.autojs.runtime.api.WrappedShizuku
import org.autojs.autojs.ui.enhancedfloaty.FloatyService
import org.autojs.autojs.ui.floating.FloatyWindowManger
import org.autojs.autojs.util.ContextUtils.findActivity
import org.autojs.autojs.util.StringUtils.key
import org.autojs.autojs6.R
import java.io.File
@@ -43,83 +44,85 @@ import java.io.FileNotFoundException
import java.util.concurrent.TimeUnit
import kotlin.system.exitProcess
/**
* Modified by SuperMonster003 as of Jan 15, 2026.
*/
object IntentUtils {
fun chatWithQQ(context: Context, qq: String) = try {
true.also {
@Suppress("SpellCheckingInspection")
val url = "mqqwpa://im/chat?chat_type=wpa&uin=$qq"
Intent(Intent.ACTION_VIEW, url.toUri())
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.let { context.startActivity(it) }
@JvmStatic
@JvmOverloads
fun Intent.startSafely(context: Context, printStackTrace: Boolean = false, onFailure: ((Throwable) -> Unit)? = null): Boolean =
runCatching {
start(context)
}.onFailure { t ->
if (printStackTrace) t.printStackTrace()
onFailure?.invoke(t)
}.isSuccess
@JvmStatic
fun Intent.start(context: Context) {
val activity = context.findActivity()
if (activity != null) {
activity.startActivity(this)
} else {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(this)
}
} catch (e: Exception) {
false.also { e.printStackTrace() }
}
fun joinQQGroup(context: Context, key: String) = try {
true.also {
@Suppress("SpellCheckingInspection")
val url = "mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D$key"
Intent(Intent.ACTION_VIEW, url.toUri())
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.let { context.startActivity(it) }
}
} catch (e: Exception) {
false.also { e.printStackTrace() }
@Suppress("SpellCheckingInspection")
fun chatWithQQ(context: Context, qq: String): Boolean {
val uri = "mqqwpa://im/chat?chat_type=wpa&uin=$qq".toUri()
return Intent(Intent.ACTION_VIEW, uri)
.startSafely(context, true)
}
@Suppress("SpellCheckingInspection")
fun joinQQGroup(context: Context, key: String): Boolean {
val uri = "mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D$key".toUri()
return Intent(Intent.ACTION_VIEW, uri)
.startSafely(context, true)
}
@JvmOverloads
fun sendMailTo(context: Context, sendTo: String, title: String? = null, content: String? = null) = try {
true.also {
Intent(Intent.ACTION_SENDTO, "mailto:$sendTo".toUri()).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
putExtra(Intent.EXTRA_CC, /* email */ arrayOf(sendTo))
title?.let { putExtra(Intent.EXTRA_SUBJECT, it) }
content?.let { putExtra(Intent.EXTRA_TEXT, it) }
}.let { context.startActivity(Intent.createChooser(it, "")) }
fun sendMailTo(context: Context, sendTo: String, title: String? = null, content: String? = null): Boolean {
val uri = "mailto:$sendTo".toUri()
val target = Intent(Intent.ACTION_SENDTO, uri).apply {
putExtra(Intent.EXTRA_CC, /* email */ arrayOf(sendTo))
title?.let { putExtra(Intent.EXTRA_SUBJECT, it) }
content?.let { putExtra(Intent.EXTRA_TEXT, it) }
}
} catch (e: ActivityNotFoundException) {
false.also { e.printStackTrace() }
return Intent.createChooser(target, "").startSafely(context, true)
}
@JvmStatic
@JvmOverloads
fun browse(context: Context, link: String, exceptionHolder: ExceptionHolder? = null) = try {
true.also {
Intent(Intent.ACTION_VIEW, link.toUri())
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.let { context.startActivity(it) }
}
} catch (e: ActivityNotFoundException) {
exceptionHolder?.show(R.string.error_no_applications_available_for_browsing_this_link)
// ViewUtils.showToast(context, R.string.text_no_browser, true)
false.also { e.printStackTrace() }
}
fun browse(context: Context, link: String, exceptionHolder: ExceptionHolder? = null): Boolean =
Intent(Intent.ACTION_VIEW, link.toUri())
.startSafely(context, true) {
exceptionHolder?.show(R.string.error_no_applications_available_for_browsing_this_link)
}
fun shareText(context: Context, text: String?) = try {
true.also {
Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_TEXT, text)
.setType("text/plain")
.let { context.startActivity(it) }
}
} catch (e: ActivityNotFoundException) {
false.also { e.printStackTrace() }
}
@JvmStatic
fun shareText(context: Context, text: String?) =
Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_TEXT, text)
.setType("text/plain")
.startSafely(context, true)
@JvmOverloads
fun goToAppDetailSettings(context: Context, packageName: String = context.packageName) = try {
true.also {
Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
addCategory(Intent.CATEGORY_DEFAULT)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
data = "package:$packageName".toUri()
}.let { context.startActivity(it) }
}
} catch (_: ActivityNotFoundException) {
false
}
@ReservedForCompatibility
@Deprecated("Deprecated in Java", ReplaceWith("launchAppDetailsSettings(Context, String)"))
fun goToAppDetailSettings(context: Context, packageName: String = context.packageName) =
launchAppDetailsSettings(context, packageName)
@JvmStatic
@JvmOverloads
fun launchAppDetailsSettings(context: Context, packageName: String = context.packageName) =
Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
addCategory(Intent.CATEGORY_DEFAULT)
data = "package:$packageName".toUri()
}.startSafely(context, true)
@JvmStatic
@JvmOverloads
@@ -128,36 +131,27 @@ object IntentUtils {
path: String,
fileProviderAuthority: String = AppFileProvider.AUTHORITY,
exceptionHolder: ExceptionHolder? = null,
) = try {
Intent(Intent.ACTION_VIEW)
.setDataAndType(
getUriOfFile(context, path, fileProviderAuthority),
Mime.APPLICATION_VND_ANDROID_PACKAGE_ARCHIVE,
)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
.let { context.startActivity(it) }
true
} catch (e: ActivityNotFoundException) {
exceptionHolder?.show(R.string.error_no_applications_available_for_installing_this_file)
// ViewUtils.showToast(context, R.string.text_activity_not_found_for_apk_installing)
e.printStackTrace()
false
}
) = Intent(Intent.ACTION_VIEW)
.setDataAndType(
getUriOfFile(context, path, fileProviderAuthority),
Mime.APPLICATION_VND_ANDROID_PACKAGE_ARCHIVE,
)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
.startSafely(context, true) {
exceptionHolder?.show(R.string.error_no_applications_available_for_installing_this_file)
}
@JvmStatic
@JvmOverloads
fun getUriOfFile(context: Context, path: String?, fileProviderAuthority: String? = AppFileProvider.AUTHORITY): Uri {
return fileProviderAuthority?.let {
fun getUriOfFile(context: Context, path: String?, fileProviderAuthority: String? = AppFileProvider.AUTHORITY): Uri =
fileProviderAuthority?.let {
FileProvider.getUriForFile(context, it, File(path ?: ""))
} ?: "file://$path".toUri()
}
@JvmStatic
fun viewFile(context: Context, path: String, fileProviderAuthority: String = AppFileProvider.AUTHORITY): Boolean {
return viewFile(context, path, Mime.fromFileOr(path, Mime.WILDCARD), fileProviderAuthority)
}
fun viewFile(context: Context, path: String, fileProviderAuthority: String = AppFileProvider.AUTHORITY): Boolean =
viewFile(context, path, Mime.fromFileOr(path, Mime.WILDCARD), fileProviderAuthority)
@JvmStatic
@JvmOverloads
@@ -193,19 +187,13 @@ object IntentUtils {
uri: Uri,
mimeType: String?,
exceptionHolder: ExceptionHolder? = null,
) = try {
true.also {
Intent(Intent.ACTION_VIEW)
.setDataAndType(uri, mimeType)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
.let { context.startActivity(it) }
) = Intent(Intent.ACTION_VIEW)
.setDataAndType(uri, mimeType)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
.startSafely(context, true) {
exceptionHolder?.show(R.string.error_no_applications_available_for_viewing_this_file)
}
} catch (e: Exception) {
exceptionHolder?.show(R.string.error_no_applications_available_for_viewing_this_file)
false.also { e.printStackTrace() }
}
@JvmStatic
@JvmOverloads
@@ -214,22 +202,16 @@ object IntentUtils {
path: String,
fileProviderAuthority: String = AppFileProvider.AUTHORITY,
exceptionHolder: ExceptionHolder? = null,
) = try {
true.also {
Intent(Intent.ACTION_EDIT)
.setDataAndType(
getUriOfFile(context, path, fileProviderAuthority),
Mime.fromFileOrWildcard(path),
)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
.let { context.startActivity(it) }
) = Intent(Intent.ACTION_EDIT)
.setDataAndType(
getUriOfFile(context, path, fileProviderAuthority),
Mime.fromFileOrWildcard(path),
)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
.startSafely(context, true) {
exceptionHolder?.show(R.string.error_no_applications_available_for_editing_this_file)
}
} catch (e: ActivityNotFoundException) {
exceptionHolder?.show(R.string.error_no_applications_available_for_editing_this_file)
false.also { e.printStackTrace() }
}
@JvmStatic
@JvmOverloads
@@ -238,18 +220,15 @@ object IntentUtils {
path: String,
fileProviderAuthority: String = AppFileProvider.AUTHORITY,
exceptionHolder: ExceptionHolder? = null,
) = try {
true.also {
Intent(Intent.ACTION_SEND)
.setType("text/plain")
.putExtra(Intent.EXTRA_STREAM, getUriOfFile(context, path, fileProviderAuthority))
.let { Intent.createChooser(it, context.getString(R.string.text_send)) }
.apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) }
.let { context.startActivity(it) }
): Boolean {
val target = Intent(Intent.ACTION_SEND).apply {
setType("text/plain")
putExtra(Intent.EXTRA_STREAM, getUriOfFile(context, path, fileProviderAuthority))
}
} catch (e: ActivityNotFoundException) {
exceptionHolder?.show(R.string.error_no_applications_available_for_sending_this_file)
false.also { e.printStackTrace() }
return Intent.createChooser(target, context.getString(R.string.text_send))
.startSafely(context, true) {
exceptionHolder?.show(R.string.error_no_applications_available_for_sending_this_file)
}
}
@JvmStatic
@@ -275,13 +254,9 @@ object IntentUtils {
return result
}
fun requestAppUsagePermission(context: Context) = try {
fun requestAppUsagePermission(context: Context) =
Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.let { context.startActivity(it) }
} catch (e: ActivityNotFoundException) {
e.printStackTrace()
}
.startSafely(context, true)
data class SnackExceptionHolder @JvmOverloads constructor(
private val view: View,
@@ -352,9 +327,9 @@ object IntentUtils {
if (context is AppCompatActivity && Pref.isQuickRestartEnabled) {
// When clicking the "Restart" button in the main drawer,
// if "Quick Restart" is enabled, the context.startActivity method will be called.
// zh-CN: 主页抽屉 "重启" 按钮点击时, 如果启用了 "快速重启", 则调用 context.startActivity 方法.
context.startActivity(launchIntent)
// if "Quick Restart" is enabled, the Intent#startSafely method will be called.
// zh-CN: 主页抽屉 "重启" 按钮点击时, 如果启用了 "快速重启", 则调用 Intent#startSafely 方法.
launchIntent.startSafely(context, true)
} else {
// All scripts will call the scheduleAppLaunch method.
// zh-CN: 脚本一律调用 scheduleAppLaunch 方法.
@@ -460,7 +435,9 @@ object IntentUtils {
val pkgName = appCtx.packageName
return appCtx.packageManager.getLaunchIntentForPackage(pkgName)?.apply {
setAction("$pkgName.action.RESTART_UNIQUE")
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_CLEAR_TASK)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
}
}
@@ -551,11 +528,11 @@ object IntentUtils {
}
class RestartWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
override fun doWork(): Result = when {
runCatching { applicationContext.startActivity(getLaunchIntent(applicationContext)) }.isSuccess -> {
Result.success()
}
else -> Result.failure()
override fun doWork(): Result {
val context = applicationContext
val launchIntent = getLaunchIntent(context) ?: return Result.failure()
if (!launchIntent.startSafely(context)) return Result.failure()
return Result.success()
}
}

View File

@@ -5,19 +5,22 @@ import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.provider.Settings
import androidx.activity.result.ActivityResultLauncher
import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import org.autojs.autojs.app.GlobalAppContext
import org.autojs.autojs.util.IntentUtils.startSafely
import org.autojs.autojs6.R
/**
* Created by SuperMonster003 on Mar 10, 2023.
* Modified by SuperMonster003 as of Jan 15, 2026.
*/
object NotificationUtils {
@@ -152,19 +155,25 @@ object NotificationUtils {
@JvmStatic
fun launchSettings() {
val localIntent = Intent()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS"
localIntent.data = Uri.fromParts("package", globalAppContext.packageName, null)
} else {
localIntent.action = "android.settings.APP_NOTIFICATION_SETTINGS"
localIntent.putExtra("app_package", globalAppContext.packageName)
localIntent.putExtra("app_uid", globalAppContext.applicationInfo.uid)
}
val localIntent = createAppNotificationIntent(globalAppContext)
globalAppContext.startActivity(localIntent)
}
@JvmStatic
@JvmOverloads
fun createAppNotificationIntent(context: Context, pkg: String = context.packageName): Intent {
val appNotifIntent: Intent
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
appNotifIntent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
appNotifIntent.putExtra(Settings.EXTRA_APP_PACKAGE, pkg)
} else {
appNotifIntent = Intent("android.settings.APP_NOTIFICATION_SETTINGS")
appNotifIntent.putExtra("app_package", pkg)
appNotifIntent.putExtra("app_uid", context.applicationInfo.uid)
}
return appNotifIntent
}
@JvmStatic
fun requestPermission(launcher: ActivityResultLauncher<Array<String>>) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
@@ -182,4 +191,35 @@ object NotificationUtils {
}
}
/**
* Open settings screen for a specific notification channel.
*
* zh-CN: 打开特定通知渠道的设置界面.
*/
@JvmStatic
fun launchChannelSettings(context: Context, clazz: Class<*>) {
val pkg = context.packageName
val channelId = ForegroundServiceUtils.getChannelId(clazz)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channelExists = runCatching {
val nm = context.getSystemService(NotificationManager::class.java)
nm != null && nm.getNotificationChannel(channelId) != null
}.getOrDefault(false)
if (channelExists) {
val channelIntent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply {
putExtra(Settings.EXTRA_APP_PACKAGE, pkg)
putExtra(Settings.EXTRA_CHANNEL_ID, channelId)
}
if (channelIntent.startSafely(context)) return
}
}
val appNotifIntent = createAppNotificationIntent(context, pkg)
if (appNotifIntent.startSafely(context)) return
IntentUtils.launchAppDetailsSettings(context, pkg)
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -3,8 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:divider"
android:paddingTop="4dp">
android:background="@color/drawer_menu_group_divider_color"
android:layout_marginTop="4dp">
<TextView
android:id="@+id/title"

View File

@@ -1,76 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="46dp"
android:background="?selectableItemBackground"
android:orientation="horizontal">
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="43dp"
android:background="?selectableItemBackground"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/icon_container"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_margin="14dp">
android:id="@+id/icon_container"
android:layout_width="43dp"
android:layout_height="43dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true">
<ImageView
android:id="@+id/icon"
android:layout_width="15dp"
android:layout_height="15dp"
tools:src="@drawable/ic_service_green"
app:tint="#999999" />
android:id="@+id/icon"
android:layout_gravity="center"
android:layout_width="15dp"
android:layout_height="15dp"
android:translationY="0.5dp"
tools:src="@drawable/ic_service_green"
app:tint="@color/drawer_menu_group_text_color" />
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
android:id="@+id/progress_bar"
android:layout_width="15dp"
android:layout_height="15dp"
android:backgroundTint="#999999"
android:visibility="gone" />
android:id="@+id/progress_bar"
android:layout_gravity="center"
android:layout_width="15dp"
android:layout_height="15dp"
android:backgroundTint="@color/drawer_menu_group_text_color"
android:visibility="gone" />
</FrameLayout>
<LinearLayout
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_toEndOf="@+id/icon_container"
android:layout_toStartOf="@id/sw"
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
android:orientation="vertical">
android:id="@+id/title_container"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:minHeight="43dp"
android:layout_toEndOf="@+id/icon_container"
android:layout_toStartOf="@id/sw"
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="?drawer_item_text_color"
android:textSize="14sp"
tools:text="@string/text_a11y_service" />
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="?drawer_item_text_color"
android:textSize="14sp"
tools:text="@string/text_a11y_service" />
<TextView
android:id="@+id/subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="@color/drawer_item_subtitle_color"
android:textSize="11sp"
tools:text="@string/text_sample_string" />
android:id="@+id/subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="@color/drawer_item_subtitle_color"
android:textSize="11sp"
android:visibility="gone"
tools:visibility="gone"
tools:text="@string/text_sample_string" />
</LinearLayout>
<org.autojs.autojs.ui.widget.PrefSwitch
android:id="@+id/sw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:visibility="gone"
tools:checked="true"
tools:visibility="visible" />
android:id="@+id/sw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:visibility="gone"
tools:checked="true"
tools:visibility="visible" />
</RelativeLayout>

View File

@@ -17,12 +17,13 @@
android:id="@+id/drawer_menu"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
android:layout_weight="1"
android:paddingBottom="4dp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:divider" />
android:layout_height="@dimen/divider_drawer_menu_group"
android:background="@color/drawer_menu_group_divider_color" />
<LinearLayout
android:layout_width="match_parent"

View File

@@ -58,6 +58,7 @@
<string name="content_description_fab_for_display_manifest">زر عائم لعرض المحتوي الفعلي</string>
<string name="content_failed_to_determine_index_of_theme_color_item">فشل في تحديد مؤشر عنصر لون الثيم</string>
<string name="content_failed_to_locate_library_for_theme_color">فشل في تحديد موقع مكتبة الألوان للثيم</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">تعذّر جلب سجل التغييرات للغة المعروضة حاليًا. يمكنك إعادة المحاولة لاحقًا.\n\nسيتم عرض ملاحظات الإصدار باللغة \"الصينية المبسطة (zh-Hans)\" مؤقتًا.</string>
<string name="content_github_feedback">سيتم إطلاق صفحة ويب للإبلاغ عن مشكلة.\nقد تكون هناك حاجة إلى حساب GitHub.</string>
<string name="content_way_of_output_for_recorded_script">اختر طريقة إخراج للنصوص المعاد تصميمها</string>
<string name="crash_feedback">نسخ سجل الأخطاء أو الخروج مباشرة</string>
@@ -69,47 +70,71 @@
<string name="default_value_working_directory">/نصوص</string>
<string name="description_about_app_and_developer_preference">AutoJs6 هي أداة آلية لجافا سكريبت لنظام أندرويد ، وهي مفتوحة المصدر ومستنسخة من \"hyb1996 / Auto.js\".\n\nلطلب المساعدة أو التعليقات ، انتقل إلى مشكلات GitHub أو انضم إلى مجموعة Tencent QQ 690946137.</string>
<string name="description_about_app_tips_preference">1. اضغط مع الاستمرار على رمز التطبيق في صفحة \"حول التطبيق والمطور\" للانتقال إلى صفحة خيارات مطور AutoJs6</string>
<string name="description_accessibility_service">تُعد خدمة تسهيل الاستخدام القدرة الأساسية في AutoJs6 لتنفيذ الأتمتة. تُستخدم لقراءة معلومات عناصر الواجهة على الشاشة ومحاكاة تفاعلات مثل [ النقر / السحب / الإدخال ].\n\nتتطلب معظم دوال الأتمتة وكذلك أدوات مثل تحليل التخطيط تمكين خدمة تسهيل الاستخدام لكي تعمل بشكل صحيح.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">يسمح إذن \"إدارة جميع الملفات\" (أو \"الوصول إلى جميع الملفات\") لـ AutoJs6 بـ [ إنشاء / قراءة / تعديل / حذف ] الملفات مباشرةً عبر مسارات الملفات العادية ضمن مساحة التخزين المشتركة، مما يتيح للسكربتات الوصول إلى \"Internal Storage\" ويُمكّن مدير الملفات من عرض الملفات وإدارتها بشكل صحيح.\n\nعلى أجهزة Android 11+، تُعد هذه الطريقة الأساسية لتحقيق قدرة القراءة والكتابة على كامل التخزين.</string>
<string name="description_app_language_preference">هذا التفضيل لتغيير لغة العرض لـ AutoJs6 ، بما في ذلك رسائل الاستثناء من تشغيل البرامج النصية.\n\nملاحظة: قد تكون هناك حاجة إلى إعادة تشغيل التطبيق لجعل اللغة تطبيقها كما هو متوقع.</string>
<string name="description_auto_night_mode">عند تفعيل الوضع الليلي التلقائي، سيقوم AutoJs6 بالتبديل تلقائيًا إلى الوضع الليلي وفقًا لإعدادات النظام.\n\nNote: مفتاح الوضع الليلي التلقائي ومفتاح الوضع الليلي مرتبطان ويؤثر كل منهما في الآخر.</string>
<string name="description_change_working_dir_preference">قم بتغيير مسار الدليل الذي يحتوي على البرامج النصية</string>
<string name="description_check_for_updates_preference">يحصل AutoJs6 على التحديثات وتنزيلها من GitHub.</string>
<string name="description_client_mode">يُستخدم وضع العميل لتمكين AutoJs6 من الاتصال بشكل نشط بخادم بعيد لتنفيذ [ نقل السكربتات / طباعة السجلات / التحكم عن بُعد ].\n\nعادةً ما يلزم أن يكون الجهاز والخادم ضمن نفس الشبكة المحلية (LAN) أو ضمن بيئة شبكة يمكنهما الوصول فيها إلى بعضهما البعض.</string>
<string name="description_display_over_other_app">يسمح إذن \"العرض فوق التطبيقات الأخرى\" لـ AutoJs6 بعرض نوافذ عائمة أو زر عائم فوق واجهات التطبيقات الأخرى، وذلك لتنفيذ الإجراءات بسرعة أو عرض المعلومات على أي شاشة.\n\nNote: عند عدم منح هذا الإذن، قد لا تظهر النوافذ العائمة والزر العائم أو قد لا يعملان بشكل صحيح.</string>
<string name="description_documentation_source_preference">المستندات المحلية: باستخدام ملفات AutoJs6 المضمنة كمصادر توثيق ، لا يلزم الاتصال بالشبكة. يتغير المحتوى مع تحديث AutoJs6.\nالمستندات عبر الإنترنت: استخدام صفحات GitHub كمصادر توثيق تتطلب اتصالاً بالشبكة. المحتوى دائما محدث.\n\nملاحظة: لزيادة تجربة قراءة المستندات عبر الإنترنت إلى الحد الأقصى ، يوصى باستخدام جهاز عرض بشاشة عريضة مثل شاشة سطح المكتب.\nملاحظة: اعتبارًا من الإصدار 6.2.0 ، لا تزال الوثائق في المراحل الأولية من التطوير ، ومعظم المحتوى لم تتم كتابته أو تحديثه بعد.</string>
<string name="description_documentation_source_preference_more">يجب استيفاء الشروط التالية لدعم النسق الداكن على صفحات المستند:\n1. تم تمكين الوضع الليلي AutoJs6\n2.عرض ويب نظام Android (أو متصفحات مثل Google Chrome):\n- Android API المستوى 29 (Android 10) [Q] وما فوق: الإصدار> = 76\n- مستوى واجهة برمجة تطبيقات Android 28 (Android 9) [P] وما دون: الإصدار> = 105</string>
<string name="description_extending_js_build_in_objects">يمكن أن يؤدي توسيع كائنات JavaScript المضمنة إلى زيادة مرونة التعليمات البرمجية وتمكين وظائف أكثر ثراءً ، ولكن يمكن أن يتسبب في حدوث تعارضات وحتى حدوث تعطل.\nتحتوي جميع البرامج النصية على امتدادات مضمنة يتم تمكينها افتراضيًا عند تشغيل الخيار.\nغالبًا ما تكون الامتدادات المضمنة غير آمنة ، ولا يوصى بها ما لم يتم فهم مبادئ ومخاطر الإضافات المضمنة بوضوح.\nعند إيقاف تشغيل الخيار ، لا يزال من الممكن تمكين الامتدادات المضمنة من خلال الكائن العام للمكونات الإضافية ، كما هو موضح في وثائق المشروع.</string>
<string name="description_file_extensions_preference">يُستخدم لتحديد ما إذا كان يجب عرض امتدادات الملف في مستكشف ملفات AutoJs6.</string>
<string name="description_floating_button">يُستخدم الزر العائم لعرض مدخل سريع قابل للسحب على حافة الشاشة، ويمكن استخدامه لـ [ بدء أو إيقاف السكربتات / تحليل التخطيط / عرض اسم الحزمة أو اسم النشاط الأخير / إظهار موقع المؤشر ].\n\nNote: تتطلب هذه الميزة عادةً إذن \"العرض فوق التطبيقات الأخرى\".</string>
<string name="description_foreground_service">تُستخدم خدمة المقدمة للحفاظ على تشغيل AutoJs6 بشكل أكثر استقرارًا في الخلفية، وهي مناسبة لسيناريوهات مثل [ تشغيل السكربتات لفترات طويلة / الحفاظ على الاتصال / الاستماع المستمر ].\n\nبعد تفعيلها، سيعرض النظام \"إشعار خدمة مقدمة\" لإعلام المستخدم بأن AutoJs6 يعمل باستمرار. عادةً ما يبقى هذا الإشعار ظاهرًا حتى تتوقف الخدمة.\n\nتعيين الإشعار إلى \"Silent\" أو \"Minimize\" يقلل فقط من شدة التنبيه، وعادةً لا يؤثر على وظيفة خدمة المقدمة.\n\nإذا تم تعطيل قناة الإشعارات أو تم منع AutoJs6 من إرسال الإشعارات، فقد يؤثر ذلك على بدء خدمة المقدمة بشكل طبيعي وعلى استقرارها.</string>
<string name="description_hidden_files_preference">تُستخدم لتعيين إظهار الملفات والمجلدات المخفية (تبدأ عادةً بـ \".\") في مستكشف الملفات AutoJs6 أم لا.</string>
<string name="description_ignore_battery_optimizations">قد يؤدي تجاهل تحسين البطارية إلى تقليل قيود النظام على AutoJs6 في الخلفية، مما يساعد المهام المجدولة أو السكربتات طويلة التشغيل على العمل بشكل أكثر استقرارًا نسبيًا أثناء وضع الاستعداد.\n\nNote: قد تظل بعض أنظمة الشركات المصنِّعة تطبق سياسات إضافية لتوفير الطاقة، مثل تقييد التشغيل التلقائي أو تجميد التطبيقات في الخلفية.</string>
<string name="description_keep_screen_on_when_in_foreground">يُستخدم للتحكم فيما إذا كانت الشاشة ستبقى مضاءة عندما يكون AutoJs6 في المقدمة.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">تفضيل إبقاء شاشة الجهاز قيد التشغيل وساطعة عندما يكون AutoJs6 في المقدمة.\nلتحقيق ذلك فقط على الصفحة الرئيسية بين جميع صفحات تطبيق AutoJs6 ، اختر خيار \"الصفحة الرئيسية فقط\".</string>
<string name="description_launcher_icon_preference">يدعم رمز المشغّل وضعي عرض: الرمز المتكيّف أو الرمز التقليدي بخلفية شفافة. قد يختلف تأثير العرض الفعلي عبر أنظمة أندرويد المختلفة. قد يستغرق الأمر بضع ثوانٍ ليصبح التغيير ساريًا بعد تبديل وضع العرض.</string>
<string name="description_launcher_shortcuts">يمكن للاختصارات تنفيذ إجراءات محددة في AutoJs6. يمكن للمستخدمين عرض هذه الاختصارات في مشغل مدعوم وبدء بعض المهام أو تشغيل نشاط بسرعة، مثل قراءة وثائق تطبيق AutoJs6، وتشغيل صفحة إعدادات AutoJs6، وما إلى ذلك.</string>
<string name="description_manage_ignored_updates_preference">انقر لعرض أو إدارة عناصر القائمة.\nاضغط لفترة طويلة لإزالة عنصر القائمة.</string>
<string name="description_night_mode">يُستخدم للتحكم في استراتيجية الوضع الليلي في AutoJs6 وعكسها.\n\nNote: مفتاح الوضع الليلي ومفتاح الوضع الليلي التلقائي مرتبطان ويؤثر كل منهما في الآخر.</string>
<string name="description_night_mode_preference">ينطبق الوضع الليلي (المعروف أيضًا باسم Dark theme) على كل من واجهة مستخدم نظام Android والتطبيقات التي تعمل على الجهاز ، مما يحسن الرؤية للمستخدمين ضعاف البصر وأولئك الذين لديهم حساسية للضوء الساطع ، ويسهل على أي شخص استخدام الجهاز. في بيئة الإضاءة المنخفضة.\n\nنظام المتابعة: يحتوي AutoJs6 على إعدادات الوضع الليلي مثل نظام Android\nيعمل دائمًا: يحافظ AutoJs6 على تشغيل الوضع الليلي (بغض النظر عن إعدادات نظام Android)\nإيقاف التشغيل دائمًا: يقوم AutoJs6 بإيقاف تشغيل الوضع الليلي (بغض النظر عن إعدادات نظام Android)\n\nملاحظة: خيار متابعة النظام متاح فقط لـ Android API Level 28 (Android 9) [P] وما فوق.</string>
<string name="description_night_mode_preference_more">لتمكين الوضع الليلي في نظام Android:\n- Android API المستوى 29 (Android 10) [Q] وما فوق: الإعدادات -> العرض -> المظهر.\n- Android API المستوى 28 (Android 9) [P]: خيارات المطور -> الوضع الليلي.\n\nيجب استيفاء الشروط التالية لتطبيق الوضع الليلي (المظهر الداكن) على المحتوى المستند إلى الويب باستخدام مكون WebView (مثل صفحة وثائق AutoJs6):\n1.عرض ويب نظام Android (أو متصفحات مثل Google Chrome):\n- Android API المستوى 29 (Android 10) [Q] وما فوق: الإصدار> = 76\n- مستوى واجهة برمجة تطبيقات Android 28 (Android 9) [P]: الإصدار> = 105\n2. تم تكييف المحتوى المستند إلى الويب في مكون WebView مع المظهر الداكن (عن طريق موارد CSS أو Android XML وما إلى ذلك)</string>
<string name="description_notification_access">يسمح إذن \"الوصول إلى الإشعارات\" (أو \"إذن قراءة الإشعارات\") لـ AutoJs6 بقراءة محتوى إشعارات النظام، مما يتيح للسكربتات الاستماع إلى الإشعارات أو الحصول على نص الإشعار وما إلى ذلك.</string>
<string name="description_post_notifications">يسمح إذن \"إرسال الإشعارات\" لـ AutoJs6 بنشر الإشعارات على النظام، مما يتيح للسكربتات نشر وإدارة إشعارات مخصّصة في شريط الإشعارات.\n\nNote: على أجهزة Android 13+، إذا لم يتم منح هذا الإذن فقد لا تظهر بعض الإشعارات، وقد يؤثر ذلك على تشغيل خدمات المقدمة واستقرارها.</string>
<string name="description_project_media_access">مع الوصول إلى وسائط المشروع ، لن يطلب منك التحذير الأمني لتسجيل الشاشة.</string>
<string name="description_restart_strategy">تؤثر استراتيجية إعادة التشغيل فقط في زر إعادة التشغيل في درج الصفحة الرئيسية.\n\nإعادة تشغيل سريعة: تعيد تشغيل التطبيق بسرعة. إذا فشلت عملية إعادة التشغيل أو حدثت حالات غير متوقعة، جرّب التبديل إلى \"إعادة تشغيل مجدولة\".\nإعادة تشغيل مجدولة: تُعدّ مسبقًا مهمة مؤقتة قصيرة. بعد إيقاف التطبيق، سيبدأ مرة أخرى وفق الجدول لتنفيذ إعادة التشغيل.</string>
<string name="description_rhino_java_primitive_wrap">عند تفعيل المفتاح (الوضع الافتراضي): سيتم تغليف القيم المُعادة من أساليب Java من الأنواع Number/Boolean/Character ككائنات Java وإتاحتها للسكريبت (باستثناء String). ستكون typeof هي \"object\" و species هي \"JavaObject\"، ويمكن استدعاء أساليب Java، مما يساعد على الحفاظ على خصائص الأنواع الدقيقة في Java وحل زيادة التحميل (overload).\n\nعند إيقاف المفتاح: لن تُغلف الأنواع المذكورة، وستُعرض مباشرة كقيم أولية في JavaScript (number/boolean/سلسلة ذات حرف واحد). ستكون typeof هي نوع JavaScript الموافق، وهو أقرب لدلالات ونظام JavaScript البيئي. لا يزال بالإمكان إعلان مغلّف Java صراحةً باستخدام new، مثل new java.lang.Boolean(true).\n\nانظر: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">إذا كان لديك جذر غريب أو حالة غير طبيعية للوصول إلى الجذر ، فيمكنك إجبار الجذر على الجذر أو غير الجذر.</string>
<string name="description_root_record_out_file_type_preference">النوع الثنائي: غير قابل للتحرير ، بامتداد الملف \"تلقائي\"\nنوع جافا سكريبت: يمكن تحريره أو نسخه مباشرة بامتداد الملف \"js\"</string>
<string name="description_server_mode">يُستخدم وضع الخادم لتمكين AutoJs6 من تشغيل خدمة على الجهاز الحالي والانتظار لاتصالات عملاء خارجيين لتنفيذ [ نقل السكربتات / طباعة السجلات / التحكم عن بُعد ].\n\nيدعم وضع الخادم في AutoJs6 طريقتين للاتصال:\n1. الشبكة المحلية (LAN)\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">يتيح Shizuku استخدام واجهة برمجة تطبيقات النظام مع امتيازات ADB</string>
<string name="description_stable_mode">يجعل الوضع المستقر أكثر استقرارًا عند الحصول على حدود تخطيط ، ولكن قد يتم تجاهل بعض النتائج.\nإعادة تشغيل خدمة الوصول المطلوبة.</string>
<string name="description_theme_color_preference">يتم تطبيق لون النسق على عناصر واجهة المستخدم بما في ذلك على سبيل المثال لا الحصر العناصر التالية:\nشريط الحالة\nAppbar\nرمز الملف\nرمز عنصر المهمة\nفاب\nعنوان فئة الإعدادات\nزر التغيير\n\nملاحظة: اعتبارًا من الإصدار 6.2.0 من AutoJs6 ، لم يكن هناك فرق بين اللون الأساسي واللون الأساسي الداكن ولون التمييز حتى الآن.</string>
<string name="description_timed_task_backend">يتحكم في الآلية الأساسية لتشغيل السكربتات بشكل مجدول.\n\nAlarmManager: عبر منح إذن \"السماح بتعيين المنبّهات والتذكيرات\" يمكن أن تصبح المهام أقرب إلى التنفيذ في الوقت المحدد.\nWorkManager: صديق للنظام؛ مناسب للمهام غير الحرجة التي تتحمل بعض التأخير.\nJobScheduler: تنفيذ قديم محفوظ للتوافق؛ احتمال التأخير أعلى.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">حالات الاستخدام والفروقات:\n\n1. AlarmManager\nمناسب للمهام الحسّاسة للتوقيت، مثل [التذكيرات/السكربتات الدقيقة التوقيت/...].\nعلى Android 12+ ومع منح إذن \"السماح بتعيين المنبّهات والتذكيرات\" يمكن التنفيذ بدقة أكبر حتى مع إيقاف الشاشة أو في وضع السكون.\nبدون الإذن قد يقلل النظام الدقة أو يؤخر التنفيذ.\n\n2. WorkManager\nمناسب للمهام التي لا تتطلب دقة زمنية صارمة مثل [مزامنة غير حرجة/تنظيف/إحصاءات/...].\nيتم الجدولة وفق [حالة البطارية/الشبكة/الشحن/سياسات السكون/...], وقد تتأخر المهام عند إيقاف الشاشة أو في وضع السكون.\nلا يضمن الدقة الزمنية لكنه يوفر مزايا في [إتمام موثوق/إعادة المحاولة عند الفشل/سلاسل المهام/إزالة التكرار].\n\n3. JobScheduler\nتنفيذ تاريخي لأغراض التوافق.\nفي إصدارات أندرويد الحديثة قد تحدث تأخيرات أكبر.\nلا يُنصح به إلا لاعتبارات التوافق.</string>
<string name="description_usage_stats_access">يوفر إمكانية الوصول إلى سجل وإحصائيات استخدام الجهاز مما يؤدي إلى CurrentPackage () نتيجة أكثر دقة</string>
<string name="description_version_histories_preference">عرض سجل إصدارات AutoJs6 على GitHub وإحصاءات الفئات الرئيسية.</string>
<string name="description_write_secure_settings">إعدادات النظام الآمنة ، التي تحتوي على تفضيلات النظام التي يمكن أن تقرأها التطبيقات ولكن لا يُسمح لها بالكتابة.\nهذه هي لتفضيلات يجب على المستخدم تعديلها بشكل صريح من خلال واجهة المستخدم لتطبيق النظام.\nمع إذن إعدادات النظام الآمن ، يمكن للتطبيقات العادية تعديل الإعدادات الآمنة مباشرة (مثل خدمة إمكانية الوصول).</string>
<string name="description_write_system_settings">يسمح إذن \"تعديل إعدادات النظام\" لـ AutoJs6 بتعديل بعض إعدادات النظام، مما يتيح للسكربتات تعديل إعدادات مثل [ سطوع الشاشة / التدوير التلقائي / مهلة إيقاف الشاشة ].</string>
<string name="dialog_button_advanced_settings">متقدم</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">يلغي</string>
<string name="dialog_button_cancel_download">يلغي</string>
<string name="dialog_button_clear_items">مسح</string>
<string name="dialog_button_confirm">نعم</string>
<string name="dialog_button_connect">اتصال</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">بادئة افتراضية</string>
<string name="dialog_button_details">تفاصيل</string>
<string name="dialog_button_dismiss">رفض</string>
<string name="dialog_button_download_with_browser">متصفح</string>
<string name="dialog_button_exception_details">تفاصيل</string>
<string name="dialog_button_file_information">معلومات الملف</string>
<string name="dialog_button_history">تاريخ</string>
<string name="dialog_button_ignore_current_update">يتجاهل</string>
<string name="dialog_button_join_group">إنضم للمجموعة</string>
<string name="dialog_button_manager">المدير</string>
<string name="dialog_button_more">أكثر</string>
<string name="dialog_button_open_color_palette">فتح لوحة الألوان</string>
<string name="dialog_button_quit">يترك</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">إزالة</string>
<string name="dialog_button_retrieve">جلب</string>
<string name="dialog_button_retry">إعادة المحاولة</string>
@@ -122,6 +147,8 @@
<string name="dialog_button_version_histories">السجل</string>
<string name="dialog_button_view_file">استعراض الملف</string>
<string name="dialog_button_view_shortcuts">عرض الاختصارات</string>
<string name="dialog_button_view_update">عرض التحديث</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">تفاصيل اللون</string>
<string name="dialog_title_color_palette">لوحة الألوان</string>
<string name="dialog_title_theme_color_details">تفاصيل لون الثيم</string>
@@ -171,6 +198,8 @@
<string name="error_arguments_cannot_be_empty">لا يمكن أن تكون الوسائط فارغة</string>
<string name="error_arguments_must_be_empty">يجب أن تكون الوسائط فارغة</string>
<string name="error_at_least_one_abi_needs_to_be_selected">يجب تحديد ABI واحد على الأقل</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">يجب ألا يكون إصدار AutoJs6 أقل من %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">يجب ألا يكون رقم إصدار AutoJs6 أقل من %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">كلا النقطات والحصيرة فارغة</string>
<string name="error_cannot_be_null">%s لا يمكن أن يكون فارغا</string>
<string name="error_cannot_connect_to_github">لا يمكن الاتصال بـ GitHub</string>
@@ -205,11 +234,17 @@
<string name="error_failed_to_grant_shizuku_access">فشل منح Shizuku حق الوصول</string>
<string name="error_failed_to_instantiate">فشل إنشاء المثيل \"%s\"</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[فشل إنشاء المثيل \"%1$s\": [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">تعذّر تشغيل المدير</string>
<string name="error_failed_to_launch_system_settings">تعذّر فتح إعدادات النظام</string>
<string name="error_failed_to_load_plugins_with_reason">فشل تحميل المكونات الإضافية.\nالسبب: %1$s.</string>
<string name="error_failed_to_render_content">فشل في عرض المحتوى</string>
<string name="error_failed_to_retrieve_changelog">تعذّر جلب سجل التغييرات</string>
<string name="error_failed_to_retrieve_release_notes">تعذّر جلب ملاحظات الإصدار</string>
<string name="error_failed_to_retrieve_version_histories">تعذّر جلب سجل الإصدارات</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">تعذّر جلب ملف version.properties لتحليل معلومات الإصدار</string>
<string name="error_failed_to_revoke_shizuku_access">فشل في إلغاء وصول Shizuku</string>
<string name="error_failed_to_run_script">فشل في تشغيل البرنامج النصي</string>
<string name="error_failed_to_save_project_config">تعذّر حفظ إعدادات المشروع</string>
<string name="error_file_in_path_does_not_exist">الملف في المسار \"%1$s\" غير موجود</string>
<string name="error_function_called_in_ui_thread">لا يمكن حظر مؤشر ترابط واجهة المستخدم. حاول تشغيل %s() في الخيط الفرعي أو النصف الفرعي</string>
<string name="error_function_called_more_than_once">%s() دعا أكثر من مرة</string>
@@ -246,6 +281,7 @@
<string name="error_no_applications_available_for_playing_this_file">لا توجد تطبيقات متاحة لتشغيل هذا الملف</string>
<string name="error_no_applications_available_for_sending_this_file">لا توجد تطبيقات متاحة لإرسال هذا الملف</string>
<string name="error_no_applications_available_for_viewing_this_file">لا توجد تطبيقات متاحة لعرض هذا الملف</string>
<string name="error_no_available_url_provided_for_current_plugin">لم يتم توفير عنوان URL متاح للملحق الحالي</string>
<string name="error_no_display_over_other_apps_permission">لا يوجد إذن \"عرض عبر التطبيقات الأخرى\"</string>
<string name="error_no_permission_to_access_shizuku">لا يوجد إذن للوصول إلى Shizuku</string>
<string name="error_no_post_notifications_permission">لا يوجد إذن \"نشر الإخطارات\"</string>
@@ -274,6 +310,7 @@
<string name="error_shizuku_is_not_installed">لم يتم تثبيت Shizuku</string>
<string name="error_shizuku_service_may_be_not_running">قد لا تكون خدمة Shizuku قيد التشغيل</string>
<string name="error_shizuku_version_is_not_supported">نسخة Shizuku غير مدعومة</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">يجب أن يكون رقم إصدار AutoJs6 المحدد أكبر من 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">لا يمكن لمحول الخاصية المطلوبة \"%1$s\" إرجاع قيمة فارغة</string>
<string name="error_thread_is_not_alive">الموضوع ليس على قيد الحياة</string>
<string name="error_unable_to_use_shizuku_service">غير قادر على استخدام خدمة Shizuku</string>
@@ -484,6 +521,7 @@
<string name="text_captured_window_info_type_unknown">نوع غير معروف</string>
<string name="text_category_filter">فلتر الفئة</string>
<string name="text_change_working_dir">تغيير دليل العمل</string>
<string name="text_changelog">سجل التغييرات</string>
<string name="text_changelog_item_dependency">تعديلات على إصدارات بعض التبعيات أو المكتبات المحلية</string>
<string name="text_check_for_updates">تحقق من وجود تحديثات</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">التحقق من وجود تحديثات (تجاهل النسخة المحلية)</string>
@@ -521,7 +559,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">سيتم مسح السجلات التالية\n\n[ جميع مكتبات الألوان ]\n\nهل أنت متأكد من المسح؟</string>
<string name="text_confirm_to_delete">هل انت متأكد من الحذف؟</string>
<string name="text_confirm_to_remove">هل أنت متأكد من إزالته؟</string>
<string name="text_confirm_to_uninstall">هل تريد بالتأكيد إلغاء التثبيت؟</string>
<string name="text_connect_to_pc">الاتصال بالكمبيوتر</string>
<string name="text_connected">متصل</string>
<string name="text_connected_count_with_colon">متصل: %1$d</string>
<string name="text_connection_cannot_be_established">لا يمكن إنشاء الاتصال</string>
<string name="text_console">وحدة التحكم</string>
<string name="text_continue">يكمل</string>
@@ -643,6 +684,7 @@
<string name="text_failed_to_retrieve">فشل الجلب</string>
<string name="text_failed_to_save_remote_project_to_local_storage">فشل حفظ المشروع البعيد في التخزين المحلي</string>
<string name="text_failed_to_send_log_entries">فشل في إرسال إدخالات السجل</string>
<string name="text_failed_to_update">فشل التحديث</string>
<string name="text_failed_to_write_file">فشل في كتابة الملف</string>
<string name="text_file">ملف</string>
<string name="text_file_details">تفاصيل الملف</string>
@@ -667,7 +709,6 @@
<string name="text_floating_button">زر عائم</string>
<string name="text_force_stop">توقف إجباري</string>
<string name="text_foreground_service">خدمة المقدمة</string>
<string name="text_foreground_service_description">تقوم الخدمات الأمامية بإجراء عمليات ملحوظة للمستخدم.\nتُظهر الخدمات المقدمة إخطار شريط الحالة ، بحيث يدرك المستخدمون بنشاط أن تطبيقك يقوم بمهمة في المقدمة ويستهلك موارد النظام.\nلا يمكن رفض الإشعار ما لم يتم إيقاف الخدمة أو إزالتها من المقدمة.\nقد يتم تحديد الإخطار أولوية منخفضة ، حتى يتم إيقاف تشغيله ، عن طريق الإخطار الطويل.</string>
<string name="text_formatting_completed">اكتمل التنسيق</string>
<string name="text_function">وظيفة</string>
<string name="text_fx_keyboard">لوحة مفاتيح Fx</string>
@@ -707,9 +748,11 @@
<string name="text_install_from_url">التثبيت من \"URL\"</string>
<string name="text_install_plugin_from_url">تثبيت الملحق من \"URL\"</string>
<string name="text_installable">قابل للتثبيت</string>
<string name="text_integrity_verification_failed">فشل التحقق من السلامة</string>
<string name="text_invalid_character_is_removed">تمت إزالة حرف غير صالح</string>
<string name="text_invalid_package_name">اسم الحزمة غير صالح</string>
<string name="text_invalid_project">مشروع غير صالح</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">عنوان IP \"%1$s\" له استخدام خاص (loopback/broadcast/multicast/reserved/...)، لذلك قد لا يمكن استخدامه للاتصال بالخادم الهدف.</string>
<string name="text_is_latest_version">لم يتم العثور على نسخة أحدث</string>
<string name="text_issue_report">استجابة</string>
<string name="text_js_file">*</string>
@@ -777,11 +820,13 @@
<string name="text_night_mode">وضع الليل</string>
<string name="text_no_browser">لم يتم تثبيت متصفح</string>
<string name="text_no_content">لا يوجد محتوى</string>
<string name="text_no_content_description">لا يوجد وصف للمحتوى</string>
<string name="text_no_histories">لا تاريخ</string>
<string name="text_no_ignored_updates">لا تحديثات تم تجاهلها</string>
<string name="text_no_log_entries_to_copy">لا توجد إدخالات سجل لنسخها</string>
<string name="text_no_log_entries_to_export">لا توجد إدخالات سجل للتصدير</string>
<string name="text_no_log_entries_to_send">لا توجد إدخالات سجل لإرسالها</string>
<string name="text_no_plugins_installed_hint">لا توجد حاليًا أي مكونات إضافية مثبتة.\nانقر على زر \"+\" لتثبيت المكونات الإضافية.</string>
<string name="text_no_root">غير الجذر</string>
<string name="text_no_root_access">لا الوصول إلى الجذر</string>
<string name="text_no_scripts_to_stop_running">لا توجد نصوص للتوقف عن الجري</string>
@@ -924,7 +969,6 @@
<string name="text_project">مشروع</string>
<string name="text_project_location">موقع المشروع</string>
<string name="text_project_media_access">وصول وسائل الإعلام المشروع</string>
<string name="text_project_media_access_description">مع الوصول إلى وسائط المشروع ، لن يطلب منك التحذير الأمني لتسجيل الشاشة.</string>
<string name="text_prompt">مستعجل</string>
<string name="text_quit">يترك</string>
<string name="text_recommended">مُستَحسَن</string>
@@ -940,6 +984,7 @@
<string name="text_register">يسجل</string>
<string name="text_register_succeed">نجح السجل</string>
<string name="text_registering">التسجيل</string>
<string name="text_release_notes">ملاحظات الإصدار</string>
<string name="text_remote">التحكم عن بعد</string>
<string name="text_remote_file_saved_to_local_storage_successfully">تم حفظ الملف البعيد في وحدة التخزين المحلية بنجاح</string>
<string name="text_remote_project_saved_to_local_storage_successfully">تم حفظ المشروع البعيد في وحدة التخزين المحلية بنجاح</string>
@@ -958,6 +1003,9 @@
<string name="text_restart">إعادة بدء</string>
<string name="text_restart_strategy">استراتيجية إعادة التشغيل</string>
<string name="text_result">نتيجة</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">جارٍ جلب سجل التغييرات...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">جارٍ جلب بيانات قائمة المكونات الإضافية...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">جارٍ جلب ملاحظات الإصدار...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">قم بإلغاء الوصول إلى AutoJs6 في تطبيق Shizuku</string>
<string name="text_rhino_java_primitive_wrap">تغليف الأنواع البدائية في Java</string>
<string name="text_root_mode_title">التحقق من صلاحيات الروت</string>
@@ -988,6 +1036,8 @@
<string name="text_save_and_exit">حفظ وخروج</string>
<string name="text_save_simplified">احفظ</string>
<string name="text_save_to">حفظ في</string>
<string name="text_scheduled_restart_backend">المحرّك</string>
<string name="text_scheduled_restart_start_delay">تأخير البدء</string>
<string name="text_script_record">تسجيل السيناريو</string>
<string name="text_script_running">البرنامج النصي</string>
<string name="text_search">يبحث</string>
@@ -1010,8 +1060,8 @@
<string name="text_set_as_working_dir">تعيين كدليل العمل</string>
<string name="text_set_breakpoint">ضبط نقطة توقف</string>
<string name="text_settings">إعدادات</string>
<string name="text_sha256_mismatch_multiline_expected_actual">عدم تطابق SHA-256.\n\nالمتوقّع: %1$s\nالفعلي: %2$s</string>
<string name="text_shizuku_access">وصول Shizuku</string>
<string name="text_shizuku_access_description">يتيح Shizuku استخدام واجهة برمجة تطبيقات النظام مع امتيازات ADB</string>
<string name="text_shizuku_service_may_need_to_be_run_first">قد يلزم تشغيل خدمة Shizuku أولاً</string>
<string name="text_should_not_be_empty">النص لا يمكن أن يكون فارغًا</string>
<string name="text_show_layout_bounds">عرض في حدود التصميم</string>
@@ -1066,6 +1116,10 @@
<string name="text_undo_simplified">ينسحب</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">غير معروف</string>
<string name="text_unknown_author_for_plugin">مؤلف غير معروف</string>
<string name="text_unknown_description_for_plugin">وصف غير معروف</string>
<string name="text_unknown_title_for_plugin">عنوان غير معروف</string>
<string name="text_unknown_version_for_plugin">إصدار غير معروف</string>
<string name="text_unverified">لم يتم التحقق</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1074,7 +1128,6 @@
<string name="text_updates_snack_bar_act_later">في وقت لاحق</string>
<string name="text_updates_snack_bar_act_view">رأي</string>
<string name="text_usage_stats_permission">الاستخدام الإحصائيات الوصول</string>
<string name="text_usage_stats_permission_description">يوفر إمكانية الوصول إلى سجل وإحصائيات استخدام الجهاز مما يؤدي إلى CurrentPackage () نتيجة أكثر دقة</string>
<string name="text_use_android_n_shortcut">استخدم اختصار Android 7.0</string>
<string name="text_use_default_icon">استخدام الرمز الافتراضي</string>
<string name="text_use_volume_control_record">استخدم مفتاح خفض مستوى الصوت للتحكم في التسجيل</string>
@@ -1109,38 +1162,6 @@
<string name="text_weekly_task_should_check_day_of_week">يجب اختيار يوم واحد على الأقل</string>
<string name="text_working_dir_path">مسار دليل العمل</string>
<string name="text_write_secure_settings">اكتب إعدادات الأمان</string>
<string name="text_write_secure_settings_description">إعدادات النظام الآمنة ، التي تحتوي على تفضيلات النظام التي يمكن أن تقرأها التطبيقات ولكن لا يُسمح لها بالكتابة.\nهذه هي لتفضيلات يجب على المستخدم تعديلها بشكل صريح من خلال واجهة المستخدم لتطبيق النظام.\nمع إذن إعدادات النظام الآمن ، يمكن للتطبيقات العادية تعديل الإعدادات الآمنة مباشرة (مثل خدمة إمكانية الوصول).</string>
<string name="text_write_system_settings">كتابة إعدادات النظام</string>
<string name="text_integrity_verification_failed">فشل التحقق من السلامة</string>
<string name="text_sha256_mismatch_multiline_expected_actual">عدم تطابق SHA-256.\n\nالمتوقّع: %1$s\nالفعلي: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">لم يتم توفير عنوان URL متاح للملحق الحالي</string>
<string name="text_failed_to_update">فشل التحديث</string>
<string name="text_confirm_to_uninstall">هل تريد بالتأكيد إلغاء التثبيت؟</string>
<string name="dialog_button_exception_details">تفاصيل</string>
<string name="error_failed_to_load_plugins_with_reason">فشل تحميل المكونات الإضافية.\nالسبب: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">جارٍ جلب بيانات قائمة المكونات الإضافية...</string>
<string name="text_no_plugins_installed_hint">لا توجد حاليًا أي مكونات إضافية مثبتة.\nانقر على زر \"+\" لتثبيت المكونات الإضافية.</string>
<string name="text_unknown_author_for_plugin">مؤلف غير معروف</string>
<string name="text_unknown_description_for_plugin">وصف غير معروف</string>
<string name="text_unknown_version_for_plugin">إصدار غير معروف</string>
<string name="text_unknown_title_for_plugin">عنوان غير معروف</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">يجب أن يكون رقم إصدار AutoJs6 المحدد أكبر من 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">يجب ألا يكون رقم إصدار AutoJs6 أقل من %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">يجب ألا يكون إصدار AutoJs6 أقل من %1$s</string>
<string name="dialog_button_view_update">عرض التحديث</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">تعذّر جلب سجل التغييرات للغة المعروضة حاليًا. يمكنك إعادة المحاولة لاحقًا.\n\nسيتم عرض ملاحظات الإصدار باللغة \"الصينية المبسطة (zh-Hans)\" مؤقتًا.</string>
<string name="error_failed_to_retrieve_changelog">تعذّر جلب سجل التغييرات</string>
<string name="error_failed_to_retrieve_release_notes">تعذّر جلب ملاحظات الإصدار</string>
<string name="text_changelog">سجل التغييرات</string>
<string name="text_release_notes">ملاحظات الإصدار</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">جارٍ جلب سجل التغييرات...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">جارٍ جلب ملاحظات الإصدار...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">المحرّك</string>
<string name="text_scheduled_restart_start_delay">تأخير البدء</string>
<string name="dialog_button_advanced_settings">متقدم</string>
<string name="error_failed_to_save_project_config">تعذّر حفظ إعدادات المشروع</string>
<string name="text_connected">متصل</string>
<string name="text_connected_count_with_colon">متصل: %1$d</string>
</resources>

View File

@@ -53,6 +53,7 @@
<string name="content_description_fab_for_display_manifest">A Floating Action Button widget for displaying the manifest</string>
<string name="content_failed_to_determine_index_of_theme_color_item">Failed to determine the index of the theme color item</string>
<string name="content_failed_to_locate_library_for_theme_color">Failed to locate the color library for the theme color</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Failed to retrieve the changelog for the currently displayed language. You can try again later.\n\nFor now, the release notes for \"Simplified Chinese (zh-Hans)\" will be shown temporarily.</string>
<string name="content_github_feedback">A web page will be launched to report an issue.\nAn account for GitHub may be needed.</string>
<string name="content_way_of_output_for_recorded_script">Select a way of output for recorded script</string>
<string name="crash_feedback">Copy debugging log or exit directly</string>
@@ -64,47 +65,71 @@
<string name="default_value_working_directory">/Scripts</string>
<string name="description_about_app_and_developer_preference">AutoJs6 is a JavaScript automated tool for android, which is open-source and cloned from \"hyb1996/Auto.js\".\n\nTo ask for help or feedback, go to GitHub issues or join Tencent QQ group 690946137.</string>
<string name="description_about_app_tips_preference">1. Press and hold the app icon on the \"About app and developer\" page to jump to AutoJs6 developer options page</string>
<string name="description_accessibility_service">The accessibility service is AutoJs6\'s core capability for automation. It is used to read on-screen widget information and simulate interactions such as [ click / swipe / input ].\n\nMost automation-related functions, as well as tools like layout analysis, require the accessibility service to be enabled to work properly.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">The \"manage all files\" (or \"all files access\") permission allows AutoJs6 to directly [ create / read / modify / delete ] files in shared storage via normal file paths, allowing scripts to access \"Internal Storage\" and enabling the file manager to display and manage files properly.\n\nOn Android 11+ devices, this is the primary way to achieve full file read/write access.</string>
<string name="description_app_language_preference">Preference for changing the display language of AutoJs6, including exception messages from running scripts.\n\nNote: an app restart may be needed to make language applied as expected.</string>
<string name="description_auto_night_mode">When auto night mode is enabled, AutoJs6 will automatically switch night mode based on system settings.\n\nNote: the auto night mode toggle and the night mode toggle are linked and affect each other.</string>
<string name="description_change_working_dir_preference">Change the path of the directory containing scripts</string>
<string name="description_check_for_updates_preference">AutoJs6 gets and downloads updates from GitHub.</string>
<string name="description_client_mode">Client mode allows AutoJs6 to actively connect to a remote server for [ script transfer / log printing / remote control ].\n\nTypically, the device and the server need to be on the same LAN or on a network where they can reach each other.</string>
<string name="description_display_over_other_app">The \"display over other apps\" permission allows AutoJs6 to show floating windows or a floating button above other apps, enabling quick actions or information viewing on any screen.\n\nNote: without this permission, floating windows and the floating button may not be shown or may not work properly.</string>
<string name="description_documentation_source_preference">Local docs: Using AutoJs6 build-in files as documentation sources, no network connection required. The content changes as AutoJs6 is updated.\nOnline docs: Using GitHub pages as documentation sources, requiring network connection. The content is always up to date.\n\nNote: To maximize the reading experience of online documents, it is recommended to use a widescreen display device such as a desktop monitor.\nNote: As of version 6.2.0, the documentation is still in the preliminary stages of development, and most of the content has not yet been written or updated.</string>
<string name="description_documentation_source_preference_more">The following conditions must be met for dark theme support on document pages:\n1. AutoJs6 has night mode enabled\n2. Android System WebView (or browsers like Google Chrome):\n- Android API Level 29 (Android 10) [Q] and above: version >= 76\n- Android API Level 28 (Android 9) [P] and below: version >= 105</string>
<string name="description_extending_js_build_in_objects">Extending JavaScript built-in objects can increase code flexibility and enable richer functionality, but can cause conflicts and even breakage.\nAll scripts have built-in extensions enabled by default when the option is turned on.\nBuilt-in extensions are often insecure, and are not recommended unless the principles and risks of built-in extensions are clearly understood.\nWhen the option is turned off, built-in extensions can still be enabled through the plugins global object, as described in the project documentation.</string>
<string name="description_file_extensions_preference">Used to set whether to show file extensions in AutoJs6 file explorer.</string>
<string name="description_floating_button">The floating button shows a draggable quick-entry on the screen edge, and can be used for [ starting or stopping scripts / layout analysis / viewing recent package name or activity name / showing pointer location ].\n\nNote: this feature typically requires the \"display over other apps\" permission.</string>
<string name="description_foreground_service">Foreground service is used to keep AutoJs6 running more stably in the background, suitable for scenarios like [ long-running scripts / keeping connections / continuous listening ].\n\nAfter enabling it, the system will display a \"foreground service notification\" to inform the user that AutoJs6 is continuously running. This notification typically stays visible until the service stops.\n\nSetting the notification to \"Silent\" or \"Minimize\" only reduces the prominence and generally does not affect foreground service functionality.\n\nIf the notification channel is disabled or AutoJs6 is prevented from posting notifications, it may affect foreground service startup and stability.</string>
<string name="description_hidden_files_preference">Used to set whether to show hidden files and folders (usually starting with \".\") in AutoJs6 file explorer.</string>
<string name="description_ignore_battery_optimizations">Ignoring battery optimizations can reduce system background restrictions on AutoJs6, helping scheduled tasks or long-running scripts run relatively more stably while the device is idle.\n\nNote: different OEM systems may still apply additional power-saving policies, such as auto-start restrictions or background freezing.</string>
<string name="description_keep_screen_on_when_in_foreground">Used to control whether the screen stays on while AutoJs6 is in the foreground.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">Preference for keeping the device\'s screen turned on and bright when AutoJs6 is in the foreground.\nTo make it happen only on the homepage among all pages of the AutoJs6 application, choose \"homepage only\" option.</string>
<string name="description_launcher_icon_preference">Launcher icon supports both adaptive icon or legacy transparent background icon display modes. The actual display effect may vary on different Android systems. It may take a few seconds to take effect after switching display modes.</string>
<string name="description_launcher_shortcuts">Shortcuts can perform specific actions in AutoJs6. Users can display these shortcuts in a supported launcher and quickly start some tasks or launch an activity, such as reading AutoJs6 application documentation, launching AutoJs6 settings page, and so on.</string>
<string name="description_manage_ignored_updates_preference">Click to view or manage list items.\nLong press to remove the list item.</string>
<string name="description_night_mode">Used to control and reflect AutoJs6\'s night mode strategy.\n\nNote: the night mode toggle and the auto night mode toggle are linked and affect each other.</string>
<string name="description_night_mode_preference">Night mode (also known as Dark theme) applies to both the Android system UI and apps running on the device, which improves visibility for users with low vision and those who are sensitive to bright light, and makes it easier for anyone to use a device in a low-light environment.\n\nFollow system: AutoJs6 has Night mode settings same as Android system\nAlways on: AutoJs6 keeps Night mode on (regardless of Android system settings)\nAlways off: AutoJs6 keeps Night mode off (regardless of Android system settings)\n\nNote: Follow system option is only for Android API Level 28 (Android 9) [P] and above.</string>
<string name="description_night_mode_preference_more">To enable Night mode in Android system:\n- Android API Level 29 (Android 10) [Q] and above: Settings -> Display -> Theme.\n- Android API Level 28 (Android 9) [P]: Developer options -> Night mode.\n\nThe following conditions must to met for applying a Night mode (Dark theme) to web-based content using a WebView component (like AutoJs6 documentation page):\n1. Android System WebView (or browsers like Google Chrome):\n- Android API Level 29 (Android 10) [Q] and above: version >= 76\n- Android API Level 28 (Android 9) [P]: version >= 105\n2. Web-based content in WebView component is adapted to Dark theme (by CSS or Android XML resources and so forth)</string>
<string name="description_notification_access">The \"notification access\" (or \"notification reading\") permission allows AutoJs6 to read system notification content, so scripts can listen for notifications or retrieve notification text, etc.</string>
<string name="description_post_notifications">The \"post notifications\" permission allows AutoJs6 to publish notifications to the system, so scripts can post and manage custom notifications in the notification shade.\n\nNote: on Android 13+ devices, if this permission is not granted, some notifications may not show, and it may affect foreground service startup and stability.</string>
<string name="description_project_media_access">With project media access, security warning for screen recording will not prompt.</string>
<string name="description_restart_strategy">The restart strategy only affects the restart button in the home page drawer.\n\nQuick restart: Quickly restarts the app. If the restart fails or unexpected situations occur, try switching to \"Scheduled restart\".\nScheduled restart: Sets up a short-timed task in advance. After the app stops, it will start again on schedule to achieve app restart.</string>
<string name="description_rhino_java_primitive_wrap">Switch ON (default): results of Java methods that are instances of Number/Boolean/Character are wrapped as Java objects and exposed to scripts (String excluded). typeof is \"object\", species is \"JavaObject\"; Java methods remain accessible, which helps retain precise Java type traits and overload resolution.\n\nSwitch OFF: the above types are no longer wrapped and are exposed directly as JavaScript primitives (number/boolean/onecharacter string). typeof is the corresponding JavaScript type, aligning better with JavaScript semantics and ecosystem. You can still explicitly create a Java wrapper via new, e.g. new java.lang.Boolean(true).\n\nSee: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">If you have exotic root or abnormal state for root access, you can force set root to root or non-root.</string>
<string name="description_root_record_out_file_type_preference">Binary type: non-editable, with the file extension \"auto\"\nJavaScript type: can be edited or copied directly, with the file extension \"js\"</string>
<string name="description_server_mode">Server mode allows AutoJs6 to start a service on the current device and wait for external client connections for [ script transfer / log printing / remote control ].\n\nAutoJs6 server mode supports two connection methods:\n1. LAN\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">Shizuku makes it possible to uses system API with ADB privileges</string>
<string name="description_stable_mode">Stable mode makes it more stable when getting layout bounds, but some results may be ignored.\nA11y service\'s restart required.</string>
<string name="description_theme_color_preference">Theme color is applied to widgets including but not limited to the following ones:\nStatus bar\nAppbar\nFile icon\nTask item icon\nFAB\nSettings category title\nSwitch button\n\nNote: As of AutoJs6 version 6.2.0, there has been no difference between primary color, primary dark color and accent color yet.</string>
<string name="description_timed_task_backend">Controls the underlying mechanism for triggering scripts on a schedule.\n\nAlarmManager: With the “Allow setting alarms and reminders” permission granted, scheduled tasks can fire closer to the exact time.\nWorkManager: System-friendly; suitable for non-critical tasks that can tolerate some delay.\nJobScheduler: Legacy implementation kept for compatibility; higher chance of delays.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">Use cases and differences:\n\n1. AlarmManager\nBest for time-sensitive tasks, e.g., [reminders/strictly scheduled scripts/...].\nOn Android 12+ with the “Allow setting alarms and reminders” permission, tasks can run more on time even when the screen is off or the device is idle.\nWithout it, the system may degrade exactness or delay execution.\n\n2. WorkManager\nBest for tasks that dont require strict timing, e.g., [non-critical sync/cleanup/statistics/...].\nScheduling depends on [battery/network/charging/idle policies/...], so execution may be postponed when the screen is off or idle.\nWhile it cant guarantee exact timing, it excels at [reliable completion/retries/chaining/unique work de-duplication].\n\n3. JobScheduler\nHistorical implementation for compatibility.\nOn newer Android versions, tasks may be delayed more noticeably.\nGenerally not recommended unless required for compatibility.</string>
<string name="description_usage_stats_access">Provides access to device usage history and statistics which results in currentPackage() a more accurate result</string>
<string name="description_version_histories_preference">View the release version history and key category statistics of AutoJs6 on GitHub.</string>
<string name="description_write_secure_settings">Secure system settings, containing system preferences that applications can read but are not allowed to write.\nThese are for preferences that the user must explicitly modify through the UI of a system app.\nWith secure system settings permission, normal applications can directly modify the secure settings (such as accessibility service).</string>
<string name="description_write_system_settings">The \"write system settings\" permission allows AutoJs6 to modify some system settings, so scripts can change system parameters such as [ screen brightness / auto-rotate / screen timeout ].</string>
<string name="dialog_button_advanced_settings">Advanced</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">Cancel</string>
<string name="dialog_button_cancel_download">Cancel</string>
<string name="dialog_button_clear_items">Clear</string>
<string name="dialog_button_confirm">OK</string>
<string name="dialog_button_connect">Connect</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">Def prefix</string>
<string name="dialog_button_details">Details</string>
<string name="dialog_button_dismiss">Dismiss</string>
<string name="dialog_button_download_with_browser">Browser</string>
<string name="dialog_button_exception_details">Details</string>
<string name="dialog_button_file_information">File info</string>
<string name="dialog_button_history">History</string>
<string name="dialog_button_ignore_current_update">Ignore</string>
<string name="dialog_button_join_group">Join group</string>
<string name="dialog_button_manager">Manager</string>
<string name="dialog_button_more">More</string>
<string name="dialog_button_open_color_palette">Palette</string>
<string name="dialog_button_quit">Quit</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">Remove</string>
<string name="dialog_button_retrieve">Retrieve</string>
<string name="dialog_button_retry">Retry</string>
@@ -117,6 +142,8 @@
<string name="dialog_button_version_histories">Histories</string>
<string name="dialog_button_view_file">View File</string>
<string name="dialog_button_view_shortcuts">View shortcuts</string>
<string name="dialog_button_view_update">View update</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">Color details</string>
<string name="dialog_title_color_palette">Color palette</string>
<string name="dialog_title_theme_color_details">Theme color details</string>
@@ -166,6 +193,8 @@
<string name="error_arguments_cannot_be_empty">Arguments cannot be empty</string>
<string name="error_arguments_must_be_empty">Arguments must be empty</string>
<string name="error_at_least_one_abi_needs_to_be_selected">At least one ABI needs to be selected</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 version must not be lower than %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 version number must not be lower than %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">Both bitmap and mat are null</string>
<string name="error_cannot_be_null">%s cannot be null</string>
<string name="error_cannot_connect_to_github">Cannot connect to GitHub</string>
@@ -200,11 +229,17 @@
<string name="error_failed_to_grant_shizuku_access">Failed to grant Shizuku access</string>
<string name="error_failed_to_instantiate">Failed to instantiate "%s"</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[Failed to instantiate "%1$s": [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">Failed to launcher manager</string>
<string name="error_failed_to_launch_system_settings">Failed to launch system settings</string>
<string name="error_failed_to_load_plugins_with_reason">Failed to load plugins.\nReason: %1$s.</string>
<string name="error_failed_to_render_content">Failed to render content</string>
<string name="error_failed_to_retrieve_changelog">Failed to retrieve changelog</string>
<string name="error_failed_to_retrieve_release_notes">Failed to retrieve release notes</string>
<string name="error_failed_to_retrieve_version_histories">Failed to retrieve version histories</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">Failed to retrieve version.properties to parse version information</string>
<string name="error_failed_to_revoke_shizuku_access">Failed to revoke Shizuku access</string>
<string name="error_failed_to_run_script">Failed to run script</string>
<string name="error_failed_to_save_project_config">Failed to save project config</string>
<string name="error_file_in_path_does_not_exist">File in path \"%1$s\" does not exist</string>
<string name="error_function_called_in_ui_thread">UI thread cannot be blocked. Try running %s() in sub-thread or sub-script</string>
<string name="error_function_called_more_than_once">%s() called more than once</string>
@@ -241,6 +276,7 @@
<string name="error_no_applications_available_for_playing_this_file">No applications available for playing this file</string>
<string name="error_no_applications_available_for_sending_this_file">No applications available for sending this file</string>
<string name="error_no_applications_available_for_viewing_this_file">No applications available for viewing this file</string>
<string name="error_no_available_url_provided_for_current_plugin">No available URL provided for current plugin</string>
<string name="error_no_display_over_other_apps_permission">No \"display over other apps\" permission</string>
<string name="error_no_permission_to_access_shizuku">No permission to access Shizuku</string>
<string name="error_no_post_notifications_permission">No \"post notifications\" permission</string>
@@ -269,6 +305,7 @@
<string name="error_shizuku_is_not_installed">Shizuku is not installed</string>
<string name="error_shizuku_service_may_be_not_running">Shizuku service may be not running</string>
<string name="error_shizuku_version_is_not_supported">Shizuku version is not supported</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Specified AutoJs6 version number must be greater than 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">The transformer for required property \"%1$s\" cannot return nullish</string>
<string name="error_thread_is_not_alive">Thread is not alive</string>
<string name="error_unable_to_use_shizuku_service">Unable to use Shizuku service</string>
@@ -479,6 +516,7 @@
<string name="text_captured_window_info_type_unknown">Unknown type</string>
<string name="text_category_filter">Category filter</string>
<string name="text_change_working_dir">Change working directory</string>
<string name="text_changelog">Changelog</string>
<string name="text_changelog_item_dependency">Some dependency or local library version adjustments</string>
<string name="text_check_for_updates">Check for updates</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">Check for updates (ignore the local version)</string>
@@ -516,7 +554,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">All histories below will be cleared\n\n[ All color libraries ]\n\nAre you sure to clear them all?</string>
<string name="text_confirm_to_delete">Are you sure to delete?</string>
<string name="text_confirm_to_remove">Are you sure to remove?</string>
<string name="text_confirm_to_uninstall">Are you sure to uninstall?</string>
<string name="text_connect_to_pc">Connect to PC</string>
<string name="text_connected">Connected</string>
<string name="text_connected_count_with_colon">Connected: %1$d</string>
<string name="text_connection_cannot_be_established">Connection cannot be established</string>
<string name="text_console">Console</string>
<string name="text_continue">Continue</string>
@@ -638,6 +679,7 @@
<string name="text_failed_to_retrieve">Failed to retrieve</string>
<string name="text_failed_to_save_remote_project_to_local_storage">Failed to save remote project to local storage</string>
<string name="text_failed_to_send_log_entries">Failed to send log entries</string>
<string name="text_failed_to_update">Failed to update</string>
<string name="text_failed_to_write_file">Failed to write file</string>
<string name="text_file">File</string>
<string name="text_file_details">File details</string>
@@ -662,7 +704,6 @@
<string name="text_floating_button">Floating button</string>
<string name="text_force_stop">Force stop</string>
<string name="text_foreground_service">Foreground service</string>
<string name="text_foreground_service_description">Foreground services perform operations that are noticeable to the user.\nForeground services show a status bar notification, so that users are actively aware that your app is performing a task in the foreground and is consuming system resources.\nThe notification cannot be dismissed unless the service is either stopped or removed from the foreground.\nNotification may be set low priority, even be turned off, by long-pressing notification.</string>
<string name="text_formatting_completed">Formatting completed</string>
<string name="text_function">Function</string>
<string name="text_fx_keyboard">Fx keyboard</string>
@@ -702,9 +743,11 @@
<string name="text_install_from_url">Install from \"URL\"</string>
<string name="text_install_plugin_from_url">Install plugin from \"URL\"</string>
<string name="text_installable">Installable</string>
<string name="text_integrity_verification_failed">Integrity verification failed</string>
<string name="text_invalid_character_is_removed">Invalid character is removed</string>
<string name="text_invalid_package_name">Invalid package name</string>
<string name="text_invalid_project">Invalid project</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP address \"%1$s\" has a special purpose (loopback/broadcast/multicast/reserved/...), so it may not be usable for connecting to the target server.</string>
<string name="text_is_latest_version">No newer version found</string>
<string name="text_issue_report">Feedback</string>
<string name="text_js_file">*.js file</string>
@@ -772,11 +815,13 @@
<string name="text_night_mode">Night mode</string>
<string name="text_no_browser">No browser installed</string>
<string name="text_no_content">No content</string>
<string name="text_no_content_description">No content description</string>
<string name="text_no_histories">No histories</string>
<string name="text_no_ignored_updates">No ignored updates</string>
<string name="text_no_log_entries_to_copy">No log entries to copy</string>
<string name="text_no_log_entries_to_export">No log entries to export</string>
<string name="text_no_log_entries_to_send">No log entries to send</string>
<string name="text_no_plugins_installed_hint">No plugins currently installed.\nClick the \"+\" button to install plugins.</string>
<string name="text_no_root">Non-root</string>
<string name="text_no_root_access">No root access</string>
<string name="text_no_scripts_to_stop_running">No scripts to stop running</string>
@@ -919,7 +964,6 @@
<string name="text_project">Project</string>
<string name="text_project_location">Project location</string>
<string name="text_project_media_access">Project media access</string>
<string name="text_project_media_access_description">With project media access, security warning for screen recording will not prompt.</string>
<string name="text_prompt">Prompt</string>
<string name="text_quit">Quit</string>
<string name="text_recommended">Recommended</string>
@@ -935,6 +979,7 @@
<string name="text_register">Register</string>
<string name="text_register_succeed">Register succeeded</string>
<string name="text_registering">Registering</string>
<string name="text_release_notes">Release notes</string>
<string name="text_remote">remote</string>
<string name="text_remote_file_saved_to_local_storage_successfully">Remote file saved to local storage successfully</string>
<string name="text_remote_project_saved_to_local_storage_successfully">Remote project saved to local storage successfully</string>
@@ -953,6 +998,9 @@
<string name="text_restart">Restart</string>
<string name="text_restart_strategy">Restart strategy</string>
<string name="text_result">Result</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Retrieving changelog...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Retrieving plugin list data...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Retrieving release notes...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">Revoke AutoJs6 access in Shizuku app</string>
<string name="text_rhino_java_primitive_wrap">Java primitive wrapping</string>
<string name="text_root_mode_title">Root access check</string>
@@ -983,6 +1031,8 @@
<string name="text_save_and_exit">Save and exit</string>
<string name="text_save_simplified">Save</string>
<string name="text_save_to">Save to</string>
<string name="text_scheduled_restart_backend">Backend</string>
<string name="text_scheduled_restart_start_delay">Start delay</string>
<string name="text_script_record">Script recording</string>
<string name="text_script_running">Script running</string>
<string name="text_search">Search</string>
@@ -1005,8 +1055,8 @@
<string name="text_set_as_working_dir">Set as working dir</string>
<string name="text_set_breakpoint">Set a breakpoint</string>
<string name="text_settings">Settings</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 mismatch.\n\nExpected: %1$s\nActual: %2$s</string>
<string name="text_shizuku_access">Shizuku access</string>
<string name="text_shizuku_access_description">Shizuku makes it possible to uses system API with ADB privileges</string>
<string name="text_shizuku_service_may_need_to_be_run_first">Shizuku service may need to be run first</string>
<string name="text_should_not_be_empty">Text cannot be empty</string>
<string name="text_show_layout_bounds">View in layout bounds</string>
@@ -1061,6 +1111,10 @@
<string name="text_undo_simplified">Undo</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">Unknown</string>
<string name="text_unknown_author_for_plugin">Unknown Author</string>
<string name="text_unknown_description_for_plugin">Unknown Description</string>
<string name="text_unknown_title_for_plugin">Unknown Title</string>
<string name="text_unknown_version_for_plugin">Unknown Version</string>
<string name="text_unverified">Unverified</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1069,7 +1123,6 @@
<string name="text_updates_snack_bar_act_later">Later</string>
<string name="text_updates_snack_bar_act_view">View</string>
<string name="text_usage_stats_permission">Usage stats access</string>
<string name="text_usage_stats_permission_description">Provides access to device usage history and statistics which results in currentPackage() a more accurate result</string>
<string name="text_use_android_n_shortcut">Use Android 7.0 shortcut</string>
<string name="text_use_default_icon">Use default icon</string>
<string name="text_use_volume_control_record">Use “Volume Down” key to control recording</string>
@@ -1104,38 +1157,6 @@
<string name="text_weekly_task_should_check_day_of_week">At least one day must be selected</string>
<string name="text_working_dir_path">Working directory path</string>
<string name="text_write_secure_settings">Write security settings</string>
<string name="text_write_secure_settings_description">Secure system settings, containing system preferences that applications can read but are not allowed to write.\nThese are for preferences that the user must explicitly modify through the UI of a system app.\nWith secure system settings permission, normal applications can directly modify the secure settings (such as accessibility service).</string>
<string name="text_write_system_settings">Write system settings</string>
<string name="text_integrity_verification_failed">Integrity verification failed</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 mismatch.\n\nExpected: %1$s\nActual: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">No available URL provided for current plugin</string>
<string name="text_failed_to_update">Failed to update</string>
<string name="text_confirm_to_uninstall">Are you sure to uninstall?</string>
<string name="dialog_button_exception_details">Details</string>
<string name="error_failed_to_load_plugins_with_reason">Failed to load plugins.\nReason: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Retrieving plugin list data...</string>
<string name="text_no_plugins_installed_hint">No plugins currently installed.\nClick the \"+\" button to install plugins.</string>
<string name="text_unknown_author_for_plugin">Unknown Author</string>
<string name="text_unknown_description_for_plugin">Unknown Description</string>
<string name="text_unknown_version_for_plugin">Unknown Version</string>
<string name="text_unknown_title_for_plugin">Unknown Title</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Specified AutoJs6 version number must be greater than 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 version number must not be lower than %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 version must not be lower than %1$s</string>
<string name="dialog_button_view_update">View update</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Failed to retrieve the changelog for the currently displayed language. You can try again later.\n\nFor now, the release notes for \"Simplified Chinese (zh-Hans)\" will be shown temporarily.</string>
<string name="error_failed_to_retrieve_changelog">Failed to retrieve changelog</string>
<string name="error_failed_to_retrieve_release_notes">Failed to retrieve release notes</string>
<string name="text_changelog">Changelog</string>
<string name="text_release_notes">Release notes</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Retrieving changelog...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Retrieving release notes...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">Backend</string>
<string name="text_scheduled_restart_start_delay">Start delay</string>
<string name="dialog_button_advanced_settings">Advanced</string>
<string name="error_failed_to_save_project_config">Failed to save project config</string>
<string name="text_connected">Connected</string>
<string name="text_connected_count_with_colon">Connected: %1$d</string>
</resources>

View File

@@ -56,6 +56,7 @@
<string name="content_description_fab_for_display_manifest">Un botón de acción flotante para mostrar el manifiesto</string>
<string name="content_failed_to_determine_index_of_theme_color_item">No se pudo determinar el índice del elemento de color del tema</string>
<string name="content_failed_to_locate_library_for_theme_color">No se pudo localizar la biblioteca de colores para el color del tema</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">No se pudo obtener el registro de cambios correspondiente al idioma mostrado actualmente. Puedes intentarlo de nuevo más tarde.\n\nPor ahora se mostrarán temporalmente las notas de la versión en \"chino simplificado (zh-Hans)\".</string>
<string name="content_github_feedback">Se lanzará una página web para informar de un problema.\nPuede ser necesaria una cuenta de GitHub.</string>
<string name="content_way_of_output_for_recorded_script">Seleccione una forma de salida para el script recortado</string>
<string name="crash_feedback">Copiar el registro de depuración o salir directamente</string>
@@ -67,47 +68,71 @@
<string name="default_value_working_directory">/Scripts</string>
<string name="description_about_app_and_developer_preference">AutoJs6 es una herramienta automatizada de JavaScript para android, que es de código abierto y clonada de \"hyb1996/Auto.js\".\n\nPara pedir ayuda o comentarios, vaya a las cuestiones de GitHub o únase al grupo Tencent QQ 690946137.</string>
<string name="description_about_app_tips_preference">1. Mantenga pulsado el icono de la aplicación en la página \"Acerca de la aplicación y el desarrollador\" para saltar a la página de opciones de desarrollo de AutoJs6</string>
<string name="description_accessibility_service">El servicio de accesibilidad es la capacidad central de AutoJs6 para realizar automatización. Se utiliza para leer la información de los controles en pantalla y simular interacciones como [ tocar / deslizar / escribir ].\n\nLa mayoría de las funciones relacionadas con la automatización, así como herramientas como el análisis de diseño, requieren que el servicio de accesibilidad esté habilitado para funcionar correctamente.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">El permiso \"administrar todos los archivos\" (o \"acceso a todos los archivos\") permite que AutoJs6 [ cree / lea / modifique / elimine ] archivos directamente mediante rutas de archivo normales en el almacenamiento compartido, de modo que los scripts puedan acceder al \"Internal Storage\" y el explorador de archivos pueda mostrar y administrar archivos correctamente.\n\nEn dispositivos con Android 11+, esta es la forma principal de lograr acceso de lectura y escritura a todo el almacenamiento.</string>
<string name="description_app_language_preference">Esta preferencia para cambiar el idioma de visualización de AutoJs6, incluyendo los mensajes de excepción de los scripts en ejecución.\n\nNota: puede ser necesario reiniciar la aplicación para que el idioma se aplique como se espera.</string>
<string name="description_auto_night_mode">Cuando el modo nocturno automático está activado, AutoJs6 cambiará automáticamente al modo nocturno según la configuración del sistema.\n\nNote: el interruptor de modo nocturno automático y el interruptor de modo nocturno están vinculados y se afectan mutuamente.</string>
<string name="description_change_working_dir_preference">Cambiar la ruta del directorio que contiene los scripts</string>
<string name="description_check_for_updates_preference">AutoJs6 obtiene y descarga las actualizaciones de GitHub.</string>
<string name="description_client_mode">El modo cliente permite que AutoJs6 se conecte activamente a un servidor remoto para realizar [ transferencia de scripts / impresión de registros / control remoto ].\n\nPor lo general, el dispositivo y el servidor deben estar en la misma red local (LAN) o en una red accesible entre sí.</string>
<string name="description_display_over_other_app">El permiso \"mostrar sobre otras aplicaciones\" permite que AutoJs6 muestre ventanas flotantes o un botón flotante por encima de otras aplicaciones, para ejecutar acciones rápidamente o ver información en cualquier pantalla.\n\nNote: si este permiso no se concede, las ventanas flotantes y el botón flotante pueden no mostrarse o no funcionar correctamente.</string>
<string name="description_documentation_source_preference">Documentos locales: Utiliza los archivos incorporados de AutoJs6 como fuentes de documentación, sin necesidad de conexión a la red. El contenido cambia a medida que se actualiza AutoJs6.\nDocumentación en línea: Utilizando las páginas de GitHub como fuentes de documentación, se requiere conexión a la red. El contenido está siempre actualizado.\n\nNota: Para maximizar la experiencia de lectura de los documentos en línea, se recomienda utilizar un dispositivo de pantalla ancha, como un monitor de escritorio.\nNota: A partir de la versión 6.2.0, la documentación se encuentra todavía en las fases preliminares de desarrollo, y la mayor parte del contenido aún no ha sido escrito o actualizado.</string>
<string name="description_documentation_source_preference_more">Para que el tema oscuro sea compatible con las páginas de los documentos, deben cumplirse las siguientes condiciones\n1. AutoJs6 tiene activado el modo nocturno\n2. Sistema Android WebView (o navegadores como Google Chrome):\n- Android API Level 29 (Android 10) [Q] y superior: versión >= 76\n- Android API Level 28 (Android 9) [P] e inferiores: versión >= 105</string>
<string name="description_extending_js_build_in_objects">La ampliación de los objetos incorporados de JavaScript puede aumentar la flexibilidad del código y permitir una funcionalidad más rica, pero puede causar conflictos e incluso roturas.\nTodos los scripts tienen las extensiones incorporadas habilitadas por defecto cuando la opción está activada.\nLas extensiones incorporadas suelen ser inseguras y no se recomiendan a menos que se comprendan claramente los principios y riesgos de las extensiones incorporadas.\nCuando la opción está desactivada, las extensiones incorporadas aún pueden ser habilitadas a través del objeto global plugins, como se describe en la documentación del proyecto.</string>
<string name="description_file_extensions_preference">Se utiliza para definir si se deben mostrar las extensiones de archivo en el explorador de archivos de AutoJs6.</string>
<string name="description_floating_button">El botón flotante muestra un acceso rápido arrastrable en el borde de la pantalla, que puede usarse para [ iniciar o detener scripts / análisis de diseño / ver el nombre de paquete o el nombre de actividad recientes / mostrar la ubicación del puntero ].\n\nNote: esta función normalmente requiere el permiso \"mostrar sobre otras aplicaciones\".</string>
<string name="description_foreground_service">El servicio en primer plano se utiliza para mantener AutoJs6 ejecutándose de forma más estable en segundo plano, adecuado para escenarios como [ ejecución prolongada de scripts / mantener conexiones / escucha continua ].\n\nDespués de habilitarlo, el sistema mostrará una \"notificación de servicio en primer plano\" para informar al usuario de que AutoJs6 sigue ejecutándose. Esta notificación normalmente permanecerá visible hasta que el servicio se detenga.\n\nConfigurar la notificación como \"Silent\" o \"Minimize\" solo reduce la intensidad del aviso y, por lo general, no afecta la funcionalidad del servicio en primer plano.\n\nSi se desactiva el canal de notificaciones o se prohíbe que AutoJs6 envíe notificaciones, esto puede afectar el inicio normal y la estabilidad del servicio en primer plano.</string>
<string name="description_hidden_files_preference">2. Se utiliza para establecer si se muestran o no los archivos y carpetas ocultos (que suelen empezar por \".\") en el explorador de archivos de AutoJs6.</string>
<string name="description_ignore_battery_optimizations">Ignorar la optimización de batería puede reducir las restricciones del sistema sobre AutoJs6 en segundo plano, lo que ayuda a que las tareas programadas o scripts de larga duración se ejecuten de forma relativamente más estable durante el modo de espera.\n\nNote: distintos fabricantes pueden aplicar políticas adicionales de ahorro de energía, como restricciones de inicio automático o congelación en segundo plano.</string>
<string name="description_keep_screen_on_when_in_foreground">Se usa para controlar si la pantalla permanece encendida mientras AutoJs6 está en primer plano.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">Preferencia para mantener la pantalla del dispositivo encendida y brillante cuando AutoJs6 está en primer plano.\nPara que sólo ocurra en la página de inicio entre todas las páginas de la aplicación AutoJs6, elija la opción \"sólo página de inicio\".</string>
<string name="description_launcher_icon_preference">El ícono del iniciador admite modos de visualización de ícono adaptable o heredado con fondo transparente. El efecto de visualización real puede variar en diferentes sistemas Android. Puede tardar unos segundos en surtir efecto después de cambiar el modo de visualización.</string>
<string name="description_launcher_shortcuts">Los accesos directos pueden realizar acciones específicas en AutoJs6. Los usuarios pueden mostrar estos accesos directos en un lanzador compatible e iniciar rápidamente algunas tareas o iniciar una actividad, como leer la documentación de la aplicación AutoJs6, iniciar la página de configuración de AutoJs6, etc.</string>
<string name="description_manage_ignored_updates_preference">Pulse para ver o gestionar los elementos de la lista.\nHaga una pulsación larga para eliminar el elemento de la lista.</string>
<string name="description_night_mode">Se usa para controlar y reflejar la estrategia de modo nocturno de AutoJs6.\n\nNote: el interruptor de modo nocturno y el interruptor de modo nocturno automático están vinculados y se afectan mutuamente.</string>
<string name="description_night_mode_preference">El modo nocturno (también conocido como tema oscuro) se aplica tanto a la interfaz de usuario del sistema Android como a las aplicaciones que se ejecutan en el dispositivo, lo que mejora la visibilidad para los usuarios con baja visión y los que son sensibles a la luz brillante, y facilita el uso de un dispositivo en un entorno con poca luz.\n\nSistema de seguimiento: AutoJs6 tiene ajustes de modo nocturno iguales a los del sistema Android\nSiempre activado: AutoJs6 mantiene activado el modo Noche (independientemente de la configuración del sistema Android)\nSiempre desactivado: AutoJs6 mantiene el modo nocturno desactivado (independientemente de la configuración del sistema Android)\n\nNota: La opción de seguir el sistema es sólo para el nivel 28 de la API de Android (Android 9) [P] y superior.</string>
<string name="description_night_mode_preference_more">Para activar el modo nocturno en el sistema Android:\n- Android API Level 29 (Android 10) [Q] y superior: Ajustes -> Pantalla -> Tema.\n- Android API Level 28 (Android 9) [P]: Opciones de desarrollador -> Modo nocturno.\n\nLas siguientes condiciones deben cumplirse para aplicar un modo nocturno (tema oscuro) al contenido basado en la web utilizando un componente WebView (como la página de documentación de AutoJs6):\n1. Sistema Android WebView (o navegadores como Google Chrome):\n- Android API Level 29 (Android 10) [Q] y superior: versión >= 76\n- Android API Level 28 (Android 9) [P]: versión >= 105\n2. El contenido basado en la web en el componente WebView se adapta al tema oscuro (mediante CSS o recursos XML de Android, etc.)</string>
<string name="description_notification_access">El permiso \"acceso a notificaciones\" (o \"permiso de lectura de notificaciones\") permite que AutoJs6 lea el contenido de las notificaciones del sistema, para que los scripts puedan escuchar notificaciones u obtener el texto de notificaciones, etc.</string>
<string name="description_post_notifications">El permiso \"enviar notificaciones\" permite que AutoJs6 publique notificaciones en el sistema, de modo que los scripts puedan publicar y administrar notificaciones personalizadas en la barra de notificaciones.\n\nNote: en dispositivos con Android 13+, si este permiso no se concede, algunas notificaciones pueden no mostrarse y esto puede afectar el inicio y la estabilidad de los servicios en primer plano.</string>
<string name="description_project_media_access">Con el acceso a los medios del proyecto, la advertencia de seguridad para la grabación de la pantalla no aparecerá.</string>
<string name="description_restart_strategy">La estrategia de reinicio solo afecta al botón de reinicio del cajón de la página principal.\n\nReinicio rápido: reinicia rápidamente la app. Si el reinicio falla o ocurre alguna situación inesperada, prueba cambiar a \"Reinicio programado\".\nReinicio programado: configura de antemano una tarea de corta duración. Después de que la app se detenga, se iniciará de nuevo según lo programado para lograr el reinicio de la app.</string>
<string name="description_rhino_java_primitive_wrap">Con el interruptor activado (predeterminado): los valores devueltos por métodos Java de tipo Number/Boolean/Character se envuelven como objetos Java y se exponen al script (String excluido). typeof es \"object\", species es \"JavaObject\"; se pueden invocar métodos de Java, lo que ayuda a conservar las características de tipo precisas de Java y la resolución de sobrecargas.\n\nCon el interruptor desactivado: no se envuelven los tipos anteriores y se exponen directamente como primitivos de JavaScript (number/boolean/cadena de un solo carácter). typeof corresponde al tipo de JavaScript respectivo, más acorde con la semántica/ecosistema de JavaScript. Aun así, puede declarar explícitamente un envoltorio de Java con new, por ejemplo new java.lang.Boolean(true).\n\nConsulte: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">Si tiene una raíz exótica o un estado anormal para el acceso a la raíz, puede forzar el establecimiento de la raíz a raíz o no raíz.</string>
<string name="description_root_record_out_file_type_preference">Tipo binario: no editable, con la extensión de archivo \"auto\"\nTipo JavaScript: se puede editar o copiar directamente, con la extensión de archivo \"js\"</string>
<string name="description_server_mode">El modo servidor permite que AutoJs6 inicie un servicio en el dispositivo actual y espere conexiones de clientes externos para realizar [ transferencia de scripts / impresión de registros / control remoto ].\n\nEl modo servidor de AutoJs6 admite dos métodos de conexión:\n1. Red de área local (LAN)\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">Shizuku te permite obtener privilegios ADB y acceso a las APIs del sistema</string>
<string name="description_stable_mode">El modo estable hace que sea más estable al obtener los límites de diseño, pero algunos resultados pueden ser ignorados.\nEs necesario reiniciar el servicio de accesibilidad.</string>
<string name="description_theme_color_preference">El color del tema se aplica a los widgets, incluidos, entre otros, los siguientes\nBarra de estado\nBarra de aplicaciones\nIcono de archivo\nIcono de elemento de tarea\nFAB\nTítulo de la categoría de ajustes\nBotón de cambio\n\nNota: A partir de la versión 6.2.0 de AutoJs6, todavía no hay diferencia entre el color primario, el color primario oscuro y el color de acento.</string>
<string name="description_timed_task_backend">Controla el mecanismo subyacente para activar scripts de forma programada.\n\nAlarmManager: Mediante la concesión del permiso \"Permitir configurar alarmas y recordatorios\", las tareas programadas pueden dispararse con mayor puntualidad.\nWorkManager: Amigable con el sistema; adecuado para tareas no críticas que toleran cierta demora.\nJobScheduler: Implementación antigua, mantenida por compatibilidad; la ejecución puede retrasarse con mayor probabilidad.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">Escenarios de uso y diferencias:\n\n1. AlarmManager\nAdecuado para tareas sensibles a la puntualidad, p. ej., [recordatorios/scripts estrictamente programados/...].\nEn Android 12+ y con el permiso \"Permitir configurar alarmas y recordatorios\", puede ejecutar tareas de forma más puntual con la pantalla apagada o en estado de espera.\nSin dicho permiso, el sistema puede degradar la exactitud o retrasar la ejecución.\n\n2. WorkManager\nAdecuado para tareas que no requieren estricta puntualidad, p. ej., [sincronización no crítica/limpieza/estadísticas/...].\nSe programa según [batería/red/carga/estrategias de reposo/...], por lo que puede posponer la ejecución con la pantalla apagada o en espera.\nAunque no garantiza precisión temporal, tiene ventajas en [finalización fiable/reintentos en caso de fallo/encadenamiento/deduplicación de trabajos].\n\n3. JobScheduler\nImplementación histórica para compatibilidad.\nEn versiones recientes de Android, las tareas pueden experimentar mayores retrasos.\nPor lo general, no se recomienda salvo por motivos de compatibilidad.</string>
<string name="description_usage_stats_access">Proporciona acceso al historial de uso del dispositivo y a las estadísticas, lo que da a currentPackage() un resultado más preciso</string>
<string name="description_version_histories_preference">Ver el historial de versiones publicadas de AutoJs6 en GitHub y las estadísticas de las categorías importantes.</string>
<string name="description_write_secure_settings">Ajustes de seguridad del sistema, que contienen preferencias del sistema que las aplicaciones pueden leer pero no pueden escribir.\nSe trata de preferencias que el usuario debe modificar explícitamente a través de la interfaz de usuario de una aplicación del sistema.\nCon el permiso de configuración segura del sistema, las aplicaciones normales pueden modificar directamente la configuración segura (como el servicio de accesibilidad).</string>
<string name="description_write_system_settings">El permiso \"modificar ajustes del sistema\" permite que AutoJs6 cambie algunos ajustes del sistema, de modo que los scripts puedan modificar parámetros como [ brillo de pantalla / rotación automática / tiempo de espera de pantalla ].</string>
<string name="dialog_button_advanced_settings">Avanzado</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">Cancelar</string>
<string name="dialog_button_cancel_download">Cancelar</string>
<string name="dialog_button_clear_items">Borrar</string>
<string name="dialog_button_confirm">OK</string>
<string name="dialog_button_connect">Conectar</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">Prefijo def</string>
<string name="dialog_button_details">Detalles</string>
<string name="dialog_button_dismiss">Descartar</string>
<string name="dialog_button_download_with_browser">Navegador</string>
<string name="dialog_button_exception_details">Detalles</string>
<string name="dialog_button_file_information">Información del archivo</string>
<string name="dialog_button_history">Historial</string>
<string name="dialog_button_ignore_current_update">Ignorar</string>
<string name="dialog_button_join_group">Unirse grupo</string>
<string name="dialog_button_manager">Administrador</string>
<string name="dialog_button_more">Más</string>
<string name="dialog_button_open_color_palette">Abrir paleta</string>
<string name="dialog_button_quit">Salir</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">Eliminar</string>
<string name="dialog_button_retrieve">Obtener</string>
<string name="dialog_button_retry">Reintentar</string>
@@ -120,6 +145,8 @@
<string name="dialog_button_version_histories">Historial</string>
<string name="dialog_button_view_file">Ver archivo</string>
<string name="dialog_button_view_shortcuts">Ver accesos directos</string>
<string name="dialog_button_view_update">Ver actualización</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">Detalles del color</string>
<string name="dialog_title_color_palette">Paleta de colores</string>
<string name="dialog_title_theme_color_details">Detalles del color del tema</string>
@@ -169,6 +196,8 @@
<string name="error_arguments_cannot_be_empty">Los argumentos no pueden estar vacíos</string>
<string name="error_arguments_must_be_empty">Los argumentos deben estar vacíos</string>
<string name="error_at_least_one_abi_needs_to_be_selected">Es necesario seleccionar al menos un ABI</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">La versión de AutoJs6 no debe ser inferior a %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">El número de versión de AutoJs6 no debe ser inferior a %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">Tanto el mapa de bits como el tapete son nulos</string>
<string name="error_cannot_be_null">%s no puede ser null</string>
<string name="error_cannot_connect_to_github">No se puede conectar a GitHub</string>
@@ -203,11 +232,17 @@
<string name="error_failed_to_grant_shizuku_access">Fallo en la concesión de permisos Shizuku</string>
<string name="error_failed_to_instantiate">Error al instanciar \"%s\"</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[Error al instanciar \"%1$s\": [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">No se pudo iniciar el administrador</string>
<string name="error_failed_to_launch_system_settings">No se pudieron abrir los ajustes del sistema</string>
<string name="error_failed_to_load_plugins_with_reason">Error al cargar los complementos.\nMotivo: %1$s.</string>
<string name="error_failed_to_render_content">Error al renderizar el contenido</string>
<string name="error_failed_to_retrieve_changelog">No se pudo obtener el registro de cambios</string>
<string name="error_failed_to_retrieve_release_notes">No se pudieron obtener las notas de la versión</string>
<string name="error_failed_to_retrieve_version_histories">No se pudo obtener el historial de versiones</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">No se pudo obtener version.properties para analizar la información de la versión</string>
<string name="error_failed_to_revoke_shizuku_access">Fallo en la revocación de permisos Shizuku</string>
<string name="error_failed_to_run_script">Error al ejecutar el script</string>
<string name="error_failed_to_save_project_config">No se pudo guardar la configuración del proyecto</string>
<string name="error_file_in_path_does_not_exist">El archivo en la ruta \"%1$s\" no existe</string>
<string name="error_function_called_in_ui_thread">El hilo de la interfaz de usuario no se puede bloquear. Intenta ejecutar %s() en un subhilo o subguión</string>
<string name="error_function_called_more_than_once">%s() se ha llamado más de una vez</string>
@@ -244,6 +279,7 @@
<string name="error_no_applications_available_for_playing_this_file">No hay aplicaciones disponibles para reproducir este archivo</string>
<string name="error_no_applications_available_for_sending_this_file">No hay aplicaciones disponibles para enviar este archivo</string>
<string name="error_no_applications_available_for_viewing_this_file">No hay aplicaciones disponibles para ver este archivo</string>
<string name="error_no_available_url_provided_for_current_plugin">No se proporcionó ninguna URL disponible para el complemento actual</string>
<string name="error_no_display_over_other_apps_permission">No hay permiso de \"mostrar sobre otras aplicaciones\".</string>
<string name="error_no_permission_to_access_shizuku">No hay permiso para acceder a Shizuku</string>
<string name="error_no_post_notifications_permission">Sin permiso para \"enviar notificaciones\"</string>
@@ -272,6 +308,7 @@
<string name="error_shizuku_is_not_installed">Shizuku no está instalado</string>
<string name="error_shizuku_service_may_be_not_running">Puede que el servicio Shizuku no se esté ejecutando</string>
<string name="error_shizuku_version_is_not_supported">No se admite la versión de Shizuku</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">El número de versión especificado de AutoJs6 debe ser mayor que 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">El transformador para la propiedad requerida \"%1$s\" no puede devolver un valor nulo</string>
<string name="error_thread_is_not_alive">El hilo no está vivo</string>
<string name="error_unable_to_use_shizuku_service">No se puede utilizar el servicio Shizuku</string>
@@ -482,6 +519,7 @@
<string name="text_captured_window_info_type_unknown">Tipo desconocido</string>
<string name="text_category_filter">Filtro de categoría</string>
<string name="text_change_working_dir">Cambiar el directorio de trabajo</string>
<string name="text_changelog">Registro de cambios</string>
<string name="text_changelog_item_dependency">Ajustes en algunas dependencias o versiones de bibliotecas locales</string>
<string name="text_check_for_updates">Comprobar si hay actualizaciones</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">Buscar actualizaciones (ignorar la versión local)</string>
@@ -519,7 +557,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">Se borrarán los historiales siguientes\n\n[ Todas las bibliotecas de colores ]\n\n¿Está seguro de borrarlos?</string>
<string name="text_confirm_to_delete">¿Seguro que quieres borrar?</string>
<string name="text_confirm_to_remove">¿Está seguro de eliminar?</string>
<string name="text_confirm_to_uninstall">¿Seguro que deseas desinstalar?</string>
<string name="text_connect_to_pc">Conectar al PC</string>
<string name="text_connected">Conectado</string>
<string name="text_connected_count_with_colon">Conectados: %1$d</string>
<string name="text_connection_cannot_be_established">No se puede establecer la conexión</string>
<string name="text_console">Consola</string>
<string name="text_continue">Continuar</string>
@@ -641,6 +682,7 @@
<string name="text_failed_to_retrieve">Error al obtener</string>
<string name="text_failed_to_save_remote_project_to_local_storage">Error al guardar el proyecto remoto en el almacenamiento local</string>
<string name="text_failed_to_send_log_entries">Error al enviar entradas de registro</string>
<string name="text_failed_to_update">Error al actualizar</string>
<string name="text_failed_to_write_file">Fallo al escribir el archivo</string>
<string name="text_file">Archivo</string>
<string name="text_file_details">Detalles del archivo</string>
@@ -665,7 +707,6 @@
<string name="text_floating_button">Botón flotante</string>
<string name="text_force_stop">Forzar parada</string>
<string name="text_foreground_service">Servicio de primer plano</string>
<string name="text_foreground_service_description">Los servicios en primer plano realizan operaciones que son perceptibles para el usuario.\nLos servicios en primer plano muestran una notificación en la barra de estado, para que los usuarios sean conscientes de que su aplicación está realizando una tarea en primer plano y está consumiendo recursos del sistema.\nLa notificación no puede descartarse a menos que el servicio se detenga o se elimine del primer plano.\nLa notificación puede ser de baja prioridad, incluso puede ser desactivada, pulsando prolongadamente la notificación.</string>
<string name="text_formatting_completed">Formateo completado</string>
<string name="text_function">Función</string>
<string name="text_fx_keyboard">Fx teclado</string>
@@ -705,9 +746,11 @@
<string name="text_install_from_url">Instalar desde \"URL\"</string>
<string name="text_install_plugin_from_url">Instalar complemento desde \"URL\"</string>
<string name="text_installable">Instalable</string>
<string name="text_integrity_verification_failed">La verificación de integridad falló</string>
<string name="text_invalid_character_is_removed">Carácter inválido ha sido removido</string>
<string name="text_invalid_package_name">Nombre de paquete no válido</string>
<string name="text_invalid_project">Proyecto no válido</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">La dirección IP \"%1$s\" tiene un propósito especial (loopback/broadcast/multicast/reserved/...), por lo que es posible que no pueda usarse para conectarse al servidor de destino.</string>
<string name="text_is_latest_version">No se ha encontrado una versión más reciente</string>
<string name="text_issue_report">Comentarios</string>
<string name="text_js_file">Archivo *.js</string>
@@ -775,11 +818,13 @@
<string name="text_night_mode">Modo nocturno</string>
<string name="text_no_browser">No hay navegador instalado</string>
<string name="text_no_content">Sin contenido</string>
<string name="text_no_content_description">Sin descripción de contenido</string>
<string name="text_no_histories">No hay historiales</string>
<string name="text_no_ignored_updates">No hay actualizaciones ignoradas</string>
<string name="text_no_log_entries_to_copy">No hay entradas de registro para copiar</string>
<string name="text_no_log_entries_to_export">No hay entradas de registro para exportar</string>
<string name="text_no_log_entries_to_send">No hay entradas de registro para enviar</string>
<string name="text_no_plugins_installed_hint">Actualmente no hay complementos instalados.\nPulsa el botón \"+\" para instalar complementos.</string>
<string name="text_no_root">No root</string>
<string name="text_no_root_access">Sin acceso root</string>
<string name="text_no_scripts_to_stop_running">No hay scripts que dejen de ejecutarse</string>
@@ -922,7 +967,6 @@
<string name="text_project">Proyecto</string>
<string name="text_project_location">Ubicación del proyecto</string>
<string name="text_project_media_access">Acceso a los medios del proyecto</string>
<string name="text_project_media_access_description">Con el acceso a los medios del proyecto, la advertencia de seguridad para la grabación de la pantalla no aparecerá.</string>
<string name="text_prompt">Indicación</string>
<string name="text_quit">Salga de</string>
<string name="text_recommended">Recomendado</string>
@@ -938,6 +982,7 @@
<string name="text_register">Registro</string>
<string name="text_register_succeed">El registro se ha realizado con éxito</string>
<string name="text_registering">Registro de</string>
<string name="text_release_notes">Notas de la versión</string>
<string name="text_remote">remoto</string>
<string name="text_remote_file_saved_to_local_storage_successfully">El archivo remoto se ha guardado correctamente en el almacenamiento local</string>
<string name="text_remote_project_saved_to_local_storage_successfully">El proyecto remoto se ha guardado correctamente en el almacenamiento local</string>
@@ -956,6 +1001,9 @@
<string name="text_restart">Reiniciar</string>
<string name="text_restart_strategy">Estrategia de reinicio</string>
<string name="text_result">Resultado</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Obteniendo el registro de cambios...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Obteniendo datos de la lista de complementos...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Obteniendo las notas de la versión...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">Revocar privilegios de AutoJs6 en una aplicación Shizuku</string>
<string name="text_rhino_java_primitive_wrap">Envoltorio de primitivos de Java</string>
<string name="text_root_mode_title">Comprobación de acceso root</string>
@@ -986,6 +1034,8 @@
<string name="text_save_and_exit">Guardar y salir</string>
<string name="text_save_simplified">Guarda</string>
<string name="text_save_to">Guardar en</string>
<string name="text_scheduled_restart_backend">Motor</string>
<string name="text_scheduled_restart_start_delay">Retraso de inicio</string>
<string name="text_script_record">Grabación del script</string>
<string name="text_script_running">Script en ejecución</string>
<string name="text_search">Buscar en</string>
@@ -1008,8 +1058,8 @@
<string name="text_set_as_working_dir">Como directorio de trabajo</string>
<string name="text_set_breakpoint">Establecer un punto de interrupción</string>
<string name="text_settings">Configuración</string>
<string name="text_sha256_mismatch_multiline_expected_actual">Discordancia de SHA-256.\n\nEsperado: %1$s\nReal: %2$s</string>
<string name="text_shizuku_access">Permisos de Shizuku</string>
<string name="text_shizuku_access_description">Shizuku te permite obtener privilegios ADB y acceso a las APIs del sistema</string>
<string name="text_shizuku_service_may_need_to_be_run_first">Puede que necesite ejecutar primero el servicio Shizuku</string>
<string name="text_should_not_be_empty">El texto no puede estar vacío</string>
<string name="text_show_layout_bounds">Vista en los límites del diseño</string>
@@ -1064,6 +1114,10 @@
<string name="text_undo_simplified">Revoc</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">Desconocido</string>
<string name="text_unknown_author_for_plugin">Autor Desconocido</string>
<string name="text_unknown_description_for_plugin">Descripción Desconocida</string>
<string name="text_unknown_title_for_plugin">Título Desconocido</string>
<string name="text_unknown_version_for_plugin">Versión Desconocida</string>
<string name="text_unverified">No verificado</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1072,7 +1126,6 @@
<string name="text_updates_snack_bar_act_later">Más adelante</string>
<string name="text_updates_snack_bar_act_view">Ver</string>
<string name="text_usage_stats_permission">Acceso a las estadísticas de uso</string>
<string name="text_usage_stats_permission_description">Proporciona acceso al historial de uso del dispositivo y a las estadísticas, lo que da a currentPackage() un resultado más preciso</string>
<string name="text_use_android_n_shortcut">Utiliza el acceso directo de Android 7.0</string>
<string name="text_use_default_icon">Usar icono predeterminado</string>
<string name="text_use_volume_control_record">Utilice la tecla de bajar el volumen para controlar la grabación</string>
@@ -1107,38 +1160,6 @@
<string name="text_weekly_task_should_check_day_of_week">Debe seleccionarse al menos un día</string>
<string name="text_working_dir_path">Ruta del directorio de trabajo</string>
<string name="text_write_secure_settings">Escribir la configuración de seguridad</string>
<string name="text_write_secure_settings_description">Ajustes de seguridad del sistema, que contienen preferencias del sistema que las aplicaciones pueden leer pero no pueden escribir.\nSe trata de preferencias que el usuario debe modificar explícitamente a través de la interfaz de usuario de una aplicación del sistema.\nCon el permiso de configuración segura del sistema, las aplicaciones normales pueden modificar directamente la configuración segura (como el servicio de accesibilidad).</string>
<string name="text_write_system_settings">Escribir la configuración del sistema</string>
<string name="text_sha256_mismatch_multiline_expected_actual">Discordancia de SHA-256.\n\nEsperado: %1$s\nReal: %2$s</string>
<string name="text_integrity_verification_failed">La verificación de integridad falló</string>
<string name="error_no_available_url_provided_for_current_plugin">No se proporcionó ninguna URL disponible para el complemento actual</string>
<string name="text_failed_to_update">Error al actualizar</string>
<string name="text_confirm_to_uninstall">¿Seguro que deseas desinstalar?</string>
<string name="dialog_button_exception_details">Detalles</string>
<string name="error_failed_to_load_plugins_with_reason">Error al cargar los complementos.\nMotivo: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Obteniendo datos de la lista de complementos...</string>
<string name="text_no_plugins_installed_hint">Actualmente no hay complementos instalados.\nPulsa el botón \"+\" para instalar complementos.</string>
<string name="text_unknown_author_for_plugin">Autor Desconocido</string>
<string name="text_unknown_description_for_plugin">Descripción Desconocida</string>
<string name="text_unknown_version_for_plugin">Versión Desconocida</string>
<string name="text_unknown_title_for_plugin">Título Desconocido</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">El número de versión especificado de AutoJs6 debe ser mayor que 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">El número de versión de AutoJs6 no debe ser inferior a %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">La versión de AutoJs6 no debe ser inferior a %1$s</string>
<string name="dialog_button_view_update">Ver actualización</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">No se pudo obtener el registro de cambios correspondiente al idioma mostrado actualmente. Puedes intentarlo de nuevo más tarde.\n\nPor ahora se mostrarán temporalmente las notas de la versión en \"chino simplificado (zh-Hans)\".</string>
<string name="error_failed_to_retrieve_changelog">No se pudo obtener el registro de cambios</string>
<string name="error_failed_to_retrieve_release_notes">No se pudieron obtener las notas de la versión</string>
<string name="text_changelog">Registro de cambios</string>
<string name="text_release_notes">Notas de la versión</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Obteniendo el registro de cambios...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Obteniendo las notas de la versión...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">Motor</string>
<string name="text_scheduled_restart_start_delay">Retraso de inicio</string>
<string name="dialog_button_advanced_settings">Avanzado</string>
<string name="error_failed_to_save_project_config">No se pudo guardar la configuración del proyecto</string>
<string name="text_connected">Conectado</string>
<string name="text_connected_count_with_colon">Conectados: %1$d</string>
</resources>

View File

@@ -56,6 +56,7 @@
<string name="content_description_fab_for_display_manifest">Un bouton d\'action flottant pour afficher le manifeste</string>
<string name="content_failed_to_determine_index_of_theme_color_item">Impossible de déterminer l\'index de l\'élément de couleur du thème</string>
<string name="content_failed_to_locate_library_for_theme_color">Impossible de localiser la bibliothèque de couleurs pour la couleur du thème</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Impossible de récupérer le journal des modifications pour la langue actuellement affichée. Vous pouvez réessayer plus tard.\n\nLes notes de version en \"chinois simplifié (zh-Hans)\" seront affichées temporairement.</string>
<string name="content_github_feedback">Une page web sera lancée pour signaler un problème.\nUn compte pour GitHub peut être nécessaire.</string>
<string name="content_way_of_output_for_recorded_script">Sélectionnez un mode de sortie pour le script enregistré</string>
<string name="crash_feedback">Copier le journal de débogage ou quitter directement</string>.
@@ -67,47 +68,71 @@
<string name="default_value_working_directory">/Scripts</string>
<string name="description_about_app_and_developer_preference">AutoJs6 est un outil JavaScript automatisé pour Android, qui est open-source et cloné de \"hyb1996/Auto.js\".\n\nPour demander de l\'aide ou des commentaires, allez sur GitHub issues ou rejoignez le groupe Tencent QQ 690946137.</string>
<string name="description_about_app_tips_preference">1. Maintenez enfoncée l\'icône de l\'application sur la page \"À propos de l\'application et du développeur\" pour accéder à la page des options de développement d\'AutoJs6.</string>
<string name="description_accessibility_service">Le service d\'accessibilité est la capacité centrale d\'AutoJs6 pour l\'automatisation. Il sert à lire les informations des contrôles à l\'écran et à simuler des interactions telles que [ appuyer / faire glisser / saisir ].\n\nLa plupart des fonctions liées à l\'automatisation, ainsi que des outils comme l\'analyse de mise en page, nécessitent l\'activation du service d\'accessibilité pour fonctionner correctement.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">L\'autorisation \"gérer tous les fichiers\" (ou \"accès à tous les fichiers\") permet à AutoJs6 d\'[ créer / lire / modifier / supprimer ] des fichiers directement via des chemins de fichiers classiques dans l\'espace de stockage partagé, afin que les scripts puissent accéder à \"Internal Storage\" et que l\'explorateur de fichiers puisse afficher et gérer les fichiers correctement.\n\nSur les appareils Android 11+, c\'est le principal moyen d\'obtenir un accès lecture/écriture à l\'ensemble du stockage.</string>
<string name="description_app_language_preference">Cette préférence permet de modifier la langue d\'affichage d\'AutoJs6, y compris les messages d\'exception des scripts en cours d\'exécution.\n\nNote : un redémarrage de l\'application peut être nécessaire pour que la langue s\'applique comme prévu.</string>
<string name="description_auto_night_mode">Lorsque le mode nuit automatique est activé, AutoJs6 bascule automatiquement en mode nuit en fonction des paramètres système.\n\nNote: l\'interrupteur de mode nuit automatique et l\'interrupteur de mode nuit sont liés et s\'influencent mutuellement.</string>
<string name="description_change_working_dir_preference">Changer le chemin du répertoire contenant les scripts</string>.
<string name="description_check_for_updates_preference">AutoJs6 obtient et télécharge les mises à jour depuis GitHub.</string>
<string name="description_client_mode">Le mode client permet à AutoJs6 de se connecter activement à un serveur distant afin d\'effectuer [ transfert de scripts / impression des journaux / contrôle à distance ].\n\nEn général, l\'appareil et le serveur doivent être sur le même réseau local (LAN) ou dans un environnement réseau où ils peuvent s\'atteindre mutuellement.</string>
<string name="description_display_over_other_app">L\'autorisation \"afficher par-dessus les autres applications\" permet à AutoJs6 d\'afficher des fenêtres flottantes ou un bouton flottant au-dessus des autres applications, afin d\'exécuter rapidement des actions ou de consulter des informations sur n\'importe quel écran.\n\nNote: si cette autorisation n\'est pas accordée, les fenêtres flottantes et le bouton flottant peuvent ne pas s\'afficher ou ne pas fonctionner correctement.</string>
<string name="description_documentation_source_preference">Documentation locale : Utilisation des fichiers intégrés d\'AutoJs6 comme sources de documentation, aucune connexion réseau n\'est nécessaire. Le contenu change au fur et à mesure que AutoJs6 est mis à jour.\nDocumentation en ligne : Utilisation des pages GitHub comme sources de documentation, nécessitant une connexion réseau. Le contenu est toujours à jour.\n\nRemarque : pour optimiser l\'expérience de lecture des documents en ligne, il est recommandé d\'utiliser un dispositif d\'affichage grand écran tel qu\'un moniteur de bureau.\nRemarque : à partir de la version 6.2.0, la documentation est encore dans les phases préliminaires de développement, et la plupart du contenu n\'a pas encore été écrit ou mis à jour.</string>
<string name="description_documentation_source_preference_more">Les conditions suivantes doivent être remplies pour la prise en charge du thème sombre sur les pages de la documentation :\n1. Le mode nuit d\'AutoJs6 est activé\n2. WebView du système Android (ou des navigateurs comme Google Chrome) :\n- Android API Level 29 (Android 10) [Q] et supérieur : version >= 76\n- Android API Niveau 28 (Android 9) [P] et inférieur : version >= 105</string>
<string name="description_extending_js_build_in_objects">L\'extension des objets JavaScript intégrés peut augmenter la flexibilité du code et permettre des fonctionnalités plus riches, mais elle peut provoquer des conflits et même des pannes.\nTous les scripts ont des extensions intégrées activées par défaut lorsque l\'option est activée.\nLes extensions intégrées sont souvent peu sûres et ne sont pas recommandées, sauf si les principes et les risques des extensions intégrées sont clairement compris.\nLorsque l\'option est désactivée, les extensions intégrées peuvent toujours être activées via l\'objet global plugins, comme décrit dans la documentation du projet.</string>
<string name="description_file_extensions_preference">Permet de définir l\'affichage des extensions de fichier dans l\'explorateur AutoJs6.</string>
<string name="description_floating_button">Le bouton flottant affiche un point d\'entrée rapide déplaçable au bord de l\'écran, pouvant être utilisé pour [ démarrer ou arrêter des scripts / analyse de mise en page / afficher le nom de paquet ou le nom d\'activité récents / afficher la position du pointeur ].\n\nNote: cette fonction nécessite généralement l\'autorisation \"afficher par-dessus les autres applications\".</string>
<string name="description_foreground_service">Le service au premier plan permet de maintenir AutoJs6 en fonctionnement plus stable en arrière-plan, adapté à des scénarios tels que [ exécution prolongée de scripts / maintien de connexion / écoute continue ].\n\nUne fois activé, le système affiche une \"notification de service au premier plan\" pour informer l\'utilisateur qu\'AutoJs6 continue de s\'exécuter. Cette notification reste généralement affichée jusqu\'à l\'arrêt du service.\n\nDéfinir la notification sur \"Silent\" ou \"Minimize\" ne fait que réduire l\'intensité de l\'alerte et n\'affecte généralement pas le service au premier plan.\n\nSi le canal de notifications est désactivé ou si AutoJs6 est empêché d\'envoyer des notifications, cela peut affecter le démarrage normal et la stabilité du service au premier plan.</string>
<string name="description_hidden_files_preference">Permet d\'afficher ou non les fichiers et dossiers cachés (commençant généralement par \".\") dans l\'explorateur de fichiers d\'AutoJs6.</string>
<string name="description_ignore_battery_optimizations">Ignorer l\'optimisation de la batterie peut réduire les restrictions du système sur AutoJs6 en arrière-plan, ce qui aide les tâches planifiées ou les scripts de longue durée à s\'exécuter de manière relativement plus stable en veille.\n\nNote: selon le fabricant, le système peut appliquer des politiques d\'économie d\'énergie supplémentaires, telles que des restrictions d\'auto-démarrage ou un gel en arrière-plan.</string>
<string name="description_keep_screen_on_when_in_foreground">Permet de contrôler si l\'écran reste allumé lorsque AutoJs6 est au premier plan.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">Préférence pour que l\'écran de l\'appareil reste allumé et lumineux lorsque AutoJs6 est au premier plan.\nPour que cela se produise uniquement sur la page d\'accueil parmi toutes les pages de l\'application AutoJs6, choisissez l\'option \"page d\'accueil uniquement\".</string>
<string name="description_launcher_icon_preference">L\'icône du lanceur prend en charge les modes d\'affichage d\'icône adaptative ou d\'icône héritée à fond transparent. L\'effet d\'affichage réel peut varier selon les systèmes Android. L\'application du changement peut prendre quelques secondes après avoir basculé de mode d\'affichage.</string>
<string name="description_launcher_shortcuts">Les raccourcis permettent d\'effectuer des actions spécifiques dans AutoJs6. Les utilisateurs peuvent afficher ces raccourcis dans un lanceur pris en charge et démarrer rapidement certaines tâches ou lancer une activité, comme la lecture de la documentation de l\'application AutoJs6, le lancement de la page de configuration d\'AutoJs6, etc.</string>
<string name="description_manage_ignored_updates_preference">Cliquez pour afficher ou gérer les éléments de la liste.\nAppuyez longuement pour supprimer l\'élément de la liste.</string>
<string name="description_night_mode">Permet de contrôler et de refléter la stratégie de mode nuit d\'AutoJs6.\n\nNote: l\'interrupteur de mode nuit et l\'interrupteur de mode nuit automatique sont liés et s\'influencent mutuellement.</string>
<string name="description_night_mode_preference">Le mode nuit (également connu sous le nom de thème sombre) s\'applique à la fois à l\'interface utilisateur du système Android et aux applications exécutées sur l\'appareil, ce qui améliore la visibilité pour les utilisateurs malvoyants et ceux qui sont sensibles à la lumière vive, et facilite l\'utilisation d\'un appareil par quiconque dans un environnement à faible luminosité.\n\nSystème de suivi : AutoJs6 possède des paramètres de mode nuit identiques à ceux du système Android\nToujours activé: AutoJs6 maintient le mode Nuit activé (indépendamment des paramètres du système Android).\nToujours désactivé: AutoJs6 désactive le mode Nuit (indépendamment des paramètres du système Android).\n\nRemarque : l\'option Suivre le système n\'est disponible qu\'à partir du niveau 28 de l\'API Android (Android 9) [P].</string>
<string name="description_night_mode_preference_more">Pour activer le mode Nuit dans le système Android :\n- Niveau 29 de l\'API Android (Android 10) [Q] et supérieur : Paramètres -> Affichage -> Thème.\n- Niveau 28 de l\'API Android (Android 9) [P]: Options du développeur -> Mode nuit.\n\nLes conditions suivantes doivent être remplies pour appliquer un mode nuit (thème sombre) à un contenu Web à l\'aide d\'un composant WebView (comme la page de documentation AutoJs6) :\n1. WebView du système Android (ou des navigateurs comme Google Chrome) :\n- Android API Level 29 (Android 10) [Q] et plus : version >= 76\n- API Android Niveau 28 (Android 9) [P]: version >= 105\n2. Le contenu Web du composant WebView est adapté au thème sombre (par des ressources CSS ou Android XML, etc.).</string>
<string name="description_notification_access">L\'autorisation \"accès aux notifications\" (ou \"autorisation de lecture des notifications\") permet à AutoJs6 de lire le contenu des notifications système, afin que les scripts puissent écouter des notifications ou récupérer le texte des notifications, etc.</string>
<string name="description_post_notifications">L\'autorisation \"envoyer des notifications\" permet à AutoJs6 de publier des notifications dans le système, afin que les scripts puissent publier et gérer des notifications personnalisées dans le panneau de notifications.\n\nNote: sur les appareils Android 13+, si cette autorisation n\'est pas accordée, certaines notifications peuvent ne pas s\'afficher, et cela peut affecter le démarrage et la stabilité des services au premier plan.</string>
<string name="description_project_media_access">Avec l\'accès aux médias du projet, l\'avertissement de sécurité pour l\'enregistrement d\'écran ne sera pas demandé.</string>
<string name="description_restart_strategy">La stratégie de redémarrage n\'affecte que le bouton de redémarrage dans le tiroir de la page d\'accueil.\n\nRedémarrage rapide : redémarre rapidement l\'application. Si le redémarrage échoue ou qu\'un comportement inattendu survient, essayez de passer à \"Redémarrage planifié\".\nRedémarrage planifié : configure à l\'avance une tâche de courte durée. Après l\'arrêt de l\'application, elle redémarrera selon la planification afin de relancer l\'application.</string>
<string name="description_rhino_java_primitive_wrap">Interrupteur activé (par défaut) : les valeurs retournées par les méthodes Java de type Number/Boolean/Character sont encapsulées comme objets Java et exposées au script (String exclu). typeof vaut \"object\", species vaut \"JavaObject\" ; les méthodes Java restent accessibles, ce qui permet de conserver les caractéristiques de type précises de Java et la résolution de surcharge.\n\nInterrupteur désactivé : les types cidessus ne sont plus encapsulés et sont exposés directement comme primitives JavaScript (number/boolean/chaîne à un seul caractère). typeof correspond au type JavaScript respectif, plus conforme à la sémantique/à l\'écosystème JavaScript. Il est toujours possible de déclarer explicitement un wrapper Java avec new, par ex. new java.lang.Boolean(true).\n\nVoir : http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">Si vous avez un accès exotique à la racine ou un état anormal pour l\'accès à la racine, vous pouvez forcer le réglage de la racine sur racine ou non-racine.</string>
<string name="description_root_record_out_file_type_preference">Type binaire : non modifiable, avec l\'extension de fichier \"auto\".\nType JavaScript : peut être édité ou copié directement, avec l\'extension de fichier \"js\".</string>
<string name="description_server_mode">Le mode serveur permet à AutoJs6 de démarrer un service sur l\'appareil actuel et d\'attendre des connexions de clients externes afin d\'effectuer [ transfert de scripts / impression des journaux / contrôle à distance ].\n\nLe mode serveur d\'AutoJs6 prend en charge deux modes de connexion:\n1. Réseau local (LAN)\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">Shizuku vous permet d\'obtenir des privilèges ADB et d\'accéder aux API du système</string>
<string name="description_stable_mode">Le mode stable le rend plus stable lors de l\'obtention des limites de mise en page, mais certains résultats peuvent être ignorés.\nA11y service\'s restart required.</string>
<string name="description_theme_color_preference">La couleur du thème est appliquée aux widgets, y compris, mais sans s\'y limiter, aux widgets suivants :\nBarre d\'état\nBarre d\'applications\nIcône de fichier\nIcône d\'élément de tâche\nFAB\nTitre de la catégorie Paramètres\nBouton de commutation\n\nRemarque : Depuis la version 6.2.0 d\'AutoJs6, il n\'y a pas encore de différence entre la couleur primaire, la couleur primaire foncée et la couleur d\'accentuation.</string>
<string name="description_timed_task_backend">Contrôle le mécanisme sous-jacent de déclenchement programmé des scripts.\n\nAlarmManager : En accordant l\'autorisation \"Autoriser la définition d\'alarmes et de rappels\", les tâches peuvent se déclencher avec une meilleure ponctualité.\nWorkManager : Plus conciliant avec le système ; adapté aux tâches non critiques tolérant un certain délai.\nJobScheduler : Ancienne implémentation conservée pour la compatibilité, avec un risque accru de retard.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">Scénarios d\'usage et différences :\n\n1. AlarmManager\nConvient aux tâches sensibles à la ponctualité, p. ex. [rappels/scripts strictement planifiés/...].\nSous Android 12+ avec l\'autorisation \"Autoriser la définition d\'alarmes et de rappels\", l\'exécution reste plus ponctuelle écran éteint ou en veille.\nSans cette autorisation, le système peut réduire la précision ou retarder l\'exécution.\n\n2. WorkManager\nConvient aux tâches ne nécessitant pas une ponctualité stricte, p. ex. [synchronisation non critique/nettoyage/statistiques/...].\nL\'ordonnancement dépend de [la batterie/le réseau/la charge/les stratégies de veille/...], ce qui peut retarder l\'exécution écran éteint ou en veille.\nBien qu\'il ne garantisse pas la précision temporelle, il offre des atouts en [achèvement fiable/reprise en cas d\'échec/chaînage/déduplication des travaux].\n\n3. JobScheduler\nImplémentation historique conservée pour compatibilité.\nSur les versions récentes d\'Android, les tâches peuvent subir des retards plus importants.\nSauf besoin de compatibilité, il n\'est généralement pas recommandé.</string>
<string name="description_usage_stats_access">Donne accès à l\'historique et aux statistiques d\'utilisation du périphérique, ce qui donne à currentPackage() un résultat plus précis</string>.
<string name="description_version_histories_preference">Consulter l\'historique des versions publiées d\'AutoJs6 sur GitHub ainsi que les statistiques des principales catégories.</string>
<string name="description_write_secure_settings">Paramètres de sécurité du système, contenant les préférences du système que les applications peuvent lire mais ne sont pas autorisées à écrire.\nIl s\'agit des préférences que l\'utilisateur doit explicitement modifier par le biais de l\'interface utilisateur d\'une application système.\nAvec l\'autorisation de paramètres de sécurité du système, les applications normales peuvent directement modifier les paramètres de sécurité (comme le service d\'accessibilité).</string>
<string name="description_write_system_settings">L\'autorisation \"modifier les paramètres système\" permet à AutoJs6 de modifier certains paramètres système, afin que les scripts puissent changer des réglages tels que [ luminosité de l\'écran / rotation automatique / délai d\'extinction de l\'écran ].</string>
<string name="dialog_button_advanced_settings">Avancé</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">Cancel</string>
<string name="dialog_button_cancel_download">Annulation</string>
<string name="dialog_button_clear_items">Effacer</string>
<string name="dialog_button_confirm">OK</string>
<string name="dialog_button_connect">Se connecter</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">Préfixe def</string>
<string name="dialog_button_details">Details</string>
<string name="dialog_button_dismiss">Quitter</string>
<string name="dialog_button_download_with_browser">Navigateur</string>
<string name="dialog_button_exception_details">Détails</string>
<string name="dialog_button_file_information">Infos fichier</string>
<string name="dialog_button_history">Histoire</string>
<string name="dialog_button_ignore_current_update">Ignorer</string>
<string name="dialog_button_join_group">Joindre groupe</string>
<string name="dialog_button_manager">Gestionnaire</string>
<string name="dialog_button_more">Plus</string>
<string name="dialog_button_open_color_palette">Palette</string>
<string name="dialog_button_quit">Quit</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">Supprimer</string>
<string name="dialog_button_retrieve">Récupérer</string>
<string name="dialog_button_retry">Retourner</string>
@@ -120,6 +145,8 @@
<string name="dialog_button_version_histories">Historique</string>
<string name="dialog_button_view_file">Voir le fichier</string>
<string name="dialog_button_view_shortcuts">Voir les raccourcis</string>
<string name="dialog_button_view_update">Voir la mise à jour</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">Détails de la couleur</string>
<string name="dialog_title_color_palette">Palette de couleurs</string>
<string name="dialog_title_theme_color_details">Détails de la couleur du thème</string>
@@ -169,6 +196,8 @@
<string name="error_arguments_cannot_be_empty">Les arguments ne peuvent pas être vides</string>
<string name="error_arguments_must_be_empty">Les arguments doivent être vides</string>
<string name="error_at_least_one_abi_needs_to_be_selected">Au moins un ABI doit être sélectionné</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">La version d\'AutoJs6 ne doit pas être inférieure à %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">Le numéro de version d\'AutoJs6 ne doit pas être inférieur à %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">Le bitmap et le mat sont tous deux nuls</string>
<string name="error_cannot_be_null">%s cannot be null</string>
<string name="error_cannot_connect_to_github">Impossible de se connecter à GitHub</string>
@@ -203,11 +232,17 @@
<string name="error_failed_to_grant_shizuku_access">Échec de l\'octroi de la permission de Shizuku</string>
<string name="error_failed_to_instantiate">Échec de l\'instanciation de \"%s\"</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[Échec de l\'instanciation de \"%1$s\": [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">Échec du lancement du gestionnaire</string>
<string name="error_failed_to_launch_system_settings">Échec du lancement des paramètres système</string>
<string name="error_failed_to_load_plugins_with_reason">Échec du chargement des plugins.\nRaison : %1$s.</string>
<string name="error_failed_to_render_content">Impossible d\'afficher le contenu</string>
<string name="error_failed_to_retrieve_changelog">Échec de la récupération du journal des modifications</string>
<string name="error_failed_to_retrieve_release_notes">Échec de la récupération des notes de version</string>
<string name="error_failed_to_retrieve_version_histories">Impossible de récupérer l\'historique des versions</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">Impossible de récupérer version.properties pour analyser les informations de version</string>
<string name="error_failed_to_revoke_shizuku_access">La révocation des droits de Shizuku a échoué</string>
<string name="error_failed_to_run_script">Échec de l\'exécution du script</string>
<string name="error_failed_to_save_project_config">Échec de l\'enregistrement de la configuration du projet</string>
<string name="error_file_in_path_does_not_exist">Le fichier dans le chemin \"%1$s\" n\'existe pas</string>
<string name="error_function_called_in_ui_thread">Le thread d\'interface utilisateur ne peut pas être bloqué. Essayez d\'exécuter %s() dans un sous-fil ou un sous-script</string>.
<string name="error_function_called_more_than_once">%s() appelé plus d\'une fois</string>
@@ -244,6 +279,7 @@
<string name="error_no_applications_available_for_playing_this_file">Aucune application disponible pour lire ce fichier</string>
<string name="error_no_applications_available_for_sending_this_file">Aucune application disponible pour envoyer ce fichier</string>
<string name="error_no_applications_available_for_viewing_this_file">Aucune application disponible pour afficher ce fichier</string>
<string name="error_no_available_url_provided_for_current_plugin">Aucune URL disponible n\'a été fournie pour le plug-in actuel</string>
<string name="error_no_display_over_other_apps_permission">Aucune permission \"display over other apps\"</string>
<string name="error_no_permission_to_access_shizuku">Pas de permission pour accéder à Shizuku</string>
<string name="error_no_post_notifications_permission">Pas d\'autorisation pour les \"notifications d\'envoi\"</string>
@@ -272,6 +308,7 @@
<string name="error_shizuku_is_not_installed">Shizuku n\'est pas installé</string>
<string name="error_shizuku_service_may_be_not_running">Le service Shizuku n\'est peut-être pas en cours d\'exécution</string>
<string name="error_shizuku_version_is_not_supported">La version de Shizuku n\'est pas prise en charge</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Le numéro de version AutoJs6 spécifié doit être supérieur à 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">Le transformateur pour la propriété requise \"%1$s\" ne peut pas retourner une valeur nulle</string>
<string name="error_thread_is_not_alive">Thread n\'est pas vivant</string>
<string name="error_unable_to_use_shizuku_service">Impossible d\'utiliser le service Shizuku</string>
@@ -482,6 +519,7 @@
<string name="text_captured_window_info_type_unknown">Type inconnu</string>
<string name="text_category_filter">Filtre de catégorie</string>
<string name="text_change_working_dir">Changer de répertoire de travail</string>
<string name="text_changelog">Journal des modifications</string>
<string name="text_changelog_item_dependency">Certaines dépendances ou versions de bibliothèques locales ont été ajustées</string>
<string name="text_check_for_updates">Vérifier les mises à jour</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">Vérifier les mises à jour (ignorer la version locale)</string>
@@ -519,7 +557,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">Tous les historiques ci-dessous seront effacés\n\n[ Toutes les bibliothèques de couleurs ]\n\nÊtes-vous sûr de vouloir les effacer ?</string>
<string name="text_confirm_to_delete">Vous êtes sûr de vouloir supprimer ?</string>
<string name="text_confirm_to_remove">Etes-vous sûr de supprimer ?</string>
<string name="text_confirm_to_uninstall">Voulez-vous vraiment désinstaller ?</string>
<string name="text_connect_to_pc">Connexion au PC</string>
<string name="text_connected">Connecté</string>
<string name="text_connected_count_with_colon">Connectés : %1$d</string>
<string name="text_connection_cannot_be_established">La connexion ne peut pas être établie</string>
<string name="text_console">Console</string>
<string name="text_continue">Continue</string>
@@ -641,6 +682,7 @@
<string name="text_failed_to_retrieve">Échec de la récupération</string>
<string name="text_failed_to_save_remote_project_to_local_storage">Échec de l\'enregistrement du projet distant dans le stockage local</string>
<string name="text_failed_to_send_log_entries">Échec de l\'envoi des entrées de journal</string>
<string name="text_failed_to_update">Échec de la mise à jour</string>
<string name="text_failed_to_write_file">Fail to write file</string>
<string name="text_file">Fichier</string>
<string name="text_file_details">Détails du fichier</string>
@@ -665,7 +707,6 @@
<string name="text_floating_button">Bouton flottant</string>
<string name="text_force_stop">Force stop</string>
<string name="text_foreground_service">Service d\'avant-plan</string>
<string name="text_foreground_service_description">Les services d\'avant-plan effectuent des opérations qui sont perceptibles par l\'utilisateur\nLes services d\'avant-plan affichent une notification dans la barre d\'état, de sorte que les utilisateurs sont activement conscients que votre application effectue une tâche en avant-plan et consomme des ressources système.\nLa notification ne peut pas être rejetée à moins que le service ne soit arrêté ou supprimé de l\'avant-plan.\nLa notification peut avoir une faible priorité, voire être désactivée, en appuyant longuement sur la notification.</string>
<string name="text_formatting_completed">Formatage terminé</string>
<string name="text_function">Fonction</string>
<string name="text_fx_keyboard">Fx clavier</string>
@@ -705,9 +746,11 @@
<string name="text_install_from_url">Installer depuis \"URL\"</string>
<string name="text_install_plugin_from_url">Installer le plugin depuis \"URL\"</string>
<string name="text_installable">Installable</string>
<string name="text_integrity_verification_failed">Échec de la vérification de l\'intégrité</string>
<string name="text_invalid_character_is_removed">Caractère invalide est supprimé</string>
<string name="text_invalid_package_name">Nom de paquet non valide</string>
<string name="text_invalid_project">Projet non valide</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">L\'adresse IP \"%1$s\" a un usage particulier (loopback/broadcast/multicast/reserved/...), il est donc possible qu\'elle ne puisse pas être utilisée pour se connecter au serveur cible.</string>
<string name="text_is_latest_version">Pas de version plus récente trouvée</string>
<string name="text_issue_report">Réaction</string>
<string name="text_js_file">*.js file</string>
@@ -775,11 +818,13 @@
<string name="text_night_mode">Mode nuit</string>
<string name="text_no_browser">Aucun navigateur n\'est installé</string>
<string name="text_no_content">Pas de contenu</string>
<string name="text_no_content_description">Aucune description de contenu</string>
<string name="text_no_histories">Aucun Histoire</string>
<string name="text_no_ignored_updates">Aucune mise à jour ignorée</string>
<string name="text_no_log_entries_to_copy">Aucune entrée de journal à copier</string>
<string name="text_no_log_entries_to_export">Aucune entrée de journal à exporter</string>
<string name="text_no_log_entries_to_send">Aucune entrée de journal à envoyer</string>
<string name="text_no_plugins_installed_hint">Aucun plugin n\'est actuellement installé.\nCliquez sur le bouton \"+\" pour installer des plugins.</string>
<string name="text_no_root">Non-root</string>
<string name="text_no_root_access">Aucun accès root</string>
<string name="text_no_scripts_to_stop_running">Pas de scripts à arrêter de fonctionner</string>
@@ -922,7 +967,6 @@
<string name="text_project">Projet</string>
<string name="text_project_location">Localisation du projet</string>
<string name="text_project_media_access">Accès aux médias du projet</string>
<string name="text_project_media_access_description">Avec l\'accès aux médias du projet, l\'avertissement de sécurité pour l\'enregistrement d\'écran ne sera pas demandé.</string>
<string name="text_prompt">Prompt</string>
<string name="text_quit">Quit</string>
<string name="text_recommended">Recommandé</string>
@@ -938,6 +982,7 @@
<string name="text_register">Register</string>
<string name="text_register_succeed">Enregistrement réussi</string>
<string name="text_registering">Register</string>
<string name="text_release_notes">Notes de version</string>
<string name="text_remote">à distance</string>
<string name="text_remote_file_saved_to_local_storage_successfully">Fichier distant enregistré avec succès dans la mémoire locale</string>
<string name="text_remote_project_saved_to_local_storage_successfully">Projet distant sauvegardé avec succès dans le stockage local</string>
@@ -956,6 +1001,9 @@
<string name="text_restart">Redémarrer</string>
<string name="text_restart_strategy">Stratégie de redémarrage</string>
<string name="text_result">Résultat</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Récupération du journal des modifications...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Récupération des données de la liste des plugins...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Récupération des notes de version...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">Révoquer les privilèges AutoJs6 dans une application Shizuku</string>
<string name="text_rhino_java_primitive_wrap">Encapsulation des types primitifs Java</string>
<string name="text_root_mode_title">Vérification de l\'accès root</string>
@@ -986,6 +1034,8 @@
<string name="text_save_and_exit">Enregistrer et quitter</string>
<string name="text_save_simplified">Enreg</string>
<string name="text_save_to">Save to</string>
<string name="text_scheduled_restart_backend">Moteur</string>
<string name="text_scheduled_restart_start_delay">Délai de démarrage</string>
<string name="text_script_record">Enregistrement de scripts</string>
<string name="text_script_running">Script running</string>
<string name="text_search">Recherche</string>
@@ -1008,8 +1058,8 @@
<string name="text_set_as_working_dir">Comme répertoire de travail</string>
<string name="text_set_breakpoint">Définir un point d\'arrêt</string>
<string name="text_settings">Réglages</string>
<string name="text_sha256_mismatch_multiline_expected_actual">Incohérence du SHA-256.\n\nAttendu : %1$s\nObtenu : %2$s</string>
<string name="text_shizuku_access">Permissions de Shizuku</string>
<string name="text_shizuku_access_description">Shizuku vous permet d\'obtenir des privilèges ADB et d\'accéder aux API du système</string>
<string name="text_shizuku_service_may_need_to_be_run_first">Il se peut que vous deviez d\'abord exécuter le service Shizuku</string>
<string name="text_should_not_be_empty">Le texte ne peut pas être vide</string>
<string name="text_show_layout_bounds">Afficher les bords de la disposition</string>
@@ -1064,6 +1114,10 @@
<string name="text_undo_simplified">Révoq</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">Inconnu</string>
<string name="text_unknown_author_for_plugin">Auteur Inconnu</string>
<string name="text_unknown_description_for_plugin">Description Inconnue</string>
<string name="text_unknown_title_for_plugin">Titre Inconnu</string>
<string name="text_unknown_version_for_plugin">Version Inconnue</string>
<string name="text_unverified">Non vérifié</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1072,7 +1126,6 @@
<string name="text_updates_snack_bar_act_later">Plus tard</string>
<string name="text_updates_snack_bar_act_view">Voir</string>
<string name="text_usage_stats_permission">Utilisation de l\'accès aux statistiques</string>
<string name="text_usage_stats_permission_description">Donne accès à l\'historique et aux statistiques d\'utilisation du périphérique, ce qui donne à currentPackage() un résultat plus précis</string>.
<string name="text_use_android_n_shortcut">Utiliser le raccourci Android 7.0</string>
<string name="text_use_default_icon">Utiliser l\'icône par défaut</string>
<string name="text_use_volume_control_record">Utiliser la touche de réduction du volume pour contrôler l\'enregistrement</string>.
@@ -1107,38 +1160,6 @@
<string name="text_weekly_task_should_check_day_of_week">Au moins un jour doit être sélectionné</string>
<string name="text_working_dir_path">Chemin du répertoire de travail</string>.
<string name="text_write_secure_settings">Écrire les paramètres de sécurité</string>.
<string name="text_write_secure_settings_description">Paramètres de sécurité du système, contenant les préférences du système que les applications peuvent lire mais ne sont pas autorisées à écrire.\nIl s\'agit des préférences que l\'utilisateur doit explicitement modifier par le biais de l\'interface utilisateur d\'une application système.\nAvec l\'autorisation de paramètres de sécurité du système, les applications normales peuvent directement modifier les paramètres de sécurité (comme le service d\'accessibilité).</string>
<string name="text_write_system_settings">Écrire les paramètres système</string>
<string name="text_integrity_verification_failed">Échec de la vérification de l\'intégrité</string>
<string name="text_sha256_mismatch_multiline_expected_actual">Incohérence du SHA-256.\n\nAttendu : %1$s\nObtenu : %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">Aucune URL disponible n\'a été fournie pour le plug-in actuel</string>
<string name="text_failed_to_update">Échec de la mise à jour</string>
<string name="text_confirm_to_uninstall">Voulez-vous vraiment désinstaller ?</string>
<string name="dialog_button_exception_details">Détails</string>
<string name="error_failed_to_load_plugins_with_reason">Échec du chargement des plugins.\nRaison : %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Récupération des données de la liste des plugins...</string>
<string name="text_no_plugins_installed_hint">Aucun plugin n\'est actuellement installé.\nCliquez sur le bouton \"+\" pour installer des plugins.</string>
<string name="text_unknown_author_for_plugin">Auteur Inconnu</string>
<string name="text_unknown_description_for_plugin">Description Inconnue</string>
<string name="text_unknown_version_for_plugin">Version Inconnue</string>
<string name="text_unknown_title_for_plugin">Titre Inconnu</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Le numéro de version AutoJs6 spécifié doit être supérieur à 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">Le numéro de version d\'AutoJs6 ne doit pas être inférieur à %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">La version d\'AutoJs6 ne doit pas être inférieure à %1$s</string>
<string name="dialog_button_view_update">Voir la mise à jour</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Impossible de récupérer le journal des modifications pour la langue actuellement affichée. Vous pouvez réessayer plus tard.\n\nLes notes de version en \"chinois simplifié (zh-Hans)\" seront affichées temporairement.</string>
<string name="error_failed_to_retrieve_changelog">Échec de la récupération du journal des modifications</string>
<string name="error_failed_to_retrieve_release_notes">Échec de la récupération des notes de version</string>
<string name="text_changelog">Journal des modifications</string>
<string name="text_release_notes">Notes de version</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Récupération du journal des modifications...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Récupération des notes de version...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">Moteur</string>
<string name="text_scheduled_restart_start_delay">Délai de démarrage</string>
<string name="dialog_button_advanced_settings">Avancé</string>
<string name="error_failed_to_save_project_config">Échec de l\'enregistrement de la configuration du projet</string>
<string name="text_connected">Connecté</string>
<string name="text_connected_count_with_colon">Connectés : %1$d</string>
</resources>

View File

@@ -57,6 +57,7 @@
<string name="content_description_fab_for_display_manifest">マニフェストを表示するためのフローティング操作ボタン部品</string>
<string name="content_failed_to_determine_index_of_theme_color_item">テーマカラーアイテムのインデックスを特定できません</string>
<string name="content_failed_to_locate_library_for_theme_color">テーマカラーのカラーパレットが見つかりません</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">現在表示している言語に対応する更新ログの取得に失敗しました. しばらくしてからもう一度お試しください. \n\n現在は一時的に \"簡体字中国語 (zh-Hans)\" のリリースノートを表示します.</string>
<string name="content_github_feedback">問題を報告するためのウェブページが起動します.\nGitHub のアカウントが必要な場合があります</string>
<string name="content_way_of_output_for_recorded_script">回収したスクリプトの出力方法を選択する</string>
<string name="crash_feedback">デバッグログをコピーするか, 直接終了する</string>
@@ -68,47 +69,71 @@
<string name="default_value_working_directory">/スクリプト</string>
<string name="description_about_app_and_developer_preference">AutoJs6 は, Android 用の JavaScript 自動化ツールで, 「hyb1996/Auto.js」をクローンしたオープンソースです.\n\nヘルプやフィードバックを求めるには, GitHub issues に行くか, Tencent QQ チャットグループ 690946137 に参加してください</string>
<string name="description_about_app_tips_preference">1. アプリと開発者について」ページでアプリのアイコンを長押しすると, AutoJs6 の開発者向けオプションページにジャンプします</string>
<string name="description_accessibility_service">アクセシビリティサービスは, AutoJs6 が自動化を実現するための中核機能です. 画面上のウィジェット情報を読み取り, [ タップ / スワイプ / 入力 ] などの操作をシミュレートします.\n\n自動化関連の大半の機能やレイアウト解析ツールなどは, アクセシビリティサービスを有効にしないと正常に動作しません.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">\"すべてのファイルを管理\" (または \"すべてのファイルへのアクセス\") 権限により, AutoJs6 は共有ストレージ上で通常のファイルパスを使って直接 [ 作成 / 読み取り / 変更 / 削除 ] を行えます. これによりスクリプトは \"Internal Storage\" にアクセスでき, ファイルマネージャーもファイルを正常に表示・管理できます.\n\nAndroid 11+ では, フルストレージの読み書きを実現する主要な方法です.</string>
<string name="description_app_language_preference">この環境設定は, 実行中のスクリプトからの例外メッセージを含む, AutoJs6 の表示言語を変更するためのものです.\n\n注: 言語を期待通りに適用するには, アプリの再起動が必要な場合があります</string>
<string name="description_auto_night_mode">自動ナイトモードを有効にすると, AutoJs6 はシステム設定に従って自動的にナイトモードへ切り替えます.\n\nNote: 自動ナイトモードのスイッチとナイトモードのスイッチは相互に関連しており, 互いに影響します.</string>
<string name="description_change_working_dir_preference">スクリプトを含むディレクトリのパスを変更する</string>
<string name="description_check_for_updates_preference">AutoJs6 は, GitHub からアップデートを取得し, ダウンロードします.</string>
<string name="description_client_mode">クライアントモードは, AutoJs6 がリモートのサーバーへ能動的に接続し, [ スクリプト転送 / ログ出力 / リモート制御 ] などを行うための機能です.\n\n通常は, 端末とサーバーが同一 LAN か, 相互に到達可能なネットワーク環境にある必要があります.</string>
<string name="description_display_over_other_app">\"他のアプリの上に表示\" 権限により, AutoJs6 は他のアプリ画面の上にフローティングウィンドウやフローティングボタンを表示でき, どの画面からでも素早く操作や情報確認ができます.\n\nNote: この権限が付与されていない場合, フローティングウィンドウやフローティングボタンが表示されない, または正常に利用できない可能性があります.</string>
<string name="description_documentation_source_preference">ローカルドキュメント AutoJs6 に組み込まれたファイルをドキュメントソースとして使用するため, ネットワーク接続は必要ありません. AutoJs6 が更新されると内容も変わります.\nオンライン・ドキュメント. GitHub のページをドキュメントソースとして使用し, ネットワーク接続が必要です. コンテンツは常に最新の状態に保たれます.\n\n注: オンラインドキュメントを最大限に活用するために, デスクトップモニターなどのワイドスクリーンディスプレイを使用することをお勧めします.\n注意: バージョン 6.2.0 時点では, ドキュメントはまだ開発の初期段階にあり, ほとんどのコンテンツはまだ執筆・更新されていません</string>
<string name="description_documentation_source_preference_more">ドキュメントページでダークテーマをサポートするには, 以下の条件を満たす必要があります.\n1. AutoJs6 でナイトモードが有効になっている\n2. Android System WebView (または Google Chrome などのブラウザ) .\n- Android API Level 29 (Android 10) [Q] 以上: バージョン >= 76\n- Android API Level 28 (Android 9) [P] 以下: バージョン >= 105</string>
<string name="description_extending_js_build_in_objects">JavaScript の組み込みオブジェクトを拡張すると, コードの柔軟性が増し, より豊かな機能を実現できますが, 衝突や破損を引き起こす可能性もあります.\nこのオプションをオンにすると, すべてのスクリプトはデフォルトで組み込みの拡張機能を有効にします.\n組み込みの拡張機能は安全でないことが多いので, 組み込みの拡張機能の原理とリスクが明確に理解されていない限り, 推奨されません.\nこのオプションをオフにした場合でも, プロジェクトのドキュメントで説明されているように, plugins グローバルオブジェクトを使用して組み込み拡張機能を有効にすることができます</string>
<string name="description_file_extensions_preference">AutoJs6のファイルエクスプローラーでファイル拡張子を表示するかどうかの設定に使用されます.</string>
<string name="description_floating_button">フローティングボタンは, 画面端にドラッグ可能なクイック入口を表示し, [ スクリプトの開始/停止 / レイアウト解析 / 最近のパッケージ名やアクティビティ名の表示 / ポインター位置の表示 ] などに利用できます.\n\nNote: この機能は通常, \"他のアプリの上に表示\" 権限が必要です.</string>
<string name="description_foreground_service">フォアグラウンドサービスは, AutoJs6 をバックグラウンドでもより安定して動作させるための機能で, [ 長時間スクリプト実行 / 接続の維持 / 継続的な監視 ] などの用途に適しています.\n\n有効化すると, システムは \"フォアグラウンドサービス通知\" を表示して AutoJs6 が継続稼働中であることをユーザーに知らせます. この通知は通常, サービスが停止するまで表示され続けます.\n\n通知を \"Silent\" または \"Minimize\" に設定しても, 通知の強さが下がるだけで, 一般的にフォアグラウンドサービス機能には影響しません.\n\n通知チャネルを無効化したり AutoJs6 の通知送信を禁止したりすると, フォアグラウンドサービスの正常な起動や安定性に影響する可能性があります.</string>
<string name="description_hidden_files_preference">AutoJs6 ファイルエクスプローラーで隠しファイルや隠しフォルダ (通常は「.」で始まる) を表示するかどうかを設定するために使用します</string>
<string name="description_ignore_battery_optimizations">バッテリー最適化の無視により, AutoJs6 に対するバックグラウンド制限を緩和でき, スケジュールタスクや長時間スクリプトが待機中でも比較的安定して動作しやすくなります.\n\nNote: メーカーにより, 追加の省電力ポリシー (自動起動制限, バックグラウンド凍結など) が存在する場合があります.</string>
<string name="description_keep_screen_on_when_in_foreground">AutoJs6 が前面にあるときに画面を常時点灯させるかどうかを制御します.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">AutoJs6 がフォアグラウンドにあるとき, デバイスの画面をオンにして明るく保つための設定です.\nAutoJs6 アプリケーションの全ページのうち, ホームページでのみ使用する場合は, \"ホームページのみ\" オプションを選択します</string>
<string name="description_launcher_icon_preference">ランチャーアイコンはアダプティブアイコンと従来の透過背景アイコンの表示モードに対応しています. 実際の表示効果はAndroidシステムによって異なる場合があります. 表示モードを切り替えた後, 反映されるまで数秒かかることがあります.</string>
<string name="description_launcher_shortcuts">ショートカットは, AutoJs6 で特定のアクションを実行することができます. ユーザーは, サポートされているランチャーにこれらのショートカットを表示し, AutoJs6 アプリケーションのドキュメントを読んだり, AutoJs6 の設定ページを起動したりするなど, いくつかのタスクを素早く開始したり, アクティビティを起動したりすることができます</string>
<string name="description_manage_ignored_updates_preference">クリックすると, リストアイテムを表示または管理できます.\nリストアイテムを削除するには, 長押しします</string>
<string name="description_night_mode">AutoJs6 のナイトモード方針を制御し, その状態を反映します.\n\nNote: ナイトモードのスイッチと自動ナイトモードのスイッチは相互に関連しており, 互いに影響します.</string>
<string name="description_night_mode_preference">ナイトモード (ダークテーマとも呼ばれる) は, Android システムの UI と端末上で動作するアプリケーションの両方に適用され, 弱視のユーザーや明るい光に敏感なユーザーの視認性を向上させ, 誰でも簡単に暗い環境下で端末を使用できるようにします.\n\nフォローシステム AutoJs6 では, Android と同じ Night モードが設定できます.\n常にオン Android のシステム設定に関係なく, 常に Night モードが ON になります.\n常にオフ Android のシステム設定に関係なく, AutoJs6 はナイトモードをオフにします.\n\n注: Follow system オプションは, Android API Level 28 (Android 9) [P] 以上の場合のみです</string>
<string name="description_night_mode_preference_more">Android システムでナイトモードを有効にするには\n- Android API Level 29 (Android 10) [Q] 以上の場合: [設定] -> [ディスプレイ] -> [テーマ].\n- Android API Level 28 (Android 9) [P]: [開発者向けオプション] -> [ナイトモード].\n\nWebView コンポーネント (AutoJs6 のドキュメントページなど) を使って, Web ベースのコンテンツにナイトモード (ダークテーマ) を適用するには, 以下の条件を満たす必要があります.\n1. Android System WebView (または Google Chrome のようなブラウザ) .\n- Android API Level 29 (Android 10) [Q] 以上: バージョン >= 76\n- Android API Level 28 (Android 9) [P]: バージョン >= 105\n2. WebView コンポーネントの Web ベースのコンテンツは, Dark テーマに適合している (CSS や Android XML リソースなどによる)</string>
<string name="description_notification_access">\"通知へのアクセス\" (または \"通知読み取り権限\") により, AutoJs6 はシステム通知の内容を読み取れるようになり, スクリプトで通知を監視したり通知テキストを取得したりできます.</string>
<string name="description_post_notifications">\"通知の送信\" 権限により, AutoJs6 はシステムに通知を投稿でき, スクリプトで通知バーへカスタム通知を投稿・管理できます.\n\nNote: Android 13+ 端末でこの権限が付与されていない場合, 一部の通知が表示されない可能性があり, フォアグラウンドサービスの起動や安定性に影響することがあります.</string>
<string name="description_project_media_access">プロジェクトのメディアアクセス権を使用すると, 画面録画のセキュリティ警告が表示されなくなります</string>
<string name="description_restart_strategy">再起動戦略はホームページのドロワーにある再起動ボタンにのみ適用されます.\n\nクイック再起動: アプリをすばやく再起動します. 再起動に失敗したり予期しない状況が発生した場合は/\"スケジュール再起動\" に切り替えてください.\nスケジュール再起動: あらかじめ短時間のタイマーを設定します. アプリが停止した後/スケジュールに従って再度起動し/アプリの再起動を実現します.</string>
<string name="description_rhino_java_primitive_wrap">スイッチ有効 (デフォルト): Java メソッドが返す Number/Boolean/Character は Java オブジェクトとしてラップされ/スクリプトに公開されます (String は除外). typeof は \"object\"/species は \"JavaObject\". Java のメソッドを呼び出せるため/Java の厳密な型特性やオーバーロード解決を保持しやすくなります.\n\nスイッチ無効: 上記の型はラップされず/JavaScript のプリミティブ値 (number/boolean/1 文字の文字列) として直接公開されます. typeof は対応する JavaScript 型となり/JavaScript のセマンティクス/エコシステムにより沿います. 必要なら new によって明示的に Java ラッパーを生成できます (例: new java.lang.Boolean(true)).\n\n参照: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">異国の root や root アクセスに異常がある場合, root を強制的に root または non-root に設定することができます</string>
<string name="description_root_record_out_file_type_preference">バイナリタイプ: 編集不可, ファイル拡張子は \"auto\"\nJavaScript タイプ: 直接編集またはコピー可能, ファイル拡張子は \"js\"</string>
<string name="description_server_mode">サーバーモードは, AutoJs6 が端末上でサービスを起動して外部クライアントからの接続を待ち, [ スクリプト転送 / ログ出力 / リモート制御 ] などを行うための機能です.\n\nAutoJs6 のサーバーモードは 2 つの接続方式に対応しています:\n1. LAN\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">Shizuku を使用すると, ADB 権限を取得し, システム API にアクセスできるようになります</string>
<string name="description_stable_mode">安定モードにするとレイアウト境界を取得する際に安定しますが, 一部の結果が無視されることがあります.\nアクセシビリティサービスの再起動が必要です</string>
<string name="description_theme_color_preference">テーマカラーは, 以下のウィジェットに適用されますが, これに限定されるものではありません.\nステータスバー\nアプリバー\nファイルアイコン\nタスクアイテムアイコン\nファブ\n設定カテゴリのタイトル\nスイッチボタン\n\n注: AutoJs6 バージョン 6.2.0 では, 原色, 原色暗色, アクセントカラーの区別はまだありません</string>
<string name="description_timed_task_backend">スクリプトを定時で起動するための基盤メカニズムを制御します.\n\nAlarmManager: システムの \"アラームとリマインダーの設定を許可\" 権限を付与すると/より正確な時刻での実行に近づきます.\nWorkManager: システムに優しく/一定の遅延を許容できる非重要タスクに適しています.\nJobScheduler: 旧来の実装で互換性のために残されていますが/遅延が発生しやすいです.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">利用シーンと違い: \n\n1. AlarmManager\n[リマインダー/厳密な時刻のスクリプト/...] など/時刻精度が重要なタスクに適しています.\nAndroid 12 以降で \"アラームとリマインダーの設定を許可\" 権限がある場合/画面消灯/待機中でも比較的正確に実行されます.\n権限がない場合/システムにより不正確または遅延実行になる可能性があります.\n\n2. WorkManager\n[非重要な同期/クリーンアップ/統計/...] など/厳密な時刻精度を必要としないタスクに適しています.\n[バッテリー/ネットワーク/充電状況/待機ポリシー/...] に応じてスケジューリングされ/消灯/待機中は実行が遅れることがあります.\n時間精度は保証されませんが/[確実な完了/失敗時の再試行/チェーン実行/一意タスクの重複排除] に強みがあります.\n\n3. JobScheduler\n互換性維持のための歴史的実装です.\n新しい Android では遅延が大きくなりやすい傾向があります.\n互換性の必要がない限り/通常は非推奨です.</string>
<string name="description_usage_stats_access">デバイスの使用履歴や統計情報にアクセスできるようになり, currentPackage()の結果がより正確になります</string>
<string name="description_version_histories_preference">GitHub 上の AutoJs6 のリリース版変更履歴と主要カテゴリの統計データを確認する.</string>
<string name="description_write_secure_settings">アプリケーションが読み取ることはできるが, 書き込むことはできないシステム環境設定を含む, 安全なシステム設定です.\nこれは, ユーザーがシステムアプリの UI を通じて明示的に変更する必要がある環境設定のためのものです.\nセキュアなシステム設定を許可すると, 通常のアプリケーションはセキュアな設定 (アクセシビリティサービスなど) を直接変更できるようになります</string>
<string name="description_write_system_settings">\"システム設定の変更\" 権限により, AutoJs6 は一部のシステム設定を変更でき, スクリプトで [ 画面の明るさ / 自動回転 / 画面タイムアウト ] などを調整できます.</string>
<string name="dialog_button_advanced_settings">詳細</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">取消</string>
<string name="dialog_button_cancel_download">取消</string>
<string name="dialog_button_clear_items">クリア</string>
<string name="dialog_button_confirm">OK</string>
<string name="dialog_button_connect">接続</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">デフォ前置</string>
<string name="dialog_button_details">詳細</string>
<string name="dialog_button_dismiss">削除</string>
<string name="dialog_button_download_with_browser">ブラウザ</string>
<string name="dialog_button_exception_details">詳細</string>
<string name="dialog_button_file_information">ファイル情報</string>
<string name="dialog_button_history">履歴</string>
<string name="dialog_button_ignore_current_update">無視する</string>
<string name="dialog_button_join_group">グループ参加</string>
<string name="dialog_button_manager">マネージャー</string>
<string name="dialog_button_more">詳細</string>
<string name="dialog_button_open_color_palette">パレットを開く</string>
<string name="dialog_button_quit">終了する</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">削除</string>
<string name="dialog_button_retrieve">取得</string>
<string name="dialog_button_retry">再試行</string>
@@ -121,6 +146,8 @@
<string name="dialog_button_version_histories">更新履歴</string>
<string name="dialog_button_view_file">ファイルの表示</string>
<string name="dialog_button_view_shortcuts">ショートカットを表示</string>
<string name="dialog_button_view_update">更新を表示</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">カラー詳細</string>
<string name="dialog_title_color_palette">カラーパレット</string>
<string name="dialog_title_theme_color_details">テーマカラー詳細</string>
@@ -170,6 +197,8 @@
<string name="error_arguments_cannot_be_empty">引数を空にできません</string>
<string name="error_arguments_must_be_empty">引数は空でなければなりません</string>
<string name="error_at_least_one_abi_needs_to_be_selected">少なくとも 1 つの ABI を選択する必要がある</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 のバージョンは %1$s 未満であってはなりません</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 のバージョン番号は %1$s 未満であってはなりません</string>
<string name="error_both_bitmap_and_mat_are_null">ビットマップとマットの両方が null です</string>
<string name="error_cannot_be_null">%s は null にできません</string>
<string name="error_cannot_connect_to_github">GitHub に接続できません</string>
@@ -204,11 +233,17 @@
<string name="error_failed_to_grant_shizuku_access">Shizuku の権限付与に失敗しました</string>
<string name="error_failed_to_instantiate">\"%s\" のインスタンス化に失敗しました</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[インスタンス化 \"%1$s\" に失敗しました: [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">マネージャーを起動できませんでした</string>
<string name="error_failed_to_launch_system_settings">システム設定を起動できませんでした</string>
<string name="error_failed_to_load_plugins_with_reason">プラグインの読み込みに失敗しました.\n理由: %1$s.</string>
<string name="error_failed_to_render_content">コンテンツの表示に失敗しました</string>
<string name="error_failed_to_retrieve_changelog">更新ログの取得に失敗しました</string>
<string name="error_failed_to_retrieve_release_notes">リリースノートの取得に失敗しました</string>
<string name="error_failed_to_retrieve_version_histories">バージョン履歴を取得できません</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">version.properties を取得できず, バージョン情報を解析できません</string>
<string name="error_failed_to_revoke_shizuku_access">Shizuku 権限の取り消しに失敗しました</string>
<string name="error_failed_to_run_script">スクリプトの実行に失敗しました</string>
<string name="error_failed_to_save_project_config">プロジェクト設定の保存に失敗しました</string>
<string name="error_file_in_path_does_not_exist">パス \"%1$s\" にファイルが存在しません</string>
<string name="error_function_called_in_ui_thread">\"UI スレッドをブロックできません. サブスレッドまたはサブスクリプトで %s() を実行してみてください</string>
<string name="error_function_called_more_than_once">%s() が複数回呼び出されました</string>
@@ -245,6 +280,7 @@
<string name="error_no_applications_available_for_playing_this_file">このファイルを再生できるアプリがありません</string>
<string name="error_no_applications_available_for_sending_this_file">このファイルを送信できるアプリがありません</string>
<string name="error_no_applications_available_for_viewing_this_file">このファイルを表示できるアプリがありません</string>
<string name="error_no_available_url_provided_for_current_plugin">現在のプラグインに利用可能な URL は提供されていません</string>
<string name="error_no_display_over_other_apps_permission">他のアプリの上に表示する」権限がない</string>
<string name="error_no_permission_to_access_shizuku">Shizuku にアクセスする権限がありません</string>
<string name="error_no_post_notifications_permission">\"投稿通知\" 許可なし</string>
@@ -273,6 +309,7 @@
<string name="error_shizuku_is_not_installed">Shizuku がインストールされていない</string>
<string name="error_shizuku_service_may_be_not_running">Shizuku サービスが実行されていない可能性があります</string>
<string name="error_shizuku_version_is_not_supported">Shizuku のバージョンがサポートされていない</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定された AutoJs6 のバージョン番号は 461 より大きくなければなりません</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">必要なプロパティ \"%1$s\" のトランスフォーマーは null を返すことができません</string>
<string name="error_thread_is_not_alive">スレッドが生きていない</string>
<string name="error_unable_to_use_shizuku_service">Shizuku サービスが使用できない</string>
@@ -483,6 +520,7 @@
<string name="text_captured_window_info_type_unknown">不明なタイプ</string>
<string name="text_category_filter">カテゴリフィルター</string>
<string name="text_change_working_dir">作業ディレクトリの変更</string>
<string name="text_changelog">更新ログ</string>
<string name="text_changelog_item_dependency">一部の依存関係またはローカルライブラリのバージョン調整</string>
<string name="text_check_for_updates">アップデートの確認</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">アップデートの確認 (ローカルバージョンを無視する)</string>
@@ -520,7 +558,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">以下の履歴がクリアされます\n\n[ すべてのカラーライブラリ ]\n\n本当にクリアしてもよろしいですか?</string>
<string name="text_confirm_to_delete">本当に削除しますか?</string>
<string name="text_confirm_to_remove">本当に削除しますか?</string>
<string name="text_confirm_to_uninstall">アンインストールしてもよろしいですか?</string>
<string name="text_connect_to_pc">PC に接続する</string>
<string name="text_connected">接続済み</string>
<string name="text_connected_count_with_colon">接続済み: %1$d</string>
<string name="text_connection_cannot_be_established">接続が確立できない</string>
<string name="text_console">コンソール</string>
<string name="text_continue">続行</string>
@@ -642,6 +683,7 @@
<string name="text_failed_to_retrieve">取得に失敗</string>
<string name="text_failed_to_save_remote_project_to_local_storage">リモートプロジェクトをローカルストレージに保存できませんでした</string>
<string name="text_failed_to_send_log_entries">ログ・エントリの送信に失敗しました</string>
<string name="text_failed_to_update">更新に失敗しました</string>
<string name="text_failed_to_write_file">ファイルの書き込みに失敗しました</string>
<string name="text_file">ファイル</string>
<string name="text_file_details">ファイルの詳細</string>
@@ -666,7 +708,6 @@
<string name="text_floating_button">フローティングボタン</string>
<string name="text_force_stop">強制停止</string>
<string name="text_foreground_service">フォアグラウンドサービス</string>
<string name="text_foreground_service_description">フォアグラウンド・サービスは, ユーザーにとって目に付く操作を実行します.\nフォアグラウンド・サービスはステータス・バーに通知を表示し, アプリがフォアグラウンドでタスクを実行し, システム・リソースを消費していることをユーザーが積極的に認識できるようにします.\nこの通知は, サービスが停止されるか, フォアグラウンドから削除されない限り, 解除されません.\n通知を長押しすることで, 通知の優先度を低く設定したり, 通知をオフにしたりすることができます</string>
<string name="text_formatting_completed">フォーマット完了</string>
<string name="text_function">関数</string>
<string name="text_fx_keyboard">Fx キーボード</string>
@@ -706,9 +747,11 @@
<string name="text_install_from_url">\"URL\" からインストール</string>
<string name="text_install_plugin_from_url">\"URL\" からプラグインをインストール</string>
<string name="text_installable">インストール可</string>
<string name="text_integrity_verification_failed">整合性の検証に失敗しました</string>
<string name="text_invalid_character_is_removed">無効な文字が削除されました</string>
<string name="text_invalid_package_name">パッケージ名が無効です</string>
<string name="text_invalid_project">プロジェクトが無効です</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP アドレス \"%1$s\" は特殊用途 (loopback/broadcast/multicast/reserved/...) のため, 接続先サーバーへの接続に使用できない可能性があります.</string>
<string name="text_is_latest_version">新しいバージョンが見つかりません</string>
<string name="text_issue_report">フィードバック</string>
<string name="text_js_file">*.js ファイル</string>
@@ -776,11 +819,13 @@
<string name="text_night_mode">夜間モード</string>
<string name="text_no_browser">ブラウザがインストールされていない</string>
<string name="text_no_content">内容なし</string>
<string name="text_no_content_description">コンテンツの説明がありません</string>
<string name="text_no_histories">履歴がない</string>
<string name="text_no_ignored_updates">無視された更新がない</string>
<string name="text_no_log_entries_to_copy">コピーするログ・エントリがありません</string>
<string name="text_no_log_entries_to_export">エクスポートするログ・エントリがありません</string>
<string name="text_no_log_entries_to_send">送信するログ・エントリがありません</string>
<string name="text_no_plugins_installed_hint">現在インストールされているプラグインはありません.\n\"+\" ボタンをタップしてプラグインをインストールしてください.</string>
<string name="text_no_root">非ルート</string>
<string name="text_no_root_access">ルートアクセス不可</string>
<string name="text_no_scripts_to_stop_running">実行を停止するスクリプトなし</string>
@@ -923,7 +968,6 @@
<string name="text_project">プロジェクト</string>
<string name="text_project_location">プロジェクトの場所</string>
<string name="text_project_media_access">プロジェクト・メディア・アクセス</string>
<string name="text_project_media_access_description">プロジェクトのメディアアクセス権を使用すると, 画面録画のセキュリティ警告が表示されなくなります</string>
<string name="text_prompt">プロンプト</string>
<string name="text_quit">終了</string>
<string name="text_recommended">推奨</string>
@@ -939,6 +983,7 @@
<string name="text_register">登録</string>
<string name="text_register_succeed">登録に成功した</string>
<string name="text_registering">登録中</string>
<string name="text_release_notes">リリースノート</string>
<string name="text_remote">リモート</string>
<string name="text_remote_file_saved_to_local_storage_successfully">リモート・ファイルがローカル・ストレージに正常に保存された</string>
<string name="text_remote_project_saved_to_local_storage_successfully">リモートプロジェクトがローカルストレージに正常に保存された</string>
@@ -957,6 +1002,9 @@
<string name="text_restart">再起動</string>
<string name="text_restart_strategy">再起動戦略</string>
<string name="text_result">結果</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">更新ログを取得しています...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">プラグイン一覧のデータを取得しています...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">リリースノートを取得しています...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">Shizuku アプリケーションで AutoJs6 権限を取り消す</string>
<string name="text_rhino_java_primitive_wrap">Java プリミティブ型のラップ</string>
<string name="text_root_mode_title">Root 権限の確認</string>
@@ -987,6 +1035,8 @@
<string name="text_save_and_exit">保存して終了</string>
<string name="text_save_simplified">保存</string>
<string name="text_save_to">保存先</string>
<string name="text_scheduled_restart_backend">エンジン</string>
<string name="text_scheduled_restart_start_delay">開始遅延</string>
<string name="text_script_record">スクリプトの記録</string>
<string name="text_script_running">スクリプトの実行</string>
<string name="text_search">検索</string>
@@ -1009,8 +1059,8 @@
<string name="text_set_as_working_dir">作業ディレクトリに設定する</string>
<string name="text_set_breakpoint">ブレークポイントの設定</string>
<string name="text_settings">設定</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 が一致しません.\n\n期待値: %1$s\n実際: %2$s</string>
<string name="text_shizuku_access">Shizuku のパーミッション</string>
<string name="text_shizuku_access_description">Shizuku を使用すると, ADB 権限を取得し, システム API にアクセスできるようになります</string>
<string name="text_shizuku_service_may_need_to_be_run_first">最初に Shizuku サービスを実行する必要があるかもしれない</string>
<string name="text_should_not_be_empty">「テキストを空にすることはできません</string>
<string name="text_show_layout_bounds">レイアウト境界内のビュー</string>
@@ -1065,6 +1115,10 @@
<string name="text_undo_simplified">戻る</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">不明</string>
<string name="text_unknown_author_for_plugin">不明な作者</string>
<string name="text_unknown_description_for_plugin">不明な説明</string>
<string name="text_unknown_title_for_plugin">不明なタイトル</string>
<string name="text_unknown_version_for_plugin">不明なバージョン</string>
<string name="text_unverified">未確認</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1073,7 +1127,6 @@
<string name="text_updates_snack_bar_act_later">後日</string>
<string name="text_updates_snack_bar_act_view">表示</string>
<string name="text_usage_stats_permission">使用統計へのアクセス</string>
<string name="text_usage_stats_permission_description">デバイスの使用履歴や統計情報にアクセスできるようになり, currentPackage()の結果がより正確になります</string>
<string name="text_use_android_n_shortcut">Android 7.0 のショートカットを使用</string>
<string name="text_use_default_icon">デフォルトのアイコンを使用する</string>
<string name="text_use_volume_control_record">\"Volume Down\" キーで録音を制御</string>
@@ -1108,38 +1161,6 @@
<string name="text_weekly_task_should_check_day_of_week">最低 1 日選択する必要があります</string>
<string name="text_working_dir_path">作業ディレクトリのパス</string>
<string name="text_write_secure_settings">セキュリティ設定の書き込み</string>
<string name="text_write_secure_settings_description">アプリケーションが読み取ることはできるが, 書き込むことはできないシステム環境設定を含む, 安全なシステム設定です.\nこれは, ユーザーがシステムアプリの UI を通じて明示的に変更する必要がある環境設定のためのものです.\nセキュアなシステム設定を許可すると, 通常のアプリケーションはセキュアな設定 (アクセシビリティサービスなど) を直接変更できるようになります</string>
<string name="text_write_system_settings">システム設定の書き込み</string>
<string name="text_integrity_verification_failed">整合性の検証に失敗しました</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 が一致しません.\n\n期待値: %1$s\n実際: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">現在のプラグインに利用可能な URL は提供されていません</string>
<string name="text_failed_to_update">更新に失敗しました</string>
<string name="text_confirm_to_uninstall">アンインストールしてもよろしいですか?</string>
<string name="dialog_button_exception_details">詳細</string>
<string name="error_failed_to_load_plugins_with_reason">プラグインの読み込みに失敗しました.\n理由: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">プラグイン一覧のデータを取得しています...</string>
<string name="text_no_plugins_installed_hint">現在インストールされているプラグインはありません.\n\"+\" ボタンをタップしてプラグインをインストールしてください.</string>
<string name="text_unknown_author_for_plugin">不明な作者</string>
<string name="text_unknown_description_for_plugin">不明な説明</string>
<string name="text_unknown_version_for_plugin">不明なバージョン</string>
<string name="text_unknown_title_for_plugin">不明なタイトル</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定された AutoJs6 のバージョン番号は 461 より大きくなければなりません</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 のバージョン番号は %1$s 未満であってはなりません</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 のバージョンは %1$s 未満であってはなりません</string>
<string name="dialog_button_view_update">更新を表示</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">現在表示している言語に対応する更新ログの取得に失敗しました. しばらくしてからもう一度お試しください. \n\n現在は一時的に \"簡体字中国語 (zh-Hans)\" のリリースノートを表示します.</string>
<string name="error_failed_to_retrieve_changelog">更新ログの取得に失敗しました</string>
<string name="error_failed_to_retrieve_release_notes">リリースノートの取得に失敗しました</string>
<string name="text_changelog">更新ログ</string>
<string name="text_release_notes">リリースノート</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">更新ログを取得しています...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">リリースノートを取得しています...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">エンジン</string>
<string name="text_scheduled_restart_start_delay">開始遅延</string>
<string name="dialog_button_advanced_settings">詳細</string>
<string name="error_failed_to_save_project_config">プロジェクト設定の保存に失敗しました</string>
<string name="text_connected">接続済み</string>
<string name="text_connected_count_with_colon">接続済み: %1$d</string>
</resources>

View File

@@ -58,6 +58,7 @@
<string name="content_description_fab_for_display_manifest">매니페스트를 표시하기 위한 플로팅 액션 버튼 위젯</string>
<string name="content_failed_to_determine_index_of_theme_color_item">테마 색상 아이템의 인덱스를 확인할 수 없습니다</string>
<string name="content_failed_to_locate_library_for_theme_color">테마 색상에 대한 색상 라이브러리를 찾을 수 없습니다</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">현재 표시 언어에 해당하는 변경 로그를 가져오지 못했습니다. 잠시 후 다시 시도해 주세요.\n\n현재는 임시로 \"중국어 간체 (zh-Hans)\" 릴리스 노트를 표시합니다.</string>
<string name="content_github_feedback">문제를보고하기 위해 웹 페이지가 시작됩니다.\nGitHub 에 대한 계정이 필요할 수 있습니다.</string>
<string name="content_way_of_output_for_recorded_script">재설계된 스크립트의 출력 방법 선택</string>
<string name="crash_feedback">디버깅 로그를 복사하거나 직접 종료하십시오</string>
@@ -69,47 +70,71 @@
<string name="default_value_working_directory">/스크립트</string>
<string name="description_about_app_and_developer_preference">AutoJs6 은 오픈 소스이며 \"hyb1996/Auto.js\" 에서 복제된 Android 용 JavaScript 자동화 도구입니다.\n\n도움이나 피드백을 요청하려면 GitHub 문제로 이동하거나 Tencent QQ 그룹 690946137 에 가입하세요.</string>
<string name="description_about_app_tips_preference">1. \"앱 및 개발자 정보\" 페이지에서 앱 아이콘을 길게 눌러 AutoJs6 개발자 옵션 페이지로 이동합니다.</string>
<string name="description_accessibility_service">접근성 서비스는 AutoJs6 가 자동화를 구현하는 핵심 기능입니다. 화면의 UI 컨트롤 정보를 읽고 [ 탭 / 스와이프 / 입력 ] 등의 상호작용을 시뮬레이션하는 데 사용됩니다.\n\n 자동화 관련 대부분의 기능과 레이아웃 분석 도구 등은 접근성 서비스를 활성화해야 정상적으로 동작합니다.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">\"모든 파일 관리\" (또는 \"모든 파일 접근\") 권한은 AutoJs6 가 공유 저장소에서 일반적인 파일 경로를 통해 직접 [ 생성 / 읽기 / 수정 / 삭제 ] 를 수행할 수 있게 하여, 스크립트가 \"Internal Storage\"에 접근할 수 있도록 하고 파일 관리자가 파일을 정상적으로 표시 및 관리할 수 있도록 합니다.\n\nAndroid 11+ 기기에서는 전체 저장소 파일 읽기/쓰기 기능을 구현하는 주요 방식입니다.</string>
<string name="description_app_language_preference">실행 스크립트의 예외 메시지를 포함하여 AutoJs6 의 디스플레이 언어를 변경하는이 선호도.\n\n참고: 예상대로 언어를 적용하려면 앱 재시작이 필요할 수 있습니다.</string>
<string name="description_auto_night_mode">자동 야간 모드를 켜면 AutoJs6 가 시스템 설정에 따라 자동으로 야간 모드를 전환합니다.\n\nNote: 자동 야간 모드 스위치와 야간 모드 스위치는 서로 연동되며 상호 영향을 줍니다.</string>
<string name="description_change_working_dir_preference">스크립트가 포함 된 디렉토리의 경로를 변경하십시오</string>
<string name="description_check_for_updates_preference">AutoJs6 은 GitHub 에서 업데이트를 가져오고 다운로드합니다.</string>
<string name="description_client_mode">클라이언트 모드는 AutoJs6 가 원격 서버에 능동적으로 연결하여 [ 스크립트 전송 / 로그 출력 / 원격 제어 ] 등을 수행할 수 있도록 합니다.\n\n 일반적으로 기기와 서버는 동일한 LAN 또는 서로 접근 가능한 네트워크 환경에 있어야 합니다.</string>
<string name="description_display_over_other_app">\"다른 앱 위에 표시\" 권한은 AutoJs6 가 다른 앱 화면 위에 플로팅 창 또는 플로팅 버튼을 표시할 수 있게 하여, 어떤 화면에서도 빠르게 작업을 실행하거나 정보를 확인할 수 있도록 합니다.\n\nNote: 이 권한이 부여되지 않으면 플로팅 창 및 플로팅 버튼이 표시되지 않거나 정상적으로 사용할 수 없을 수 있습니다.</string>
<string name="description_documentation_source_preference">로컬 문서: AutoJs6 내장 파일을 문서 소스로 사용, 네트워크 연결이 필요하지 않습니다. 내용은 AutoJs6 이 업데이트됨에 따라 변경됩니다.\n온라인 문서: GitHub 페이지를 문서 소스로 사용, 네트워크 연결 필요. 콘텐츠는 항상 최신 상태입니다.\n\n참고: 온라인 문서의 읽기 환경을 최대화하려면 데스크탑 모니터와 같은 와이드 스크린 디스플레이 장치를 사용하는 것이 좋습니다.\n참고: 버전 6.2.0 현재 문서는 아직 개발 초기 단계이며 대부분의 콘텐츠가 아직 작성되거나 업데이트되지 않았습니다.</string>
<string name="description_documentation_source_preference_more">문서 페이지에서 어두운 테마를 지원하려면 다음 조건이 충족되어야 합니다.\n1. AutoJs6 에는 야간 모드가 활성화되어 있습니다.\n2. Android 시스템 WebView (또는 Google Chrome 과 같은 브라우저):\n- Android API 레벨 29 (Android 10) [Q] 이상: 버전 >= 76\n- Android API 레벨 28 (Android 9) [P] 이하: 버전 >= 105</string>
<string name="description_extending_js_build_in_objects">JavaScript 내장 개체를 확장하면 코드 유연성이 향상되고 더 풍부한 기능을 사용할 수 있지만 충돌이 발생하고 파손될 수도 있습니다.\n옵션이 켜져 있을 때 모든 스크립트에는 기본적으로 활성화된 내장 확장이 있습니다.\n기본 제공 확장은 종종 안전하지 않으며 기본 제공 확장의 원칙과 위험을 명확하게 이해하지 않는 한 권장되지 않습니다.\n옵션이 꺼져 있어도 프로젝트 문서에 설명된 대로 플러그인 전역 개체를 통해 내장 확장을 계속 활성화할 수 있습니다.</string>
<string name="description_file_extensions_preference">AutoJs6 파일 탐색기에서 파일 확장자 표시 여부를 설정하는 데 사용됩니다.</string>
<string name="description_floating_button">플로팅 버튼은 화면 가장자리에 드래그 가능한 빠른 기능 진입점을 표시하며, [ 스크립트 시작/중지 / 레이아웃 분석 / 최근 패키지명 또는 액티비티명 보기 / 포인터 위치 표시 ] 등에 사용할 수 있습니다.\n\nNote: 이 기능은 일반적으로 \"다른 앱 위에 표시\" 권한이 필요합니다.</string>
<string name="description_foreground_service">포그라운드 서비스는 AutoJs6 가 백그라운드에서 더 안정적으로 실행되도록 유지하는 데 사용되며, [ 장시간 스크립트 실행 / 연결 유지 / 지속적 감시 ] 등의 시나리오에 적합합니다.\n\n 활성화하면 시스템은 AutoJs6 가 계속 실행 중임을 알리기 위해 \"포그라운드 서비스 알림\"을 표시합니다. 이 알림은 일반적으로 서비스가 중지될 때까지 표시됩니다.\n\n 알림을 \"Silent\" 또는 \"Minimize\"로 설정하면 알림 강도만 낮아지며, 일반적으로 포그라운드 서비스 기능에는 영향을 주지 않습니다.\n\n 알림 채널을 끄거나 AutoJs6 의 알림 전송을 금지하면 포그라운드 서비스의 정상적인 시작 및 안정성에 영향을 줄 수 있습니다.</string>
<string name="description_hidden_files_preference">AutoJs6 파일 탐색기에서 숨겨진 파일 및 폴더(보통 \".\" 로 시작)를 표시할지 여부를 설정하는 데 사용됩니다.</string>
<string name="description_ignore_battery_optimizations">배터리 최적화를 무시하면 시스템의 백그라운드 제한을 완화하여, 예약 작업이나 장시간 스크립트가 대기 상태에서도 비교적 더 안정적으로 실행되는 데 도움이 됩니다.\n\nNote: 제조사에 따라 자동 시작 제한이나 백그라운드 동결과 같은 추가 절전 정책이 있을 수 있습니다.</string>
<string name="description_keep_screen_on_when_in_foreground">AutoJs6 가 포그라운드에 있을 때 화면을 항상 켜둘지 여부를 제어합니다.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">AutoJs6 이 포그라운드에 있을 때 장치의 화면을 켜고 밝게 유지하기 위한 기본 설정입니다.\nAutoJs6 애플리케이션의 모든 페이지 중 홈페이지에서만 발생하도록 하려면 \"홈페이지만\" 옵션을 선택합니다.</string>
<string name="description_launcher_icon_preference">런처 아이콘은 어댑티브 아이콘과 기존 투명 배경 아이콘 두 가지 표시 모드를 지원합니다. 실제 표시 효과는 안드로이드 시스템별로 다를 수 있습니다. 표시 모드를 전환한 후 적용되기까지 몇 초가 걸릴 수 있습니다.</string>
<string name="description_launcher_shortcuts">바로가기는 AutoJs6 에서 특정 작업을 수행할 수 있습니다. 사용자는 지원되는 런처에 이러한 바로가기를 표시하고 AutoJs6 애플리케이션 문서 읽기, AutoJs6 설정 페이지 실행 등과 같은 일부 작업을 빠르게 시작하거나 활동을 실행할 수 있습니다.</string>
<string name="description_manage_ignored_updates_preference">목록 항목을 보거나 관리하려면 클릭하세요.\n목록 항목을 제거하려면 길게 누릅니다.</string>
<string name="description_night_mode">AutoJs6 의 야간 모드 전략을 제어하고 그 상태를 반영합니다.\n\nNote: 야간 모드 스위치와 자동 야간 모드 스위치는 서로 연동되며 상호 영향을 줍니다.</string>
<string name="description_night_mode_preference">야간 모드 (다크 테마라고도 함) 는 Android 시스템 UI 와 장치에서 실행되는 앱 모두에 적용되어 저시력 사용자와 밝은 빛에 민감한 사용자의 가시성을 향상시키고 누구나 쉽게 장치를 사용할 수 있습니다. 저조도 환경에서.\n\n시스템 따르기: AutoJs6 에는 Android 시스템과 동일한 야간 모드 설정이 있습니다.\n항상 켜짐: AutoJs6 은 Android 시스템 설정에 관계없이 야간 모드를 유지합니다.\n항상 끄기: AutoJs6 은 야간 모드를 끈 상태로 유지합니다(Android 시스템 설정에 관계없이).\n\n참고: 팔로우 시스템 옵션은 Android API 레벨 28 (Android 9) [P] 이상에만 적용됩니다.</string>
<string name="description_night_mode_preference_more">Android 시스템에서 야간 모드를 활성화하려면:\n- Android API 레벨 29 (Android 10) [Q] 이상: 설정 -> 디스플레이 -> 테마.\n- Android API 레벨 28 (Android 9) [P]: 개발자 옵션 -> 야간 모드.\n\nWebView 구성 요소(예: AutoJs6 설명서 페이지)를 사용하여 웹 기반 콘텐츠에 야간 모드 (어두운 테마) 를 적용하려면 다음 조건을 충족해야 합니다.\n1. Android 시스템 WebView (또는 Google Chrome 과 같은 브라우저):\n- Android API 레벨 29 (Android 10) [Q] 이상: 버전 >= 76\n- Android API 레벨 28 (Android 9) [P]: 버전 >= 105\n2. WebView 구성 요소의 웹 기반 콘텐츠는 Dark 테마에 맞게 조정됩니다 (CSS 또는 Android XML 리소스 등).</string>
<string name="description_notification_access">\"알림 접근\" (또는 \"알림 읽기 권한\") 은 AutoJs6 가 시스템 알림 내용을 읽을 수 있게 하여, 스크립트가 알림을 감지하거나 알림 텍스트를 가져올 수 있도록 합니다.</string>
<string name="description_post_notifications">\"알림 전송\" 권한은 AutoJs6 가 시스템에 알림을 게시할 수 있게 하여, 스크립트가 알림 영역에서 사용자 지정 알림을 게시하고 관리할 수 있도록 합니다.\n\nNote: Android 13+ 기기에서 이 권한이 부여되지 않으면 일부 알림이 표시되지 않을 수 있으며, 포그라운드 서비스의 시작 및 안정성에 영향을 줄 수 있습니다.</string>
<string name="description_project_media_access">프로젝트 미디어 액세스를 사용하면 화면 기록에 대한 보안 경고가 중요하지 않습니다.</string>
<string name="description_restart_strategy">재시작 전략은 홈 페이지 드로어의 재시작 버튼에만 적용됩니다.\n\n빠른 재시작: 앱을 빠르게 다시 시작합니다. 재시작이 실패하거나 예기치 않은 상황이 발생하면 \"예약 재시작\"으로 전환해 보세요.\n예약 재시작: 미리 짧은 시간의 예약 작업을 설정합니다. 앱이 중지된 후 예약에 따라 다시 시작하여 앱 재시작을 수행합니다.</string>
<string name="description_rhino_java_primitive_wrap">스위치 활성화(기본값): Java 메서드가 반환하는 Number/Boolean/Character 값은 Java 객체로 래핑되어 스크립트에 노출됩니다(String 제외). typeof 는 \"object\", species 는 \"JavaObject\"이며, Java 메서드 호출이 가능해 Java의 정밀한 타입 특성과 오버로드 해석을 보존하는 데 도움이 됩니다.\n\n스위치 비활성화: 위 타입들을 더 이상 래핑하지 않고 JavaScript 원시 값(number/boolean/한 글자 문자열)으로 직접 노출합니다. typeof 는 해당 JavaScript 타입이 되며, JavaScript의 의미론/생태계에 더 가깝습니다. 필요 시 new 키워드로 Java 래퍼를 명시적으로 생성할 수 있습니다(예: new java.lang.Boolean(true)).\n\n참고: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">뿌리 접근을 위해 이국적인 뿌리 또는 비정상 상태가있는 경우 루트를 루트 또는 뿌리가 아닌 것으로 강제로 설정할 수 있습니다.</string>
<string name="description_root_record_out_file_type_preference">바이너리 유형: 편집 불가능, 파일 확장자는 \"auto\"\nJavaScript 유형: 파일 확장자가 \"js\"인 경우 직접 편집하거나 복사할 수 있습니다.</string>
<string name="description_server_mode">서버 모드는 AutoJs6 가 현재 기기에서 서비스를 실행하고 외부 클라이언트 연결을 대기하여 [ 스크립트 전송 / 로그 출력 / 원격 제어 ] 등을 수행할 수 있도록 합니다.\n\nAutoJs6 서버 모드는 두 가지 연결 방식을 지원합니다:\n1. LAN\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">Shizuku 를 사용하면 ADB 권한과 시스템 API 에 대한 액세스 권한을 얻을 수 있습니다</string>
<string name="description_stable_mode">안정 모드는 레이아웃 경계를 얻을 때 더 안정적이지만 일부 결과는 무시할 수 있습니다.\n접근성 서비스의 재시작이 필요합니다.</string>
<string name="description_theme_color_preference">테마 색상은 다음을 포함하되 이에 국한되지 않는 위젯에 적용됩니다.\n상태 표시 줄\n앱바\n파일 아이콘\n작업 항목 아이콘\n팹\n설정 카테고리 제목\n스위치 버튼\n\n참고: AutoJs6 버전 6.2.0 현재 기본 색상, 기본 어두운 색상 및 강조 색상 사이에는 아직 차이가 없습니다.</string>
<string name="description_timed_task_backend">스크립트를 정해진 시간에 실행하는 기본 메커니즘을 제어합니다.\n\nAlarmManager: 시스템의 \"알람 및 알림 설정 허용\" 권한을 부여하면 보다 정확한 시각에 가깝게 실행됩니다.\nWorkManager: 시스템 친화적이며, 일정 지연을 허용할 수 있는 비중요 작업에 적합합니다.\nJobScheduler: 호환성 유지를 위해 남겨둔 구방식으로, 지연 발생 가능성이 큽니다.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">사용 시나리오 및 차이점:\n\n1. AlarmManager\n[리마인더/엄격한 정시 스크립트/...] 등 시간 정확도가 중요한 작업에 적합합니다.\nAndroid 12+ 에서 \"알람 및 알림 설정 허용\" 권한이 있으면, 화면 꺼짐/대기 중에도 비교적 정확하게 실행됩니다.\n 권한이 없으면 시스템이 정확도를 낮추거나 실행을 지연할 수 있습니다.\n\n2. WorkManager\n[비중요 동기화/정리/통계/...] 등 엄격한 정시성이 필요 없는 작업에 적합합니다.\n[배터리/네트워크/충전 상태/대기 정책/...] 에 따라 스케줄링되며, 화면 꺼짐/대기 중에는 지연될 수 있습니다.\n 시간 정확도는 보장되지 않지만, [신뢰성 있는 완료/실패 재시도/체이닝/단일 작업 중복 방지] 에 장점이 있습니다.\n\n3. JobScheduler\n 호환성 유지를 위한 기존 구현입니다.\n 신형 Android 에서는 지연이 더 커질 수 있습니다.\n 특별한 호환성 목적이 아니라면 일반적으로 권장하지 않습니다.</string>
<string name="description_usage_stats_access">장치 사용 기록 및 통계에 대한 액세스를 제공하여 CurrentPackage ()보다 정확한 결과를 초래합니다.</string>
<string name="description_version_histories_preference">GitHub 에서 AutoJs6 릴리스 버전의 변경 기록과 주요 분류 통계 데이터를 확인하기.</string>
<string name="description_write_secure_settings">애플리케이션이 읽을 수 있지만 쓸 수없는 시스템 환경 설정을 포함하는 보안 시스템 설정.\n이들은 사용자가 시스템 앱의 UI 를 통해 명시 적으로 수정 해야하는 선호도입니다.\n보안 시스템 설정 권한을 사용하면 일반 애플리케이션이 보안 설정 (예: 접근성 서비스)을 직접 수정할 수 있습니다.</string>
<string name="description_write_system_settings">\"시스템 설정 수정\" 권한은 AutoJs6 가 일부 시스템 설정을 변경할 수 있게 하여, 스크립트가 [ 화면 밝기 / 자동 회전 / 화면 시간 제한 ] 등의 설정을 변경할 수 있도록 합니다.</string>
<string name="dialog_button_advanced_settings">고급</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">취소</string>
<string name="dialog_button_cancel_download">취소</string>
<string name="dialog_button_clear_items">지우기</string>
<string name="dialog_button_confirm">확인</string>
<string name="dialog_button_connect">연결</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">기본 접두사</string>
<string name="dialog_button_details">세부</string>
<string name="dialog_button_dismiss">닫기</string>
<string name="dialog_button_download_with_browser">브라우저</string>
<string name="dialog_button_exception_details">자세히</string>
<string name="dialog_button_file_information">파일 정보</string>
<string name="dialog_button_history">역사</string>
<string name="dialog_button_ignore_current_update">무시하다</string>
<string name="dialog_button_join_group">그룹 가입</string>
<string name="dialog_button_manager">관리자</string>
<string name="dialog_button_more"></string>
<string name="dialog_button_open_color_palette">팔레트 열기</string>
<string name="dialog_button_quit">그만두다</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">제거하다</string>
<string name="dialog_button_retrieve">가져오기</string>
<string name="dialog_button_retry">다시 해 보다</string>
@@ -122,6 +147,8 @@
<string name="dialog_button_version_histories">변경내역</string>
<string name="dialog_button_view_file">파일 보기</string>
<string name="dialog_button_view_shortcuts">바로가기 보기</string>
<string name="dialog_button_view_update">업데이트 보기</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">색상 세부정보</string>
<string name="dialog_title_color_palette">색상 팔레트</string>
<string name="dialog_title_theme_color_details">테마 색상 세부정보</string>
@@ -171,6 +198,8 @@
<string name="error_arguments_cannot_be_empty">인수를 비울 수 없습니다</string>
<string name="error_arguments_must_be_empty">인수는 비어 있어야 합니다</string>
<string name="error_at_least_one_abi_needs_to_be_selected">하나 이상의 ABI 를 선택해야 합니다.</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 버전은 %1$s보다 낮아서는 안 됩니다</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 버전 번호는 %1$s보다 낮아서는 안 됩니다</string>
<string name="error_both_bitmap_and_mat_are_null">비트 맵과 매트는 모두 null 입니다</string>
<string name="error_cannot_be_null">%s 는 null 이 될 수 없다</string>
<string name="error_cannot_connect_to_github">GitHub 에 연결할 수 없습니다</string>
@@ -205,11 +234,17 @@
<string name="error_failed_to_grant_shizuku_access">Shizuku 권한을 부여하지 못했습니다</string>
<string name="error_failed_to_instantiate">\"%s\" 인스턴스 생성에 실패했습니다</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[인스턴스 생성 \"%1$s\" 에 실패했습니다: [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">관리자를 실행하지 못했습니다</string>
<string name="error_failed_to_launch_system_settings">시스템 설정을 실행하지 못했습니다</string>
<string name="error_failed_to_load_plugins_with_reason">플러그인을 불러오지 못했습니다.\n사유: %1$s.</string>
<string name="error_failed_to_render_content">콘텐츠 렌더링에 실패했습니다</string>
<string name="error_failed_to_retrieve_changelog">변경 로그를 가져오지 못했습니다</string>
<string name="error_failed_to_retrieve_release_notes">릴리스 노트를 가져오지 못했습니다</string>
<string name="error_failed_to_retrieve_version_histories">버전 기록을 가져올 수 없습니다</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">version.properties 를 가져올 수 없어 버전 정보를 분석할 수 없습니다</string>
<string name="error_failed_to_revoke_shizuku_access">Shizuku 권한 해지에 실패했습니다</string>
<string name="error_failed_to_run_script">스크립트 실행 실패</string>
<string name="error_failed_to_save_project_config">프로젝트 설정을 저장하지 못했습니다</string>
<string name="error_file_in_path_does_not_exist">경로 \"%1$s\" 에 파일이 존재하지 않습니다</string>
<string name="error_function_called_in_ui_thread">UI 스레드는 차단할 수 없습니다. 하위 스레드 또는 하위 스크립트에서 %s() 를 실행하십시오</string>
<string name="error_function_called_more_than_once">%s() 가 두 번 이상 호출됩니다</string>
@@ -246,6 +281,7 @@
<string name="error_no_applications_available_for_playing_this_file">이 파일을 재생할 수 있는 앱이 없습니다</string>
<string name="error_no_applications_available_for_sending_this_file">이 파일을 전송할 수 있는 앱이 없습니다</string>
<string name="error_no_applications_available_for_viewing_this_file">이 파일을 볼 수 있는 앱이 없습니다</string>
<string name="error_no_available_url_provided_for_current_plugin">현재 플러그인에 사용 가능한 URL 이 제공되지 않았습니다</string>
<string name="error_no_display_over_other_apps_permission">\"다른 앱 위에 표시\"권한이 없습니다</string>
<string name="error_no_permission_to_access_shizuku">Shizuku 에 액세스할 수 있는 권한이 없습니다</string>
<string name="error_no_post_notifications_permission">\"게시물 알림\" 권한 없음</string>
@@ -274,6 +310,7 @@
<string name="error_shizuku_is_not_installed">Shizuku 가 설치되지 않았습니다</string>
<string name="error_shizuku_service_may_be_not_running">Shizuku 서비스가 실행되고 있지 않을 수 있습니다</string>
<string name="error_shizuku_version_is_not_supported">지원되지 않는 Shizuku 버전</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">지정된 AutoJs6 버전 번호는 461보다 커야 합니다</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">필수 속성 \"%1$s\" 에 대한 변환기는 null 값을 반환할 수 없습니다</string>
<string name="error_thread_is_not_alive">스레드는 살아 있지 않습니다</string>
<string name="error_unable_to_use_shizuku_service">Shizuku 서비스를 사용할 수 없음</string>
@@ -484,6 +521,7 @@
<string name="text_captured_window_info_type_unknown">알 수 없음</string>
<string name="text_category_filter">카테고리 필터</string>
<string name="text_change_working_dir">작업 디렉토리를 변경하십시오</string>
<string name="text_changelog">변경 로그</string>
<string name="text_changelog_item_dependency">일부 의존성 또는 로컬 라이브러리 버전 조정</string>
<string name="text_check_for_updates">업데이트 확인</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">업데이트 확인 (로컬 버전 무시)</string>
@@ -521,7 +559,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">다음 기록들이 삭제됩니다\n\n[ 모든 색상 라이브러리 ]\n\n정말 삭제하시겠습니까?</string>
<string name="text_confirm_to_delete">삭제 하시겠습니까?</string>
<string name="text_confirm_to_remove">제거 하시겠습니까?</string>
<string name="text_confirm_to_uninstall">정말 제거하시겠습니까?</string>
<string name="text_connect_to_pc">PC 에 연결하십시오</string>
<string name="text_connected">연결됨</string>
<string name="text_connected_count_with_colon">연결됨: %1$d</string>
<string name="text_connection_cannot_be_established">연결을 설정할 수 없습니다</string>
<string name="text_console">콘솔</string>
<string name="text_continue">계속하다</string>
@@ -643,6 +684,7 @@
<string name="text_failed_to_retrieve">가져오기 실패</string>
<string name="text_failed_to_save_remote_project_to_local_storage">원격 프로젝트를 로컬 저장소에 저장하지 못했습니다</string>
<string name="text_failed_to_send_log_entries">로그 항목을 보내지 못했습니다</string>
<string name="text_failed_to_update">업데이트 실패</string>
<string name="text_failed_to_write_file">파일을 쓰지 못했습니다</string>
<string name="text_file">파일</string>
<string name="text_file_details">파일 세부정보</string>
@@ -667,7 +709,6 @@
<string name="text_floating_button">플로팅 버튼</string>
<string name="text_force_stop">강제 정지</string>
<string name="text_foreground_service">전경 서비스</string>
<string name="text_foreground_service_description">전경 서비스는 사용자가 눈에 띄는 작업을 수행합니다.\n전경 서비스에는 상태 표시 줄 알림이 표시되므로 사용자는 앱이 전경에서 작업을 수행하고 시스템 리소스를 소비하고 있음을 적극적으로 알고 있습니다.\n서비스가 전경에서 중지되거나 제거되지 않으면 통지를 해제 할 수 없습니다.\n장기 압축 알림으로 알림이 우선 순위가 낮고 꺼질 수 있습니다.</string>
<string name="text_formatting_completed">포맷 완료</string>
<string name="text_function">기능</string>
<string name="text_fx_keyboard">Fx 건반</string>
@@ -707,9 +748,11 @@
<string name="text_install_from_url">\"URL\"에서 설치</string>
<string name="text_install_plugin_from_url">\"URL\"에서 플러그인 설치</string>
<string name="text_installable">설치 가능</string>
<string name="text_integrity_verification_failed">무결성 검증에 실패했습니다</string>
<string name="text_invalid_character_is_removed">잘못된 문자가 제거되었습니다</string>
<string name="text_invalid_package_name">잘못된 패키지 이름</string>
<string name="text_invalid_project">잘못된 프로젝트</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP 주소 \"%1$s\" 는 특수 용도 (loopback/broadcast/multicast/reserved/...) 를 가지므로, 대상 서버에 연결하는 데 사용할 수 없을 수도 있습니다.</string>
<string name="text_is_latest_version">새로운 버전이 발견되지 않았습니다</string>
<string name="text_issue_report">피드백</string>
<string name="text_js_file">*.js 파일</string>
@@ -777,11 +820,13 @@
<string name="text_night_mode">야간 모드</string>
<string name="text_no_browser">브라우저가 설치되지 않았습니다</string>
<string name="text_no_content">내용 없음</string>
<string name="text_no_content_description">콘텐츠 설명 없음</string>
<string name="text_no_histories">역사가 없습니다</string>
<string name="text_no_ignored_updates">무시되지 않았습니다</string>
<string name="text_no_log_entries_to_copy">복사할 로그 항목이 없습니다</string>
<string name="text_no_log_entries_to_export">내보낼 로그 항목이 없습니다</string>
<string name="text_no_log_entries_to_send">보낼 로그 항목이 없습니다</string>
<string name="text_no_plugins_installed_hint">현재 설치된 플러그인이 없습니다.\n\"+\" 버튼을 눌러 플러그인을 설치하세요.</string>
<string name="text_no_root">뿌리가 아닌</string>
<string name="text_no_root_access">루트 액세스가 없습니다</string>
<string name="text_no_scripts_to_stop_running">실행을 멈출 스크립트가 없습니다</string>
@@ -924,7 +969,6 @@
<string name="text_project">프로젝트</string>
<string name="text_project_location">프로젝트 위치</string>
<string name="text_project_media_access">프로젝트 미디어 액세스</string>
<string name="text_project_media_access_description">프로젝트 미디어 액세스를 사용하면 화면 기록에 대한 보안 경고가 중요하지 않습니다.</string>
<string name="text_prompt">즉각적인</string>
<string name="text_quit">그만두다</string>
<string name="text_recommended">권장</string>
@@ -940,6 +984,7 @@
<string name="text_register">등록하다</string>
<string name="text_register_succeed">등록이 성공했습니다</string>
<string name="text_registering">등록</string>
<string name="text_release_notes">릴리스 노트</string>
<string name="text_remote">원격</string>
<string name="text_remote_file_saved_to_local_storage_successfully">원격 파일이 로컬 저장소에 성공적으로 저장됨</string>
<string name="text_remote_project_saved_to_local_storage_successfully">원격 프로젝트가 로컬 저장소에 성공적으로 저장되었습니다</string>
@@ -958,6 +1003,9 @@
<string name="text_restart">재시작</string>
<string name="text_restart_strategy">재시작 전략</string>
<string name="text_result">결과</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">변경 로그를 가져오는 중...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">플러그인 목록 데이터를 가져오는 중입니다...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">릴리스 노트를 가져오는 중...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">Shizuku 애플리케이션에서 AutoJs6 권한 취소하기</string>
<string name="text_rhino_java_primitive_wrap">Java 원시 타입 래핑</string>
<string name="text_root_mode_title">루트 권한 확인</string>
@@ -988,6 +1036,8 @@
<string name="text_save_and_exit">저장하고 종료</string>
<string name="text_save_simplified">구하다</string>
<string name="text_save_to">저장</string>
<string name="text_scheduled_restart_backend">엔진</string>
<string name="text_scheduled_restart_start_delay">시작 지연</string>
<string name="text_script_record">스크립트 녹음</string>
<string name="text_script_running">스크립트 실행</string>
<string name="text_search">검색</string>
@@ -1010,8 +1060,8 @@
<string name="text_set_as_working_dir">작업 디렉토리로</string>
<string name="text_set_breakpoint">중단 점을 설정하십시오</string>
<string name="text_settings">설정</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 값이 일치하지 않습니다.\n\n예상: %1$s\n실제: %2$s</string>
<string name="text_shizuku_access">Shizuku 권한</string>
<string name="text_shizuku_access_description">Shizuku 를 사용하면 ADB 권한과 시스템 API 에 대한 액세스 권한을 얻을 수 있습니다</string>
<string name="text_shizuku_service_may_need_to_be_run_first">먼저 Shizuku 서비스를 실행해야 할 수 있습니다</string>
<string name="text_should_not_be_empty">텍스트는 비어질 수 없다</string>
<string name="text_show_layout_bounds">레이아웃 경계보기</string>
@@ -1066,6 +1116,10 @@
<string name="text_undo_simplified"></string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">알 수 없음</string>
<string name="text_unknown_author_for_plugin">알 수 없는 작성자</string>
<string name="text_unknown_description_for_plugin">알 수 없는 설명</string>
<string name="text_unknown_title_for_plugin">알 수 없는 제목</string>
<string name="text_unknown_version_for_plugin">알 수 없는 버전</string>
<string name="text_unverified">미확인</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1074,7 +1128,6 @@
<string name="text_updates_snack_bar_act_later">나중</string>
<string name="text_updates_snack_bar_act_view">보다</string>
<string name="text_usage_stats_permission">사용 통계 액세스</string>
<string name="text_usage_stats_permission_description">장치 사용 기록 및 통계에 대한 액세스를 제공하여 CurrentPackage ()보다 정확한 결과를 초래합니다.</string>
<string name="text_use_android_n_shortcut">Android 7.0 바로 가기를 사용하십시오</string>
<string name="text_use_default_icon">기본 아이콘 사용</string>
<string name="text_use_volume_control_record">레코드를 제어하려면 볼륨 다운 키를 사용하십시오</string>
@@ -1109,38 +1162,6 @@
<string name="text_weekly_task_should_check_day_of_week">최소한 하루를 선택해야합니다</string>
<string name="text_working_dir_path">작업 디렉토리 경로</string>
<string name="text_write_secure_settings">보안 설정을 작성하십시오</string>
<string name="text_write_secure_settings_description">애플리케이션이 읽을 수 있지만 쓸 수없는 시스템 환경 설정을 포함하는 보안 시스템 설정.\n이들은 사용자가 시스템 앱의 UI 를 통해 명시 적으로 수정 해야하는 선호도입니다.\n보안 시스템 설정 권한을 사용하면 일반 애플리케이션이 보안 설정 (예: 접근성 서비스)을 직접 수정할 수 있습니다.</string>
<string name="text_write_system_settings">시스템 설정을 작성하십시오</string>
<string name="text_integrity_verification_failed">무결성 검증에 실패했습니다</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 값이 일치하지 않습니다.\n\n예상: %1$s\n실제: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">현재 플러그인에 사용 가능한 URL 이 제공되지 않았습니다</string>
<string name="text_failed_to_update">업데이트 실패</string>
<string name="text_confirm_to_uninstall">정말 제거하시겠습니까?</string>
<string name="dialog_button_exception_details">자세히</string>
<string name="error_failed_to_load_plugins_with_reason">플러그인을 불러오지 못했습니다.\n사유: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">플러그인 목록 데이터를 가져오는 중입니다...</string>
<string name="text_no_plugins_installed_hint">현재 설치된 플러그인이 없습니다.\n\"+\" 버튼을 눌러 플러그인을 설치하세요.</string>
<string name="text_unknown_author_for_plugin">알 수 없는 작성자</string>
<string name="text_unknown_description_for_plugin">알 수 없는 설명</string>
<string name="text_unknown_version_for_plugin">알 수 없는 버전</string>
<string name="text_unknown_title_for_plugin">알 수 없는 제목</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">지정된 AutoJs6 버전 번호는 461보다 커야 합니다</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 버전 번호는 %1$s보다 낮아서는 안 됩니다</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 버전은 %1$s보다 낮아서는 안 됩니다</string>
<string name="dialog_button_view_update">업데이트 보기</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">현재 표시 언어에 해당하는 변경 로그를 가져오지 못했습니다. 잠시 후 다시 시도해 주세요.\n\n현재는 임시로 \"중국어 간체 (zh-Hans)\" 릴리스 노트를 표시합니다.</string>
<string name="error_failed_to_retrieve_changelog">변경 로그를 가져오지 못했습니다</string>
<string name="error_failed_to_retrieve_release_notes">릴리스 노트를 가져오지 못했습니다</string>
<string name="text_changelog">변경 로그</string>
<string name="text_release_notes">릴리스 노트</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">변경 로그를 가져오는 중...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">릴리스 노트를 가져오는 중...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">엔진</string>
<string name="text_scheduled_restart_start_delay">시작 지연</string>
<string name="dialog_button_advanced_settings">고급</string>
<string name="error_failed_to_save_project_config">프로젝트 설정을 저장하지 못했습니다</string>
<string name="text_connected">연결됨</string>
<string name="text_connected_count_with_colon">연결됨: %1$d</string>
</resources>

View File

@@ -27,12 +27,13 @@
<color name="layout_hierarchy_view_level_beam_5">@color/md_lime_500</color>
<color name="dialog_button_advanced_settings">@color/md_blue_gray_300</color>
<color name="dialog_button_advanced_settings">@color/md_blue_gray_200</color>
<color name="dialog_button_default">#03A9F4</color>
<color name="dialog_button_caution">#E57373</color>
<color name="dialog_button_warn">#F57C00</color>
<color name="dialog_button_attraction">#C7A4FF</color>
<color name="dialog_button_hint">#0DA798</color>
<color name="dialog_button_manager">@color/md_deep_purple_100</color>
<color name="dialog_button_reset">#BCAAA4</color>
<color name="dialog_button_not_recommended">#BCAAA4</color>
<color name="dialog_button_unavailable">@color/md_gray_700</color>
@@ -60,6 +61,7 @@
<color name="drawer_menu_group_text_color">#808080</color>
<color name="drawer_menu_item_text_color">#9A9A9A</color>
<color name="drawer_menu_group_divider_color">#323232</color>
<color name="tab_indicator">#80202020</color>
<color name="tab_text">#A0202020</color>

View File

@@ -56,6 +56,7 @@
<string name="content_description_fab_for_display_manifest">Плавающая кнопка действий для отображения манифеста</string>
<string name="content_failed_to_determine_index_of_theme_color_item">Не удалось определить индекс элемента цвета темы</string>
<string name="content_failed_to_locate_library_for_theme_color">Не удалось найти цветовую библиотеку для темы</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Не удалось получить список изменений для текущего отображаемого языка. Попробуйте снова позже.\n\nПока что временно будут показаны примечания к выпуску на \"упрощённом китайском (zh-Hans)\".</string>
<string name="content_github_feedback">Для сообщения о проблеме будет открыта веб-страница.\nМожет потребоваться учетная запись на GitHub.</string>
<string name="content_way_of_output_for_recorded_script">Выберите способ вывода для переработанных сценариев</string>
<string name="crash_feedback">Скопируйте журнал отладки или выйдите напрямую</string>
@@ -67,47 +68,71 @@
<string name="default_value_working_directory">/Сценарии</string>
<string name="description_about_app_and_developer_preference">AutoJs6 - это автоматизированный инструмент JavaScript для android, который является открытым исходным кодом и клонирован из \"hyb1996/Auto.js\".\n\nЧтобы попросить о помощи или обратной связи, посетите GitHub issues или присоединитесь к группе Tencent QQ 690946137.</string>
<string name="description_about_app_tips_preference">1. Нажмите и удерживайте значок приложения на странице \"О приложении и разработчике\", чтобы перейти на страницу параметров разработчика AutoJs6.</string>
<string name="description_accessibility_service">Служба доступности — ключевая возможность AutoJs6 для автоматизации. Она используется для чтения информации об элементах интерфейса на экране и для имитации взаимодействий, таких как [ нажатие / свайп / ввод ].\n\nБольшинство функций, связанных с автоматизацией, а также инструменты вроде анализа макета, требуют включения службы доступности для корректной работы.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">Разрешение \"управление всеми файлами\" (или \"доступ ко всем файлам\") позволяет AutoJs6 напрямую [ создавать / читать / изменять / удалять ] файлы в общем хранилище через обычные пути файлов, чтобы скрипты могли получать доступ к \"Internal Storage\", а файловый менеджер мог корректно отображать и управлять файлами.\n\nНа устройствах Android 11+ это основной способ обеспечить полный доступ к чтению/записи файлов.</string>
<string name="description_app_language_preference">Это предпочтение для изменения языка отображения AutoJs6, включая сообщения исключений от запущенных скриптов.\n\nПримечание: может потребоваться перезапуск приложения, чтобы язык был применен так, как ожидается.</string>
<string name="description_auto_night_mode">После включения автоматического ночного режима AutoJs6 будет автоматически переключать ночной режим в соответствии с настройками системы.\n\nNote: переключатель автоматического ночного режима и переключатель ночного режима связаны и взаимно влияют друг на друга.</string>
<string name="description_change_working_dir_preference">Измените путь к директории, содержащей скрипты</string>
<string name="description_check_for_updates_preference">AutoJs6 получает и загружает обновления с GitHub.</string>
<string name="description_client_mode">Клиентский режим позволяет AutoJs6 активно подключаться к удалённому серверу для выполнения [ передачи скриптов / вывода логов / удалённого управления ].\n\nОбычно устройство и сервер должны находиться в одной локальной сети (LAN) или в сетевой среде, где они могут обращаться друг к другу.</string>
<string name="description_display_over_other_app">Разрешение \"показ поверх других приложений\" позволяет AutoJs6 отображать плавающие окна или плавающую кнопку поверх интерфейса других приложений, чтобы быстро выполнять действия или просматривать информацию на любом экране.\n\nNote: если разрешение не выдано, плавающие окна и плавающая кнопка могут не отображаться или работать некорректно.</string>
<string name="description_documentation_source_preference">Локальная документация: Использование встроенных файлов AutoJs6 в качестве источников документации, подключение к сети не требуется. Содержание меняется по мере обновления AutoJs6.\nОнлайн-документы: Использование страниц GitHub в качестве источников документации, требуется подключение к сети. Содержимое всегда обновляется.\n\nПримечание: Чтобы максимально улучшить качество чтения онлайн-документов, рекомендуется использовать широкоформатное устройство отображения, например настольный монитор.\nПримечание: Начиная с версии 6.2.0, документация находится на предварительной стадии разработки, и большая часть содержимого еще не была написана или обновлена.</string>
<string name="description_documentation_source_preference_more">Для поддержки темной темы на страницах документов должны быть выполнены следующие условия:\n1. В AutoJs6 включен ночной режим\n2. Android System WebView (или браузеры типа Google Chrome):\n- Android API Level 29 (Android 10) [Q] и выше: версия >= 76\n- Android API Level 28 (Android 9) [P] и ниже: версия >= 105</string>
<string name="description_extending_js_build_in_objects">Расширение встроенных объектов JavaScript может повысить гибкость кода и обеспечить более богатую функциональность, но может привести к конфликтам и даже поломкам.\nВсе сценарии имеют встроенные расширения, включенные по умолчанию, когда опция включена.\nВстроенные расширения часто небезопасны, и их не рекомендуется использовать, пока принципы и риски встроенных расширений не будут четко поняты.\nКогда опция выключена, встроенные расширения все еще можно включить через глобальный объект plugins, как описано в документации проекта.</string>
<string name="description_file_extensions_preference">Используется для настройки отображения расширений файлов в файловом менеджере AutoJs6.</string>
<string name="description_floating_button">Плавающая кнопка показывает перетаскиваемую точку быстрого доступа у края экрана и может использоваться для [ запуска или остановки скриптов / анализа макета / просмотра последнего имени пакета или имени Activity / отображения положения указателя ].\n\nNote: для этой функции обычно требуется разрешение \"показ поверх других приложений\".</string>
<string name="description_foreground_service">Служба на переднем плане используется для более стабильного удержания AutoJs6 в работе в фоне и подходит для сценариев [ длительное выполнение скриптов / поддержание соединения / непрерывное прослушивание ].\n\nПосле включения система покажет \"уведомление службы на переднем плане\", чтобы сообщить пользователю, что AutoJs6 продолжает работать. Обычно это уведомление остаётся видимым до остановки службы.\n\nУстановка уведомления в режим \"Silent\" или \"Minimize\" лишь снижает заметность и, как правило, не влияет на работу службы на переднем плане.\n\nЕсли отключить канал уведомлений или запретить AutoJs6 отправлять уведомления, это может повлиять на нормальный запуск и стабильность службы на переднем плане.</string>
<string name="description_hidden_files_preference">Используется для установки того, показывать или нет скрытые файлы и папки (обычно начинающиеся с \".\") в файловом проводнике AutoJs6.</string>
<string name="description_ignore_battery_optimizations">Игнорирование оптимизации батареи может снизить фоновые ограничения системы для AutoJs6, что помогает запланированным задачам или длительным скриптам работать относительно стабильнее в режиме ожидания.\n\nNote: системы разных производителей могут применять дополнительные политики энергосбережения, например ограничения автозапуска или заморозку в фоне.</string>
<string name="description_keep_screen_on_when_in_foreground">Позволяет управлять тем, следует ли удерживать экран включённым, когда AutoJs6 находится на переднем плане.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">Предпочтение для сохранения экрана устройства включенным и ярким, когда AutoJs6 находится на переднем плане.\nЧтобы это происходило только на главной странице среди всех страниц приложения AutoJs6, выберите опцию \"Только главная страница\".</string>
<string name="description_launcher_icon_preference">Значок запуска поддерживает режимы отображения адаптивного значка или наследуемого значка с прозрачным фоном. Фактический вид может различаться на разных версиях Android. После переключения режима отображения может пройти несколько секунд, прежде чем изменения вступят в силу.</string>
<string name="description_launcher_shortcuts">Ярлыки позволяют выполнять определенные действия в AutoJs6. Пользователи могут отображать эти ярлыки в поддерживаемой программе запуска и быстро запускать некоторые задачи или действия, например, читать документацию по приложению AutoJs6, запускать страницу настроек AutoJs6 и т.д.</string>
<string name="description_manage_ignored_updates_preference">Нажмите для просмотра или управления элементами списка.\nДлинное нажатие для удаления элемента списка.</string>
<string name="description_night_mode">Позволяет управлять и отражать стратегию ночного режима AutoJs6.\n\nNote: переключатель ночного режима и переключатель автоматического ночного режима связаны и взаимно влияют друг на друга.</string>
<string name="description_night_mode_preference">Ночной режим (также известный как темная тема) применяется как к системному пользовательскому интерфейсу Android, так и к приложениям, запущенным на устройстве, что улучшает видимость для пользователей со слабым зрением и тех, кто чувствителен к яркому свету, а также облегчает любому человеку использование устройства в условиях недостаточной освещенности.\n\nСистема слежения: AutoJs6 имеет настройки ночного режима, такие же, как и система Android\nВсегда включен: AutoJs6 держит Ночной режим включенным (независимо от настроек системы Android)\nВсегда выключен: AutoJs6 отключает ночной режим (независимо от настроек системы Android)\n\nПримечание: Опция \"Следовать за системой\" доступна только для Android API Level 28 (Android 9) [P] и выше.</string>
<string name="description_night_mode_preference_more">Чтобы включить Ночной режим в системе Android:\n- Android API Level 29 (Android 10) [Q] и выше: Настройки -> Дисплей -> Тема.\n- Android API Уровень 28 (Android 9) [P]: Параметры разработчика -> Ночной режим.\n\nДля применения ночного режима (темной темы) к веб-контенту с помощью компонента WebView (например, страницы документации AutoJs6) должны быть выполнены следующие условия:\n1. Android System WebView (или браузеры типа Google Chrome):\n- Android API Level 29 (Android 10) [Q] и выше: версия >= 76\n- Android API Level 28 (Android 9) [P]: версия >= 105\n2. Веб-содержимое в компоненте WebView адаптировано к теме Dark (с помощью CSS или ресурсов Android XML и т.д.).</string>
<string name="description_notification_access">Разрешение \"доступ к уведомлениям\" (или \"разрешение на чтение уведомлений\") позволяет AutoJs6 читать содержимое системных уведомлений, чтобы скрипты могли отслеживать уведомления или получать их текст и т. п.</string>
<string name="description_post_notifications">Разрешение \"отправка уведомлений\" позволяет AutoJs6 публиковать уведомления в системе, чтобы скрипты могли создавать и управлять пользовательскими уведомлениями в шторке уведомлений.\n\nNote: на устройствах Android 13+ без этого разрешения некоторые уведомления могут не отображаться, а также это может повлиять на запуск и стабильность служб на переднем плане.</string>
<string name="description_project_media_access">При наличии доступа к медиафайлам проекта предупреждение о безопасности при записи экрана не выдается.</string>
<string name="description_restart_strategy">Стратегия перезагрузки влияет только на кнопку перезапуска в выдвижном меню главной страницы.\n\nБыстрая перезагрузка: быстро перезапускает приложение. Если перезапуск не удался или возникли непредвиденные ситуации, попробуйте переключиться на \"Запланированную перезагрузку\".\nЗапланированная перезагрузка: заранее настраивает краткосрочную задачу. После остановки приложение будет запущено по расписанию для выполнения перезапуска.</string>
<string name="description_rhino_java_primitive_wrap">Переключатель включён (по умолчанию): значения, возвращаемые методами Java типов Number/Boolean/Character, оборачиваются в объекты Java и доступны в скрипте (String исключается). typeof = \"object\", species = \"JavaObject\"; доступны методы Java, что помогает сохранять точные типовые характеристики Java и корректную резолюцию перегрузок.\n\nПереключатель выключен: перечисленные типы больше не оборачиваются и передаются напрямую как примитивы JavaScript (number/boolean/строка из одного символа). typeof соответствует соответствующему типу JavaScript, что ближе к семантике/экосистеме JavaScript. При необходимости можно явно создать Javaобёртку через new, например new java.lang.Boolean(true).\n\nСм.: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">Если у вас есть экзотический root или аномальное состояние для root-доступа, вы можете принудительно установить root на root или non-root.</string>
<string name="description_root_record_out_file_type_preference">Бинарный тип: не редактируемый, с расширением файла \"auto\"\nТип JavaScript: может быть отредактирован или скопирован напрямую, с расширением файла \"js\".</string>
<string name="description_server_mode">Серверный режим позволяет AutoJs6 запускать службу на текущем устройстве и ожидать подключения внешних клиентов для выполнения [ передачи скриптов / вывода логов / удалённого управления ].\n\nСерверный режим AutoJs6 поддерживает два способа подключения:\n1. Локальная сеть (LAN)\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">Shizuku позволяет получить привилегии ADB и доступ к системным API.</string>
<string name="description_stable_mode">Стабильный режим повышает стабильность при получении границ макета, но некоторые результаты могут быть проигнорированы.\nТребуется перезапуск службы доступности.</string>
<string name="description_theme_color_preference">Цвет темы применяется к виджетам, включая следующие, но не ограничиваясь ими:\nСтрока состояния\nПанель приложений\nЗначок файла\nЗначок элемента задачи\nFAB\nЗаголовок каталога настроек\nКнопка переключения\n\nПримечание: Начиная с версии AutoJs6 6.2.0, пока не существует различий между основным цветом, основным темным цветом и цветом акцента.</string>
<string name="description_timed_task_backend">Управляет базовым механизмом по расписанию запуска скриптов.\n\nAlarmManager: При выдаче разрешения "Разрешить настройку будильников и напоминаний" задачи выполняются более точно по времени.\nWorkManager: Дружелюбен к системе; подходит для некритичных задач, допускающих задержку.\nJobScheduler: Устаревшая реализация, сохранена для совместимости; вероятность задержек выше.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">Сценарии и отличия:\n\n1. AlarmManager\nПодходит для задач, чувствительных к точности времени, например [напоминания/строго по расписанию/...].\nВ Android 12+ при наличии разрешения "Разрешить настройку будильников и напоминаний" задачи запускаются более точно даже при выключенном экране/в ожидании.\nБез него система может понизить точность или отложить выполнение.\n\n2. WorkManager\nПодходит для задач без строгих требований к времени, например [некритичная синхронизация/очистка/статистика/...].\nПланирование учитывает [батарею/сеть/зарядку/политику сна/...], возможны задержки при выключенном экране или в ожидании.\nХотя точность не гарантируется, он силён в [надёжном завершении/повторных попытках/цепочках/дедупликации работ].\n\n3. JobScheduler\nИсторическая реализация для совместимости.\nНа новых версиях Android возможны более существенные задержки.\nНе рекомендуется, если это не необходимо ради совместимости.</string>
<string name="description_usage_stats_access">Предоставляет доступ к истории использования устройства и статистике, что позволяет получить более точный результат в функции currentPackage()</string>
<string name="description_version_histories_preference">Просмотреть историю выпусков AutoJs6 на GitHub и статистику по основным категориям.</string>
<string name="description_write_secure_settings">Настройки безопасности системы, содержащие системные предпочтения, которые приложения могут читать, но не имеют права записывать.\nОни предназначены для параметров, которые пользователь должен явно изменить через пользовательский интерфейс системного приложения.\nПри наличии разрешения на безопасные системные настройки обычные приложения могут напрямую изменять безопасные настройки (например, служба доступности).</string>
<string name="description_write_system_settings">Разрешение \"изменение системных настроек\" позволяет AutoJs6 изменять некоторые параметры системы, чтобы скрипты могли менять такие настройки, как [ яркость экрана / автоповорот / тайм-аут экрана ].</string>
<string name="dialog_button_advanced_settings">Доп.</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">Отменить</string>
<string name="dialog_button_cancel_download">Отменить</string>
<string name="dialog_button_clear_items">Очистить</string>
<string name="dialog_button_confirm">OK</string>
<string name="dialog_button_connect">Подключиться</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">Префикс деф.</string>
<string name="dialog_button_details">Подробности</string>
<string name="dialog_button_dismiss">Удалить</string>
<string name="dialog_button_download_with_browser">Браузер</string>
<string name="dialog_button_exception_details">Детали</string>
<string name="dialog_button_file_information">Информация о файле</string>
<string name="dialog_button_history">История</string>
<string name="dialog_button_ignore_current_update">Игнорировать</string>
<string name="dialog_button_join_group">Вступить группу</string>
<string name="dialog_button_manager">Менеджер</string>
<string name="dialog_button_more">Еще</string>
<string name="dialog_button_open_color_palette">Открыть палитру</string>
<string name="dialog_button_quit">Выйти</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">Удалить</string>
<string name="dialog_button_retrieve">Получить</string>
<string name="dialog_button_retry">Повторная попытка</string>
@@ -120,6 +145,8 @@
<string name="dialog_button_version_histories">История</string>
<string name="dialog_button_view_file">Просмотр файла</string>
<string name="dialog_button_view_shortcuts">Просмотреть ярлыки</string>
<string name="dialog_button_view_update">Просмотреть обновление</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">Детали цвета</string>
<string name="dialog_title_color_palette">Цветовая палитра</string>
<string name="dialog_title_theme_color_details">Детали цвета темы</string>
@@ -169,6 +196,8 @@
<string name="error_arguments_cannot_be_empty">Аргументы не могут быть пустыми</string>
<string name="error_arguments_must_be_empty">Аргументы должны быть пустыми</string>
<string name="error_at_least_one_abi_needs_to_be_selected">Необходимо выбрать хотя бы один ПВБ</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">Версия AutoJs6 не должна быть ниже %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">Номер версии AutoJs6 не должен быть ниже %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">И bitmap, и mat являются нулевыми</string>
<string name="error_cannot_be_null">%s не может быть null</string>
<string name="error_cannot_connect_to_github">Не удается подключиться к GitHub</string>
@@ -203,11 +232,17 @@
<string name="error_failed_to_grant_shizuku_access">Не удалось предоставить права на использование Shizuku</string>
<string name="error_failed_to_instantiate">Ошибка создания экземпляра \"%s\"</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[Ошибка создания экземпляра \"%1$s\": [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">Не удалось запустить менеджер</string>
<string name="error_failed_to_launch_system_settings">Не удалось открыть системные настройки</string>
<string name="error_failed_to_load_plugins_with_reason">Не удалось загрузить плагины.\nПричина: %1$s.</string>
<string name="error_failed_to_render_content">Не удалось отобразить содержимое</string>
<string name="error_failed_to_retrieve_changelog">Не удалось получить список изменений</string>
<string name="error_failed_to_retrieve_release_notes">Не удалось получить примечания к выпуску</string>
<string name="error_failed_to_retrieve_version_histories">Не удалось получить историю версий</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">Не удалось получить файл version.properties для анализа информации о версии</string>
<string name="error_failed_to_revoke_shizuku_access">Не удалось отозвать права на Shizuku</string>
<string name="error_failed_to_run_script">Ошибка выполнения скрипта</string>
<string name="error_failed_to_save_project_config">Не удалось сохранить конфигурацию проекта</string>
<string name="error_file_in_path_does_not_exist">Файл в пути \"%1$s\" не существует</string>
<string name="error_function_called_in_ui_thread">Поток пользовательского интерфейса не может быть заблокирован. Попробуйте запустить %s() в подпотоке или подскрипте</string>
<string name="error_function_called_more_than_once">%s() вызывается более одного раза</string>
@@ -244,6 +279,7 @@
<string name="error_no_applications_available_for_playing_this_file">Нет приложений для воспроизведения этого файла</string>
<string name="error_no_applications_available_for_sending_this_file">Нет приложений для отправки этого файла</string>
<string name="error_no_applications_available_for_viewing_this_file">Нет приложений для просмотра этого файла</string>
<string name="error_no_available_url_provided_for_current_plugin">Для текущего плагина не указан доступный URL-адрес</string>
<string name="error_no_display_over_other_apps_permission">Нет разрешения \"отображать поверх других приложений\"</string>
<string name="error_no_permission_to_access_shizuku">Нет разрешения на доступ к Shizuku</string>
<string name="error_no_post_notifications_permission">Нет разрешения на \"уведомления о сообщениях\"</string>
@@ -272,6 +308,7 @@
<string name="error_shizuku_is_not_installed">Shizuku не установлен</string>
<string name="error_shizuku_service_may_be_not_running">Служба Shizuku может быть не запущена</string>
<string name="error_shizuku_version_is_not_supported">Версия Shizuku не поддерживается</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Указанный номер версии AutoJs6 должен быть больше 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">Преобразователь для требуемого свойства \"%1$s\" не может возвращать пустое значение</string>
<string name="error_thread_is_not_alive">Нить не жива</string>
<string name="error_unable_to_use_shizuku_service">Невозможно использовать службу Shizuku</string>
@@ -482,6 +519,7 @@
<string name="text_captured_window_info_type_unknown">Неизвестный тип</string>
<string name="text_category_filter">Фильтр категории</string>
<string name="text_change_working_dir">Изменить рабочий каталог</string>
<string name="text_changelog">Список изменений</string>
<string name="text_changelog_item_dependency">Изменения версий некоторых зависимостей или локальных библиотек</string>
<string name="text_check_for_updates">Проверка наличия обновлений</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">Проверить обновления (игнорировать локальную версию)</string>
@@ -519,7 +557,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">Будут очищены следующие элементы истории\n\n[ Все цветовые библиотеки ]\n\nВы уверены, что хотите их очистить?</string>
<string name="text_confirm_to_delete">Вы уверены, что хотите удалить?</string>
<string name="text_confirm_to_remove">Вы уверены, что хотите удалить?</string>
<string name="text_confirm_to_uninstall">Вы действительно хотите удалить?</string>
<string name="text_connect_to_pc">Подключитесь к ПК</string>
<string name="text_connected">Подключено</string>
<string name="text_connected_count_with_colon">Подключено: %1$d</string>
<string name="text_connection_cannot_be_established">Соединение не может быть установлено</string>
<string name="text_console">Консоль</string>
<string name="text_continue">Продолжить</string>
@@ -641,6 +682,7 @@
<string name="text_failed_to_retrieve">Не удалось получить</string>
<string name="text_failed_to_save_remote_project_to_local_storage">Не удалось сохранить удаленный проект в локальное хранилище</string>
<string name="text_failed_to_send_log_entries">Не удалось отправить записи журнала</string>
<string name="text_failed_to_update">Не удалось обновить</string>
<string name="text_failed_to_write_file">Не удалось записать файл</string>
<string name="text_file">Файл</string>
<string name="text_file_details">Сведения о файле</string>
@@ -665,7 +707,6 @@
<string name="text_floating_button">Плавающая кнопка</string>
<string name="text_force_stop">Принудительная остановка</string>
<string name="text_foreground_service">Служба переднего плана</string>
<string name="text_foreground_service_description">Службы переднего плана выполняют операции, заметные для пользователя.\nПередние службы отображают уведомление в строке состояния, чтобы пользователи были в курсе, что ваше приложение выполняет задачу на переднем плане и потребляет системные ресурсы.\nУведомление не может быть отменено, пока служба не будет остановлена или удалена с переднего плана.\nУведомление можно установить на низкий приоритет и даже отключить, долго нажимая на него.</string>
<string name="text_formatting_completed">Форматирование завершено</string>
<string name="text_function">Функция</string>
<string name="text_fx_keyboard">Fx клавиатура</string>
@@ -705,9 +746,11 @@
<string name="text_install_from_url">Установить из \"URL\"</string>
<string name="text_install_plugin_from_url">Установить плагин из \"URL\"</string>
<string name="text_installable">Устанавливаемый</string>
<string name="text_integrity_verification_failed">Сбой проверки целостности</string>
<string name="text_invalid_character_is_removed">Недопустимый символ удален</string>
<string name="text_invalid_package_name">Неверное имя пакета</string>
<string name="text_invalid_project">Неверный проект</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP-адрес \"%1$s\" имеет специальное назначение (loopback/broadcast/multicast/reserved/...), поэтому он может быть непригоден для подключения к целевому серверу.</string>
<string name="text_is_latest_version">Более новая версия не найдена</string>
<string name="text_issue_report">Обратная связь</string>
<string name="text_js_file">*.js файл</string>
@@ -775,11 +818,13 @@
<string name="text_night_mode">Ночной режим</string>
<string name="text_no_browser">Не установлен браузер</string>
<string name="text_no_content">Нет содержимого</string>
<string name="text_no_content_description">Нет описания содержимого</string>
<string name="text_no_histories">Нет истории</string>
<string name="text_no_ignored_updates">Нет проигнорированных обновлений</string>
<string name="text_no_log_entries_to_copy">Нет записей журнала для копирования</string>
<string name="text_no_log_entries_to_export">Нет записей журнала для экспорта</string>
<string name="text_no_log_entries_to_send">Нет записей журнала для отправки</string>
<string name="text_no_plugins_installed_hint">В настоящее время плагины не установлены.\nНажмите кнопку \"+\" чтобы установить плагины.</string>
<string name="text_no_root">Не root</string>
<string name="text_no_root_access">Нет root-доступа</string>
<string name="text_no_scripts_to_stop_running">Нет скриптов для остановки выполнения</string>
@@ -922,7 +967,6 @@
<string name="text_project">Проект</string>
<string name="text_project_location">Расположение проекта</string>
<string name="text_project_media_access">Доступ к носителям проекта</string>
<string name="text_project_media_access_description">При наличии доступа к медиафайлам проекта предупреждение о безопасности при записи экрана не выдается.</string>
<string name="text_prompt">Запрос</string>
<string name="text_quit">Выйти</string>
<string name="text_recommended">Рекомендуемый</string>
@@ -938,6 +982,7 @@
<string name="text_register">Регистрировать</string>
<string name="text_register_succeed">Регистрация прошла успешно</string>
<string name="text_registering">Регистрация</string>
<string name="text_release_notes">Примечания к выпуску</string>
<string name="text_remote">удаленный</string>
<string name="text_remote_file_saved_to_local_storage_successfully">Удаленный файл успешно сохранен в локальном хранилище</string>
<string name="text_remote_project_saved_to_local_storage_successfully">Удаленный проект успешно сохранен в локальном хранилище</string>
@@ -956,6 +1001,9 @@
<string name="text_restart">Перезапустить</string>
<string name="text_restart_strategy">Стратегия перезагрузки</string>
<string name="text_result">Результат</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Получение списка изменений...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Получение данных списка плагинов...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Получение примечаний к выпуску...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">Отмена привилегий AutoJs6 в приложении Shizuku</string>
<string name="text_rhino_java_primitive_wrap">Обёртка примитивов Java</string>
<string name="text_root_mode_title">Проверка прав root</string>
@@ -986,6 +1034,8 @@
<string name="text_save_and_exit">Сохранить и выйти</string>
<string name="text_save_simplified">Сохран</string>
<string name="text_save_to">Сохранить в</string>
<string name="text_scheduled_restart_backend">Движок</string>
<string name="text_scheduled_restart_start_delay">Задержка старта</string>
<string name="text_script_record">Запись сценария</string>
<string name="text_script_running">Выполнение сценария</string>
<string name="text_search">Поиск</string>
@@ -1008,8 +1058,8 @@
<string name="text_set_as_working_dir">Как рабочий каталог</string>
<string name="text_set_breakpoint">Установить точку останова</string>
<string name="text_settings">Настройки</string>
<string name="text_sha256_mismatch_multiline_expected_actual">Несовпадение SHA-256.\n\nОжидалось: %1$s\nФактически: %2$s</string>
<string name="text_shizuku_access">Разрешения Shizuku</string>
<string name="text_shizuku_access_description">Shizuku позволяет получить привилегии ADB и доступ к системным API.</string>
<string name="text_shizuku_service_may_need_to_be_run_first">Возможно, сначала потребуется запустить службу Shizuku</string>
<string name="text_should_not_be_empty">Текст не может быть пустым</string>
<string name="text_show_layout_bounds">Вид в границах макета</string>
@@ -1064,6 +1114,10 @@
<string name="text_undo_simplified">Верни</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">Неизвестно</string>
<string name="text_unknown_author_for_plugin">Неизвестный Автор</string>
<string name="text_unknown_description_for_plugin">Неизвестное Описание</string>
<string name="text_unknown_title_for_plugin">Неизвестный Заголовок</string>
<string name="text_unknown_version_for_plugin">Неизвестная Версия</string>
<string name="text_unverified">Не подтверждено</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1072,7 +1126,6 @@
<string name="text_updates_snack_bar_act_later">Позже</string>
<string name="text_updates_snack_bar_act_view">Просмотр</string>
<string name="text_usage_stats_permission">Доступ к статистике использования</string>
<string name="text_usage_stats_permission_description">Предоставляет доступ к истории использования устройства и статистике, что позволяет получить более точный результат в функции currentPackage()</string>
<string name="text_use_android_n_shortcut">Использовать ярлык Android 7.0</string>
<string name="text_use_default_icon">Использовать значок по умолчанию</string>
<string name="text_use_volume_control_record">Используйте клавишу уменьшения громкости для управления записью</string>
@@ -1107,38 +1160,6 @@
<string name="text_weekly_task_should_check_day_of_week">Должен быть выбран хотя бы один день</string>
<string name="text_working_dir_path">Путь к рабочему каталогу</string>
<string name="text_write_secure_settings">Параметры безопасности записи</string>
<string name="text_write_secure_settings_description">Настройки безопасности системы, содержащие системные предпочтения, которые приложения могут читать, но не имеют права записывать.\nОни предназначены для параметров, которые пользователь должен явно изменить через пользовательский интерфейс системного приложения.\nПри наличии разрешения на безопасные системные настройки обычные приложения могут напрямую изменять безопасные настройки (например, служба доступности).</string>
<string name="text_write_system_settings">Запись системных настроек</string>
<string name="text_integrity_verification_failed">Сбой проверки целостности</string>
<string name="text_sha256_mismatch_multiline_expected_actual">Несовпадение SHA-256.\n\nОжидалось: %1$s\nФактически: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">Для текущего плагина не указан доступный URL-адрес</string>
<string name="text_failed_to_update">Не удалось обновить</string>
<string name="text_confirm_to_uninstall">Вы действительно хотите удалить?</string>
<string name="dialog_button_exception_details">Детали</string>
<string name="error_failed_to_load_plugins_with_reason">Не удалось загрузить плагины.\nПричина: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Получение данных списка плагинов...</string>
<string name="text_no_plugins_installed_hint">В настоящее время плагины не установлены.\nНажмите кнопку \"+\" чтобы установить плагины.</string>
<string name="text_unknown_author_for_plugin">Неизвестный Автор</string>
<string name="text_unknown_description_for_plugin">Неизвестное Описание</string>
<string name="text_unknown_version_for_plugin">Неизвестная Версия</string>
<string name="text_unknown_title_for_plugin">Неизвестный Заголовок</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Указанный номер версии AutoJs6 должен быть больше 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">Номер версии AutoJs6 не должен быть ниже %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">Версия AutoJs6 не должна быть ниже %1$s</string>
<string name="dialog_button_view_update">Просмотреть обновление</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Не удалось получить список изменений для текущего отображаемого языка. Попробуйте снова позже.\n\nПока что временно будут показаны примечания к выпуску на \"упрощённом китайском (zh-Hans)\".</string>
<string name="error_failed_to_retrieve_changelog">Не удалось получить список изменений</string>
<string name="error_failed_to_retrieve_release_notes">Не удалось получить примечания к выпуску</string>
<string name="text_changelog">Список изменений</string>
<string name="text_release_notes">Примечания к выпуску</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Получение списка изменений...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Получение примечаний к выпуску...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">Движок</string>
<string name="text_scheduled_restart_start_delay">Задержка старта</string>
<string name="dialog_button_advanced_settings">Доп.</string>
<string name="error_failed_to_save_project_config">Не удалось сохранить конфигурацию проекта</string>
<string name="text_connected">Подключено</string>
<string name="text_connected_count_with_colon">Подключено: %1$d</string>
</resources>

View File

@@ -55,6 +55,7 @@
<string name="content_description_fab_for_display_manifest">用於顯示清單內容的浮動操作按鈕控件</string>
<string name="content_failed_to_determine_index_of_theme_color_item">無法確定主題色條目的索引值</string>
<string name="content_failed_to_locate_library_for_theme_color">無法定位主題色所在顏色庫</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">獲取當前顯示語言對應的更新日誌失敗, 可稍後再次嘗試.\n\n目前將臨時顯示 \"簡體中文 (zh-Hans)\" 語言的發行説明.</string>
<string name="content_github_feedback">即將跳轉到項目議題反饋 WEB 頁面.\n可能需要 GitHub 賬户以完成問題反饋.</string>
<string name="content_way_of_output_for_recorded_script">選擇一個已錄製腳本的輸出方式</string>
<string name="crash_feedback">可複製調試信息到剪貼板或直接退出應用</string>
@@ -66,46 +67,70 @@
<string name="default_value_working_directory">/腳本</string>
<string name="description_about_app_and_developer_preference">AutoJs6 是 Android 平台支持無障礙服務的 JavaScript 自動化工具, 克隆 (clone) 自 \"hyb1996/Auto.js\" 且保持開源.\n\n如需獲取幫助或提交反饋, 可瀏覽項目的 GitHub 議題 (issues) 板塊, 或加入騰訊 (Tencent) QQ 羣組 690946137.</string>
<string name="description_about_app_tips_preference">1. 在 \"關於應用與開發者\" 頁面長按應用圖標可跳轉至 AutoJs6 開發者選項頁面</string>
<string name="description_accessibility_service">無障礙服務是 AutoJs6 實現自動化操作的核心能力, 用於讀取屏幕控件信息並模擬 [ 點擊 / 滑動 / 輸入 ] 等交互.\n\n自動化相關的大部分功能函數以及佈局分析工具等, 均需要啓用無障礙服務才能正常工作.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">\"管理所有文件\" (或 \"所有文件訪問\") 權限允許 AutoJs6 在共享存儲空間中通過常規文件路徑直接 [ 創建 / 讀取 / 修改 / 刪除 ] 文件, 使腳本可以訪問 \"內部存儲 (Internal Storage)\", 使文件管理器可以正常顯示及管理文件.\n\n在 Android 11+ 設備上, 這是實現全盤文件讀寫能力的主要方式.</string>
<string name="description_app_language_preference">設置選項用於修改 AutoJs6 應用的文本內容顯示語言, 同時包括腳本運行產生的錯誤消息等.\n\n注: 部分內容可能需要重啓應用才能完成語言切換.</string>
<string name="description_auto_night_mode">自動夜間模式開啓後, AutoJs6 將根據系統設置自動切換夜間模式.\n\注: 自動夜間模式開關與夜間模式開關互相關聯且互相影響.</string>
<string name="description_change_working_dir_preference">更改包含腳本的文件夾路徑</string>
<string name="description_check_for_updates_preference">AutoJs6 從 GitHub 獲取並下載更新.</string>
<string name="description_client_mode">客户端模式用於讓 AutoJs6 主動連接到遠端服務端, 以便進行 [ 腳本傳輸 / 打印日誌 / 遠程控制 ] 等.\n\n通常需要設備與服務端處於同一局域網或可互相訪問的網絡環境.</string>
<string name="description_display_over_other_app">\"顯示在其他應用上層\" 權限允許 AutoJs6 在其他應用界面之上展示懸浮窗或浮動按鈕, 以便在任意界面快速執行操作或查看信息.\n\n注: 未授予該權限時, 懸浮窗及浮動按鈕可能會無法顯示或正常使用.</string>
<string name="description_documentation_source_preference">本地文檔: AutoJs6 內置文件作為文檔來源, 無需網絡連接, 隨 AutoJs6 應用更新而發生內容變動.\n在線文檔: 使用 GitHub 網頁作為文檔來源, 需網絡連接, 可隨時保持文檔內容為最新.\n\n注: 為最大化在線文檔的閲讀體驗, 建議使用桌面顯示器等寬屏顯示設備閲讀.\n注: 截至 6.2.0 版本, 文檔尚處於初步編寫階段, 大部分內容尚未完成編寫或更新.</string>
<string name="description_documentation_source_preference_more">文檔頁面的深色主題支持需要滿足以下條件:\n1. AutoJs6 開啓夜間模式\n2. WebView (或 Google Chrome 等瀏覽器) 版本要求:\n- API 級別 29 (安卓 10) [Q] 及以上: 版本不低於 76\n- API 級別 28 (安卓 9) [P] 及以下: 版本不低於 105</string>
<string name="description_extending_js_build_in_objects">擴展 JavaScript 內置對象可以增加代碼靈活性並實現更豐富的功能, 但可能造成衝突甚至破壞.\n選項開啓後所有腳本均默認啓用內置擴展.\n內置擴展往往是不安全的, 除非明確瞭解內置擴展的原理及風險, 否則不建議啓用.\n選項關閉後, 仍然可以通過 plugins 全局對象啓用內置擴展, 詳見項目文檔.</string>
<string name="description_floating_button">浮動按鈕用於在屏幕邊緣顯示一個可拖動的快捷功能入口, 可用於 [ 啓動或停止腳本 / 佈局分析 / 查看最近包名或活動名稱 / 顯示指針位置 ] 等.\n\n注: 該功能通常需要授予 \"顯示在其他應用上層\" 權限.</string>
<string name="description_foreground_service">前台服務用於在後台更穩定地保持 AutoJs6 運行, 適合 [ 長時間執行腳本 / 保持連接 / 持續監聽 ] 等場景.\n\n啓用後, 系統會顯示一條 \"前台服務通知\" 用於告知用户 AutoJs6 正在持續運行, 該通知通常會保持顯示直到服務停止.\n\n將通知設置為 \"靜音 (Silent)\" 或 \"最小化 (Minimize)\" 只會降低提示強度, 一般不會影響前台服務功能.\n\n如果關閉通知渠道或禁止 AutoJs6 發送通知, 可能影響前台服務的正常啓動及穩定性.</string>
<string name="description_hidden_files_preference">用於設置是否在 AutoJs6 文件管理器中顯示隱藏文件和文件夾 (通常以 \".\" 開頭).</string>
<string name="description_ignore_battery_optimizations">忽略電池優化可降低系統對 AutoJs6 的後台限制, 有助於定時任務或長時間腳本在待機時相對更加穩定地運行.\n\n注: 不同廠商系統可能仍會有額外的省電策略, 如自啓動限制或後台凍結等.</string>
<string name="description_keep_screen_on_when_in_foreground">用於控制 AutoJs6 位於前台時是否保持屏幕常亮.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">用於當 AutoJs6 位於前台時使設備屏幕保持常亮.\n如需在 AutoJs6 應用的所有頁面中, 僅在主頁時保持設備屏幕常亮, 可選擇 \"僅限主頁\" 選項.</string>
<string name="description_launcher_icon_preference">啓動器圖標支持自適應圖標顯示方式與傳統透明背景圖標顯示方式. 不同安卓系統的圖標實際顯示效果可能有所不同. 切換顯示方式後, 可能需要幾秒鐘的時間生效.</string>
<string name="description_launcher_shortcuts">快捷方式可以在 AutoJs6 中執行特定操作, 用户可以在啓動器中顯示這些快捷方式, 並快速開始某些任務或啓動某個活動, 如閲讀 AutoJs6 應用文檔, 啓動 AutoJs6 設置頁面等.</string>
<string name="description_manage_ignored_updates_preference">點擊可查看或管理列表項.\n長按可移除列表項.</string>
<string name="description_night_mode">用於控制並反映 AutoJs6 夜間模式策略.\n\n注: 夜間模式開關與自動夜間模式開關互相關聯且互相影響.</string>
<string name="description_night_mode_preference">夜間模式, 亦稱 [ 暗黑模式 / 深色主題 ] 等.\n夜間模式應用於安卓系統 UI (如通知欄和導航欄) 及 AutoJs6 應用頁面.\n夜間模式可提升設備在低光環境下的易用性, 同時有助於提升弱視或光敏感用户的視覺體驗.\n\n跟隨系統: AutoJs6 與安卓操作系統的夜間模式設置一致\n總是開啓: AutoJs6 保持開啓夜間模式 (忽略操作系統設置)\n總是關閉: AutoJs6 保持關閉夜間模式 (忽略操作系統設置)\n\n注: 跟隨系統功能僅支持安卓 API 級別 28 (安卓 9) [P] 及以上操作系統.</string>
<string name="description_night_mode_preference_more">啓用安卓系統的夜間模式:\n- API 級別 29 (安卓 10) [Q] 及以上: 通過 [ 設置 -> 顯示 -> 主題 ] 開啓.\n- API 級別 28 (安卓 9) [P]: 通過 [ 開發者選項 -> 夜間模式 ] 開啓.\n\n對於基於 WebView 組件的內容 (如 AutoJs6 的文檔頁面), 夜間模式支持需要滿足以下條件:\n1. WebView (或 Google Chrome 等瀏覽器) 版本要求:\n- API 級別 29 (安卓 10) [Q] 及以上: 版本不低於 76\n- API 級別 28 (安卓 9) [P]: 版本不低於 105\n2. WebView 組件頁面內容可適配夜間模式 (通過 CSS 或 安卓 XML 資源等方式實現)</string>
<string name="description_notification_access">\"通知使用權\" (或 \"通知讀取權限\") 允許 AutoJs6 讀取系統通知內容, 使腳本可以監聽通知或獲取通知文本等.</string>
<string name="description_post_notifications">\"發送通知\" 權限允許 AutoJs6 向系統發佈通知, 使腳本可以在通知欄發佈並管理自定義通知等.\n\n注: 在 Android 13+ 設備上未授予該權限時, 部分通知可能無法顯示, 並可能影響前台服務的啓動與穩定性.</string>
<string name="description_project_media_access">被授予 \"投影媒體權限\" 後, 錄製屏幕的安全提示窗口將不再彈出.</string>
<string name="description_restart_strategy">重啓策略僅作用於主頁抽屜欄的重啓按鈕.\n\n快速重啓: 快速重啓應用, 如果重啓失敗或出現非預期情況, 可嘗試切換至 \"計劃重啓\".\n計劃重啓: 提前設置一個短時定時任務, 應用停止後會再次定時啓動, 以實現應用重啓.</string>
<string name="description_rhino_java_primitive_wrap">開關啓用 (默認): 將 Java 方法返回的 Number/Boolean/Character 包裝為 Java 對象暴露到腳本 (String 除外). typeof 為 \"object\", species 為 \"JavaObject\", 可訪問這些對象的 Java 方法, 利於保留 Java 精確類型特徵與方法重載行為.\n\n開關禁用: 不再包裝上述類型, 直接作為 JavaScript 基元值 (number/boolean/單字符字符串). typeof 為相應 JavaScript 類型, 更貼近 JavaScript 語義與生態. 但仍可通過 new 關鍵字顯式聲明一個 Java 包裝類型, 如 new java.lang.Boolean(true).\n\n參閲: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">如果設備使用非常規 Root 方式或 Root 權限檢測結果異常, 可設置 \"強制 Root 模式\" 或 \"強制非 Root 模式\".</string>
<string name="description_root_record_out_file_type_preference">二進制文件: 不可編輯, 文件擴展名為 \"auto\"\nJavaScript 文件: 可編輯或直接複製, 文件擴展名為 \"js\"</string>
<string name="description_server_mode">服務端模式用於讓 AutoJs6 在當前設備開啓服務並等待外部客户端連接, 以便進行 [ 腳本傳輸 / 打印日誌 / 遠程控制 ] 等.\n\nAutoJs6 服務端模式支持兩種連接方式:\n1. 局域網 (LAN)\n2. 安卓調試橋 (ADB)</string>
<string name="description_shizuku_access">通過 Shizuku 可以獲得 ADB 特權並使用系統 API</string>
<string name="description_stable_mode">穩定模式省略佈局細節, 腳本分析佈局時更穩定, 但可能影響獲取的控件總量.\n需重啓無障礙服務.</string>
<string name="description_theme_color_preference">主題色的應用範圍包括但不限於以下部件:\n系統通知欄\n應用欄 (AppBar)\n文件圖標\n任務項圖標\n浮動操作按鈕 (FAB)\n設置頁面類別標題\n按鈕開關\n\n注: 截至 6.2.0 版本, AutoJs6 主題色暫未對 [ 主要色 (Primary Color) / 主要暗色 (Primary Dark Color) / 強調色 (Accent Color) ] 作出區分.</string>
<string name="description_timed_task_backend">控制腳本定時觸發的底層機制.\n\nAlarmManager: 通過申請 \"允許設置鬧鐘和提醒\" 權限, 可使定時任務的觸發更接近準時.\nWorkManager: 系統友好, 適合可接受一定延遲的非關鍵定時任務.\nJobScheduler: 舊實現, 僅用作兼容保留, 定時任務出現延遲的概率較大.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">使用場景與差異説明: \n\n1. AlarmManager\n適用於準時性敏感的定時任務, 如 [提醒/嚴格定時腳本/...].\n在 Android 12+ 獲取 \"允許設置鬧鐘和提醒\" 權限後, 在息屏或待機狀態時能夠較準時地執行定時任務.\n在未授予 \"允許設置鬧鐘和提醒\" 權限時, 系統可能降級為不準時或延後執行任務.\n\n2. WorkManager\n適用於不要求嚴格準時執行的定時任務, 如 [非關鍵性同步/清理/統計/...].\n根據系統 [ 電量/網絡/充電情況/待機策略/... ] 進行調度, 息屏或待機狀態時可能推遲任務執行.\n雖無法保證時間精確性, 但在 [ 可靠完成/失敗重試/鏈式執行/唯一任務去重 ] 等方面擁有獨特優勢.\n\n3. Job\n歷史實現, 為兼容保留.\n在高版本安卓系統中定時任務可能存在較大的延遲執行問題.\n除非出於兼容需要, 一般不推薦使用.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">使用場景與差異説明: \n\n1. AlarmManager\n適用於準時性敏感的定時任務, 如 [提醒/嚴格定時腳本/...].\n在 Android 12+ 設備上獲取 \"允許設置鬧鐘和提醒\" 權限後, 在息屏或待機狀態時能夠較準時地執行定時任務.\n在未授予 \"允許設置鬧鐘和提醒\" 權限時, 系統可能降級為不準時或延後執行任務.\n\n2. WorkManager\n適用於不要求嚴格準時執行的定時任務, 如 [非關鍵性同步/清理/統計/...].\n根據系統 [ 電量/網絡/充電情況/待機策略/... ] 進行調度, 息屏或待機狀態時可能推遲任務執行.\n雖無法保證時間精確性, 但在 [ 可靠完成/失敗重試/鏈式執行/唯一任務去重 ] 等方面擁有獨特優勢.\n\n3. Job\n歷史實現, 為兼容保留.\n在高版本安卓系統中定時任務可能存在較大的延遲執行問題.\n除非出於兼容需要, 一般不推薦使用.</string>
<string name="description_usage_stats_access">\"查看使用情況\" 權限可獲取本設備過去使用應用的情況, 從而使 \"獲取當前應用\" (currentPackage) 結果更準確</string>
<string name="description_version_histories_preference">查看 AutoJs6 在 GitHub 發行版本的歷史更新記錄及重要分類的統計數據.</string>
<string name="description_write_secure_settings">安全設置包含應用程序可讀但不可寫入的設置選項, 這些選項只能由 UI 或系統級別應用修改.\n被授予 \"修改安全設置權限\" 後, 普通應用可直接修改上述安全設置 (例如無障礙服務).</string>
<string name="description_write_system_settings">\"修改系統設置\" 權限允許 AutoJs6 修改部分系統設置項, 使腳本可以修改 [ 屏幕亮度 / 自動旋轉 / 屏幕超時 ] 等系統設置參數.</string>
<string name="dialog_button_advanced_settings">高級設置</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">取消</string>
<string name="dialog_button_cancel_download">取消下載</string>
<string name="dialog_button_clear_items">清空記錄</string>
<string name="dialog_button_confirm">確定</string>
<string name="dialog_button_connect">連接</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">繼續連接</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">默認前綴</string>
<string name="dialog_button_details">瞭解更多</string>
<string name="dialog_button_dismiss">關閉</string>
<string name="dialog_button_download_with_browser">瀏覽器下載</string>
<string name="dialog_button_exception_details">異常詳情</string>
<string name="dialog_button_file_information">文件信息</string>
<string name="dialog_button_history">歷史記錄</string>
<string name="dialog_button_ignore_current_update">忽略此版本</string>
<string name="dialog_button_join_group">加入羣組</string>
<string name="dialog_button_manager">管理器</string>
<string name="dialog_button_more">瞭解更多</string>
<string name="dialog_button_open_color_palette">打開調色盤</string>
<string name="dialog_button_quit">放棄</string>
<string name="dialog_button_quit_connecting">放棄連接</string>
<string name="dialog_button_remove">移除</string>
<string name="dialog_button_retrieve">獲取</string>
<string name="dialog_button_retry">重試</string>
@@ -118,6 +143,8 @@
<string name="dialog_button_version_histories">版本歷史</string>
<string name="dialog_button_view_file">查看文件</string>
<string name="dialog_button_view_shortcuts">查看快捷方式</string>
<string name="dialog_button_view_update">查看更新</string>
<string name="dialog_button_view_with_browser">瀏覽器查看</string>
<string name="dialog_title_color_details">顏色詳情</string>
<string name="dialog_title_color_palette">調色盤</string>
<string name="dialog_title_theme_color_details">主題色詳情</string>
@@ -167,6 +194,8 @@
<string name="error_arguments_cannot_be_empty">參數列表不可為空</string>
<string name="error_arguments_must_be_empty">參數列表需為空</string>
<string name="error_at_least_one_abi_needs_to_be_selected">需要至少選擇一個 ABI</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 應用版本需不低於 %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 應用版本號需不低於 %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">Bitmap 與 Mat 不能同時為 null</string>
<string name="error_cannot_be_null">%s 不能為 null</string>
<string name="error_cannot_connect_to_github">無法連接到 GitHub</string>
@@ -201,11 +230,17 @@
<string name="error_failed_to_grant_shizuku_access">Shizuku 權限授予失敗</string>
<string name="error_failed_to_instantiate">實例 \"%s\" 創建失敗</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[實例 \"%1$s\" 創建失敗: [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">管理器啓動失敗</string>
<string name="error_failed_to_launch_system_settings">系統設置啓動失敗</string>
<string name="error_failed_to_load_plugins_with_reason">插件讀取失敗.\n原因: %1$s.</string>
<string name="error_failed_to_render_content">內容渲染失敗</string>
<string name="error_failed_to_retrieve_changelog">獲取更新日誌失敗</string>
<string name="error_failed_to_retrieve_release_notes">獲取發行説明失敗</string>
<string name="error_failed_to_retrieve_version_histories">獲取版本歷史失敗</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">獲取 version.properties 失敗, 無法解析版本信息</string>
<string name="error_failed_to_revoke_shizuku_access">Shizuku 權限撤銷失敗</string>
<string name="error_failed_to_run_script">腳本運行失敗</string>
<string name="error_failed_to_save_project_config">保存項目配置失敗</string>
<string name="error_file_in_path_does_not_exist">路徑 \"%1$s\" 對應文件不存在</string>
<string name="error_function_called_in_ui_thread">UI 線程內無法執行阻塞操作. 可嘗試在子線程或子腳本中執行 %s()</string>
<string name="error_function_called_more_than_once">%s() 調用不能超過一次</string>
@@ -242,6 +277,7 @@
<string name="error_no_applications_available_for_playing_this_file">未找到用於播放該文件的應用</string>
<string name="error_no_applications_available_for_sending_this_file">未找到用於發送該文件的應用</string>
<string name="error_no_applications_available_for_viewing_this_file">未找到用於查看該文件的應用</string>
<string name="error_no_available_url_provided_for_current_plugin">當前插件未提供可用的 URL</string>
<string name="error_no_display_over_other_apps_permission">缺少 \"顯示在其他應用上層\" 權限</string>
<string name="error_no_permission_to_access_shizuku">缺少 Shizuku 訪問權限</string>
<string name="error_no_post_notifications_permission">缺少 \"發佈通知\" 權限</string>
@@ -270,6 +306,7 @@
<string name="error_shizuku_is_not_installed">Shizuku 未安裝</string>
<string name="error_shizuku_service_may_be_not_running">Shizuku 服務可能未運行</string>
<string name="error_shizuku_version_is_not_supported">Shizuku 版本不支持</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定的 AutoJs6 應用版本號需大於 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">必需屬性 "%1$s" 的轉換器不能返回空值</string>
<string name="error_thread_is_not_alive">線程處於非活動狀態</string>
<string name="error_unable_to_use_shizuku_service">無法使用 Shizuku 服務</string>
@@ -480,6 +517,7 @@
<string name="text_captured_window_info_type_unknown">未知類型</string>
<string name="text_category_filter">類別篩選</string>
<string name="text_change_working_dir">更改工作路徑</string>
<string name="text_changelog">更新日誌</string>
<string name="text_changelog_item_dependency">部分依賴或本地庫版本調整</string>
<string name="text_check_for_updates">檢查更新</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">檢查更新 (忽略本地版本)</string>
@@ -517,7 +555,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">以下歷史記錄將被清空\n\n[ 全部顏色庫 ]\n\n是否確定清空</string>
<string name="text_confirm_to_delete">是否確定刪除</string>
<string name="text_confirm_to_remove">是否確定移除</string>
<string name="text_confirm_to_uninstall">是否確定卸載</string>
<string name="text_connect_to_pc">連接到計算機</string>
<string name="text_connected">已連接</string>
<string name="text_connected_count_with_colon">已連接: %1$d</string>
<string name="text_connection_cannot_be_established">無法建立連接</string>
<string name="text_console">控制枱</string>
<string name="text_continue">繼續</string>
@@ -639,6 +680,7 @@
<string name="text_failed_to_retrieve">獲取失敗</string>
<string name="text_failed_to_save_remote_project_to_local_storage">無法保存遠程項目至本地</string>
<string name="text_failed_to_send_log_entries">日誌條目發送失敗</string>
<string name="text_failed_to_update">更新失敗</string>
<string name="text_failed_to_write_file">文件寫入失敗</string>
<string name="text_file">文件</string>
<string name="text_file_details">文件詳情</string>
@@ -663,7 +705,6 @@
<string name="text_floating_button">浮動按鈕</string>
<string name="text_force_stop">強制停止</string>
<string name="text_foreground_service">前台服務</string>
<string name="text_foreground_service_description">前台服務執行一些用户能注意到的操作.\n前台服務必須顯示通知, 確保用户知道應用正在執行的任務.\n前台服務通知無法移除, 除非服務停止運行.\n可通過長按通知將通知優先級降低 (部分系統支持關閉前台服務通知), 以減少通知對用户的影響.</string>
<string name="text_formatting_completed">格式化已完成</string>
<string name="text_function">函數</string>
<string name="text_fx_keyboard">多功能鍵盤</string>
@@ -703,9 +744,11 @@
<string name="text_install_from_url">從 \"URL\" 安裝</string>
<string name="text_install_plugin_from_url">從 \"URL\" 安裝插件</string>
<string name="text_installable">可安裝</string>
<string name="text_integrity_verification_failed">完整性驗證失敗</string>
<string name="text_invalid_character_is_removed">無效字符已被移除</string>
<string name="text_invalid_package_name">無效包名</string>
<string name="text_invalid_project">無效項目</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP 地址 \"%1$s\" 具備特殊用途 (迴環/廣播/多播/保留/...), 因此可能無法用於連接目標服務器.</string>
<string name="text_is_latest_version">已是最新版本</string>
<string name="text_issue_report">問題反饋</string>
<string name="text_js_file">*.js 文件</string>
@@ -773,11 +816,13 @@
<string name="text_night_mode">夜間模式</string>
<string name="text_no_browser">未安裝瀏覽器應用</string>
<string name="text_no_content">無內容</string>
<string name="text_no_content_description">無內容描述</string>
<string name="text_no_histories">無歷史記錄</string>
<string name="text_no_ignored_updates">暫無已忽略更新</string>
<string name="text_no_log_entries_to_copy">無可複製的日誌條目</string>
<string name="text_no_log_entries_to_export">無可導出的日誌條目</string>
<string name="text_no_log_entries_to_send">無可發送的日誌條目</string>
<string name="text_no_plugins_installed_hint">當前沒有已安裝的插件.\n可點擊 \"+\" 按鈕安裝插件.</string>
<string name="text_no_root">免 root</string>
<string name="text_no_root_access">無 root 權限</string>
<string name="text_no_scripts_to_stop_running">無運行中的腳本</string>
@@ -920,7 +965,6 @@
<string name="text_project">項目</string>
<string name="text_project_location">項目位置</string>
<string name="text_project_media_access">投影媒體權限</string>
<string name="text_project_media_access_description">被授予 \"投影媒體權限\" 後, 錄製屏幕的安全提示窗口將不再彈出.</string>
<string name="text_prompt">提示</string>
<string name="text_quit">放棄</string>
<string name="text_recommended">推薦</string>
@@ -936,6 +980,7 @@
<string name="text_register">註冊</string>
<string name="text_register_succeed">註冊成功</string>
<string name="text_registering">註冊中</string>
<string name="text_release_notes">發行説明</string>
<string name="text_remote">遠程</string>
<string name="text_remote_file_saved_to_local_storage_successfully">遠程文件已保存至本地</string>
<string name="text_remote_project_saved_to_local_storage_successfully">遠程項目已保存至本地</string>
@@ -954,6 +999,9 @@
<string name="text_restart">重啓</string>
<string name="text_restart_strategy">重啓策略</string>
<string name="text_result">結果</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">正在獲取更新日誌...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">正在獲取插件列表數據...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">正在獲取發行説明...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">在 Shizuku 應用中撤銷 AutoJs6 權限</string>
<string name="text_rhino_java_primitive_wrap">Java 原始類型包裝</string>
<string name="text_root_mode_title">Root 權限檢查</string>
@@ -984,6 +1032,8 @@
<string name="text_save_and_exit">保存並退出</string>
<string name="text_save_simplified">保存</string>
<string name="text_save_to">保存到</string>
<string name="text_scheduled_restart_backend">調度引擎</string>
<string name="text_scheduled_restart_start_delay">啓動延遲</string>
<string name="text_script_record">錄製腳本</string>
<string name="text_script_running">腳本運行</string>
<string name="text_search">搜索</string>
@@ -1006,8 +1056,8 @@
<string name="text_set_as_working_dir">用作工作路徑</string>
<string name="text_set_breakpoint">設置斷點</string>
<string name="text_settings">設置</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 驗證不一致.\n\n期望值: %1$s\n實際值: %2$s</string>
<string name="text_shizuku_access">Shizuku 權限</string>
<string name="text_shizuku_access_description">通過 Shizuku 可以獲得 ADB 特權並使用系統 API</string>
<string name="text_shizuku_service_may_need_to_be_run_first">可能需要先運行 Shizuku 服務</string>
<string name="text_should_not_be_empty">文本不能為空</string>
<string name="text_show_layout_bounds">在佈局範圍中查看</string>
@@ -1062,6 +1112,10 @@
<string name="text_undo_simplified">撤銷</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">未知</string>
<string name="text_unknown_author_for_plugin">未知開發者</string>
<string name="text_unknown_description_for_plugin">未知描述</string>
<string name="text_unknown_title_for_plugin">未知標題</string>
<string name="text_unknown_version_for_plugin">未知版本</string>
<string name="text_unverified">未驗證</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1070,7 +1124,6 @@
<string name="text_updates_snack_bar_act_later">稍後提示</string>
<string name="text_updates_snack_bar_act_view">查看更新</string>
<string name="text_usage_stats_permission">查看使用情況權限</string>
<string name="text_usage_stats_permission_description">\"查看使用情況\" 權限可獲取本設備過去使用應用的情況,從而使 \"獲取當前應用\" (currentPackage) 結果更準確</string>
<string name="text_use_android_n_shortcut">使用安卓 7.0 快捷方式</string>
<string name="text_use_default_icon">使用默認圖標</string>
<string name="text_use_volume_control_record">使用 \"音量減\" 鍵控制錄製</string>
@@ -1105,38 +1158,6 @@
<string name="text_weekly_task_should_check_day_of_week">需至少選擇一天</string>
<string name="text_working_dir_path">工作路徑</string>
<string name="text_write_secure_settings">修改安全設置</string>
<string name="text_write_secure_settings_description">安全設置包含應用程序可讀但不可寫入的設置選項, 這些選項只能由 UI 或系統級別應用修改.\n被授予 \"修改安全設置權限\" 後, 普通應用可直接修改上述安全設置 (例如無障礙服務).</string>
<string name="text_write_system_settings">修改系統設置</string>
<string name="text_integrity_verification_failed">完整性驗證失敗</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 驗證不一致.\n\n期望值: %1$s\n實際值: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">當前插件未提供可用的 URL</string>
<string name="text_failed_to_update">更新失敗</string>
<string name="text_confirm_to_uninstall">是否確定卸載</string>
<string name="dialog_button_exception_details">異常詳情</string>
<string name="error_failed_to_load_plugins_with_reason">插件讀取失敗.\n原因: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">正在獲取插件列表數據...</string>
<string name="text_no_plugins_installed_hint">當前沒有已安裝的插件.\n可點擊 \"+\" 按鈕安裝插件.</string>
<string name="text_unknown_author_for_plugin">未知開發者</string>
<string name="text_unknown_description_for_plugin">未知描述</string>
<string name="text_unknown_version_for_plugin">未知版本</string>
<string name="text_unknown_title_for_plugin">未知標題</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定的 AutoJs6 應用版本號需大於 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 應用版本號需不低於 %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 應用版本需不低於 %1$s</string>
<string name="dialog_button_view_update">查看更新</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">獲取當前顯示語言對應的更新日誌失敗, 可稍後再次嘗試.\n\n目前將臨時顯示 \"簡體中文 (zh-Hans)\" 語言的發行説明.</string>
<string name="error_failed_to_retrieve_changelog">獲取更新日誌失敗</string>
<string name="error_failed_to_retrieve_release_notes">獲取發行説明失敗</string>
<string name="text_changelog">更新日誌</string>
<string name="text_release_notes">發行説明</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">正在獲取更新日誌...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">正在獲取發行説明...</string>
<string name="dialog_button_view_with_browser">瀏覽器查看</string>
<string name="text_scheduled_restart_backend">調度引擎</string>
<string name="text_scheduled_restart_start_delay">啓動延遲</string>
<string name="dialog_button_advanced_settings">高級設置</string>
<string name="error_failed_to_save_project_config">保存項目配置失敗</string>
<string name="text_connected">已連接</string>
<string name="text_connected_count_with_colon">已連接: %1$d</string>
</resources>

View File

@@ -55,6 +55,7 @@
<string name="content_description_fab_for_display_manifest">用於顯示清單內容的浮動操作按鈕控制元件</string>
<string name="content_failed_to_determine_index_of_theme_color_item">無法確定主題色條目的索引值</string>
<string name="content_failed_to_locate_library_for_theme_color">無法定位主題色所在顏色庫</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">獲取當前顯示語言對應的更新日誌失敗, 可稍後再次嘗試.\n\n目前將臨時顯示 \"簡體中文 (zh-Hans)\" 語言的發行說明.</string>
<string name="content_github_feedback">即將跳轉到專案議題反饋 WEB 頁面.\n可能需要 GitHub 賬戶以完成問題反饋.</string>
<string name="content_way_of_output_for_recorded_script">選擇一個已錄製指令碼的輸出方式</string>
<string name="crash_feedback">可複製除錯資訊到剪貼簿或直接退出應用</string>
@@ -66,46 +67,70 @@
<string name="default_value_working_directory">/指令碼</string>
<string name="description_about_app_and_developer_preference">AutoJs6 是 Android 平臺支援無障礙服務的 JavaScript 自動化工具, 克隆 (clone) 自 \"hyb1996/Auto.js\" 且保持開源.\n\n如需獲取幫助或提交反饋, 可瀏覽專案的 GitHub 議題 (issues) 板塊, 或加入騰訊 (Tencent) QQ 群組 690946137.</string>
<string name="description_about_app_tips_preference">1. 在 \"關於應用與開發者\" 頁面長按應用圖示可跳轉至 AutoJs6 開發者選項頁面</string>
<string name="description_accessibility_service">無障礙服務是 AutoJs6 實現自動化操作的核心能力, 用於讀取螢幕控制元件資訊並模擬 [ 點選 / 滑動 / 輸入 ] 等互動.\n\n自動化相關的大部分功能函式以及佈局分析工具等, 均需要啟用無障礙服務才能正常工作.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">\"管理所有檔案\" (或 \"所有檔案訪問\") 許可權允許 AutoJs6 在共享儲存空間中透過常規檔案路徑直接 [ 建立 / 讀取 / 修改 / 刪除 ] 檔案, 使指令碼可以訪問 \"內部儲存 (Internal Storage)\", 使檔案管理器可以正常顯示及管理檔案.\n\n在 Android 11+ 裝置上, 這是實現全盤檔案讀寫能力的主要方式.</string>
<string name="description_app_language_preference">設定選項用於修改 AutoJs6 應用的文字內容顯示語言, 同時包括指令碼執行產生的錯誤訊息等.\n\n注: 部分內容可能需要重啟應用才能完成語言切換.</string>
<string name="description_auto_night_mode">自動夜間模式開啟後, AutoJs6 將根據系統設定自動切換夜間模式.\n\注: 自動夜間模式開關與夜間模式開關互相關聯且互相影響.</string>
<string name="description_change_working_dir_preference">更改包含指令碼的資料夾路徑</string>
<string name="description_check_for_updates_preference">AutoJs6 從 GitHub 獲取並下載更新.</string>
<string name="description_client_mode">客戶端模式用於讓 AutoJs6 主動連線到遠端服務端, 以便進行 [ 指令碼傳輸 / 列印日誌 / 遠端控制 ] 等.\n\n通常需要裝置與服務端處於同一區域網或可互相訪問的網路環境.</string>
<string name="description_display_over_other_app">\"顯示在其他應用上層\" 許可權允許 AutoJs6 在其他應用介面之上展示懸浮窗或浮動按鈕, 以便在任意介面快速執行操作或檢視資訊.\n\n注: 未授予該許可權時, 懸浮窗及浮動按鈕可能會無法顯示或正常使用.</string>
<string name="description_documentation_source_preference">本地文件: AutoJs6 內建檔案作為文件來源, 無需網路連線, 隨 AutoJs6 應用更新而發生內容變動.\n線上文件: 使用 GitHub 網頁作為文件來源, 需網路連線, 可隨時保持文件內容為最新.\n\n注: 為最大化線上文件的閱讀體驗, 建議使用桌面顯示器等寬屏顯示裝置閱讀.\n注: 截至 6.2.0 版本, 文件尚處於初步編寫階段, 大部分內容尚未完成編寫或更新.</string>
<string name="description_documentation_source_preference_more">文件頁面的深色主題支援需要滿足以下條件:\n1. AutoJs6 開啟夜間模式\n2. WebView (或 Google Chrome 等瀏覽器) 版本要求:\n- API 級別 29 (安卓 10) [Q] 及以上: 版本不低於 76\n- API 級別 28 (安卓 9) [P] 及以下: 版本不低於 105</string>
<string name="description_extending_js_build_in_objects">擴充套件 JavaScript 內建物件可以增加程式碼靈活性並實現更豐富的功能, 但可能造成衝突甚至破壞.\n選項開啟後所有指令碼均預設啟用內建擴充套件.\n內建擴充套件往往是不安全的, 除非明確瞭解內建擴充套件的原理及風險, 否則不建議啟用.\n選項關閉後, 仍然可以透過 plugins 全域性物件啟用內建擴充套件, 詳見專案文件.</string>
<string name="description_floating_button">浮動按鈕用於在螢幕邊緣顯示一個可拖動的快捷功能入口, 可用於 [ 啟動或停止指令碼 / 佈局分析 / 檢視最近包名或活動名稱 / 顯示指標位置 ] 等.\n\n注: 該功能通常需要授予 \"顯示在其他應用上層\" 許可權.</string>
<string name="description_foreground_service">前臺服務用於在後臺更穩定地保持 AutoJs6 執行, 適合 [ 長時間執行指令碼 / 保持連線 / 持續監聽 ] 等場景.\n\n啟用後, 系統會顯示一條 \"前臺服務通知\" 用於告知使用者 AutoJs6 正在持續執行, 該通知通常會保持顯示直到服務停止.\n\n將通知設定為 \"靜音 (Silent)\" 或 \"最小化 (Minimize)\" 只會降低提示強度, 一般不會影響前臺服務功能.\n\n如果關閉通知渠道或禁止 AutoJs6 傳送通知, 可能影響前臺服務的正常啟動及穩定性.</string>
<string name="description_hidden_files_preference">用於設定是否在 AutoJs6 檔案管理器中顯示隱藏檔案和資料夾 (通常以 \".\" 開頭).</string>
<string name="description_ignore_battery_optimizations">忽略電池最佳化可降低系統對 AutoJs6 的後臺限制, 有助於定時任務或長時間指令碼在待機時相對更加穩定地執行.\n\n注: 不同廠商系統可能仍會有額外的省電策略, 如自啟動限制或後臺凍結等.</string>
<string name="description_keep_screen_on_when_in_foreground">用於控制 AutoJs6 位於前臺時是否保持螢幕常亮.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">用於當 AutoJs6 位於前臺時使裝置螢幕保持常亮.\n如需在 AutoJs6 應用的所有頁面中, 僅在主頁時保持裝置螢幕常亮, 可選擇 \"僅限主頁\" 選項.</string>
<string name="description_launcher_icon_preference">啟動器圖示支援自適應圖示顯示方式與傳統透明背景圖示顯示方式. 不同安卓系統的圖示實際顯示效果可能有所不同. 切換顯示方式後, 可能需要幾秒鐘的時間生效.</string>
<string name="description_launcher_shortcuts">快捷方式可以在 AutoJs6 中執行特定操作, 使用者可以在啟動器中顯示這些快捷方式, 並快速開始某些任務或啟動某個活動, 如閲讀 AutoJs6 應用文件, 啟動 AutoJs6 設定頁面等.</string>
<string name="description_manage_ignored_updates_preference">點選可檢視或管理列表項.\n長按可移除列表項.</string>
<string name="description_night_mode">用於控制並反映 AutoJs6 夜間模式策略.\n\n注: 夜間模式開關與自動夜間模式開關互相關聯且互相影響.</string>
<string name="description_night_mode_preference">夜間模式, 亦稱 [ 暗黑模式 / 深色主題 ] 等.\n夜間模式應用於安卓系統 UI (如通知欄和導航欄) 及 AutoJs6 應用頁面.\n夜間模式可提升裝置在低光環境下的易用性, 同時有助於提升弱視或光敏感使用者的視覺體驗.\n\n跟隨系統: AutoJs6 與安卓作業系統的夜間模式設定一致\n總是開啟: AutoJs6 保持開啟夜間模式 (忽略作業系統設定)\n總是關閉: AutoJs6 保持關閉夜間模式 (忽略作業系統設定)\n\n注: 跟隨系統功能僅支援安卓 API 級別 28 (安卓 9) [P] 及以上作業系統.</string>
<string name="description_night_mode_preference_more">啟用安卓系統的夜間模式:\n- API 級別 29 (安卓 10) [Q] 及以上: 透過 [ 設定 -> 顯示 -> 主題 ] 開啟.\n- API 級別 28 (安卓 9) [P]: 透過 [ 開發者選項 -> 夜間模式 ] 開啟.\n\n對於基於 WebView 元件的內容 (如 AutoJs6 的文件頁面), 夜間模式支援需要滿足以下條件:\n1. WebView (或 Google Chrome 等瀏覽器) 版本要求:\n- API 級別 29 (安卓 10) [Q] 及以上: 版本不低於 76\n- API 級別 28 (安卓 9) [P]: 版本不低於 105\n2. WebView 元件頁面內容可適配夜間模式 (透過 CSS 或 安卓 XML 資源等方式實現)</string>
<string name="description_notification_access">\"通知使用權\" (或 \"通知讀取許可權\") 允許 AutoJs6 讀取系統通知內容, 使指令碼可以監聽通知或獲取通知文字等.</string>
<string name="description_post_notifications">\"傳送通知\" 許可權允許 AutoJs6 向系統釋出通知, 使指令碼可以在通知欄釋出並管理自定義通知等.\n\n注: 在 Android 13+ 裝置上未授予該許可權時, 部分通知可能無法顯示, 並可能影響前臺服務的啟動與穩定性.</string>
<string name="description_project_media_access">被授予 \"投影媒體許可權\" 後, 錄製螢幕的安全提示視窗將不再彈出.</string>
<string name="description_restart_strategy">重啟策略僅作用於主頁抽屜欄的重啟按鈕.\n\n快速重啟: 快速重啟應用, 如果重啟失敗或出現非預期情況, 可嘗試切換至 \"計劃重啟\".\n計劃重啟: 提前設定一個短時定時任務, 應用停止後會再次定時啟動, 以實現應用重啟.</string>
<string name="description_rhino_java_primitive_wrap">開關啟用 (預設): 將 Java 方法返回的 Number/Boolean/Character 包裝為 Java 物件暴露到指令碼 (String 除外). typeof 為 \"object\", species 為 \"JavaObject\", 可訪問這些物件的 Java 方法, 利於保留 Java 精確型別特徵與方法過載行為.\n\n開關禁用: 不再包裝上述型別, 直接作為 JavaScript 基元值 (number/boolean/單字元字串). typeof 為相應 JavaScript 型別, 更貼近 JavaScript 語義與生態. 但仍可透過 new 關鍵字顯式宣告一個 Java 包裝型別, 如 new java.lang.Boolean(true).\n\n參閱: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">如果裝置使用非常規 Root 方式或 Root 許可權檢測結果異常, 可設定 \"強制 Root 模式\" 或 \"強制非 Root 模式\".</string>
<string name="description_root_record_out_file_type_preference">二進位制檔案: 不可編輯, 副檔名為 \"auto\"\nJavaScript 檔案: 可編輯或直接複製, 副檔名為 \"js\"</string>
<string name="description_server_mode">服務端模式用於讓 AutoJs6 在當前裝置開啟服務並等待外部客戶端連線, 以便進行 [ 指令碼傳輸 / 列印日誌 / 遠端控制 ] 等.\n\nAutoJs6 服務端模式支援兩種連線方式:\n1. 區域網 (LAN)\n2. 安卓除錯橋 (ADB)</string>
<string name="description_shizuku_access">透過 Shizuku 可以獲得 ADB 特權並使用系統 API</string>
<string name="description_stable_mode">穩定模式省略佈局細節, 指令碼分析佈局時更穩定, 但可能影響獲取的控制元件總量.\n需重啟無障礙服務.</string>
<string name="description_theme_color_preference">主題色的應用範圍包括但不限於以下部件:\n系統通知欄\n應用欄 (AppBar)\n檔案圖示\n任務項圖示\n浮動操作按鈕 (FAB)\n設定頁面類別標題\n按鈕開關\n\n注: 截至 6.2.0 版本, AutoJs6 主題色暫未對 [ 主要色 (Primary Color) / 主要暗色 (Primary Dark Color) / 強調色 (Accent Color) ] 作出區分.</string>
<string name="description_timed_task_backend">控制指令碼定時觸發的底層機制.\n\nAlarmManager: 透過申請 \"允許設定鬧鐘和提醒\" 許可權, 可使定時任務的觸發更接近準時.\nWorkManager: 系統友好, 適合可接受一定延遲的非關鍵定時任務.\nJobScheduler: 舊實現, 僅用作相容保留, 定時任務出現延遲的機率較大.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">使用場景與差異說明: \n\n1. AlarmManager\n適用於準時性敏感的定時任務, 如 [提醒/嚴格定時指令碼/...].\n在 Android 12+ 獲取 \"允許設定鬧鐘和提醒\" 許可權後, 在息屏或待機狀態時能夠較準時地執行定時任務.\n在未授予 \"允許設定鬧鐘和提醒\" 許可權時, 系統可能降級為不準時或延後執行任務.\n\n2. WorkManager\n適用於不要求嚴格準時執行的定時任務, 如 [非關鍵性同步/清理/統計/...].\n根據系統 [ 電量/網路/充電情況/待機策略/... ] 進行排程, 息屏或待機狀態時可能推遲任務執行.\n雖無法保證時間精確性, 但在 [ 可靠完成/失敗重試/鏈式執行/唯一任務去重 ] 等方面擁有獨特優勢.\n\n3. Job\n歷史實現, 為相容保留.\n在高版本安卓系統中定時任務可能存在較大的延遲執行問題.\n除非出於相容需要, 一般不推薦使用.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">使用場景與差異說明: \n\n1. AlarmManager\n適用於準時性敏感的定時任務, 如 [提醒/嚴格定時指令碼/...].\n在 Android 12+ 裝置上獲取 \"允許設定鬧鐘和提醒\" 許可權後, 在息屏或待機狀態時能夠較準時地執行定時任務.\n在未授予 \"允許設定鬧鐘和提醒\" 許可權時, 系統可能降級為不準時或延後執行任務.\n\n2. WorkManager\n適用於不要求嚴格準時執行的定時任務, 如 [非關鍵性同步/清理/統計/...].\n根據系統 [ 電量/網路/充電情況/待機策略/... ] 進行排程, 息屏或待機狀態時可能推遲任務執行.\n雖無法保證時間精確性, 但在 [ 可靠完成/失敗重試/鏈式執行/唯一任務去重 ] 等方面擁有獨特優勢.\n\n3. Job\n歷史實現, 為相容保留.\n在高版本安卓系統中定時任務可能存在較大的延遲執行問題.\n除非出於相容需要, 一般不推薦使用.</string>
<string name="description_usage_stats_access">\"檢視使用情況\" 許可權可獲取本裝置過去使用應用的情況, 從而使 \"獲取當前應用\" (currentPackage) 結果更準確</string>
<string name="description_version_histories_preference">檢視 AutoJs6 在 GitHub 發行版本的歷史更新記錄及重要分類的統計資料.</string>
<string name="description_write_secure_settings">安全設定包含應用程式可讀但不可寫入的設定選項, 這些選項只能由 UI 或系統級別應用修改.\n被授予 \"修改安全設定許可權\" 後, 普通應用可直接修改上述安全設定 (例如無障礙服務).</string>
<string name="description_write_system_settings">\"修改系統設定\" 許可權允許 AutoJs6 修改部分系統設定項, 使指令碼可以修改 [ 螢幕亮度 / 自動旋轉 / 螢幕超時 ] 等系統設定引數.</string>
<string name="dialog_button_advanced_settings">高階設定</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">取消</string>
<string name="dialog_button_cancel_download">取消下載</string>
<string name="dialog_button_clear_items">清空記錄</string>
<string name="dialog_button_confirm">確定</string>
<string name="dialog_button_connect">連線</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">繼續連線</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">預設字首</string>
<string name="dialog_button_details">瞭解更多</string>
<string name="dialog_button_dismiss">關閉</string>
<string name="dialog_button_download_with_browser">瀏覽器下載</string>
<string name="dialog_button_exception_details">異常詳情</string>
<string name="dialog_button_file_information">檔案資訊</string>
<string name="dialog_button_history">歷史記錄</string>
<string name="dialog_button_ignore_current_update">忽略此版本</string>
<string name="dialog_button_join_group">加入群組</string>
<string name="dialog_button_manager">管理器</string>
<string name="dialog_button_more">瞭解更多</string>
<string name="dialog_button_open_color_palette">開啟調色盤</string>
<string name="dialog_button_quit">放棄</string>
<string name="dialog_button_quit_connecting">放棄連線</string>
<string name="dialog_button_remove">移除</string>
<string name="dialog_button_retrieve">獲取</string>
<string name="dialog_button_retry">重試</string>
@@ -118,6 +143,8 @@
<string name="dialog_button_version_histories">版本歷史</string>
<string name="dialog_button_view_file">檢視檔案</string>
<string name="dialog_button_view_shortcuts">檢視快捷方式</string>
<string name="dialog_button_view_update">檢視更新</string>
<string name="dialog_button_view_with_browser">瀏覽器檢視</string>
<string name="dialog_title_color_details">顏色詳情</string>
<string name="dialog_title_color_palette">調色盤</string>
<string name="dialog_title_theme_color_details">主題色詳情</string>
@@ -167,6 +194,8 @@
<string name="error_arguments_cannot_be_empty">引數列表不可為空</string>
<string name="error_arguments_must_be_empty">引數列表需為空</string>
<string name="error_at_least_one_abi_needs_to_be_selected">需要至少選擇一個 ABI</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 應用版本需不低於 %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 應用版本號需不低於 %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">Bitmap 與 Mat 不能同時為 null</string>
<string name="error_cannot_be_null">%s 不能為 null</string>
<string name="error_cannot_connect_to_github">無法連線到 GitHub</string>
@@ -201,11 +230,17 @@
<string name="error_failed_to_grant_shizuku_access">Shizuku 許可權授予失敗</string>
<string name="error_failed_to_instantiate">例項 \"%s\" 建立失敗</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[例項 \"%1$s\" 建立失敗: [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">管理器啟動失敗</string>
<string name="error_failed_to_launch_system_settings">系統設定啟動失敗</string>
<string name="error_failed_to_load_plugins_with_reason">外掛讀取失敗.\n原因: %1$s.</string>
<string name="error_failed_to_render_content">內容渲染失敗</string>
<string name="error_failed_to_retrieve_changelog">獲取更新日誌失敗</string>
<string name="error_failed_to_retrieve_release_notes">獲取發行說明失敗</string>
<string name="error_failed_to_retrieve_version_histories">獲取版本歷史失敗</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">獲取 version.properties 失敗, 無法解析版本資訊</string>
<string name="error_failed_to_revoke_shizuku_access">Shizuku 許可權撤銷失敗</string>
<string name="error_failed_to_run_script">指令碼執行失敗</string>
<string name="error_failed_to_save_project_config">儲存專案配置失敗</string>
<string name="error_file_in_path_does_not_exist">路徑 \"%1$s\" 對應檔案不存在</string>
<string name="error_function_called_in_ui_thread">UI 執行緒內無法執行阻塞操作. 可嘗試在子執行緒或子指令碼中執行 %s()</string>
<string name="error_function_called_more_than_once">%s() 呼叫不能超過一次</string>
@@ -242,6 +277,7 @@
<string name="error_no_applications_available_for_playing_this_file">未找到用於播放該檔案的應用</string>
<string name="error_no_applications_available_for_sending_this_file">未找到用於傳送該檔案的應用</string>
<string name="error_no_applications_available_for_viewing_this_file">未找到用於檢視該檔案的應用</string>
<string name="error_no_available_url_provided_for_current_plugin">當前外掛未提供可用的 URL</string>
<string name="error_no_display_over_other_apps_permission">缺少 \"顯示在其他應用上層\" 許可權</string>
<string name="error_no_permission_to_access_shizuku">缺少 Shizuku 訪問許可權</string>
<string name="error_no_post_notifications_permission">缺少 \"釋出通知\" 許可權</string>
@@ -270,6 +306,7 @@
<string name="error_shizuku_is_not_installed">Shizuku 未安裝</string>
<string name="error_shizuku_service_may_be_not_running">Shizuku 服務可能未執行</string>
<string name="error_shizuku_version_is_not_supported">Shizuku 版本不支援</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定的 AutoJs6 應用版本號需大於 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">必需屬性 "%1$s" 的轉換器不能返回空值</string>
<string name="error_thread_is_not_alive">執行緒處於非活動狀態</string>
<string name="error_unable_to_use_shizuku_service">無法使用 Shizuku 服務</string>
@@ -480,6 +517,7 @@
<string name="text_captured_window_info_type_unknown">未知型別</string>
<string name="text_category_filter">類別篩選</string>
<string name="text_change_working_dir">更改工作路徑</string>
<string name="text_changelog">更新日誌</string>
<string name="text_changelog_item_dependency">部分依賴或本地庫版本調整</string>
<string name="text_check_for_updates">檢查更新</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">檢查更新 (忽略本地版本)</string>
@@ -517,7 +555,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">以下歷史記錄將被清空\n\n[ 全部顏色庫 ]\n\n是否確定清空</string>
<string name="text_confirm_to_delete">是否確定刪除</string>
<string name="text_confirm_to_remove">是否確定移除</string>
<string name="text_confirm_to_uninstall">是否確定解除安裝</string>
<string name="text_connect_to_pc">連線到計算機</string>
<string name="text_connected">已連線</string>
<string name="text_connected_count_with_colon">已連線: %1$d</string>
<string name="text_connection_cannot_be_established">無法建立連線</string>
<string name="text_console">控制檯</string>
<string name="text_continue">繼續</string>
@@ -639,6 +680,7 @@
<string name="text_failed_to_retrieve">獲取失敗</string>
<string name="text_failed_to_save_remote_project_to_local_storage">無法儲存遠端專案至本地</string>
<string name="text_failed_to_send_log_entries">日誌條目傳送失敗</string>
<string name="text_failed_to_update">更新失敗</string>
<string name="text_failed_to_write_file">檔案寫入失敗</string>
<string name="text_file">檔案</string>
<string name="text_file_details">檔案詳情</string>
@@ -663,7 +705,6 @@
<string name="text_floating_button">浮動按鈕</string>
<string name="text_force_stop">強制停止</string>
<string name="text_foreground_service">前臺服務</string>
<string name="text_foreground_service_description">前臺服務執行一些使用者能注意到的操作.\n前臺服務必須顯示通知, 確保使用者知道應用正在執行的任務.\n前臺服務通知無法移除, 除非服務停止執行.\n可透過長按通知將通知優先順序降低 (部分系統支援關閉前臺服務通知), 以減少通知對使用者的影響.</string>
<string name="text_formatting_completed">格式化已完成</string>
<string name="text_function">函式</string>
<string name="text_fx_keyboard">多功能鍵盤</string>
@@ -703,9 +744,11 @@
<string name="text_install_from_url">從 \"URL\" 安裝</string>
<string name="text_install_plugin_from_url">從 \"URL\" 安裝外掛</string>
<string name="text_installable">可安裝</string>
<string name="text_integrity_verification_failed">完整性驗證失敗</string>
<string name="text_invalid_character_is_removed">無效字元已被移除</string>
<string name="text_invalid_package_name">無效包名</string>
<string name="text_invalid_project">無效專案</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP 地址 \"%1$s\" 具備特殊用途 (迴環/廣播/多播/保留/...), 因此可能無法用於連線目標伺服器.</string>
<string name="text_is_latest_version">已是最新版本</string>
<string name="text_issue_report">問題反饋</string>
<string name="text_js_file">*.js 檔案</string>
@@ -773,11 +816,13 @@
<string name="text_night_mode">夜間模式</string>
<string name="text_no_browser">未安裝瀏覽器應用</string>
<string name="text_no_content">無內容</string>
<string name="text_no_content_description">無內容描述</string>
<string name="text_no_histories">無歷史記錄</string>
<string name="text_no_ignored_updates">暫無已忽略更新</string>
<string name="text_no_log_entries_to_copy">無可複製的日誌條目</string>
<string name="text_no_log_entries_to_export">無可導出的日誌條目</string>
<string name="text_no_log_entries_to_send">無可傳送的日誌條目</string>
<string name="text_no_plugins_installed_hint">當前沒有已安裝的外掛.\n可點選 \"+\" 按鈕安裝外掛.</string>
<string name="text_no_root">免 root</string>
<string name="text_no_root_access">無 root 許可權</string>
<string name="text_no_scripts_to_stop_running">無執行中的指令碼</string>
@@ -920,7 +965,6 @@
<string name="text_project">專案</string>
<string name="text_project_location">專案位置</string>
<string name="text_project_media_access">投影媒體許可權</string>
<string name="text_project_media_access_description">被授予 \"投影媒體許可權\" 後, 錄製螢幕的安全提示視窗將不再彈出.</string>
<string name="text_prompt">提示</string>
<string name="text_quit">放棄</string>
<string name="text_recommended">推薦</string>
@@ -936,6 +980,7 @@
<string name="text_register">註冊</string>
<string name="text_register_succeed">註冊成功</string>
<string name="text_registering">註冊中</string>
<string name="text_release_notes">發行說明</string>
<string name="text_remote">遠端</string>
<string name="text_remote_file_saved_to_local_storage_successfully">遠端檔案已儲存至本地</string>
<string name="text_remote_project_saved_to_local_storage_successfully">遠端專案已儲存至本地</string>
@@ -954,6 +999,9 @@
<string name="text_restart">重啟</string>
<string name="text_restart_strategy">重啟策略</string>
<string name="text_result">結果</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">正在獲取更新日誌...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">正在獲取外掛列表資料...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">正在獲取發行說明...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">在 Shizuku 應用中撤銷 AutoJs6 許可權</string>
<string name="text_rhino_java_primitive_wrap">Java 原始型別包裝</string>
<string name="text_root_mode_title">Root 許可權檢查</string>
@@ -984,6 +1032,8 @@
<string name="text_save_and_exit">儲存並退出</string>
<string name="text_save_simplified">儲存</string>
<string name="text_save_to">儲存到</string>
<string name="text_scheduled_restart_backend">排程引擎</string>
<string name="text_scheduled_restart_start_delay">啟動延遲</string>
<string name="text_script_record">錄製指令碼</string>
<string name="text_script_running">指令碼執行</string>
<string name="text_search">搜尋</string>
@@ -1006,8 +1056,8 @@
<string name="text_set_as_working_dir">用作工作路徑</string>
<string name="text_set_breakpoint">設定斷點</string>
<string name="text_settings">設定</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 驗證不一致.\n\n期望值: %1$s\n實際值: %2$s</string>
<string name="text_shizuku_access">Shizuku 許可權</string>
<string name="text_shizuku_access_description">透過 Shizuku 可以獲得 ADB 特權並使用系統 API</string>
<string name="text_shizuku_service_may_need_to_be_run_first">可能需要先執行 Shizuku 服務</string>
<string name="text_should_not_be_empty">文字不能為空</string>
<string name="text_show_layout_bounds">在佈局範圍中檢視</string>
@@ -1062,6 +1112,10 @@
<string name="text_undo_simplified">撤銷</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">未知</string>
<string name="text_unknown_author_for_plugin">未知開發者</string>
<string name="text_unknown_description_for_plugin">未知描述</string>
<string name="text_unknown_title_for_plugin">未知標題</string>
<string name="text_unknown_version_for_plugin">未知版本</string>
<string name="text_unverified">未驗證</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1070,7 +1124,6 @@
<string name="text_updates_snack_bar_act_later">稍後提示</string>
<string name="text_updates_snack_bar_act_view">檢視更新</string>
<string name="text_usage_stats_permission">檢視使用情況許可權</string>
<string name="text_usage_stats_permission_description">\"檢視使用情況\" 許可權可獲取本裝置過去使用應用的情況,從而使 \"獲取當前應用\" (currentPackage) 結果更準確</string>
<string name="text_use_android_n_shortcut">使用安卓 7.0 快捷方式</string>
<string name="text_use_default_icon">使用預設圖示</string>
<string name="text_use_volume_control_record">使用 \"音量減\" 鍵控制錄製</string>
@@ -1105,38 +1158,6 @@
<string name="text_weekly_task_should_check_day_of_week">需至少選擇一天</string>
<string name="text_working_dir_path">工作路徑</string>
<string name="text_write_secure_settings">修改安全設定</string>
<string name="text_write_secure_settings_description">安全設定包含應用程式可讀但不可寫入的設定選項, 這些選項只能由 UI 或系統級別應用修改.\n被授予 \"修改安全設定許可權\" 後, 普通應用可直接修改上述安全設定 (例如無障礙服務).</string>
<string name="text_write_system_settings">修改系統設定</string>
<string name="text_integrity_verification_failed">完整性驗證失敗</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 驗證不一致.\n\n期望值: %1$s\n實際值: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">當前外掛未提供可用的 URL</string>
<string name="text_failed_to_update">更新失敗</string>
<string name="text_confirm_to_uninstall">是否確定解除安裝</string>
<string name="dialog_button_exception_details">異常詳情</string>
<string name="error_failed_to_load_plugins_with_reason">外掛讀取失敗.\n原因: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">正在獲取外掛列表資料...</string>
<string name="text_no_plugins_installed_hint">當前沒有已安裝的外掛.\n可點選 \"+\" 按鈕安裝外掛.</string>
<string name="text_unknown_author_for_plugin">未知開發者</string>
<string name="text_unknown_description_for_plugin">未知描述</string>
<string name="text_unknown_version_for_plugin">未知版本</string>
<string name="text_unknown_title_for_plugin">未知標題</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定的 AutoJs6 應用版本號需大於 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 應用版本號需不低於 %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 應用版本需不低於 %1$s</string>
<string name="dialog_button_view_update">檢視更新</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">獲取當前顯示語言對應的更新日誌失敗, 可稍後再次嘗試.\n\n目前將臨時顯示 \"簡體中文 (zh-Hans)\" 語言的發行說明.</string>
<string name="error_failed_to_retrieve_changelog">獲取更新日誌失敗</string>
<string name="error_failed_to_retrieve_release_notes">獲取發行說明失敗</string>
<string name="text_changelog">更新日誌</string>
<string name="text_release_notes">發行說明</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">正在獲取更新日誌...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">正在獲取發行說明...</string>
<string name="dialog_button_view_with_browser">瀏覽器檢視</string>
<string name="text_scheduled_restart_backend">排程引擎</string>
<string name="text_scheduled_restart_start_delay">啟動延遲</string>
<string name="dialog_button_advanced_settings">高階設定</string>
<string name="error_failed_to_save_project_config">儲存專案配置失敗</string>
<string name="text_connected">已連線</string>
<string name="text_connected_count_with_colon">已連線: %1$d</string>
</resources>

View File

@@ -54,6 +54,7 @@
<string name="content_description_fab_for_display_manifest">用于显示清单内容的浮动操作按钮控件</string>
<string name="content_failed_to_determine_index_of_theme_color_item">无法确定主题色条目的索引值</string>
<string name="content_failed_to_locate_library_for_theme_color">无法定位主题色所在颜色库</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">获取当前显示语言对应的更新日志失败, 可稍后再次尝试.\n\n目前将临时显示 \"简体中文 (zh-Hans)\" 语言的发行说明.</string>
<string name="content_github_feedback">即将跳转到项目议题反馈 WEB 页面.\n可能需要 GitHub 账户以完成问题反馈.</string>
<string name="content_way_of_output_for_recorded_script">选择一个已录制脚本的输出方式</string>
<string name="crash_feedback">可复制调试信息到剪贴板或直接退出应用</string>
@@ -65,47 +66,71 @@
<string name="default_value_working_directory">/脚本</string>
<string name="description_about_app_and_developer_preference">AutoJs6 是 Android 平台支持无障碍服务的 JavaScript 自动化工具, 克隆 (clone) 自 \"hyb1996/Auto.js\" 且保持开源.\n\n如需获取帮助或提交反馈, 可浏览项目的 GitHub 议题 (issues) 板块, 或加入腾讯 (Tencent) QQ 群组 690946137.</string>
<string name="description_about_app_tips_preference">1. 在 \"关于应用与开发者\" 页面长按应用图标可跳转至 AutoJs6 开发者选项页面</string>
<string name="description_accessibility_service">无障碍服务是 AutoJs6 实现自动化操作的核心能力, 用于读取屏幕控件信息并模拟 [ 点击 / 滑动 / 输入 ] 等交互.\n\n自动化相关的大部分功能函数以及布局分析工具等, 均需要启用无障碍服务才能正常工作.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">\"管理所有文件\" (或 \"所有文件访问\") 权限允许 AutoJs6 在共享存储空间中通过常规文件路径直接 [ 创建 / 读取 / 修改 / 删除 ] 文件, 使脚本可以访问 \"内部存储 (Internal Storage)\", 使文件管理器可以正常显示及管理文件.\n\n在 Android 11+ 设备上, 这是实现全盘文件读写能力的主要方式.</string>
<string name="description_app_language_preference">设置选项用于修改 AutoJs6 应用的文本内容显示语言, 同时包括脚本运行产生的错误消息等.\n\n注: 部分内容可能需要重启应用才能完成语言切换.</string>
<string name="description_auto_night_mode">自动夜间模式开启后, AutoJs6 将根据系统设置自动切换夜间模式.\n\注: 自动夜间模式开关与夜间模式开关互相关联且互相影响.</string>
<string name="description_change_working_dir_preference">更改包含脚本的文件夹路径</string>
<string name="description_check_for_updates_preference">AutoJs6 从 GitHub 获取并下载更新.</string>
<string name="description_client_mode">客户端模式用于让 AutoJs6 主动连接到远端服务端, 以便进行 [ 脚本传输 / 打印日志 / 远程控制 ] 等.\n\n通常需要设备与服务端处于同一局域网或可互相访问的网络环境.</string>
<string name="description_display_over_other_app">\"显示在其他应用上层\" 权限允许 AutoJs6 在其他应用界面之上展示悬浮窗或浮动按钮, 以便在任意界面快速执行操作或查看信息.\n\n注: 未授予该权限时, 悬浮窗及浮动按钮可能会无法显示或正常使用.</string>
<string name="description_documentation_source_preference">本地文档: AutoJs6 内置文件作为文档来源, 无需网络连接, 随 AutoJs6 应用更新而发生内容变动.\n在线文档: 使用 GitHub 网页作为文档来源, 需网络连接, 可随时保持文档内容为最新.\n\n注: 为最大化在线文档的阅读体验, 建议使用桌面显示器等宽屏显示设备阅读.\n注: 截至 6.2.0 版本, 文档尚处于初步编写阶段, 大部分内容尚未完成编写或更新.</string>
<string name="description_documentation_source_preference_more">文档页面的深色主题支持需要满足以下条件:\n1. AutoJs6 开启夜间模式\n2. WebView (或 Google Chrome 等浏览器) 版本要求:\n- API 级别 29 (安卓 10) [Q] 及以上: 版本不低于 76\n- API 级别 28 (安卓 9) [P] 及以下: 版本不低于 105</string>
<string name="description_extending_js_build_in_objects">扩展 JavaScript 内置对象可以增加代码灵活性并实现更丰富的功能, 但可能造成冲突甚至破坏.\n选项开启后所有脚本均默认启用内置扩展.\n内置扩展往往是不安全的, 除非明确了解内置扩展的原理及风险, 否则不建议启用.\n选项关闭后, 仍然可以通过 plugins 全局对象启用内置扩展, 详见项目文档.</string>
<string name="description_file_extensions_preference">用于设置是否在 AutoJs6 文件管理器中显示文件扩展名.</string>
<string name="description_floating_button">浮动按钮用于在屏幕边缘显示一个可拖动的快捷功能入口, 可用于 [ 启动或停止脚本 / 布局分析 / 查看最近包名或活动名称 / 显示指针位置 ] 等.\n\n注: 该功能通常需要授予 \"显示在其他应用上层\" 权限.</string>
<string name="description_foreground_service">前台服务用于在后台更稳定地保持 AutoJs6 运行, 适合 [ 长时间执行脚本 / 保持连接 / 持续监听 ] 等场景.\n\n启用后, 系统会显示一条 \"前台服务通知\" 用于告知用户 AutoJs6 正在持续运行, 该通知通常会保持显示直到服务停止.\n\n将通知设置为 \"静音 (Silent)\" 或 \"最小化 (Minimize)\" 只会降低提示强度, 一般不会影响前台服务功能.\n\n如果关闭通知渠道或禁止 AutoJs6 发送通知, 可能影响前台服务的正常启动及稳定性.</string>
<string name="description_hidden_files_preference">用于设置是否在 AutoJs6 文件管理器中显示隐藏文件和文件夹 (通常以 \".\" 开头).</string>
<string name="description_ignore_battery_optimizations">忽略电池优化可降低系统对 AutoJs6 的后台限制, 有助于定时任务或长时间脚本在待机时相对更加稳定地运行.\n\n注: 不同厂商系统可能仍会有额外的省电策略, 如自启动限制或后台冻结等.</string>
<string name="description_keep_screen_on_when_in_foreground">用于控制 AutoJs6 位于前台时是否保持屏幕常亮.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">用于当 AutoJs6 位于前台时使设备屏幕保持常亮.\n如需在 AutoJs6 应用的所有页面中, 仅在主页时保持设备屏幕常亮, 可选择 \"仅限主页\" 选项.</string>
<string name="description_launcher_icon_preference">启动器图标支持自适应图标显示方式与传统透明背景图标显示方式. 不同安卓系统的图标实际显示效果可能有所不同. 切换显示方式后, 可能需要几秒钟的时间生效.</string>
<string name="description_launcher_shortcuts">快捷方式可以在 AutoJs6 中执行特定操作, 用户可以在启动器中显示这些快捷方式, 并快速开始某些任务或启动某个活动, 如阅读 AutoJs6 应用文档, 启动 AutoJs6 设置页面等.</string>
<string name="description_manage_ignored_updates_preference">点击可查看或管理列表项.\n长按可移除列表项.</string>
<string name="description_night_mode">用于控制并反映 AutoJs6 夜间模式策略.\n\n注: 夜间模式开关与自动夜间模式开关互相关联且互相影响.</string>
<string name="description_night_mode_preference">夜间模式, 亦称 [ 暗黑模式 / 深色主题 ] 等.\n夜间模式应用于安卓系统 UI (如通知栏和导航栏) 及 AutoJs6 应用页面.\n夜间模式可提升设备在低光环境下的易用性, 同时有助于提升弱视或光敏感用户的视觉体验.\n\n跟随系统: AutoJs6 与安卓操作系统的夜间模式设置一致\n总是开启: AutoJs6 保持开启夜间模式 (忽略操作系统设置)\n总是关闭: AutoJs6 保持关闭夜间模式 (忽略操作系统设置)\n\n注: 跟随系统功能仅支持安卓 API 级别 28 (安卓 9) [P] 及以上操作系统.</string>
<string name="description_night_mode_preference_more">启用安卓系统的夜间模式:\n- API 级别 29 (安卓 10) [Q] 及以上: 通过 [ 设置 -> 显示 -> 主题 ] 开启.\n- API 级别 28 (安卓 9) [P]: 通过 [ 开发者选项 -> 夜间模式 ] 开启.\n\n对于基于 WebView 组件的内容 (如 AutoJs6 的文档页面), 夜间模式支持需要满足以下条件:\n1. WebView (或 Google Chrome 等浏览器) 版本要求:\n- API 级别 29 (安卓 10) [Q] 及以上: 版本不低于 76\n- API 级别 28 (安卓 9) [P]: 版本不低于 105\n2. WebView 组件页面内容可适配夜间模式 (通过 CSS 或 安卓 XML 资源等方式实现)</string>
<string name="description_notification_access">\"通知使用权\" (或 \"通知读取权限\") 允许 AutoJs6 读取系统通知内容, 使脚本可以监听通知或获取通知文本等.</string>
<string name="description_post_notifications">\"发送通知\" 权限允许 AutoJs6 向系统发布通知, 使脚本可以在通知栏发布并管理自定义通知等.\n\n注: 在 Android 13+ 设备上未授予该权限时, 部分通知可能无法显示, 并可能影响前台服务的启动与稳定性.</string>
<string name="description_project_media_access">被授予 \"投影媒体权限\" 后, 录制屏幕的安全提示窗口将不再弹出.</string>
<string name="description_restart_strategy">重启策略仅作用于主页抽屉栏的重启按钮.\n\n快速重启: 快速重启应用, 如果重启失败或出现非预期情况, 可尝试切换至 \"计划重启\".\n计划重启: 提前设置一个短时定时任务, 应用停止后会再次定时启动, 以实现应用重启.</string>
<string name="description_rhino_java_primitive_wrap">开关启用 (默认): 将 Java 方法返回的 Number/Boolean/Character 包装为 Java 对象暴露到脚本 (String 除外). typeof 为 \"object\", species 为 \"JavaObject\", 可访问这些对象的 Java 方法, 利于保留 Java 精确类型特征与方法重载行为.\n\n开关禁用: 不再包装上述类型, 直接作为 JavaScript 基元值 (number/boolean/单字符字符串). typeof 为相应 JavaScript 类型, 更贴近 JavaScript 语义与生态. 但仍可通过 new 关键字显式声明一个 Java 包装类型, 如 new java.lang.Boolean(true).\n\n参阅: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">如果设备使用非常规 Root 方式或 Root 权限检测结果异常, 可设置 \"强制 Root 模式\" 或 \"强制非 Root 模式\".</string>
<string name="description_root_record_out_file_type_preference">二进制文件: 不可编辑, 文件扩展名为 \"auto\"\nJavaScript 文件: 可编辑或直接复制, 文件扩展名为 \"js\"</string>
<string name="description_server_mode">服务端模式用于让 AutoJs6 在当前设备开启服务并等待外部客户端连接, 以便进行 [ 脚本传输 / 打印日志 / 远程控制 ] 等.\n\nAutoJs6 服务端模式支持两种连接方式:\n1. 局域网 (LAN)\n2. 安卓调试桥 (ADB)</string>
<string name="description_shizuku_access">通过 Shizuku 可以获得 ADB 特权并使用系统 API</string>
<string name="description_stable_mode">稳定模式省略布局细节, 脚本分析布局时更稳定, 但可能影响获取的控件总量.\n需重启无障碍服务.</string>
<string name="description_theme_color_preference">主题色的应用范围包括但不限于以下部件:\n系统通知栏\n应用栏 (AppBar)\n文件图标\n任务项图标\n浮动操作按钮 (FAB)\n设置页面类别标题\n按钮开关\n\n注: 截至 6.2.0 版本, AutoJs6 主题色暂未对 [ 主要色 (Primary Color) / 主要暗色 (Primary Dark Color) / 强调色 (Accent Color) ] 作出区分.</string>
<string name="description_timed_task_backend">控制脚本定时触发的底层机制.\n\nAlarmManager: 通过申请 \"允许设置闹钟和提醒\" 权限, 可使定时任务的触发更接近准时.\nWorkManager: 系统友好, 适合可接受一定延迟的非关键定时任务.\nJobScheduler: 旧实现, 仅用作兼容保留, 定时任务出现延迟的概率较大.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">使用场景与差异说明: \n\n1. AlarmManager\n适用于准时性敏感的定时任务, 如 [提醒/严格定时脚本/...].\n在 Android 12+ 获取 \"允许设置闹钟和提醒\" 权限后, 在息屏或待机状态时能够较准时地执行定时任务.\n在未授予 \"允许设置闹钟和提醒\" 权限时, 系统可能降级为不准时或延后执行任务.\n\n2. WorkManager\n适用于不要求严格准时执行的定时任务, 如 [非关键性同步/清理/统计/...].\n根据系统 [ 电量/网络/充电情况/待机策略/... ] 进行调度, 息屏或待机状态时可能推迟任务执行.\n虽无法保证时间精确性, 但在 [ 可靠完成/失败重试/链式执行/唯一任务去重 ] 等方面拥有独特优势.\n\n3. Job\n历史实现, 为兼容保留.\n在高版本安卓系统中定时任务可能存在较大的延迟执行问题.\n除非出于兼容需要, 一般不推荐使用.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">使用场景与差异说明: \n\n1. AlarmManager\n适用于准时性敏感的定时任务, 如 [提醒/严格定时脚本/...].\n在 Android 12+ 设备上获取 \"允许设置闹钟和提醒\" 权限后, 在息屏或待机状态时能够较准时地执行定时任务.\n在未授予 \"允许设置闹钟和提醒\" 权限时, 系统可能降级为不准时或延后执行任务.\n\n2. WorkManager\n适用于不要求严格准时执行的定时任务, 如 [非关键性同步/清理/统计/...].\n根据系统 [ 电量/网络/充电情况/待机策略/... ] 进行调度, 息屏或待机状态时可能推迟任务执行.\n虽无法保证时间精确性, 但在 [ 可靠完成/失败重试/链式执行/唯一任务去重 ] 等方面拥有独特优势.\n\n3. Job\n历史实现, 为兼容保留.\n在高版本安卓系统中定时任务可能存在较大的延迟执行问题.\n除非出于兼容需要, 一般不推荐使用.</string>
<string name="description_usage_stats_access">\"查看使用情况\" 权限可获取本设备过去使用应用的情况, 从而使 \"获取当前应用\" (currentPackage) 结果更准确</string>
<string name="description_version_histories_preference">查看 AutoJs6 在 GitHub 发行版本的历史更新记录及重要分类的统计数据.</string>
<string name="description_write_secure_settings">安全设置包含应用程序可读但不可写入的设置选项, 这些选项只能由 UI 或系统级别应用修改.\n被授予 \"修改安全设置权限\" 后, 普通应用可直接修改上述安全设置 (例如无障碍服务).</string>
<string name="description_write_system_settings">\"修改系统设置\" 权限允许 AutoJs6 修改部分系统设置项, 使脚本可以修改 [ 屏幕亮度 / 自动旋转 / 屏幕超时 ] 等系统设置参数.</string>
<string name="dialog_button_advanced_settings">高级设置</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">取消</string>
<string name="dialog_button_cancel_download">取消下载</string>
<string name="dialog_button_clear_items">清空记录</string>
<string name="dialog_button_confirm">确定</string>
<string name="dialog_button_connect">连接</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">继续连接</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">默认前缀</string>
<string name="dialog_button_details">了解更多</string>
<string name="dialog_button_dismiss">关闭</string>
<string name="dialog_button_download_with_browser">浏览器下载</string>
<string name="dialog_button_exception_details">异常详情</string>
<string name="dialog_button_file_information">文件信息</string>
<string name="dialog_button_history">历史记录</string>
<string name="dialog_button_ignore_current_update">忽略此版本</string>
<string name="dialog_button_join_group">加入群组</string>
<string name="dialog_button_manager">管理器</string>
<string name="dialog_button_more">了解更多</string>
<string name="dialog_button_open_color_palette">打开调色盘</string>
<string name="dialog_button_quit">放弃</string>
<string name="dialog_button_quit_connecting">放弃连接</string>
<string name="dialog_button_remove">移除</string>
<string name="dialog_button_retrieve">获取</string>
<string name="dialog_button_retry">重试</string>
@@ -118,6 +143,8 @@
<string name="dialog_button_version_histories">版本历史</string>
<string name="dialog_button_view_file">查看文件</string>
<string name="dialog_button_view_shortcuts">查看快捷方式</string>
<string name="dialog_button_view_update">查看更新</string>
<string name="dialog_button_view_with_browser">浏览器查看</string>
<string name="dialog_title_color_details">颜色详情</string>
<string name="dialog_title_color_palette">调色盘</string>
<string name="dialog_title_theme_color_details">主题色详情</string>
@@ -167,6 +194,8 @@
<string name="error_arguments_cannot_be_empty">参数列表不可为空</string>
<string name="error_arguments_must_be_empty">参数列表需为空</string>
<string name="error_at_least_one_abi_needs_to_be_selected">需要至少选择一个 ABI</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 应用版本需不低于 %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 应用版本号需不低于 %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">Bitmap 与 Mat 不能同时为 null</string>
<string name="error_cannot_be_null">%s 不能为 null</string>
<string name="error_cannot_connect_to_github">无法连接到 GitHub</string>
@@ -201,11 +230,17 @@
<string name="error_failed_to_grant_shizuku_access">Shizuku 权限授予失败</string>
<string name="error_failed_to_instantiate">实例 \"%s\" 创建失败</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[实例 \"%1$s\" 创建失败: [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">管理器启动失败</string>
<string name="error_failed_to_launch_system_settings">系统设置启动失败</string>
<string name="error_failed_to_load_plugins_with_reason">插件读取失败.\n原因: %1$s.</string>
<string name="error_failed_to_render_content">内容渲染失败</string>
<string name="error_failed_to_retrieve_changelog">获取更新日志失败</string>
<string name="error_failed_to_retrieve_release_notes">获取发行说明失败</string>
<string name="error_failed_to_retrieve_version_histories">获取版本历史失败</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">获取 version.properties 失败, 无法解析版本信息</string>
<string name="error_failed_to_revoke_shizuku_access">Shizuku 权限撤销失败</string>
<string name="error_failed_to_run_script">脚本运行失败</string>
<string name="error_failed_to_save_project_config">保存项目配置失败</string>
<string name="error_file_in_path_does_not_exist">路径 \"%1$s\" 对应文件不存在</string>
<string name="error_function_called_in_ui_thread">UI 线程内无法执行阻塞操作. 可尝试在子线程或子脚本中执行 %s()</string>
<string name="error_function_called_more_than_once">%s() 调用不能超过一次</string>
@@ -242,6 +277,7 @@
<string name="error_no_applications_available_for_playing_this_file">未找到用于播放该文件的应用</string>
<string name="error_no_applications_available_for_sending_this_file">未找到用于发送该文件的应用</string>
<string name="error_no_applications_available_for_viewing_this_file">未找到用于查看该文件的应用</string>
<string name="error_no_available_url_provided_for_current_plugin">当前插件未提供可用的 URL</string>
<string name="error_no_display_over_other_apps_permission">缺少 \"显示在其他应用上层\" 权限</string>
<string name="error_no_permission_to_access_shizuku">缺少 Shizuku 访问权限</string>
<string name="error_no_post_notifications_permission">缺少 \"发布通知\" 权限</string>
@@ -270,6 +306,7 @@
<string name="error_shizuku_is_not_installed">Shizuku 未安装</string>
<string name="error_shizuku_service_may_be_not_running">Shizuku 服务可能未运行</string>
<string name="error_shizuku_version_is_not_supported">Shizuku 版本不支持</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定的 AutoJs6 应用版本号需大于 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">必需属性 "%1$s" 的转换器不能返回空值</string>
<string name="error_thread_is_not_alive">线程处于非活动状态</string>
<string name="error_unable_to_use_shizuku_service">无法使用 Shizuku 服务</string>
@@ -480,6 +517,7 @@
<string name="text_captured_window_info_type_unknown">未知类型</string>
<string name="text_category_filter">类别筛选</string>
<string name="text_change_working_dir">更改工作路径</string>
<string name="text_changelog">更新日志</string>
<string name="text_changelog_item_dependency">部分依赖或本地库版本调整</string>
<string name="text_check_for_updates">检查更新</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">检查更新 (忽略本地版本)</string>
@@ -517,7 +555,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">以下历史记录将被清空\n\n[ 全部颜色库 ]\n\n是否确定清空</string>
<string name="text_confirm_to_delete">是否确定删除</string>
<string name="text_confirm_to_remove">是否确定移除</string>
<string name="text_confirm_to_uninstall">是否确定卸载</string>
<string name="text_connect_to_pc">连接到计算机</string>
<string name="text_connected">已连接</string>
<string name="text_connected_count_with_colon">已连接: %1$d</string>
<string name="text_connection_cannot_be_established">无法建立连接</string>
<string name="text_console">控制台</string>
<string name="text_continue">继续</string>
@@ -639,6 +680,7 @@
<string name="text_failed_to_retrieve">获取失败</string>
<string name="text_failed_to_save_remote_project_to_local_storage">无法保存远程项目至本地</string>
<string name="text_failed_to_send_log_entries">日志条目发送失败</string>
<string name="text_failed_to_update">更新失败</string>
<string name="text_failed_to_write_file">文件写入失败</string>
<string name="text_file">文件</string>
<string name="text_file_details">文件详情</string>
@@ -663,7 +705,6 @@
<string name="text_floating_button">浮动按钮</string>
<string name="text_force_stop">强制停止</string>
<string name="text_foreground_service">前台服务</string>
<string name="text_foreground_service_description">前台服务执行一些用户能注意到的操作.\n前台服务必须显示通知, 确保用户知道应用正在执行的任务.\n前台服务通知无法移除, 除非服务停止运行.\n可通过长按通知将通知优先级降低 (部分系统支持关闭前台服务通知), 以减少通知对用户的影响.</string>
<string name="text_formatting_completed">格式化已完成</string>
<string name="text_function">函数</string>
<string name="text_fx_keyboard">多功能键盘</string>
@@ -703,9 +744,11 @@
<string name="text_install_from_url">从 \"URL\" 安装</string>
<string name="text_install_plugin_from_url">从 \"URL\" 安装插件</string>
<string name="text_installable">可安装</string>
<string name="text_integrity_verification_failed">完整性验证失败</string>
<string name="text_invalid_character_is_removed">无效字符已被移除</string>
<string name="text_invalid_package_name">无效包名</string>
<string name="text_invalid_project">无效项目</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP 地址 \"%1$s\" 具备特殊用途 (回环/广播/多播/保留/...), 因此可能无法用于连接目标服务器.</string>
<string name="text_is_latest_version">已是最新版本</string>
<string name="text_issue_report">问题反馈</string>
<string name="text_js_file">*.js 文件</string>
@@ -773,11 +816,13 @@
<string name="text_night_mode">夜间模式</string>
<string name="text_no_browser">未安装浏览器应用</string>
<string name="text_no_content">无内容</string>
<string name="text_no_content_description">无内容描述</string>
<string name="text_no_histories">无历史记录</string>
<string name="text_no_ignored_updates">暂无已忽略更新</string>
<string name="text_no_log_entries_to_copy">无可复制的日志条目</string>
<string name="text_no_log_entries_to_export">无可导出的日志条目</string>
<string name="text_no_log_entries_to_send">无可发送的日志条目</string>
<string name="text_no_plugins_installed_hint">当前没有已安装的插件.\n可点击 \"+\" 按钮安装插件.</string>
<string name="text_no_root">免 root</string>
<string name="text_no_root_access">无 root 权限</string>
<string name="text_no_scripts_to_stop_running">无运行中的脚本</string>
@@ -920,7 +965,6 @@
<string name="text_project">项目</string>
<string name="text_project_location">项目位置</string>
<string name="text_project_media_access">投影媒体权限</string>
<string name="text_project_media_access_description">被授予 \"投影媒体权限\" 后, 录制屏幕的安全提示窗口将不再弹出.</string>
<string name="text_prompt">提示</string>
<string name="text_quit">放弃</string>
<string name="text_recommended">推荐</string>
@@ -936,6 +980,7 @@
<string name="text_register">注册</string>
<string name="text_register_succeed">注册成功</string>
<string name="text_registering">注册中</string>
<string name="text_release_notes">发行说明</string>
<string name="text_remote">远程</string>
<string name="text_remote_file_saved_to_local_storage_successfully">远程文件已保存至本地</string>
<string name="text_remote_project_saved_to_local_storage_successfully">远程项目已保存至本地</string>
@@ -954,6 +999,9 @@
<string name="text_restart">重启</string>
<string name="text_restart_strategy">重启策略</string>
<string name="text_result">结果</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">正在获取更新日志...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">正在获取插件列表数据...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">正在获取发行说明...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">在 Shizuku 应用中撤销 AutoJs6 权限</string>
<string name="text_rhino_java_primitive_wrap">Java 原始类型包装</string>
<string name="text_root_mode_title">Root 权限检查</string>
@@ -984,6 +1032,8 @@
<string name="text_save_and_exit">保存并退出</string>
<string name="text_save_simplified">保存</string>
<string name="text_save_to">保存到</string>
<string name="text_scheduled_restart_backend">调度引擎</string>
<string name="text_scheduled_restart_start_delay">启动延迟</string>
<string name="text_script_record">录制脚本</string>
<string name="text_script_running">脚本运行</string>
<string name="text_search">搜索</string>
@@ -1006,8 +1056,8 @@
<string name="text_set_as_working_dir">用作工作路径</string>
<string name="text_set_breakpoint">设置断点</string>
<string name="text_settings">设置</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 验证不一致.\n\n期望值: %1$s\n实际值: %2$s</string>
<string name="text_shizuku_access">Shizuku 权限</string>
<string name="text_shizuku_access_description">通过 Shizuku 可以获得 ADB 特权并使用系统 API</string>
<string name="text_shizuku_service_may_need_to_be_run_first">可能需要先运行 Shizuku 服务</string>
<string name="text_should_not_be_empty">文本不能为空</string>
<string name="text_show_layout_bounds">在布局范围中查看</string>
@@ -1062,6 +1112,10 @@
<string name="text_undo_simplified">撤销</string>
<string name="text_uninstall">卸载</string>
<string name="text_unknown">未知</string>
<string name="text_unknown_author_for_plugin">未知开发者</string>
<string name="text_unknown_description_for_plugin">未知描述</string>
<string name="text_unknown_title_for_plugin">未知标题</string>
<string name="text_unknown_version_for_plugin">未知版本</string>
<string name="text_unverified">未验证</string>
<string name="text_updatable">可更新</string>
<string name="text_update">更新</string>
@@ -1070,7 +1124,6 @@
<string name="text_updates_snack_bar_act_later">稍后提示</string>
<string name="text_updates_snack_bar_act_view">查看更新</string>
<string name="text_usage_stats_permission">查看使用情况权限</string>
<string name="text_usage_stats_permission_description">\"查看使用情况\" 权限可获取本设备过去使用应用的情况,从而使 \"获取当前应用\" (currentPackage) 结果更准确</string>
<string name="text_use_android_n_shortcut">使用安卓 7.0 快捷方式</string>
<string name="text_use_default_icon">使用默认图标</string>
<string name="text_use_volume_control_record">使用 \"音量减\" 键控制录制</string>
@@ -1105,38 +1158,6 @@
<string name="text_weekly_task_should_check_day_of_week">需至少选择一天</string>
<string name="text_working_dir_path">工作路径</string>
<string name="text_write_secure_settings">修改安全设置</string>
<string name="text_write_secure_settings_description">安全设置包含应用程序可读但不可写入的设置选项, 这些选项只能由 UI 或系统级别应用修改.\n被授予 \"修改安全设置权限\" 后, 普通应用可直接修改上述安全设置 (例如无障碍服务).</string>
<string name="text_write_system_settings">修改系统设置</string>
<string name="text_integrity_verification_failed">完整性验证失败</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 验证不一致.\n\n期望值: %1$s\n实际值: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">当前插件未提供可用的 URL</string>
<string name="text_failed_to_update">更新失败</string>
<string name="text_confirm_to_uninstall">是否确定卸载</string>
<string name="dialog_button_exception_details">异常详情</string>
<string name="error_failed_to_load_plugins_with_reason">插件读取失败.\n原因: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">正在获取插件列表数据...</string>
<string name="text_no_plugins_installed_hint">当前没有已安装的插件.\n可点击 \"+\" 按钮安装插件.</string>
<string name="text_unknown_author_for_plugin">未知开发者</string>
<string name="text_unknown_description_for_plugin">未知描述</string>
<string name="text_unknown_version_for_plugin">未知版本</string>
<string name="text_unknown_title_for_plugin">未知标题</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">指定的 AutoJs6 应用版本号需大于 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 应用版本号需不低于 %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 应用版本需不低于 %1$s</string>
<string name="dialog_button_view_update">查看更新</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">获取当前显示语言对应的更新日志失败, 可稍后再次尝试.\n\n目前将临时显示 \"简体中文 (zh-Hans)\" 语言的发行说明.</string>
<string name="error_failed_to_retrieve_changelog">获取更新日志失败</string>
<string name="error_failed_to_retrieve_release_notes">获取发行说明失败</string>
<string name="text_changelog">更新日志</string>
<string name="text_release_notes">发行说明</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">正在获取更新日志...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">正在获取发行说明...</string>
<string name="dialog_button_view_with_browser">浏览器查看</string>
<string name="text_scheduled_restart_backend">调度引擎</string>
<string name="text_scheduled_restart_start_delay">启动延迟</string>
<string name="dialog_button_advanced_settings">高级设置</string>
<string name="error_failed_to_save_project_config">保存项目配置失败</string>
<string name="text_connected">已连接</string>
<string name="text_connected_count_with_colon">已连接: %1$d</string>
</resources>

View File

@@ -87,6 +87,7 @@
<color name="dialog_button_failure">@color/dialog_button_error</color>
<color name="dialog_button_finish">#009624</color>
<color name="dialog_button_hint">#0DA798</color>
<color name="dialog_button_manager">@color/md_deep_purple_900</color>
<color name="dialog_button_reset">#A1887F</color>
<color name="dialog_button_not_recommended">#A1887F</color>
<color name="dialog_button_success">@color/dialog_button_finish</color>
@@ -140,8 +141,9 @@
<color name="tint_1st_developer_identifier">#2B7A85</color>
<color name="tint_2nd_developer_identifier">#CC7A34</color>
<color name="drawer_menu_group_text_color">#999999</color>
<color name="drawer_menu_group_text_color">#939393</color>
<color name="drawer_menu_item_text_color">#484C4F</color>
<color name="drawer_menu_group_divider_color">#F2F3F5</color>
<color name="market_button_selected">#E14123</color>
<color name="market_button_unselected">#939393</color>

View File

@@ -7,7 +7,7 @@
<dimen name="plugin_center_item_side_length">64dp</dimen>
<dimen name="plugin_center_item_icon_border_width">1dp</dimen>
<dimen name="content_inset">16dp</dimen>
<dimen name="divider_drawer_menu_group">6dp</dimen>
<dimen name="divider_drawer_menu_group">1.5dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="floaty_window_offset">12dp</dimen>
<dimen name="github_avatar_border_width">1dp</dimen>

View File

@@ -145,10 +145,6 @@
<string name="key_restart_strategy" translatable="false">key_$_restart_strategy</string>
<string name="key_restart_strategy_quick" translatable="false">key_$_restart_strategy_quick</string>
<string name="key_restart_strategy_scheduled" translatable="false">key_$_restart_strategy_scheduled</string>
<string name="key_scheduled_restart_backend" translatable="false">key_$_scheduled_restart_backend</string>
<string name="key_scheduled_restart_backend_alarm_manager" translatable="false">key_$_scheduled_restart_backend_alarm_manager</string>
<string name="key_scheduled_restart_backend_work_manager" translatable="false">key_$_scheduled_restart_backend_work_manager</string>
<string name="key_scheduled_restart_delay" translatable="false">key_$_scheduled_restart_delay</string>
<string name="key_rhino_java_primitive_wrap" translatable="false">key_$_rhino_java_primitive_wrap</string>
<string name="key_root_mode" translatable="false">key_$_root_mode</string>
<string name="key_root_mode_auto_detect" translatable="false">key_$_root_mode_auto_detect</string>
@@ -157,6 +153,10 @@
<string name="key_root_record_out_file_type" translatable="false">key_$_root_record_out_file_type</string>
<string name="key_root_record_out_file_type_binary" translatable="false">key_$_root_record_out_file_type_binary</string>
<string name="key_root_record_out_file_type_js" translatable="false">key_$_root_record_out_file_type_js</string>
<string name="key_scheduled_restart_backend" translatable="false">key_$_scheduled_restart_backend</string>
<string name="key_scheduled_restart_backend_alarm_manager" translatable="false">key_$_scheduled_restart_backend_alarm_manager</string>
<string name="key_scheduled_restart_backend_work_manager" translatable="false">key_$_scheduled_restart_backend_work_manager</string>
<string name="key_scheduled_restart_delay" translatable="false">key_$_scheduled_restart_delay</string>
<string name="key_scripts_after_app_restart" translatable="false">key_$_scripts_after_app_restart</string>
<string name="key_server_address" translatable="false">key_$_server_address</string>
<string name="key_server_socket_normally_closed" translatable="false">key_$_server_socket_normally_closed</string>
@@ -308,6 +308,7 @@
<string name="content_description_fab_for_display_manifest">A Floating Action Button widget for displaying the manifest</string>
<string name="content_failed_to_determine_index_of_theme_color_item">Failed to determine the index of the theme color item</string>
<string name="content_failed_to_locate_library_for_theme_color">Failed to locate the color library for the theme color</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Failed to retrieve the changelog for the currently displayed language. You can try again later.\n\nFor now, the release notes for \"Simplified Chinese (zh-Hans)\" will be shown temporarily.</string>
<string name="content_github_feedback">A web page will be launched to report an issue.\nAn account for GitHub may be needed.</string>
<string name="content_way_of_output_for_recorded_script">Select a way of output for recorded script</string>
<string name="crash_feedback">Copy debugging log or exit directly</string>
@@ -319,47 +320,71 @@
<string name="default_value_working_directory">/Scripts</string>
<string name="description_about_app_and_developer_preference">AutoJs6 is a JavaScript automated tool for android, which is open-source and cloned from \"hyb1996/Auto.js\".\n\nTo ask for help or feedback, go to GitHub issues or join Tencent QQ group 690946137.</string>
<string name="description_about_app_tips_preference">1. Press and hold the app icon on the \"About app and developer\" page to jump to AutoJs6 developer options page</string>
<string name="description_accessibility_service">The accessibility service is AutoJs6\'s core capability for automation. It is used to read on-screen widget information and simulate interactions such as [ click / swipe / input ].\n\nMost automation-related functions, as well as tools like layout analysis, require the accessibility service to be enabled to work properly.</string>
<string name="description_all_files_access" tools:ignore="TypographyEllipsis">The \"manage all files\" (or \"all files access\") permission allows AutoJs6 to directly [ create / read / modify / delete ] files in shared storage via normal file paths, allowing scripts to access \"Internal Storage\" and enabling the file manager to display and manage files properly.\n\nOn Android 11+ devices, this is the primary way to achieve full file read/write access.</string>
<string name="description_app_language_preference">Preference for changing the display language of AutoJs6, including exception messages from running scripts.\n\nNote: an app restart may be needed to make language applied as expected.</string>
<string name="description_auto_night_mode">When auto night mode is enabled, AutoJs6 will automatically switch night mode based on system settings.\n\nNote: the auto night mode toggle and the night mode toggle are linked and affect each other.</string>
<string name="description_change_working_dir_preference">Change the path of the directory containing scripts</string>
<string name="description_check_for_updates_preference">AutoJs6 gets and downloads updates from GitHub.</string>
<string name="description_client_mode">Client mode allows AutoJs6 to actively connect to a remote server for [ script transfer / log printing / remote control ].\n\nTypically, the device and the server need to be on the same LAN or on a network where they can reach each other.</string>
<string name="description_display_over_other_app">The \"display over other apps\" permission allows AutoJs6 to show floating windows or a floating button above other apps, enabling quick actions or information viewing on any screen.\n\nNote: without this permission, floating windows and the floating button may not be shown or may not work properly.</string>
<string name="description_documentation_source_preference">Local docs: Using AutoJs6 build-in files as documentation sources, no network connection required. The content changes as AutoJs6 is updated.\nOnline docs: Using GitHub pages as documentation sources, requiring network connection. The content is always up to date.\n\nNote: To maximize the reading experience of online documents, it is recommended to use a widescreen display device such as a desktop monitor.\nNote: As of version 6.2.0, the documentation is still in the preliminary stages of development, and most of the content has not yet been written or updated.</string>
<string name="description_documentation_source_preference_more">The following conditions must be met for dark theme support on document pages:\n1. AutoJs6 has night mode enabled\n2. Android System WebView (or browsers like Google Chrome):\n- Android API Level 29 (Android 10) [Q] and above: version >= 76\n- Android API Level 28 (Android 9) [P] and below: version >= 105</string>
<string name="description_extending_js_build_in_objects">Extending JavaScript built-in objects can increase code flexibility and enable richer functionality, but can cause conflicts and even breakage.\nAll scripts have built-in extensions enabled by default when the option is turned on.\nBuilt-in extensions are often insecure, and are not recommended unless the principles and risks of built-in extensions are clearly understood.\nWhen the option is turned off, built-in extensions can still be enabled through the plugins global object, as described in the project documentation.</string>
<string name="description_file_extensions_preference">Used to set whether to show file extensions in AutoJs6 file explorer.</string>
<string name="description_floating_button">The floating button shows a draggable quick-entry on the screen edge, and can be used for [ starting or stopping scripts / layout analysis / viewing recent package name or activity name / showing pointer location ].\n\nNote: this feature typically requires the \"display over other apps\" permission.</string>
<string name="description_foreground_service">Foreground service is used to keep AutoJs6 running more stably in the background, suitable for scenarios like [ long-running scripts / keeping connections / continuous listening ].\n\nAfter enabling it, the system will display a \"foreground service notification\" to inform the user that AutoJs6 is continuously running. This notification typically stays visible until the service stops.\n\nSetting the notification to \"Silent\" or \"Minimize\" only reduces the prominence and generally does not affect foreground service functionality.\n\nIf the notification channel is disabled or AutoJs6 is prevented from posting notifications, it may affect foreground service startup and stability.</string>
<string name="description_hidden_files_preference">Used to set whether to show hidden files and folders (usually starting with \".\") in AutoJs6 file explorer.</string>
<string name="description_ignore_battery_optimizations">Ignoring battery optimizations can reduce system background restrictions on AutoJs6, helping scheduled tasks or long-running scripts run relatively more stably while the device is idle.\n\nNote: different OEM systems may still apply additional power-saving policies, such as auto-start restrictions or background freezing.</string>
<string name="description_keep_screen_on_when_in_foreground">Used to control whether the screen stays on while AutoJs6 is in the foreground.</string>
<string name="description_keep_screen_on_when_in_foreground_preference">Preference for keeping the device\'s screen turned on and bright when AutoJs6 is in the foreground.\nTo make it happen only on the homepage among all pages of the AutoJs6 application, choose \"homepage only\" option.</string>
<string name="description_launcher_icon_preference">Launcher icon supports both adaptive icon or legacy transparent background icon display modes. The actual display effect may vary on different Android systems. It may take a few seconds to take effect after switching display modes.</string>
<string name="description_launcher_shortcuts">Shortcuts can perform specific actions in AutoJs6. Users can display these shortcuts in a supported launcher and quickly start some tasks or launch an activity, such as reading AutoJs6 application documentation, launching AutoJs6 settings page, and so on.</string>
<string name="description_manage_ignored_updates_preference">Click to view or manage list items.\nLong press to remove the list item.</string>
<string name="description_night_mode">Used to control and reflect AutoJs6\'s night mode strategy.\n\nNote: the night mode toggle and the auto night mode toggle are linked and affect each other.</string>
<string name="description_night_mode_preference">Night mode (also known as Dark theme) applies to both the Android system UI and apps running on the device, which improves visibility for users with low vision and those who are sensitive to bright light, and makes it easier for anyone to use a device in a low-light environment.\n\nFollow system: AutoJs6 has Night mode settings same as Android system\nAlways on: AutoJs6 keeps Night mode on (regardless of Android system settings)\nAlways off: AutoJs6 keeps Night mode off (regardless of Android system settings)\n\nNote: Follow system option is only for Android API Level 28 (Android 9) [P] and above.</string>
<string name="description_night_mode_preference_more">To enable Night mode in Android system:\n- Android API Level 29 (Android 10) [Q] and above: Settings -> Display -> Theme.\n- Android API Level 28 (Android 9) [P]: Developer options -> Night mode.\n\nThe following conditions must to met for applying a Night mode (Dark theme) to web-based content using a WebView component (like AutoJs6 documentation page):\n1. Android System WebView (or browsers like Google Chrome):\n- Android API Level 29 (Android 10) [Q] and above: version >= 76\n- Android API Level 28 (Android 9) [P]: version >= 105\n2. Web-based content in WebView component is adapted to Dark theme (by CSS or Android XML resources and so forth)</string>
<string name="description_notification_access">The \"notification access\" (or \"notification reading\") permission allows AutoJs6 to read system notification content, so scripts can listen for notifications or retrieve notification text, etc.</string>
<string name="description_post_notifications">The \"post notifications\" permission allows AutoJs6 to publish notifications to the system, so scripts can post and manage custom notifications in the notification shade.\n\nNote: on Android 13+ devices, if this permission is not granted, some notifications may not show, and it may affect foreground service startup and stability.</string>
<string name="description_project_media_access">With project media access, security warning for screen recording will not prompt.</string>
<string name="description_restart_strategy">The restart strategy only affects the restart button in the home page drawer.\n\nQuick restart: Quickly restarts the app. If the restart fails or unexpected situations occur, try switching to \"Scheduled restart\".\nScheduled restart: Sets up a short-timed task in advance. After the app stops, it will start again on schedule to achieve app restart.</string>
<string name="description_rhino_java_primitive_wrap">Switch ON (default): results of Java methods that are instances of Number/Boolean/Character are wrapped as Java objects and exposed to scripts (String excluded). typeof is \"object\", species is \"JavaObject\"; Java methods remain accessible, which helps retain precise Java type traits and overload resolution.\n\nSwitch OFF: the above types are no longer wrapped and are exposed directly as JavaScript primitives (number/boolean/onecharacter string). typeof is the corresponding JavaScript type, aligning better with JavaScript semantics and ecosystem. You can still explicitly create a Java wrapper via new, e.g. new java.lang.Boolean(true).\n\nSee: http://issues.autojs6.com/435</string>
<string name="description_root_mode_preference">If you have exotic root or abnormal state for root access, you can force set root to root or non-root.</string>
<string name="description_root_record_out_file_type_preference">Binary type: non-editable, with the file extension \"auto\"\nJavaScript type: can be edited or copied directly, with the file extension \"js\"</string>
<string name="description_server_mode">Server mode allows AutoJs6 to start a service on the current device and wait for external client connections for [ script transfer / log printing / remote control ].\n\nAutoJs6 server mode supports two connection methods:\n1. LAN\n2. Android Debug Bridge (ADB)</string>
<string name="description_shizuku_access">Shizuku makes it possible to uses system API with ADB privileges</string>
<string name="description_stable_mode">Stable mode makes it more stable when getting layout bounds, but some results may be ignored.\nA11y service\'s restart required.</string>
<string name="description_theme_color_preference">Theme color is applied to widgets including but not limited to the following ones:\nStatus bar\nAppbar\nFile icon\nTask item icon\nFAB\nSettings category title\nSwitch button\n\nNote: As of AutoJs6 version 6.2.0, there has been no difference between primary color, primary dark color and accent color yet.</string>
<string name="description_timed_task_backend">Controls the underlying mechanism for triggering scripts on a schedule.\n\nAlarmManager: With the “Allow setting alarms and reminders” permission granted, scheduled tasks can fire closer to the exact time.\nWorkManager: System-friendly; suitable for non-critical tasks that can tolerate some delay.\nJobScheduler: Legacy implementation kept for compatibility; higher chance of delays.</string>
<string name="description_timed_task_backend_more" tools:ignore="TypographyEllipsis">Use cases and differences:\n\n1. AlarmManager\nBest for time-sensitive tasks, e.g., [reminders/strictly scheduled scripts/...].\nOn Android 12+ with the “Allow setting alarms and reminders” permission, tasks can run more on time even when the screen is off or the device is idle.\nWithout it, the system may degrade exactness or delay execution.\n\n2. WorkManager\nBest for tasks that dont require strict timing, e.g., [non-critical sync/cleanup/statistics/...].\nScheduling depends on [battery/network/charging/idle policies/...], so execution may be postponed when the screen is off or idle.\nWhile it cant guarantee exact timing, it excels at [reliable completion/retries/chaining/unique work de-duplication].\n\n3. JobScheduler\nHistorical implementation for compatibility.\nOn newer Android versions, tasks may be delayed more noticeably.\nGenerally not recommended unless required for compatibility.</string>
<string name="description_usage_stats_access">Provides access to device usage history and statistics which results in currentPackage() a more accurate result</string>
<string name="description_version_histories_preference">View the release version history and key category statistics of AutoJs6 on GitHub.</string>
<string name="description_write_secure_settings">Secure system settings, containing system preferences that applications can read but are not allowed to write.\nThese are for preferences that the user must explicitly modify through the UI of a system app.\nWith secure system settings permission, normal applications can directly modify the secure settings (such as accessibility service).</string>
<string name="description_write_system_settings">The \"write system settings\" permission allows AutoJs6 to modify some system settings, so scripts can change system parameters such as [ screen brightness / auto-rotate / screen timeout ].</string>
<string name="dialog_button_advanced_settings">Advanced</string>
<string name="dialog_button_back">@string/text_back</string>
<string name="dialog_button_cancel">Cancel</string>
<string name="dialog_button_cancel_download">Cancel</string>
<string name="dialog_button_clear_items">Clear</string>
<string name="dialog_button_confirm">OK</string>
<string name="dialog_button_connect">Connect</string>
<string name="dialog_button_continue">@string/text_continue</string>
<string name="dialog_button_continue_connecting">@string/dialog_button_continue</string>
<string name="dialog_button_copy">@string/text_copy</string>
<string name="dialog_button_default_prefix">Def prefix</string>
<string name="dialog_button_details">Details</string>
<string name="dialog_button_dismiss">Dismiss</string>
<string name="dialog_button_download_with_browser">Browser</string>
<string name="dialog_button_exception_details">Details</string>
<string name="dialog_button_file_information">File info</string>
<string name="dialog_button_history">History</string>
<string name="dialog_button_ignore_current_update">Ignore</string>
<string name="dialog_button_join_group">Join group</string>
<string name="dialog_button_manager">Manager</string>
<string name="dialog_button_more">More</string>
<string name="dialog_button_open_color_palette">Palette</string>
<string name="dialog_button_quit">Quit</string>
<string name="dialog_button_quit_connecting">@string/dialog_button_quit</string>
<string name="dialog_button_remove">Remove</string>
<string name="dialog_button_retrieve">Retrieve</string>
<string name="dialog_button_retry">Retry</string>
@@ -372,6 +397,8 @@
<string name="dialog_button_version_histories">Histories</string>
<string name="dialog_button_view_file">View File</string>
<string name="dialog_button_view_shortcuts">View shortcuts</string>
<string name="dialog_button_view_update">View update</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="dialog_title_color_details">Color details</string>
<string name="dialog_title_color_palette">Color palette</string>
<string name="dialog_title_theme_color_details">Theme color details</string>
@@ -424,6 +451,8 @@
<string name="error_arguments_cannot_be_empty">Arguments cannot be empty</string>
<string name="error_arguments_must_be_empty">Arguments must be empty</string>
<string name="error_at_least_one_abi_needs_to_be_selected">At least one ABI needs to be selected</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 version must not be lower than %1$s</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 version number must not be lower than %1$s</string>
<string name="error_both_bitmap_and_mat_are_null">Both bitmap and mat are null</string>
<string name="error_cannot_be_null">%s cannot be null</string>
<string name="error_cannot_connect_to_github">Cannot connect to GitHub</string>
@@ -458,11 +487,17 @@
<string name="error_failed_to_grant_shizuku_access">Failed to grant Shizuku access</string>
<string name="error_failed_to_instantiate">Failed to instantiate "%s"</string>
<string name="error_failed_to_instantiate_with_cause"><![CDATA[Failed to instantiate "%1$s": [ %2$s ]]]></string>
<string name="error_failed_to_launch_manager">Failed to launcher manager</string>
<string name="error_failed_to_launch_system_settings">Failed to launch system settings</string>
<string name="error_failed_to_load_plugins_with_reason">Failed to load plugins.\nReason: %1$s.</string>
<string name="error_failed_to_render_content">Failed to render content</string>
<string name="error_failed_to_retrieve_changelog">Failed to retrieve changelog</string>
<string name="error_failed_to_retrieve_release_notes">Failed to retrieve release notes</string>
<string name="error_failed_to_retrieve_version_histories">Failed to retrieve version histories</string>
<string name="error_failed_to_retrieve_version_properties_file_to_parse_version_information">Failed to retrieve version.properties to parse version information</string>
<string name="error_failed_to_revoke_shizuku_access">Failed to revoke Shizuku access</string>
<string name="error_failed_to_run_script">Failed to run script</string>
<string name="error_failed_to_save_project_config">Failed to save project config</string>
<string name="error_file_in_path_does_not_exist">File in path \"%1$s\" does not exist</string>
<string name="error_function_called_in_ui_thread">UI thread cannot be blocked. Try running %s() in sub-thread or sub-script</string>
<string name="error_function_called_more_than_once">%s() called more than once</string>
@@ -499,6 +534,7 @@
<string name="error_no_applications_available_for_playing_this_file">No applications available for playing this file</string>
<string name="error_no_applications_available_for_sending_this_file">No applications available for sending this file</string>
<string name="error_no_applications_available_for_viewing_this_file">No applications available for viewing this file</string>
<string name="error_no_available_url_provided_for_current_plugin">No available URL provided for current plugin</string>
<string name="error_no_display_over_other_apps_permission">No \"display over other apps\" permission</string>
<string name="error_no_permission_to_access_shizuku">No permission to access Shizuku</string>
<string name="error_no_post_notifications_permission">No \"post notifications\" permission</string>
@@ -527,6 +563,7 @@
<string name="error_shizuku_is_not_installed">Shizuku is not installed</string>
<string name="error_shizuku_service_may_be_not_running">Shizuku service may be not running</string>
<string name="error_shizuku_version_is_not_supported">Shizuku version is not supported</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Specified AutoJs6 version number must be greater than 461</string>
<string name="error_the_transformer_for_required_property_cannot_return_nullish">The transformer for required property \"%1$s\" cannot return nullish</string>
<string name="error_thread_is_not_alive">Thread is not alive</string>
<string name="error_unable_to_use_shizuku_service">Unable to use Shizuku service</string>
@@ -737,6 +774,7 @@
<string name="text_captured_window_info_type_unknown">Unknown type</string>
<string name="text_category_filter">Category filter</string>
<string name="text_change_working_dir">Change working directory</string>
<string name="text_changelog">Changelog</string>
<string name="text_changelog_item_dependency">Some dependency or local library version adjustments</string>
<string name="text_check_for_updates">Check for updates</string>
<string name="text_check_for_updates_while_ignoring_the_local_version">Check for updates (ignore the local version)</string>
@@ -774,7 +812,10 @@
<string name="text_confirm_to_clear_histories_of_all_color_libraries">All histories below will be cleared\n\n[ All color libraries ]\n\nAre you sure to clear them all?</string>
<string name="text_confirm_to_delete">Are you sure to delete?</string>
<string name="text_confirm_to_remove">Are you sure to remove?</string>
<string name="text_confirm_to_uninstall">Are you sure to uninstall?</string>
<string name="text_connect_to_pc">Connect to PC</string>
<string name="text_connected">Connected</string>
<string name="text_connected_count_with_colon">Connected: %1$d</string>
<string name="text_connection_cannot_be_established">Connection cannot be established</string>
<string name="text_console">Console</string>
<string name="text_continue">Continue</string>
@@ -896,6 +937,7 @@
<string name="text_failed_to_retrieve">Failed to retrieve</string>
<string name="text_failed_to_save_remote_project_to_local_storage">Failed to save remote project to local storage</string>
<string name="text_failed_to_send_log_entries">Failed to send log entries</string>
<string name="text_failed_to_update">Failed to update</string>
<string name="text_failed_to_write_file">Failed to write file</string>
<string name="text_file">File</string>
<string name="text_file_details">File details</string>
@@ -920,7 +962,6 @@
<string name="text_floating_button">Floating button</string>
<string name="text_force_stop">Force stop</string>
<string name="text_foreground_service">Foreground service</string>
<string name="text_foreground_service_description">Foreground services perform operations that are noticeable to the user.\nForeground services show a status bar notification, so that users are actively aware that your app is performing a task in the foreground and is consuming system resources.\nThe notification cannot be dismissed unless the service is either stopped or removed from the foreground.\nNotification may be set low priority, even be turned off, by long-pressing notification.</string>
<string name="text_formatting_completed">Formatting completed</string>
<string name="text_function">Function</string>
<string name="text_fx_keyboard">Fx keyboard</string>
@@ -960,9 +1001,11 @@
<string name="text_install_from_url">Install from \"URL\"</string>
<string name="text_install_plugin_from_url">Install plugin from \"URL\"</string>
<string name="text_installable">Installable</string>
<string name="text_integrity_verification_failed">Integrity verification failed</string>
<string name="text_invalid_character_is_removed">Invalid character is removed</string>
<string name="text_invalid_package_name">Invalid package name</string>
<string name="text_invalid_project">Invalid project</string>
<string name="text_ip_address_may_be_invalid_for_server_connection" tools:ignore="TypographyEllipsis">IP address \"%1$s\" has a special purpose (loopback/broadcast/multicast/reserved/...), so it may not be usable for connecting to the target server.</string>
<string name="text_is_latest_version">No newer version found</string>
<string name="text_issue_report">Feedback</string>
<string name="text_js_file">*.js file</string>
@@ -1030,11 +1073,13 @@
<string name="text_night_mode">Night mode</string>
<string name="text_no_browser">No browser installed</string>
<string name="text_no_content">No content</string>
<string name="text_no_content_description">No content description</string>
<string name="text_no_histories">No histories</string>
<string name="text_no_ignored_updates">No ignored updates</string>
<string name="text_no_log_entries_to_copy">No log entries to copy</string>
<string name="text_no_log_entries_to_export">No log entries to export</string>
<string name="text_no_log_entries_to_send">No log entries to send</string>
<string name="text_no_plugins_installed_hint">No plugins currently installed.\nClick the \"+\" button to install plugins.</string>
<string name="text_no_root">Non-root</string>
<string name="text_no_root_access">No root access</string>
<string name="text_no_scripts_to_stop_running">No scripts to stop running</string>
@@ -1177,7 +1222,6 @@
<string name="text_project">Project</string>
<string name="text_project_location">Project location</string>
<string name="text_project_media_access">Project media access</string>
<string name="text_project_media_access_description">With project media access, security warning for screen recording will not prompt.</string>
<string name="text_prompt">Prompt</string>
<string name="text_quit">Quit</string>
<string name="text_recommended">Recommended</string>
@@ -1193,6 +1237,7 @@
<string name="text_register">Register</string>
<string name="text_register_succeed">Register succeeded</string>
<string name="text_registering">Registering</string>
<string name="text_release_notes">Release notes</string>
<string name="text_remote">remote</string>
<string name="text_remote_file_saved_to_local_storage_successfully">Remote file saved to local storage successfully</string>
<string name="text_remote_project_saved_to_local_storage_successfully">Remote project saved to local storage successfully</string>
@@ -1211,6 +1256,9 @@
<string name="text_restart">Restart</string>
<string name="text_restart_strategy">Restart strategy</string>
<string name="text_result">Result</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Retrieving changelog...</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Retrieving plugin list data...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Retrieving release notes...</string>
<string name="text_revoke_autojs6_access_in_shizuku_app">Revoke AutoJs6 access in Shizuku app</string>
<string name="text_rhino_java_primitive_wrap">Java primitive wrapping</string>
<string name="text_root_mode_title">Root access check</string>
@@ -1241,6 +1289,8 @@
<string name="text_save_and_exit">Save and exit</string>
<string name="text_save_simplified">Save</string>
<string name="text_save_to">Save to</string>
<string name="text_scheduled_restart_backend">Backend</string>
<string name="text_scheduled_restart_start_delay">Start delay</string>
<string name="text_script_record">Script recording</string>
<string name="text_script_running">Script running</string>
<string name="text_search">Search</string>
@@ -1263,8 +1313,8 @@
<string name="text_set_as_working_dir">Set as working dir</string>
<string name="text_set_breakpoint">Set a breakpoint</string>
<string name="text_settings">Settings</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 mismatch.\n\nExpected: %1$s\nActual: %2$s</string>
<string name="text_shizuku_access">Shizuku access</string>
<string name="text_shizuku_access_description">Shizuku makes it possible to uses system API with ADB privileges</string>
<string name="text_shizuku_service_may_need_to_be_run_first">Shizuku service may need to be run first</string>
<string name="text_should_not_be_empty">Text cannot be empty</string>
<string name="text_show_layout_bounds">View in layout bounds</string>
@@ -1319,6 +1369,10 @@
<string name="text_undo_simplified">Undo</string>
<string name="text_uninstall">Uninstall</string>
<string name="text_unknown">Unknown</string>
<string name="text_unknown_author_for_plugin">Unknown Author</string>
<string name="text_unknown_description_for_plugin">Unknown Description</string>
<string name="text_unknown_title_for_plugin">Unknown Title</string>
<string name="text_unknown_version_for_plugin">Unknown Version</string>
<string name="text_unverified">Unverified</string>
<string name="text_updatable">Updatable</string>
<string name="text_update">Update</string>
@@ -1327,7 +1381,6 @@
<string name="text_updates_snack_bar_act_later">Later</string>
<string name="text_updates_snack_bar_act_view">View</string>
<string name="text_usage_stats_permission">Usage stats access</string>
<string name="text_usage_stats_permission_description">Provides access to device usage history and statistics which results in currentPackage() a more accurate result</string>
<string name="text_use_android_n_shortcut">Use Android 7.0 shortcut</string>
<string name="text_use_default_icon">Use default icon</string>
<string name="text_use_volume_control_record">Use "Volume Down" key to control recording</string>
@@ -1362,38 +1415,6 @@
<string name="text_weekly_task_should_check_day_of_week">At least one day must be selected</string>
<string name="text_working_dir_path">Working directory path</string>
<string name="text_write_secure_settings">Write security settings</string>
<string name="text_write_secure_settings_description">Secure system settings, containing system preferences that applications can read but are not allowed to write.\nThese are for preferences that the user must explicitly modify through the UI of a system app.\nWith secure system settings permission, normal applications can directly modify the secure settings (such as accessibility service).</string>
<string name="text_write_system_settings">Write system settings</string>
<string name="text_integrity_verification_failed">Integrity verification failed</string>
<string name="text_sha256_mismatch_multiline_expected_actual">SHA-256 mismatch.\n\nExpected: %1$s\nActual: %2$s</string>
<string name="error_no_available_url_provided_for_current_plugin">No available URL provided for current plugin</string>
<string name="text_failed_to_update">Failed to update</string>
<string name="text_confirm_to_uninstall">Are you sure to uninstall?</string>
<string name="dialog_button_exception_details">Details</string>
<string name="error_failed_to_load_plugins_with_reason">Failed to load plugins.\nReason: %1$s.</string>
<string name="text_retrieving_plugin_list_data" tools:ignore="TypographyEllipsis">Retrieving plugin list data...</string>
<string name="text_no_plugins_installed_hint">No plugins currently installed.\nClick the \"+\" button to install plugins.</string>
<string name="text_unknown_author_for_plugin">Unknown Author</string>
<string name="text_unknown_description_for_plugin">Unknown Description</string>
<string name="text_unknown_version_for_plugin">Unknown Version</string>
<string name="text_unknown_title_for_plugin">Unknown Title</string>
<string name="error_specified_autojs6_version_number_must_be_greater_than_461">Specified AutoJs6 version number must be greater than 461</string>
<string name="error_autojs6_version_number_must_not_be_lower_than_num">AutoJs6 version number must not be lower than %1$s</string>
<string name="error_autojs6_version_must_not_be_lower_than_ver">AutoJs6 version must not be lower than %1$s</string>
<string name="dialog_button_view_update">View update</string>
<string name="content_failed_to_retrieve_changelog_of_current_language_with_zh_hans_release_notes_fallback">Failed to retrieve the changelog for the currently displayed language. You can try again later.\n\nFor now, the release notes for \"Simplified Chinese (zh-Hans)\" will be shown temporarily.</string>
<string name="error_failed_to_retrieve_changelog">Failed to retrieve changelog</string>
<string name="error_failed_to_retrieve_release_notes">Failed to retrieve release notes</string>
<string name="text_changelog">Changelog</string>
<string name="text_release_notes">Release notes</string>
<string name="text_retrieving_changelog" tools:ignore="TypographyEllipsis">Retrieving changelog...</string>
<string name="text_retrieving_release_notes" tools:ignore="TypographyEllipsis">Retrieving release notes...</string>
<string name="dialog_button_view_with_browser">@string/dialog_button_download_with_browser</string>
<string name="text_scheduled_restart_backend">Backend</string>
<string name="text_scheduled_restart_start_delay">Start delay</string>
<string name="dialog_button_advanced_settings">Advanced</string>
<string name="error_failed_to_save_project_config">Failed to save project config</string>
<string name="text_connected">Connected</string>
<string name="text_connected_count_with_colon">Connected: %1$d</string>
</resources>