diff --git a/.gradle/7.3.3/executionHistory/executionHistory.bin b/.gradle/7.3.3/executionHistory/executionHistory.bin index 6e35b68..3f94c23 100644 Binary files a/.gradle/7.3.3/executionHistory/executionHistory.bin and b/.gradle/7.3.3/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.3.3/executionHistory/executionHistory.lock b/.gradle/7.3.3/executionHistory/executionHistory.lock index a28b950..04d14e2 100644 Binary files a/.gradle/7.3.3/executionHistory/executionHistory.lock and b/.gradle/7.3.3/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.3.3/fileHashes/fileHashes.bin b/.gradle/7.3.3/fileHashes/fileHashes.bin index bafccbf..9fce00f 100644 Binary files a/.gradle/7.3.3/fileHashes/fileHashes.bin and b/.gradle/7.3.3/fileHashes/fileHashes.bin differ diff --git a/.gradle/7.3.3/fileHashes/fileHashes.lock b/.gradle/7.3.3/fileHashes/fileHashes.lock index bfa2683..7845182 100644 Binary files a/.gradle/7.3.3/fileHashes/fileHashes.lock and b/.gradle/7.3.3/fileHashes/fileHashes.lock differ diff --git a/.gradle/7.3.3/fileHashes/resourceHashesCache.bin b/.gradle/7.3.3/fileHashes/resourceHashesCache.bin index ac1e51f..3d46778 100644 Binary files a/.gradle/7.3.3/fileHashes/resourceHashesCache.bin and b/.gradle/7.3.3/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 3cbd8b6..308d0cb 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 157c42e..be54974 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index f0ab2b0..cc5b7fc 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/app/src/main/java/com/coldmint/rust/pro/LoginActivity.kt b/app/src/main/java/com/coldmint/rust/pro/LoginActivity.kt index 8fd4206..26ecf03 100644 --- a/app/src/main/java/com/coldmint/rust/pro/LoginActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/LoginActivity.kt @@ -20,6 +20,7 @@ import com.afollestad.materialdialogs.WhichButton import com.afollestad.materialdialogs.actions.setActionButtonEnabled import com.afollestad.materialdialogs.input.getInputField import com.afollestad.materialdialogs.input.input +import com.coldmint.dialog.InputDialog import com.coldmint.rust.core.dataBean.ApiResponse import com.coldmint.rust.core.dataBean.LoginRequestData import com.coldmint.rust.core.dataBean.user.UserData @@ -132,7 +133,7 @@ class LoginActivity : BaseActivity() { val expirationTime = userData.data.expirationTime val time = ServerConfiguration.toLongTime(expirationTime) appSettings.forceSetValue(AppSettings.Setting.ExpirationTime, time) - appSettings.forceSetValue(AppSettings.Setting.LoginStatus,true) + appSettings.forceSetValue(AppSettings.Setting.LoginStatus, true) startActivity(Intent(this@LoginActivity, MainActivity::class.java)) finish() } else { @@ -371,30 +372,16 @@ class LoginActivity : BaseActivity() { ) } viewBinding.changeServerView.setOnClickListener { - MaterialDialog(this@LoginActivity).show { - title(R.string.changing_the_server).message(R.string.changing_the_server_tip) - .cancelable(false) - input( - maxLength = 255, - waitForPositiveButton = false, - prefill = appSettings.getValue( + InputDialog(this).setTitle(R.string.changing_the_server) + .setMessage(R.string.changing_the_server_tip).setMaxNumber(255).setText( + appSettings.getValue( AppSettings.Setting.ServerAddress, ServerConfiguration.website ) - ) { dialog, text -> - if (text.startsWith("http://") || text.startsWith("https://")) { - dialog.setActionButtonEnabled( - WhichButton.POSITIVE, - true - ) - } else { - dialog.setActionButtonEnabled( - WhichButton.POSITIVE, - false - ) - } - }.positiveButton(R.string.dialog_ok, null) { dialog -> - val input = dialog.getInputField().text.toString() + ).setHint(R.string.server_address_configuration).setErrorTip { s, textInputLayout -> + textInputLayout.isErrorEnabled = + !(s.startsWith("http://") || s.startsWith("https://")) + }.setPositiveButton(R.string.dialog_ok) { input -> if (input.isNotBlank()) { appSettings.setValue(AppSettings.Setting.ServerAddress, input) ServerConfiguration.website = input @@ -403,9 +390,12 @@ class LoginActivity : BaseActivity() { R.string.change_server_complete, Snackbar.LENGTH_SHORT ).show() + return@setPositiveButton true + } else { + return@setPositiveButton false } - }.negativeButton(R.string.dialog_close) - } + }.setNegativeButton(R.string.dialog_close) { + }.show() } } diff --git a/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt b/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt index 720a735..d98e699 100644 --- a/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/MainActivity.kt @@ -684,17 +684,17 @@ class MainActivity : BaseActivity() { startViewModel.needLoginLiveData.observe(this) { if (it) { - MaterialAlertDialogBuilder(this).setTitle(R.string.login) - .setMessage(R.string.login_tip).setPositiveButton(R.string.login) { i, i2 -> + CoreDialog(this).setTitle(R.string.login).setMessage(R.string.login_tip) + .setPositiveButton(R.string.login) { startActivity( Intent( this, LoginActivity::class.java ) ) - }.setNegativeButton(R.string.dialog_close) { i, i2 -> - finish() - }.show() + }.setNegativeButton(R.string.dialog_close) { + finish() + }.setCancelable(false).show() } else { showGameConfiguredDialog() } @@ -742,16 +742,6 @@ class MainActivity : BaseActivity() { } - fun inputName() { - - InputDialog(this).setInputCanBeEmpty(false).setTitle("姓名") - .setPositiveButton("确定") { - - }.setNegativeButton("取消") { - - }.setCancelable(false).show() - } - override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { if (canUseView) { @@ -760,7 +750,6 @@ class MainActivity : BaseActivity() { initNav() observeStartViewModel() checkAppUpdate() - inputName() } else { startViewModel.initAllData() } diff --git a/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt b/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt index 8210926..a4d222c 100644 --- a/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt +++ b/app/src/main/java/com/coldmint/rust/pro/SettingsActivity.kt @@ -217,7 +217,7 @@ class SettingsActivity : BaseActivity() { override fun whenCreateActivity(savedInstanceState: Bundle?, canUseView: Boolean) { if (canUseView) { - viewBinding.toolbar.setTitle(R.string.set_up) + title = getString(R.string.set_up) setReturnButton() val settingsFragment = SettingsFragment() supportFragmentManager diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 05c4c8c..88784ae 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1,284 +1,431 @@ - - Rust Assistant - Application permission - Authorization - Exit - We need to manage file permissions to read module lists, edit source files, import and export modules, and so on. - Not Find Mod - Mod - Database - No description - Tags - Create Mod - Filter - Create - Please enter the mod name. - Please enter the description. - Please use \\n instead of newline. - Unable to create, the Mod is exists. - Edit units - Edit information - Unzip - Units was not found - Database was not found - Use - Used - Error unzipping file. - Unrecognized paths: - Save - Code code - Determination - cancel - Search - Please enter the unit name . - Loading units... - Background - Background Uziping. - Open mode - Select a Directory - Select a File + Rusted Assistant + Access Request + We need file management permissions to read the mod list, edit source files, import and export mods. + Authorize + quit + Backstage + Device verification + It has been decompressed in the background. + open way + file parsing exception + select directory + Select the file + Selected\\"%1$s\\" + select image + change image + remove image + remove + Remove image at \\"%1$s\\"\? Open - Unit Create Complete - Unzip - Unziping %1$s... - File Name: - Deleting - File Manager - Unable to create, the Unit is exists. - Rename + Turn on NoTiled + unit created + Unit creation failed + Building unit… + Sure + Activate Rust Helper + Your activation time has expired, please activate Rust Assistant. + combo + All functions + Only this one time + always allow + Yes, did receive + no, no + Create wizard + Cancel + Do not remind again + A total of %1$d items support quick navigation. + QQ wallet + WeChat Pay + Alipay + decompress + repair + Repairing info file for %1$s… + Scanning %1$s… + Moving %1$s… + Adding %1$s… + %1$s has been successfully packaged. Do you want to share it with your friends\? + %1$s has been packaged successfully. Do you want to start exporting\? + Packaging is complete. + Packaging failed + Repair done + Extracting %1$s… + no mods + module + file name: + document + data set + Data array (separated by \\"|\\"): + delete + deleting… + Deleting \\"%1$s\\"… + Restoring… + Import into Rust Helper + file manager + no description + name + account + please enter account. + Please enter an account number or email address. + + Please enter a password. + connecting… + password + register + retrieve password + Log in + I agree to the Service Agreement and Privacy Policy + \"Service Agreement\" + \"Privacy Policy\" + describe + Label + Please enter a label. + Please use \\",\\" to separate tags, works with the same tag will be classified into one category. + Create mods + Create a new mod. + filter + Activate account + Activation succeeded, please log in again. + Please enter the activation verification code: + search + find + create + Please enter a lookup rule. + Please enter a bookmark name. + Please enter a file path. + Create bookmarks + Please enter a module name. + Please enter a unit name. + Please enter an event name. + This dataset could not be loaded, error: %1$s. + Please enter a description. + Please replace lines with \\n. + replace text + replace + Could not create, this mod already exists. + Unable to create, this unit already exists. + Could not create, this folder already exists. + file does not exist. + You do not have permission to access this directory. + This directory cannot be opened. + Choose a game pack + Remove the module + Set up game packs + Editing unit + Edit information + decompress + Double naming + Repair information file Edit text - Unzip - System default mode - Load files... - Return - Total of %1$s items - Create Unit - Create Path:%1$s - key %1$s was found - Total of %1$s template - Template Information - Not found template-info.txt - Change - Failed to copy file. - Undo - Show Line Number - General - Developer options - Mod - Code - Language - Developer Mode - Template database developer options. - Database storage directory - Template storage directory - Shield system map gallery scanning - The media files will be scanned by the system photo album. - The system album is prohibited from scanning the media files. - Unit create failed - Building Unit... - Cannot create, this folder already exists. - An unexpected error occurred and soft keyboard evoke failed - Create a Folder - Refresh - Test this unit - Settings - Template - Only load coniant language templates - Other language templates will be hidden. - Set Action - Background repairing. - Repair - repair %1$s Mod-info... - "Repair complete " - The file does not exist. - Template was not found - Make template + + Importing a Template Package + Import the template package from file management. + The import module, + Import modules from file management. + The recycle bin + Restore modules from the recycle bin. + Package directory + Import the previously packaged modules. + Unzip the files + The default mode is enabled + No unit found + Could not find a unit whose name contains %1$s, undo filtering + No code found with name containing %1$s, unfilter + Code for section %1$s not found, unfilter + Cancellation filter + In the filter... + Unable to open dataset + Enable loop play + Disable looping + [no loop]%1$s + Loading units... + Loading files... + Loading bookmarks... + Calculating... + No bookmark + Total %1$S items + No data set was found + use + Has been used + Create a unit + Create path :%1$s + The %1$s key was not found + Total %1$S templates + No template-info.txt found + To change the + The creation directory has been changed. + Is not enabled + document + Failed to copy files. Procedure + Failed to copy file. Please change creation directory. + copy + shear + identifier + Copied to the + Copy the failure + Mobile failure + Move to the + Copy file name + Copy file path + error + Module file at \\"%1$s\\" has been read. + File operations + operation + Copy the absolute path (starting with ROOT) + The absolute replication path is incorrect. + An unexpected error occurred and the soft keyboard recall failed + Creating a folder + Photo album + Unable to load module information, please %1$s. + Unit number: % 1 $d | downloads | version name: % 2 $d % 3 $s + Unit number: % 1 $d + file manager + The refresh + To make the template Select a template - Repair the information file - Action - Additional files generated when building units using this template. - The file cannot be added repeatedly. - Attach + Test this unit + Set the activity + Editing activity + activity + Add an additional name + Remove additional names + Additional files generated when using this template to build units. + You cannot add files repeatedly. + additional Template name - Create a template package + Creating a Template package + Create a template package to store unit dynamic templates. Please enter a template name. - Please enter the developer. + Please enter developer. Please enter a description. - Please enter an update link. + Please enter the update link. Please enter the version number. Please enter a version name. - Developer - Cannot create, this template already exists. - Description - Version name - Version number - explicate %1$s - create %1$s section - Importing... - Import - %1$s Import successed - Import this mod (%1$s)? - Foratting failed. - Additional options have been provided within some features. - Add file - Type + developers + Could not be created because the template already exists. + agree + The original content + The new content + content + Author :%1$s Published at %2$s + describe + Update the link + Version of + The version number + Code table + The dataset you are using is out of date. Would you like to upgrade to the latest version\? + upgrade + Upgrade complete. + The upgrade failed. + unclassified + + Input box + The drop-down box + Comment box + + + Exit without saving + Saving %1$s... + %1$s saved. + + Explain the % 1 $s + Unknown type \\"%1$s\\". + Create % 1 $s + Create % 1 $s + formatting + undo + color + save + Error extracting file. + An unrecognized path. + Remove the unit + Delete %1$s\? + + In the import... + The import + %1$s import succeeded. + %1$s import failed. + %1$s was developed for advanced assistant and cannot be imported. + Unable to read message file. + Import this module (%1$s)\? + Import this template package (%1$s)\? + Show line Numbers + Empty file + An empty folder + A blank line + annotation + Backup file + + Formatting failed. + The file format is invalid. + Set up the success + Setup failed + Is a blank line. + Find %1$d blank lines to view details + Find %1$D comments to see the details + There are no projects to optimize. + Load optimization projects... + In the optimization... + Code hinting + Unable to prompt code, please place cursor in any section. + Move the cursor to the next line to prompt this section of code. + There is no code for the %1$s section to hint at. + Create a section + Hello world! | new beginning, a new experience. | | reset version 2.0 to mint farm ~ + Web link + + + Developer options + module + The code editor + The template package + Shut down + Qq group + \\"%1$s\\" has been deleted. + + + + language + Load the data set... + Failed to load dataset + + Developer mode + Template-oriented, dataset developer options. + Additional options have been provided in some features. + Get updates + Directory where data sets are stored + Directory for storing templates + Mask system gallery scanning + Other language templates will be hidden. + Media files will be scanned by the system album. + System album scanning for media files has been disabled. + ignore + conventional + The application of information + SetUp + Load only templates that match the language + Loading the app list... + return + Template information + Add files + type Display text: + Plain text: + Display text (Html can be entered): + Plain text works under Android 7.0. + Your system does not support displaying Html. Template icon: - Invalid icon - Compile log - Compile %1$.2f%%... - at %1$s line %2$d : - Jump to the wrong position + Module icon: + The background music + The map + add + Play exclusively when using this module + Add additional maps for paths + disable + To enable the + \\"%1$s\\" is enabled and you can turn it off at any time in Settings. + Invalid icon. + It has been switched to background repair. + It\'s been switched to backstage packaging. + Compile the log + Compile... + section + Update the dataset using existing module data. + update + Update in the... + %1$s records have been updated. + Code cache cleanup complete. + empty + details + Check the details + Jump to wrong location Code navigation - There is no navigational code. - Dark theme + There is no navigable code. + The game pack is not installed. + You cannot set yourself as a game English Chinese - Save the current content first. - Copy rule - Replicate %1$s. - You have files not yet saved, Do you want to save your changes? - Display the system applications - Game pack - Select the game pack - Set up the game package within your application list. - [Code Report] Code %1$s is located in section %2$s - Copy the code reports - Copy the error message - Cannot set self to a game - No game is installed. - Check the details - Updated %1$s record. - Updateing... - Update - Update the database by using the existing Mod data. - section - Enabled - Disabled - Add additional maps for the path - Play exclusively when using this module - File resolution exception - Select image - Change image - Remove image - Select the game pack - Set up the game pack - No unit found with a name containing %1$s, undo filtering - undo filtering - No code found for %1$s section, undo filtering - No code for %1$s section found, unfiltering - Filfiltering... - Unable not open the database - Enable loop - Disable loop - [noloop] - The creation directory was changed. - file - Not enabled - Copying file failed, please change the creation directory. - copy - cut - Copy to this - Copy failed - Move failed - Move to this - Cut-board operation - Copy the file name - Copy the file path - File operation - Copy the absolute path (starting with ROOT) - Copy the absolute path error. - photo album - file manager - code table - The database you are using is outdated. Do you want to upgrade to the latest version? - upgrade - Upgrade completed. - Upgrade failed. - uncategorized - quit - Saving%1$s... - %1$s save is complete. - Create%1$s - colour - Delete Unit - File format is illegal. - Settings succeeded - Settings failed - close - Load the database... - The database load failed - application message - Load the application list... - Mod icon: - background music - map - add - "Donation " - Hello,world!|A new start, a new experience.|2.0 Reset version - reduction - Wrapping %1$s... - %1$s has been successfully packaged, would you like to share with your friends? - Packaging failure - Restoring... - Import to rust assistant - Empty files - Empty folders - Blank lines - Annotation - Backup files - Is a blank line. - Find %1$d blank lines to Check the details - Number of identifier prompts - Custom symbol bar - Clean up the code cache - Package directory - share - packaging - Delete the source file after the package is complete - Additional items: - Open source license - about - %1$d files saved. - All reduction - Editor - Use the idiot factory editor - Setup complete - Start the game - For games 1.15 and later, set the storage to External only (was default before V1.15). - Your mods may not be checked by the game. - Open the file directory - %1$s has been moved to the recycle bin. - Unable to delete this folder because it contains files in use. - Unable to cut this folder because it has files in use. - Cannot rename this folder because it contains files in use. - Create a separate folder - Create a separate folder for each unit. - Empty the recycle bin - Keep source file - When unpacking the mod, keep the source files. - Optimize - Recycle bin directory - Retention days - When you delete a mod, it is backed up to the recycle bin. - Manage your recycle bin files. - Manage files - Manage the recycle bin + Please save the current content first. + Copy the rules + The rules + To find the rule + Copy error message + Copy code report + [Code report] The code %1$s is in the %2$s section + No template found + The dark theme + %1$s has been copied.e + You have an unsaved file. Do you want to save your changes\? + The collapse of information + Display system application + Choose a color + The game package + Choose a game pack Module recycle bin - Check the details - Code cache cleanup complete. - It\'s been switched to backstage packaging. - Create a section - There is no code for the %1$s section to hint at. - Move the cursor to the next line to prompt this section of code. - Unable to prompt code, please place cursor in any section. - Code hinting - In the optimization... - Load optimization projects... - There are no projects to optimize. - Find %1$d comments to Check the details - %1$s import failed. + Manage the recycle bin + Manage files + Manage your recycle bin files. + When you delete a module, it is backed up to the recycle bin. + Set up the game pack in your app list. + Retention days + Recycle bin directory + donation + To optimize the + When unpacking the module, keep the source files. + Keep source files + Empty the recycle bin + DatabasePath + AppLanguage + DatabaseDirectory + DeveloperMode + CustomSymbol + TemplateDirectory + AutoCreateNomedia + OnlyLoadConantLanguageTemple + NightMode + IndependentFolder + AppVersion + GamePackage + KeepRwmodFile + EnableRecoveryStation + RecoveryStationFileSaveDays + RecoveryStationFolder + Create a separate folder for each unit. + Create a separate folder + Cannot rename this folder because it contains files in use. + Unable to cut this folder because it has files in use. + Unable to delete this folder because it contains files in use. + \\"%1$s\\" has been moved to the recycle bin. + Moving \\"%1$s\\"... + Open the file directory + Your modules may not be checked by the game. + For 1.15 and later, set the storage to Internal(read/write) and External. The game reads and writes internal modules, while external modules are managed by assistants. + Start the game + Setup complete + Use the idiot factory editor + A fool factory + The editor + %1$s is not installed. + All reduction + %1$D files saved. + Copyright ©coldmint 2020-%1$d All Rights Reserved. + about + Open source license + Additional items + Delete the source file after the package is complete + packaging + Open immediately with %1$.2F yuan + In the packaging... + share + PackDirectory + Clean up the code cache + Custom symbol bar + IdentifiersPromptNumber + Number of identifier prompts + reduction + Package directory + information + Shear-plate operation Bookmarks operation Bookmark Manager Jump a bookmark @@ -289,7 +436,414 @@ Bookmarked. Failed to add bookmark. The file the bookmark points to does not exist. - unit directory - User Name - "Dynamic color " + The unit directory + UserName + The user name + Report module + To report the user + Check (% 1 $s) + The book label already exists. Please change the path. + feedback + UseJetBrainsMonoFont + Use the JetBrains Mono font + Assistant built-in font, highly recommended. + The directory does not exist. + Special thanks to + email + Registered successfully + The account activation code has been sent to your email address. If not, the mailbox may be considered spam. Please check your dustbin. + Please log in first. + Network error. + Failed to check the update. + CheckBetaUpdate + Check for Beta updates + Only available in Release, Beta, forced update. + Loading value... + Customize the value type and add it to the prompt. + Value type manager + The sharing function uses the normal packaging mode. To use the advanced packaging function (such as automatically adding Chinese annotations, removing empty files, etc.), please click \\" packaging \". + Packaged modules + Loading in... + Advanced search + Remove empty files and folders + Remove annotation + Formatting code + Source file filtering rules + configuration + Garbage file filtering rule + Update the title + Update link type: + Invalid web link. Please start with \\" HTTP \\" or \\" HTTPS \\". + The QQ group number must be a number within 8 to 10 digits. + Unknown update type. + Arouse QQ failed. + submit + Append content to the beginning of the text + Append to the end of the text + Submit completed + You submit + No activity can respond to this intent. + No data rules + This template has no static data. + Remove empty lines + Recycle the source file after the package is complete + Detected that \\"%1$s\\" has unexpectedly quit. + A crash report has been generated. Developers will use this crash report to find a future solution to this problem. + Sharing error Reports + Restart the program + Please enter the keyword, items that do not contain the keyword will be hidden. + The identifier has been occupied. + This rule cannot be added because the helper automatically associates section data in the file scope. + release + Release success + Release... + global + directory + document + Global scoped values that can be prompted anywhere in the module. + Directory scope, the location under the subdirectory is prompted. + The file scope can only be prompted within its files. + Scope: + Type \\"\@method\\" to call the helper built-in methods and enter the rest as regular expression filters. + Unrecognized method. + Read as regular expression. + Matches file names by re + This method reads values in the source file in the format \@method readValue. For example, \@method readValue(name) reads the unit name. + This method reads the absolute name of the section in the source file in the format \@method absoluteSectionName. For example \@method absoluteSectionName(turret) reads the name of the turret. + This method returns the file name. + Build projects... + Build project complete. + Reconstruction project + Do you want to clean up the cached data and rebuild the index\? + Refactor the project immediately + Unable to resolve import type \\"%1$s\\". + Path \\"%1$s\\" could not be recognized. + Uri errors. + In line %1$s %2$d: + You are trying to import the lower version of the template package (%1$s), the current version (%2$s), which will overwrite the updated content. Do you want to continue\? + %1$s already exists, this will overwrite the old content. Do you want to continue\? + Using document + Unable to create templates for empty files. + Use \\",\\" to split parameters. You can also use \\"[\\" and \\"]\\" to annotate parameters. For example :[like :like], the like will be displayed to the user, after selected, write like. + Templates have been added. Would you please exit the template maker now\? + Edit template + The file type has been intelligently inferred to be \\"%1$s\\". + Ini files are created by default. + You might want to type \\"%1$s\\"\? + Unit data is being loaded. Try using this feature after loading. + EnglishEditingMode + Write your modules in English, with Chinese tips and syntax highlighting. + Native development model + Do you use English as your development language\? Instead of working on \\"MT manager \\", the assistant has English code hints, as well as intelligent hints for the module environment. + Unknown activation duration + Due time :%1$s + community + recommended + ranking + my + The latest release + Too long content displayed in the list will be truncated. + \\"%1$s\\" will be truncated as the list subheading. + The name is displayed in the list as a title. + Screenshots: + mandatory + optional + Exit \\"%1$s\\"\? + The path + From the url to add + Security verification + The assistant has been tampered with by a third party. To protect your device, the process has been terminated. You are recommended to install the official version, mint long-term support, research and development of new functions. + Used to identify your module and cannot be modified after publication. + Module Id + I uploaded a new module \@mod{%1$s}, check it out + Module \@mod{%1$s}, %2$s Update log \n:%3$s + Assistant exclusive,%1$S creation + The module Id can contain only letters and digits and underscores (_). + The installation + In the installation... + Has been installed + Check the work + This module is hidden from the outside and only visible to you and your administrator. + Focus on + infinite + cover + fans + Pending approval... + Fans: | attention: % 1 $s % 2 $s | won praise: % 3 $s + Won the praise + No content + The home page + dynamic + Check my space + Community service + Work management + The little black house + Job applications + Fans management + 4 the + The man was lazy and had no introduction. + Edit data + We are fans of each other + Has been focused on + Cancel the attention + Unfollow \\"%1$s\\"\? + Head: + Individuality signature + Gender: + Space Background: + Dark color is not automatically enabled by default + It cannot be modified after registration. + The value can contain only digits and underscores (_). + The password must be between 6 and 20 characters long and must be alphanumeric or underscore. + Please enter a valid email address. + The account has been occupied. + appearance + The user name has been occupied. + The mailbox is occupied. + ModID has been occupied. + The module name is in use. + The user cannot be found. Please check if the account is correct. + The password is incorrect. + Module package + I found that you have changed the image. Due to Glide cache mechanism, the assistant needs to restart to display the new image. Sorry for the inconvenience. + extension + Adm Multithreaded download + Allows you to call the Adm downloader for multithreaded downloads. + useAdm + Install Adm first. + Adm Download Directory + Word wrap + The length of json result set is 0 + ModIconTransition + Uploading %1$S %% + The file is uploaded and waiting for the processing result... + File download completed + File download failure + Works containing \\"%1$s\\" + comments + Comment (% 1 $d) + Post a comment + The latest work + bestseller + %1$S %2$d times download + Look at all + The game is configured + The export file + export + Export to the + Looking at static code + Set the annotation + The activation + ¥%1$.2f + %1$s has saved %2$.2f + NightModeFollowSystem + Follow the system to turn on the dark mode + Follow the system to turn on or off the dark mode + download + Downloading %1$S %% + The data transfer + Data network is allowed + Uploading and downloading modules over a mobile network may incur additional data charges. + Uploading and downloading modules over a mobile network may incur additional data charges. Still going\? + usingMobileNetwork + Please follow your favorite author first + My attention + There is no dynamic + Release the dynamic + time + Download progress + Push notifications when you download modules + Share to dynamic + All of the dynamic + Pay attention to new + The version name is displayed in the update record. + The shelves need to be reviewed again. Should they be removed\? + Do you want to review %1$s\? + review + warehouse + No map found + delete + MapFolder + Map directory + ModFolder + Module directory + Map editor + We recommend NotTiled as a map editing tool. + Download NotTiled + UseTheCommunityAsTheLaunchPage + Use the community as the launch page + Enabled by default + renewal + Renewal reminder + Your account (%1$s) will expire in %2$d days. + Permanent activation + You are permanently activated. + To report + Report - % 1 $s + The reason: + Stealing material from other modules + Contains pornographic content + Gory content + Unauthorized handling + Module description contains indecent language + other + male + female + Please enter your search content + To report to deal with + Because of the report, was removed by the administrator. + This module is hidden and cannot be reported. + You cannot report your own modules. If you want to remove a module, please go to \"Work Management\". + The administrator + Super administrator + Review the module + Refused to + Remove the fan + coupons + Coupons (% 1 $d) + No coupons were used. + Valid until :%1$s can be used %2$s times + We will charge your order to your account within 24 hours after receiving it, please wait patiently. If your order is not processed within 24 hours, please submit your order number to us for processing. + pay + Payment method: + Please pay %2$S within %1$s + Save the payment code and copy the remarks + We have stored the QR code image on your device. Would you like to jump to %1$s payment now\? + QQ + WeChat + Set up the + The order list + Do you want to copy the order number (%1$s)\? + Are you sure you want to remove fan %1$s\? + Add the user to the blacklist + Refuse to focus on + all + Recently, + No historical record was found + Deleting source Files + Initialize the unit list... + Clear the cache + ClearCache + The cache is generated during application use and the helper is accelerated by reading the cache. + Cache and storage space + File opening record + Code cache + Glide Framework cache + Clearing the cache is complete. + Search by unit name or file content. + The keyword + The file name + The file contains content + You want to search by name + Automatically save the code when you switch to another program. + Automatically saved + AutoSave + It has been automatically saved. + Is the code + Cancel the search + undo + redo + delete + [unsaved]%1$s + Game data and synchronization + Manage synchronized game data. + Synchronous data + Export the Apk + Description Exporting Apk succeeded. + Export the Apk + Failed to export. Procedure + Exported to %1$s. + Exporting... + The synchronization succeeded. Procedure + Synchronization failed. Procedure + Synchronizing... + ServerAddress + Server Address Configuration + Correlation hint from %1$s + After login, you can :\n- upload, download modules. \n- Chatting with friends in the community. \n- Edit your modules in Chinese! \n- Follow your favorite creators + What were you doing at that time\? + There is no error + SeeErrorInfo + Crash logs + View crash logs on this device. + Sorry, cannot prompt value at present. + The official data set has been upgraded. + Recently edited content will be lost, should I continue\? + Submit the updates + A commit with version number %1$s already exists. + Write your update log. + Update log + Last updated :%1$s + Update record + Search results for \\"%1$s\\" + The results of + Read mode: + additional + update + Append or update + delete + copy + Add records to the database + Update records that match the source records + If the target has a record, update it, otherwise add it. + Delete the record that matches the source record + Empty the database and re-import from the source + Reading... + The database has been updated successfully. + Database update failed. Procedure + Changing the server + Set a new server address (no change is required by default if the developer notifies you to change the server): + The server has changed. + The order management + logout + %1$s uid:%2$s + Will use coupons to create orders, still continue\? (After creating the order, use the coupon) + use + Account/email + Could not find user, please check email address is correct. + Random recommended + replace + Open it in another browser + Refresh the page + Built-in browser + Please agree to the agreement first. + Generate an error report + Error report generation completed. + Global operations + additional + Please enter the %1$s field. + Please enter the url + Please enter a value type. + The value name cannot be empty + The value description cannot be empty + Value identifiers cannot be null + Value selectors cannot be null + The following %1$D files will be affected. + Impact list + The new content is the same as the original content. + Processing is complete + Select the image in the album + Turret design + User Experience Plan + Send software crash message anonymously (temporarily unavailable). + Version update and user experience planning + experiencePlan + 订单超时,无法支付。 + Have you paid yet\? (Unpaid orders will expire and can no longer be paid for). + Yes, I did + Give up the order + We have given you a discount of %1$.2F yuan, but we still give up the order. After giving up the order, we will not return the coupon. + Continue to pay + Don\'t know your email address\? Click here for help + QQ no. + We suggest you use QQ email to register, please enter QQ number, we will automatically fill your QQ email. + The email address is filled. + Confirm password + The passwords are inconsistent. + Display source code + Dynamic color + DynamicColor + Follow the device wallpaper to change the theme color. + Dynamic colors are not supported on this device. + The title \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 83239c3..e44888d 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1,220 +1,320 @@ - - サビアシスタント - 権限申請 - モジュールリストの読み込み、ソースファイルの編集、モジュールのインポート、エクスポートなどのファイル権限を管理する必要があります。 - オーソライズ - 退く - モジュールはありません - モジュール - データベース - 説明なし + サビ助手 + 権限申請。 + モジュールリストを読み込み、ソースファイルを編集し、モジュールをインポート・エクスポートするためのファイル管理権限が必要です。 + ライセンス + 退出 + 楽屋 + 設備検証 + 楽屋にまわっていた。 + あけ方 + ファイル解析異常 + 目次を選択する + ファイルを選択する + 已選\\"%1$s\\" + 画像を選択する + 画像を入れ替える + 画像を除去する + 除去 + \\"%1$s\\"に位置する画像を除去する\? + 开き + NoTiledをつける + 単位の創設が完了した + 組織の創設に失敗する + ユニットを構筑中… + 確定 + サビ助手を活性化させる + 起動時間が過ぎましたので、サビヘルパーを起動してください。 + 定食 + 全機能 + たった一度だけ + あくまでも許可する + はい,確かに受け取りました + いや、ない + ガイド作成 + キャンセル + もう提示しない + 全%1$d項目でクイックナビゲーションに対応。 + QQ財布 + ウィーチャットペイ + アリペイ + だしぬけ + 復旧 + %1$sの情報ファイルを修正しています… + スキャンしています%1$s… + 移働しています%1$s… + %1$sを追加しています… + すでに成功して持ち帰り%1$s、友達に分かち合いますか\? + 既に成功して持ち帰り%1$s,導出を始めますか\? + 梱包完了。 + 梱包に失敗する + 修復が完了する + %1$sを引き出しています… + モジュールがない + 同じ組の + ファイル名: + ファイル + データセット + データの配列(\ \" | \分割で): + 削除 + 削除中… + \\"%1$s\\"を削除中… + 還元しています… + サビ助手に導入 + ファイルマネージャ + 記述がない + 名称 + アカウント + アカウントを入力してください。 + アカウントまたはメールアドレスを入力してください。 + + パスワードを入力してください。 + 接続中… + パスワード + 登録 + パスワードを取り戻す + ログイン + 「サービス協定」と「プライバシーポリシー」に同意します + サービス契約書 + 『プライバシーポリシー』 + 描写 ラベル - モジュールの作成 - フィルタリング - 作成 + ラベルを入力してください。 + \\",\\"を使ってラベルを分割してください。同じラベルを持つ作品はグループに分けられます。 + モジュールを作成する + 新しいモジュールを作ります + こす + アカウントをアクティブにする + 起動できましたので、再ログインしてください。 + アクティブ認証コードを入力してください: + 検索 + 検索 + 創建 + 検索ルールを入力してください。 + 本のサインを入力してください。 + ファイルパスを入力してください。 + しおりを作る モジュール名を入力してください。 - 説明を入力してください。 - 改行の代わりに\\nを使用してください。 - 作成できません。モジュールはすでに存在します。 - 単位の編集 - 情報の編集 - 解凍 - ユニットが見つかりません - データベースが見つかりません + ユニット名を入力してください。 + キャンペーン名を入力してください。 + このデータセットはロードできません、エラー原因:%1$s。 + 記述を入力してください。 + 改行の代わりに\\nを使ってください。 + テキストを置き換える + 交代 + このモジュールはすでに存在しています + 作成することはできません、この単位はすでに存在します。 + 作成できません。このフォルダはすでに存在します。 + ファイルは存在しない。 + このディレクトリにアクセスする権利はない。 + このディレクトリを開くことはできません。 + ゲームパックを選ぶ + 取り外しモジュール + ゲームパックをセットする + 編集単位 + 情報を編集する + だしぬけ + 命名を改める + リペア情報ファイル + テキストを編集する + + テンプレートパッケージを導入する + ファイル管理からテンプレートパッケージを導入する。 + モジュール導入 + ファイル管理からモジュールを導入する。 + ごみ箱 + モジュールをごみ箱から復旧する。 + カタログを梱包する + 導入前にパッケージ化したモジュール。 + ファイルを伸張する + システムデフォルトで開く + 単位が見つからない + %1$sを含む名前の単位が見つからない場合は、フィルタリングを解除する + % 1 $ s含ま名称が見つからなかったコードを撤回こす + %1$s節のコードが見つからない場合はフィルタリングを解除 + フィルタリングを撤廃する。 + 濾過中… + データセットを開くことができない + ループ再生を可能にする + ループ再生を無効にする + [ループしない]%1$s + ローディング単位… + ファイルをロードする… + ブックマークをロードして… + 計算しています… + しおりがない + 合計%1$s個の項目 + データセットは見つからなかった 使用 使用済み - ファイルの解凍中にエラーが発生しました。 - 確定 - キャンセル - 検索 - 単位名を入力してください。 - 認識できないパス: - 単位をロード。。。 - コードの照合 - 保存 - 表示行号 - とりけす - ファイルのコピーに失敗しました。 - バックグラウンドタスク - バックグラウンド解凍中 - 開く方法 - ディレクトリを選択 - ファイルを選択 - 開く - 単位作成完了 - 解凍 - 解凍 %1$s ... - ファイル名: - 削除中 - "ファイルマネージャー " - 作成できません。この単位はすでに存在します。 - 名前の変更 - テキストの編集 - ファイルの解凍 - システムデフォルトでオン - ファイルをロード... - 引き返す - 合計 %1$s 項目 - 単位の作成 - パスの作成:%1$s - 見つかりませんでした %1$s キー - 合計%1$sつのテンプレート - テンプレート情報 - 見つかりませんでした template-info.txt + 単位を創設する。 + 経路を作成する:%1$s + %1$sキーが見つからない + 合計%1$sテンプレート + templateを見つけられなかった-info.txt 変更 - 単位の作成に失敗しました - 単位を作成中... - 作成できません。このフォルダはすでに存在します。 - 予期しないエラーが発生しました。ソフトキーボードの起動に失敗しました - フォルダの作成 - リフレッシュ - この単位をテスト - 設定 - 一般 - 開発者オプション - モジュール - コード編集 - 言語 - 開発者モード - テンプレート、データベース開発者向けのオプション。 - データベースのステージング・ディレクトリ - テンプレートのステージングディレクトリ - マスクシステムギャラリースキャン - メディアファイルはシステムアルバムでスキャンされます。 - システムアルバムでメディアファイルをスキャンできないようにした。 - テンプレート - 言語に準拠したテンプレートのみをロード - 他の言語テンプレートは非表示になります。 - バックグラウンドしゅうふく - しゅうふく - %1$sの情報ファイルを修復中... - 修復完了 - ファイルが存在しません。 - 情報ファイルの修復 - テンプレートが見つかりません - テンプレートの作成 - テンプレートの選択 - アクティビティの設定 - 活動 - このテンプレートを使用して単位を構築したときに生成される添付ファイル。 - ファイルを繰り返し追加することはできません。 - 付け加える + 作成ディレクトリを変更しました。 + 有効にならない + ファイル + ファイルのコピーに失敗します。 + ファイルのコピーに失敗したので、作成ディレクトリを変更してください。 + コピー + カット + 識別子 + ここまでコピーする + コピー失敗 + 移動に失敗する + ここに移動する + ファイル名をコピーする + コピーファイルパス + ミス + \\"%1$s\\"に位置するモジュールファイルを読み取りました。 + ファイル操作 + 操作 + 絶対パスをコピーする(ルートで始まる) + 絶対パスエラーをコピーする。 + 予期せぬミスがあり、ソフトキーボードが失敗を引き起こした。 + フォルダを作成する + アルバム + モジュール情報をロードすることができません、どうぞ%1$s。 + 単位数:% 1 $ d | % 2 $ d |回ダウンロード版名:% 3 $ s + 単位数:%1$d + ファイルマネージャ + 更新 + テンプレートを作る + テンプレートを選ぶ + この単位をテストする + 設置活動 + 編集活動 + イベント + 付加名をつける + 付加名の除去 + このテンプレートを使用して単位を構築する際に生成される添付ファイル。 + ファイルの重複添付はできません。 + 添付 テンプレート名 - テンプレートパッケージの作成 + テンプレートパッケージを作成する + テンプレートパッケージを作成し、単位働態テンプレートを保存します。 テンプレート名を入力してください。 開発者を入力してください。 - 説明を入力してください。 + 記述を入力してください。 更新リンクを入力してください。 バージョン番号を入力してください。 バージョン名を入力してください。 開発者 作成できません。このテンプレートはすでに存在します。 - 説明 + 同意 + 元の内容 + 新しい内容 + 内容 + 作者:%1$sリリース時間:%2$s + 描写 + リンクを更新する バージョン名 バージョン番号 - 解釈%1$s - %1$s セクションの作成 - インポート中... - インポート - %1$sインポートに成功しました。 - このモジュールをインポート(%1$s)? - フォーマットに失敗しました。 - ファイルを追加 - タイプ - テキストの表示: - テンプレートアイコン: - 無効なアイコン。 - ログのコンパイル - コンパイル%1$.2f%%... - %1$sの%2$d行目: - 間違った場所にジャンプ - コードナビゲーション - ナビゲートするコードがありません。 - 暗いテーマ - 英語 - 日本語 - まず現在のコンテンツを保存してください。 - 規則のコピー - コピー済み%1$s。 - 一部の機能に追加オプションが用意されています。 - こんにちは、世界!|新しいスタート、新しい体験。|バージョン2.0のリセット|こんにちは! - 回復 - ファイル解析異常 - 画像を選択する - 画像を入れ替える - 画像を除去する - 梱包中%1$s... - すでに成功して持ち帰り%1$s、友達に分かち合いますか? - 梱包に失敗する - 還元しています... - サビ助手に導入 - ゲームパックを選ぶ - ゲームパックをセットする - %1$sを含む名前の単位が見つからない場合は、フィルタリングを解除する - %1$sを含む名前のコードが見つからない場合、フィルタリングを解除する - %1$s節のコードが見つからない場合はフィルタリングを解除 - フィルタリングを撤廃する。 - 濾過中… - データベースを開くことができない - ループ再生を可能にする - ループ再生を無効にする - [ループしない] - 作成ディレクトリを変更しました。 - 有効にならない - ファイル - ファイルのコピーに失敗したので、作成ディレクトリを変更してください。 - コピー - カット - ここまでコピーする - コピー失敗 - 移動に失敗する - ここに移動する - せん断板操作 - ファイル名をコピーする - コピーファイルパス - ファイル操作 - 絶対パスをコピーする(ルートで始まる) - 絶対経路エラーをコピーする - アルバム - ファイルマネージャ 符号表 - お使いのデータベースは古くなっていますが、最新バージョンにアップグレードされていますか? + 使用しているデータセットは古くなっていますが、最新バージョンにアップグレードされていますか\? アップグレード アップグレード完了。 進級に失敗する。 未分類 - 退出 - 保存中%1$s... + + 入力ボックス + プルダウン枠 + 註釈枠 + + + 保存せずにログアウト + 保存中%1$s… %1$s保存完了。 + + %1$sを説明する + 未知のタイプ\\"%1$s\\"。 + %1$s節を作る %1$sを作成する + フォーマット化する + 撤回 + 保存 + ファイルを伸張するときにエラーが発生します。 + 識別できない経路です 単位を削除する + %1$sを削除しますか\? + + 導入中… + 导入 + %1$s導入成功。 %1$s導入に失敗。 + %1$sはハイバージョンのアシスタント用に開発され、導入できません。 + メッセージファイルが読み取れません。 + このモジュールを導入する(%1$s)\? + このテンプレートパッケージ(%1$s)を導入しますか\? + 行番号を示す 空のファイル 空フォルダ 空行 注釈 バックアップファイル + + フォーマット化に失敗する。 文書形式は合法ではない。 設置に成功する セットアップ失敗 空行である。 - %1$dの空行を見つけて,詳細を調べる - %1$dの注釈を見つけて,詳細を調べる + %1$dの空行を見つけて、詳細を見る + %1$dの注釈を見つけて詳細を調べます 最適化できる項目がない。 - 最適化項目をロードする... - 最適化中... + 最適化項目をロードする… + 最適化中… コード・ヒント コードを提示できませんので、カーソルを任意のセクションに配置してください。 カーソルを次の行に移動して、このコードを提示してください。 %1$s節のコードはありません 創建節 + こんにちは、世界!|新しいから、新しい体験。2.0にリセット版| |ミント打钱~ + ウェブページへのリンク + + + 開発者オプション + 同じ組の + コード編集 + テンプレートパッケージ 閉鎖 - データベースをロードして… - データベースの読み込み失敗 + qq群 + \\"%1$s\\"を削除しました。 + + + + 言語 + データセットをロードして… + データセットのロード失敗 + + 開発者モデル + テンプレート向け、データセット開発者のオプション。 + いくつかの機能内で追加のオプションが提供されている。 + 更新を取得する + データセットにディレクトリを格納する + テンプレートで目次を保存する + 画像画像をスキャンします + 他の言語のテンプレートは隠されます。 + メディアファイルは、システムフォトアルバムによってスキャンされる。 + システムフォトアルバムによるメディアファイルのスキャンが禁止されています。 + 無視する + 通常 情報を応用する - アプリケーションリストをロードする... + 設置 + 言語に合ったテンプレートだけをロードする + アプリケーションリストをロードする… + 戻る + テンプレート情報 + ファイルを添付する + タイプ + テキスト表示: + 一般テキスト: + テキスト表示(Html入力可能): + 通常テキストはandroid 7.0以下で有効。 + あなたのシステムはHtml表示に対応していません。 + テンプレートのアイコン: モジュールアイコン: 背景音楽 地図 @@ -223,22 +323,42 @@ 経路に地図を追加します 禁止 起用 + \\"%1$s\\"を有効にして、いつでも設定内で閉じることができます。 + 無効なアイコン。 + バックヤード修復に移りました。 楽屋に廻って荷造りをした。 + ログをコンパイルする + 編訳… - 既存のモジュールデータを使って、データベースを更新する。 + 既存のモジュールデータを使って、データセットを更新する。 更新 - 更新中... + 更新中… %1$sの記録を更新しました。 コードキャッシュのクリーンアップ完了。 + 详细 詳細を調べる + 誤った位置にジャンプする + コードナビゲーション + ナビゲーションのコードはありません ゲームパックはインストールされていない。 ゲームにしてはいけない + 英文 + 中文 + 現在のコンテンツを先に保存してください。 + ルールを複製する + ルール + ルール探し エラー情報をコピーする コピーコード報告 [コードレポート]コード%1$sは%2$s節に位置する - まだ保存していないファイルがありますが、保存して変更しますか? + テンプレートが見つからない + ダークモチーフ + %1$sをコピーしました。e + まだ保存していないファイルがありますが、保存して変更しますか\? + クラッシュ・メッセージ 表示システムアプリケーション + 色を選ぶ ゲームパック ゲームパックを選ぶ モジュールごみ箱 @@ -254,31 +374,58 @@ モジュールを伸張する際、ソースファイルを保持する。 ソースファイルを保存する ごみ箱を空にする + DatabasePath + AppLanguage + DatabaseDirectory + DeveloperMode + CustomSymbol + TemplateDirectory + AutoCreateNomedia + OnlyLoadConantLanguageTemple + NightMode + IndependentFolder + AppVersion + GamePackage + KeepRwmodFile + EnableRecoveryStation + RecoveryStationFileSaveDays + RecoveryStationFolder ユニットごとに独立したフォルダを作成する。 独立フォルダを作成する ファイルを使用しているフォルダの名前を変更することはできません。 使用中のファイルが入ったフォルダを切り取ることはできません。 ファイルが使用中のこのフォルダを削除することはできません。 - %1$sをごみ箱に移動しました。 + \\"%1$s\\"をごみ箱に移動しました。 + \\"%1$s\\"移働しています… ファイルがあるディレクトリを開く あなたのモジュールはゲームでチェックできないかもしれません。 - 1.15以降のバージョンでは、ストレージをExternal only (was default before v1.15)に設定してください。 + 1.15以降では、Internal(read/write) and Externalに設定してください。ゲームが内部モジュールを読み書きし,外部モジュールはヘルパーが管理する。 ゲームを起動する 設置済み バカ工場編集を使う + バカ工場 編集 + %1$sはインストールされていません。 全部還元する %1$dファイルを保存しました。 + Copyright ©coldmint 2020-%1$d All Rights Reserved. について オープンソース・ライセンス - 付加項: - 分かち合い - コードキャッシュのクリーンアップ - カスタム記号バー - 識別子が数を示す - カタログを梱包する + 付加項 パッケージ化が完了したらソースファイルを削除する 荷物 + 直ちに%1$.2f元で開通する + お持ち帰り中… + 分かち合い + PackDirectory + コードキャッシュのクリーンアップ + カスタム記号バー + IdentifiersPromptNumber + 識別子が数を示す + 还元 + カタログを梱包する + 情報 + せん断板操作 しおり操作 ブックマークマネージャ 飛びしおり @@ -289,7 +436,414 @@ しおりを添付しました。 しおりを付けるのに失敗します。 しおりが指し示す書類は存在しない。 - 単位目録 + 単位目録。 + UserName ユーザー名 + 通報モジュール + ユーザーを通報する + (%1$s)を見る + サインがありますので、パスを変更してください。 + 意見のフィードバック + UseJetBrainsMonoFont + JetBrains Monoフォントを使う + アシスタントに内蔵されているフォントは、強くお勧めします。 + 目次は存在しない。 + 特にお礼を言う + メール + 登録に成功する + アカウントのアクティベーションコードをメールアドレスに送信しました。受信していない場合、メールボックスは迷惑メールと見なされる可能性があります。ごみ箱をチェックしてください。 + まず登録してください。 + ネットワークエラー。 + アップデートの失敗をチェックする。 + チェックベータアップデート + ベータアップデートをチェックする + Releaseバージョンでのみ有効となり、ベータバージョンでは、強制アップデートが采用されます。 + 数値を載せる… + 値のタイプをカスタマイズし、プロンプトを入れます。 + 値型マネージャ + 共有机能は通常のパッケージモードを使用して、高度なパッケージ机能(例えば自働的に中国語の注釈を追加する、空のファイルを取り除くなど)を使用するには\\"パッケージ\\"をクリックしてください。 + パッケージモジュール + ロード中… + 高度な検索 + 空ファイルやフォルダを取り除く + 注釈を取り除く + フォーマットコード + ソースファイル選別ルール + 配置 + 不要書類選別ルール + タイトルを更新する + 更新リンクタイプ: + ホームページへのリンクは違法です。\\"http\\"または\\"https\\"で始めてください。 + QQ群番号は数字で、長さは8 ~ 10桁以内でなければなりません。 + 未知の更新タイプ。 + qq失敗を喚起する。 + 提出 + テキストの先頭に内容を追加する + テキストの最後に内容を追加する + 提出完了 + 提出に失敗する + この意図に応える活動は存在しない。 + データルールがない + このテンプレートには静的なデータはありません。 + 空行を除去する + 梱包完了後ソースファイルを回収 + \\"%1$s\\"が意図せずアウトしたことを検出する。 + クラッシュレポートが作成されました。開発者はこの奔砕報告書を利用して、この問題の将来の解決策を見出す。 + ミスレポートを共有する + プログラムを再起動する + キーワードを入力してください。キーワードが含まれていない項目は隠されます。 + 識別子が占有されている。 + ヘルパーが自働的にファイルスコープの節データを連想するので、このルールを追加することはできない。 + 発表 + リリース成功 + リリース中… + 全般 + リスト + ファイル + グローバルスコープで定義された値は、モジュールの任意の位置でヒントを得ることができる。 + ディレクトリスコープは、サブディレクトリの下の位置に提示されます。 + ファイルスコープは、そのファイル内でのみ提示される。 + 作用ドメイン: + \\"\@method\\"を入力してヘルパー内蔵方法を呼び出し、他のコンテンツを正規表現スクリーニングとして入力します。 + 識別できない方法です + 正規表現に従って読みます。 + ファイル名を正規に合わせる + この方法はソースファイル内で値を読み、形式:\@method readValue(値)。例えば\@method readValue(name)は、単位名を読み込む。 + この方法は、ソースファイルにセクションの絶対名であるフォーマット\@method absoluteSectionName(セクション名)を読み込む。例えば\@method absoluteSectionName(turret)のように、砲塔の名前を読み取ります。 + この方法でファイル名を返す。 + プロジェクトを構築する… + 構築プロジェクト完了。 + 再構築プロジェクト + キャッシュされたデータを整理してインデックスを再構築するのか\? + プロジェクトをすぐに再構築する + 導入タイプ\\"%1$s\\"を解析できない。 + パス\\"%1$s\\"を識別できない。 + uriエラー。 + %1$sの%2$d行に位置する: + テンプレートパッケージの下位バージョン(%1$s)、現在のバージョン(%2$s)の導入を試みています。これにより、更新された内容がカバーされます。続けるの\? + %1$sが存在し、これは古いコンテンツを上書きします。続けるの\? + ドキュメントを使う + 空のファイルにテンプレートを作ることはできません。 + \\"、\\"分割パラメータを使用し、\\"[\\"と\\"]\\"注釈パラメータを使用することもできます。例えば、[好き:like]は、好きがユーザに表示され、選択した後、likeを書き込む。 + テンプレート作成器は完成して、今退出してくださいテンプレートを追加しますか\? + テンプレートを編集する + インテリジェントにファイルタイプを\\"%1$s\\"と推定しました。 + iniファイルをデフォルトで作成する。 + 「%1$s\」と入力したいかもしれません。 + 単位データをロードしているので、ロードしてからこの机能を使ってみてください。 + 英語編集モード + 英語を使用してあなたのモジュールを書いて、そして中国語のヒントを持って、文法はすばらしいです。 + ネイティブ開発モデル + 開発言語として英語を使用していますか\?\\"MTマネージャ\\"上で仕事をするより、ヘルパーは英文コードのヒント机能と、モジュール環境のインテリジェントなヒントがあります。 + 未知の活性化時間 + 期限:%1$s + コミュニティ + 推薦 + ランキング + 私の + 最新リリース + 長すぎるコンテンツはリスト内で表示されるとカットされます。 + リストのサブタイトルとして\\"%1$s\\"を切り取ります。 + 名前はリスト内に表示されタイトルとして使用される。 + スクリーンショット: + 必ず埋め + 選挙できる + \\"%1$s\\"を退出しますか\? + 経路 + urlから追加 + 安全検証 + ヘルパーが第三者によって改竄されていることを確認し、あなたの装置を保護するために、プロセスを終了しました。あなたは公式のバージョンをインストールすることをお勧めして、ミント長期的に支持して、開発の新机能。 + あなたを識別するモジュールは、リリース后に修正することはできません。 + モジュールId + 私は新しいモジュール\@mod{%1$s}をアップロードしました。 + モジュール\@mod{%1$s}, %2$s更新日志\n:%3$s + アシスタント独占,%1$s創作 + モジュールIdは英数字のみ対応しており、アンダーラインを含むことができる。 + インストール + インストール中… + インストール済み + 作品を調べる + このモジュールは外部には隠されていて、あなたと管理人にしか見えません。 + 注目 + 无限の + カバー + ファン + 審査待ち… + ファン:% 1 $ s |関心% 2 $ s |で讃:3 $ s + 受赏讃 + 内容がない + ホームページ + 动态 + 私の空間を見て + コミュニティサービス + 作品管理 + 黒い部屋 + 職位の申請 + ファン管理 + ごほうび交換 + この人は怠け者で,紹介しなかった。 + 資料を編集する + 互いにファンになった + 注目している + フォローをやめる + フォロー\\"%1$s\\"をキャンセルしますか\? + 上画像: + 個性サイン + 性別: + 空間的背景: + ダークカラーはデフォルトで自動オンにならない + 登録後の修正はできません。 + 英語、数字、下線のみ対応。 + パスワードは6桁から20桁の間で、英数字かアンダーラインを使用しなければなりません。 + 正当なメールアドレスを入力してください。 + アカウントが占有されています。 + 外観 + ユーザー名が使用されています。 + メールボックスは既に使用されています。 + ModIDは使われています + モジュール名は使用済みです。 + ユーザーが見つからない場合は、アカウントが正しいか確認してください。 + パスワードが間違っています。 + モジュールパック + 画像が変更されたことを確認すると、ヘルパーはGlideキャッシュ機構のために新しい画像を表示するために再起動する必要があります。ご不便をおかけして申し訳ありません。 + 広げて + Admマルチスレッドダウンロード + Admダウンローダを呼び出し、マルチスレッドダウンロードを可能にする。 + 使用アドム + Admをインストールしてください。 + Admダウンロードディレクトリ + 自動改行 + json結果のセット長さは0である。 + ModIconTransition + アップロード中%1$s% + ファイルアップロード完了、処理結果待ち… + ファイルダウンロード完了 + ファイルのダウンロードに失敗 + \\"%1$s\\"を含む作品 + 评论 + レビュー(%1$d) + 論評を出す + 最新作 + ベストセラー作品 + %1$s %2$d回ダウンロード + 全部を見る + ゲーム仕様 + ファイルをエクスポートする + エクスポート + ここまで導き出す + 静的コードを見る + 註釈を設ける + 活性化 + ¥% 1ドル.2f + %1$s省%2$.2f元 + ナイトモードフォローシステム + システム追従ダークモード + ダークモードをオンまたはオフします + ダウンロード + 正在下載%1$s% + データ転送 + データネットワークを使って + モバイルネットワークを使用してモジュールをアップロードすると、追加の通信料金が発生する可能性があります。 + モバイルネットワークを使用してモジュールをアップロードすると、追加の通信料金が発生する可能性があります。続けますか\? + usingMobileNetwork + まずは好きな著者に注目してください + 私の関心は + 動きがない + 動態を発表する。 + 时间 + ダウンロード進度 + あなたのダウンロード模組ときアプリ、通知 + シェア・ダイナミクス + すべての動き + 新作に注目 + バージョン名は更新ログ内に表示されます。 + 棚に並べ直して審査する必要があって、棚を下げますか\? + %1$sを見直しますか\? + 再審査する + 倉庫 + 地図が見つからない + 削除 + MapFolder + 地図目次 + ModFolder + モジュールカタログ + 地図を編集する + 地図編集ツールとしてNotTiledをお勧めします。 + NotTiledをダウンロードする + UseTheCommunityAsTheLaunchPage + コミュニティを立ち上げページとして使う + デフォルトの有効化 + 続料 + おかわりの注意 + あなたのアカウント(%1$s)は%2$d日後に満期になります。 + 永久活性化 + 永久に活性化されています。 + 告発 + 通報-%1$s + 理由: + 他のモジュールの素材を盗用する + ポルノが含まれている + 血生臭い内容を含んでいる + 無許可の運搬 + モジュール記述には下品な言葉が含まれている + 他の + + + 検索内容を入力してください + 通報処理 + 通報され、管理人に撤去された。 + このモジュールは隠れていて、通報することができません。 + 自分のモジュールを通報することはできません、もしモジュールを降ろすことを希望するならば\「作品管理\」に行ってください。 + 管理人 + スーパー管理人 + 査定モジュール + 拒否 + ファンを除去する + クーポン + クーポン(%1$d) + クーポンは一切使用していない。 + 有効期間:%1$s %2$s回使用可能 + 私達はあなたの注文を受け取ってから24時間以内にあなたの口座にチャージして、辛抱強く待ってください。ご注文が24時間以内に処理されない場合は、ご注文番号をご提出ください。 + 支給 + 支払い方法: + %1$s内で,%2$s元を支払ってください + 入金コードを保存し備考をコピーする + qrコード画像をあなたのデバイスに保存しました。今、%1$s支払いにジャンプしますか\? + ティッカー + wechat + 設置 + 注文リスト + 注文番号(%1$s)をコピーしますか\? + ファンを除去することを確認する%1$sですか\? + このユーザーをブラックリストに載せ + 注目を拒否する + すべて + 最近 + 歴史的記録は見つからない + ソースファイルを削除する + 初期化ユニットの一覧 + キャッシュの清算 + キャッシュのクリア + キャッシュはアプリケーションの使用中に生成され、ヘルパーはキャッシュを読み取って加速する。 + キャッシュとストレージ + ファイル開封記録 + コードキャッシュ + Glideフレームワークキャッシュ + キャッシュのクリーンアップ完了。 + 単位名またはファイル内容で検索します。 + キーワード + ファイル名 + 書類に内容を含む + 単位名を検索したい + 他のプログラムに切り替えると、自動的にコードが保存されます。 + 自動保存 + 自動保存機能 + 自動保存されています。 + コードだ + 検索を取り消す + 撤回 + 重を + 削除 + [未保存]%1$s + ゲームデータと同期 + 同期されたゲームデータを管理する。 + 同期データ + Apkを導き出す + Apkを導き出すことに成功する。 + Apkを導き出す + 失敗を導き出す。 + %1$sに導出されている。 + 導出している… + シンクロ成功。 + シンクロ失敗。 + シンクロしてる… + ServerAddress + サーバアドレス構成 + %1$sからの関連性のヒント + ログイン后、あなたは:\n-アップロード、モジュールをダウンロードすることができます。\n-コミュニティ内で友達とおしゃべりをする。\n-使用中文編集你的模組!\n-好きなクリエイターに注目 + 何をなさっていたのですか。 + まちがいはない + エラー情報を参照してください。 + クラッシュログ + このデバイスのクラッシュ記録を確認します。 + 申し訳ありませんが、現時点で値を提示できません。 + 公式データセットがアップグレードされた。 + 最近編集した内容が失われますが、引き続きですか\? + 更新を提出する + バージョン番号名が%1$sのコミットが存在する。 + 更新履歴を作成します。 + 日誌を更新する + 最近の更新:%1$s + 記録を更新する + \\"%1$s\\"に関する検索結果 + 結果 + 読み取り方式: + 追加 + 更新 + 追加や更新 + 削除 + コピー + データベースに記録を追加する + ソース記録と一致する記録を更新する + ターゲットに記録があれば更新し、そうでなければ追加します。 + ターゲット記録とソース記録が一致する記録を削除する + データベースを空にしてソースから再導入する + 読んでいます… + データベースの更新に成功しました。 + データベースの更新に失敗した。 + サーバーを変更する + 新しいサーバーアドレスを設定する(開発者からサーバーの変更を通知された場合、デフォルトで変更する必要はありません): + サーバーを変更しました。 + 注文管理 + 掲載 + 最近ログイン:%1$s uid:%2$s + クーポンを使った注文を作成しますが、継続しますか\?(注文作成完了後、クーポンを消費) + 使用 + アカウント/ eメール + ユーザーが見つからない場合は、メールアドレスが正しいか確認してください。 + ランダムに推薦する + 更迭 + 他のブラウザで開く + ホームページを更新する + ブラウザ内蔵 + まず協議に同意してください。 + 誤報告を作成する + エラーレポート作成完了。 + グローバルオペレーション + 追加 + %1$sフィールドを入力してください。 + urlを入力してください + 値タイプを入力してください。 + 値名は空にしない + 値記述はnullにできない + 値識別子はnullにできない + 値セレクタが空にならない + 下記の%1$dファイルが影響を受けます。 + 影響リスト + 新しい内容は元の内容と同じです。 + 処理完了 + アルバムで画像を選択する + 砲塔の設計 + ユーザー体験プログラム + 匿名送信ソフト奔砕情報(利用不可)。 + アップデートとユーザー体験プログラム + experiencePlan + 订单超时,无法支付。 + お支払いはされましたか\?未払いの注文は期限が切れ、支払いができなくなります。 + はい、支払いました + 注文を放棄する + すでにあなたのために%1$.2f元を割引して、依然として注文を放棄して、注文を放棄した后にクーポンを返しません。 + 支払いを続ける + 自分のメールアドレスがわからない\?こちらをクリックしてヘルプをご覧ください + qq番号 + QQメールボックスを使用して登録することをお勧めして、QQ番号を入力してください、私達は自働的にあなたのQQメールボックスを充填します。 + メールアドレスの記入が完了しました。 + パスワードを確認する + パスワードが二度一致しなかった。 + ソースコードを表示する ダイナミックカラー + DynamicColor + 壁紙に合わせてテーマカラーを変更します。 + この装置は動的色をサポートしない。 + タイトル \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c0a9057..cb7509e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1,253 +1,849 @@ - Помощник по ржавчине - Заявка на разрешение. - Нам нужны права диспетчера файлов для чтения списка модулей, редактирования исходных файлов, импорта модулей экспорта и так далее. - Разрешите - Выйдите. - Фон. - Перейти на задний план и распаковать. - Способ открытия. - Исключение анализа файлов - Выберите каталог. - Выберите файл - Выберите изображение. - Заменить изображение - Удалить изображение. - Откройте. - Создание единиц завершено. - Ошибка создания единицы. - Идет построение единиц.... - Определите. - Отменено - - Извлеките. - Исправить. - Исправление продолжается.%1$sИнформационный файл.... - Восстановление завершено. - Иди, иди%1$s... - Без модуля. - Модуль + Ржавый помощник + Запрос на доступ + Нам нужен доступ к файловому управлению, чтобы читать список модулей, редактировать исходные файлы, импортировать и экспортировать модули. + разрешен + выход + За кулис + Проверка оборудования + Переведен за кулисы для декомпрессии. + Открой. + Файл анализирует аномалию + Выбирать каталог + Выбери файл. + / % \ + Выбери образ. + Смени изображение. + Удалите изображение. + удал + Удаление изображения, расположенного в \ % $\ \\? + откр + откройте + Создание единицы завершено + Ошибка создания единицы + Создаем единицу... + увер + Активировать помощника ржавчины + Время активации прошло. Пожалуйста, активируйте ржавчину. + пакет + Все функции. + Только в этот раз. + Всегда. + Да, получил + Нет. + Создание проводника + отмен + Никаких подсказок. + В общей сложности 1 % проектов поддерживают быструю навигацию. + Кошелек кью. + Микровера. + Плати. + декомпресс + восстанов + Восстанавливаю информационные документы на $1... + Сканирую. + Сейчас он в движении. + Добавляю 10%... + - да. + - да. + Собирайся и закончи. + Неудачная упаковка. + Ремонт закончен. + Мы извлекаем 10%... + Нет модуля. + модул Имя файла: - База данных. - Идет удаление. - Диспетчер файлов. - Без описания. - Тег. - Создайте модуль. - Фильтрация. - Поиск. - Создать - Введите имя модуля. - Введите имя единицы измерения. - Введите описание. - Пожалуйста, используйте.\\nВместо поворота. - Невозможно создать этот модуль уже существует. - Невозможно создать эту единицу уже существует. - Невозможно создать эту единицу уже существует. - 文Файл не существует. Где ‘――――――――――― - Выберите игровой пакет. - Установите игровой пакет. - Единица редактирования. - Изменить информацию. - Извлеките. - Переименование. - Исправить информационные файлы - Изменить текст. - Извлеките файл. - Система включена по умолчанию. - Единица не найдена. - Не найдено единиц с именем %1$s для снятия фильтрации - Не найден код с именем %1$s для снятия фильтрации - Код для раздела %1$s не найден, фильтрация отменена - Отмените фильтрацию. - В фильтрации.... - Не может быть большой - Включить циклическое воспроизведение. - Отключение циклического воспроизведения - [Без циркуляции.] - 1.Загрузите %1$d единиц... - Загрузите файл.... - Всего 1 $ s проектов - База данных не найдена. - Использовать. - Использовано. - Создание единиц измерения. - Создайте путь:%1$s - Ключ %1$s не найден - Всего %1$s шаблонов - template-info.txtTemplate-info.txt не найден - Изменить. - Изменен каталог создания. - Месяц не открыт - Документы - Не удалось скопировать файл. - Не удалось скопировать файл, измените каталог создания. - Скопируйте. - Вырезать. - Скопируйте сюда. - Идентификатор. - Сбой копирования. На самом деле - Не удалось двигаться. - Переместите сюда. - Операция среза. - Скопируйте имя файла. - Скопируйте путь к файлу. - Операции с файлами. - Скопируйте абсолютный путь ( начиная с ROOT ) - Ошибка абсолютного пути копирования. - Произошла непредвиденная ошибка, и мягкая клавиатура вызвала сбой. - Создайте папку. - Альбом. - Диспетчер файлов. - Обновить. - Сделайте шаблон. - Выберите шаблон. - Тестировать это подразделение - Настройка действия. - Виды деятельности. - Дополнительный файл, созданный при использовании этого экземпляра в качестве единицы измерения компонента шаблона. - Файл не может быть добавлен повторно. - Присоединяйтесь. - Имя шаблона. - Создайте пакет шаблонов. - Введите имя шаблона. - Введите разработчика. - Введите описание. - Введите ссылку обновления. - Введите номер версии. - Введите имя версии. - Разработчик. - Невозможно создать этот шаблон уже существует. - Описание. - Имя версии. - Номер версии - Таблица кодов. - Используемая вами база данных устарела и является “Нет” обновленной до последней версии? - Обновление. - Обновление завершено. - Не удалось выполнить обновление. - Не классифицировано. + документ + Набор данных + Массив Дан (\ \"- да \\" раздел) : + удал + Удаляется... + Удаляет \ % $\ + Восстанавливается... + Ввод в ржавчину помощника + Файловой администратор + Нет описания. + назван + аккаунт + Введите номер счета. + Пожалуйста, введите номер счета или адрес электронной почты. + Введите пароль, пожалуйста. + Связь... + код + зарегистрирова + Найди пароль. + залогин + Я согласен с соглашением о службе и политикой конфиденциальности. + Протокол обслуживания + Политика конфиденциальности + описыва + этикетк + Введите этикетку, пожалуйста. + Пожалуйста, используйте \"\ \ \\" для разделения ярлыков, и работы с одинаковыми ярлыками будут распределены по категориям. + Создание модуля + Создать новую группу моделей. + фильтрац + Активировать счета. + Активация завершена. + Введите код активации: + поиск + поиск + созда + Введите правила поиска. + Пожалуйста, введите подпись книги. + Введите, пожалуйста, маршрут файла. + Создавать закладку + Пожалуйста, введите имя модуля. + Введите имя единицы. + Введите имя мероприятия. + Этот набор данных не может быть загружен по ложной причине :% $. + Введите описание, пожалуйста. + Пожалуйста, используйте \\n вместо строк. + Заменить текст + замен + Невозможно создать, эта группа уже существует. + Невозможно создать, этот блок уже существует. + Невозможно создать, эта папка уже существует. + Документов не существует. + У меня нет доступа к каталогу. + Не могу открыть этот каталог. + Выбери сумку. + Слезай с мостика + Набор для игры + Монтажная единица + Редактирование. + декомпресс + Переименовать. + Восстанавливать файл информации + Редактировать текст + + Ввод в шаблон + Импорт пакетов шаблонов из управления файлами. + Импортируйте модуль + Импорт из файлового управления в модульную группу. + Мусорная станция. + Восстановить модем из утилизации. + Паковать каталог + Модуль, упакованный перед ввозом. + Декомпрессионный файл + Система открывается по умолчанию + Ни одного. + Не нашл назван содерж % 1 $s подразделен, снят фильтрац + Ни Один из кодов, содержащих 1 % долларов США, не был найден, и фильтр был отменен + Не было найдено кодов на 1 %, чтобы отменить фильтрацию + Отмена фильтрации + Фильтрация... + Невозможно открыть набор данных + Включить повтор + Выключаю повтор + [нециркуляция] 1 доллар + Загрузка. + Загрузка файлов... + Закладка... + Подсчитываю... + Нет никакой закладки. + В общей сложности 1 % проекта + Не было найдено никаких данных + использова + Используется. + Создание единицы + Создание пути :% $ + Не могу найти ключ от доллара + 1 % от общей суммы + \"Template -info\" не был найден + изменен + Был изменён для создания каталога. + Не работает. + документ + Копирование файлов не сработало. + Копирование файла не удалось, поэтому, пожалуйста, измени создание каталога. + скопирова + выреза + Идентификатор. + На этом все. + Дублирование не выполнено. + Движение не работает. + Сюда. + Копировать имя файла + Копировать путь файла + ошибк + Было прочитано несколько модных файлов, расположенных в \ % $\ + Операция файл + операцион + Копирование абсолютного пути (начинается с Рут) + Повторить абсолютную ошибку. + Произошла случайная ошибка, и мягкая клавиатура пробуждает неудачу + Создание папки + фотоальб + Невозможность загрузки информации о группах модулей. + Подразделен счита: % 10 $d-да % 2 $d загрузк-да верс мест: % 3 доллар s + Количество единиц :% $d + Файловой администратор + освеж + Делать шаблон + Селективный шаблон + Проверь это. + Активация. + Редакторская деятельность + деятельн + Добавка к имени + Удаление дополнительного имени + При использовании шаблона для создания единицы, создается дополнительный файл. + Нельзя повторно добавлять файлы. + дополнительн + Шаблон. + Создать шаблон + Создать шаблон для хранения динамических шаблонов единицы. + Введите имя шаблона. + Пожалуйста, введите разработчика. + Введите описание, пожалуйста. + Введите обновленную ссылку. + Введите номер, пожалуйста. + Введите, пожалуйста, имя версии. + Застройщик. + Невозможно создать шаблон, который уже существует. + соглас + Оригинал. + Новое содержание. + содержан + Автор: время выпуска :%1 Долл., %2 Долл + описыва + Обновить связь + Название версии + Номер версии. + Таблица кодов. + Набор данных, который вы используете, устарел и был обновлен до последней версии\? + эскалац + Обновление завершено. + Обновление не сработало. + Неклассифицированные. + + Вводи. + Потяни за раму + Коробка с пометками. - Выйдите. - Выполняется сохранение %1$s … - %1$s Сохранение завершено。 + Выход без сохранения + Сохраняю 10%... + 10 процентов на сохранение завершено. - Объяснение %1$s - Создайте раздел %1$s - Создайте %1$s + объясняю + Неизвестные типы. \"% \ $\ + Создайте раздел в 1 % долларов + Создайте $1 % Форматирование. - Отменено. - Цвет. - Сохранить. - Ошибка при распаковке файла.。 - Неопознанный путь.。 - Удалить единицы измерения. + снят + цвет + сохран + Произошла ошибка при разгерметизации файла. + Неидентифицированный путь. + Удалите устройство. + Вы хотите, чтобы я удалила $1 %\? - В импорте.... - Импорт. - %1$s импортировано успешно - Импорт этого модуля ( %1$s )? - Покажите номер строки. + Импорт... + импортирова + Импорт в размере 1 % был успешным. + Импорт в США провалился. + 1 % было разработано специально для высоких версий помощников, которые не могли быть импортированы. + Невозможно прочитать файл. + Импортировать в эту модель (% $)\? + Импортировать этот шаблон (% $)\? + Покажи номер строки. Пустой файл. Пустая папка. - Пустая строка. - Комментарий. - Резервное копирование файлов. + Пуст. + аннотац + Резервный файл. - Ошибка форматирования. + Формат не сработал. Формат файла не является законным. - Настройка выполнена успешно. - Не удалось установить. + Получилось. + Сбой в установке. Это пустая строка. - Найдите %1$d пустой строки, чтобы просмотреть сведения - Найдите %1$d комментариев, чтобы просмотреть сведения - Нет оптимизированного проекта. - Загрузите проект оптимизации.... - В оптимизации.... - Подсказка кода. - Код не может быть подсказан, разместите курсор внутри любого раздела. - Переместите курсор на следующую строку для запроса кода этого раздела. - Нет кода для раздела %1$s. - Создайте раздел. - Привет, Россия | Новое начало, Новый опыт|2.0 Сбросная версия|Товарищ! + Найдите пустую строку в 1 % $и проверьте детали + Найдите примечание в размере $1 % и проверьте детали + Нет программы оптимизации. + Программа оптимизации загрузки... + Оптимизация... + Код. + Не могу открыть код, пожалуйста, поместите курсор в любой сегмент. + Пожалуйста, переставьте курсор в следующую строку, чтобы подсказать этот код. + Нет кода для подсказок о разделе 10%. + Фестиваль создания + Привет, мир! - да нов начинан, нов оп. - да 2.0 перезагрузк-да для мятн кстат\" + Ссылка на веб-страницу - Варианты разработчика. - Модуль. - Редактирование кода. - Пакет шаблона. - Закрыть. + Опция разработчика + модул + Редактирование кода + Шаблон. + закр + Qq групп + Удалена \ % \ \ \ + - Язык. - Загрузите базу данных.... - Не удалось загрузить базу данных. + язык + Загрузка данных... + Загрузка данных не удалась - Режим разработчика. - Параметры для разработчиков баз данных. - Вы предоставляете дополнительные варианты в рамках определенных функций. - Каталог хранения базы данных. - Каталог хранения шаблонов. - Сканирование галереи экранирующей системы. - Другие шаблоны языков скрывают фон - Файлы мультимедиа будут отсканированы системным альбомом. - Вы запрещаете системному альбому сканировать файлы мультимедиа. - Обычный. - Информация о применении. - Настройка. - Загрузите только шаблоны, соответствующие языку. - Загрузите список приложений.... - Вернитесь назад. - Информация о шаблоне. - Добавьте файлы. - Тип. - Отображать текст: - Значок шаблона: - Значок модуля: + Модель разработчика + Ориентированный на шаблон, опция разработчика набора данных. + Дополнительные возможности уже доступны в некоторых функциях. + Получить обновление + Набор данных для хранения каталога + Шаблон для хранения каталога + Сканирование системы щитов + Другие языковые шаблоны будут скрыты. + Медиа-файлы будут просканированы системным фотоальбомом. + Системные фотоальбомы были запрещены для сканирования файлов сми. + игнорирова + обычн + Прикладная информация + настройк + Загружены только шаблоны, подходящие для языка + Список приложений... + вернут + Трафаретная информация + Добавьте файл. + тип + Покажи текст: + Общий текст: + Покажи текст (входящий в Html): + Общий текст работает ниже андроида 7.0. + Ваша система не поддерживает отображение Html. + Шаблон икона: + Икона набора моделей: Фоновая музыка. - Карты. - Добавьте. - Воспроизведение с эксклюзивным доступом при использовании этого модуля. - Добавьте дополнительную карту для пути. - Отключен. - Включить. - Неверный значок. - Перейти к фоновому исправлению. - Компиляция журнала. - Компиляция %1$.2f%%.. - Расположен в строке %1$s %2$d: - 节Раздел - Обновите базу данных, используя существующие данные модуля. - Обновить. - В обновлении.... - Обновлено %1$s записей。 - Более подробная информация. - Просматривайте подробности. - Перейти в неправильное положение. - Навигация по коду. - Нет кода для навигации.。 - Пакет игр не установлен. - Вы не можете установить себя в игру. - Английский. - Китайский язык. + карт + добавля + Эксклюзивная трансляция при использовании модуля + Добавьте дополнительные карты маршрута + отключ + открыт + Введен в действие / % $/ вы можете выключиться в любой момент. + Икона недействительна. + Переведен за кулисы для ремонта. + Переведен за кулисы, упакован. + Бортовой журнал + Компиляция... + ден + Использовать существующие данные по модулю и обновлять набор данных. + обновля + Обновление... + Обновляется запись на $1 %. + Очистка кэша кода завершена. + очист + подробн + Проверьте детали. + Прыжок в неправильную позицию + Навигация по коду + Нет навигационного кода. + Не было никакого пакета. + Не могу настроить себя на игру + английск + китайск Пожалуйста, сохраните текущее содержимое. - Правила копирования. - Скопируйте информацию об ошибке. - Скопируйте отчет кода. - Код %1$s находится в разделе %2$s - Шаблон не найден. - Темная тема. - Скопировано %1$se - У вас есть документы, которые еще не сохранены для сохранения. Изменить? - Отображение системных приложений. - Игровой пакет. - Выберите игровой пакет. - Установите игровой пакет в списке ваших приложений. - В дар. - Оптимизация. - Сохраняйте исходный файл при распаковке модуля. - Сохраните исходный файл. + Правило копирования + прав + Ищите правила. + Копировать ложную информацию + Отчет по копированию кода + (кодовый отчет) код (%) расположен в разделе 2 доллара + Мы не нашли шаблон + Темный. + Скопировано.e + У вас есть документы, которые вы еще не сохранили. + Информация о крушении + Приложение для отображения системы + Выбери цвет. + Сумка. + Выбери сумку. + Мусорная станция + Управлять утилизацией + Административные документы + Управляй своими файлами по утилизации. + Когда вы удаляете модульную группу, она копируется на утилизацию. + Установи пакет в своем списке приложений. + Документы хранятся несколько дней + Каталог мусорных свалок + пожертвова + оптимизац + Когда распакуете модуль, сохраните исходный файл. + Сохранять исходный файл + Очистите место сброса + DatabasePath + AppLanguage + DatabaseDirectory + DeveloperMode + CustomSymbol + TemplateDirectory + AutoCreateNomedia + OnlyLoadConantLanguageTemple + NightMode + IndependentFolder + AppVersion + GamePackage + KeepRwmodFile + EnableRecoveryStation + RecoveryStationFileSaveDays + RecoveryStationFolder + Создать независимые папки для каждой единицы. + Создание независимой папки + Эту папку нельзя переименовать, в ней используются файлы. + Невозможно разрезать эту папку, в которой используются файлы. + Невозможно удалить эту папку, в которой используются файлы. + Переместил \ % \ \ \ \ \ в утилизацию. + ♪ в движении / / % $/ + Откройте каталог, в котором хранятся файлы + Ваши модели могут не быть проверены игрой. + В версии 1.15 и выше, пожалуйста, настройте хранилище на Internal(read/write) и External. То есть, внутренний модуль для чтения и записи игр, управляемый ассистентами. + Начинаем игру. + Установка завершена. + Используй редактора на фабрике дураков + Глупая фабрика. + редактор + Не было установлено никаких $%. + Полное восстановление. + Сохранились документы на сумму $1 %. + Copyright ©coldmint 2020-%1$d All Rights Reserved. + о + Открытый исходный код + Дополнительный член + Удалите исходный файл, когда закончите + упакова + Немедленное открытие на сумму $1.2f + В упаковке... + подел + PackDirectory + Очистить кэш кода + Самоопределение колонки символов + IdentifiersPromptNumber + Идентификатор указывает на количество + восстановлен + Паковать каталог + информац + Операция по монтажу + Операция закладка + Менеджер закладок + закладка + Убрать закладку + Добавить закладку + Закладка убрана. + Удаление закладки провалилось. + Закладка была добавлена. + Закладка не удалась. + Бумаги, на которые указывает закладка, не существуют. + Единичный каталог + UserName + Имя пользователя. + Группа доноров + Сообщать о потребителе + Смотрите. + Подписание книги уже существует. + Обратная связь мнений + UseJetBrainsМоноФонт + Используйте шрифт JetBrains Mono + Шрифт, встроенный в ассистентку, настоятельно рекомендуется использовать. + Каталога не существует. + Особая благодарность. + Почтов ящик + Регистрация прошла успешно. + Код активации аккаунта был отправлен на ваш почтовый ящик. Если письмо не было получено, почтовый ящик можно рассматривать как спам. Пожалуйста, проверьте мусорные баки. + Заходите, пожалуйста. + Интернет-ошибка. + Проверка не удалась. + ПроверитьБетаОбновление + Проверь бета-обновления + Введена в действие только в версии Release, бета-версии, с обязательным обновлением. + Количество загрузки... + Определите тип значения и добавьте его в подсказка. + Менеджер типов значений + Функция обмена использует обычный режим упаковки, а также желание использовать высшие функции упаковки (например, автоматическое добавление китайских комментариев, удаление пустых документов и т.д.). + Набор моделей + Загрузка... + Высший поиск + Уберите пустые файлы и папки + Удалить примечания + Код для формализации + Правила отбора исходных файлов + конфигурац + Правила проверки бесполезных документов + Обновить название + Обновить типы ссылок: + Ссылка на веб-страницу незаконна, поэтому, пожалуйста, начните с \"HTTP \ \\" или\" HTTPS \\". + Номер QQ должен быть номером, длиной от 8 до 10 бит. + Неизвестный тип обновления. + И вызвать провал qq. + представ + Добавьте содержание в начале текста + Добавьте содержание в конец текста + Передача завершена. + Отказ подачи + Никакой активности, чтобы ответить на это намерение. + Нет правил. + В этом шаблоне нет статических данных. + Убрать пустые строки. + Упакуйте исходные документы, когда закончите + Обнаружилось, что \"% \ $\ \ \ \ \ \ \ \ \\" был неожиданно удален. + Получено сообщение о повреждениях. Разработчики найдут решение этой проблемы с помощью этого доклада о разбивании. + Делиться сообщениями об ошибках + Перезагрузка. + Пожалуйста, введите ключевые слова, и проекты, которые не содержат ключевых слов, будут скрыты. + Идентификатор занят. + Помощник автоматически сопоставляет сегментные данные поля действия файла, которые невозможно добавить к этому правилу. + опубликова + Запуск удался. + В релизе... + глобальн + каталог + документ + Значение, определяемое глобальным полем действия, может быть определено в любой позиции модуля. + Область действия каталога, местоположение в его подкаталоге. + Поле действия файла можно найти только в его файлах. + Поле действия: + Введите \\"\@method\\" (\@method\\" method\\"), чтобы вызвать встроенный метод внедрения ассистента, введите другие элементы как регулярное отображение. + Неидентифицированный способ. + Читай по регулярному выражению. + Совпадает с именем файла в обычном порядке + Этот метод читает значения отображений в исходном файле в формате: \@method readValue(значение). Например, \@method readValue(name), читайте название единицы. + Этот метод считывает абсолютное название сегмента в исходном файле, в формате \@method absoluteSectionName. Например, \@method absoluteSectionName(turret), считывает название башни. + Этот метод возвращает имя файла. + Строительные проекты... + Строительство завершено. + Проект перестройки + Мы должны очистить кэш-данные и восстановить индексы\? + Немедленно реконструировать проект + Невозможно разобрать тип импорта / % $/ + Не могу определить путь / % \ \ + Ошибка ури. + Он находится в строке 1-2 доллара США: + Вы пытаетесь импортировать в низкобюджетную версию шаблона (% $), существующую версию (% $2$), которая покроет обновление. Хочешь продолжить\? + 10% уже существуют, и это покроет старые расходы. Хочешь продолжить\? + Используй документы. + Не могу сделать шаблон для пустых файлов. + Используя \"\ \ \ \\" для сегментации параметров, можно также использовать\" \ \ \ \ \ \ \ \ \ \ \ \\" для выявления параметров. Например :[нравится :like], нравится, чтобы его показали пользователям, а после отбора записывают в like. + Вы закончили\? + Монтажный шаблон + Было выявлено, что тип файла равен \"% \ $\\". + По умолчанию создаётся файл ini. + Вы, наверное, хотите напечатать \"% $\"\? + Загружаю единицу данных, пожалуйста, попробуйте использовать эту функцию после загрузки. + АнглийскийРедактированиеРежим + Напишите свою моду на английском языке, с китайской подсказок и грамматикой. + Модель развития прототипа + Вы используете английский в качестве языка разработки\? В отличие от работы в \ \\"MT management \", ассистенты имеют возможность давать советы по английскому коду, а также умные советы, направленные на окружающую среду модуля. + Неизвестная продолжительность активации + Срок действия: 1 % + сообществ + рекомендова + сем + мо + Последний выпуск. + Передлинное содержание указывает на то, что его можно вычеркнуть из списка. + В качестве подзаголовка списка будут отобраны \ % $\ \. + Имена указаны в списке в качестве названия. + Скриншот: + обязательн + опциональн + Ты хочешь отказаться от \"% $\"\? + пут + Добавьте из url + Проверка безопасности. + Проверка на то, что помощник был подделан третьей стороной и что процесс был прекращен для обеспечения безопасности вашего оборудования. Рекомендую вам установить официальную версию, долгосрочную поддержку мяты, разработку новых возможностей. + Группа, которая определяет вас, не может быть изменена после релиза. + Идентификация модуля + Я загрузил новую модную группу \@mod (% $1$), приходите посмотреть + Группа модулей \@mod (%), 2 доллара для обновления журнала/n:% $ + Эксклюзив на ассистентов, работа на 1 % + Идентификатор группы поддерживает только английский и цифры, которые могут содержать подчёркнутые линии. + установк + Установка... + Установлено. + Смотри. + Этот модуль скрыт снаружи, видимый только вами и администратором. + вниман + бесконечн + На обложку. + фанат + Ждем рассмотрения... + Фанат: % 1 $s-да вниман: % 2 доллар s-да получ лайк: % 3 доллар s + Получ лайк + Ничего. + страниц + динамическ + Проверь мое пространство + Общественные работы. + Управление работой + Чёрный вигвам. + Заявка на должность + Фан-менеджмент. + Премиальная конвертация + Этот человек ленив и не представляет. + Редактирование. + Уже стали фанатами друг друга + Внимание. + Отбой. + Может, хватит зацикливаться на этом\? + Орел: + Индивидуальная подпись. + Пол: + Пространственный фон: + Темный по умолчанию не включается автоматически + После регистрации ничего нельзя изменить. + Поддерживайте только английский, цифры, подчеркните. + Пароль должен быть между 6-20 бит и подчёркиваться буквенно-цифровым или подчёркнутым. + Пожалуйста, введите законный e-mail адрес. + Номер счета занят. + Внешн вид + Имя пользователя занято. + Абонентский ящик занят. + ModID уже занят. + Название модуля занято. + Абонент недоступен, пожалуйста, проверьте номер счета. + Ошибка в коде. + Набор Мод + Проверка показала, что вы заменили изображение, и поскольку Glide кэш механизм, ассистенту нужна перезагрузка, чтобы показать новое. Простите за неудобства. + расширен + Мультипотоковая загрузка Adm + Разрешите вызвать Adm-скачиватель для многопоточного скачивания. + useAdm + Пожалуйста, сначала установите Adm. + Adm загружает каталог + Автоматическое переключение строк + Набор результатов json имеет длину 0 + Модикон-переходный период + Загружается на 10% + Загрузка файлов завершена, ждем результатов обработки... + Загрузка файлов завершена. + Загрузка файлов провалилась. + Работы, содержащие «% \ $» + комментар + Рецензии (1 доллар США) + Давать комментарии + Последняя работа. + бестселлер + Скачивание в размере $1 МЛН + Проверьте все. + Конфигурация игры. + Экспортировать файл + экспортирова + Вот так + Проверьте статический код + Ставить примечания + активирова + 1$.2f + $1 % сэкономлено $2%2f + Ночной РежимПодключениеСистема + Следуйте за системой в темном режиме + Следуйте за системой включения или выключения темного режима + загрузк + Скачиваю 10% + Передача данных + Разрешите использовать сеть данных + Использование мобильной сети для загрузки модулей может привести к дополнительным расходам. + Использование мобильной сети для загрузки модулей может привести к дополнительным расходам. Все еще\? + usingMobileNetwork + Сосредоточьтесь на авторе, который вам нравится + Мое внимание. + Ничего. + Динамика релиза + врем + Загрузка. + Когда вы загрузите модуль, вышлите уведомление + Делиться до динамики + Полная динамика + Сосредоточиться на новой работе + В обновлённых записях указано имя версии. + Нам нужно провести повторный осмотр. + Вы хотите пересмотреть $1 %\? + перепроверить + склад + Карты нет. + удал + MapFolder + Каталог карт + ModFolder + Групповой каталог + Редактировать карту + Мы рекомендуем NotTiled в качестве инструмента редактирования карт. + загрузка + Использование межэтнической общности + Используйте сообщество в качестве стартовой страницы + По умолчанию. + продлен + Дополнительное напоминание + Ваш номер счета ($1) истекает через 2 дня. + Постоянная активация + Вы активированы навсегда. + наводк + - 10 процентов + Причина: + Украл материалы других моделей + Содержащее порнографию. + Содержит кровь. + Перевозка без разрешения + Описание модуля содержит непристойные слова + друг + мужск + женщин + Введите, пожалуйста, содержимое поиска + Отчет. + Был снят с крючка администратором за жалобу. + Этот модуль скрыт и не может быть донесён. + Не могу сообщить о своей группе моделей, и если вы хотите, чтобы она ушла с подиума, пожалуйста, пройдите в/управление работами /. + Администратор. + суперинтендант + Проверка модуля + отказыва + Убрать фанатов. + Купоны. + Купоны. + Не использовал никаких купонов. + Срок действия до: 1 % может использоваться 2 % + Мы переведем деньги на ваш счет в течение 24 часов после получения приказа. Если ваш заказ не будет выполнен в течение 24 часов, пожалуйста, сообщите нам ваш номер заказа. + плат + Способ оплаты: + Пожалуйста, заплатите $2 % в пределах $1 + Сохрани код сбора и скопируй примечание + Мы разместили двухмерные изображения на вашем оборудовании. Переходите к оплате в размере $%\? + QQ + wechat + настройк + Список заказов. + Вы хотите повторить номер заказа\? + - да. + Добавьте этого пользователя в черный список + Отвергнуть внимание + все + недавн + Исторических записей нет + Удаление исходного файла + Инициализированный список единиц... + Очистка кэша + КлирКэш + Возникает при медленном использовании приложений, а помощник ускоряется, читая кэш. + Кэш и место хранения + Открыть файл + Кэш кода + Кэш фреймворка Glide + Очистка кэша завершена. + Поиск по имени или содержимому файла. + Ключевое слово. + Имя файла. + Содержимое файла + Поиск названия + Автоматическое сохранение кода при переключении на другие программы. + Автоматическое сохранение + 3. Автосаве + Автоматическое сохранение. + Это код. + Прекратить поиск + снят + передела + удал + [несохраненные + Данные игры синхронизированы + Управление синхронизированными данными игры. + Синхронные данные + Экспортировать Apk + Экспорт Apk успешно завершен. + Экспортировать Apk + Экспорт не удался. + Вывезли до $1 %. + Мы производим... + Синхронизация завершена. + Синхронизация не работает. + Синхронизирую... + Адрес сервера + Размещение адреса сервера + Контактный совет от $1 % + После логина вы можете: загрузка, загрузка модульной группы. · плавно разговаривая с друзьями внутри сообщества. Редактировать вашу моду на китайском языке! Обрати внимание на своего любимого создателя + Что вы делали в это время\? + Никаких ошибок. + См. ОшибкаИнфо + Журнал аварии + Проверьте записи о авариях на этом устройстве. + Извините, сейчас не могу сказать. + Официальный набор данных был обновлен. + В последнее время редакция будет потеряна. + Представлять обновление + Существующая версия под названием % $. + Напиши свой новый журнал. + Обновить журнал + Последние новости :% $ + Обновить запись. + Результаты поиска \"% \ $\ \\" + результат + Способ чтения: + дополнительн + обновля + Добавка или обновление + удал + скопирова + Добавьте запись в базу данных + Обновление записей, соответствующих источнику + Если цель существует, обновить ее или добавить. + Удалите записи о цели и источнике + Очистите базу данных и введите из источника + Читаю. + База данных успешно обновляется. + Обновление базы данных не сработало. + Измени сервер. + Установите новый адрес сервера (если разработчик попросит вас заменить сервер, то по умолчанию изменения не требуются): + Сервер был изменен. + Управление заказом + напечата + Зарегистрировано недавно :% $uid:% $2 + Мы используем купоны, чтобы создать порядок. (после создания заказа, купоны будут расходуться) + использова + Номер счета/письмо + Абонент недоступен, пожалуйста, проверьте адрес электронной почты. + Случайная рекомендация. + замен + Открой его другим браузером + Обновить страницу + Встроенный браузер + Сначала согласись на сделку. + Создавать отчет об ошибке + Генерация ложных отчетов завершена. + Глобальная операция + дополнительн + Введите, пожалуйста, поле в % $. + Введите url + Введите, пожалуйста, тип значения. + Имя значения не может быть пустым + Значение не может быть пустым + Идентификатор значений не может быть пустым + Селектор значений не может быть пустым + Следующие 10% $будут затронуты. + Список последствий. + Новый контент и оригинал идентичны. + Сделано. + Выберите фотографии в фотоальбоме + Проектирование башни + Программа пользовательского опыта + Анонимная отправка программного обеспечения для уничтожения информации (временно недоступной). + Обновление версии с программой пользовательского опыта + experiencePlan + 订单超时,无法支付。 + Вы заплатили\? (неоплаченный заказ будет просрочен и не сможет больше платить за него). + Да, я заплатил за него + Отставить приказ. + Я сделал вам скидку в $1.2f, но вы все еще отказываетесь от заказа и не возвращаете купоны после отказа от заказа. + Продолжайте платить. + Не знаешь своего почтового адреса\? Нажмите здесь, чтобы увидеть помощь + \"QQ\" + Рекомендуется зарегистрировать абонентский ящик QQ, введите номер QQ, и мы автоматически заполним ваш QQ почтовый ящик. + Почтовый ящик заполнен. + Подтвердите код. + Два разных пароля. + Покажи исходный код. Динамический цвет + DynamicColor + Следуйте за обоями устройства для замены тематического цвета. + Это устройство не поддерживает динамические цвета. + заголовк \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index b8db0be..288d48b 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -2,7 +2,7 @@ 简体中文 - 繁體中文 + English 日本語 Россия @@ -10,7 +10,7 @@ zh - zh_TW + en ja ru diff --git a/dialog/src/main/java/com/coldmint/dialog/AppDialog.kt b/dialog/src/main/java/com/coldmint/dialog/AppDialog.kt index 617f0fc..9e63ba6 100644 --- a/dialog/src/main/java/com/coldmint/dialog/AppDialog.kt +++ b/dialog/src/main/java/com/coldmint/dialog/AppDialog.kt @@ -18,6 +18,7 @@ interface AppDialog { fun setTitle(string: String): AppDialog fun setTitle(stringRes: Int): AppDialog + fun dismiss() /** * 设置消息 @@ -101,4 +102,10 @@ interface AppDialog { */ fun setView(view: View): AppDialog + /** + * 设置是否可以自动关闭 + * @param enable Boolean + * @return AppDialog + */ + fun setAutoDismiss(enable: Boolean): AppDialog } \ No newline at end of file diff --git a/dialog/src/main/java/com/coldmint/dialog/BaseAppDialog.kt b/dialog/src/main/java/com/coldmint/dialog/BaseAppDialog.kt index 466eb51..a629548 100644 --- a/dialog/src/main/java/com/coldmint/dialog/BaseAppDialog.kt +++ b/dialog/src/main/java/com/coldmint/dialog/BaseAppDialog.kt @@ -9,7 +9,8 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder /** * 基础App对话框 */ -abstract class BaseAppDialog(context: Context) : AppDialog { +abstract class BaseAppDialog(context: Context) : + AppDialog { protected val materialAlertDialogBuilder: MaterialAlertDialogBuilder by lazy { MaterialAlertDialogBuilder(context) @@ -18,97 +19,101 @@ abstract class BaseAppDialog(context: Context) : AppDialog { protected lateinit var dialog: AlertDialog - override fun setTitle(string: String): AppDialog { + override fun dismiss() { + dialog.dismiss() + } + + override fun setTitle(string: String): DialogType { materialAlertDialogBuilder.setTitle(string) - return this + return this as DialogType } - override fun setTitle(stringRes: Int): AppDialog { + override fun setTitle(stringRes: Int): DialogType { materialAlertDialogBuilder.setTitle(stringRes) - return this + return this as DialogType } - override fun setMessage(stringRes: Int): AppDialog { + override fun setMessage(stringRes: Int): DialogType { materialAlertDialogBuilder.setMessage(stringRes) - return this + return this as DialogType } - override fun setMessage(string: String): AppDialog { + override fun setMessage(string: String): DialogType { materialAlertDialogBuilder.setMessage(string) - return this + return this as DialogType } - override fun show(): AppDialog { + override fun show(): DialogType { dialog = materialAlertDialogBuilder.show() - return this + return this as DialogType } - override fun setPositiveButton(text: String, func: () -> Unit): AppDialog { + override fun setPositiveButton(text: String, func: () -> Unit): DialogType { materialAlertDialogBuilder.setPositiveButton(text) { i, i2 -> func.invoke() } - return this + return this as DialogType } - override fun setPositiveButton(textRes: Int, func: () -> Unit): AppDialog { + override fun setPositiveButton(textRes: Int, func: () -> Unit): DialogType { materialAlertDialogBuilder.setPositiveButton(textRes) { i, i2 -> func.invoke() } - return this + return this as DialogType } - override fun setNegativeButton(text: String, func: () -> Unit): AppDialog { + override fun setNegativeButton(text: String, func: () -> Unit): DialogType { materialAlertDialogBuilder.setNegativeButton(text) { i, i2 -> func.invoke() } - return this + return this as DialogType } - override fun setNegativeButton(textRes: Int, func: () -> Unit): AppDialog { + override fun setNegativeButton(textRes: Int, func: () -> Unit): DialogType { materialAlertDialogBuilder.setNegativeButton(textRes) { i, i2 -> func.invoke() } - return this + return this as DialogType } - override fun setNeutralButton(text: String, func: () -> Unit): AppDialog { + override fun setNeutralButton(text: String, func: () -> Unit): DialogType { materialAlertDialogBuilder.setNeutralButton(text) { i, i2 -> func.invoke() } - return this + return this as DialogType } - override fun setNeutralButton(textRes: Int, func: () -> Unit): AppDialog { + override fun setNeutralButton(textRes: Int, func: () -> Unit): DialogType { materialAlertDialogBuilder.setNeutralButton(textRes) { i, i2 -> func.invoke() } - return this + return this as DialogType } - override fun setCancelable(cancelable: Boolean): AppDialog { + override fun setCancelable(cancelable: Boolean): DialogType { materialAlertDialogBuilder.setCancelable(cancelable) - return this + return this as DialogType } - override fun setIcon(iconRes: Int): AppDialog { + override fun setIcon(iconRes: Int): DialogType { materialAlertDialogBuilder.setIcon(iconRes) - return this + return this as DialogType } override fun setSingleChoiceItems( singleItems: Array, func: (Int, CharSequence) -> Unit, checkedItem: Int - ): AppDialog { + ): DialogType { materialAlertDialogBuilder.setSingleChoiceItems(singleItems, checkedItem) { dialog, which -> func.invoke(which, singleItems[which]) } - return this + return this as DialogType } - override fun setView(view: View): AppDialog { + override fun setView(view: View): DialogType { materialAlertDialogBuilder.setView(view) - return this + return this as DialogType } } diff --git a/dialog/src/main/java/com/coldmint/dialog/CoreDialog.kt b/dialog/src/main/java/com/coldmint/dialog/CoreDialog.kt index a4da3a0..ec1163e 100644 --- a/dialog/src/main/java/com/coldmint/dialog/CoreDialog.kt +++ b/dialog/src/main/java/com/coldmint/dialog/CoreDialog.kt @@ -1,11 +1,131 @@ package com.coldmint.dialog import android.content.Context +import android.view.LayoutInflater +import android.view.View +import androidx.core.view.isVisible import com.coldmint.dialog.BaseAppDialog +import com.coldmint.dialog.databinding.DialogCoreBinding /** * 核心对话框 * @constructor */ -class CoreDialog(context: Context) : BaseAppDialog(context) { +class CoreDialog(context: Context) : BaseAppDialog(context) { + + val dialogCoreBinding by lazy { + DialogCoreBinding.inflate(LayoutInflater.from(context)) + } + + private var autoDismiss: Boolean = true + + init { + setView(dialogCoreBinding.root) + } + + /** + * 设置是否自动关闭 + * @param enable Boolean + */ + override fun setAutoDismiss(enable: Boolean): CoreDialog { + autoDismiss = enable + return this + } + + override fun setTitle(string: String): CoreDialog { + dialogCoreBinding.titleView.isVisible = true + dialogCoreBinding.titleView.text = string + return this + } + + override fun setTitle(stringRes: Int): CoreDialog { + dialogCoreBinding.titleView.isVisible = true + dialogCoreBinding.titleView.setText(stringRes) + return this + } + + override fun setMessage(stringRes: Int): CoreDialog { + dialogCoreBinding.messageView.isVisible = true + dialogCoreBinding.messageView.setText(stringRes) + return this + } + + override fun setMessage(string: String): CoreDialog { + dialogCoreBinding.messageView.isVisible = true + dialogCoreBinding.messageView.text = string + return this + } + + override fun setPositiveButton(text: String, func: () -> Unit): CoreDialog { + dialogCoreBinding.buttonContainer.isVisible = true + dialogCoreBinding.positiveButton.isVisible = true + dialogCoreBinding.positiveButton.text = text + dialogCoreBinding.positiveButton.setOnClickListener { + func.invoke() + if (autoDismiss) { + dialog.dismiss() + } + } + return this + } + + override fun setPositiveButton(textRes: Int, func: () -> Unit): CoreDialog { + dialogCoreBinding.buttonContainer.isVisible = true + dialogCoreBinding.positiveButton.isVisible = true + dialogCoreBinding.positiveButton.setText(textRes) + dialogCoreBinding.positiveButton.setOnClickListener { + func.invoke() + if (autoDismiss) { + dialog.dismiss() + } + } + return this + } + + override fun setNegativeButton(text: String, func: () -> Unit): CoreDialog { + dialogCoreBinding.buttonContainer.isVisible = true + dialogCoreBinding.negativeButton.isVisible = true + dialogCoreBinding.negativeButton.text = text + dialogCoreBinding.negativeButton.setOnClickListener { + func.invoke() + if (autoDismiss) { + dialog.dismiss() + } + } + return this + } + + override fun setNegativeButton(textRes: Int, func: () -> Unit): CoreDialog { + dialogCoreBinding.buttonContainer.isVisible = true + dialogCoreBinding.negativeButton.isVisible = true + dialogCoreBinding.negativeButton.setText(textRes) + dialogCoreBinding.negativeButton.setOnClickListener { + func.invoke() + if (autoDismiss) { + dialog.dismiss() + } + } + return this + } + + + @Deprecated("无法使用。") + override fun setIcon(iconRes: Int): CoreDialog { + return super.setIcon(iconRes) + } + + @Deprecated("无法使用。") + override fun setView(view: View): CoreDialog { + return super.setView(view) + } + + @Deprecated("无法使用。") + override fun setSingleChoiceItems( + singleItems: Array, + func: (Int, CharSequence) -> Unit, + checkedItem: Int + ): CoreDialog { + return super.setSingleChoiceItems(singleItems, func, checkedItem) + } + } \ No newline at end of file diff --git a/dialog/src/main/java/com/coldmint/dialog/InputDialog.kt b/dialog/src/main/java/com/coldmint/dialog/InputDialog.kt index ff00b93..64d2315 100644 --- a/dialog/src/main/java/com/coldmint/dialog/InputDialog.kt +++ b/dialog/src/main/java/com/coldmint/dialog/InputDialog.kt @@ -7,26 +7,63 @@ import android.view.LayoutInflater import android.view.View import androidx.core.view.isVisible import com.coldmint.dialog.databinding.DialogInputBinding +import com.google.android.material.textfield.TextInputLayout /** * 输入对话框 * @property dialogInputBinding [@androidx.annotation.NonNull] DialogInputBinding * @constructor */ -class InputDialog(context: Context) : BaseAppDialog(context) { +class InputDialog(context: Context) : BaseAppDialog(context) { - val dialogInputBinding by lazy { + private val dialogInputBinding by lazy { DialogInputBinding.inflate(LayoutInflater.from(context)) } private var autoDismiss: Boolean = true private var inputCanBeEmpty: Boolean = true + private var errorTipFunction: ((String, TextInputLayout) -> Unit)? = null + + /** + * 设置错误提示,若设置了错误提示,按钮空检查将失效 + * @param func Function2? + */ + fun setErrorTip(func: ((String, TextInputLayout) -> Unit)?): InputDialog { + errorTipFunction = func + dialogInputBinding.positiveButton.isEnabled = func == null + return this + } + + /** + * 设置编辑框文本 + * @param string String + * @return InputDialog + */ + fun setText(string: String):InputDialog{ + dialogInputBinding.textInputEditText.setText(string) + return this + } + + /** + * 设置最大输入数量 + * @param number Int 小于0禁用 + * @return InputDialog + */ + fun setMaxNumber(number: Int): InputDialog { + if (number > 0) { + dialogInputBinding.textInputLayout.counterMaxLength = number + dialogInputBinding.textInputLayout.isCounterEnabled = true + } else { + dialogInputBinding.textInputLayout.isCounterEnabled = false + } + return this + } /** * 设置是否自动关闭 * @param enable Boolean */ - fun setAutoDismiss(enable: Boolean): InputDialog { + override fun setAutoDismiss(enable: Boolean): InputDialog { autoDismiss = enable return this } @@ -56,38 +93,61 @@ class InputDialog(context: Context) : BaseAppDialog(context) { override fun afterTextChanged(p0: Editable?) { val text = p0.toString() - dialogInputBinding.positiveButton.isEnabled = !(text.isBlank() && !inputCanBeEmpty) + if (errorTipFunction != null) { + errorTipFunction!!.invoke(text, dialogInputBinding.textInputLayout) + } else { + dialogInputBinding.positiveButton.isEnabled = + !(text.isBlank() && !inputCanBeEmpty) + } +//如果启用计数并且,超过最大字数 + if (dialogInputBinding.textInputLayout.isCounterEnabled && text.length > dialogInputBinding.textInputLayout.counterMaxLength) { + dialogInputBinding.textInputLayout.isErrorEnabled = true + } + //如果处于错误状态禁用按钮 + dialogInputBinding.positiveButton.isEnabled = + !dialogInputBinding.textInputLayout.isErrorEnabled } }) } - override fun setTitle(string: String): AppDialog { + fun setHint(string: String): InputDialog { + dialogInputBinding.textInputLayout.hint = string + return this + } + + fun setHint(stringRes: Int): InputDialog { + dialogInputBinding.textInputLayout.setHint(stringRes) + return this + } + + override fun setTitle(string: String): InputDialog { dialogInputBinding.titleView.isVisible = true dialogInputBinding.titleView.text = string return this } - override fun setTitle(stringRes: Int): AppDialog { + override fun setTitle(stringRes: Int): InputDialog { dialogInputBinding.titleView.isVisible = true dialogInputBinding.titleView.setText(stringRes) return this } - override fun setMessage(stringRes: Int): AppDialog { + override fun setMessage(stringRes: Int): InputDialog { dialogInputBinding.messageView.isVisible = true dialogInputBinding.messageView.setText(stringRes) return this } - override fun setMessage(string: String): AppDialog { + override fun setMessage(string: String): InputDialog { dialogInputBinding.messageView.isVisible = true dialogInputBinding.messageView.text = string return this } - override fun setPositiveButton(text: String, func: () -> Unit): AppDialog { + @Deprecated("已废弃") + override fun setPositiveButton(text: String, func: () -> Unit): InputDialog { dialogInputBinding.buttonContainer.isVisible = true dialogInputBinding.positiveButton.isVisible = true dialogInputBinding.positiveButton.text = text @@ -100,7 +160,8 @@ class InputDialog(context: Context) : BaseAppDialog(context) { return this } - override fun setPositiveButton(textRes: Int, func: () -> Unit): AppDialog { + @Deprecated("已废弃") + override fun setPositiveButton(textRes: Int, func: () -> Unit): InputDialog { dialogInputBinding.buttonContainer.isVisible = true dialogInputBinding.positiveButton.isVisible = true dialogInputBinding.positiveButton.setText(textRes) @@ -113,7 +174,45 @@ class InputDialog(context: Context) : BaseAppDialog(context) { return this } - override fun setNegativeButton(text: String, func: () -> Unit): AppDialog { + fun setPositiveButton(text: String, func: (String) -> Boolean): InputDialog { + dialogInputBinding.buttonContainer.isVisible = true + dialogInputBinding.positiveButton.isVisible = true + dialogInputBinding.positiveButton.text = text + dialogInputBinding.positiveButton.setOnClickListener { + val d = func.invoke( + dialogInputBinding.textInputEditText.text.toString() + ) + if (d) { + dialog.dismiss() + return@setOnClickListener + } + if (autoDismiss) { + dialog.dismiss() + } + } + return this + } + + fun setPositiveButton(textRes: Int, func: (String) -> Boolean): InputDialog { + dialogInputBinding.buttonContainer.isVisible = true + dialogInputBinding.positiveButton.isVisible = true + dialogInputBinding.positiveButton.setText(textRes) + dialogInputBinding.positiveButton.setOnClickListener { + val d = func.invoke( + dialogInputBinding.textInputEditText.text.toString() + ) + if (d) { + dialog.dismiss() + return@setOnClickListener + } + if (autoDismiss) { + dialog.dismiss() + } + } + return this + } + + override fun setNegativeButton(text: String, func: () -> Unit): InputDialog { dialogInputBinding.buttonContainer.isVisible = true dialogInputBinding.negativeButton.isVisible = true dialogInputBinding.negativeButton.text = text @@ -126,7 +225,7 @@ class InputDialog(context: Context) : BaseAppDialog(context) { return this } - override fun setNegativeButton(textRes: Int, func: () -> Unit): AppDialog { + override fun setNegativeButton(textRes: Int, func: () -> Unit): InputDialog { dialogInputBinding.buttonContainer.isVisible = true dialogInputBinding.negativeButton.isVisible = true dialogInputBinding.negativeButton.setText(textRes) @@ -140,22 +239,22 @@ class InputDialog(context: Context) : BaseAppDialog(context) { } - @Deprecated("输入对话框无法使用。") - override fun setIcon(iconRes: Int): AppDialog { + @Deprecated("无法使用。") + override fun setIcon(iconRes: Int): InputDialog { return super.setIcon(iconRes) } - @Deprecated("输入对话框无法使用。") - override fun setView(view: View): AppDialog { + @Deprecated("无法使用。") + override fun setView(view: View): InputDialog { return super.setView(view) } - @Deprecated("输入对话框无法使用。") + @Deprecated("无法使用。") override fun setSingleChoiceItems( singleItems: Array, func: (Int, CharSequence) -> Unit, checkedItem: Int - ): AppDialog { + ): InputDialog { return super.setSingleChoiceItems(singleItems, func, checkedItem) } } \ No newline at end of file diff --git a/dialog/src/main/res/layout/dialog_core.xml b/dialog/src/main/res/layout/dialog_core.xml new file mode 100644 index 0000000..bf8a3df --- /dev/null +++ b/dialog/src/main/res/layout/dialog_core.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + +