mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-02-11 16:59:54 +08:00
localization
This commit is contained in:
parent
54c4ca4180
commit
a9b044b4d2
HMCL
HMCLCore/src/main/kotlin/org/jackhuang/hmcl
@ -11,15 +11,16 @@ def buildnumber = System.getenv("TRAVIS_BUILD_NUMBER")
|
||||
if (buildnumber == null)
|
||||
buildnumber = System.getenv("BUILD_NUMBER")
|
||||
if (buildnumber == null)
|
||||
buildnumber = "33"
|
||||
buildnumber = "SNAPSHOT"
|
||||
|
||||
def versionroot = System.getenv("VERSION_ROOT")
|
||||
if (versionroot == null)
|
||||
versionroot = "2.7.8"
|
||||
versionroot = "3.0"
|
||||
|
||||
String mavenGroupId = 'HMCL'
|
||||
String mavenVersion = versionroot + '.' + buildnumber
|
||||
String bundleName = "Hello Minecraft! Launcher"
|
||||
version = mavenVersion
|
||||
|
||||
dependencies {
|
||||
compile project(":HMCLCore")
|
||||
|
@ -19,11 +19,25 @@ package org.jackhuang.hmcl
|
||||
|
||||
import javafx.application.Application
|
||||
import javafx.stage.Stage
|
||||
import org.jackhuang.hmcl.setting.Settings
|
||||
import org.jackhuang.hmcl.task.Scheduler
|
||||
import org.jackhuang.hmcl.ui.Controllers
|
||||
import org.jackhuang.hmcl.ui.UTF8Control
|
||||
import org.jackhuang.hmcl.util.DEFAULT_USER_AGENT
|
||||
import org.jackhuang.hmcl.util.LOG
|
||||
import org.jackhuang.hmcl.util.OS
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import java.util.logging.Level
|
||||
|
||||
fun i18n(key: String): String {
|
||||
try {
|
||||
return Main.RESOURCE_BUNDLE.getString(key)
|
||||
} catch (e: Exception) {
|
||||
LOG.log(Level.WARNING, "Cannot find key $key in resource bundle", e)
|
||||
return key
|
||||
}
|
||||
}
|
||||
|
||||
class Main : Application() {
|
||||
|
||||
@ -68,5 +82,7 @@ class Main : Application() {
|
||||
PRIMARY_STAGE.close()
|
||||
Scheduler.shutdown()
|
||||
}
|
||||
|
||||
val RESOURCE_BUNDLE = Settings.LANG.resourceBundle
|
||||
}
|
||||
}
|
@ -42,6 +42,12 @@ class Config {
|
||||
field = value
|
||||
Settings.save()
|
||||
}
|
||||
@SerializedName("proxyType")
|
||||
var proxyType: Int = 0
|
||||
set(value) {
|
||||
field = value
|
||||
Settings.save()
|
||||
}
|
||||
@SerializedName("proxyHost")
|
||||
var proxyHost: String? = null
|
||||
set(value) {
|
||||
|
@ -40,11 +40,8 @@ class Profile(var name: String = "Default", initialGameDir: File = File(".minecr
|
||||
val gameDirProperty = ImmediateObjectProperty<File>(this, "gameDir", initialGameDir)
|
||||
var gameDir: File by gameDirProperty
|
||||
|
||||
val noCommonProperty = ImmediateBooleanProperty(this, "noCommon", false)
|
||||
var noCommon: Boolean by noCommonProperty
|
||||
|
||||
var repository = HMCLGameRepository(initialGameDir)
|
||||
var dependency = DefaultDependencyManager(repository, BMCLAPIDownloadProvider)
|
||||
val dependency: DefaultDependencyManager get() = DefaultDependencyManager(repository, Settings.DOWNLOAD_PROVIDER, Settings.PROXY)
|
||||
var modManager = ModManager(repository)
|
||||
|
||||
init {
|
||||
@ -93,7 +90,6 @@ class Profile(var name: String = "Default", initialGameDir: File = File(".minecr
|
||||
globalProperty.addListener(listener)
|
||||
selectedVersionProperty.addListener(listener)
|
||||
gameDirProperty.addListener(listener)
|
||||
noCommonProperty.addListener(listener)
|
||||
}
|
||||
|
||||
companion object Serializer: JsonSerializer<Profile>, JsonDeserializer<Profile> {
|
||||
@ -104,7 +100,6 @@ class Profile(var name: String = "Default", initialGameDir: File = File(".minecr
|
||||
add("global", context.serialize(src.global))
|
||||
addProperty("selectedVersion", src.selectedVersion)
|
||||
addProperty("gameDir", src.gameDir.path)
|
||||
addProperty("noCommon", src.noCommon)
|
||||
}
|
||||
|
||||
return jsonObject
|
||||
@ -115,7 +110,6 @@ class Profile(var name: String = "Default", initialGameDir: File = File(".minecr
|
||||
|
||||
return Profile(initialGameDir = File(json["gameDir"]?.asString ?: ""), initialSelectedVersion = json["selectedVersion"]?.asString ?: "").apply {
|
||||
global = context.deserialize(json["global"], VersionSetting::class.java)
|
||||
noCommon = json["noCommon"]?.asBoolean ?: false
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,10 +31,11 @@ import org.jackhuang.hmcl.ProfileLoadingEvent
|
||||
import org.jackhuang.hmcl.ProfileChangedEvent
|
||||
import org.jackhuang.hmcl.auth.Account
|
||||
import org.jackhuang.hmcl.util.*
|
||||
import org.jackhuang.hmcl.auth.OfflineAccount
|
||||
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount
|
||||
import org.jackhuang.hmcl.event.EVENT_BUS
|
||||
import org.jackhuang.hmcl.util.property.ImmediateObjectProperty
|
||||
import java.net.Authenticator
|
||||
import java.net.InetSocketAddress
|
||||
import java.net.PasswordAuthentication
|
||||
import java.net.Proxy
|
||||
import java.util.*
|
||||
|
||||
@ -58,13 +59,10 @@ object Settings {
|
||||
SETTINGS = initSettings();
|
||||
|
||||
loop@for ((name, settings) in SETTINGS.accounts) {
|
||||
val factory = when(settings["type"]) {
|
||||
"yggdrasil" -> YggdrasilAccount
|
||||
"offline" -> OfflineAccount
|
||||
else -> {
|
||||
SETTINGS.accounts.remove(name)
|
||||
continue@loop
|
||||
}
|
||||
val factory = Accounts.ACCOUNT_FACTORY[settings["type"] ?: ""]
|
||||
if (factory == null) {
|
||||
SETTINGS.accounts.remove(name)
|
||||
continue@loop
|
||||
}
|
||||
|
||||
val account = factory.fromStorage(settings)
|
||||
@ -92,12 +90,6 @@ object Settings {
|
||||
}
|
||||
}
|
||||
|
||||
fun getDownloadProvider(): DownloadProvider = when (SETTINGS.downloadtype) {
|
||||
0 -> MojangDownloadProvider
|
||||
1 -> BMCLAPIDownloadProvider
|
||||
else -> MojangDownloadProvider
|
||||
}
|
||||
|
||||
private fun initSettings(): Config {
|
||||
var c = Config()
|
||||
if (SETTINGS_FILE.exists())
|
||||
@ -127,11 +119,7 @@ object Settings {
|
||||
SETTINGS.accounts.clear()
|
||||
for ((name, account) in ACCOUNTS) {
|
||||
val storage = account.toStorage()
|
||||
storage["type"] = when(account) {
|
||||
is OfflineAccount -> "offline"
|
||||
is YggdrasilAccount -> "yggdrasil"
|
||||
else -> ""
|
||||
}
|
||||
storage["type"] = Accounts.getAccountType(account)
|
||||
SETTINGS.accounts[name] = storage
|
||||
}
|
||||
|
||||
@ -141,13 +129,70 @@ object Settings {
|
||||
}
|
||||
}
|
||||
|
||||
val selectedProfile: Profile
|
||||
get() {
|
||||
if (!hasProfile(SETTINGS.selectedProfile))
|
||||
SETTINGS.selectedProfile = DEFAULT_PROFILE
|
||||
return getProfile(SETTINGS.selectedProfile)
|
||||
var LANG: Locales.SupportedLocale = Locales.getLocaleByName(SETTINGS.localization)
|
||||
set(value) {
|
||||
field = value
|
||||
SETTINGS.localization = Locales.getNameByLocal(value)
|
||||
}
|
||||
|
||||
var PROXY: Proxy = Proxy.NO_PROXY
|
||||
var PROXY_TYPE: Proxy.Type? = Proxies.getProxyType(SETTINGS.proxyType)
|
||||
set(value) {
|
||||
field = value
|
||||
SETTINGS.proxyType = Proxies.PROXIES.indexOf(value)
|
||||
loadProxy()
|
||||
}
|
||||
|
||||
var PROXY_HOST: String? get() = SETTINGS.proxyHost; set(value) { SETTINGS.proxyHost = value }
|
||||
var PROXY_PORT: String? get() = SETTINGS.proxyPort; set(value) { SETTINGS.proxyPort = value }
|
||||
var PROXY_USER: String? get() = SETTINGS.proxyUserName; set(value) { SETTINGS.proxyUserName = value }
|
||||
var PROXY_PASS: String? get() = SETTINGS.proxyPassword; set(value) { SETTINGS.proxyPassword = value }
|
||||
|
||||
private fun loadProxy() {
|
||||
val host = PROXY_HOST
|
||||
val port = PROXY_PORT?.toIntOrNull()
|
||||
if (host == null || host.isBlank() || port == null)
|
||||
PROXY = Proxy.NO_PROXY
|
||||
else {
|
||||
System.setProperty("http.proxyHost", PROXY_HOST)
|
||||
System.setProperty("http.proxyPort", PROXY_PORT)
|
||||
PROXY = Proxy(PROXY_TYPE, InetSocketAddress(host, port))
|
||||
|
||||
val user = PROXY_USER
|
||||
val pass = PROXY_PASS
|
||||
if (user != null && user.isNotBlank() && pass != null && pass.isNotBlank()) {
|
||||
System.setProperty("http.proxyUser", user)
|
||||
System.setProperty("http.proxyPassword", pass)
|
||||
|
||||
Authenticator.setDefault(object : Authenticator() {
|
||||
override fun getPasswordAuthentication(): PasswordAuthentication {
|
||||
return PasswordAuthentication(user, pass.toCharArray())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init { loadProxy() }
|
||||
|
||||
var DOWNLOAD_PROVIDER: DownloadProvider
|
||||
get() = when (SETTINGS.downloadtype) {
|
||||
0 -> MojangDownloadProvider
|
||||
1 -> BMCLAPIDownloadProvider
|
||||
else -> MojangDownloadProvider
|
||||
}
|
||||
set(value) {
|
||||
SETTINGS.downloadtype = when (value) {
|
||||
MojangDownloadProvider -> 0
|
||||
BMCLAPIDownloadProvider -> 1
|
||||
else -> 0
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************
|
||||
* ACCOUNTS *
|
||||
****************************************/
|
||||
|
||||
val selectedAccountProperty = object : ImmediateObjectProperty<Account?>(this, "selectedAccount", getAccount(SETTINGS.selectedAccount)) {
|
||||
override fun get(): Account? {
|
||||
val a = super.get()
|
||||
@ -172,12 +217,6 @@ object Settings {
|
||||
}
|
||||
var selectedAccount: Account? by selectedAccountProperty
|
||||
|
||||
val PROXY: Proxy = Proxy.NO_PROXY
|
||||
val PROXY_HOST: String? get() = SETTINGS.proxyHost
|
||||
val PROXY_PORT: String? get() = SETTINGS.proxyPort
|
||||
val PROXY_USER: String? get() = SETTINGS.proxyUserName
|
||||
val PROXY_PASS: String? get() = SETTINGS.proxyPassword
|
||||
|
||||
fun addAccount(account: Account) {
|
||||
ACCOUNTS[account.username] = account
|
||||
}
|
||||
@ -196,6 +235,17 @@ object Settings {
|
||||
selectedAccountProperty.get()
|
||||
}
|
||||
|
||||
/****************************************
|
||||
* PROFILES *
|
||||
****************************************/
|
||||
|
||||
val selectedProfile: Profile
|
||||
get() {
|
||||
if (!hasProfile(SETTINGS.selectedProfile))
|
||||
SETTINGS.selectedProfile = DEFAULT_PROFILE
|
||||
return getProfile(SETTINGS.selectedProfile)
|
||||
}
|
||||
|
||||
fun getProfile(name: String?): Profile {
|
||||
var p: Profile? = getProfileMap()[name ?: DEFAULT_PROFILE]
|
||||
if (p == null)
|
||||
|
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Hello Minecraft! Launcher.
|
||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
*/
|
||||
package org.jackhuang.hmcl.setting
|
||||
|
||||
import org.jackhuang.hmcl.auth.Account
|
||||
import org.jackhuang.hmcl.auth.AccountFactory
|
||||
import org.jackhuang.hmcl.auth.OfflineAccount
|
||||
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount
|
||||
import org.jackhuang.hmcl.download.BMCLAPIDownloadProvider
|
||||
import org.jackhuang.hmcl.download.MojangDownloadProvider
|
||||
import org.jackhuang.hmcl.ui.UTF8Control
|
||||
import java.net.Proxy
|
||||
import java.util.*
|
||||
|
||||
object Proxies {
|
||||
val PROXIES = listOf(null, Proxy.Type.DIRECT, Proxy.Type.HTTP, Proxy.Type.SOCKS)
|
||||
|
||||
fun getProxyType(index: Int): Proxy.Type? = PROXIES.getOrNull(index)
|
||||
}
|
||||
|
||||
object DownloadProviders {
|
||||
val DOWNLOAD_PROVIDERS = listOf(MojangDownloadProvider, BMCLAPIDownloadProvider)
|
||||
|
||||
fun getDownloadProvider(index: Int) = DOWNLOAD_PROVIDERS.getOrElse(index, { MojangDownloadProvider })
|
||||
}
|
||||
|
||||
object Accounts {
|
||||
val OFFLINE_ACCOUNT_KEY = "offline"
|
||||
val YGGDRASIL_ACCOUNT_KEY = "yggdrasil"
|
||||
|
||||
val ACCOUNTS = listOf(OfflineAccount, YggdrasilAccount)
|
||||
val ACCOUNT_FACTORY = mapOf<String, AccountFactory<*>>(
|
||||
OFFLINE_ACCOUNT_KEY to OfflineAccount,
|
||||
YGGDRASIL_ACCOUNT_KEY to YggdrasilAccount
|
||||
)
|
||||
|
||||
fun getAccountType(account: Account): String {
|
||||
return when (account) {
|
||||
is OfflineAccount -> OFFLINE_ACCOUNT_KEY
|
||||
is YggdrasilAccount -> YGGDRASIL_ACCOUNT_KEY
|
||||
else -> YGGDRASIL_ACCOUNT_KEY
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object Locales {
|
||||
class SupportedLocale internal constructor(
|
||||
val locale: Locale,
|
||||
private val nameImpl: String? = null
|
||||
) {
|
||||
val resourceBundle: ResourceBundle = ResourceBundle.getBundle("assets.lang.I18N", locale, UTF8Control)
|
||||
|
||||
fun getName(nowResourceBundle: ResourceBundle): String {
|
||||
if (nameImpl == null)
|
||||
return resourceBundle.getString("lang")
|
||||
else
|
||||
return nowResourceBundle.getString(nameImpl)
|
||||
}
|
||||
}
|
||||
|
||||
val DEFAULT = SupportedLocale(Locale.getDefault(), "lang.default")
|
||||
val EN = SupportedLocale(Locale.ENGLISH)
|
||||
val ZH = SupportedLocale(Locale.TRADITIONAL_CHINESE)
|
||||
val ZH_CN = SupportedLocale(Locale.SIMPLIFIED_CHINESE)
|
||||
val VI = SupportedLocale(Locale("vi"))
|
||||
val RU = SupportedLocale(Locale("ru"))
|
||||
|
||||
val LOCALES = listOf(DEFAULT, EN, ZH, ZH_CN, VI, RU)
|
||||
|
||||
fun getLocale(index: Int) = LOCALES.getOrElse(index, { DEFAULT })
|
||||
fun getLocaleByName(name: String?) = when(name) {
|
||||
"en" -> EN
|
||||
"zh" -> ZH
|
||||
"zh_CN" -> ZH_CN
|
||||
"vi" -> VI
|
||||
"ru" -> RU
|
||||
else -> DEFAULT
|
||||
}
|
||||
|
||||
fun getNameByLocal(supportedLocale: SupportedLocale) = when(supportedLocale) {
|
||||
EN -> "en"
|
||||
ZH -> "zh"
|
||||
ZH_CN -> "zh_CN"
|
||||
VI -> "vi"
|
||||
RU -> "ru"
|
||||
DEFAULT -> "def"
|
||||
else -> throw IllegalArgumentException("Unknown argument: " + supportedLocale)
|
||||
}
|
||||
}
|
@ -108,6 +108,12 @@ class VersionSetting() {
|
||||
val notCheckGameProperty = ImmediateBooleanProperty(this, "notCheckGame", false)
|
||||
var notCheckGame: Boolean by notCheckGameProperty
|
||||
|
||||
/**
|
||||
* True if HMCL does not find/download libraries in/to common path.
|
||||
*/
|
||||
val noCommonProperty = ImmediateBooleanProperty(this, "noCommon", false)
|
||||
var noCommon: Boolean by noCommonProperty
|
||||
|
||||
// Minecraft settings.
|
||||
|
||||
/**
|
||||
@ -175,6 +181,7 @@ class VersionSetting() {
|
||||
minecraftArgsProperty.addListener(listener)
|
||||
noJVMArgsProperty.addListener(listener)
|
||||
notCheckGameProperty.addListener(listener)
|
||||
noCommonProperty.addListener(listener)
|
||||
serverIpProperty.addListener(listener)
|
||||
fullscreenProperty.addListener(listener)
|
||||
widthProperty.addListener(listener)
|
||||
@ -229,6 +236,7 @@ class VersionSetting() {
|
||||
addProperty("fullscreen", src.fullscreen)
|
||||
addProperty("noJVMArgs", src.noJVMArgs)
|
||||
addProperty("notCheckGame", src.notCheckGame)
|
||||
addProperty("noCommon", src.noCommon)
|
||||
addProperty("launcherVisibility", src.launcherVisibility.ordinal)
|
||||
addProperty("gameDirType", src.gameDirType.ordinal)
|
||||
}
|
||||
@ -258,6 +266,7 @@ class VersionSetting() {
|
||||
fullscreen = json["fullscreen"]?.asBoolean ?: false
|
||||
noJVMArgs = json["noJVMArgs"]?.asBoolean ?: false
|
||||
notCheckGame = json["notCheckGame"]?.asBoolean ?: false
|
||||
noCommon = json["noCommon"]?.asBoolean ?: false
|
||||
launcherVisibility = LauncherVisibility.values()[json["launcherVisibility"]?.asInt ?: 1]
|
||||
gameDirType = EnumGameDirectory.values()[json["gameDirType"]?.asInt ?: 0]
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ import javafx.scene.control.ToggleGroup
|
||||
import org.jackhuang.hmcl.auth.Account
|
||||
import org.jackhuang.hmcl.auth.OfflineAccount
|
||||
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount
|
||||
import org.jackhuang.hmcl.i18n
|
||||
import org.jackhuang.hmcl.setting.Settings
|
||||
import org.jackhuang.hmcl.task.Scheduler
|
||||
import org.jackhuang.hmcl.task.Task
|
||||
@ -45,9 +46,9 @@ class AccountsPage() : StackPane(), DecoratorPage {
|
||||
@FXML lateinit var dialog: JFXDialog
|
||||
@FXML lateinit var txtUsername: JFXTextField
|
||||
@FXML lateinit var txtPassword: JFXPasswordField
|
||||
@FXML lateinit var lblPassword: Label
|
||||
@FXML lateinit var lblCreationWarning: Label
|
||||
@FXML lateinit var cboType: JFXComboBox<String>
|
||||
@FXML lateinit var progressBar: JFXProgressBar
|
||||
|
||||
val listener = ChangeListener<Account?> { _, _, newValue ->
|
||||
masonryPane.children.forEach {
|
||||
@ -76,7 +77,6 @@ class AccountsPage() : StackPane(), DecoratorPage {
|
||||
|
||||
cboType.selectionModel.selectedIndexProperty().addListener { _, _, newValue ->
|
||||
val visible = newValue != 0
|
||||
lblPassword.isVisible = visible
|
||||
txtPassword.isVisible = visible
|
||||
}
|
||||
cboType.selectionModel.select(0)
|
||||
@ -125,6 +125,8 @@ class AccountsPage() : StackPane(), DecoratorPage {
|
||||
}
|
||||
|
||||
fun addNewAccount() {
|
||||
txtUsername.text = ""
|
||||
txtPassword.text = ""
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
@ -132,6 +134,7 @@ class AccountsPage() : StackPane(), DecoratorPage {
|
||||
val type = cboType.selectionModel.selectedIndex
|
||||
val username = txtUsername.text
|
||||
val password = txtPassword.text
|
||||
progressBar.isVisible = true
|
||||
val task = Task.of(Callable {
|
||||
try {
|
||||
val account = when (type) {
|
||||
@ -155,6 +158,7 @@ class AccountsPage() : StackPane(), DecoratorPage {
|
||||
} else if (account is Exception) {
|
||||
lblCreationWarning.text = account.localizedMessage
|
||||
}
|
||||
progressBar.isVisible = false
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,7 +169,7 @@ class AccountsPage() : StackPane(), DecoratorPage {
|
||||
|
||||
fun accountType(account: Account) =
|
||||
when(account) {
|
||||
is OfflineAccount -> "Offline Account"
|
||||
is YggdrasilAccount -> "Yggdrasil Account"
|
||||
else -> throw Error("Unsupported account: $account")
|
||||
is OfflineAccount -> i18n("login.methods.offline")
|
||||
is YggdrasilAccount -> i18n("login.methods.yggdrasil")
|
||||
else -> throw Error("${i18n("login.methods.no_method")}: $account")
|
||||
}
|
@ -40,11 +40,13 @@ class AdvancedListBox: ScrollPane() {
|
||||
|
||||
fun add(child: Node): AdvancedListBox {
|
||||
if (child is Pane) {
|
||||
child.maxWidthProperty().bind(this.widthProperty())
|
||||
container.children += child
|
||||
} else {
|
||||
val pane = StackPane()
|
||||
pane.styleClass += "advanced-list-box-item"
|
||||
pane.children.setAll(child)
|
||||
pane.maxWidthProperty().bind(this.widthProperty())
|
||||
container.children += pane
|
||||
}
|
||||
return this
|
||||
|
@ -22,13 +22,14 @@ import javafx.scene.Node
|
||||
import javafx.scene.Scene
|
||||
import javafx.scene.layout.StackPane
|
||||
import javafx.stage.Stage
|
||||
import org.jackhuang.hmcl.Main
|
||||
|
||||
object Controllers {
|
||||
lateinit var scene: Scene private set
|
||||
lateinit var stage: Stage private set
|
||||
|
||||
val mainPane = MainPage()
|
||||
|
||||
val settingsPane = SettingsPage()
|
||||
val versionPane = VersionPage()
|
||||
|
||||
lateinit var leftPaneController: LeftPaneController
|
||||
@ -39,10 +40,10 @@ object Controllers {
|
||||
fun initialize(stage: Stage) {
|
||||
this.stage = stage
|
||||
|
||||
decorator = Decorator(stage, mainPane, max = false)
|
||||
decorator = Decorator(stage, mainPane, Main.TITLE, max = false)
|
||||
decorator.showPage(null)
|
||||
leftPaneController = LeftPaneController(decorator.leftPane)
|
||||
sidePaneController = SidePaneController(decorator.sidePane)
|
||||
sidePaneController = SidePaneController(decorator.sidePane, decorator.drawer)
|
||||
|
||||
decorator.isCustomMaximize = false
|
||||
|
||||
@ -57,6 +58,4 @@ object Controllers {
|
||||
fun navigate(node: Node?) {
|
||||
decorator.showPage(node)
|
||||
}
|
||||
|
||||
private fun <T> loadPane(s: String): T = FXMLLoader(Controllers::class.java.getResource("/assets/fxml/$s.fxml")).load()
|
||||
}
|
@ -52,7 +52,7 @@ import org.jackhuang.hmcl.util.*
|
||||
import java.util.*
|
||||
import java.util.concurrent.ConcurrentLinkedQueue
|
||||
|
||||
class Decorator @JvmOverloads constructor(private val primaryStage: Stage, private val mainPage: Node, private val max: Boolean = true, min: Boolean = true) : StackPane(), AbstractWizardDisplayer {
|
||||
class Decorator @JvmOverloads constructor(private val primaryStage: Stage, private val mainPage: Node, title: String, private val max: Boolean = true, min: Boolean = true) : StackPane(), AbstractWizardDisplayer {
|
||||
override val wizardController: WizardController = WizardController(this)
|
||||
|
||||
private var xOffset: Double = 0.0
|
||||
@ -73,6 +73,7 @@ class Decorator @JvmOverloads constructor(private val primaryStage: Stage, priva
|
||||
@FXML lateinit var refreshMenuButton: JFXButton
|
||||
@FXML lateinit var addMenuButton: JFXButton
|
||||
@FXML lateinit var titleLabel: Label
|
||||
@FXML lateinit var lblTitle: Label
|
||||
@FXML lateinit var leftPane: AdvancedListBox
|
||||
@FXML lateinit var drawer: JFXDrawer
|
||||
@FXML lateinit var sidePane: AdvancedListBox
|
||||
@ -113,6 +114,8 @@ class Decorator @JvmOverloads constructor(private val primaryStage: Stage, priva
|
||||
btnMin.graphic = minus
|
||||
btnMax.graphic = resizeMax
|
||||
|
||||
lblTitle.text = title
|
||||
|
||||
buttonsContainer.background = Background(*arrayOf(BackgroundFill(Color.BLACK, CornerRadii.EMPTY, Insets.EMPTY)))
|
||||
titleContainer.addEventHandler(MouseEvent.MOUSE_CLICKED) { mouseEvent ->
|
||||
if (mouseEvent.clickCount == 2) {
|
||||
|
@ -18,10 +18,15 @@
|
||||
package org.jackhuang.hmcl.ui
|
||||
|
||||
import com.jfoenix.concurrency.JFXUtilities
|
||||
import com.jfoenix.controls.JFXCheckBox
|
||||
import com.jfoenix.controls.JFXComboBox
|
||||
import com.jfoenix.controls.JFXScrollPane
|
||||
import com.jfoenix.controls.JFXTextField
|
||||
import javafx.animation.Animation
|
||||
import javafx.animation.KeyFrame
|
||||
import javafx.animation.Timeline
|
||||
import javafx.beans.property.Property
|
||||
import javafx.beans.value.ChangeListener
|
||||
import javafx.event.ActionEvent
|
||||
import javafx.event.EventHandler
|
||||
import javafx.fxml.FXMLLoader
|
||||
@ -37,9 +42,10 @@ import javafx.scene.input.ScrollEvent
|
||||
import javafx.scene.layout.Region
|
||||
import javafx.scene.shape.Rectangle
|
||||
import javafx.util.Duration
|
||||
import org.jackhuang.hmcl.Main
|
||||
|
||||
fun Node.loadFXML(absolutePath: String) {
|
||||
val fxmlLoader = FXMLLoader(this.javaClass.getResource(absolutePath))
|
||||
val fxmlLoader = FXMLLoader(this.javaClass.getResource(absolutePath), Main.RESOURCE_BUNDLE)
|
||||
fxmlLoader.setRoot(this)
|
||||
fxmlLoader.setController(this)
|
||||
fxmlLoader.load<Any>()
|
||||
@ -114,3 +120,37 @@ val stylesheets = arrayOf(
|
||||
Controllers::class.java.getResource("/css/jfoenix-fonts.css").toExternalForm(),
|
||||
Controllers::class.java.getResource("/css/jfoenix-design.css").toExternalForm(),
|
||||
Controllers::class.java.getResource("/assets/css/jfoenix-main-demo.css").toExternalForm())
|
||||
|
||||
|
||||
|
||||
fun bindInt(textField: JFXTextField, property: Property<*>) {
|
||||
textField.textProperty().unbind()
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
textField.textProperty().bindBidirectional(property as Property<Int>, SafeIntStringConverter())
|
||||
}
|
||||
|
||||
fun bindString(textField: JFXTextField, property: Property<String>) {
|
||||
textField.textProperty().unbind()
|
||||
textField.textProperty().bindBidirectional(property)
|
||||
}
|
||||
|
||||
fun bindBoolean(checkBox: JFXCheckBox, property: Property<Boolean>) {
|
||||
checkBox.selectedProperty().unbind()
|
||||
checkBox.selectedProperty().bindBidirectional(property)
|
||||
}
|
||||
|
||||
fun bindEnum(comboBox: JFXComboBox<*>, property: Property<out Enum<*>>) {
|
||||
unbindEnum(comboBox)
|
||||
val listener = ChangeListener<Number> { _, _, newValue ->
|
||||
property.value = property.value.javaClass.enumConstants[newValue.toInt()]
|
||||
}
|
||||
comboBox.selectionModel.select(property.value.ordinal)
|
||||
comboBox.properties["listener"] = listener
|
||||
comboBox.selectionModel.selectedIndexProperty().addListener(listener)
|
||||
}
|
||||
|
||||
fun unbindEnum(comboBox: JFXComboBox<*>) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val listener = comboBox.properties["listener"] as? ChangeListener<Number> ?: return
|
||||
comboBox.selectionModel.selectedIndexProperty().removeListener(listener)
|
||||
}
|
@ -28,13 +28,14 @@ import org.jackhuang.hmcl.event.EVENT_BUS
|
||||
import org.jackhuang.hmcl.event.RefreshedVersionsEvent
|
||||
import org.jackhuang.hmcl.game.LauncherHelper
|
||||
import org.jackhuang.hmcl.game.minecraftVersion
|
||||
import org.jackhuang.hmcl.i18n
|
||||
import org.jackhuang.hmcl.setting.Settings
|
||||
import org.jackhuang.hmcl.ui.download.DownloadWizardProvider
|
||||
|
||||
class LeftPaneController(leftPane: AdvancedListBox) {
|
||||
class LeftPaneController(private val leftPane: AdvancedListBox) {
|
||||
val versionsPane = VBox()
|
||||
val cboProfiles = JFXComboBox<String>().apply { items.add("Default"); prefWidthProperty().bind(leftPane.widthProperty()) }
|
||||
val accountItem = VersionListItem("mojang@mojang.com", "Yggdrasil")
|
||||
val accountItem = VersionListItem("No account", "unknown")
|
||||
|
||||
init {
|
||||
leftPane
|
||||
@ -44,9 +45,9 @@ class LeftPaneController(leftPane: AdvancedListBox) {
|
||||
Controllers.navigate(AccountsPage())
|
||||
}
|
||||
})
|
||||
.startCategory("PROFILES")
|
||||
.startCategory(i18n("ui.label.profile"))
|
||||
.add(cboProfiles)
|
||||
.startCategory("VERSIONS")
|
||||
.startCategory(i18n("ui.label.version"))
|
||||
.add(versionsPane)
|
||||
|
||||
EVENT_BUS.channel<RefreshedVersionsEvent>() += this::loadVersions
|
||||
@ -109,6 +110,7 @@ class LeftPaneController(leftPane: AdvancedListBox) {
|
||||
profile.selectedVersion = version.id
|
||||
}
|
||||
ripplerContainer.properties["version"] = version.id to item
|
||||
ripplerContainer.maxWidthProperty().bind(leftPane.widthProperty())
|
||||
versionsPane.children += ripplerContainer
|
||||
}
|
||||
}
|
||||
|
@ -22,13 +22,14 @@ import javafx.beans.property.SimpleStringProperty
|
||||
import javafx.beans.property.StringProperty
|
||||
import javafx.fxml.FXML
|
||||
import javafx.scene.layout.StackPane
|
||||
import org.jackhuang.hmcl.i18n
|
||||
import org.jackhuang.hmcl.ui.wizard.DecoratorPage
|
||||
|
||||
/**
|
||||
* @see /assets/fxml/main.fxml
|
||||
*/
|
||||
class MainPage : StackPane(), DecoratorPage {
|
||||
override val titleProperty: StringProperty = SimpleStringProperty(this, "title", "Main Page")
|
||||
override val titleProperty: StringProperty = SimpleStringProperty(this, "title", i18n("launcher.title.main"))
|
||||
|
||||
@FXML lateinit var buttonLaunch: JFXButton
|
||||
|
||||
|
92
HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SettingsPage.kt
Normal file
92
HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SettingsPage.kt
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Hello Minecraft! Launcher.
|
||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
*/
|
||||
package org.jackhuang.hmcl.ui
|
||||
|
||||
import com.jfoenix.controls.JFXComboBox
|
||||
import com.jfoenix.controls.JFXTextField
|
||||
import javafx.beans.binding.Bindings
|
||||
import javafx.beans.property.SimpleStringProperty
|
||||
import javafx.beans.property.StringProperty
|
||||
import javafx.collections.FXCollections
|
||||
import javafx.fxml.FXML
|
||||
import javafx.scene.control.Label
|
||||
import javafx.scene.layout.StackPane
|
||||
import org.jackhuang.hmcl.i18n
|
||||
import org.jackhuang.hmcl.setting.DownloadProviders
|
||||
import org.jackhuang.hmcl.setting.Locales
|
||||
import org.jackhuang.hmcl.setting.Proxies
|
||||
import org.jackhuang.hmcl.setting.Settings
|
||||
import org.jackhuang.hmcl.ui.wizard.DecoratorPage
|
||||
|
||||
class SettingsPage : StackPane(), DecoratorPage {
|
||||
override val titleProperty: StringProperty = SimpleStringProperty(this, "title", i18n("launcher.title.launcher"))
|
||||
|
||||
@FXML lateinit var txtProxyHost: JFXTextField
|
||||
@FXML lateinit var txtProxyPort: JFXTextField
|
||||
@FXML lateinit var txtProxyUsername: JFXTextField
|
||||
@FXML lateinit var txtProxyPassword: JFXTextField
|
||||
@FXML lateinit var cboProxyType: JFXComboBox<*>
|
||||
@FXML lateinit var cboLanguage: JFXComboBox<*>
|
||||
@FXML lateinit var cboDownloadSource: JFXComboBox<*>
|
||||
|
||||
init {
|
||||
loadFXML("/assets/fxml/setting.fxml")
|
||||
|
||||
txtProxyHost.text = Settings.PROXY_HOST
|
||||
txtProxyHost.textProperty().addListener { _, _, newValue ->
|
||||
Settings.PROXY_HOST = newValue
|
||||
}
|
||||
|
||||
txtProxyPort.text = Settings.PROXY_PORT
|
||||
txtProxyPort.textProperty().addListener { _, _, newValue ->
|
||||
Settings.PROXY_PORT = newValue
|
||||
}
|
||||
|
||||
txtProxyUsername.text = Settings.PROXY_USER
|
||||
txtProxyUsername.textProperty().addListener { _, _, newValue ->
|
||||
Settings.PROXY_USER = newValue
|
||||
}
|
||||
|
||||
txtProxyPassword.text = Settings.PROXY_PASS
|
||||
txtProxyPassword.textProperty().addListener { _, _, newValue ->
|
||||
Settings.PROXY_PASS = newValue
|
||||
}
|
||||
|
||||
cboDownloadSource.selectionModel.select(DownloadProviders.DOWNLOAD_PROVIDERS.indexOf(Settings.DOWNLOAD_PROVIDER))
|
||||
cboDownloadSource.selectionModel.selectedIndexProperty().addListener { _, _, newValue ->
|
||||
Settings.DOWNLOAD_PROVIDER = DownloadProviders.getDownloadProvider(newValue.toInt())
|
||||
}
|
||||
|
||||
val list = FXCollections.observableArrayList<Label>()
|
||||
for (locale in Locales.LOCALES) {
|
||||
list += Label(locale.getName(Settings.LANG.resourceBundle))
|
||||
}
|
||||
cboLanguage.items = list
|
||||
cboLanguage.selectionModel.select(Locales.LOCALES.indexOf(Settings.LANG))
|
||||
cboLanguage.selectionModel.selectedIndexProperty().addListener { _, _, newValue ->
|
||||
Settings.LANG = Locales.getLocale(newValue.toInt())
|
||||
}
|
||||
|
||||
cboProxyType.selectionModel.select(Proxies.PROXIES.indexOf(Settings.PROXY_TYPE))
|
||||
cboProxyType.selectionModel.selectedIndexProperty().addListener { _, _, newValue ->
|
||||
Settings.PROXY_TYPE = Proxies.getProxyType(newValue.toInt())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -17,10 +17,18 @@
|
||||
*/
|
||||
package org.jackhuang.hmcl.ui
|
||||
|
||||
class SidePaneController(sidePane: AdvancedListBox) {
|
||||
import com.jfoenix.controls.JFXDrawer
|
||||
|
||||
class SidePaneController(sidePane: AdvancedListBox, drawer: JFXDrawer) {
|
||||
init {
|
||||
sidePane
|
||||
.startCategory("LAUNCHER")
|
||||
.add(IconedItem(SVG.gear("black"), "Settings").apply { prefWidthProperty().bind(sidePane.widthProperty()) })
|
||||
.add(IconedItem(SVG.gear("black"), "Settings").apply {
|
||||
prefWidthProperty().bind(sidePane.widthProperty())
|
||||
setOnMouseClicked {
|
||||
Controllers.navigate(Controllers.settingsPane)
|
||||
drawer.close()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
57
HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/UTF8Control.kt
Normal file
57
HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/UTF8Control.kt
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Hello Minecraft! Launcher.
|
||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
*/
|
||||
package org.jackhuang.hmcl.ui
|
||||
|
||||
import java.io.InputStreamReader
|
||||
import java.util.PropertyResourceBundle
|
||||
import java.util.ResourceBundle
|
||||
import java.io.IOException
|
||||
import java.io.InputStream
|
||||
import java.util.Locale
|
||||
|
||||
object UTF8Control : ResourceBundle.Control() {
|
||||
@Throws(IllegalAccessException::class, InstantiationException::class, IOException::class)
|
||||
override fun newBundle(baseName: String, locale: Locale, format: String, loader: ClassLoader, reload: Boolean): ResourceBundle? {
|
||||
// The below is a copy of the default implementation.
|
||||
val bundleName = toBundleName(baseName, locale)
|
||||
val resourceName = toResourceName(bundleName, "properties")
|
||||
var bundle: ResourceBundle? = null
|
||||
var stream: InputStream? = null
|
||||
if (reload) {
|
||||
val url = loader.getResource(resourceName)
|
||||
if (url != null) {
|
||||
val connection = url.openConnection()
|
||||
if (connection != null) {
|
||||
connection.useCaches = false
|
||||
stream = connection.getInputStream()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
stream = loader.getResourceAsStream(resourceName)
|
||||
}
|
||||
if (stream != null) {
|
||||
try {
|
||||
// Only this line is changed to make it to read properties files as UTF-8.
|
||||
bundle = PropertyResourceBundle(InputStreamReader(stream, "UTF-8"))
|
||||
} finally {
|
||||
stream.close()
|
||||
}
|
||||
}
|
||||
return bundle
|
||||
}
|
||||
}
|
@ -28,6 +28,7 @@ import javafx.scene.control.Label
|
||||
import javafx.scene.control.ScrollPane
|
||||
import javafx.scene.layout.*
|
||||
import javafx.stage.DirectoryChooser
|
||||
import org.jackhuang.hmcl.i18n
|
||||
import org.jackhuang.hmcl.setting.Profile
|
||||
import org.jackhuang.hmcl.setting.VersionSetting
|
||||
import org.jackhuang.hmcl.ui.wizard.DecoratorPage
|
||||
@ -44,7 +45,7 @@ class VersionPage : StackPane(), DecoratorPage {
|
||||
}
|
||||
|
||||
fun load(id: String, profile: Profile) {
|
||||
titleProperty.set("Version settings - " + id)
|
||||
titleProperty.set(i18n("launcher.title.game") + " - " + id)
|
||||
|
||||
versionSettingsController.loadVersionSetting(profile.getVersionSetting(id))
|
||||
modController.loadMods(profile.modManager, id)
|
||||
|
@ -21,14 +21,13 @@ import com.jfoenix.controls.JFXCheckBox
|
||||
import com.jfoenix.controls.JFXComboBox
|
||||
import com.jfoenix.controls.JFXTextField
|
||||
import javafx.beans.InvalidationListener
|
||||
import javafx.beans.property.Property
|
||||
import javafx.beans.value.ChangeListener
|
||||
import javafx.fxml.FXML
|
||||
import javafx.scene.control.Label
|
||||
import javafx.scene.control.ScrollPane
|
||||
import javafx.scene.layout.GridPane
|
||||
import javafx.scene.layout.VBox
|
||||
import javafx.stage.DirectoryChooser
|
||||
import org.jackhuang.hmcl.i18n
|
||||
import org.jackhuang.hmcl.setting.VersionSetting
|
||||
import org.jackhuang.hmcl.util.OS
|
||||
|
||||
@ -52,9 +51,12 @@ class VersionSettingsController {
|
||||
@FXML lateinit var cboRunDirectory: JFXComboBox<*>
|
||||
@FXML lateinit var chkFullscreen: JFXCheckBox
|
||||
@FXML lateinit var lblPhysicalMemory: Label
|
||||
@FXML lateinit var chkNoJVMArgs: JFXCheckBox
|
||||
@FXML lateinit var chkNoCommon: JFXCheckBox
|
||||
@FXML lateinit var chkNoGameCheck: JFXCheckBox
|
||||
|
||||
fun initialize() {
|
||||
lblPhysicalMemory.text = "Physical Memory: ${OS.TOTAL_MEMORY}MB"
|
||||
lblPhysicalMemory.text = i18n("settings.physical_memory") + ": ${OS.TOTAL_MEMORY}MB"
|
||||
|
||||
scroll.smoothScrolling()
|
||||
|
||||
@ -85,6 +87,8 @@ class VersionSettingsController {
|
||||
precalledCommandProperty.unbind()
|
||||
serverIpProperty.unbind()
|
||||
fullscreenProperty.unbind()
|
||||
notCheckGameProperty.unbind()
|
||||
noCommonProperty.unbind()
|
||||
unbindEnum(cboLauncherVisibility)
|
||||
unbindEnum(cboRunDirectory)
|
||||
}
|
||||
@ -100,40 +104,13 @@ class VersionSettingsController {
|
||||
bindString(txtServerIP, version.serverIpProperty)
|
||||
bindEnum(cboLauncherVisibility, version.launcherVisibilityProperty)
|
||||
bindEnum(cboRunDirectory, version.gameDirTypeProperty)
|
||||
|
||||
chkFullscreen.selectedProperty().unbind()
|
||||
chkFullscreen.selectedProperty().bindBidirectional(version.fullscreenProperty)
|
||||
bindBoolean(chkFullscreen, version.fullscreenProperty)
|
||||
bindBoolean(chkNoGameCheck, version.notCheckGameProperty)
|
||||
bindBoolean(chkNoCommon, version.noCommonProperty)
|
||||
|
||||
lastVersionSetting = version
|
||||
}
|
||||
|
||||
private fun bindInt(textField: JFXTextField, property: Property<*>) {
|
||||
textField.textProperty().unbind()
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
textField.textProperty().bindBidirectional(property as Property<Int>, SafeIntStringConverter())
|
||||
}
|
||||
|
||||
private fun bindString(textField: JFXTextField, property: Property<String>) {
|
||||
textField.textProperty().unbind()
|
||||
textField.textProperty().bindBidirectional(property)
|
||||
}
|
||||
|
||||
private fun bindEnum(comboBox: JFXComboBox<*>, property: Property<out Enum<*>>) {
|
||||
unbindEnum(comboBox)
|
||||
val listener = ChangeListener<Number> { _, _, newValue ->
|
||||
property.value = property.value.javaClass.enumConstants[newValue.toInt()]
|
||||
}
|
||||
comboBox.selectionModel.select(property.value.ordinal)
|
||||
comboBox.properties["listener"] = listener
|
||||
comboBox.selectionModel.selectedIndexProperty().addListener(listener)
|
||||
}
|
||||
|
||||
private fun unbindEnum(comboBox: JFXComboBox<*>) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val listener = comboBox.properties["listener"] as? ChangeListener<Number> ?: return
|
||||
comboBox.selectionModel.selectedIndexProperty().removeListener(listener)
|
||||
}
|
||||
|
||||
fun onShowAdvanced() {
|
||||
if (!rootPane.children.contains(advancedSettingsPane))
|
||||
rootPane.children += advancedSettingsPane
|
||||
@ -143,7 +120,7 @@ class VersionSettingsController {
|
||||
|
||||
fun onExploreJavaDir() {
|
||||
val chooser = DirectoryChooser()
|
||||
chooser.title = "Selecting Java Directory"
|
||||
chooser.title = i18n("settings.choose_javapath")
|
||||
val selectedDir = chooser.showDialog(Controllers.stage)
|
||||
if (selectedDir != null)
|
||||
txtGameDir.text = selectedDir.absolutePath
|
||||
|
@ -44,6 +44,10 @@
|
||||
-fx-padding: 20 0 20 0;
|
||||
}
|
||||
|
||||
.tab-header-background {
|
||||
-fx-background: gray;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* JFX Drawer *
|
||||
|
@ -14,6 +14,7 @@
|
||||
<?import java.lang.String?>
|
||||
<?import com.jfoenix.validation.RequiredFieldValidator?>
|
||||
<?import com.jfoenix.controls.JFXNodesList?>
|
||||
<?import com.jfoenix.controls.JFXProgressBar?>
|
||||
<fx:root xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
type="StackPane">
|
||||
@ -30,48 +31,49 @@
|
||||
</AnchorPane>
|
||||
|
||||
<JFXDialog fx:id="dialog" transitionType="CENTER">
|
||||
<JFXDialogLayout>
|
||||
<heading>
|
||||
<Label>Create a new account</Label>
|
||||
</heading>
|
||||
<body>
|
||||
<GridPane vgap="15" hgap="15" style="-fx-padding: 15 0 0 0;">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints maxWidth="100" />
|
||||
<ColumnConstraints />
|
||||
</columnConstraints>
|
||||
<Label text="Type" GridPane.halignment="RIGHT" GridPane.columnIndex="0" GridPane.rowIndex="0" />
|
||||
<Label text="Username" GridPane.halignment="RIGHT" GridPane.columnIndex="0" GridPane.rowIndex="1" />
|
||||
<Label fx:id="lblPassword" text="Password" GridPane.halignment="RIGHT" GridPane.columnIndex="0" GridPane.rowIndex="2" />
|
||||
<StackPane>
|
||||
<JFXDialogLayout>
|
||||
<heading>
|
||||
<Label>Create a new account</Label>
|
||||
</heading>
|
||||
<body>
|
||||
<GridPane vgap="15" hgap="15" style="-fx-padding: 15 0 0 0;">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints maxWidth="100" />
|
||||
<ColumnConstraints />
|
||||
</columnConstraints>
|
||||
<Label text="Type" GridPane.halignment="RIGHT" GridPane.columnIndex="0" GridPane.rowIndex="0" />
|
||||
|
||||
<JFXComboBox fx:id="cboType" GridPane.columnIndex="1" GridPane.rowIndex="0">
|
||||
<items>
|
||||
<FXCollections fx:factory="observableArrayList">
|
||||
<String fx:value="Offline Account"/>
|
||||
<String fx:value="Online Account" />
|
||||
</FXCollections>
|
||||
</items>
|
||||
</JFXComboBox>
|
||||
<JFXComboBox fx:id="cboType" GridPane.columnIndex="1" GridPane.rowIndex="0">
|
||||
<items>
|
||||
<FXCollections fx:factory="observableArrayList">
|
||||
<String fx:value="Offline Account"/>
|
||||
<String fx:value="Online Account" />
|
||||
</FXCollections>
|
||||
</items>
|
||||
</JFXComboBox>
|
||||
|
||||
<JFXTextField fx:id="txtUsername" promptText="Username" labelFloat="true" GridPane.columnIndex="1" GridPane.rowIndex="1">
|
||||
<validators>
|
||||
<RequiredFieldValidator message="Input Required!">
|
||||
</RequiredFieldValidator>
|
||||
</validators>
|
||||
</JFXTextField>
|
||||
<JFXPasswordField fx:id="txtPassword" promptText="Password" labelFloat="true" GridPane.columnIndex="1" GridPane.rowIndex="2">
|
||||
<validators>
|
||||
<RequiredFieldValidator message="Input Required!">
|
||||
</RequiredFieldValidator>
|
||||
</validators>
|
||||
</JFXPasswordField>
|
||||
</GridPane>
|
||||
</body>
|
||||
<actions>
|
||||
<Label fx:id="lblCreationWarning" />
|
||||
<JFXButton onMouseClicked="#onCreationAccept" text="Accept" styleClass="dialog-accept" />
|
||||
<JFXButton onMouseClicked="#onCreationCancel" text="Cancel" styleClass="dialog-cancel" />
|
||||
</actions>
|
||||
</JFXDialogLayout>
|
||||
<JFXTextField fx:id="txtUsername" promptText="Username" labelFloat="true" GridPane.columnIndex="0" GridPane.rowIndex="1" GridPane.columnSpan="2">
|
||||
<validators>
|
||||
<RequiredFieldValidator message="Input Required!">
|
||||
</RequiredFieldValidator>
|
||||
</validators>
|
||||
</JFXTextField>
|
||||
<JFXPasswordField fx:id="txtPassword" promptText="%ui.label.password" labelFloat="true" GridPane.columnIndex="0" GridPane.rowIndex="2" GridPane.columnSpan="2">
|
||||
<validators>
|
||||
<RequiredFieldValidator message="Input Required!">
|
||||
</RequiredFieldValidator>
|
||||
</validators>
|
||||
</JFXPasswordField>
|
||||
</GridPane>
|
||||
</body>
|
||||
<actions>
|
||||
<Label fx:id="lblCreationWarning" />
|
||||
<JFXButton onMouseClicked="#onCreationAccept" text="%button.ok" styleClass="dialog-accept" />
|
||||
<JFXButton onMouseClicked="#onCreationCancel" text="%button.cancel" styleClass="dialog-cancel" />
|
||||
</actions>
|
||||
</JFXDialogLayout>
|
||||
<JFXProgressBar fx:id="progressBar" visible="false" StackPane.alignment="TOP_CENTER" />
|
||||
</StackPane>
|
||||
</JFXDialog>
|
||||
</fx:root>
|
||||
|
@ -74,7 +74,7 @@
|
||||
</JFXDrawer>
|
||||
</center>
|
||||
<top>
|
||||
<BorderPane fx:id="titleContainer" minHeight="30" styleClass="jfx-tool-bar"
|
||||
<BorderPane fx:id="titleContainer" minHeight="40" styleClass="jfx-tool-bar"
|
||||
pickOnBounds="false"
|
||||
onMouseReleased="#onMouseReleased"
|
||||
onMouseDragged="#onMouseDragged"
|
||||
@ -90,7 +90,7 @@
|
||||
</JFXHamburger>
|
||||
</StackPane>
|
||||
</JFXRippler>
|
||||
<Label text="Hello Minecraft! Launcher" BorderPane.alignment="CENTER"
|
||||
<Label fx:id="lblTitle" BorderPane.alignment="CENTER"
|
||||
mouseTransparent="true"
|
||||
style="-fx-background-color: transparent; -fx-text-fill: white; -fx-font-size: 15px;"/>
|
||||
</HBox>
|
||||
|
@ -8,14 +8,14 @@
|
||||
xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<BorderPane>
|
||||
<center>
|
||||
<StackPane fx:id="page" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
|
||||
<StackPane fx:id="page" BorderPane.alignment="CENTER" />
|
||||
</center>
|
||||
<bottom>
|
||||
<BorderPane prefHeight="50.0" prefWidth="200.0" BorderPane.alignment="CENTER">
|
||||
<BorderPane prefHeight="50.0" BorderPane.alignment="CENTER">
|
||||
<right>
|
||||
<StackPane prefHeight="50.0" prefWidth="150.0" BorderPane.alignment="CENTER">
|
||||
<StackPane prefHeight="50.0" BorderPane.alignment="CENTER">
|
||||
<JFXSpinner fx:id="spinner" style="-fx-radius:16" styleClass="materialDesign-purple, first-spinner" />
|
||||
<JFXButton fx:id="buttonLaunch" prefWidth="100" prefHeight="40" buttonType="RAISED" text="Launch"
|
||||
<JFXButton fx:id="buttonLaunch" prefWidth="200" prefHeight="40" buttonType="RAISED" text="%ui.button.run"
|
||||
style="-fx-text-fill:WHITE;-fx-background-color:#5264AE;-fx-font-size:14px;"/>
|
||||
</StackPane>
|
||||
</right>
|
||||
|
62
HMCL/src/main/resources/assets/fxml/setting.fxml
Normal file
62
HMCL/src/main/resources/assets/fxml/setting.fxml
Normal file
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import java.lang.*?>
|
||||
<?import javafx.scene.control.*?>
|
||||
<?import javafx.scene.layout.*?>
|
||||
|
||||
<?import com.jfoenix.controls.JFXComboBox?>
|
||||
<?import javafx.collections.FXCollections?>
|
||||
<?import com.jfoenix.controls.JFXTextField?>
|
||||
<fx:root xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
type="StackPane">
|
||||
<ScrollPane fx:id="scroll"
|
||||
style="-fx-font-size: 14; -fx-pref-width: 100%; "
|
||||
fitToHeight="true" fitToWidth="true">
|
||||
<VBox fx:id="rootPane" style="-fx-padding: 20;">
|
||||
<GridPane fx:id="settingsPane" hgap="5" vgap="10">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints />
|
||||
<ColumnConstraints hgrow="ALWAYS" />
|
||||
</columnConstraints>
|
||||
<Label text="%launcher.common_location" GridPane.rowIndex="0" GridPane.columnIndex="0" />
|
||||
<Label text="%launcher.background_location" GridPane.rowIndex="1" GridPane.columnIndex="0" />
|
||||
<Label text="%launcher.download_source" GridPane.rowIndex="2" GridPane.columnIndex="0" />
|
||||
<Label text="%launcher.lang" GridPane.rowIndex="3" GridPane.columnIndex="0" />
|
||||
<Label text="%launcher.proxy" GridPane.rowIndex="4" GridPane.columnIndex="0" />
|
||||
<Label text="%launcher.theme" GridPane.rowIndex="5" GridPane.columnIndex="0" />
|
||||
|
||||
<JFXComboBox fx:id="cboDownloadSource" GridPane.rowIndex="2" GridPane.columnIndex="1">
|
||||
<items>
|
||||
<FXCollections fx:factory="observableArrayList">
|
||||
<Label text="%download.mojang" />
|
||||
<Label text="%download.BMCL" />
|
||||
</FXCollections>
|
||||
</items>
|
||||
</JFXComboBox>
|
||||
|
||||
<JFXComboBox fx:id="cboLanguage" GridPane.rowIndex="3" GridPane.columnIndex="1" />
|
||||
|
||||
<HBox alignment="CENTER_LEFT" GridPane.rowIndex="4" GridPane.columnIndex="1">
|
||||
<JFXComboBox fx:id="cboProxyType">
|
||||
<items>
|
||||
<FXCollections fx:factory="observableArrayList">
|
||||
<Label text="Direct" />
|
||||
<Label text="HTTP" />
|
||||
<Label text="Socks" />
|
||||
</FXCollections>
|
||||
</items>
|
||||
</JFXComboBox>
|
||||
<Label text="%proxy.host" />
|
||||
<JFXTextField fx:id="txtProxyHost" maxWidth="50" />
|
||||
<Label text="%proxy.port" />
|
||||
<JFXTextField fx:id="txtProxyPort" maxWidth="50" />
|
||||
<Label text="%proxy.username" />
|
||||
<JFXTextField fx:id="txtProxyUsername" maxWidth="50" />
|
||||
<Label text="%proxy.password" />
|
||||
<JFXTextField fx:id="txtProxyPassword" maxWidth="50" />
|
||||
</HBox>
|
||||
</GridPane>
|
||||
</VBox>
|
||||
</ScrollPane>
|
||||
</fx:root>
|
@ -25,11 +25,11 @@
|
||||
<ColumnConstraints hgrow="ALWAYS" />
|
||||
<ColumnConstraints />
|
||||
</columnConstraints>
|
||||
<Label GridPane.rowIndex="0" GridPane.columnIndex="0">Java Directory</Label>
|
||||
<Label GridPane.rowIndex="1" GridPane.columnIndex="0">Max Memory</Label>
|
||||
<Label GridPane.rowIndex="2" GridPane.columnIndex="0">Launcher Visibility</Label>
|
||||
<Label GridPane.rowIndex="3" GridPane.columnIndex="0">Run Directory</Label>
|
||||
<Label GridPane.rowIndex="4" GridPane.columnIndex="0">Dimension</Label>
|
||||
<Label GridPane.rowIndex="0" GridPane.columnIndex="0" text="%settings.java_dir" />
|
||||
<Label GridPane.rowIndex="1" GridPane.columnIndex="0" text="%settings.max_memory" />
|
||||
<Label GridPane.rowIndex="2" GridPane.columnIndex="0" text="%advancedsettings.launcher_visible" />
|
||||
<Label GridPane.rowIndex="3" GridPane.columnIndex="0" text="%settings.run_directory" />
|
||||
<Label GridPane.rowIndex="4" GridPane.columnIndex="0" text="%settings.dimension" />
|
||||
<Label GridPane.rowIndex="5" GridPane.columnIndex="0"> </Label>
|
||||
|
||||
<JFXTextField styleClass="fit-width" fx:id="txtGameDir" GridPane.rowIndex="0" GridPane.columnIndex="1"
|
||||
@ -46,10 +46,10 @@
|
||||
GridPane.columnSpan="2" prefWidth="Infinity">
|
||||
<items>
|
||||
<FXCollections fx:factory="observableArrayList">
|
||||
<Label>Close</Label>
|
||||
<Label>Hide</Label>
|
||||
<Label>Keep</Label>
|
||||
<Label>Hide and Reopen</Label>
|
||||
<Label text="%advancedsettings.launcher_visibility.close" />
|
||||
<Label text="%advancedsettings.launcher_visibility.hide" />
|
||||
<Label text="%advancedsettings.launcher_visibility.keep" />
|
||||
<Label text="%advancedsettings.launcher_visibility.hide_reopen" />
|
||||
</FXCollections>
|
||||
</items>
|
||||
</JFXComboBox>
|
||||
@ -57,8 +57,8 @@
|
||||
GridPane.columnSpan="2" maxWidth="Infinity">
|
||||
<items>
|
||||
<FXCollections fx:factory="observableArrayList">
|
||||
<Label>Default(.minecraft/)</Label>
|
||||
<Label>Divided(.minecraft/versions/<versionName>)</Label>
|
||||
<Label text="%advancedsettings.game_dir.default" />
|
||||
<Label text="%advancedsettings.game_dir.independent" />
|
||||
</FXCollections>
|
||||
</items>
|
||||
</JFXComboBox>
|
||||
@ -71,7 +71,7 @@
|
||||
</HBox>
|
||||
</left>
|
||||
<right>
|
||||
<JFXCheckBox fx:id="chkFullscreen" text="Fullscreen" alignment="CENTER">
|
||||
<JFXCheckBox fx:id="chkFullscreen" text="%settings.fullscreen" alignment="CENTER">
|
||||
<BorderPane.margin>
|
||||
<Insets right="7"/>
|
||||
</BorderPane.margin>
|
||||
@ -79,18 +79,29 @@
|
||||
</right>
|
||||
</BorderPane>
|
||||
|
||||
<JFXButton GridPane.rowIndex="0" GridPane.columnIndex="2" text="Explore" onMouseClicked="#onExploreJavaDir" />
|
||||
<JFXButton GridPane.rowIndex="0" GridPane.columnIndex="2" onMouseClicked="#onExploreJavaDir">
|
||||
<graphic>
|
||||
<fx:include source="/assets/svg/folder-open.fxml" />
|
||||
</graphic>
|
||||
</JFXButton>
|
||||
</GridPane>
|
||||
<HBox alignment="CENTER">
|
||||
<JFXButton text="Show advanced settings" onMouseClicked="#onShowAdvanced" />
|
||||
<JFXButton text="%advancedsettings" onMouseClicked="#onShowAdvanced" />
|
||||
</HBox>
|
||||
<VBox fx:id="advancedSettingsPane" spacing="30">
|
||||
<JFXTextField labelFloat="true" promptText="JVM Args" styleClass="fit-width" fx:id="txtJVMArgs" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="Game Args" styleClass="fit-width" fx:id="txtGameArgs" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="Metaspace" styleClass="fit-width" fx:id="txtMetaspace" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="Wrapper Launcher(like optirun)" styleClass="fit-width" fx:id="txtWrapper" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="Pre-calling command" styleClass="fit-width" fx:id="txtPrecallingCommand" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="Server IP" styleClass="fit-width" fx:id="txtServerIP" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="%advancedsettings.jvm_args" styleClass="fit-width" fx:id="txtJVMArgs" prefWidth="${advancedSettingsPane.width}">
|
||||
<tooltip>
|
||||
<Tooltip text="%advancedsettings.java_args_default" />
|
||||
</tooltip>
|
||||
</JFXTextField>
|
||||
<JFXTextField labelFloat="true" promptText="%advancedsettings.Minecraft_arguments" styleClass="fit-width" fx:id="txtGameArgs" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="%advancedsettings.java_permanent_generation_space" styleClass="fit-width" fx:id="txtMetaspace" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="%advancedsettings.wrapper_launcher" styleClass="fit-width" fx:id="txtWrapper" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="%advancedsettings.precall_command" styleClass="fit-width" fx:id="txtPrecallingCommand" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXTextField labelFloat="true" promptText="%advancedsettings.server_ip" styleClass="fit-width" fx:id="txtServerIP" prefWidth="${advancedSettingsPane.width}" />
|
||||
<JFXCheckBox fx:id="chkNoJVMArgs" text="%advancedsettings.no_jvm_args" />
|
||||
<JFXCheckBox fx:id="chkNoCommon" text="%advancedsettings.no_common" />
|
||||
<JFXCheckBox fx:id="chkNoGameCheck" text="%advancedsettings.dont_check_game_completeness" />
|
||||
</VBox>
|
||||
</VBox>
|
||||
</ScrollPane>
|
||||
|
@ -7,11 +7,20 @@
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
type="StackPane">
|
||||
<JFXTabPane>
|
||||
<Tab text="Settings">
|
||||
<Tab text="%settings">
|
||||
<fx:include source="version-settings.fxml" fx:id="versionSettings" />
|
||||
</Tab>
|
||||
<Tab text="Mods">
|
||||
<Tab text="%mods">
|
||||
<fx:include source="mod.fxml" fx:id="mod" />
|
||||
</Tab>
|
||||
</JFXTabPane>
|
||||
|
||||
<JFXRippler fx:id="optionsRippler" maskType="CIRCLE"
|
||||
style="-fx-ripple-color:WHITE;"
|
||||
StackPane.alignment="TOP_RIGHT" maxWidth="15" maxHeight="15">
|
||||
<StackPane fx:id="optionsBurger">
|
||||
<JFXHamburger styleClass="jfx-options-burger">
|
||||
</JFXHamburger>
|
||||
</StackPane>
|
||||
</JFXRippler>
|
||||
</fx:root>
|
||||
|
440
HMCL/src/main/resources/assets/lang/I18N.properties
Normal file
440
HMCL/src/main/resources/assets/lang/I18N.properties
Normal file
@ -0,0 +1,440 @@
|
||||
# Hello Minecraft! Launcher.
|
||||
# Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
#
|
||||
#author: huangyuhui, dxNeil
|
||||
launch.failed=Failed to launch.
|
||||
launch.failed_creating_process=Failed to create process, maybe your java path is wrong, please modify your java path.
|
||||
launch.failed_sh_permission=Failed to add permission to the launch script.
|
||||
launch.failed_packing_jar=Failed to pack the jar.
|
||||
launch.unsupported_launcher_version=Sorry, the launcher cannot launch minecraft, but will retry launching it.
|
||||
launch.too_big_memory_alloc_64bit=You have allocated too much memory, because of your 32-Bit Java Runtime Environment, your game probably crash. The maximum memory is 1024MB. The launcher will try to launch it.
|
||||
launch.too_big_memory_alloc_free_space_too_low=You have allocated too much memory, because the physical memory size is %dMB, your game probably crash. The launcher will try to launch it.
|
||||
launch.cannot_create_jvm=We find that it cannot create java virutal machine. The Java argements may have problems. You can enable the no args mode in the settings.
|
||||
launch.circular_dependency_versions=Found circular dependency versions, please check if your client has been modified.
|
||||
launch.not_finished_downloading_libraries=Did not finish downloading libraries, continue launching game?
|
||||
launch.not_finished_decompressing_natives=Did not finish decompressing native libraries, continue launching game?
|
||||
launch.wrong_javadir=Incorrect Java directory, will reset to default Java directory.
|
||||
launch.exited_abnormally=Game exited abnormally, please visit the log, or ask someone for help.
|
||||
|
||||
launch.state.logging_in=Logging In
|
||||
launch.state.generating_launching_codes=Generating Launching Codes
|
||||
launch.state.downloading_libraries=Downloading dependencies
|
||||
launch.state.decompressing_natives=Decompressing natives
|
||||
launch.state.waiting_launching=Waiting for game launching
|
||||
|
||||
install.no_version=The version is not found.
|
||||
install.no_version_if_intall=The required version is not found, do you wish to install the version automatically?
|
||||
install.not_refreshed=The installer list is not refreshed.
|
||||
install.download_list=Download List
|
||||
|
||||
install.liteloader.get_list=Get LiteLoader List
|
||||
install.liteloader.install=Install LiteLoader
|
||||
|
||||
install.forge.get_list=Get Forge List
|
||||
install.forge.install=Install Forge
|
||||
install.forge.get_changelogs=Get Forge Changelogs
|
||||
|
||||
install.optifine.install=Install OptiFine
|
||||
install.optifine.get_list=Get OptiFine Download List
|
||||
install.optifine.get_download_link=Get the Download Link of OptiFine
|
||||
|
||||
install.failed_forge=Failed to install 'Forge'.
|
||||
install.failed_optifine=Failed to install 'OptiFine'.
|
||||
install.failed_liteloader=Failed to install 'LiteLoader'.
|
||||
install.failed_download_forge=Failed to download 'Forge'.
|
||||
install.failed_download_optifine=Failed to download 'OptiFine'.
|
||||
install.failed=Failed to install
|
||||
install.success=Install successfully
|
||||
install.no_forge=No Forge
|
||||
install.choose_forge=Choose the version you want to install Forge
|
||||
install.version=Version
|
||||
install.mcversion=Game Version
|
||||
install.time=Time
|
||||
install.release_time=Release Time
|
||||
install.type=Type
|
||||
install.please_refresh=If you want to install something please click "Refresh" button.
|
||||
|
||||
crash.launcher=Launcher has crashed!
|
||||
crash.minecraft=Minecraft has crashed!
|
||||
|
||||
login.choose_charactor=Please choose the character you want
|
||||
login.no_charactor=No character in this account.
|
||||
login.your_password=Your password
|
||||
login.failed=Failed to login
|
||||
login.no_Player007=You have not set a username!
|
||||
login.wrong_password=Incorrect password or username
|
||||
login.invalid_username=Invalid username
|
||||
login.invalid_uuid_and_username=Invalid UUID and username
|
||||
login.invalid_password=Invalid password
|
||||
login.invalid_access_token=Invalid Access Token
|
||||
login.changed_client_token=The server response has changed the client token.
|
||||
login.not_email=The username must be an e-mail.
|
||||
login.type=Login
|
||||
login.username=Name
|
||||
login.account=Email
|
||||
login.invalid_token=Please log out and re-input your password to log in.
|
||||
login.no_valid_character=No valid character, please visit skinme.cc and create your own character.
|
||||
|
||||
proxy.username=Account
|
||||
proxy.password=Password
|
||||
proxy.host=Host
|
||||
proxy.port=Port
|
||||
|
||||
login.failed.connect_authentication_server=Cannot connect the authentication server. Check your network.
|
||||
|
||||
login.profile.not_logged_in=You are not logged in, you can't modify the profile!
|
||||
login.profile.selected=Can't modify the profile, logout and go retry.
|
||||
|
||||
login.methods.yggdrasil=Mojang
|
||||
login.methods.offline=Offline
|
||||
login.methods.no_method=No login method
|
||||
|
||||
log.playername_null=The player name is empty.
|
||||
|
||||
minecraft.no_selected_version=No selected Minecraft version
|
||||
minecraft.wrong_path=Wrong Minecraft path, the launcher could not find the path.
|
||||
|
||||
operation.stopped=The operation was aborted.
|
||||
operation.confirm_stop=Terminate the operations?
|
||||
|
||||
ui.login.password=Password
|
||||
ui.more=More
|
||||
|
||||
crash.advice.UnsupportedClassVersionError=Maybe your java is too old, try to update the java.
|
||||
crash.advice.ConcurrentModificationException=Maybe your Java is newer than 1.8.0_11, you could downgrade to Java 7.
|
||||
crash.advice.ClassNotFoundException=Minecraft or mods are incomplete. Retry if there are some libraries that have not downloaded or update your game and mods! Or you can try Game Settings -> Manage (Version) -> Delete library files to solve the problem.
|
||||
crash.advice.NoSuchFieldError=Minecraft or mods are incomplete. Retry if there are some libraries that have not downloaded or update your game and mods!
|
||||
crash.advice.LWJGLException=Maybe your video driver does not work well, please update your video driver.
|
||||
crash.advice.SecurityException=Maybe you have modified minecraft.jar but have not removed the META-INF.
|
||||
crash.advice.OutOfMemoryError=The maximum memory of JVM is too small, please modify it.
|
||||
crash.advice.otherwise=Maybe mods caused problems.
|
||||
|
||||
crash.advice.OpenGL=Maybe drivers caused problems.
|
||||
crash.advice.no_lwjgl=Maybe drivers caused problems.
|
||||
|
||||
crash.advice.no=No advice.
|
||||
|
||||
crash.user_fault=Your OS or Java environment may not be properly installed resulting in crashing of this software, please check your Java Environment or your computer!
|
||||
crash.headless=If your OS is Linux, please use Oracle JDK instead of OpenJDK, or add "-Djava.awt.headless=false" JVM argument, or check if your Xserver works normally.
|
||||
crash.NoClassDefFound=Please check "HMCL" software is complete.
|
||||
|
||||
crash.error=Minecraft has crashed.
|
||||
crash.main_class_not_found=Main Class is not found, may be your mc has been broken.
|
||||
crash.class_path_wrong=Maybe the launch script is malformed.
|
||||
|
||||
ui.label.newProfileWindow.new_profile_name=New Profile Name:
|
||||
ui.label.newProfileWindow.copy_from=Copy From:
|
||||
ui.newProfileWindow.title=New Config
|
||||
|
||||
ui.button.ok=OK
|
||||
ui.button.refresh=Refresh
|
||||
ui.button.run=Play
|
||||
ui.button.settings=Settings
|
||||
ui.button.about=About
|
||||
ui.button.others=Others
|
||||
ui.button.logout=Log Out
|
||||
ui.button.download=Download
|
||||
ui.button.retry=Retry
|
||||
ui.button.delete=Delete
|
||||
ui.button.install=Install
|
||||
ui.button.info=Info
|
||||
ui.button.save=Save
|
||||
ui.button.copy=Copy
|
||||
ui.button.clear=Clear
|
||||
ui.button.close=Close
|
||||
ui.button.explore=Explore
|
||||
ui.button.test=Test
|
||||
ui.button.preview=Preview
|
||||
button.cancel=Cancel
|
||||
button.ok=OK
|
||||
button.yes=Yes
|
||||
button.no=No
|
||||
|
||||
ui.label.version=Version
|
||||
ui.label.password=Password
|
||||
ui.label.profile=Profile
|
||||
|
||||
ui.message.first_load=Please enter your name.
|
||||
ui.message.enter_password=Please enter your password.
|
||||
ui.message.launching=Launching...
|
||||
ui.message.making=Generating...
|
||||
ui.message.sure_remove=Sure to remove profile %s?
|
||||
ui.message.update_java=Please upgrade your Java.
|
||||
ui.message.open_jdk=We have found that you started this application using OpenJDK, which will cause so many troubles drawing the UI. We suggest you using Oracle JDK instead.
|
||||
|
||||
ui.label.settings=Settings
|
||||
ui.label.crashing=<html>Hello Minecraft! Launcher has crashed!</html>
|
||||
ui.label.crashing_out_dated=<html>Hello Minecraft! Launcher has crashed! Your launcher is outdated. Update it!</html>
|
||||
ui.label.failed_set=Failed to set:
|
||||
|
||||
download=Download
|
||||
download.mojang=Mojang
|
||||
download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/)
|
||||
download.rapid_data=RapidData (https://www.rapiddata.org/)
|
||||
download.not_200=Failed to download, the response code
|
||||
download.failed=Failed to download
|
||||
download.successfully=Downloaded successfully
|
||||
download.source=Download Source
|
||||
|
||||
message.error=Error
|
||||
message.cannot_open_explorer=Cannot open explorer:
|
||||
message.cancelled=Cancelled
|
||||
message.info=Info
|
||||
message.loading=Loading...
|
||||
|
||||
folder.game=Game Dir
|
||||
folder.mod=Mod
|
||||
folder.coremod=Core Mod
|
||||
folder.config=Configs
|
||||
folder.resourcepacks=Resourcepacks
|
||||
folder.screenshots=Screenshots
|
||||
folder.saves=Saves
|
||||
|
||||
settings.tabs.game_download=Games
|
||||
settings.tabs.installers=Installers
|
||||
settings.tabs.assets_downloads=Assets
|
||||
|
||||
settings=Settings
|
||||
settings.explore=Explore
|
||||
settings.manage=Manage
|
||||
settings.cannot_remove_default_config=Cannot remove the default configution.
|
||||
settings.max_memory=Max Memory/MB
|
||||
settings.java_dir=Java Dir
|
||||
settings.game_directory=Game Directory
|
||||
settings.dimension=Game Window Dimension
|
||||
settings.fullscreen=Fullscreen
|
||||
settings.update_version=Update version json.
|
||||
settings.run_directory=Run Directory(Version Isolation)
|
||||
settings.physical_memory=Physical Memory Size
|
||||
settings.choose_javapath=Choose Java Directory.
|
||||
settings.default=Default
|
||||
settings.custom=Custom
|
||||
settings.choose_gamedir=Choose Game Directory
|
||||
settings.failed_load=Failed to load settings file. Remove it?
|
||||
settings.test_game=Test game
|
||||
|
||||
settings.type.none=No version here, please turn to game download tab.
|
||||
settings.type.global=<html><a href="">Click here to switch to version specialized setting. Now it is global setting.</a></html>
|
||||
settings.type.special=<html><a href="">Click here to switch to global setting. Not it is version specialized setting.</a></html>
|
||||
|
||||
modpack=Mod pack
|
||||
modpack.choose=Choose a modpack zip file which you want to import. If you want to update the modpack, please enter the version you want to update.
|
||||
modpack.export_error=Failed to export the modpack, maybe the format of your game directory is incorrect or failed to manage files.
|
||||
modpack.export_finished=Exporting the modpack finished. See
|
||||
modpack.included_launcher=The modpack is included the launcher, you can publish it directly.
|
||||
modpack.not_included_launcher=You can use the modpack by clicking the "Import Modpack" button.
|
||||
modpack.enter_name=Enter your desired name for this game.
|
||||
|
||||
modpack.task.save=Export Modpack
|
||||
modpack.task.install=Import Modpack
|
||||
modpack.task.install.error=Failed to install the modpack. Maybe the files is incorrect, or a management issue occurred.
|
||||
modpack.task.install.will=Install the modpack:
|
||||
|
||||
modpack.wizard=Exporting the modpack wizard
|
||||
modpack.wizard.step.1=Basic options
|
||||
modpack.wizard.step.1.title=Set the basic options to the modpack.
|
||||
modpack.wizard.step.initialization.include_launcher=Include the launcher
|
||||
modpack.wizard.step.initialization.exported_version=The exported game version
|
||||
modpack.wizard.step.initialization.save=Choose a location to export the game files to
|
||||
modpack.wizard.step.initialization.warning=<html>Before making modpack, you should ensure that your game can launch successfully,<br/>and that your Minecraft is release, not snapshot.<br/>and that it is not allowed to add mods which is not allowed to distribute to the modpack.</html>
|
||||
modpack.wizard.step.2=Files selection
|
||||
modpack.wizard.step.2.title=Choose the files you do not want to put in the modpack.
|
||||
modpack.wizard.step.3=Description
|
||||
modpack.wizard.step.3.title=Describe your modpack.
|
||||
|
||||
modpack.desc=Describe your modpack, including precautions, changlog, supporting Markdown(also supporting online pictures).
|
||||
modpack.incorrect_format.no_json=The format of the modpack is incorrect, pack.json is missing.
|
||||
modpack.incorrect_format.no_jar=The format of the modpack is incorrect, pack.json does not have attribute 'jar'
|
||||
modpack.cannot_read_version=Failed to gather the game version
|
||||
modpack.not_a_valid_location=Not a valid modpack location
|
||||
modpack.name=Modpack Name
|
||||
modpack.not_a_valid_name=Not a valid modpack name
|
||||
|
||||
modpack.files.servers_dat=Multiplayer servers list
|
||||
modpack.files.saves=Saved games
|
||||
modpack.files.mods=Mods
|
||||
modpack.files.config=Mod configs
|
||||
modpack.files.liteconfig=Mod configurations
|
||||
modpack.files.resourcepacks=Resource(Texture) packs
|
||||
modpack.files.options_txt=Game options
|
||||
modpack.files.optionsshaders_txt=Shaders options
|
||||
modpack.files.mods.voxelmods=VoxelMods (including VoxelMap) options
|
||||
modpack.files.dumps=NEI debug output
|
||||
modpack.files.scripts=MineTweaker configuration
|
||||
modpack.files.blueprints=BuildCraft blueprints
|
||||
|
||||
mods=Mods
|
||||
mods.choose_mod=Choose your mods
|
||||
mods.failed=Failed to add mods
|
||||
mods.add=Add
|
||||
mods.remove=Remove
|
||||
mods.default_information=<html><font color=#c0392b>Please ensure that you have installed Forge or LiteLoader before installing mods!<br>You can drop your mod files from explorer/finder, and delete mods by the delete button.<br>Disable a mod by leaving the check box unchecked; Choose an item to get the information.</font></html>
|
||||
|
||||
advancedsettings=Advanced
|
||||
advancedsettings.launcher_visible=Launcher Visibility
|
||||
advancedsettings.debug_mode=Debug Mode
|
||||
advancedsettings.java_permanent_generation_space=PermGen Space/MB
|
||||
advancedsettings.jvm_args=Java VM Arguments
|
||||
advancedsettings.Minecraft_arguments=Minecraft Arguments
|
||||
advancedsettings.launcher_visibility.close=Close the launcher when the game launched.
|
||||
advancedsettings.launcher_visibility.hide=Hide the launcher when the game launched.
|
||||
advancedsettings.launcher_visibility.keep=Keep the launcher visible.
|
||||
advancedsettings.launcher_visibility.hide_reopen=Hide the launcher and re-open when game closes.
|
||||
advancedsettings.game_dir.default=Default (.minecraft/)
|
||||
advancedsettings.game_dir.independent=Independent (.minecraft/versions/<version name>/, except assets,libraries)
|
||||
advancedsettings.no_jvm_args=No Default JVM Args
|
||||
advancedsettings.no_common=Not using common path
|
||||
advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
|
||||
advancedsettings.wrapper_launcher=Wrapper Launcher(i.e. optirun...)
|
||||
advancedsettings.precall_command=Precalling command(will be executed before game launching)
|
||||
advancedsettings.server_ip=Server Host
|
||||
advancedsettings.cancel_wrapper_launcher=Cancel Wrapper Launcher
|
||||
advancedsettings.dont_check_game_completeness=Don't check game completeness
|
||||
|
||||
mainwindow.show_log=Show Logs
|
||||
mainwindow.make_launch_script=Make Launching Script.
|
||||
mainwindow.make_launch_script_failed=Failed to make script.
|
||||
mainwindow.enter_script_name=Enter the script name.
|
||||
mainwindow.make_launch_succeed=Finished script creation.
|
||||
mainwindow.no_version=No version found. Switch to Game Downloads Tab?
|
||||
|
||||
launcher.about=<html>About Author<br/>Minecraft Forum ID: klkl6523<br/>Copyright (c) 2013 huangyuhui<br/>Opened source under GPL v3 license:http://github.com/huanghongxun/HMCL/<br/>This software used project Gson which is under Apache License 2.0, thanks contributors.</html>
|
||||
launcher.download_source=Download Source
|
||||
launcher.background_location=Background Location
|
||||
launcher.common_location=Common Location
|
||||
launcher.exit_failed=Failed to shutdown.
|
||||
launcher.versions_json_not_matched=The version %s is malformed! There are a json:%s in this version. Do you want to fix this problem?
|
||||
launcher.versions_json_not_matched_cannot_auto_completion=The version %s lost version information file, delete it?
|
||||
launcher.versions_json_not_formatted=The version information of %s is malformed! Redownload it?
|
||||
launcher.choose_bgpath=Choose background path.
|
||||
launcher.choose_commonpath=Choose common path.
|
||||
launcher.commpath_tooltip=<html><body>This app will save all game libraries and assets here unless there are existant files in game folder.</body></html>
|
||||
launcher.background_tooltip=<html><body>The laucher uses a default background.<br/>If you use custom background.png, link it and it will be used.<br />If there is "bg" subdirectory, this app will chooses one picture in "bgskin" randomly.<br />If you set the background setting, this app will use it.</body></html>
|
||||
launcher.update_launcher=Check for update
|
||||
launcher.enable_shadow=Enable Window Shadow
|
||||
launcher.enable_animation=Enable Animation
|
||||
launcher.enable_blur=Enable Blur
|
||||
launcher.theme=Theme
|
||||
launcher.proxy=Proxy
|
||||
launcher.decorated=Enable system window border(in order to fix the problem that the ui become all gray in Linux OS)
|
||||
launcher.modpack=<html><a href="http://blog.163.com/huanghongxun2008@126/blog/static/7738046920160323812771/">Documentations for modpacks.</a></html>
|
||||
launcher.lang=Language
|
||||
launcher.restart=Options will be in operations only if restart this app.
|
||||
launcher.log_font=Log Font
|
||||
launcher.tab.general=General
|
||||
launcher.tab.ui=UI
|
||||
launcher.tab.about=About
|
||||
|
||||
launcher.title.game=Games
|
||||
launcher.title.main=Home
|
||||
launcher.title.launcher=Launcher
|
||||
|
||||
versions.release=Release
|
||||
versions.snapshot=Snapshot
|
||||
versions.old_beta=Beta
|
||||
versions.old_alpha=Old Alpha
|
||||
|
||||
versions.manage.rename=Rename this version
|
||||
versions.manage.rename.message=Please enter the new name
|
||||
versions.manage.remove=Delete this version
|
||||
versions.manage.remove.confirm=Sure to remove the version
|
||||
versions.manage.redownload_json=Redownload Minecraft Configuration(minecraft.json)
|
||||
versions.manage.redownload_assets_index=Redownload Assets Index
|
||||
versions.mamage.remove_libraries=Delete library files
|
||||
|
||||
advice.os64butjdk32=Your OS is 64-Bit but your Java is 32-Bit. The 64-Bit Java is recommended.
|
||||
advice.java8=Java 8 is suggested, which can make game run more fluently. And many mods and Minecraft 1.12 and newer versions requires Java 8.
|
||||
|
||||
assets.download_all=Download Assets Files
|
||||
assets.not_refreshed=The assets list is not refreshed, please refresh it once.
|
||||
assets.failed=Failed to get the list, try again.
|
||||
assets.list.1_7_3_after=1.7.3 And higher
|
||||
assets.list.1_6=1.6(BMCLAPI)
|
||||
assets.unkown_type_select_one=Unknown game version: %s, please choose an asset type.
|
||||
assets.type=Asset Type
|
||||
assets.download=Download Assets
|
||||
assets.no_assets=Assets are not complete, complete them?
|
||||
assets.failed_download=Failed to download assets, may cause no sounds and language files.
|
||||
|
||||
gamedownload.not_refreshed=The game list is not refreshed, please refresh it once.
|
||||
|
||||
taskwindow.title=Tasks
|
||||
taskwindow.single_progress=Single progress
|
||||
taskwindow.total_progress=Total progress
|
||||
taskwindow.cancel=Cancel
|
||||
taskwindow.no_more_instance=Maybe you opened more than one task window, don't open it again!
|
||||
taskwindow.file_name=Task
|
||||
taskwindow.download_progress=Pgs.
|
||||
|
||||
setupwindow.include_minecraft=Import game
|
||||
setupwindow.find_in_configurations=Finished importing. You can find it in the configuration selection bar.
|
||||
setupwindow.give_a_name=Give a name to the new game.
|
||||
setupwindow.new=New
|
||||
setupwindow.no_empty_name=Version name cannot be empty.
|
||||
setupwindow.clean=Clean game files
|
||||
|
||||
update.no_browser=Cannot open any browser. The link has been copied to the clipboard. Paste it to a browser address bar to update.
|
||||
update.should_open_link=Are you willing to update the launcher?
|
||||
update.newest_version=Newest version:
|
||||
update.failed=Failed to check for updates.
|
||||
update.found=(Found Update!)
|
||||
|
||||
logwindow.terminate_game=Terminate Game
|
||||
logwindow.title=Log
|
||||
logwindow.contact=Contact Us
|
||||
logwindow.show_lines=Show Lines
|
||||
logwindow.search=Search
|
||||
|
||||
selector.choose=Choose
|
||||
|
||||
serverlistview.title=Choose a server
|
||||
serverlistview.name=Name
|
||||
serverlistview.type=Type
|
||||
serverlistview.version=Version
|
||||
serverlistview.info=Information
|
||||
|
||||
minecraft.invalid=Invalid
|
||||
minecraft.invalid_jar=Invalid Jar
|
||||
minecraft.not_a_file=Not a file
|
||||
minecraft.not_found=Not found
|
||||
minecraft.not_readable=Not readable
|
||||
minecraft.modified=(Modified!)
|
||||
|
||||
color.red=Red
|
||||
color.blue=Blue
|
||||
color.green=Green
|
||||
color.orange=Orange
|
||||
color.dark_blue=Dark Blue
|
||||
color.purple=Purple
|
||||
|
||||
wizard.next_>=Next >
|
||||
wizard.next_mnemonic=N
|
||||
wizard.<_prev=< Prev
|
||||
wizard.prev_mnemonic=P
|
||||
wizard.finish=Finish
|
||||
wizard.finish_mnemonic=F
|
||||
wizard.cancel=Cancel
|
||||
wizard.cancel_mnemonic=C
|
||||
wizard.help=Help
|
||||
wizard.help_mnemonic=H
|
||||
wizard.close=Close
|
||||
wizard.close_mnemonic=C
|
||||
wizard.summary=Summary
|
||||
wizard.failed=Failed
|
||||
wizard.steps=Steps
|
||||
|
||||
lang=English
|
||||
lang.default=Belong to OS language.
|
440
HMCL/src/main/resources/assets/lang/I18N_ru.properties
Normal file
440
HMCL/src/main/resources/assets/lang/I18N_ru.properties
Normal file
@ -0,0 +1,440 @@
|
||||
# Hello Minecraft! Launcher.
|
||||
# Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
#
|
||||
#author: malyha2014@yandex.ru
|
||||
launch.failed=Не удалось запустить.
|
||||
launch.failed_creating_process=Не удалось создать процесс, возможно, ваш путь java - указан не верно, пожалуйста, измените свой путь java.
|
||||
launch.failed_sh_permission=Не удалось добавить разрешение на запуск скрипта.
|
||||
launch.failed_packing_jar=Не удалось упаковать в jar.
|
||||
launch.unsupported_launcher_version=Извините, Launcher не может запустить minecraft, но он повторяет попытку запуска.
|
||||
launch.too_big_memory_alloc_64bit=Вы выделили слишком много памяти для 32-разрядной ОС java игра скорее всего приведет к крашу. Максимальный объем памяти 1024МБ. Лаунчер будет пытаться запустить его.
|
||||
launch.too_big_memory_alloc_free_space_too_low=Вы выделили слишком много памяти, потому что размер физической памяти составляет %dMB, ваша игра скорее всего приведет к крашу. Лаунчер будет пытаться запустить его.
|
||||
launch.cannot_create_jvm=Мы видим, что он не может создать java виртуальная машина. В Java аргументах могут возникнуть проблемы. Вы можете включить режим No args в настройках.
|
||||
launch.circular_dependency_versions=Нашли круговой версии зависимостей, пожалуйста, проверьте, если ваш клиент был изменен.
|
||||
launch.not_finished_downloading_libraries=Не закончив загрузку библиотек, продолжить запуск игры?
|
||||
launch.not_finished_decompressing_natives=Не закончил распаковку библиотек, продолжить запуск игры?
|
||||
launch.wrong_javadir=Неправильные каталоги java, он будет сброшен по умолчанию каталог java.
|
||||
launch.exited_abnormally=Игра завершилась крашем, пожалуйста, посетите журнал, или попросить кого-то о помощи.
|
||||
|
||||
launch.state.logging_in=Вход
|
||||
launch.state.generating_launching_codes=Генерирования стартового кода
|
||||
launch.state.downloading_libraries=Загрузки зависимостей
|
||||
launch.state.decompressing_natives=Туземцев распаковки
|
||||
launch.state.waiting_launching=Ждем запуска игры
|
||||
|
||||
install.no_version=Версия не найдена.
|
||||
install.no_version_if_intall=Нужная версия не найдена, вы хотите, чтобы автоматически установилась версия?
|
||||
install.not_refreshed=Список установки не обновляется.
|
||||
install.download_list=Скачать список
|
||||
|
||||
install.liteloader.get_list=Получить список LiteLoader
|
||||
install.liteloader.install=Установить LiteLoader
|
||||
|
||||
install.forge.get_list=Получить список Forge
|
||||
install.forge.install=Установить Forge
|
||||
install.forge.get_changelogs=Получить список изменений Forge
|
||||
|
||||
install.optifine.install=Установить OptiFine
|
||||
install.optifine.get_list=Получить OptiFine лист
|
||||
install.optifine.get_download_link=Получить скачивание OptiFine
|
||||
|
||||
install.failed_forge=Не удалось установить 'Forge'.
|
||||
install.failed_optifine=Не удалось установить 'OptiFine'.
|
||||
install.failed_liteloader=Не удалось установить 'LiteLoader'.
|
||||
install.failed_download_forge=Не удалось скачать 'Forge'.
|
||||
install.failed_download_optifine=Не удалось скачать 'OptiFine'.
|
||||
install.failed=Не удалось установить
|
||||
install.success=Успешная установка
|
||||
install.no_forge=Нету Forge
|
||||
install.choose_forge=Выберите версию, которую вы хотите установить Forge
|
||||
install.version=Версия
|
||||
install.mcversion=Версия игры
|
||||
install.time=Время
|
||||
install.release_time=Время выпуска
|
||||
install.type=Тип
|
||||
install.please_refresh=Если вы хотите установить что-то, пожалуйста, нажмите кнопку "Обновить".
|
||||
|
||||
crash.launcher=Лаунчер крашнулся!
|
||||
crash.minecraft=Minecraft крашнулся!
|
||||
|
||||
login.choose_charactor=Пожалуйста, выберите символ, который вы хотите
|
||||
login.no_charactor=Нет персонажа на этом аккаунте.
|
||||
login.your_password=Пароль
|
||||
login.failed=Не удалось войти
|
||||
login.no_Player007=Не задано имя пользователя!
|
||||
login.wrong_password=Неправильный пароль или имя пользователя
|
||||
login.invalid_username=Неверное имя пользователя
|
||||
login.invalid_uuid_and_username=Недопустимый UUID и имя пользователя
|
||||
login.invalid_password=Неверный пароль
|
||||
login.invalid_access_token=Недопустимый маркер доступа
|
||||
login.changed_client_token=Ответ сервера был изменен маркер клиента.
|
||||
login.not_email=Имя пользователя-это адрес электронной почты.
|
||||
login.type=Логин
|
||||
login.username=Ник
|
||||
login.account=Почта
|
||||
login.invalid_token=Пожалуйста, выйдите и повторно введите пароль для входа в систему.
|
||||
login.no_valid_character=Не допустимый характер, пожалуйста, посетите skinme.cc и создайте своего собственного персонажа.
|
||||
|
||||
proxy.username=Аккаунт
|
||||
proxy.password=Пароль
|
||||
proxy.host=Хост
|
||||
proxy.port=Порт
|
||||
|
||||
login.failed.connect_authentication_server=Не удается подключиться к серверу авторизации. Проверьте вашу сеть.
|
||||
|
||||
login.profile.not_logged_in=Вы не вошли в систему, Вы не можете изменить профиль!
|
||||
login.profile.selected=Не могу изменить профиль, выйдите и повторите.
|
||||
|
||||
login.methods.yggdrasil=Email и пароль
|
||||
login.methods.offline=Введите ваш ник
|
||||
login.methods.no_method=Нет способа входа
|
||||
|
||||
log.playername_null=Ник игрока пусто.
|
||||
|
||||
minecraft.no_selected_version=Не выбрана Minecraft версия
|
||||
minecraft.wrong_path=Неправильный путь Minecraft, лаунчер не может найти путь.
|
||||
|
||||
operation.stopped=Операция была прервана.
|
||||
operation.confirm_stop=Прекращать операции?
|
||||
|
||||
ui.login.password=Пароль
|
||||
ui.more=Больше
|
||||
|
||||
crash.advice.UnsupportedClassVersionError=Может быть, ваша версия java старая, попробуйте обновить java.
|
||||
crash.advice.ConcurrentModificationException=Может быть, ваш java новее, чем 1.8.0_11, вы можете понизить до версии Java 7.
|
||||
crash.advice.ClassNotFoundException=Minecraft или моды, являются неполными. Повторите, если есть какие-то библиотеки, которые не скачали или обновить игру и модов! Или вы можете попробовать настройки игры -> Управление (версии) -> библиотека удалить файлы, чтобы решить проблему.
|
||||
crash.advice.NoSuchFieldError=Minecraft или моды, являются неполными. Повторите, если есть какие-то библиотеки, которые не скачали или обновить игру и моды!
|
||||
crash.advice.LWJGLException=Может быть, ваш видео драйвер не работает, пожалуйста, обновите ваш видео драйвер.
|
||||
crash.advice.SecurityException=Может быть, вы изменили minecraft.jar но не удалили META-INF.
|
||||
crash.advice.OutOfMemoryError=Максимум памяти для JVM слишком мал, пожалуйста, измените его.
|
||||
crash.advice.otherwise=Может быть моды вызвали проблемы.
|
||||
|
||||
crash.advice.OpenGL=Может быть драйвера вызвали проблемы.
|
||||
crash.advice.no_lwjgl=Может быть драйвера вызвали проблемы.
|
||||
|
||||
crash.advice.no=Никакие советы.
|
||||
|
||||
crash.user_fault=Вашей операционной системы или среды Java не может быть установлен неправильно, в результате сбой этой программы, пожалуйста, проверьте вашу среду Java или компьютер!
|
||||
crash.headless=Если ваша ОС Linux может использовать Oracle версии JDK вместо OpenJDK, то или добавить "-Djava.awt.headless=false" аргумент JVM, или проверить, если ваш сервер работает нормально.
|
||||
crash.NoClassDefFound=Пожалуйста, проверьте "Launcher" программное обеспечение в комплекте.
|
||||
|
||||
crash.error=Minecraft крашнулся.
|
||||
crash.main_class_not_found=Главный Класс не найден, может быть ваш МК был нарушен.
|
||||
crash.class_path_wrong=Может запустить скрипт неправильный.
|
||||
|
||||
ui.label.newProfileWindow.new_profile_name=Новое Имя профиля:
|
||||
ui.label.newProfileWindow.copy_from=Скопировать из:
|
||||
ui.newProfileWindow.title=Новый конфиг
|
||||
|
||||
ui.button.ok=OK
|
||||
ui.button.refresh=Обновить
|
||||
ui.button.run=Войти в игру
|
||||
ui.button.settings=Настройки
|
||||
ui.button.about=About
|
||||
ui.button.others=Другие
|
||||
ui.button.logout=Выйти
|
||||
ui.button.download=Скачать
|
||||
ui.button.retry=Повторить
|
||||
ui.button.delete=Удалить
|
||||
ui.button.install=Установить
|
||||
ui.button.info=Информация
|
||||
ui.button.save=Сохранить
|
||||
ui.button.copy=Скопировать
|
||||
ui.button.clear=Очистить
|
||||
ui.button.close=Закрыть
|
||||
ui.button.explore=Выбрать
|
||||
ui.button.test=Тест
|
||||
ui.button.preview=Показать
|
||||
button.cancel=Отменить
|
||||
button.ok=OK
|
||||
button.yes=Да
|
||||
button.no=Нет
|
||||
|
||||
ui.label.version=Версия
|
||||
ui.label.password=Пароль
|
||||
ui.label.profile=Профиль
|
||||
|
||||
ui.message.first_load=Пожалуйста, введите ваш ник.
|
||||
ui.message.enter_password=Пожалуйста, введите Ваш пароль.
|
||||
ui.message.launching=Запуск...
|
||||
ui.message.making=Генерация...
|
||||
ui.message.sure_remove=Не забудьте удалить профиль %s?
|
||||
ui.message.update_java=Пожалуйста, обновите ваш Java.
|
||||
ui.message.open_jdk=Мы уже выяснили, что вы начали это приложение, используя OpenJDK, который станет причиной стольких бед для рисования интерфейса. Мы предлагаем Вам вместо того, чтобы с помощью Oracle версии JDK.
|
||||
|
||||
ui.label.settings=Настройки
|
||||
ui.label.crashing=<html>Launcher крашнулся!</html>
|
||||
ui.label.crashing_out_dated=<html>Launcher крашнулся! Ваш лаунчер устарел. Обновить его</html>
|
||||
ui.label.failed_set=Не удалось установить:
|
||||
|
||||
download=Скачать
|
||||
download.mojang=Mojang
|
||||
download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/)
|
||||
download.rapid_data=RapidData (https://www.rapiddata.org/)
|
||||
download.not_200=Не удалось скачать, код ответа
|
||||
download.failed=Не удалось скачать
|
||||
download.successfully=Успешно скачал
|
||||
download.source=Скачать Исходник
|
||||
|
||||
message.error=Ошибка
|
||||
message.cannot_open_explorer=Не можете открыть проводник:
|
||||
message.cancelled=Отменен
|
||||
message.info=Информация
|
||||
message.loading=Загрузка...
|
||||
|
||||
folder.game=Директория
|
||||
folder.mod=Моды
|
||||
folder.coremod=Ядро
|
||||
folder.config=Конфигурации
|
||||
folder.resourcepacks=Ресурс пак
|
||||
folder.screenshots=Скриншоты
|
||||
folder.saves=Сохранить
|
||||
|
||||
settings.tabs.game_download=Скачать игру
|
||||
settings.tabs.installers=Установщик
|
||||
settings.tabs.assets_downloads=Дополнения
|
||||
|
||||
settings=Настройки
|
||||
settings.explore=Обзор...
|
||||
settings.manage=Управлять
|
||||
settings.cannot_remove_default_config=Не удается удалить конфигурацию по умолчанию.
|
||||
settings.max_memory=Выделение памяти
|
||||
settings.java_dir=Путь к Java
|
||||
settings.game_directory=Директория
|
||||
settings.dimension=Разрешение
|
||||
settings.fullscreen=Полноэкранный режим
|
||||
settings.update_version=Обновление версии в формате json.
|
||||
settings.run_directory=Выбор каталога
|
||||
settings.physical_memory=Размер физической памяти
|
||||
settings.choose_javapath=Выбрать каталог Java.
|
||||
settings.default=По умолчанию
|
||||
settings.custom=Выбрать
|
||||
settings.choose_gamedir=Выбрать директорию игры
|
||||
settings.failed_load=Не смог файл загрузить настройки. Удалить его?
|
||||
settings.test_game=Тестовая игра
|
||||
|
||||
settings.type.none=Нет версии игры, пожалуйста, откройте раздел скачать игру.
|
||||
settings.type.global=<html><a href="">Нажмите здесь, чтобы перейти в специализированных версий. Сейчас это глобальная настройка.</a></html>
|
||||
settings.type.special=<html><a href="">Нажмите здесь, чтобы перейти в глобальные настройки. Не это версии специализированных условиях.</a></html>
|
||||
|
||||
modpack=Мод пак
|
||||
modpack.choose=Выбрать zip-файл, пакет, который вы хотите импортировать. Если вы хотите обновить пакет, пожалуйста, введите версию вы хотите обновить.
|
||||
modpack.export_error=Не удалось экспортировать пакет, может быть Формат вашей игровой директории некорректно или не работать с файлами.
|
||||
modpack.export_finished=Экспорт произведений, готовые. Смотреть
|
||||
modpack.included_launcher=В пакет входит пусковая установка, вы можете опубликовать его сразу.
|
||||
modpack.not_included_launcher=Вы можете использовать пакет, нажав кнопку "Импорт произведений".
|
||||
modpack.enter_name=Введите желаемое имя для этой игры.
|
||||
|
||||
modpack.task.save=Эскпортировать Modpack
|
||||
modpack.task.install=Импортировать Modpack
|
||||
modpack.task.install.error=Не удалось установить пакет. Может быть, файлы неправильно, или возникла проблема управления.
|
||||
modpack.task.install.will=Установить пакет:
|
||||
|
||||
modpack.wizard=Экспорт modpack мастер
|
||||
modpack.wizard.step.1=Основные варианты
|
||||
modpack.wizard.step.1.title=Набор основных вариантов modpack.
|
||||
modpack.wizard.step.initialization.include_launcher=Включить лаунчер
|
||||
modpack.wizard.step.initialization.exported_version=Экспортируемые версии игры
|
||||
modpack.wizard.step.initialization.save=Выберите папку для экспорта игровых файлов для
|
||||
modpack.wizard.step.initialization.warning=<html>Прежде чем сделать modpack, вы должны убедиться, что ваша игра сможет успешно запустить,<br/>и что ваш minecraft-это релиз, а не снимок.<br/>а что нельзя добавить модов, которые не позволили раздавать modpack.</html>
|
||||
modpack.wizard.step.2=Выбор файлов
|
||||
modpack.wizard.step.2.title=Выберите файлы, которые Вы не хотите положить в modpack.
|
||||
modpack.wizard.step.3=Описание
|
||||
modpack.wizard.step.3.title=Опишите ваш modpack.
|
||||
|
||||
modpack.desc=Опишите свою modpack, включая меры предосторожности, changlog, поддерживая уценки(также поддерживает онлайн-картинки).
|
||||
modpack.incorrect_format.no_json=Формат произведений, является неверным, пакет.json-это отсутствует.
|
||||
modpack.incorrect_format.no_jar=Формат modpack неправильно, пакет.json не имеет атрибут 'банку'
|
||||
modpack.cannot_read_version=Не удалось собрать версии игры
|
||||
modpack.not_a_valid_location=Не является допустимым modpack расположение
|
||||
modpack.name=Modpack Название
|
||||
modpack.not_a_valid_name=Не является допустимым modpack название
|
||||
|
||||
modpack.files.servers_dat=Список многопользовательских серверов
|
||||
modpack.files.saves=Сохраненные игры
|
||||
modpack.files.mods=Моды
|
||||
modpack.files.config=Mod конфигурации
|
||||
modpack.files.liteconfig=Mod конфигурации
|
||||
modpack.files.resourcepacks=Ресурс(текстур) паки
|
||||
modpack.files.options_txt=Варианты игры
|
||||
modpack.files.optionsshaders_txt=Варианты шейдеры
|
||||
modpack.files.mods.voxelmods=VoxelMods (включая VoxelMap) функции
|
||||
modpack.files.dumps=NEI отладочный вывод
|
||||
modpack.files.scripts=MineTweaker конфигурации
|
||||
modpack.files.blueprints=BuildCraft чертежи
|
||||
|
||||
mods=Моды
|
||||
mods.choose_mod=Выбрать ваши моды
|
||||
mods.failed=Не удалось добавить моды
|
||||
mods.add=Добавить
|
||||
mods.remove=Удалить
|
||||
mods.default_information=<html><font color=#c0392b>Пожалуйста, убедитесь, что у вас есть установленный Forge или LiteLoader перед установкой модов!<br>Вы можете оставить свой mod файл из проводника/Finder и удаление модов с помощью кнопки удалить.<br>Отключить мод, оставив флажок снят; выбрать товар, чтобы получить информацию.</font></html>
|
||||
|
||||
advancedsettings=Расширенный
|
||||
advancedsettings.launcher_visible=При запуске Minecraft
|
||||
advancedsettings.debug_mode=Режим отладки
|
||||
advancedsettings.java_permanent_generation_space=PermGen Space/MB
|
||||
advancedsettings.jvm_args=Java VM Аргументы
|
||||
advancedsettings.Minecraft_arguments=Minecraft Аргументы
|
||||
advancedsettings.launcher_visibility.close=Закрыть лаунчер, если игра запущена.
|
||||
advancedsettings.launcher_visibility.hide=Скрывать лаунчер, когда игра запущена.
|
||||
advancedsettings.launcher_visibility.keep=Оставить лаунчер видимым.
|
||||
advancedsettings.launcher_visibility.hide_reopen=Скрывать лаунчер и повторно открывать, когда выйдите из игры.
|
||||
advancedsettings.game_dir.default=По умолчанию (.minecraft/)
|
||||
advancedsettings.game_dir.independent=Независимые (.minecraft/версии/<номер версии>/, за исключением активов,библиотеки)
|
||||
advancedsettings.no_jvm_args=No Default JVM Args
|
||||
advancedsettings.no_common=Не использовать общий путь
|
||||
advancedsettings.java_args_default=Default java args: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
|
||||
advancedsettings.wrapper_launcher=Лаунчер-оболочку(как и optirun...)
|
||||
advancedsettings.precall_command=Команда Precalling(будут выполняться до запуска игры)
|
||||
advancedsettings.server_ip=Сервера
|
||||
advancedsettings.cancel_wrapper_launcher=Отмена запуска оболочки
|
||||
advancedsettings.dont_check_game_completeness=Не проверить полноту игры
|
||||
|
||||
mainwindow.show_log=Показать Логи
|
||||
mainwindow.make_launch_script=Сделать запуск скрипта.
|
||||
mainwindow.make_launch_script_failed=Не удалось сделать скрипт.
|
||||
mainwindow.enter_script_name=Введите имя скрипта.
|
||||
mainwindow.make_launch_succeed=Закончил создание скрипта.
|
||||
mainwindow.no_version=Версии Minecraft не найдены. Переключить на вкладку загрузки версии для игры в Minecraft?
|
||||
|
||||
launcher.about=<html>Об Авторе<br/>Майнкрафт форум ID: klkl6523<br/>Copyright (c) 2013 huangyuhui<br/>Opened source under GPL v3 license:http://github.com/huanghongxun/HMCL/<br/>This software used project Gson which is under Apache License 2.0, thanks contributors.</html>
|
||||
launcher.download_source=Скачать Исходники
|
||||
launcher.background_location=Фон Расположение
|
||||
launcher.common_location=Общее Расположение
|
||||
launcher.exit_failed=Не удалось закрыть.
|
||||
launcher.versions_json_not_matched=Версия %s уродлив! Есть в формате json:%s в этой версии. Хотите ли вы решить эту проблему?
|
||||
launcher.versions_json_not_matched_cannot_auto_completion=Версия %s потерянной информации версии файла, удалить его?
|
||||
launcher.versions_json_not_formatted=Сведения о версии %s уродлив! Повторная загрузка?
|
||||
launcher.choose_bgpath=Выберите фоновый пути.
|
||||
launcher.choose_commonpath=Выбрать общий путь.
|
||||
launcher.commpath_tooltip=<html><body>Это приложение будет сохранять все игровые библиотеки здесь, если там нет файлов в папке с игрой.</body></html>
|
||||
launcher.background_tooltip=<html><body>Лаучер использует по умолчанию фон.<br/>Если вы используете пользовательский фон.PNG, ссылку и оно будет использоваться.<br />Если есть "БГ" подкаталог, это приложение выбирает одну картинку в "bgskin" случайно.<br />Если вы установите параметр фон, это приложение будет использовать его.</body></html>
|
||||
launcher.update_launcher=Проверить обновления
|
||||
launcher.enable_shadow=Включить тень окна
|
||||
launcher.enable_animation=Включить анимацию
|
||||
launcher.enable_blur=Включить размытие
|
||||
launcher.theme=Тема
|
||||
launcher.proxy=Прокси
|
||||
launcher.decorated=Включить границы окна(для того, чтобы исправить проблему, если в пользовательском интерфейсе становится все серое в ОС Linux)
|
||||
launcher.modpack=<html><a href="http://blog.163.com/huanghongxun2008@126/blog/static/7738046920160323812771/">Документация по modpacks.</a></html>
|
||||
launcher.lang=Язык (Language)
|
||||
launcher.restart=Варианты будут в операции, только если перезапустить это приложение.
|
||||
launcher.log_font=Шрифт лога
|
||||
launcher.tab.general=Общие
|
||||
launcher.tab.ui=Интерфейс
|
||||
launcher.tab.about=Версия
|
||||
|
||||
launcher.title.game=Игры
|
||||
launcher.title.main=Главная
|
||||
launcher.title.launcher=Лаунчер
|
||||
|
||||
versions.release=Release
|
||||
versions.snapshot=Snapshot
|
||||
versions.old_beta=Beta
|
||||
versions.old_alpha=Old Alpha
|
||||
|
||||
versions.manage.rename=Переименовать эту версию
|
||||
versions.manage.rename.message=Пожалуйста, введите новый ник
|
||||
versions.manage.remove=Удалить версию
|
||||
versions.manage.remove.confirm=Не забудьте удалить версию
|
||||
versions.manage.redownload_json=Повторная загрузка конфигурации в Minecraft(minecraft.json)
|
||||
versions.manage.redownload_assets_index=Перекачать библиотеки
|
||||
versions.mamage.remove_libraries=Библиотека удалить файлы
|
||||
|
||||
advice.os64butjdk32=Ваша ОС 64-битная, но ваш java является 32-разрядной. Вам рекомендуется 64-разрядная версия java.
|
||||
advice.java8=Java 8 представляет предположил, что может сделать игру работать более производительной. Многие моды и Minecraft 1.12 и новые версии требуют java 8.
|
||||
|
||||
assets.download_all=Скачать Файлы
|
||||
assets.not_refreshed=Список библиотек не обновляется, пожалуйста, обновите его один раз.
|
||||
assets.failed=Не удалось получить список, попробуйте еще раз.
|
||||
assets.list.1_7_3_after=1.7.3 и выше
|
||||
assets.list.1_6=1.6(BMCLAPI)
|
||||
assets.unkown_type_select_one=Неизвестная версия игры: %s, пожалуйста, выберите тип библиотеки.
|
||||
assets.type=Тип библиолтек
|
||||
assets.download=Скачать библиотеки
|
||||
assets.no_assets=Библиотеки не завершены, завершить их?
|
||||
assets.failed_download=Не удалось загрузить библиотеки из-за этого может не быть никаких звуков и языковых файлов.
|
||||
|
||||
gamedownload.not_refreshed=Список игр не обновляется, пожалуйста, обновите его один раз.
|
||||
|
||||
taskwindow.title=Задачи
|
||||
taskwindow.single_progress=Один прогресс
|
||||
taskwindow.total_progress=Общий прогресс
|
||||
taskwindow.cancel=Отменить
|
||||
taskwindow.no_more_instance=Может быть, вы открыли больше чем одно окно задач, не открыть его снова!
|
||||
taskwindow.file_name=Задача
|
||||
taskwindow.download_progress=%.
|
||||
|
||||
setupwindow.include_minecraft=Импорт игры
|
||||
setupwindow.find_in_configurations=Завершения импорта. Вы можете найти его в панели выбора конфигурации.
|
||||
setupwindow.give_a_name=Дайте название новой игры.
|
||||
setupwindow.new=Новое
|
||||
setupwindow.no_empty_name=Название версии не может быть пустым.
|
||||
setupwindow.clean=Чистые файлы игры
|
||||
|
||||
update.no_browser=Не может открыть любым браузером. Ссылка была скопирована в буфер обмена. Вставьте его в адресную строку браузера обновить.
|
||||
update.should_open_link=Вы готовы обновить лаунчер?
|
||||
update.newest_version=Самая новая версия:
|
||||
update.failed=Не удалось проверить наличие обновлений.
|
||||
update.found=(Нашел Обновление!)
|
||||
|
||||
logwindow.terminate_game=Завершить игру
|
||||
logwindow.title=Лог
|
||||
logwindow.contact=Свяжитесь с нами
|
||||
logwindow.show_lines=Показать строки
|
||||
logwindow.search=Поиск
|
||||
|
||||
selector.choose=Выбрать
|
||||
|
||||
serverlistview.title=Выбрать сервер
|
||||
serverlistview.name=Название
|
||||
serverlistview.type=Тип
|
||||
serverlistview.version=Версия
|
||||
serverlistview.info=Информация
|
||||
|
||||
minecraft.invalid=Invalid
|
||||
minecraft.invalid_jar=Invalid Jar
|
||||
minecraft.not_a_file=Not a file
|
||||
minecraft.not_found=Not found
|
||||
minecraft.not_readable=Not readable
|
||||
minecraft.modified=(Modified!)
|
||||
|
||||
color.red=Красный
|
||||
color.blue=Голубой
|
||||
color.green=Зеленый
|
||||
color.orange=Оранжевый
|
||||
color.dark_blue=Темно-Синий
|
||||
color.purple=Фиолетовый
|
||||
|
||||
wizard.next_>=Следующий >
|
||||
wizard.next_mnemonic=N
|
||||
wizard.<_prev=< Предыдущий
|
||||
wizard.prev_mnemonic=P
|
||||
wizard.finish=Завершить
|
||||
wizard.finish_mnemonic=F
|
||||
wizard.cancel=Отменить
|
||||
wizard.cancel_mnemonic=C
|
||||
wizard.help=Помощь
|
||||
wizard.help_mnemonic=H
|
||||
wizard.close=Закрыть
|
||||
wizard.close_mnemonic=C
|
||||
wizard.summary=Summary
|
||||
wizard.failed=Failed
|
||||
wizard.steps=Steps
|
||||
|
||||
lang=Русский
|
||||
lang.default=Выбран язык операционной системы.
|
438
HMCL/src/main/resources/assets/lang/I18N_vi.properties
Normal file
438
HMCL/src/main/resources/assets/lang/I18N_vi.properties
Normal file
@ -0,0 +1,438 @@
|
||||
# Hello Minecraft! Launcher.
|
||||
# Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
#
|
||||
#author: LADBOSSHOSS
|
||||
launch.failed=Mở minecraft không thành công.
|
||||
launch.failed_creating_process=Tạo tiến trình chạy thất bại, có thể nơi bạn cài java đã bị sai, vui lòng hãy chỉnh sửa lại đường dẫn cài java.
|
||||
launch.failed_sh_permission=Thêm quyền vào đoạn mã chạy launcher thất bại.
|
||||
launch.failed_packing_jar=Đóng gói file jar thất bại
|
||||
launch.unsupported_launcher_version=Xin lỗi, launcher không mở được minecraft, nhưng launcher sẽ cố gắng để chạy.
|
||||
launch.too_big_memory_alloc_64bit=Bạn đã cho minecraft dùng quá nhiều RAM, vì máy bạn dùng 32-Bit Java Runtime Environment, Minecraft có thể bị crash. Mức RAM cho minecraft dùng cao nhất là 1024MB. Launcher sẽ thử để chạy mnecraft
|
||||
launch.too_big_memory_alloc_free_space_too_low=Bạn đã cho minecraft dùng quá nhiều RAM, vì ram của bạn chỉ có %dMB, minecraft có thể bị crash. Launcher sẽ thử để chạy
|
||||
launch.cannot_create_jvm=Launcher không tạo được máy ảo java để chạy minecraft. Java argument có thể có vấn đề, bạn có thể bật chế độ no args trong cài đặt
|
||||
launch.circular_dependency_versions=Đã tìm thấy phiên bản minecraft không phù hợp, xin hãy xem phiên bản minecraft đã được chỉnh sửa hay không.
|
||||
launch.not_finished_downloading_libraries=Không download được libraries cho minecraft, có tiếp tục mở game không?
|
||||
launch.not_finished_decompressing_natives=Không giải nén được libraries cho minecraft, có tiếp tục mở game không?
|
||||
launch.wrong_javadir=Đường dẫn cài java bị sai, launcher sẽ reset lại đường dẫn java đúng
|
||||
launch.exited_abnormally=Minecraft đã bị thoát bất thường, hãy xem file log, hoặc nói với người khác giúp.
|
||||
|
||||
launch.state.logging_in=Đang đăng nhập...
|
||||
launch.state.generating_launching_codes=Đang tạo code chạy minecraft
|
||||
launch.state.downloading_libraries=Downloading...
|
||||
launch.state.decompressing_natives=Giải nén...
|
||||
launch.state.waiting_launching=Waiting for game launching
|
||||
|
||||
install.no_version=Không tìm thấy phiên bản minecraft.
|
||||
install.no_version_if_intall=Phiên bản cần thiết không thấy, có nên cài đặt phiên bản tự động không?
|
||||
install.not_refreshed=Danh sách cài chưa được làm mới
|
||||
install.download_list=Danh sách download
|
||||
|
||||
install.liteloader.get_list=Lấy LiteLoader List
|
||||
install.liteloader.install=Cài LiteLoader
|
||||
|
||||
install.forge.get_list=Get Forge List
|
||||
install.forge.install=Cài Forge
|
||||
install.forge.get_changelogs=Lấy Forge Changelogs
|
||||
|
||||
install.optifine.install=Cài OptiFine
|
||||
install.optifine.get_list=Lấy OptiFine Download List
|
||||
install.optifine.get_download_link=Lấy download link của Optifine
|
||||
|
||||
install.failed_forge=Không cài được Forge
|
||||
install.failed_optifine=Không cài được Optifine
|
||||
install.failed_liteloader=Không cài được LiteLoader
|
||||
install.failed_download_forge=Failed to Download Forge
|
||||
install.failed_download_optifine=Failed to Download OptiFine
|
||||
install.failed=Không cài được
|
||||
install.success=Cài đặt thành công
|
||||
install.no_forge=No Forge
|
||||
install.choose_forge=Chọn phiên bản bạn muốn cài Forge
|
||||
install.version=Phiên bản
|
||||
install.mcversion=Game Version
|
||||
install.time=Time
|
||||
install.release_time=Thời gian phát hành
|
||||
install.type=Type
|
||||
install.please_refresh=Nếu bạn muốn cài một thứ gì đó, hãy ấn nút "Tải lại".
|
||||
|
||||
crash.launcher=Launcher bị crash rồi!
|
||||
crash.minecraft=Minecraft bị crash rồi!
|
||||
|
||||
login.choose_charactor=Xin hãy chọn nhân vật bạn muốn
|
||||
login.no_charactor=Không có nhân vật trong tài khoản này.
|
||||
login.your_password=Mật khẩu của bạn
|
||||
login.failed=Không đăng nhập được
|
||||
login.no_Player007=You have not set username!
|
||||
login.wrong_password=Mật khẩu hoặc username đã sai.
|
||||
login.invalid_username=Username không đúng
|
||||
login.invalid_uuid_and_username=UUID và username không đúng
|
||||
login.invalid_password=Mật khẩu không đúng
|
||||
login.invalid_access_token=Access Token bị sai
|
||||
login.changed_client_token=Server đã thay đổi client token.
|
||||
login.not_email=Username phải là email
|
||||
login.type=Login
|
||||
login.username=Username:
|
||||
login.account=Email:
|
||||
login.invalid_token=Hãy đăng xuất và đăng nhập lại.
|
||||
login.no_valid_character=Không có nhân vật hợp lệ, hãy vào trang web skinme.cc và tạo một nhân vật cho bạn.
|
||||
|
||||
proxy.username=Tài khoản
|
||||
proxy.password=Mật khẩu
|
||||
proxy.host=Host
|
||||
proxy.port=Số cổng
|
||||
|
||||
login.failed.connect_authentication_server=Không thể kết nối đến máy chủ xác thực, hãy xem lại kết nối mạng của bạn
|
||||
|
||||
login.profile.not_logged_in=Không đăng nhập vào được và không thể chính sửa cấu hình.
|
||||
login.profile.selected=Không chỉnh sửa được cấu hình, bạn phải đăng xuất ra rồi làm lại.
|
||||
|
||||
login.methods.yggdrasil=Mojang
|
||||
login.methods.offline=Offline
|
||||
login.methods.no_method=Không có chế độ nào
|
||||
|
||||
log.playername_null=Tên của người chơi trống.
|
||||
|
||||
minecraft.no_selected_version=Bạn chưa chọn phiên bản minecraft!
|
||||
minecraft.wrong_path=Đường dẫn minecraft bị sai, launcher không tìm thấy được đường dẫn
|
||||
|
||||
operation.stopped=Quá trình đã được dừng lại.
|
||||
operation.confirm_stop=Dừng lại quá trình không?
|
||||
|
||||
ui.login.password=Mật khẩu
|
||||
ui.more=Xem thêm
|
||||
|
||||
crash.advice.UnsupportedClassVersionError=Phiên bản java của bạn quá cũ, hãy thử cập nhật phiên bản java
|
||||
crash.advice.ConcurrentModificationException=Có thể phiên bản java của bạn mới hơn phiên bản 1.8.0_11, Bạn có thể hạ cấp java xuông phiên bản 7.
|
||||
crash.advice.ClassNotFoundException=Minecraft hoặc mod chưa được hoàn thành. Hãy thử lại nếu có một số libraries chưa được tải về hoặc cập nhật phiên bản minecraft và mod. Hoặc bạn có thể chọn Game Settings -> Manage (Version) -> Xóa libraries để sửa lỗi.
|
||||
crash.advice.NoSuchFieldError=Minecraft hoặc mod chưa được hoàn thành. Hãy thử lại nếu có một số libraries chưa được tải về hoặc cập nhật phiên bản minecraft và mod.
|
||||
crash.advice.LWJGLException=Có thể video driver của bạn không hoạt động tốt cho lắm, hãy thử cập nhật video driver của bạn.
|
||||
crash.advice.SecurityException=Có thể bạn đã chỉnh sửa file minecraft.jar nhưng bạn chưa xóa file META-INF
|
||||
crash.advice.OutOfMemoryError=Lượng RAM cao nhất của máy áo java quá nhỏ, hãy chỉnh sửa nó.
|
||||
crash.advice.otherwise=Có thể mods đã làm ra lỗi.
|
||||
crash.advice.OpenGL=Có thể drivers đã làm ra lỗi
|
||||
crash.advice.no_lwjgl=Có thể drivers đã làm ra lỗi
|
||||
crash.advice.no=Không có lời khuyên.
|
||||
|
||||
crash.user_fault=Hệ điều hành hoặc java của bạn có thể đã cài đặt không đúng cách dẫn đến sự crash của launcher, hãy cài lại java và xem lại máy tính của bạn!
|
||||
crash.headless=Nếu hệ điều hành của bạn là Linux, hãy dùng Oracle JDK thay cho OpenJDK, hoặc thêm vào "-Djava.awt.headless=false" vào argument của máy ảo java, hoặc xem nếu Xserver có hoạt động hay không
|
||||
crash.NoClassDefFound=Hãy kiểm tra phần mềm "HMCL" đã hoàn thành
|
||||
|
||||
crash.error=Minecraft đã bị crash.
|
||||
crash.main_class_not_found=Class chính của minecraft không tìm thấy, có lẽ phiên bản minecraft đã bị lỗi.
|
||||
crash.class_path_wrong=Có lẽ đoạn mã chạy launcher đã bị lỗi
|
||||
|
||||
ui.label.newProfileWindow.new_profile_name=Tên cấu hình mới:
|
||||
ui.label.newProfileWindow.copy_from=Copy từ:
|
||||
ui.newProfileWindow.title=Cấu hình mới
|
||||
|
||||
ui.button.ok=OK
|
||||
ui.button.refresh=Tải lại
|
||||
ui.button.run=Play
|
||||
ui.button.settings=Cài đặt
|
||||
ui.button.about=About
|
||||
ui.button.others=Khác
|
||||
ui.button.logout=Đăng xuất
|
||||
ui.button.download=Tải về
|
||||
ui.button.retry=Thử lại
|
||||
ui.button.delete=Xóa
|
||||
ui.button.install=Cài
|
||||
ui.button.info=Thông tin
|
||||
ui.button.save=Lưu
|
||||
ui.button.copy=Copy
|
||||
ui.button.clear=Xóa
|
||||
ui.button.close=Đóng
|
||||
ui.button.explore=Explore
|
||||
ui.button.test=Test
|
||||
ui.button.preview=Xem trước
|
||||
button.cancel=Thoát
|
||||
button.ok=OK
|
||||
button.yes=Yes
|
||||
button.no=No
|
||||
|
||||
ui.label.version=Phiên bản
|
||||
ui.label.password=Mật khẩu
|
||||
ui.label.profile=Cấu hình
|
||||
|
||||
ui.message.first_load=Hãy nhập username của bạn vào.
|
||||
ui.message.enter_password=Hãy nhập mật khẩu của bạn
|
||||
ui.message.launching=Launching...
|
||||
ui.message.making=Generating...
|
||||
ui.message.sure_remove=Bạn có chắc chắn xóa cấu hình %s không?
|
||||
ui.message.update_java=Hãy cập nhật phiên bản java của bạn.
|
||||
|
||||
ui.label.settings=Cài đặt
|
||||
ui.label.crashing=<html>HMCL Minecraft Launcher đã bị crash!</html>
|
||||
ui.label.crashing_out_dated=<html>HL Minecraft Launcher đã bị crash! Và launcher của bạn không phải là phiên bản mới nhất. cập nhật nó đi!</html>
|
||||
ui.label.failed_set=Failed to set:
|
||||
ui.message.open_jdk=We have found that you started this application using OpenJDK, which will cause so many troubles drawing the UI. We suggest you using Oracle JDK instead.
|
||||
|
||||
download=Download
|
||||
download.mojang=Mojang
|
||||
download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/)
|
||||
download.rapid_data=RapidData (https://www.rapiddata.org/)
|
||||
download.not_200=Download không thành công, the response code
|
||||
download.failed=Download không thành công.
|
||||
download.successfully=Download thành công.
|
||||
download.source=Download Source
|
||||
|
||||
message.error=Lỗi
|
||||
message.cannot_open_explorer=Cannot open explorer:
|
||||
message.cancelled=Đã thoảt
|
||||
message.info=Thông tin
|
||||
message.loading=Loading...
|
||||
|
||||
folder.game=Thư mục minecraft
|
||||
folder.mod=Mod
|
||||
folder.coremod=Core Mod
|
||||
folder.config=Cấu hình
|
||||
folder.resourcepacks=Resourcepacks
|
||||
folder.screenshots=Ảnh chụp màn hình
|
||||
folder.saves=Thế giới
|
||||
|
||||
settings.tabs.game_download=Games
|
||||
settings.tabs.installers=Trình cài đặt
|
||||
settings.tabs.assets_downloads=Assets
|
||||
|
||||
settings=Settings
|
||||
settings.explore=Explore
|
||||
settings.manage=Manage
|
||||
settings.cannot_remove_default_config=Không thể xóa cấu hình mặc định
|
||||
settings.max_memory=RAM cao nhất(MB)
|
||||
settings.java_dir=Thư mục Java
|
||||
settings.game_directory=Thư mục minecraft
|
||||
settings.dimension=Khu vực cửa sổ của game
|
||||
settings.fullscreen=Toàn màn hình
|
||||
settings.update_version=Update version json.
|
||||
settings.run_directory=Run Directory(Version Isolation)
|
||||
settings.physical_memory=Dung lượgg RAM vật lý
|
||||
settings.choose_javapath=Chọn thư mục java
|
||||
settings.default=Mặc định
|
||||
settings.custom=Tùy chỉnh
|
||||
settings.choose_gamedir=Chọn thư mục game
|
||||
settings.failed_load=Đọc file cấu hình thất bại. Xóa nó không?
|
||||
settings.test_game=Chạy thử game
|
||||
|
||||
settings.type.none=No version here, please turn to game download tab.
|
||||
settings.type.global=<html><a href="">Click here to switch to version specialized setting. Now it is global setting.</a></html>
|
||||
settings.type.special=<html><a href="">Click here to switch to global setting. Not it is version specialized setting.</a></html>
|
||||
|
||||
modpack=Mod pack
|
||||
modpack.choose=Chọn modpack zip file mà bạn muốn nhập vào. Nếu bạn muốn cập nhật phiên bản của modpack, Hãy nhập vào phiên bản bạn muốn cập nhật.
|
||||
modpack.export_error=Xuất modpack ra thất bại, có thể định dạng của thư mục chứa dữ liệu bị sai hoặc không thể quản lý file.
|
||||
modpack.export_finished=Xuất modpack ra thành công. Xem
|
||||
modpack.included_launcher=Modpack đã được tích hợp trong launcher, Bạn có thể publish nó.
|
||||
modpack.not_included_launcher=Dùng nút "Cài Modpack" để cài modpack.
|
||||
modpack.enter_name=Hãy cho một cái tên mà bạn thích.
|
||||
|
||||
modpack.task.save=Xuất Modpack
|
||||
modpack.task.install=Cài Modpack
|
||||
modpack.task.install.error=Cài modpack không thành công, có lẽ file modpack không đúng hoặc là không thể quản lý file
|
||||
modpack.task.install.will=Launcher sẽ cài modpack:
|
||||
|
||||
modpack.wizard=Công cụ xuất modpack
|
||||
modpack.wizard.step.1=Tùy chọn cơ bản
|
||||
modpack.wizard.step.1.title=Chọn các tùy chọn cơ bản cho modpack.
|
||||
modpack.wizard.step.initialization.include_launcher=Include the launcher
|
||||
modpack.wizard.step.initialization.exported_version=Phiên bản đã được xuất
|
||||
modpack.wizard.step.initialization.save=Chọn một thư mục mà bạn muốn xuất game data
|
||||
modpack.wizard.step.initialization.warning=<html>Trước khi tạo modpack, bạn phải chắc chắn rằng minecraft có thể chạy,<br/>và phiên bản minecraft là chính thức, không phải là snapshot.<br/>và nó không cho thêm mods mà không có quyền để tạo modpack.</html>
|
||||
modpack.wizard.step.2=Chọn file
|
||||
modpack.wizard.step.2.title=Chọn file bạn không muốn thêm vào modpack
|
||||
modpack.wizard.step.3=Miêu tả
|
||||
modpack.wizard.step.3.title=Miêu tả modpack của bạn.
|
||||
|
||||
modpack.desc=Miêu tả modpack của bạn, bao gồm đề phòng, sự thay đổi, dấu gạch xuống(và một số hình ảnh).
|
||||
modpack.incorrect_format.no_json=Định dạng của modpack không đúng, file pack.json bị thiếu
|
||||
modpack.incorrect_format.no_jar=Định dạng của modpack không đúng, file pack.json không có đặc tính jar
|
||||
modpack.cannot_read_version=Lấy phiên bản của minecraft thất bại
|
||||
modpack.not_a_valid_location=Nơi chứa modpack không đúng
|
||||
modpack.name=Tên của modpack
|
||||
modpack.not_a_valid_name=Tên của modpack không đúng
|
||||
|
||||
modpack.files.servers_dat=Danh sách server
|
||||
modpack.files.saves=Thư mục chứa dữ liệu thế giới
|
||||
modpack.files.mods=Mods
|
||||
modpack.files.config=Cấu hình của mod
|
||||
modpack.files.liteconfig=Cấu hình của LiteLoader
|
||||
modpack.files.resourcepacks=Resource(Texutre) packs
|
||||
modpack.files.options_txt=Tùy chọn của game
|
||||
modpack.files.optionsshaders_txt=Tùy chọn của shaders
|
||||
modpack.files.mods.voxelmods=Tùy chọn của VoxelMod(tính cả VoxelMap)
|
||||
modpack.files.dumps=NEI debug output
|
||||
modpack.files.scripts=Cấu hình của MineTweaker
|
||||
modpack.files.blueprints=Bản thiết kế cho BuildCraft
|
||||
|
||||
mods=Mods
|
||||
mods.choose_mod=Chọn mods
|
||||
mods.failed=Tải mods thất bại
|
||||
mods.add=Thêm
|
||||
mods.remove=Xóa
|
||||
mods.default_information=<html><font color=#c0392b>Bạn hãy chắc chắn rằng bạn đã cài Forge hoặc LiteLoader trước khi cài mods!<br>Bạn có thể kéo file mods vào trong cửa sổ này để thêm, và xóa mods bằng cách ấn nút xóa.<br>Tắt mods bằng cách bỏ dấu v ở chỗ hộp kiểm; Chọn một mục để biết thêm thông tin.</font></html>
|
||||
|
||||
advancedsettings=Nâng cao
|
||||
advancedsettings.launcher_visible=Sự hiển thị của launcher
|
||||
advancedsettings.debug_mode=Chế độ gỡ lỗi
|
||||
advancedsettings.java_permanent_generation_space=Dung lượng PermGen/MB
|
||||
advancedsettings.jvm_args=Arguments của máy ảo java
|
||||
advancedsettings.Minecraft_arguments=Arguments của minecraft
|
||||
advancedsettings.launcher_visibility.close=Đóng launcher sau khi minecraft được mở.
|
||||
advancedsettings.launcher_visibility.hide=Ẩn launcher sau khi minecraft được mở.
|
||||
advancedsettings.launcher_visibility.keep=Để cho launcher hiển thị.
|
||||
advancedsettings.launcher_visibility.hide_reopen=Hide the launcher and re-open when game closes.
|
||||
advancedsettings.game_dir.default=Mặc định (.minecraft/)
|
||||
advancedsettings.game_dir.independent=Independent (.minecraft/versions/<version name>/, trừ thư mục assets,libraries)
|
||||
advancedsettings.no_jvm_args=Không có arguments mặc định cho máy ảo java
|
||||
advancedsettings.no_common=Not using common path
|
||||
advancedsettings.java_args_default=Java arguments mặc định: -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
|
||||
advancedsettings.wrapper_launcher=Wrapper Launcher(dạng như optirun...)
|
||||
advancedsettings.precall_command=Câu lệnh được chạy trước khi game mở
|
||||
advancedsettings.server_ip=Máy chủ
|
||||
advancedsettings.cancel_wrapper_launcher=Hủy bỏ Wrapper Launcher
|
||||
advancedsettings.dont_check_game_completeness=Không kiểm tra game có đầy đủ không.
|
||||
|
||||
mainwindow.show_log=Xem logs
|
||||
mainwindow.make_launch_script=Tạo đoạn mã launching
|
||||
mainwindow.make_launch_script_failed=Tạo đoạn mã thất bại
|
||||
mainwindow.enter_script_name=Nhập tên của đoạn mã.
|
||||
mainwindow.make_launch_succeed=Đã tạo đoạn mã.
|
||||
mainwindow.no_version=Không có phiên bản minecraft nào được tìm thấy. Chuyển sang tab Game Download?
|
||||
|
||||
launcher.about=<html>Về tác giả<br/>Minecraft Forum ID: klkl6523<br/>Copyright (c) 2013 huangyuhui<br/>http://github.com/huanghongxun/HMCL/<br/>Phần mềm này dùng project Gson, cảm ơn người đóng góp.</html>
|
||||
launcher.download_source=Download Source
|
||||
launcher.background_location=Background Location
|
||||
launcher.common_location=Common Location
|
||||
launcher.exit_failed=Tắt launcher thất bại.
|
||||
launcher.versions_json_not_matched=The version %s is malformed! There are a json:%s in this version. Do you want to fix this problem?
|
||||
launcher.versions_json_not_matched_cannot_auto_completion=The version %s lost version information file, delete it?
|
||||
launcher.versions_json_not_formatted=The version information of %s is malformed! Redownload it?
|
||||
launcher.choose_bgpath=Choose background path.
|
||||
launcher.choose_commonpath=Choose common path.
|
||||
launcher.commpath_tooltip=<html><body>This app will save all game libraries and assets here unless there are existant files in game folder.</body></html>
|
||||
launcher.background_tooltip=<html><body>This app uses the default background at first.<br />If there is background.png in the directory, it will be used.<br />If there is "bg" subdirectory, this app will chooses one picture in "bgskin" randomly.<br />If you set the background setting, this app will use it.</body></html>
|
||||
launcher.update_launcher=Check for update
|
||||
launcher.enable_shadow=Enable Window Shadow
|
||||
launcher.enable_animation=Enable Animation
|
||||
launcher.enable_blur=Enable Blur
|
||||
launcher.theme=Theme
|
||||
launcher.proxy=Proxy
|
||||
launcher.decorated=Enable system window border(in order to fix the problem that the ui become all gray in Linux OS)
|
||||
launcher.modpack=<html><a href="http://blog.163.com/huanghongxun2008@126/blog/static/7738046920160323812771/">Documentations for modpacks.</a></html>
|
||||
launcher.lang=Language
|
||||
launcher.restart=Options will be in operations only if restart this app.
|
||||
launcher.log_font=Log Font
|
||||
launcher.tab.general=General
|
||||
launcher.tab.ui=UI
|
||||
launcher.tab.about=About
|
||||
|
||||
launcher.title.game=Phiên bản & Mods
|
||||
launcher.title.main=HMCL Main
|
||||
launcher.title.launcher=Launcher
|
||||
|
||||
versions.release=Chính thức
|
||||
versions.snapshot=Snapshot
|
||||
versions.old_beta=Beta
|
||||
versions.old_alpha=Old Alpha
|
||||
|
||||
versions.manage.rename=Đổi tên phiên bản này
|
||||
versions.manage.rename.message=Nhập tên mới
|
||||
versions.manage.remove=Xóa phiên bản này
|
||||
versions.manage.remove.confirm=Bạn có chắc để xóa phiên bản này không?
|
||||
versions.manage.redownload_json=Download lại cấu hình của minecraft(minecraft.json)
|
||||
versions.manage.redownload_assets_index=Download lại Assets Index
|
||||
versions.mamage.remove_libraries=Xóa libraries file
|
||||
|
||||
advice.os64butjdk32=Hệ điều hành của bạn là 64-Bit nhưng phiên bản Java của bạn là 32-Bit. Khuyên bạn nên dùng Java 64-Bit.
|
||||
advice.java8=Java 8 is suggested, which can make game run more fluently. And many mods and Minecraft 1.12 and newer versions requires Java 8.
|
||||
|
||||
assets.download_all=Download file assets
|
||||
assets.not_refreshed=Danh sách assets chưa được load lại, bạn hãy ấn nút Tải lại.
|
||||
assets.failed=Lấy danh sách thất bại, hãy thử lại.
|
||||
assets.list.1_7_3_after=1.7.3 và cao hơn
|
||||
assets.list.1_6=1.6(BMCLAPI)
|
||||
assets.unkown_type_select_one=Phiên bản minecraft chưa được biết: %s, hãy chọn một loại asset.
|
||||
assets.type=Loại asset
|
||||
assets.download=Download Assets
|
||||
assets.no_assets=Assets chưa được hoàn thành, hoàn thành nó không?
|
||||
assets.failed_download=Download asset thất bại, có thể sẽ không có âm thanh và ngôn ngữ.
|
||||
|
||||
gamedownload.not_refreshed=Danh sách phiên bản chưa được load lại, bạn hãy ấn nút Tải lại.
|
||||
|
||||
taskwindow.title=Tasks
|
||||
taskwindow.single_progress=Single progress
|
||||
taskwindow.total_progress=Total progress
|
||||
taskwindow.cancel=Cancel
|
||||
taskwindow.no_more_instance=Maybe you opened more than one task window, dont open it again!
|
||||
taskwindow.file_name=Task
|
||||
taskwindow.download_progress=Pgs.
|
||||
|
||||
setupwindow.include_minecraft=Import game
|
||||
setupwindow.find_in_configurations=Finished importing. You can find it in the configuration selection bar.
|
||||
setupwindow.give_a_name=Give a name to the new game.
|
||||
setupwindow.new=New
|
||||
setupwindow.no_empty_name=Version name cannot be empty.
|
||||
setupwindow.clean=Clean game files
|
||||
|
||||
update.no_browser=Không thể mở trình duyệt. Đường link đã được copy vào clipboard. Bạn có thể paste nó vào thanh đường link.
|
||||
update.should_open_link=Bạn có muốn cập nhật launcher không?
|
||||
update.newest_version=Phiên bản mới nhất:
|
||||
update.failed=Kiểm tra cập nhật thất bại.
|
||||
update.found=(Đã tìm thấy bản cập nhật!)
|
||||
|
||||
logwindow.terminate_game=Tắt Game
|
||||
logwindow.title=HMCL Error Log (Hãy đăng cái này lên forum!)
|
||||
logwindow.contact=Contact Us
|
||||
logwindow.show_lines=Show Lines
|
||||
logwindow.search=Search
|
||||
|
||||
selector.choose=Chọn
|
||||
|
||||
serverlistview.title=Chọn máy chủ
|
||||
serverlistview.name=Tên
|
||||
serverlistview.type=Lọai
|
||||
serverlistview.version=Phiên bản
|
||||
serverlistview.info=Thông tin
|
||||
|
||||
minecraft.invalid=Không hợp lệ
|
||||
minecraft.invalid_jar=File jar không hợp lệ
|
||||
minecraft.not_a_file=Not a file
|
||||
minecraft.not_found=Không tìm thấy
|
||||
minecraft.not_readable=Không đọc được
|
||||
minecraft.modified=(Đã sửa đổi!)
|
||||
|
||||
color.red=Đỏ
|
||||
color.blue=Xanh da trời
|
||||
color.green=Xanh lục
|
||||
color.orange=Cam
|
||||
color.dark_blue=Xanh da trời tối
|
||||
color.purple=Tím
|
||||
|
||||
wizard.next_>=Next >
|
||||
wizard.next_mnemonic=N
|
||||
wizard.<_prev=< Prev
|
||||
wizard.prev_mnemonic=P
|
||||
wizard.finish=Finish
|
||||
wizard.finish_mnemonic=F
|
||||
wizard.cancel=Cancel
|
||||
wizard.cancel_mnemonic=C
|
||||
wizard.help=Help
|
||||
wizard.help_mnemonic=H
|
||||
wizard.close=Close
|
||||
wizard.close_mnemonic=C
|
||||
wizard.summary=Summary
|
||||
wizard.failed=Failed
|
||||
wizard.steps=Steps
|
||||
|
||||
lang=Vietnamese
|
||||
lang.default=Thuộc về ngôn ngữ của hệ điều hành
|
440
HMCL/src/main/resources/assets/lang/I18N_zh.properties
Normal file
440
HMCL/src/main/resources/assets/lang/I18N_zh.properties
Normal file
@ -0,0 +1,440 @@
|
||||
# Hello Minecraft! Launcher.
|
||||
# Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
#
|
||||
#author: byStarTW
|
||||
launch.failed=啟動失敗
|
||||
launch.failed_creating_process=啟動失敗,在新建新任務時發生錯誤,可能是 Java 路徑錯誤。
|
||||
launch.failed_sh_permission=為啟動資料添加權限時發生錯誤
|
||||
launch.failed_packing_jar=在打包jar時發生錯誤
|
||||
launch.unsupported_launcher_version=對不起,本啟動器現在可能不能啟動這個版本的Minecraft,但啟動器還是會嘗試啟動,請盡快將此問題報告給作者。
|
||||
launch.too_big_memory_alloc_64bit=您設定的記憶體大小過大,由於可能超過了32位元Java的記憶體分配限制,所以可能無法啟動遊戲,請將記憶體調至1024MB或更小,啟動器仍會嘗試啟動。
|
||||
launch.too_big_memory_alloc_free_space_too_low=您設定的記憶體大小過大,由於超過了系統記憶體大小%dMB,所以可能影響遊戲體驗或無法啟動遊戲,啟動器仍會嘗試啟動。
|
||||
launch.cannot_create_jvm=擷取到無法創建Java虛擬機,可能是Java參數有問題,可以在設定中開啟無參數模式啟動。
|
||||
launch.circular_dependency_versions=發現遊戲版本多次利用,請確認您的客戶端未被修改或修改導致出現此問題。
|
||||
launch.not_finished_downloading_libraries=未完成遊戲資料庫的下載,還要繼續啟動遊戲嗎?
|
||||
launch.not_finished_decompressing_natives=未能解壓遊戲執行庫,還要繼續啟動遊戲嗎?
|
||||
launch.wrong_javadir=錯誤的Java路徑,將自動重置為預設Java路徑。
|
||||
launch.exited_abnormally=遊戲非正常退出,請查看日誌資料,或聯繫他人尋求幫助。
|
||||
|
||||
launch.state.logging_in=登錄中
|
||||
launch.state.generating_launching_codes=正在生成啟動代碼
|
||||
launch.state.downloading_libraries=正在下載必要文件
|
||||
launch.state.decompressing_natives=正在釋放執行庫
|
||||
launch.state.waiting_launching=等待遊戲啟動
|
||||
|
||||
install.no_version=未找到要安裝的對應MC版本
|
||||
install.no_version_if_intall=未找到要安裝的對應MC版本,是否自動安裝需要的MC版本?
|
||||
install.not_refreshed=未重整列表
|
||||
install.download_list=下載列表
|
||||
|
||||
install.liteloader.get_list=獲取LiteLoader列表
|
||||
install.liteloader.install=安裝LiteLoader
|
||||
|
||||
install.forge.get_list=獲取Forge列表
|
||||
install.forge.install=安裝Forge
|
||||
install.forge.get_changelogs=獲取Forge更新記錄
|
||||
|
||||
install.optifine.install=安裝OptiFine
|
||||
install.optifine.get_list=獲取OptiFine列表
|
||||
install.optifine.get_download_link=獲取OptiFine下載地址
|
||||
|
||||
install.failed_forge=安裝Forge失敗
|
||||
install.failed_optifine=安裝OptiFine失敗
|
||||
install.failed_liteloader=安裝LiteLoader失敗
|
||||
install.failed_download_forge=下載Forge失敗
|
||||
install.failed_download_optifine=下載OptiFine失敗
|
||||
install.failed=安裝失敗
|
||||
install.success=安裝成功
|
||||
install.no_forge=沒有安裝Forge
|
||||
install.choose_forge=選擇你安裝的Forge版本
|
||||
install.version=版本
|
||||
install.mcversion=遊戲版本
|
||||
install.time=時間
|
||||
install.release_time=釋放時間
|
||||
install.type=類型
|
||||
install.please_refresh=如需使用自動安裝請點擊右側重整按鈕
|
||||
|
||||
crash.launcher=啟動器崩潰了!
|
||||
crash.minecraft=Minecraft崩潰了!
|
||||
|
||||
login.choose_charactor=請選擇您要使用的角色
|
||||
login.no_charactor=該帳號沒有角色
|
||||
login.your_password=您的密碼
|
||||
login.failed=登錄失敗:
|
||||
login.no_Player007=你還未設定用戶名!
|
||||
login.wrong_password=可能是您的用戶名或密碼錯誤
|
||||
login.invalid_username=無效的用戶名
|
||||
login.invalid_uuid_and_username=無效的UUID和用戶名
|
||||
login.invalid_password=無效的密碼
|
||||
login.invalid_access_token=無效的訪問權杖
|
||||
login.changed_client_token=伺服器回應已經修改客戶端權杖
|
||||
login.not_email=用戶名必須是郵箱
|
||||
login.type=登錄
|
||||
login.username=名字
|
||||
login.account=郵箱
|
||||
login.invalid_token=請嘗試登出並重新輸入密碼登錄
|
||||
login.no_valid_character=無有效的角色,自行到skinme.cc登陸並創建角色
|
||||
|
||||
proxy.username=帳戶
|
||||
proxy.password=密碼
|
||||
proxy.host=主機
|
||||
proxy.port=Port
|
||||
|
||||
login.failed.connect_authentication_server=無法連接認證伺服器,可能是網絡問題
|
||||
|
||||
login.profile.not_logged_in=無法修改遊戲資料同時未登錄
|
||||
login.profile.selected=無法修改遊戲資料. 你必須登出再返回.
|
||||
|
||||
login.methods.yggdrasil=正版登錄
|
||||
login.methods.offline=離線模式
|
||||
login.methods.no_method=沒有登入方式...
|
||||
|
||||
log.playername_null=玩家名為空,這代表著登錄方法出現問題
|
||||
|
||||
minecraft.no_selected_version=沒有選擇任何一個Minecraft版本
|
||||
minecraft.wrong_path=錯誤的Minecraft路徑,啟動器未找到設定的Minecraft路徑,請檢查。
|
||||
|
||||
operation.stopped=操作被強行終止
|
||||
operation.confirm_stop=真的要終止操作嗎?
|
||||
|
||||
ui.login.password=密碼
|
||||
ui.more=更多
|
||||
|
||||
crash.advice.UnsupportedClassVersionError=這可能是因為您的Java版本過於老舊,可以嘗試更換最新Java並在版本設定的Java路徑中設定.
|
||||
crash.advice.ConcurrentModificationException=這可能是因為您的Java版本高於Java 1.8.0_11導致的,可以嘗試卸載Java8安裝Java7。
|
||||
crash.advice.ClassNotFoundException=Minecraft不完整或Mod衝突,如果有未能下載的資料請下載成功後重試或是用戶端損壞請重試請重新製作用戶端或下載整合包解決問題,另可嘗試遊戲設定->(版本)管理->刪除庫資料解決問題
|
||||
crash.advice.NoSuchFieldError=Minecraft不完整或Mod衝突,如果有未能下載的資料請下載成功後重試或是用戶端損壞請重試請重新製作用戶端或下載整合包解決問題。
|
||||
crash.advice.LWJGLException=您的電腦不正常,可能需要使用驅動精靈或其他安裝器更新顯卡驅動。
|
||||
crash.advice.SecurityException=可能是您修改了minecraft.jar但未刪除META-INF資料夾的原因。請通過壓縮軟體刪除jar中的META-INF資料夾。
|
||||
crash.advice.OutOfMemoryError=記憶體溢出,您設定的Minecraft最大記憶體過小,請調大!
|
||||
crash.advice.otherwise=可能是Mod或其他問題。
|
||||
|
||||
crash.advice.OpenGL=可能是顯卡/聲卡驅動問題,也可能是Mod導致的問題。
|
||||
crash.advice.no_lwjgl=可能是遊戲依賴庫不完整或解壓依賴庫時出錯。可以通過下載整合包解決問題。
|
||||
|
||||
crash.advice.no=無建議。
|
||||
|
||||
crash.user_fault=您的系統或Java環境可能安裝不當導致本軟體崩潰,請檢查您的Java環境或您的電腦!可以嘗試重新安裝Java。
|
||||
crash.headless=如果您的操作系統是Linux,請注意不要使用OpenJDK,務必使用Oracle JDK,或嘗試添加-Djava.awt.headless=false參數,或檢查您的Xserver是否正常
|
||||
crash.NoClassDefFound=請確認HMCL本體是否完整
|
||||
|
||||
crash.error=您的Minecraft崩潰了。
|
||||
crash.main_class_not_found=找不到主類,可能是您的JSON資料填寫錯誤。無法啟動遊戲。可以通過下載整合包解決問題。
|
||||
crash.class_path_wrong=解析Class Path時出現錯誤,此錯誤本不應該發生。可能是啟動腳本錯誤,請仔細檢查啟動腳本。
|
||||
|
||||
ui.label.newProfileWindow.new_profile_name=新配置名:
|
||||
ui.label.newProfileWindow.copy_from=複製配置:
|
||||
ui.newProfileWindow.title=新建配置
|
||||
|
||||
ui.button.ok=確認
|
||||
ui.button.refresh=重整
|
||||
ui.button.run=啟動Minecraft
|
||||
ui.button.settings=
|
||||
ui.button.about=關於
|
||||
ui.button.others=其他
|
||||
ui.button.logout=登出
|
||||
ui.button.download=下載
|
||||
ui.button.retry=重試
|
||||
ui.button.delete=刪除
|
||||
ui.button.install=安裝
|
||||
ui.button.info=信息
|
||||
ui.button.save=保存
|
||||
ui.button.copy=複製
|
||||
ui.button.clear=清除
|
||||
ui.button.close=關閉
|
||||
ui.button.explore=瀏覽
|
||||
ui.button.test=測試
|
||||
ui.button.preview=預覽
|
||||
button.cancel=取消
|
||||
button.ok=確定
|
||||
button.yes=是
|
||||
button.no=不
|
||||
|
||||
ui.label.version=版本
|
||||
ui.label.password=密碼
|
||||
ui.label.profile=配置
|
||||
|
||||
ui.message.first_load=請在左邊輸入您的帳號
|
||||
ui.message.enter_password=請在左邊輸入您的密碼
|
||||
ui.message.launching=啟動中
|
||||
ui.message.making=生成中
|
||||
ui.message.sure_remove=真的要刪除配置%s嗎?
|
||||
ui.message.update_java=請更新您的Java
|
||||
ui.message.open_jdk=我們發現到您正在使用OpenJDK,這可能會導致很多介面問題,我們建議您更換Oracle JDK。
|
||||
|
||||
ui.label.settings=選項
|
||||
ui.label.crashing=<html>Hello Minecraft! Launcher遇到了無法處理的錯誤,請複制下列內容並通過mcbbs、貼吧或Minecraft Forum反饋bug。 </html>
|
||||
ui.label.crashing_out_dated=<html>Hello Minecraft! Launcher遇到了無法處理的錯誤,已檢測到您的啟動器不是最新版本,請更新後再試! </html>
|
||||
ui.label.failed_set=設定失敗:
|
||||
|
||||
download=下載
|
||||
download.mojang=官方
|
||||
download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/)
|
||||
download.rapid_data=RapidData (銳網雲計算, https://www.rapiddata.org/)
|
||||
download.not_200=下載失敗,回復碼
|
||||
download.failed=下載失敗
|
||||
download.successfully=下載完成
|
||||
download.source=下載源
|
||||
|
||||
message.error=錯誤
|
||||
message.cannot_open_explorer=無法打開資料管理器:
|
||||
message.cancelled=已取消
|
||||
message.info=提示
|
||||
message.loading=加載中...
|
||||
|
||||
folder.game=遊戲資料夾
|
||||
folder.mod=MOD資料夾
|
||||
folder.coremod=核心MOD資料夾
|
||||
folder.config=配置資料夾
|
||||
folder.resourcepacks=資源包資料夾
|
||||
folder.screenshots=截圖資料夾
|
||||
folder.saves=存檔資料夾
|
||||
|
||||
settings.tabs.game_download=遊戲下載
|
||||
settings.tabs.installers=自動安裝
|
||||
settings.tabs.assets_downloads=資源下載
|
||||
|
||||
settings=普通設定
|
||||
settings.explore=瀏覽
|
||||
settings.manage=管理
|
||||
settings.cannot_remove_default_config=不能刪除預設配置
|
||||
settings.max_memory=最大記憶體(MB)
|
||||
settings.java_dir=Java路徑
|
||||
settings.game_directory=遊戲路徑
|
||||
settings.dimension=遊戲窗口解析度
|
||||
settings.fullscreen=全螢幕
|
||||
settings.update_version=更新版本資料
|
||||
settings.run_directory=執行路徑(版本隔離)
|
||||
settings.physical_memory=實體記憶體大小
|
||||
settings.choose_javapath=選擇Java路徑
|
||||
settings.default=預設
|
||||
settings.custom=自定義
|
||||
settings.choose_gamedir=選擇遊戲路徑
|
||||
settings.failed_load=設定資料加載失敗,可能是升級了啟動器或被人工修改造成錯誤,是否清除?
|
||||
settings.test_game=測試遊戲
|
||||
|
||||
settings.type.none=缺少游戲版本,請切換到遊戲下載頁下載遊戲
|
||||
settings.type.global=<html><a href="">點擊此處切換為版本特定設定。該版本正在使用全局設定,修改以下設定會影響到其他使用全局設定的版本</a></html>
|
||||
settings.type.special=<html><a href="">點擊此處切換為全局設定。該版本正在使用版本特定設定,修改以下設定不會影響到其他版本設定</a></html>
|
||||
|
||||
modpack=懶人包
|
||||
modpack.choose=選擇要導入的遊戲懶人包資料,如果您希望更新懶人包,請輸入要更新的版本名
|
||||
modpack.export_error=導出失敗,可能是您的遊戲資料夾格式不正確或操作資料失敗
|
||||
modpack.export_finished=懶人包導出完成,參見
|
||||
modpack.included_launcher=懶人包已包含啟動器,可直接發布
|
||||
modpack.not_included_launcher=懶人包未包含啟動器,可使用本軟件的導入懶人包功能導入懶人包
|
||||
modpack.enter_name=給遊戲起個你喜歡的名字
|
||||
|
||||
modpack.task.save=導出懶人包
|
||||
modpack.task.install=導入懶人包
|
||||
modpack.task.install.error=安裝失敗,可能是懶人包格式不正確或操作資料失敗
|
||||
modpack.task.install.will=將會安裝懶人包:
|
||||
|
||||
modpack.wizard=導出懶人包嚮導
|
||||
modpack.wizard.step.1=基本設定
|
||||
modpack.wizard.step.1.title=設定懶人包的主要資訊
|
||||
modpack.wizard.step.initialization.include_launcher=包含啟動器
|
||||
modpack.wizard.step.initialization.exported_version=要導出的遊戲版本
|
||||
modpack.wizard.step.initialization.save=選擇要導出到的遊戲懶人包位置
|
||||
modpack.wizard.step.initialization.warning=<html>在製作懶人包前,請您確認您選擇的版本可以正常啟動,<br/>並保證您的Minecraft是正式版而非快照版,<br/>而且不應當將不允許非官方途徑傳播的Mod、材質包等納入整合包。<br/>懶人包會保存您目前的下載源設定</html>
|
||||
modpack.wizard.step.2=資料選擇
|
||||
modpack.wizard.step.2.title=選中你不想加到懶人包中的資料(夾)
|
||||
modpack.wizard.step.3=懶人包描述
|
||||
modpack.wizard.step.3.title=描述你要製作的懶人包。
|
||||
|
||||
modpack.desc=描述你要製作的懶人包,比如懶人包注意事項和更新記錄,支持Markdown(圖片請用網路圖片)。
|
||||
modpack.incorrect_format.no_json=懶人包格式錯誤,pack.json丟失
|
||||
modpack.incorrect_format.no_jar=懶人包格式錯誤,pack.json丟失jar欄位
|
||||
modpack.cannot_read_version=讀取遊戲版本失敗
|
||||
modpack.not_a_valid_location=不是一個有效懶人包位置
|
||||
modpack.name=懶人包名稱
|
||||
modpack.not_a_valid_name=不是一個有效的懶人包名稱
|
||||
|
||||
modpack.files.servers_dat=多人遊戲伺服器列表
|
||||
modpack.files.saves=遊戲存檔
|
||||
modpack.files.mods=Mod
|
||||
modpack.files.config=Mod設定檔
|
||||
modpack.files.liteconfig=Mod設定檔
|
||||
modpack.files.resourcepacks=資源包(材質包)
|
||||
modpack.files.options_txt=遊戲設定
|
||||
modpack.files.optionsshaders_txt=光影設定
|
||||
modpack.files.mods.voxelmods=VoxelMods設定,如小地圖
|
||||
modpack.files.dumps=NEI調試輸出
|
||||
modpack.files.scripts=MineTweaker配置
|
||||
modpack.files.blueprints=BuildCraft藍圖
|
||||
|
||||
mods=Mod管理
|
||||
mods.choose_mod=選擇模組
|
||||
mods.failed=添加失敗
|
||||
mods.add=添加
|
||||
mods.remove=刪除
|
||||
mods.default_information=<html>您可以拖動mod到列表中來添加mod,同時使用刪除鍵可快速刪除選中mod<br>選擇mod可以獲取mod資訊</html>
|
||||
|
||||
advancedsettings=進階設定
|
||||
advancedsettings.launcher_visible=啟動器可見性
|
||||
advancedsettings.debug_mode=偵錯模式
|
||||
advancedsettings.java_permanent_generation_space=記憶體永久保存區域/MB
|
||||
advancedsettings.jvm_args=Java虛擬機參數(不必填寫)
|
||||
advancedsettings.Minecraft_arguments=Minecraft額外參數(不必填寫)
|
||||
advancedsettings.launcher_visibility.close=遊戲啟動後結束啟動器
|
||||
advancedsettings.launcher_visibility.hide=遊戲啟動後隱藏啟動器
|
||||
advancedsettings.launcher_visibility.keep=保持啟動器可見
|
||||
advancedsettings.launcher_visibility.hide_reopen=隱藏啟動器並在遊戲結束後重新打開
|
||||
advancedsettings.game_dir.default=預設(.minecraft/)
|
||||
advancedsettings.game_dir.independent=各版本獨立(.minecraft/versions/<版本名>/,除assets,libraries)
|
||||
advancedsettings.no_jvm_args=不添加預設的JVM參數(使用Java9時必勾)
|
||||
advancedsettings.no_common=不使用公共路徑
|
||||
advancedsettings.java_args_default=啟動器預設添加的參數(請不要重複添加):-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml. ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
|
||||
advancedsettings.wrapper_launcher=前置指令(不必填寫,如optirun)
|
||||
advancedsettings.precall_command=啟動前執行命令(不必填寫,將在遊戲啟動前調用)
|
||||
advancedsettings.server_ip=直接進入伺服器IP (不必填寫,啟動遊戲後直接進入對應伺服器)
|
||||
advancedsettings.cancel_wrapper_launcher=取消包裹啟動器(出現奇怪問題時可嘗試使用,與調試模式衝突)
|
||||
advancedsettings.dont_check_game_completeness=不檢查遊戲完整性
|
||||
|
||||
mainwindow.show_log=查看日誌
|
||||
mainwindow.make_launch_script=生成啟動腳本
|
||||
mainwindow.make_launch_script_failed=生成啟動腳本失敗
|
||||
mainwindow.enter_script_name=輸入要生成腳本的資料名
|
||||
mainwindow.make_launch_succeed=啟動腳本已生成完畢:
|
||||
mainwindow.no_version=未找到任何版本,是否進入遊戲下載?
|
||||
|
||||
launcher.about=<html>預設背景圖感謝gamerteam提供。<br>關於作者:<br>百度ID:huanghongxun20<br>mcbbs:huanghongxun<br>Minecraft Forum ID: klkl6523<br>歡迎提交Bug哦<br/>Copyright (c) 2013-2016 huangyuhui.<br>免責聲明:Minecraft軟體版權歸Mojang AB所有,遊戲由於誤操作本啟動器而丟失數據的概不負責。<br>本啟動器在GPLv3協議下開源:http://github.com/huanghongxun/HMCL/ ,感謝issues和pull requests貢獻者<br>本軟體使用了基於Apache License 2.0的Gson項目,感謝貢獻者。</html>
|
||||
launcher.download_source=下載源
|
||||
launcher.background_location=背景地址
|
||||
launcher.common_location=公用資料夾
|
||||
launcher.exit_failed=強制退出失敗,可能是Forge 1.7.10及更高版本導致的,無法解決。
|
||||
launcher.versions_json_not_matched=版本%s格式不規範!該版本資料夾下有json:%s,是否更名這個資料來規範格式?
|
||||
launcher.versions_json_not_matched_cannot_auto_completion=版本%s缺失必要的版本資訊資料,是否刪除該版本?
|
||||
launcher.versions_json_not_formatted=版本%s資訊資料格式錯誤,是否重新下載?
|
||||
launcher.choose_bgpath=選擇背景路徑
|
||||
launcher.choose_commonpath=選擇公用路徑
|
||||
launcher.commpath_tooltip=<html><body>啟動器將所有遊戲資源跟執行庫檔案放在此處集中管理。如果遊戲資料夾有現成的將不會使用公用庫檔案。</body></html>
|
||||
launcher.background_tooltip=<html><body>啟動器預設使用自帶的背景<br />如果當前目錄有background.png,則會使用該資料作為背景<br />如果當前目錄有bg子目錄,則會隨機使用裡面的一張圖作為背景<br />如果該背景位址被修改,則會使用背景位址裡的一張圖作為背景<br />背景位址允許有多個位址,使用半形分號";"(不包含雙引號)分隔</body></html>
|
||||
launcher.update_launcher=檢查更新
|
||||
launcher.enable_shadow=啟用窗口陰影
|
||||
launcher.enable_animation=啟用動態效果
|
||||
launcher.enable_blur=啟用主介面模糊
|
||||
launcher.theme=主題
|
||||
launcher.proxy=代理
|
||||
launcher.decorated=啟用視窗邊框(Linux下可解決程式介面全灰問題)
|
||||
launcher.modpack=<html><a href="http://huangyuhui.duapp.com/link.php?type=modpack">整合包作者幫助</a></html>
|
||||
launcher.lang=語言
|
||||
launcher.restart=本介面選項需要重啟本啟動器生效
|
||||
launcher.log_font=日誌字體
|
||||
launcher.tab.general=通用
|
||||
launcher.tab.ui=介面
|
||||
launcher.tab.about=關於
|
||||
|
||||
launcher.title.game=遊戲設定
|
||||
launcher.title.main=主頁
|
||||
launcher.title.launcher=啟動器設定
|
||||
|
||||
versions.release=穩定版
|
||||
versions.snapshot=快照版
|
||||
versions.old_beta=測試版
|
||||
versions.old_alpha=遠古版
|
||||
|
||||
versions.manage.rename=重新命名該版本
|
||||
versions.manage.rename.message=請輸入要改成的名字
|
||||
versions.manage.remove=刪除該版本
|
||||
versions.manage.remove.confirm=真的要刪除版本
|
||||
versions.manage.redownload_json=重新下載版本配置(minecraft.json)
|
||||
versions.manage.redownload_assets_index=重新下載資源配置(assets_index.json)
|
||||
versions.mamage.remove_libraries=刪除所有庫檔
|
||||
|
||||
advice.os64butjdk32=您的系統是64-bit,但是Java是32位的,推薦您安裝64位Java.
|
||||
advice.java8=檢測到您未使用Java 8及更新版本,Java 8能使遊戲更流暢而且Minecraft 1.12及更新版本和很多Mod強制需要需要Java 8。
|
||||
|
||||
assets.download_all=下載資源資料
|
||||
assets.not_refreshed=資源列表未重整,請重整一次。
|
||||
assets.failed=獲取列表失敗,請重整重試。
|
||||
assets.list.1_7_3_after=1.7.3及以後
|
||||
assets.list.1_6=1.6(BMCLAPI)
|
||||
assets.unkown_type_select_one=無法解析遊戲版本:%s,請選擇一種資源類型下載。
|
||||
assets.type=資源類型
|
||||
assets.download=下載資源
|
||||
assets.no_assets=資源資料不完整,是否補全?
|
||||
assets.failed_download=下載資源資料失敗,可能導致沒有中文語系或音樂。
|
||||
|
||||
gamedownload.not_refreshed=遊戲下載列表未重整,請再重整一次。
|
||||
|
||||
taskwindow.title=任務
|
||||
taskwindow.single_progress=單項進度
|
||||
taskwindow.total_progress=總進度
|
||||
taskwindow.cancel=取消
|
||||
taskwindow.no_more_instance=可能同時打開了多個任務窗口,請不要多次打開!
|
||||
taskwindow.file_name=任務
|
||||
taskwindow.download_progress=進度
|
||||
|
||||
setupwindow.include_minecraft=導入遊戲資料夾
|
||||
setupwindow.find_in_configurations=導入完成,快到配置下拉清單中找新遊戲路徑吧!
|
||||
setupwindow.give_a_name=給新遊戲路徑起個名字吧
|
||||
setupwindow.new=新建
|
||||
setupwindow.no_empty_name=名字不可為空
|
||||
setupwindow.clean=清理遊戲資料
|
||||
|
||||
update.no_browser=無法打開瀏覽器,網址已經複製到剪貼版了,您可以手動Copy網址打開頁面
|
||||
update.should_open_link=是否更新?
|
||||
update.newest_version=最新版本為:
|
||||
update.failed=檢查更新失敗
|
||||
update.found=(發現更新!)
|
||||
|
||||
logwindow.terminate_game=結束遊戲進程
|
||||
logwindow.title=日誌
|
||||
logwindow.contact=聯繫我們
|
||||
logwindow.show_lines=顯示行數
|
||||
logwindow.search=查找
|
||||
|
||||
selector.choose=選擇
|
||||
|
||||
serverlistview.title=選擇伺服器
|
||||
serverlistview.name=名稱
|
||||
serverlistview.type=類型
|
||||
serverlistview.version=版本
|
||||
serverlistview.info=信息
|
||||
|
||||
minecraft.invalid=無效的
|
||||
minecraft.invalid_jar=無效的jar包
|
||||
minecraft.not_a_file=不是資料
|
||||
minecraft.not_found=找不到minecraft.jar
|
||||
minecraft.not_readable=minecraft.jar不可讀
|
||||
minecraft.modified=(修改的!)
|
||||
|
||||
color.red=紅色
|
||||
color.blue=藍色
|
||||
color.green=綠色
|
||||
color.orange=橙色
|
||||
color.dark_blue=深藍色
|
||||
color.purple=紫色
|
||||
|
||||
wizard.next_>=下一步 >
|
||||
wizard.next_mnemonic=下
|
||||
wizard.<_prev=< 上一步
|
||||
wizard.prev_mnemonic=上
|
||||
wizard.finish=完成
|
||||
wizard.finish_mnemonic=完
|
||||
wizard.cancel=取消
|
||||
wizard.cancel_mnemonic=取
|
||||
wizard.help=說明
|
||||
wizard.help_mnemonic=幫
|
||||
wizard.close=關閉
|
||||
wizard.close_mnemonic=關
|
||||
wizard.summary=概要
|
||||
wizard.failed=失敗
|
||||
wizard.steps=步驟
|
||||
|
||||
lang=繁體中文
|
||||
lang.default=跟隨系統語言
|
440
HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties
Normal file
440
HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties
Normal file
@ -0,0 +1,440 @@
|
||||
# Hello Minecraft! Launcher.
|
||||
# Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
#
|
||||
#author: huangyuhui
|
||||
launch.failed=启动失败
|
||||
launch.failed_creating_process=启动失败,在创建新进程时发生错误,可能是Java路径错误。
|
||||
launch.failed_sh_permission=为启动文件添加权限时发生错误
|
||||
launch.failed_packing_jar=在打包jar时发生错误
|
||||
launch.unsupported_launcher_version=对不起,本启动器现在可能不能启动这个版本的Minecraft,但启动器还是会尝试启动,请尽快将此问题报告给作者。
|
||||
launch.too_big_memory_alloc_64bit=您设置的内存大小过大,由于可能超过了32位Java的内存分配限制,所以可能无法启动游戏,请将内存调至1024MB或更小,启动器仍会尝试启动。
|
||||
launch.too_big_memory_alloc_free_space_too_low=您设置的内存大小过大,由于超过了系统内存大小%dMB,所以可能影响游戏体验或无法启动游戏,启动器仍会尝试启动。
|
||||
launch.cannot_create_jvm=截获到无法创建Java虚拟机,可能是Java参数有问题,可以在设置中开启无参数模式启动
|
||||
launch.circular_dependency_versions=发现游戏版本循环引用,请确认您的客户端未被修改或修改导致出现此问题。
|
||||
launch.not_finished_downloading_libraries=未完成游戏依赖库的下载,还要继续启动游戏吗?
|
||||
launch.not_finished_decompressing_natives=未能解压游戏本地库,还要继续启动游戏吗?
|
||||
launch.wrong_javadir=错误的Java路径,将自动重置为默认Java路径。
|
||||
launch.exited_abnormally=游戏非正常退出,请查看日志文件,或联系他人寻求帮助。
|
||||
|
||||
launch.state.logging_in=登录中
|
||||
launch.state.generating_launching_codes=正在生成启动代码
|
||||
launch.state.downloading_libraries=正在下载必要文件
|
||||
launch.state.decompressing_natives=正在释放本地文件
|
||||
launch.state.waiting_launching=等待游戏启动
|
||||
|
||||
install.no_version=未找到要安装的对应MC版本
|
||||
install.no_version_if_intall=未找到要安装的对应MC版本,是否自动安装需要的MC版本?
|
||||
install.not_refreshed=未刷新列表
|
||||
install.download_list=下载列表
|
||||
|
||||
install.liteloader.get_list=获取LiteLoader列表
|
||||
install.liteloader.install=安装LiteLoader
|
||||
|
||||
install.forge.get_list=获取Forge列表
|
||||
install.forge.install=安装Forge
|
||||
install.forge.get_changelogs=获取Forge更新记录
|
||||
|
||||
install.optifine.install=安装OptiFine
|
||||
install.optifine.get_list=获取OptiFine列表
|
||||
install.optifine.get_download_link=获取OptiFine下载地址
|
||||
|
||||
install.failed_forge=安装Forge失败
|
||||
install.failed_optifine=安装OptiFine失败
|
||||
install.failed_liteloader=安装LiteLoader失败
|
||||
install.failed_download_forge=下载Forge失败
|
||||
install.failed_download_optifine=下载OptiFine失败
|
||||
install.failed=安装失败
|
||||
install.success=安装成功
|
||||
install.no_forge=没有安装Forge
|
||||
install.choose_forge=选择你安装的Forge版本
|
||||
install.version=版本
|
||||
install.mcversion=游戏版本
|
||||
install.time=时间
|
||||
install.release_time=释放时间
|
||||
install.type=类型
|
||||
install.please_refresh=如需使用自动安装请点击右侧刷新按钮
|
||||
|
||||
crash.launcher=启动器崩溃了!
|
||||
crash.minecraft=Minecraft崩溃了!请认真阅读建议。
|
||||
|
||||
login.choose_charactor=请选择您要使用的角色
|
||||
login.no_charactor=该帐号没有角色
|
||||
login.your_password=您的密码
|
||||
login.failed=登录失败:
|
||||
login.no_Player007=你还未设置用户名!
|
||||
login.wrong_password=可能是您的用户名或密码错误
|
||||
login.invalid_username=无效的用户名
|
||||
login.invalid_uuid_and_username=无效的UUID和用户名
|
||||
login.invalid_password=无效的密码
|
||||
login.invalid_access_token=无效的访问令牌
|
||||
login.changed_client_token=服务器回应已经修改客户端令牌
|
||||
login.not_email=用户名必须是邮箱
|
||||
login.type=登录
|
||||
login.username=名字
|
||||
login.account=邮箱
|
||||
login.invalid_token=请尝试登出并重新输入密码登录
|
||||
login.no_valid_character=无有效的角色,自行到skinme.cc登陆并创建角色
|
||||
|
||||
proxy.username=账户
|
||||
proxy.password=密码
|
||||
proxy.host=主机
|
||||
proxy.port=端口
|
||||
|
||||
login.failed.connect_authentication_server=无法连接认证服务器,可能是网络问题
|
||||
|
||||
login.profile.not_logged_in=无法修改游戏资料同时未登录
|
||||
login.profile.selected=无法修改游戏资料. 你必须登出再返回.
|
||||
|
||||
login.methods.yggdrasil=正版登录
|
||||
login.methods.offline=离线模式
|
||||
login.methods.no_method=没有登入方式...
|
||||
|
||||
log.playername_null=玩家名为空,这代表着登录方法出现问题
|
||||
|
||||
minecraft.no_selected_version=没有选择任何一个Minecraft版本
|
||||
minecraft.wrong_path=错误的Minecraft路径,启动器未找到设定的Minecraft路径,请检查。
|
||||
|
||||
operation.stopped=操作被强行终止
|
||||
operation.confirm_stop=真的要终止操作吗?
|
||||
|
||||
ui.login.password=密码
|
||||
ui.more=更多
|
||||
|
||||
crash.advice.UnsupportedClassVersionError=这可能是因为您的Java版本过于老旧,可以尝试更换最新Java并在版本设置的Java路径中设置.
|
||||
crash.advice.ConcurrentModificationException=这可能是因为您的Java版本高于Java 1.8.0_11导致的,可以尝试卸载Java8安装Java7。
|
||||
crash.advice.ClassNotFoundException=Minecraft不完整或Mod冲突,如果有未能下载的文件请下载成功后重试或是客户端损坏请重试请重新制作客户端或下载整合包解决问题,另可尝试游戏设置->(版本)管理->删除库文件解决问题
|
||||
crash.advice.NoSuchFieldError=Minecraft不完整或Mod冲突,如果有未能下载的文件请下载成功后重试或是客户端损坏请重试请重新制作客户端或下载整合包解决问题。
|
||||
crash.advice.LWJGLException=您的电脑不正常,可能需要使用驱动精灵或其他安装器更新显卡驱动。
|
||||
crash.advice.SecurityException=可能是您修改了minecraft.jar但未删除META-INF文件夹的原因。请通过压缩软件删除jar中的META-INF文件夹。
|
||||
crash.advice.OutOfMemoryError=内存溢出,您设置的Minecraft最大内存过小,请调大!
|
||||
crash.advice.otherwise=可能是Mod或其他问题。
|
||||
|
||||
crash.advice.OpenGL=可能是显卡/声卡驱动问题,也可能是Mod导致的问题。
|
||||
crash.advice.no_lwjgl=可能是游戏依赖库不完整或解压依赖库时出错。可以通过下载整合包解决问题。
|
||||
|
||||
crash.advice.no=无建议。
|
||||
|
||||
crash.user_fault=您的系统或Java环境可能安装不当导致本软件崩溃,请检查您的Java环境或您的电脑!可以尝试重新安装Java。
|
||||
crash.headless=如果您的操作系统是Linux,请注意不要使用OpenJDK,务必使用Oracle JDK,或尝试添加-Djava.awt.headless=false参数,或检查您的Xserver是否正常
|
||||
crash.NoClassDefFound=请确认HMCL本体是否完整
|
||||
|
||||
crash.error=您的Minecraft崩溃了。
|
||||
crash.main_class_not_found=找不到主类,可能是您的JSON文件填写错误。无法启动游戏。可以通过下载整合包解决问题。
|
||||
crash.class_path_wrong=解析Class Path时出现错误,此错误本不应该发生。可能是启动脚本错误,请仔细检查启动脚本。
|
||||
|
||||
ui.label.newProfileWindow.new_profile_name=新配置名:
|
||||
ui.label.newProfileWindow.copy_from=复制配置:
|
||||
ui.newProfileWindow.title=新建配置
|
||||
|
||||
ui.button.ok=确认
|
||||
ui.button.refresh=刷新
|
||||
ui.button.run=启动Minecraft
|
||||
ui.button.settings=
|
||||
ui.button.about=关于
|
||||
ui.button.others=其他
|
||||
ui.button.logout=登出
|
||||
ui.button.download=下载
|
||||
ui.button.retry=重试
|
||||
ui.button.delete=删除
|
||||
ui.button.install=安装
|
||||
ui.button.info=信息
|
||||
ui.button.save=保存
|
||||
ui.button.copy=复制
|
||||
ui.button.clear=清除
|
||||
ui.button.close=关闭
|
||||
ui.button.explore=浏览
|
||||
ui.button.test=测试
|
||||
ui.button.preview=预览
|
||||
button.cancel=取消
|
||||
button.ok=确定
|
||||
button.yes=是
|
||||
button.no=不
|
||||
|
||||
ui.label.version=版本
|
||||
ui.label.password=密码
|
||||
ui.label.profile=配置
|
||||
|
||||
ui.message.first_load=请在左边输入您的账号
|
||||
ui.message.enter_password=请在左边输入您的密码
|
||||
ui.message.launching=启动中
|
||||
ui.message.making=生成中
|
||||
ui.message.sure_remove=真的要删除配置%s吗?
|
||||
ui.message.update_java=请更新您的Java
|
||||
ui.message.open_jdk=我们发现您正在使用OpenJDK,这会导致很多界面问题,我们建议您更换Oracle JDK。
|
||||
|
||||
ui.label.settings=选项
|
||||
ui.label.crashing=<html>Hello Minecraft!遇到了无法处理的错误,请复制下列内容并通过mcbbs、贴吧、Github或Minecraft Forum反馈bug。</html>
|
||||
ui.label.crashing_out_dated=<html>Hello Minecraft! Launcher遇到了无法处理的错误,已检测到您的启动器不是最新版本,请更新后再试!</html>
|
||||
ui.label.failed_set=设置失败:
|
||||
|
||||
download=下载
|
||||
download.mojang=官方
|
||||
download.BMCL=BMCLAPI (bangbang93, http://bmclapi.bangbang93.com/)
|
||||
download.rapid_data=RapidData (锐网云计算, https://www.rapiddata.org/)
|
||||
download.not_200=下载失败,回复码
|
||||
download.failed=下载失败
|
||||
download.successfully=下载完成
|
||||
download.source=下载源
|
||||
|
||||
message.error=错误
|
||||
message.cannot_open_explorer=无法打开文件管理器:
|
||||
message.cancelled=已取消
|
||||
message.info=提示
|
||||
message.loading=加载中...
|
||||
|
||||
folder.game=游戏文件夹
|
||||
folder.mod=MOD文件夹
|
||||
folder.coremod=核心MOD文件夹
|
||||
folder.config=配置文件夹
|
||||
folder.resourcepacks=资源包文件夹
|
||||
folder.screenshots=截图文件夹
|
||||
folder.saves=存档文件夹
|
||||
|
||||
settings.tabs.game_download=游戏下载
|
||||
settings.tabs.installers=自动安装
|
||||
settings.tabs.assets_downloads=资源下载
|
||||
|
||||
settings=普通设置
|
||||
settings.explore=浏览
|
||||
settings.manage=管理
|
||||
settings.cannot_remove_default_config=不能删除默认配置
|
||||
settings.max_memory=最大内存/MB
|
||||
settings.java_dir=Java路径
|
||||
settings.game_directory=游戏路径
|
||||
settings.dimension=游戏窗口分辨率
|
||||
settings.fullscreen=全屏
|
||||
settings.update_version=更新版本文件
|
||||
settings.run_directory=运行路径(版本隔离)
|
||||
settings.physical_memory=物理内存大小
|
||||
settings.choose_javapath=选择Java路径
|
||||
settings.default=默认
|
||||
settings.custom=自定义
|
||||
settings.choose_gamedir=选择游戏路径
|
||||
settings.failed_load=设置文件加载失败,可能是升级了启动器或被人工修改造成错误,是否清除?
|
||||
settings.test_game=测试游戏
|
||||
|
||||
settings.type.none=缺少游戏版本,请切换到游戏下载页下载游戏
|
||||
settings.type.global=<html><a href="">点击此处切换为版本特定设置。该版本正在使用全局设置,修改以下设置会影响到其他使用全局设置的版本</a></html>
|
||||
settings.type.special=<html><a href="">点击此处切换为全局设置。该版本正在使用版本特定设置,修改以下设置不会影响到其他版本设置</a></html>
|
||||
|
||||
modpack=整合包
|
||||
modpack.choose=选择要导入的游戏整合包文件,如果您希望更新整合包,请输入要更新的版本名
|
||||
modpack.export_error=导出失败,可能是您的游戏文件夹格式不正确或操作文件失败
|
||||
modpack.export_finished=整合包导出完成,参见
|
||||
modpack.included_launcher=整合包已包含启动器,可直接发布
|
||||
modpack.not_included_launcher=整合包未包含启动器,可使用本软件的导入整合包功能导入整合包
|
||||
modpack.enter_name=给游戏起个你喜欢的名字
|
||||
|
||||
modpack.task.save=导出整合包
|
||||
modpack.task.install=导入整合包
|
||||
modpack.task.install.error=安装失败,可能是整合包格式不正确或操作文件失败
|
||||
modpack.task.install.will=将会安装整合包:
|
||||
|
||||
modpack.wizard=导出整合包向导
|
||||
modpack.wizard.step.1=基本设置
|
||||
modpack.wizard.step.1.title=设置整合包的主要信息
|
||||
modpack.wizard.step.initialization.include_launcher=包含启动器
|
||||
modpack.wizard.step.initialization.exported_version=要导出的游戏版本
|
||||
modpack.wizard.step.initialization.save=选择要导出到的游戏整合包位置
|
||||
modpack.wizard.step.initialization.warning=<html>在制作整合包前,请您确认您选择的版本可以正常启动,<br/>并保证您的Minecraft是正式版而非快照版,<br/>而且不应当将不允许非官方途径传播的Mod、材质包等纳入整合包。<br/>整合包会保存您目前的下载源设置</html>
|
||||
modpack.wizard.step.2=文件选择
|
||||
modpack.wizard.step.2.title=选中你不想加到整合包中的文件(夹)
|
||||
modpack.wizard.step.3=整合包描述
|
||||
modpack.wizard.step.3.title=描述你要制作的整合包
|
||||
|
||||
modpack.desc=描述你要制作的整合包,比如整合包注意事项和更新记录,支持Markdown(图片请用网络图片)。
|
||||
modpack.incorrect_format.no_json=整合包格式错误,pack.json丢失
|
||||
modpack.incorrect_format.no_jar=整合包格式错误,pack.json丢失jar字段
|
||||
modpack.cannot_read_version=读取游戏版本失败
|
||||
modpack.not_a_valid_location=不是一个有效整合包位置
|
||||
modpack.name=整合包名称
|
||||
modpack.not_a_valid_name=不是一个有效的整合包名称
|
||||
|
||||
modpack.files.servers_dat=多人游戏服务器列表
|
||||
modpack.files.saves=游戏存档
|
||||
modpack.files.mods=Mod
|
||||
modpack.files.config=Mod配置文件
|
||||
modpack.files.liteconfig=Mod配置文件
|
||||
modpack.files.resourcepacks=资源包(材质包)
|
||||
modpack.files.options_txt=游戏设定
|
||||
modpack.files.optionsshaders_txt=光影设定
|
||||
modpack.files.mods.voxelmods=VoxelMods配置,如小地图
|
||||
modpack.files.dumps=NEI调试输出
|
||||
modpack.files.scripts=MineTweaker配置
|
||||
modpack.files.blueprints=BuildCraft蓝图
|
||||
|
||||
mods=Mod管理
|
||||
mods.choose_mod=选择模组
|
||||
mods.failed=添加失败
|
||||
mods.add=添加
|
||||
mods.remove=删除
|
||||
mods.default_information=<html><font color=#c0392b>安装Mod前你需要确保已安装Forge或LiteLoader!<br>您可以从资源管理器拖动mod文件到列表中来添加mod,同时使用删除键可快速删除选中mod<br>点掉mod前面的勾可禁用mod,不会加载;选择mod可以获取mod信息</font></html>
|
||||
|
||||
advancedsettings=高级设置
|
||||
advancedsettings.launcher_visible=启动器可见性
|
||||
advancedsettings.debug_mode=调试模式
|
||||
advancedsettings.java_permanent_generation_space=内存永久保存区域(不必填写,MB)
|
||||
advancedsettings.jvm_args=Java虚拟机参数(不必填写)
|
||||
advancedsettings.Minecraft_arguments=Minecraft额外参数(不必填写)
|
||||
advancedsettings.launcher_visibility.close=游戏启动后结束启动器
|
||||
advancedsettings.launcher_visibility.hide=游戏启动后隐藏启动器
|
||||
advancedsettings.launcher_visibility.keep=保持启动器可见
|
||||
advancedsettings.launcher_visibility.hide_reopen=隐藏启动器并在游戏结束后重新打开
|
||||
advancedsettings.game_dir.default=默认(.minecraft/)
|
||||
advancedsettings.game_dir.independent=各版本独立(.minecraft/versions/<版本名>/,除assets,libraries)
|
||||
advancedsettings.no_jvm_args=不添加默认的JVM参数(使用Java9时必勾)
|
||||
advancedsettings.no_common=不使用公共路径
|
||||
advancedsettings.java_args_default=启动器默认添加的参数(请不要重复添加):-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -XX:MaxPermSize=???m -Xmx???m -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
|
||||
advancedsettings.wrapper_launcher=前置指令(不必填写,如optirun)
|
||||
advancedsettings.precall_command=启动前执行命令(不必填写,将在游戏启动前调用)
|
||||
advancedsettings.server_ip=直入服务器ip地址(不必填写,启动游戏后直接进入对应服务器)
|
||||
advancedsettings.cancel_wrapper_launcher=取消包裹启动器(出现奇怪问题时可尝试使用,与调试模式冲突)
|
||||
advancedsettings.dont_check_game_completeness=不检查游戏完整性
|
||||
|
||||
mainwindow.show_log=查看日志
|
||||
mainwindow.make_launch_script=生成启动脚本
|
||||
mainwindow.make_launch_script_failed=生成启动脚本失败
|
||||
mainwindow.enter_script_name=输入要生成脚本的文件名
|
||||
mainwindow.make_launch_succeed=启动脚本已生成完毕:
|
||||
mainwindow.no_version=未找到任何版本,是否进入游戏下载?
|
||||
|
||||
launcher.about=<html>默认背景图感谢gamerteam提供。<br/>关于作者:<br/>百度ID:huanghongxun20<br/>mcbbs:huanghongxun<br/>Minecraft Forum ID: klkl6523<br/>欢迎提交Bug哦<br/>Copyright (c) 2013-2017 huangyuhui.<br/>免责声明:Minecraft软件版权归Mojang AB所有,使用本软件产生的版权问题本软件制作方概不负责。<br/>本启动器在GPLv3协议下开源:https://github.com/huanghongxun/HMCL/ ,感谢issues和pull requests贡献者<br/>本软件使用了基于Apache License 2.0的Gson项目,感谢贡献者。</html>
|
||||
launcher.download_source=下载源
|
||||
launcher.background_location=背景地址
|
||||
launcher.common_location=公共文件夹
|
||||
launcher.exit_failed=强制退出失败,可能是Forge 1.7.10及更高版本导致的,无法解决。
|
||||
launcher.versions_json_not_matched=版本%s格式不规范!该版本文件夹下有json:%s,是否更名这个文件来规范格式?
|
||||
launcher.versions_json_not_matched_cannot_auto_completion=版本%s缺失必要的版本信息文件,是否删除该版本?
|
||||
launcher.versions_json_not_formatted=版本%s信息文件格式错误,是否重新下载?
|
||||
launcher.choose_bgpath=选择背景路径
|
||||
launcher.choose_commonpath=选择公共路径
|
||||
launcher.commpath_tooltip=<html><body>启动器将所有游戏资源及依赖库文件放于此集中管理,如果游戏文件夹内有现成的将不会使用公共库文件</body></html>
|
||||
launcher.background_tooltip=<html><body>启动器默认使用自带的背景<br />如果当前目录有background.png,则会使用该文件作为背景<br />如果当前目录有bg子目录,则会随机使用里面的一张图作为背景<br />如果该背景地址被修改,则会使用背景地址里的一张图作为背景<br />背景地址允许有多个地址,使用半角分号";"(不包含双引号)分隔</body></html>
|
||||
launcher.update_launcher=检查更新
|
||||
launcher.enable_shadow=启用窗口阴影
|
||||
launcher.enable_animation=启用动态效果
|
||||
launcher.enable_blur=启用主界面模糊
|
||||
launcher.theme=主题
|
||||
launcher.proxy=代理
|
||||
launcher.decorated=启用窗口边框(Linux下可解决程序界面全灰问题)
|
||||
launcher.modpack=<html><a href="http://huangyuhui.duapp.com/link.php?type=modpack">整合包作者帮助</a></html>
|
||||
launcher.lang=语言
|
||||
launcher.restart=本界面选项需要重启本启动器生效
|
||||
launcher.log_font=日志字体
|
||||
launcher.tab.general=通用
|
||||
launcher.tab.ui=界面
|
||||
launcher.tab.about=关于
|
||||
|
||||
launcher.title.game=游戏设置
|
||||
launcher.title.main=主页
|
||||
launcher.title.launcher=启动器设置
|
||||
|
||||
versions.release=稳定版
|
||||
versions.snapshot=快照版
|
||||
versions.old_beta=测试版
|
||||
versions.old_alpha=远古版
|
||||
|
||||
versions.manage.rename=重命名该版本
|
||||
versions.manage.rename.message=请输入要改成的名字
|
||||
versions.manage.remove=删除该版本
|
||||
versions.manage.remove.confirm=真的要删除版本
|
||||
versions.manage.redownload_json=重新下载版本配置(minecraft.json)
|
||||
versions.manage.redownload_assets_index=重新下载资源配置(assets_index.json)
|
||||
versions.mamage.remove_libraries=删除所有库文件
|
||||
|
||||
advice.os64butjdk32=您的系统是64位的但是Java是32位的,推荐您安装64位Java.
|
||||
advice.java8=检测到您未使用Java 8及更新版本,Java 8能使游戏更流畅而且Minecraft 1.12及更新版本和很多Mod强制需要需要Java 8。
|
||||
|
||||
assets.download_all=下载资源文件
|
||||
assets.not_refreshed=资源列表未刷新,请刷新一次。
|
||||
assets.failed=获取列表失败,请刷新重试。
|
||||
assets.list.1_7_3_after=1.7.3及以后
|
||||
assets.list.1_6=1.6(BMCLAPI)
|
||||
assets.unkown_type_select_one=无法解析游戏版本:%s,请选择一种资源类型下载。
|
||||
assets.type=资源类型
|
||||
assets.download=下载资源
|
||||
assets.no_assets=资源文件不完整,是否补全?
|
||||
assets.failed_download=下载资源文件失败,可能导致没有中文和声音。
|
||||
|
||||
gamedownload.not_refreshed=游戏下载列表未刷新,请再刷新一次。
|
||||
|
||||
taskwindow.title=任务
|
||||
taskwindow.single_progress=单项进度
|
||||
taskwindow.total_progress=总进度
|
||||
taskwindow.cancel=取消
|
||||
taskwindow.no_more_instance=可能同时打开了多个任务窗口,请不要多次打开!
|
||||
taskwindow.file_name=任务
|
||||
taskwindow.download_progress=进度
|
||||
|
||||
setupwindow.include_minecraft=导入游戏文件夹
|
||||
setupwindow.find_in_configurations=导入完成,快到配置下拉框中找新游戏路径吧!
|
||||
setupwindow.give_a_name=给新游戏路径起个名字吧
|
||||
setupwindow.new=新建
|
||||
setupwindow.no_empty_name=名字不可为空
|
||||
setupwindow.clean=清理游戏文件
|
||||
|
||||
update.no_browser=无法打开浏览器,网址已经复制到剪贴板了,您可以手动粘贴网址打开页面
|
||||
update.should_open_link=是否更新?
|
||||
update.newest_version=最新版本为:
|
||||
update.failed=检查更新失败
|
||||
update.found=(发现更新!)
|
||||
|
||||
logwindow.terminate_game=结束游戏进程
|
||||
logwindow.title=日志
|
||||
logwindow.contact=联系我们
|
||||
logwindow.show_lines=显示行数
|
||||
logwindow.search=查找
|
||||
|
||||
selector.choose=选择
|
||||
|
||||
serverlistview.title=选择服务器
|
||||
serverlistview.name=名称
|
||||
serverlistview.type=类型
|
||||
serverlistview.version=版本
|
||||
serverlistview.info=信息
|
||||
|
||||
minecraft.invalid=无效的
|
||||
minecraft.invalid_jar=无效的jar包
|
||||
minecraft.not_a_file=不是文件
|
||||
minecraft.not_found=找不到minecraft.jar
|
||||
minecraft.not_readable=minecraft.jar不可读
|
||||
minecraft.modified=(修改的!)
|
||||
|
||||
color.red=红色
|
||||
color.blue=蓝色
|
||||
color.green=绿色
|
||||
color.orange=橙色
|
||||
color.dark_blue=深蓝色
|
||||
color.purple=紫色
|
||||
|
||||
wizard.next_>=下一步 >
|
||||
wizard.next_mnemonic=下
|
||||
wizard.<_prev=< 上一步
|
||||
wizard.prev_mnemonic=上
|
||||
wizard.finish=完成
|
||||
wizard.finish_mnemonic=完
|
||||
wizard.cancel=取消
|
||||
wizard.cancel_mnemonic=取
|
||||
wizard.help=帮助
|
||||
wizard.help_mnemonic=帮
|
||||
wizard.close=关闭
|
||||
wizard.close_mnemonic=关
|
||||
wizard.summary=概要
|
||||
wizard.failed=失败
|
||||
wizard.steps=步骤
|
||||
|
||||
lang=简体中文
|
||||
lang.default=跟随系统语言
|
2
HMCL/src/main/resources/assets/svg/folder-open.fxml
Normal file
2
HMCL/src/main/resources/assets/svg/folder-open.fxml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<javafx.scene.shape.SVGPath fill="black" content="M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z" />
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Hello Minecraft! Launcher.
|
||||
* Copyright (C) 2017 huangyuhui <huanghongxun2008@126.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
*/
|
||||
package org.jackhuang.hmcl.auth
|
||||
|
||||
import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilAccount
|
||||
|
||||
object Accounts {
|
||||
val ACCOUNTS = mapOf(
|
||||
"offline" to OfflineAccount,
|
||||
"yggdrasil" to YggdrasilAccount
|
||||
)
|
||||
}
|
@ -24,6 +24,9 @@ import org.jackhuang.hmcl.task.Task
|
||||
import org.jackhuang.hmcl.task.then
|
||||
import java.net.Proxy
|
||||
|
||||
/**
|
||||
* This class has no state.
|
||||
*/
|
||||
class DefaultDependencyManager(override val repository: DefaultGameRepository, override var downloadProvider: DownloadProvider, val proxy: Proxy = Proxy.NO_PROXY)
|
||||
: AbstractDependencyManager(repository) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user