From 7b9f564f7490b8f8ad2020517416a61c27610396 Mon Sep 17 00:00:00 2001 From: Kevin Vilyan <146146416+Kev-Vily@users.noreply.github.com> Date: Sat, 4 Jul 2026 07:20:28 +0700 Subject: [PATCH 01/11] update bundle id (final) (#12147) * Add files via upload * decided to revision some texts * unit fact activation * update hideSpawns & revision campaign introduction * minor revision * game \-\ permainan * data pacher new * addition * finish the messages * revision * screenshot error * steamFriendsOnly * Update bundle_id_ID.properties * Some New Settings * hmph --- core/assets/bundles/bundle_id_ID.properties | 236 ++++++++++---------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index cda4736c58..be524c0916 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -19,7 +19,7 @@ clipboardcopy = Server ini ingin menyalin teks ke papan klip Anda. Apakah Anda y linkfail = Gagal membuka tautan!\nURL disalin ke papan klip. screenshot = Tangkapan layar tersimpan di {0} screenshot.invalid = Peta terlalu besar, tidak cukup memori untuk menangkap layar. -screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large. +screenshot.error = Gagal mengambil tangkapan layar. Kemungkinan karena perangkat Anda tidak mendukung tangkapan layar sebesar ini. gameover = Permainan Selesai gameover.disconnect = Jaringan Terputus gameover.pvp = Tim[accent] {0}[] menang! @@ -58,11 +58,11 @@ mods.github.open-release = Laman Rilis mods.browser.sortdate = Urut berdasarkan waktu mods.browser.sortstars = Urut berdasarkan bintang -export.file = Ekspor Berkas -import.file = Impor Berkas +export.file = Ekspor File +import.file = Impor File copy.clipboard = Salin ke papan klip import.clipboard = Impor dari papan klip -workshop.browse = Browse Workshop +workshop.browse = Cari di Workshop workshop.share = Bagikan di Workshop schematic = Skematik @@ -89,11 +89,11 @@ schematic.tagdelconfirm = Ingin menghapus tanda ini? schematic.tagexists = Tanda tersebut sudah ada. stats = Statistik -stats.wave = Gelombang Terkalahkan -stats.unitsCreated = Unit Terbentuk +stats.wave = Gelombang yang Dikalahkan +stats.unitsCreated = Unit yang Diproduksi stats.enemiesDestroyed = Musuh yang Dihancurkan stats.built = Jumlah Blok yang Dibangun -stats.destroyed = Jumlah Blok Dihancurkan Musuh +stats.destroyed = Jumlah Blok yang Dihancurkan Musuh stats.deconstructed = Jumlah Blok yang Dihancurkan Pemain stats.playtime = Waktu Bermain @@ -164,7 +164,7 @@ mod.incompatiblegame = [red]Game telah Kedaluwarsa mod.incompatiblemod = [red]Tidak Kompatibel mod.blacklisted = [red]Tidak Didukung mod.unmetdependencies = [red]Dependensi Tidak Terpenuhi -mod.erroredcontent = [scarlet]Konten Mengalami Kesalahan +mod.erroredcontent = [scarlet]Konten Bermasalah mod.circulardependencies = [red]Dependensi Sirkular mod.incompletedependencies = [red]Dependensi Tidak Lengkap @@ -179,8 +179,8 @@ mod.incompletedependencies.details = Mod ini gagal memuat karena kekurangan depe mod.requiresversion = Memerlukan versi game: [red]{0} mod.errors = Terjadi kesalahan saat memuat konten. -mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly. -mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain. +mod.errors.map = [scarlet]Terjadi kesalahan saat memuat konten peta. Semua konten kustom telah dinonaktifkan.[]\nPeta ini kemungkinan besar tidak akan berfungsi dengan benar. +mod.noerrorplay = [scarlet]Anda memiliki mod yang bermasalah.[] Nonaktifkan mod tersebut atau perbaiki kesalahannya sebelum bermain. mod.enable = Aktifkan mod.requiresrestart = Game akan ditutup untuk mengaktifkan perubahan mod. mod.reloadrequired = [scarlet]Mulai Ulang Diperlukan @@ -218,8 +218,8 @@ available = Teknologi baru tersedia! unlock.incampaign = < Buka dalam kampanye untuk detail lebih lanjut > campaign.select = Pilih untuk Memulai Kampanye campaign.none = [lightgray]Pilih planet untuk memulai.\nPilihan ini dapat diubah setiap saat. -campaign.erekir = Konten baru yang disempurnakan. Kemajuan kampanye lebih linier.\n\nKualitas peta yang tinggi dan pengalaman lebih mantap. -campaign.serpulo = Konten lawas; pengalaman klasik. Lebih terbuka dan banyak konten.\n\nPeta dan mekanisme kampanye yang berpotensi tidak seimbang. Kurang halus +campaign.erekir = Konten baru; lebih berkualitas. Proses kampanye yang lebih mulus.\n\nLebih sulit. Peta berkualitas lebih tinggi dan pengalaman keseluruhan yang lebih baik. +campaign.serpulo = Konten lawas; pengalaman klasik. Lebih terbuka, lebih banyak konten.\n\nPeta dan mekanisme kampanye yang berpotensi tidak seimbang. Konten kurang berkualitas. campaign.difficulty = Tingkat Kesulitan campaign.rework.title = Pemberitahuan Perubahan Kampanye campaign.rework.serpulo = [accent]⚠ Kampanye Serpulo telah dikerjakan ulang.[]\n\nPosisi sektor dan tingkat kesulitan telah berubah. Anda mungkin mengalami masalah terkait dengan data simpanan kampanye yang tersisa dari tata letak sektor yang lama.\n\nUntuk pengalaman yang lebih mulus, pertimbangkan untuk menghapus simpanan kampanye Anda di pengaturan. @@ -287,7 +287,7 @@ trace.playername = Nama pemain: [accent]{0} trace.ip = IP: [accent]{0} trace.id = ID: [accent]{0} trace.language = Bahasa: [accent]{0} -trace.mobile = Klien Mobile: [accent]{0} +trace.mobile = Klien Seluler: [accent]{0} trace.modclient = Klien Kustom: [accent]{0} trace.times.joined = Total Bergabung: [accent]{0} trace.times.kicked = Total Dikeluarkan: [accent]{0} @@ -331,10 +331,10 @@ cantconnect = Gagal bergabung ke permainan ([accent]{0}[]). connecting = [accent]Menghubungkan... reconnecting = [accent]Menghubungkan kembali... -connecting.establish = [accent]Establishing connection... -receiving.world = [accent]Receiving world data ({0})... -receiving.assets = [accent]Receiving assets ({0})... -receiving.assets.fail = Error occurred while receiving assets. +connecting.establish = [accent]Membangun koneksi... +receiving.world = [accent]Menerima data dunia ({0})... +receiving.assets = [accent]Menerima aset ({0})... +receiving.assets.fail = Terjadi kesalahan saat menerima aset. server.port = Port: server.invalidport = Nomor port tidak valid! @@ -352,10 +352,10 @@ save.export = Ekspor Simpanan save.import.invalid = [accent]Simpanan ini tidak valid! save.import.fail = [crimson]Gagal mengimpor simpanan: [accent]{0} save.export.fail = [crimson]Gagal mengekspor simpanan: [accent]{0} -save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it. -save.assets.missing = Missing Assets -save.assets.missing.list = Asset List... -save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well. +save.export.needsload = [scarlet]⚠ File simpanan ini berisi aset yang terintegrasi.[]\nMuat file simpanan ini sebelum mengekspornya. +save.assets.missing = Aset Hilang +save.assets.missing.list = Daftar Aset... +save.assets.missing.info = [scarlet]⚠ File simpanan ini berisi aset yang hilang![]\n\n[lightgray]Hal ini kemungkinan besar terjadi karena file simpanan tidak diekspor dengan benar.\n[lightgray]Saat berbagi file simpanan, ekspor file simpanan hanya melalui antarmuka pengguna dalam game. Jangan menyalin file simpanan dari folder mindusty secara langsung.\n[lightgray]Jika pemindahan file diperlukan, pastikan folder [accent]assetCache[] juga disalin. save.import = Impor Simpanan save.newslot = Simpan nama: save.rename = Ganti nama @@ -517,72 +517,72 @@ editor.shiftx = Shift X editor.shifty = Shift Y asset.patch = Patch -asset.content = Content -asset.bundle = Translation Bundle -asset.image = Image -asset.sound = Sound -asset.music = Music +asset.content = Konten +asset.bundle = Paket Terjemahan +asset.image = Gambar +asset.sound = Suara +asset.music = Musik content.unit = Unit -content.item = Item -content.liquid = Liquid -content.block = Block +content.item = Bahan +content.liquid = Zat Cair +content.block = Blok content.planet = Planet -content.weather = Weather -content.status = Status Effect +content.weather = Cuaca +content.status = Efek Status patch.set = Patchset: {0} -patch.none = [lightgray]Tidak ada patchset yang dimuat. -patch.errors = Daftar Patchset Error +patch.none = [lightgray]Tidak ada patchset yang ditemukan. +patch.errors = Patchset Error patch.importerror = Gagal mengimpor patchset patch.delete.confirm = Apakah Anda yakin ingin menghapus patchset ini? -patch.path = Path: +patch.path = Jalur: patch.fields = {0} bidang -bundle.lines = {0} lines +bundle.lines = {0} baris -images = Images -asset.title = Data Patches & Assets -asset.guide = Usage Guide -asset.bundle.exists = A bundle with path '{0}' already exists. -asset.importzip = Import Asset Zip -asset.exportzip = Export Asset Zip -asset.image.importzip = Import Zip -asset.image.exportzip = Export Zip -asset.clearall = Clear All -asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc. -asset.imports = Import Results -asset.imported = [accent]{0} assets imported. -asset.import.none = No valid asset files found in zip archive. -asset.content.errors = Content Errors -asset.content.add = Add Content -asset.content.type = Type: -asset.content.exists = [red]Content with that name already exists! -asset.content.badname = [red]Invalid name! Most symbols are not allowed. -asset.content.import.file = Import File -asset.content.import.clipboard = Import From Clipboard -asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0} -asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save. -asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file. -asset.delete.confirm = Are you sure you want to delete this asset? -asset.images = Data Patch Images -asset.image.imports = Import Results -asset.image.imported = [accent]{0} images imported. -asset.image.none = No valid PNG files found in zip archive. -asset.image.error = [red]The following errors were encountered:[] -asset.image.clearall.confirm = Are you certain that you wish to clear all images? -asset.image.info = Image Info -asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}. -asset.image.exists = An image with that path/name already exists:\n[lightgray]{0} -asset.image.delete.confirm = Are you certain that you wish to delete this image? -asset.image.name = [accent]File Name: [lightgray]{0} -asset.image.region.name = [accent]Region Name: [lightgray]{0} -asset.image.path = [accent]Path: [lightgray]{0} -asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0} -asset.image.size = [accent]Size: [lightgray]{0}x{1} -asset.image.filesize = [accent]File Size: [lightgray]{0} -asset.image.packfailed = [red]⚠ Failed to pack sprite![] -asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area. +images = Gambar +asset.title = Patch Data & Aset +asset.guide = Panduan Penggunaan +asset.bundle.exists = Paket terjemahan dengan jalur '{0}' sudah ada. +asset.importzip = Impor Aset Zip +asset.exportzip = Ekspor Aset Zip +asset.image.importzip = Impor Zip +asset.image.exportzip = Ekspor Zip +asset.clearall = Hapus Semua +asset.clearall.confirm = Apakah Anda yakin ingin menghapus [red]semua[] aset dari peta ini?\nTermasuk gambar, audio, konten, dll. +asset.imports = Impor Hasil +asset.imported = [accent]{0} aset diimpor. +asset.import.none = Tidak ada file aset yang valid di dalam arsip zip. +asset.content.errors = Konten Bermasalah +asset.content.add = Tambahkan Konten +asset.content.type = Tipe: +asset.content.exists = [red]Konten dengan nama tersebut sudah ada! +asset.content.badname = [red]Nama tidak valid! Penggunaan simbol tidak diizinkan. +asset.content.import.file = Impor File +asset.content.import.clipboard = Impor Dari Papan Klip +asset.exists = Tipe aset tersebut dengan jalur/nama yang sama sudah ada:\n[lightgray]{0} +asset.broken = File aset ini tidak dapat ditemukan.\nHal ini mungkin disebabkan oleh data yang diimpor tidak tepat, atau simpanan yang diekspor telah rusak. +asset.audio.invalid = File audio tidak dapat dimuat.\nPastikan formatnya adalah OGG atau MP3 yang valid. +asset.delete.confirm = Apakah Anda yakin ingin menghapus aset ini? +asset.images = Gambar Patch Data +asset.image.imports = Impor Hasil +asset.image.imported = [accent]{0} gambar diimpor. +asset.image.none = Tidak ada file PNG yang valid di dalam arsip zip. +asset.image.error = [red]Berikut kesalahan yang ditemukan:[] +asset.image.clearall.confirm = Apakah Anda yakin ingin menghapus semua gambar? +asset.image.info = Info Gambar +asset.image.toolarge = Gambar ([lightgray]{0}x{1}[]) terlalu besar. Ukuran maksimum {2}x{3}. +asset.image.exists = Gambar dengan jalur/nama tersebut sudah ada:\n[lightgray]{0} +asset.image.delete.confirm = Apakah Anda yakin ingin menghapus gambar ini? +asset.image.name = [accent]Nama File: [lightgray]{0} +asset.image.region.name = [accent]Nama Wilayah: [lightgray]{0} +asset.image.path = [accent]Jalur: [lightgray]{0} +asset.image.env = [accent]Penggunaan Atlas lingkungan: [lightgray]{0} +asset.image.size = [accent]Ukuran: [lightgray]{0}x{1} +asset.image.filesize = [accent]Ukuran File: [lightgray]{0} +asset.image.packfailed = [red]⚠ Gagal mengemas sprite![] +asset.image.packfailed.env = Hal ini kemungkinan disebabkan oleh kurangnya ruang dalam atlas lingkungan.\Perlu dicatat bahwa total area untuk sprite lingkungan dibatasi sebesar 512x512. workshop = Workshop waves.title = Gelombang @@ -628,7 +628,7 @@ all = Semua editor.default = [lightgray] details = Detail... edit = Sunting -edit.menu = Edit... +edit.menu = Sunting... variables = Variabel logic.error.toolong = Kode prosesor terlalu panjang (Batas: {0} byte terkompresi, panjang sebenarnya: {1} byte) logic.clear.confirm = Apakah Anda yakin ingin menghapus semua kode dari prosesor ini? @@ -771,8 +771,8 @@ locales.showsame = Tampilkan properti yang memiliki nilai yang sama di lokasi be locales.viewproperty = Lihat di semua paket lokal locales.viewing = Melihat properti "{0}" locales.addicon = Tambahkan Ikon -locales.property.name = nama -locales.property.text = teks +locales.property.name = 'nama string' +locales.property.text = 'isi teks' width = Lebar: height = Tinggi: @@ -794,7 +794,7 @@ editor = Penyunting mapeditor = Penyunting Peta abandon = Tinggalkan -abandon.text = Zona ini dan semua sumber daya di dalamnya akan berada di tangan musuh. +abandon.text = Sektor ini dan semua sumber daya di dalamnya akan berada di tangan musuh. locked = Terkunci complete = [lightgray]Selesaikan: requirement.wave = Raih gelombang {0} dalam {1} @@ -898,7 +898,7 @@ campaign.complete = [accent]Selamat.\n\nMusuh di {0} telah dikalahkan.\n[lightgr sectorlist = Sektor sectorlist.attacked = {0} sedang diserang sectors.unexplored = [lightgray]Belum Ditelusuri -sectors.attempts = Percobaan: +sectors.attempts = Percobaan ke: sectors.resources = Sumber Daya: sectors.production = Produksi: sectors.export = Ekspor: @@ -1027,7 +1027,7 @@ sector.weatheredChannels.description = [gray][tujuan opsional][]\nSistem selat i sector.mycelialBastion.description = Kompleks benteng ini terletak jauh di dalam wilayah spora, mengancam sektor-sektor tetangga dengan unit-unit yang canggih.\n\nSerang kompleks tersebut. Dapatkan teknologi di dalamnya. Manfaatkan unit yang dapat melewati semua medan. sector.littoralShipyard.description = Terletak di ujung terjauh laut tengah, fasilitas produksi unit laut ini memiliki teknologi untuk membangun unit-unit canggih.\n\nHancurkan fasilitas ini, dan gunakan teknologinya untuk membantu penyelesaian tujuan akhir. -sector.onset.name = Serangan Awal +sector.onset.name = Awal sector.aegis.name = Aegis sector.lake.name = Danau sector.intersect.name = Perempatan @@ -1092,11 +1092,11 @@ settings.resetKey = Atur Ulang settings.controls = Kontrol settings.game = Permainan settings.sound = Suara -settings.dev = Developer Options +settings.dev = Opsi Pengembang settings.graphics = Grafik -settings.cleardata = Bersihkan Data Permainan... +settings.cleardata = Bersihkan Data Game... settings.clear.confirm = Apakah Anda yakin ingin membersihkan data ini?\nApa yang sudah dilakukan tidak dapat dibatalkan! -settings.clearall.confirm = [scarlet]PERINGATAN![]\nIni akan membersihkan semua data permainan, termasuk simpanan, peta, teknologi yang terbuka, dan keybind.\nSetelah Anda menekan 'ok', permainan akan membersihkan semua data dan keluar secara otomatis. +settings.clearall.confirm = [scarlet]PERINGATAN![]\nIni akan membersihkan semua data game, termasuk simpanan, peta, teknologi yang terbuka, dan keybind.\nSetelah Anda menekan 'ok', game akan membersihkan semua data dan keluar secara otomatis. settings.clearsaves.confirm = Apakah Anda yakin ingin membersihkan semua simpanan? settings.clearsaves = Bersihkan Simpanan settings.clearresearch = Bersihkan Riset Kampanye @@ -1142,7 +1142,7 @@ stat.targetsground = Target Darat stat.crushdamage = Damage Benturan stat.legsplashdamage = Damage Percikan Kaki stat.itemsmoved = Kecepatan Barang -stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS. +stat.itemsmoved.info = Kecepatan barang seringkali tidak mulus dan berpengaruh dengan FPS. stat.launchtime = Selang Waktu Peluncuran stat.shootrange = Jarak stat.size = Ukuran @@ -1256,10 +1256,10 @@ ability.stat.repairspeed = [stat]{0}/dtk[lightgray] kecepatan perbaikan ability.stat.deflectchance = [stat]{0}%[lightgray] peluang defleksi ability.stat.slurpheal = [stat]{0}[lightgray] nyawa/unit cair ability.stat.cooldown = [stat]{0} dtk[lightgray] waktu pendinginan -ability.stat.maxtargets = [stat]{0}[lightgray] target maksimal +ability.stat.maxtargets = [stat]{0}[lightgray] target maksimum ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] jumlah jenis perbaikan yang sama ability.stat.damagereduction = [stat]{0}%[lightgray] pengurangan damage -ability.stat.minspeed = [stat]{0} ubin/dtk[lightgray] kecepatan minimal +ability.stat.minspeed = [stat]{0} ubin/dtk[lightgray] kecepatan minimum ability.stat.duration = [stat]{0} dtk[lightgray] durasi ability.stat.buildtime = [stat]{0} dtk[lightgray] waktu membangun @@ -1377,7 +1377,7 @@ category.crafting = Pemasukan/Pengeluaran category.function = Fungsi category.optional = Pilihan Peningkatan setting.alwaysmusic.name = Selalu Putar Musik -setting.alwaysmusic.description = Saat diaktifkan, musik akan selalu diputar berulang-ulang di dalam game. \nSaat dinonaktifkan, musik hanya diputar secara acak. +setting.alwaysmusic.description = Saat diaktifkan, musik akan selalu diputar berulang-ulang di dalam game.\nSaat dinonaktifkan, musik hanya diputar secara acak. setting.skipcoreanimation.name = Lewati Animasi Peluncuran atau Pendaratan Inti setting.landscape.name = Kunci Pemandangan setting.shadows.name = Bayangan @@ -1420,11 +1420,11 @@ setting.seconds = {0} detik setting.milliseconds = {0} milidetik setting.fullscreen.name = Layar Penuh setting.fps.name = Tampilkan FPS & Ping -setting.console.name = Hidupkan Konsol -setting.drawhitboxes.name = Display Hitboxes -setting.showperformance.name = Display Performance Metrics -setting.buildingtimestep.name = Fixed Building Timestep -setting.buildingtimestep.description = Runs buildings on a fixed timestep with constant delta,\nas opposed to every frame with variable delta.\nIf buildings cannot be updated fast enough, the game will slow down.\nIf you don't know what that means, don't touch this option. +setting.console.name = Aktifkan Konsol +setting.drawhitboxes.name = Tampilkan Hitbox +setting.showperformance.name = Tampilkan Metrik Performa +setting.buildingtimestep.name = Interval Waktu Pembangunan Tetap +setting.buildingtimestep.description = Menjalankan pembangunan pada interval waktu tetap dengan delta konstan,\nberbeda dengan setiap frame dengan delta variabel.\nJika bangunan tidak dapat diperbarui dengan cukup cepat, permainan akan melambat.\nJika Anda tidak tahu apa artinya, jangan aktifkan opsi ini. setting.smoothcamera.name = Kamera Halus setting.detach-camera.name = Kamera Bebas setting.detach-camera.description = Jika diaktifkan, kamera tidak akan mengikuti unit pemain.\nPengaturan ini dapat ditautkan ke keybind. @@ -1439,7 +1439,7 @@ setting.atmosphere.name = Tampilkan Atmosfer Planet setting.drawlight.name = Gambar Kegelapan atau Pencahayaan setting.ambientvol.name = Volume Sekeliling setting.mutemusic.name = Bisukan Musik -setting.sfxvol.name = Volume Suara Efek +setting.sfxvol.name = Volume Efek Suara setting.mutesound.name = Bisukan Suara setting.communityservers.name = Ambil Daftar Server Komunitas setting.savecreate.name = Otomatis Menyimpan @@ -1455,10 +1455,10 @@ setting.hidedisplays.name = Sembunyikan Tampilan Logika setting.macnotch.name = Sesuaikan tampilan dengan batas layar setting.macnotch.description = Mulai ulang diperlukan untuk menerapkan perubahan -steam.friendsonly = Hanya Teman -steam.friendsonly.tooltip = Mengatur bisa atau tidaknya teman Steam bergabung ke permainanmu.\nMenghapus centang pada kotak ini akan membuat permainan Anda menjadi publik - siapa saja dapat bergabung. +steam.friendsonly = Hanya Teman Steam +steam.friendsonly.tooltip = Hanya teman Steam yang dapat bergabung ke permainan Anda.\nDengan menghapus centang pada kotak ini, permainan Anda akan menjadi publik - siapa pun dapat bergabung. setting.maxmagnificationmultiplierpercent.name = Jarak Kamera Minimum -setting.minmagnificationmultiplierpercent.name = Jarak Kamera Maksimal +setting.minmagnificationmultiplierpercent.name = Jarak Kamera Maksimum setting.minmagnificationmultiplierpercent.description = Nilai yang tinggi dapat menyebabkan masalah performa. public.beta = Ingat bahwa game dalam versi beta tidak dapat membuat lobi publik. uiscale.reset = Skala UI telah diubah.\nTekan "OK" untuk mengonfirmasi.\n[scarlet]Kembali dan keluar di[accent] {0}[] pengaturan... @@ -1512,7 +1512,7 @@ keybind.unit_command_enter_payload.name = Perintah Unit: Masuk ke Muatan keybind.unit_command_loop_payload.name = Perintah Unit: Perulangan Transfer Unit keybind.rebuild_select.name = Membangun Ulang Wilayah -keybind.schematic_select.name = Pilih Daerah +keybind.schematic_select.name = Pilih Wilayah keybind.schematic_menu.name = Menu Skematik keybind.schematic_flip_x.name = Balik Skematik Horizontal keybind.schematic_flip_y.name = Balik Skematik Vertikal @@ -1556,7 +1556,7 @@ keybind.research.name = Riset keybind.block_info.name = Info Blok keybind.chat.name = Pesan keybind.player_list.name = Daftar Pemain -keybind.console.name = Papan Konsol +keybind.console.name = Konsol keybind.rotate.name = Putar keybind.rotateplaced.name = Putar yang telah Dibangun (Tekan dan Tahan) keybind.toggle_menus.name = Aktifkan Menu @@ -1566,10 +1566,10 @@ keybind.chat_scroll.name = Gulir Pesan keybind.chat_mode.name = Ubah Mode Pesan keybind.drop_unit.name = Turunkan Unit keybind.zoom_minimap.name = Perbesar Peta Kecil -keybind.detach_camera.name = Atur Kamera Bebas -keybind.teleport_cursor.name = Teleport To Cursor (Sandbox) -keybind.debug_hitboxes.name = Atur Debug Hitbox -keybind.performance_metrics.name = Toggle Performance Metrics +keybind.detach_camera.name = Aktifkan Kamera Bebas +keybind.teleport_cursor.name = Teleportasi ke Kursor (Khusus Mode Sandbox) +keybind.debug_hitboxes.name = Aktifkan Debug Hitbox +keybind.performance_metrics.name = Aktifkan Metrik Performa mode.help.title = Deskripsi mode permainan mode.survival.name = Bertahan Hidup mode.survival.description = Mode normal. Sumber daya terbatas dan gelombang otomatis.\n[gray]Memerlukan zona pendaratan musuh di dalam peta untuk bermain. @@ -1627,7 +1627,7 @@ rules.enemyCheat = Sumber Daya Musuh Tak Terbatas rules.blockhealthmultiplier = Penggandaan Nyawa Blok rules.blockdamagemultiplier = Penggandaan Damage Blok rules.unitfactoryactivation = Penundaan Aktivasi Pabrik Unit -rules.unitfactoryactivation.objective = Unit Factories Activating: {0} +rules.unitfactoryactivation.objective = Pabrik Unit Aktif dalam: {0} rules.unitbuildspeedmultiplier = Penggandaan Kecepatan Produksi Unit rules.unitcostmultiplier = Penggandaan Bahan Produksi Unit rules.unithealthmultiplier = Penggandaan Nyawa Unit @@ -1669,7 +1669,7 @@ rules.invasions = Invasi Sektor Musuh rules.legacylaunchpads = Mekanisme Alas Peluncur Warisan rules.legacylaunchpads.info = Mengizinkan penggunaan alas peluncur tanpa alas pendaratan, seperti pada versi 7.0. landingpad.legacy.disabled = [scarlet]\ue815 Nonaktifkan[lightgray] (Alas Peluncur Warisan diaktifkan) -rules.hidespawns = Hide Enemy Spawns +rules.hidespawns = Sembunyikan Zona Pendaratan Musuh rules.randomwaveai = Gelombang AI yang Tak Terduga rules.pauseDisabled = Nonaktifkan Jeda rules.fire = Api @@ -1682,14 +1682,14 @@ rules.weather.always = Selalu rules.weather.duration = Durasi: rules.randomwaveai.info = Membuat unit yang muncul dalam gelombang menargetkan struktur bangunan secara acak\nalih-alih menyerang inti atau generator pembangkit listrik secara langsung. -rules.placerangecheck.info = Mencegah pemain menempatkan apa pun di dekat bangunan musuh.\nKetika mencoba memasang menara, jangkauannya akan ditingkatkan sehingga menara tidak akan bisa menjangkau musuh. +rules.placerangecheck.info = Mencegah pemain menempatkan apa pun di dekat bangunan musuh.\nKetika mencoba membangun menara, jangkauannya akan ditingkatkan sehingga menara tidak akan bisa menjangkau bangunan musuh. rules.onlydepositcore.info = Mencegah unit menyimpan bahan ke dalam bangunan apa pun kecuali inti. database-category.item = Bahan database-category.liquid = Zat Cair database-category.unit = Unit database-category.block = Blok -database-category.status = Status Efek +database-category.status = Efek Status database-category.sector = Sektor database-category.team = Faksi @@ -2248,7 +2248,7 @@ hint.respawn = Untuk muncul kembali seperti awal, tekan [accent][[V][]. hint.respawn.mobile = Anda telah mengambil alih kendali dari sebuah unit atau bangunan. Untuk muncul kembali sebagai unit inti, [accent]ketuk avatar di kiri atas[]. hint.desktopPause = Tekan [accent][[Spasi][] untuk menjeda dan menghentikan jeda permainan. hint.breaking = [accent]Klik Kanan[] dan seret untuk menghancurkan blok. -hint.breaking.mobile = Aktifkan :hammer: [accent]palu[] di kanan bawah dan ketuk untuk menghancurkan blok.\n\nTahan jari Anda untuk beberapa saat lalu seret pada bagian yang dipilih untuk menghancurkannya. +hint.breaking.mobile = Gunakan :hammer: [accent]palu[] di kanan bawah dan ketuk untuk menghancurkan blok.\n\nTahan jari Anda untuk beberapa saat lalu seret pada bagian yang dipilih untuk menghancurkannya. hint.blockInfo = Lihat informasi dari sebuah blok dengan memilihnya di [accent]menu bangunan[], lalu pilih tombol [accent][[?][] di sebelah kanan. hint.derelict = Bangunan berwarna [accent]abu-abu[] adalah sisa-sisa dari markas lama yang hancur dan tidak dapat berfungsi kembali.\n\nBangunan tersebut dapat [accent]didekonstruksi[] menjadi sumber daya, atau diperbaiki. hint.research = Gunakan tombol :tree: [accent]Pohon Teknologi[] untuk meriset teknologi baru. @@ -2756,7 +2756,7 @@ lst.getblock = Mendapatkan data ubin di lokasi manapun. lst.setblock = Menentukan data ubin di lokasi manapun. lst.spawnunit = Munculkan unit pada tempat yang ditentukan. lst.spawnbullet = Munculkan peluru pada tempat yang ditentukan. -lst.applystatus = Menerapkan atau menghapus status efek dari sebuah unit. +lst.applystatus = Menerapkan atau menghapus efek status dari sebuah unit. lst.weathersense = Periksa apakah jenis cuaca aktif. lst.weatherset = Tetapkan suatu keadaan pada jenis cuaca saat ini. lst.spawnwave = Simulasikan adanya gelombang pada lokasi acak.\nTidak akan ditambahkan pada jumlah gelombang keseluruhan. @@ -2773,10 +2773,10 @@ lst.getflag = Periksa apakah ada global flag yang ditentukan. lst.setprop = Menetapkan properti unit atau bangunan. lst.effect = Buat efek partikel. lst.sync = Sinkronkan variabel di seluruh jaringan.\nHanya dipanggil paling banyak 10 kali per detik. -lst.playsound = Memutar suara. \nVolume dan kontrol suara dapat berupa nilai global, atau dihitung berdasarkan posisi. -lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[]. +lst.playsound = Memutar suara.\nVolume dan kontrol suara dapat berupa nilai global, atau dihitung berdasarkan posisi. +lst.playmusic = Memutar musik berdasarkan nama, misalnya [accent]"game1"[].\nJika [accent]interrupt[] bernilai true, musik yang sedang diputar sebelumnya akan dihentikan.\nMemutar dengan musik [accent]null[] dan [accent]interrupt[] diatur ke true akan menghentikan musik yang sedang diputar saat ini.\nPerhatikan bahwa penamaan musik dari patch data harus diawali dengan [accent]dp-[]. lst.makemarker = Buat penanda logika baru di dunia.\nSebuah ID untuk mengidentifikasi penanda ini harus disediakan.\nPenanda saat ini dibatasi hingga 20.000 per dunia. -lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi Membuat Marker. +lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi [accent]Make Marker[].\nNilai [accent]null[] diabaikan. lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di penyunting peta, cek [accent]Info Peta > Paket Lokal[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu. lst.query = Memerintahkan unit/bangunan di area yang ditentukan.\nHasil dikeluarkan ke [accent]@queries[].\nHasil dapat dibaca dari [accent]@queries[] menggunakan instruksi [accent]Read[] dan sebuah indeks.\nPanjang [accent]@queries[] dapat diukur menggunakan [accent]@size[] sebagai parameter. @@ -2809,10 +2809,10 @@ lglobal.@thisy = Koordinat Y dari blok yang mengeksekusi suatu kode lglobal.@links = Jumlah total blok yang ditautkan ke prosesor ini lglobal.@ipt = Kecepatan eksekusi dari prosesor dalam intruksi per tick (60 tick = 1 detik) -lglobal.@unitCount = Jumlah total dari tipe pada konten unit di dalam game; digunakan dengan intruksi pencarian -lglobal.@blockCount = Jumlah total dari tipe pada konten blok di dalam game; digunakan dengan intruksi pencarian -lglobal.@itemCount = Jumlah total dari tipe pada konten item di dalam game; digunakan dengan intruksi pencarian -lglobal.@liquidCount = Jumlah total dari tipe pada konten cairan di dalam game; digunakan dengan intruksi pencarian +lglobal.@unitCount = Jumlah total dari tipe pada konten unit di dalam permainan; digunakan dengan intruksi pencarian +lglobal.@blockCount = Jumlah total dari tipe pada konten blok di dalam permainan; digunakan dengan intruksi pencarian +lglobal.@itemCount = Jumlah total dari tipe pada konten item di dalam permainan; digunakan dengan intruksi pencarian +lglobal.@liquidCount = Jumlah total dari tipe pada konten cairan di dalam permainan; digunakan dengan intruksi pencarian lglobal.@server = True jika kode dijalankan di server atau di singleplayer, false sebaliknya lglobal.@client = True jika kode dijalankan dalam sebuah klien disambungkan ke sebuah server From 86683d60cd56b6fe1170d7152b9e7323d0e3981b Mon Sep 17 00:00:00 2001 From: summoner Date: Sat, 4 Jul 2026 02:20:43 +0200 Subject: [PATCH 02/11] Translation: Update bundle_hu.properties (#12138) * Translation: Update bundle_hu.properties Translate new strings * Translation: Update bundle_hu.properties Translate new string * Translation: Update bundle_hu.properties Translate new string Follow the changes of the english bundle * Translation: Update bundle_hu.properties Fix typo * Translation: Update bundle_hu.properties Translate new strings Follow the changes of the english bundle Fix translation * Translation: Update bundle_hu.properties Translate new strings * Translation: Update bundle_hu.properties Follow the changes of the english bundle * Translation: Update bundle_hu.properties Translate new strings fix translation Follow the changes of the english bundle * Translation: Update bundle_hu.properties Translate new strings * Tranlastion: Update bundle_hu.properties translate new strings --- core/assets/bundles/bundle_hu.properties | 190 +++++++++++------------ 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index e80e4d7a74..11e1166519 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -19,7 +19,7 @@ clipboardcopy = Ez a kiszolgáló szöveget szeretne másolni a vágólapra. Biz linkfail = Nem sikerült megnyitni a hivatkozást!\nA webcím a vágólapra lett másolva. screenshot = Képernyőkép mentve ide: {0} screenshot.invalid = A pálya túl nagy és nem áll rendelkezésre elegendő memória a képernyőkép elkészítéséhez. -screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large. +screenshot.error = Nem sikerült képernyőképet készíteni. Valószínűleg ez az eszköz nem támogat ilyen nagy méretű képernyőképeket. gameover = A játéknak vége gameover.disconnect = A kapcsolat megszakadt gameover.pvp = A(z)[accent] {0}[] csapat nyert! @@ -179,7 +179,7 @@ mod.incompletedependencies.details = Ez a mod nem tölthető be az érvénytelen mod.requiresversion = Szükséges játékverzió: [red]{0}[] mod.errors = Hiba történt a tartalom betöltésekor. -mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly. +mod.errors.map = mod.errors.map = [scarlet]Hiba történt a pálya tartalmának betöltésekor. Minden egyéni tartalom le lett tiltva.[]\nEz a pálya valószínűleg nem fog megfelelően működni. mod.noerrorplay = [red]Hibákkal rendelkező modjaid vannak.[] Kapcsold ki, vagy javítsd ki őket a játék elindítása előtt. mod.enable = Engedélyezés mod.requiresrestart = A játék most kilép, hogy a módosítások érvénybe lépjenek a következő indításkor. @@ -331,10 +331,10 @@ cantconnect = Nem sikerült kapcsolódni a(z) ([accent]{0}[]) játékhoz. connecting = [accent]Kapcsolódás… reconnecting = [accent]Újrakapcsolódás… -connecting.establish = [accent]Establishing connection... -receiving.world = [accent]Receiving world data ({0})... -receiving.assets = [accent]Receiving assets ({0})... -receiving.assets.fail = Error occurred while receiving assets. +connecting.establish = [accent]Kapcsolat létrehozása… +receiving.world = [accent]Világadatok fogadása ({0})… +receiving.assets = [accent]Összetevők fogadása ({0})… +receiving.assets.fail = Hiba történt az összetevők fogadásakor. server.port = Port: server.invalidport = Érvénytelen port! @@ -352,10 +352,10 @@ save.export = Mentés exportálása save.import.invalid = [accent]Ez a mentés érvénytelen! save.import.fail = [scarlet]Nem sikerült importálni a(z) [accent]{0}[] mentést save.export.fail = [scarlet]Nem sikerült exportálni a(z) [accent]{0}[] mentést -save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it. -save.assets.missing = Missing Assets -save.assets.missing.list = Asset List... -save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well. +save.export.needsload = [scarlet]⚠ Ez a mentés beágyazott összetevőket tartalmaz.[]\nTöltsd be ezt a mentést az exportálás előtt. +save.assets.missing = Hiányzó összetevők +save.assets.missing.list = Összetevők listája… +save.assets.missing.info = [scarlet]⚠ Ebből a mentésből több összetevő is hiányzik![]\n\n[lightgray]Ennek valószínűleg az az oka, hogy a mentési fájl nem lett megfelelően exportálva.\n[lightgray]Mentések megosztásakor csak a játékon belüli felületen keresztül exportálj. Ne másold közvetlenül a mentési fájlokat.\n[lightgray]Ha a fájlok áthelyezése elengedhetetlen, győződj meg arról, hogy az [accent]assetCache[] mappa is át lett másolva. save.import = Mentés importálása save.newslot = Mentés neve: save.rename = Átnevezés @@ -462,7 +462,7 @@ workshop.update = Elem frissítése workshop.error = Hiba történt a Steam Műhely részleteinek lekérdezésekor: {0} map.publish.confirm = Biztosan közzéteszed ezt a pályát?\n\n[lightgray]Győződj meg arról, hogy elfogadtad a Steam Műhely EULA-t, máskülönben a pályáid nem jelennek meg! workshop.menu = Válaszd ki, hogy mit szeretnél csinálni ezzel az elemmel. -workshop.info = Eleminformációk +workshop.info = Elem adatai changelog = Változáslista (nem kötelező): updatedesc = Cím és leírás felülírása eula = Steam EULA @@ -482,7 +482,7 @@ editor.brush = Méret editor.openin = Megnyitás a szerkesztőben editor.oregen = Ércelőállítás editor.oregen.info = Ércelőállítás: -editor.mapinfo = Pályainformációk +editor.mapinfo = Pálya adatai editor.author = Szerző: editor.description = Leírás: editor.nodescription = A megosztás előtt a pályának rendelkeznie kell egy legalább 4 karakteres leírással. @@ -516,73 +516,73 @@ editor.filters.planetselect = Bolygóválasztás editor.shiftx = X-eltolás editor.shifty = Y-eltolás -asset.patch = Patch -asset.content = Content -asset.bundle = Translation Bundle -asset.image = Image -asset.sound = Sound -asset.music = Music +asset.patch = Javítócsomag +asset.content = Tartalom +asset.bundle = Fordítási csomag +asset.image = Kép +asset.sound = Hang +asset.music = Zene -content.unit = Unit -content.item = Item -content.liquid = Liquid -content.block = Block -content.planet = Planet -content.weather = Weather -content.status = Status Effect +content.unit = Egység +content.item = Tárgy +content.liquid = Folyadék +content.block = Blokk +content.planet = Bolygó +content.weather = Időjárás +content.status = Állapothatás -patch.set = Patchset: {0} +patch.set = Javítócsomag-készlet: {0} patch.none = [lightgray]Nincsenek javítócsomagok betöltve. patch.errors = Javítócsomag-hibák patch.importerror = Nem sikerült importálni a javítócsomagot patch.delete.confirm = Biztosan törölni szeretnéd ezt a javítócsomagot? -patch.path = Path: +patch.path = Útvonal: patch.fields = {0} mező -bundle.lines = {0} lines +bundle.lines = {0} sor -images = Images -asset.title = Data Patches & Assets -asset.guide = Usage Guide -asset.bundle.exists = A bundle with path '{0}' already exists. -asset.importzip = Import Asset Zip -asset.exportzip = Export Asset Zip -asset.image.importzip = Import Zip -asset.image.exportzip = Export Zip -asset.clearall = Clear All -asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc. -asset.imports = Import Results -asset.imported = [accent]{0} assets imported. -asset.import.none = No valid asset files found in zip archive. -asset.content.errors = Content Errors -asset.content.add = Add Content -asset.content.type = Type: -asset.content.exists = [red]Content with that name already exists! -asset.content.badname = [red]Invalid name! Most symbols are not allowed. -asset.content.import.file = Import File -asset.content.import.clipboard = Import From Clipboard -asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0} -asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save. -asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file. -asset.delete.confirm = Are you sure you want to delete this asset? -asset.images = Data Patch Images -asset.image.imports = Import Results -asset.image.imported = [accent]{0} images imported. -asset.image.none = No valid PNG files found in zip archive. -asset.image.error = [red]The following errors were encountered:[] -asset.image.clearall.confirm = Are you certain that you wish to clear all images? -asset.image.info = Image Info -asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}. -asset.image.exists = An image with that path/name already exists:\n[lightgray]{0} -asset.image.delete.confirm = Are you certain that you wish to delete this image? -asset.image.name = [accent]File Name: [lightgray]{0} -asset.image.region.name = [accent]Region Name: [lightgray]{0} -asset.image.path = [accent]Path: [lightgray]{0} -asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0} -asset.image.size = [accent]Size: [lightgray]{0}x{1} -asset.image.filesize = [accent]File Size: [lightgray]{0} -asset.image.packfailed = [red]⚠ Failed to pack sprite![] -asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area. +images = Képek +asset.title = Javítócsomag-adatok és összetevők +asset.guide = Használati útmutató +asset.bundle.exists = Már létezik csomag a(z) „{0}” útvonalon. +asset.importzip = Összetevő importálása ZIP-fájlból +asset.exportzip = Összetevő exportálása ZIP-fájlba +asset.image.importzip = Importálás ZIP-fájlból +asset.image.exportzip = Exportálás ZIP-fájlba +asset.clearall = Összes törlése +asset.clearall.confirm = Biztosan törölni szeretnél [red]minden[] összetevőt erről a pályáról?\nEbbe beletartoznak a képek, a hangok, a tartalmak stb. +asset.imports = Importálás eredménye +asset.imported = [accent]{0} összetevő importálva. +asset.import.none = Nem találhatók érvényes összetevő-fájlok a ZIP-archívumban. +asset.content.errors = Tartalmi hibák +asset.content.add = Tartalom hozzáadása +asset.content.type = Típus: +asset.content.exists = [red]Már létezik tartalom ezzel a névvel! +asset.content.badname = [red]Érvénytelen név! A legtöbb szimbólum nem engedélyezett. +asset.content.import.file = Fájl importálása +asset.content.import.clipboard = Importálás a vágólapról +asset.exists = Már létezik egy ilyen típusú, azonos útvonalú/nevű összetevő:\n[lightgray]{0} +asset.broken = Nem található ez az összetevőfájl.\nEzt az adatok helytelen importálása vagy egy hibásan exportált mentés okozhatja. +asset.audio.invalid = Nem sikerült betölteni a hangfájlt.\nGyőződj meg arról, hogy érvényes OGG- vagy MP3-fájlt adtál meg. +asset.delete.confirm = Biztosan törölni szeretnéd ezt az összetevőt? +asset.images = Javítócsomag-adatok képei +asset.image.imports = Importálás eredménye +asset.image.imported = [accent]{0} kép importálva. +asset.image.none = Nem találhatók érvényes PNG-fájlok a ZIP-archívumban. +asset.image.error = [red]A következő hibák léptek fel:[] +asset.image.clearall.confirm = Biztosan törölni szeretnéd az összes képet? +asset.image.info = Kép adatai +asset.image.toolarge = A kép mérete ([lightgray]{0}x{1}[]) túl nagy. A megengedett legnagyobb méret: {2}x{3}. +asset.image.exists = Már létezik kép ezzel az útvonallal/névvel:\n[lightgray]{0} +asset.image.delete.confirm = Biztosan törölni szeretnéd ezt a képet? +asset.image.name = [accent]Fájl neve: [lightgray]{0} +asset.image.region.name = [accent]Terület neve: [lightgray]{0} +asset.image.path = [accent]Útvonal: [lightgray]{0} +asset.image.env = [accent]Környezeti atlaszt használ: [lightgray]{0} +asset.image.size = [accent]Méret: [lightgray]{0}x{1} +asset.image.filesize = [accent]Fájl mérete: [lightgray]{0} +asset.image.packfailed = [red]⚠ Nem sikerült a grafikus képelemet becsomagolni![] +asset.image.packfailed.env = Ennek valószínűleg a környezeti atlasz helyhiánya az oka.\nNe feledd, hogy a környezeti grafikus képelemek korlátozva vannak egy 512x512-es területre. workshop = Steam Műhely waves.title = Hullámok @@ -628,7 +628,7 @@ all = Összes editor.default = [lightgray] details = Részletek… edit = Szerkesztés -edit.menu = Edit... +edit.menu = Szerkesztés… variables = Változók logic.error.toolong = A processzorkód túl hosszú (Korlát: {0} tömörített bájt, tényleges hossz: {1} bájt) logic.clear.confirm = Biztosan törölni akarod az összes kódot ebből a processzorból? @@ -660,8 +660,8 @@ editor.loadmap = Pálya betöltése editor.savemap = Pálya mentése editor.savechanges = [scarlet]Nem mentett módosításaid vannak!\n\n[]Szeretnéd menteni őket? editor.saved = Mentve! -editor.save.noname = A pályádnak nincs neve! Állíts be egyet a „pályainformációk” menüben. -editor.save.overwrite = A pályád felülír egy beépített pályát! Válassz egy másik nevet a „pályainformációk” menüben. +editor.save.noname = A pályádnak nincs neve! Állíts be egyet a „pálya adatai” menüben. +editor.save.overwrite = A pályád felülír egy beépített pályát! Válassz egy másik nevet a „pálya adatai” menüben. editor.import.exists = [scarlet]Nem lehet importálni:[] Már létezik a(z) „{0}” nevű beépített pálya! editor.import = Importálás… editor.importmap = Pálya importálása @@ -1092,7 +1092,7 @@ settings.resetKey = Vissza-\nállítás settings.controls = Irányítás settings.game = Játék settings.sound = Hangok -settings.dev = Developer Options +settings.dev = Fejlesztői beállítások settings.graphics = Grafika settings.cleardata = Játékadatok törlése… settings.clear.confirm = Biztosan törlöd ezeket az adatokat?\nEzt a műveletet nem lehet visszavonni! @@ -1116,7 +1116,7 @@ banned = [scarlet]Kitiltva unsupported.environment = [scarlet]Nem támogatott környezet yes = Igen no = Nem -info.title = Információ +info.title = Adatok error.title = [scarlet]Hiba történt error.crashtitle = Hiba történt unit.nobuild = [scarlet]Az egység nem tud építeni @@ -1142,7 +1142,7 @@ stat.targetsground = Földi célpontok stat.crushdamage = Zúzó sebzés stat.legsplashdamage = Lábbal okozott területi sebzés stat.itemsmoved = Szállítási sebesség -stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS. +stat.itemsmoved.info = Az áteresztőképesség gyakran nem lineáris, és szorosan összefügg a képkockasebességgel (FPS) és a tiksebességgel (TPS). stat.launchtime = Kilövések közötti idő stat.shootrange = Hatótávolság stat.size = Méret @@ -1421,10 +1421,10 @@ setting.milliseconds = {0} ezredmásodperc setting.fullscreen.name = Teljes képernyő setting.fps.name = FPS, memóriahasználat és ping megjelenítése setting.console.name = Konzol engedélyezése -setting.drawhitboxes.name = Display Hitboxes -setting.showperformance.name = Display Performance Metrics -setting.buildingtimestep.name = Fixed Building Timestep -setting.buildingtimestep.description = Runs buildings on a fixed timestep with constant delta,\nas opposed to every frame with variable delta.\nIf buildings cannot be updated fast enough, the game will slow down.\nIf you don't know what that means, don't touch this option. +setting.drawhitboxes.name = Ütközési dobozok megjelenítése +setting.showperformance.name = Teljesítményadatok megjelenítése +setting.buildingtimestep.name = Épületek rögzített időlépése +setting.buildingtimestep.description = Épületek frissítésének futtatása rögzített időlépésben, állandó delta értékkel,\nnem pedig minden képkockánként, változó delta értékkel.\nHa az épületeket nem sikerül elég gyorsan frissíteni, a játék lelassul.nHa az épületek frissítése nem történik elég gyorsan, a játék lelassul.\nHa nem tudod, mit jelent ez, ne nyúlj ehhez a beállításhoz. setting.smoothcamera.name = Egyenletes kamera setting.detach-camera.name = Szabad kamera setting.detach-camera.description = Ha engedélyezve van, akkor a kamera a játékos által irányított egységtől (drón) függetlenül mozog.\nEz a beállítás hozzárendelhető egy gyorsbillentyűhöz. @@ -1455,7 +1455,7 @@ setting.hidedisplays.name = Logikai kijelzők elrejtése setting.macnotch.name = A felület igazítása a kijelző bevágásához setting.macnotch.description = A változtatások érvénybe lépéséhez újraindítás szükséges -steam.friendsonly = Csak barátok +steam.friendsonly = Csak Steam barátok steam.friendsonly.tooltip = Meghatározza, hogy csak a Steam-barátok kapcsolódhassanak-e a játékodhoz.\nHa kikapcsolod, a játékod nyilvános lesz és bárki kapcsolódhat hozzá. setting.maxmagnificationmultiplierpercent.name = Legkisebb kameratávolság setting.minmagnificationmultiplierpercent.name = Legnagyobb kameratávolság @@ -1553,7 +1553,7 @@ keybind.pause_building.name = Építés szüneteltetése/folytatása keybind.minimap.name = Minitérkép keybind.planet_map.name = Bolygótérkép keybind.research.name = Fejlesztés -keybind.block_info.name = Blokkinformáció +keybind.block_info.name = Blokk adatai keybind.chat.name = Csevegés keybind.player_list.name = Játékosok listája keybind.console.name = Konzol @@ -1567,9 +1567,9 @@ keybind.chat_mode.name = Csevegési mód megváltoztatása keybind.drop_unit.name = Egység eldobása keybind.zoom_minimap.name = Nagyítás a minitérképen keybind.detach_camera.name = Szabad kamera be/ki -keybind.teleport_cursor.name = Teleport To Cursor (Sandbox) -keybind.debug_hitboxes.name = Hibakereső találati zóna be/ki -keybind.performance_metrics.name = Toggle Performance Metrics +keybind.teleport_cursor.name = Teleportálás a kurzorhoz (homokozó) +keybind.debug_hitboxes.name = Hibakereső ütközési doboz be/ki +keybind.performance_metrics.name = Teljesítményadatok be/ki mode.help.title = Játékmódok leírása mode.survival.name = Túlélés mode.survival.description = A normál mód. Korlátozott nyersanyagok, és automatikusan érkező hullámok.\n[gray]Ellenséges kezdőpont szükséges hozzá a pályán. @@ -1627,7 +1627,7 @@ rules.enemyCheat = Végtelen ellenséges csapaterőforrások rules.blockhealthmultiplier = Épületek életpontszorzója rules.blockdamagemultiplier = Épületek sebzésszorzója rules.unitfactoryactivation = Egységgyár aktiválásának késleltetése -rules.unitfactoryactivation.objective = Unit Factories Activating: {0} +rules.unitfactoryactivation.objective = Egységgyárak aktiválása: {0} rules.unitbuildspeedmultiplier = Egységek gyártási sebességszorzója rules.unitcostmultiplier = Egységek költségszorzója rules.unithealthmultiplier = Egységek életpontszorzója @@ -1669,7 +1669,7 @@ rules.invasions = Ellenséges szektorokból érkező inváziók rules.legacylaunchpads = Hagyományos kilövőállás-mechanizmus rules.legacylaunchpads.info = Lehetővé teszi a kilövőállások használatát landolóállások nélkül, mint a v7.0-ban. landingpad.legacy.disabled = [scarlet]\ue815 Letiltva[lightgray] (Hagyományos kilövőállás engedélyezve) -rules.hidespawns = Hide Enemy Spawns +rules.hidespawns = Ellenséges kezdőpontok elrejtése a minitérképről rules.randomwaveai = Kiszámíthatatlan ellenséges támadások (MI) rules.pauseDisabled = Szüneteltetés letiltása rules.fire = Tűz @@ -2314,9 +2314,9 @@ ff.arc = Az :arc: [accent]Arc lövegtornyoknak[] áramra van szükségük a műk fungalpass.tutorial1 = Használj [accent]egységeket[] az épületek védelmére és az ellenség megtámadására.\nFejleszd ki és helyezz el egy :ground-factory: [accent]földiegységgyárat[]. fungalpass.tutorial2 = Válaszd ki a :dagger: [accent]Dagger[] egységeket a gyárban.\nGyárts 3 db egységet. -frontier.tutorial1 = Az :additive-reconstructor: [accent]additív újratervező[]\naz 1. szintű egységeket 2. szintűvé fejleszti\n:silicon: szilícium és :graphite: grafit felhasználásával.\n\n[accent]Fejleszd ki és alakíts át\negy []:dagger:[accent] Dagger egységet []:mace:[accent] Mace[] egységgé. -frontier.tutorial2 = Az ellenséges hullámok [accent]végtelenül[] érkeznek, amíg minden ellenséges támaszpont meg nem [unlaunched]semmisül. -frontier.tutorial3 = [accent]Támadd meg gyorsan az ellenséges bázist, hogy megelőzd a hullámok túl magasra szökését[]. +frontier.tutorial1 = Az :additive-reconstructor: [accent]additív újratervező[]\naz 1. szintű egységeket 2. szintűvé fejleszti\n:silicon: szilícium és :graphite: grafit felhasználásával.\n\n[accent]Alakíts át egy []:dagger:[accent] Dagger egységet\n[]:mace:[accent] Mace egységgé. +frontier.tutorial2 = Az ellenséges hullámok [accent]a végtelenségig[] érkeznek, amíg minden ellenséges támaszpont [unlaunched]meg nem semmisül. +frontier.tutorial3 = [accent]Támadd meg gyorsan az ellenséges bázist, hogy a hullámok száma ne emelkedjen túl magasra.[] atolls.destroy1 = Először pusztítsd el a 2 ellenséges [accent]alapítvány-támaszpontot[].\n[accent]Szerezz hozzáférést a tóriumhoz[]. atolls.mega1 = Lépj be a [accent]parancsmódba[], és válaszd ki a :mega:[accent]Mega[] egységeket. @@ -2563,8 +2563,8 @@ block.switch.description = Kétállású kapcsoló. Az állapota logikai process block.micro-processor.description = Logikai műveletek sorozatát hajtja végre egy ciklusban. Egységek vagy épületek irányítására használható. block.logic-processor.description = Logikai műveletek sorozatát hajtja végre egy ciklusban. Egységek vagy épületek irányítására használható. Gyorsabb mint a mikroprocesszor. block.hyper-processor.description = Logikai műveletek sorozatát hajtja végre egy ciklusban. Egységek vagy épületek irányítására használható. Gyorsabb mint a logikai processzor. -block.memory-cell.description = Információt tárol egy logikai processzor számára. -block.memory-bank.description = Információt tárol egy logikai processzor számára. Nagy kapacitású. +block.memory-cell.description = Adatokat tárol egy logikai processzor számára. +block.memory-bank.description = Adatokat tárol egy logikai processzor számára. Nagy kapacitású. block.logic-display.description = Tetszőleges ábrákat jelenít meg egy logikai processzor alapján. block.large-logic-display.description = Tetszőleges ábrákat jelenít meg egy logikai processzor alapján. block.tile-logic-display.description = Tetszőleges grafikát jelenít meg.\nGördülékenyen kapcsolódik a közeli csempézett logikai kijelzőblokkokhoz. @@ -2774,10 +2774,10 @@ lst.setprop = Egy egység vagy épület tulajdonságainak beállítása. lst.effect = Részecskehatás létrehozása. lst.sync = Egy változó szinkronizálása a hálózaton keresztül.\nMásodpercenként legfeljebb 20-szor hívható meg. lst.playsound = Egy hangot játszik le.\nA hangerő és a panoráma lehet globális érték, vagy a pozíció alapján kiszámított érték. -lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[]. +lst.playmusic = Egy zeneszám lejátszása név alapján, például: [accent]„játék1”[].\nHa az [accent]interrupt[] értéke igaz, akkor a korábban lejátszott zene leáll.\nHa nem adsz meg zenét és az interrupt igaz, akkor a jelenlegi szám lejátszása leáll.\nNe feledd, hogy a javítócsomag-adatokból származó zenék elé a [accent]dp-[] előtagot kell tenni. lst.makemarker = Új logikai jelölő létrehozása a világban.\nMeg kell adni egy azonosítót a jelölő azonosításához.\nA jelölők száma jelenleg világonként 20 000-re van korlátozva. lst.setmarker = Egy jelölő tulajdonságának beállítása.\nA használt azonosítónak meg kell egyeznie a Make Marker utasításban megadottal.\nA [accent]null []értékek figyelmen kívül lesznek hagyva. -lst.localeprint = Hozzáadja a pálya nyelvi csomagjainak tulajdonságértékét a szövegpufferhez.\nA pálya nyelvi csomagjainak beállításait a térképszerkesztőben ellenőrizheted: [accent]pályainformációk > nyelvi csomagok[].\nHa a kliens egy hordozható eszköz, akkor először próbáld kiíratni a ".mobile" végződésű tulajdonságot. +lst.localeprint = Hozzáadja a pálya nyelvi csomagjainak tulajdonságértékét a szövegpufferhez.\nA pálya nyelvi csomagjainak beállításait a térképszerkesztőben ellenőrizheted: [accent]pálya adatai > nyelvi csomagok[].\nHa a kliens egy hordozható eszköz, akkor először próbáld kiíratni a ".mobile" végződésű tulajdonságot. lst.query = lst.query = Lekérdez egységeket/épületeket egy megadott területen.\nAz eredmények a [accent]@queries[] tömbbe íródnak.\nAz [accent]@queries[] elemeit a [accent]Read[] utasítással és egy indexszel lehet beolvasni.\nA [accent]@queries[] hossza a [accent]@size[] paraméterrel érzékelhető. lglobal.false = 0 @@ -2986,7 +2986,7 @@ lenum.within = Ellenőrzés, hogy az egység egy pozíció közelében van-e. lenum.boost = Erősítés indítása/leállítása. lenum.flushtext = Az írási puffer tartalmának ürítése a jelölőre, ha alkalmazható.\nHa a „fetch” igaz, akkor megpróbálja lekérni a tulajdonságokat a pálya nyelvi csomagjából vagy a játék csomagjából. -lenum.texture = A textúra neve közvetlenül a játék textúraatlaszából (úgynevezett „kebab-case” elnevezési stílus használatával).\nHa a „printFlush” igaz, akkor a szöveges puffer tartalmát használja szöveges argumentumként. +lenum.texture = A textúra neve közvetlenül a játék textúra-atlaszából (úgynevezett „kebab-case” elnevezési stílus használatával).\nHa a „printFlush” igaz, akkor a szöveges puffer tartalmát használja szöveges argumentumként. lenum.texturesize = A textúra mérete mezőben. A nulla érték a jelölő szélességét az eredeti textúra méretére skálázza. lenum.autoscale = Meghatározza, hogy a jelölő a játékos nagyítási szintjéhez igazodik-e. lenum.posi = Indexelt pozíció, vonal- és négyszögjelzőkhöz használatos, ahol a nulla az első pozíció. From 66d0019063bf2fc0fb08f5deb698e63550f1dc44 Mon Sep 17 00:00:00 2001 From: alecthe2nd <80932144+alecthe2nd@users.noreply.github.com> Date: Fri, 3 Jul 2026 19:21:06 -0500 Subject: [PATCH 03/11] Add icon formatting to content descriptions and details (#12266) --- core/src/mindustry/ui/dialogs/ContentInfoDialog.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java index 0f49ddfbf2..061214ea1a 100644 --- a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java +++ b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java @@ -7,6 +7,7 @@ import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; +import mindustry.core.UI; import mindustry.ctype.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -64,7 +65,7 @@ public class ContentInfoDialog extends BaseDialog{ table.row(); } - table.add("[lightgray]" + content.displayDescription()).wrap().fillX().padLeft(any ? 10 : 0).width(500f).padTop(any ? 0 : 10).left(); + table.add("[lightgray]" + UI.formatIcons(content.displayDescription())).wrap().fillX().padLeft(any ? 10 : 0).width(500f).padTop(any ? 0 : 10).left(); table.row(); if(!content.stats.useCategories && any){ @@ -100,7 +101,7 @@ public class ContentInfoDialog extends BaseDialog{ } if(content.details != null){ - table.add("[gray]" + (content.unlocked() || !content.hideDetails ? content.details : Iconc.lock + " " + Core.bundle.get("unlock.incampaign"))).pad(6).padTop(20).width(400f).wrap().fillX(); + table.add("[gray]" + (content.unlocked() || !content.hideDetails ? UI.formatIcons(content.details) : Iconc.lock + " " + Core.bundle.get("unlock.incampaign"))).pad(6).padTop(20).width(400f).wrap().fillX(); table.row(); } From 4691696afe3eff898ffcd25e5f45f99bef267735 Mon Sep 17 00:00:00 2001 From: SITUVNgcd <44901211+SITUVNgcd@users.noreply.github.com> Date: Sat, 4 Jul 2026 07:21:48 +0700 Subject: [PATCH 04/11] Update Vietnamese translation (#12139) * Update Vietnamese translation https://github.com/Anuken/Mindustry/commit/ed9ad45332397b58884ffd3d4c42db2a2b274a63 * Update Vietnamese translation https://github.com/Anuken/Mindustry/commit/eae56c4230bf24ac6c732f31d46ca5acb1d85c78 * Update Vietnamese translation https://github.com/Anuken/Mindustry/commit/e9c06482409d057a58a5952081c66bfe0f123846 * Update Vietnamese translation https://github.com/Anuken/Mindustry/commit/2bdedfed25932ebf11330d3584092c50e2e26d96 --------- Co-authored-by: Anuken --- core/assets/bundles/bundle_vi.properties | 171 +++++++++++------------ 1 file changed, 85 insertions(+), 86 deletions(-) diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 16ed42a3ca..6498cd3835 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -19,7 +19,7 @@ clipboardcopy = Máy chủ này muốn sao chép văn bản vào bảng tạm c linkfail = Không mở được liên kết!\nURL đã được sao chép vào bộ nhớ tạm. screenshot = Ảnh chụp màn hình được lưu vào {0} screenshot.invalid = Bản đồ quá lớn, có khả năng không đủ bộ nhớ để chụp ảnh màn hình. -screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large. +screenshot.error = Chụp ảnh màn hình thất bại. Thiết bị của bạn hình như không hỗ trợ ảnh chụp lớn cỡ này. gameover = Trò chơi kết thúc gameover.disconnect = Ngắt kết nối gameover.pvp = Đội[accent] {0}[] chiến thắng! @@ -58,11 +58,11 @@ mods.github.open-release = Trang phát hành mods.browser.sortdate = Sắp xếp theo gần đây mods.browser.sortstars = Sắp xếp theo sao -export.file = Xuất tệp -import.file = Nhập tệp +export.file = Xuất Tệp +import.file = Nhập Tệp copy.clipboard = Sao chép vào Bộ nhớ tạm -import.clipboard = Thêm từ Bộ nhớ tạm -workshop.browse = Browse Workshop +import.clipboard = Nhập từ Bộ nhớ tạm +workshop.browse = Duyệt qua Workshop workshop.share = Chia sẻ lên Workshop schematic = Bản thiết kế @@ -179,7 +179,7 @@ mod.incompletedependencies.details = Mod này không thể tải được do kh mod.requiresversion = Yêu cầu phiên bản trò chơi: [red]{0} mod.errors = Đã xảy ra lỗi khi tải nội dung. -mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly. +mod.errors.map = [scarlet]Có lỗi xảy ra khi nạp nội dung bản đồ. Tất cả nội dung tùy chỉnh đã bị vô hiệu.[]\nBản đồ này sẽ có thể không hoạt động chính xác. mod.noerrorplay = [red]Bạn có mod bị lỗi.[] Tắt các mod bị ảnh hưởng hoặc sửa các lỗi trước khi chơi. mod.enable = Bật mod.requiresrestart = Trò chơi sẽ đóng để áp dụng các thay đổi của mod. @@ -331,10 +331,10 @@ cantconnect = Không thể tham gia trò chơi ([accent]{0}[]). connecting = [accent]Đang kết nối... reconnecting = [accent]Đang kết nối lại... -connecting.establish = [accent]Establishing connection... -receiving.world = [accent]Receiving world data ({0})... -receiving.assets = [accent]Receiving assets ({0})... -receiving.assets.fail = Error occurred while receiving assets. +connecting.establish = [accent]Đang thiết lập kết nối... +receiving.world = [accent]Đang nhận dữ liệu thế giới ({0})... +receiving.assets = [accent]Đang nhận các tài sản ({0})... +receiving.assets.fail = Lỗi Nhập/Xuất xảy ra khi đang nhận các tài sản. server.port = Cổng: server.invalidport = Số cổng không hợp lệ! @@ -352,10 +352,10 @@ save.export = Xuất bản lưu save.import.invalid = [accent]Bản lưu này không hợp lệ! save.import.fail = [scarlet]Không thể nhập bản lưu: [accent]{0} save.export.fail = [scarlet]Không thể xuất bản lưu: [accent]{0} -save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it. -save.assets.missing = Missing Assets -save.assets.missing.list = Asset List... -save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well. +save.export.needsload = [scarlet]⚠ Bản lưu này chứa các tài sản nhúng.[]\nNạp vào bản lưu này trước khi xuất nó. +save.assets.missing = Tài Sản Bị Thiếu +save.assets.missing.list = Danh Sách Tài Sản... +save.assets.missing.info = [scarlet]⚠ Bản lưu này chứa các tài sản bị thiếu![]\n\n[lightgray]Điều này có thể do tập tin bản lưu không được xuất đúng cách.\n[lightgray]Khi chia sẻ bản lưu, chỉ nên xuất thông qua giao diện trong trò chơi. Không nên sao chép tập tin lưu trực tiếp.\n[lightgray]Nếu thực sự cần chuyển tập tin, chắc rằng bạn cũng sao chép thư mục [accent]assetCache[]. save.import = Nhập bản lưu save.newslot = Tên bản lưu: save.rename = Đổi tên @@ -516,73 +516,73 @@ editor.filters.planetselect = Chọn Hành Tinh editor.shiftx = Dịch theo X editor.shifty = Dịch theo Y -asset.patch = Patch -asset.content = Content -asset.bundle = Translation Bundle -asset.image = Image -asset.sound = Sound -asset.music = Music +asset.patch = Bản Vá +asset.content = Nội Dung +asset.bundle = Gói Ngôn Ngữ Dịch +asset.image = Hình Ảnh +asset.sound = Âm Thanh +asset.music = Âm Nhạc -content.unit = Unit -content.item = Item -content.liquid = Liquid -content.block = Block -content.planet = Planet -content.weather = Weather -content.status = Status Effect +content.unit = Đơn Vị +content.item = Vật Phẩm +content.liquid = Chất Lỏng +content.block = Khối +content.planet = Hành Tinh +content.weather = Thời Tiết +content.status = Hiệu Ứng Trạng Thái -patch.set = Patchset: {0} -patch.none = [lightgray]Không có bản vá nào được nạp. +patch.set = Bộ vá: {0} +patch.none = [lightgray]Không tìm thấy bộ vá. patch.errors = Lỗi Bộ Vá patch.importerror = Nhập bộ vá thất bại patch.delete.confirm = Bạn có chắc chắn muốn xóa bộ vá này không? -patch.path = Path: +patch.path = Đường Dẫn‎: patch.fields = {0} trường -bundle.lines = {0} lines +bundle.lines = {0} dòng -images = Images -asset.title = Data Patches & Assets -asset.guide = Usage Guide -asset.bundle.exists = A bundle with path '{0}' already exists. -asset.importzip = Import Asset Zip -asset.exportzip = Export Asset Zip -asset.image.importzip = Import Zip -asset.image.exportzip = Export Zip -asset.clearall = Clear All -asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc. -asset.imports = Import Results -asset.imported = [accent]{0} assets imported. -asset.import.none = No valid asset files found in zip archive. -asset.content.errors = Content Errors -asset.content.add = Add Content -asset.content.type = Type: -asset.content.exists = [red]Content with that name already exists! -asset.content.badname = [red]Invalid name! Most symbols are not allowed. -asset.content.import.file = Import File -asset.content.import.clipboard = Import From Clipboard -asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0} -asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save. -asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file. -asset.delete.confirm = Are you sure you want to delete this asset? -asset.images = Data Patch Images -asset.image.imports = Import Results -asset.image.imported = [accent]{0} images imported. -asset.image.none = No valid PNG files found in zip archive. -asset.image.error = [red]The following errors were encountered:[] -asset.image.clearall.confirm = Are you certain that you wish to clear all images? -asset.image.info = Image Info -asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}. -asset.image.exists = An image with that path/name already exists:\n[lightgray]{0} -asset.image.delete.confirm = Are you certain that you wish to delete this image? -asset.image.name = [accent]File Name: [lightgray]{0} -asset.image.region.name = [accent]Region Name: [lightgray]{0} -asset.image.path = [accent]Path: [lightgray]{0} -asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0} -asset.image.size = [accent]Size: [lightgray]{0}x{1} -asset.image.filesize = [accent]File Size: [lightgray]{0} -asset.image.packfailed = [red]⚠ Failed to pack sprite![] -asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area. +images = Hình Ảnh +asset.title = Bản Vá Dữ Liệu & Tài Sản +asset.guide = Hướng Dẫn Sử Dụng +asset.bundle.exists = Một gói ngôn ngữ với đường dẫn '{0}' đã có rồi. +asset.importzip = Nhập Gói Zip Tài Sản +asset.exportzip = Xuất Gói Zip Tài Sản +asset.image.importzip = Nhập Gói Zip Hình Ảnh +asset.image.exportzip = Xuất Gói Zip Hình Ảnh +asset.clearall = Xóa Tất Cả +asset.clearall.confirm = Bạn có chắc rằng bạn muốn xóa [red]tất cả[] tài sản khỏi bản đồ này?\nBao gồm cả hình ảnh, âm thanh, nội dung, v.v... +asset.imports = Kết Quả Nhập +asset.imported = [accent]{0} tài sản đã nhập. +asset.import.none = Không tìn thấy tập tin tài sản hợp lệ trong lưu trữ zip. +asset.content.errors = Lỗi Nội Dung +asset.content.add = Thêm Nội Dung +asset.content.type = Kiểu: +asset.content.exists = [red]Nội dung với tên đó đã có rồi! +asset.content.badname = [red]Tên không hợp lệ! Hầu hết các biểu tượng không được phép. +asset.content.import.file = Nhập Tệp +asset.content.import.clipboard = Nhập Từ Bộ Nhớ Tạm +asset.exists = Một tài sản có kiểu đó với đường dẫn/tên giống nhau đã có rồi:\n[lightgray]{0} +asset.broken = Tài sản này không thể định vị được.\nĐiều này có thể do nhập sai dữ liệu, hoặc một bản lưu đã xuất không hợp lệ. +asset.audio.invalid = Không thể nạp âm thanh.\nChắc rằng đó là tập tin OGG hoặc MP3 hợp lệ. +asset.delete.confirm = Bạn có chắc chắn muốn xóa tài sản này không? +asset.images = Hình Ảnh Bản Vá Dữ Liệu +asset.image.imports = Kết Quả Nhập +asset.image.imported = [accent]{0} hình ảnh đã nhập. +asset.image.none = Không tìn thấy tập tin PNG hợp lệ trong lưu trữ zip. +asset.image.error = [red]Đã gặp phải những lỗi sau:[] +asset.image.clearall.confirm = Bạn có chắc chắn muốn xóa tất cả hình ảnh không? +asset.image.info = Thông Tin Hình Ảnh +asset.image.toolarge = Hình ảnh ([lightgray]{0}x{1}[]) quá lớn. Kích thước tối đa là {2}x{3}. +asset.image.exists = Một hình ảnh với đường dẫn/tên đã có rồi:\n[lightgray]{0} +asset.image.delete.confirm = Bạn có chắc chắn muốn xóa hình ảnh này không? +asset.image.name = [accent]Tên Tập Tin: [lightgray]{0} +asset.image.region.name = [accent]Tên Vùng: [lightgray]{0} +asset.image.path = [accent]Đường Dẫn: [lightgray]{0} +asset.image.env = [accent]Dùng Bản Khung Môi Trường: [lightgray]{0} +asset.image.size = [accent]Kích Thước: [lightgray]{0}x{1} +asset.image.filesize = [accent]Kích Thước Tập Tin: [lightgray]{0} +asset.image.packfailed = [red]⚠ Đóng gói bản đồ ảnh thất bại![] +asset.image.packfailed.env = Điều này thường do là thiếu không gian trong bản khung môi trường.\nLưu ý rằng bản đồ môi trường bị giới hạn diện tích tổng thể 512x512. workshop = Workshop waves.title = Đợt @@ -628,7 +628,7 @@ all = Tất cả editor.default = [lightgray] details = Chi tiết... edit = Chỉnh sửa -edit.menu = Edit... +edit.menu = Chỉnh sửa... variables = Biến số logic.error.toolong = Mã bộ xử lý quá dài (Giới hạn: {0} byte đã nén, độ dài thực sự: {1} byte) logic.clear.confirm = Bạn có muốn xóa sạch tất cả mã khỏi bộ xử lý này? @@ -1092,7 +1092,7 @@ settings.resetKey = Đặt lại settings.controls = Điều Khiển settings.game = Trò Chơi settings.sound = Âm Thanh -settings.dev = Developer Options +settings.dev = Tùy Chọn Nhà Phát Triển settings.graphics = Đồ Họa settings.cleardata = Xóa Dữ Liệu Trò Chơi... settings.clear.confirm = Bạn có chắc chắn muốn xóa dữ liệu này không?\nThực hiện xong không thể hoàn tác! @@ -1142,7 +1142,7 @@ stat.targetsground = Mục tiêu mặt đất stat.crushdamage = Sát thương nghiền nát stat.legsplashdamage = Sát Thương Lan Tỏa Từ Chân stat.itemsmoved = Tốc độ dịch chuyển -stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS. +stat.itemsmoved.info = Lưu lượng thường không tuyến tính và phụ thuộc vào FPS/TPS. stat.launchtime = Thời gian giữa các lần phóng stat.shootrange = Phạm vi stat.size = Kích thước @@ -1421,10 +1421,9 @@ setting.milliseconds = {0} mili-giây setting.fullscreen.name = Toàn màn hình setting.fps.name = Hiện FPS & Ping setting.console.name = Bật Bảng điều khiển -setting.drawhitboxes.name = Display Hitboxes -setting.showperformance.name = Display Performance Metrics -setting.buildingtimestep.name = Fixed Building Timestep -setting.buildingtimestep.description = Runs buildings on a fixed timestep with constant delta,\nas opposed to every frame with variable delta.\nIf buildings cannot be updated fast enough, the game will slow down.\nIf you don't know what that means, don't touch this option. +setting.drawhitboxes.name = Hiển Thị Khung Va Chạm +setting.buildingtimestep.name = Bước Thời Gian Công Trình Cố Định +setting.buildingtimestep.description = Thực hiện công trình trong bước thời gian cố định với hằng số thời gian,\nngược lại mỗi khung hình với biến số thời gian.\nNếu công trình không thể cập nhật đủ nhanh, trò chơi sẽ chậm xuống.\nNếu bạn không biết nó có nghĩa gì, đừng đụng vào tùy chọn này. setting.smoothcamera.name = Khung quay mượt mà setting.detach-camera.name = Máy quay tự do setting.detach-camera.description = Nếu bật, máy quay di chuyển độc lập với đơn vị người chơi.\nCài đặt này có thể gán vào một phím nóng. @@ -1455,7 +1454,7 @@ setting.hidedisplays.name = Ẩn hiển thị logic setting.macnotch.name = Giao diện phù hợp với hiển thị tai thỏ setting.macnotch.description = Cần khởi động lại để áp dụng các thay đổi -steam.friendsonly = Chỉ bạn bè +steam.friendsonly = Chỉ Bạn Bè Trên Steam steam.friendsonly.tooltip = Liệu chỉ bạn bè trên Steam mới có thể tham gia trò chơi của bạn hay không.\nBỏ chọn ô này sẽ làm trò chơi của bạn công khai - mọi người có thể tham gia. setting.maxmagnificationmultiplierpercent.name = Tầm xa tối thiểu của máy quay setting.minmagnificationmultiplierpercent.name = Tầm xa tối đa của máy quay @@ -1627,7 +1626,7 @@ rules.enemyCheat = Tài Nguyên Kẻ Địch Vô Hạn rules.blockhealthmultiplier = Hệ Số Độ Bền Khối rules.blockdamagemultiplier = Hệ Số Sát Thương Của Khối rules.unitfactoryactivation = Trễ Kích Hoạt Nhà Máy Chế Tạo Đơn Vị -rules.unitfactoryactivation.objective = Unit Factories Activating: {0} +rules.unitfactoryactivation.objective = Kích Hoạt Nhà Máy Đơn Vị: {0} rules.unitbuildspeedmultiplier = Hệ Số Tốc Độ Sản Xuất Đơn Vị rules.unitcostmultiplier = Hệ Số Chi Phí Sản Xuất Đơn Vị rules.unithealthmultiplier = Hệ Số Độ Bền Của Đơn Vị @@ -1669,7 +1668,7 @@ rules.invasions = Kẻ Địch Xâm Lược Phân Khu rules.legacylaunchpads = Cơ chế bệ phóng di sản rules.legacylaunchpads.info = Cho phép dùng bệ phóng mà không cần bệ đáp, như trong bản 7.0. landingpad.legacy.disabled = [scarlet]\ue815 Đã tắt[lightgray] (Bệ phóng di sản được bật) -rules.hidespawns = Hide Enemy Spawns +rules.hidespawns = Ẩn Khu Kẻ Địch Xuất Hiện rules.randomwaveai = Đợt Tấn Công AI Không Đoán Trước rules.pauseDisabled = Tắt Tạm Dừng rules.fire = Lửa @@ -2314,7 +2313,7 @@ ff.arc = Bệ súng :arc: [accent]Arc[] cần có năng lượng để hoạt đ fungalpass.tutorial1 = Dùng [accent]các đơn vị[] để phòng thủ công trình và tấn công kẻ địch.\nNghiên cứu và đặt một :ground-factory: [accent]nhà máy lục quân[]. fungalpass.tutorial2 = Chọn đơn vị :dagger: [accent]Dagger[] trong nhà máy.\nSản xuất 3 đơn vị. -frontier.tutorial1 = :additive-reconstructor: [accent]Máy tái thiết cấp cộng[]\nnâng cấp đơn vị bậc 1 thành bậc 2\ndùng :silicon: silicon và :graphite: than chì.\n\n[accent]Nghiên cứu và và tái thiết\nmột []:dagger:[accent] dagger thành một []:mace:[accent] mace. +frontier.tutorial1 = :additive-reconstructor: [accent]Máy tái thiết cấp cộng[]\nnâng cấp đơn vị bậc 1 thành bậc 2\ndùng :silicon: silicon và :graphite: than chì.\n\n[accent]Tái thiết\nmột []:dagger:[accent] dagger thành một []:mace:[accent] mace. frontier.tutorial2 = Các đợt được gửi [accent]vô hạn[] đến khi tất cả lõi kẻ địch [unlaunched]bị tiêu diệt. frontier.tutorial3 = [accent]Tấn công căn cứ kẻ địch nhanh chóng để ngăn việc các đợt lên cao[]. @@ -2468,7 +2467,7 @@ block.force-projector.description = Tạo ra một trường lực lục giác x block.shock-mine.description = Giải phóng tia điện khi tiếp xúc với đơn vị đối phương. block.conveyor.description = Vận chuyển vật phẩm về phía trước. block.titanium-conveyor.description = Vận chuyển vật phẩm về phía trước. Nhanh hơn băng chuyền tiêu chuẩn. -block.plastanium-conveyor.description = Vận chuyển vật phẩm về phía trước theo lô. Nhận các vật phẩm ở phía sau và dỡ chúng theo ba hướng ở phía trước. Yêu cầu nhiều điểm tải và dỡ hàng để có hiệu quả cao nhất. +block.plastanium-conveyor.description = Vận chuyển vật phẩm về phía trước theo lô. Nhận các vật phẩm ở phía sau và dỡ chúng theo ba hướng ở phía trước. Yêu cầu nhiều điểm tải và dỡ hàng để có lưu lượng cao nhất. block.junction.description = Hoạt động như một cầu nối cho hai băng chuyền băng qua nhau. block.bridge-conveyor.description = Vận chuyển vật phẩm qua nhiều loại địa hình hoặc công trình. block.phase-conveyor.description = Vận chuyển tức thời vật phẩm qua địa hình hoặc công trình. Phạm vi dài hơn cầu nối, nhưng cần năng lượng. @@ -2774,7 +2773,7 @@ lst.setprop = Thiết đặt một thuộc tính của đơn vị hoặc công t lst.effect = Tạo một phần hiệu ứng nhỏ. lst.sync = Đồng bộ biến số qua mạng.\nChỉ gọi tối đa 20 lần mỗi giây cho mỗi biến. lst.playsound = Phát một âm thanh.\nÂm lượng và hướng xoay có thể là một giá trị toàn cục, hoặc được tính toán dựa vào vị trí. -lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[]. +lst.playmusic = Phát một bản nhạc theo tên, vd: [accent]\"game1\"[].\nNếu [accent]interrupt[] là [accent]true[], nhạc đang phát trước đó sẽ bị dừng lại.\nPhát nhạc tên [accent]null[] và [accent]interrupt[] là [accent]true[] sẽ dừng bản phát hiện tại.\nLưu ý rằng nhạc từ bản vá dữ liệu phải bắt đầu với [accent]dp-[]. lst.makemarker = Tạo mới điểm đánh dấu logic trên thế giới.\nMột định danh cho điểm đánh dấu này phải được cung cấp.\nĐiểm đánh dấu hiện tại bị giới hạn 20,000 trên mỗi thế giới. lst.setmarker = Thiết đặt một thuộc tính cho một điểm đánh dấu.\nĐịnh danh phải giống như định danh ở chỉ lệnh Tạo Điểm đánh dấu (Make Marker).\nGiá trị [accent]null[] sẽ bị phớt lờ. lst.localeprint = Thêm một giá trị thuộc tính ngôn ngữ của bản đồ vào bộ đệm văn bản.\nĐể thiết đặt gói ngôn ngữ trong trình chỉnh sửa bản đồ, xem qua [accent]Thông tin bản đồ > Gói ngôn ngữ[].\nNếu máy khách là một thiết bị di động, sẽ cố in thuộc tính kết thúc bằng ".mobile" trước tiên. From 2736ec96fbbccd07ba00508548aa9c36b5dd520b Mon Sep 17 00:00:00 2001 From: "Sunky.MP3G" <125795960+SunkyMP3G@users.noreply.github.com> Date: Sat, 4 Jul 2026 07:22:37 +0700 Subject: [PATCH 05/11] Ru translations (#12218) * Update bundle_ru.properties * Fall damage lololol * forgot * Update bundle_ru.properties * Other * Update bundle_ru.properties * Fixed #12254 * Dev and patch stuff --------- Co-authored-by: Anuken --- .../distribution/conveyors/conveyor-2-1.png | Bin 213 -> 273 bytes core/assets/bundles/bundle_ru.properties | 236 +++++++++--------- 2 files changed, 120 insertions(+), 116 deletions(-) diff --git a/core/assets-raw/sprites/blocks/distribution/conveyors/conveyor-2-1.png b/core/assets-raw/sprites/blocks/distribution/conveyors/conveyor-2-1.png index 24f5127014900b549e70e110204efb4ea5bfca69..d4e0deb5cb00b1ae7f4119f37d2573464f51620b 100644 GIT binary patch delta 245 zcmVA?xh5-aj18MoF0~i<> z7#O|0gYl*T6;)jn{+-*GNwR>D{s9kxQ3nh?2cRb^O7)W!0@QQ_K?mTIRItpmz2$IqOsihz>`l*r)DM^%6D+kDR1XT+navVXD18%5Y2$AFfVl2m(NO9?B zp~P}xa|J&A1Vez9mNSr>2&q{fkn8|z7e+&`JuvbdfE;J!#6KbZjIh4prj6@KHk=aR v=O4(xfE)ra0eV`_fF1?(a0I#?1D*&0M`u$Ln1KpV00000NkvXXu0mjf*u!6# delta 185 zcmV;q07n0j0@VSKB!8SqL_t(|+U?iD4S+BR1yJVGqk9-fa17(wJ!|4gtFgeR#Y7I= z1fEK&(6VmHGbjM=fUY0XTa43uiPH7b`~U<%43Hv9`6_?}QOYNaB1k@2-HA4z(D#WV z2%TzlC`|y!Q!oQ?5mf;kM3o`r0-zzR(VPu%J&4?o;?I4I;xd2We}HolX>(5gv6yHJ nqjB4eS~h-M&D;Sk5P82HZG)Ae`~lZ300000NkvXXu0mjfwiZ$< diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index bedf24e855..78009040e5 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -19,7 +19,7 @@ clipboardcopy = Этот сервер хочет скопировать текс linkfail = Не удалось открыть ссылку!\nURL-адрес был скопирован в буфер обмена. screenshot = Скриншот сохранён в {0} screenshot.invalid = Карта слишком большая, возможно, не хватает памяти для скриншота. -screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large. +screenshot.error = Не удалось сделать скриншот. Ваше устройство скорее всего не поддерживает настолько большие скриншоты. gameover = Игра окончена gameover.disconnect = Отключение gameover.pvp = Команда [accent]{0}[] победила! @@ -222,7 +222,9 @@ campaign.erekir = Новый, более отточенный контент. В campaign.serpulo = Старый контент, классический опыт. Более вариативное прохождение.\n\nПотенциально несбалансированные карты и механики кампании. Менее отточено. campaign.difficulty = Сложность campaign.rework.title = Примечание об изменении кампании -campaign.rework.serpulo = [accent]⚠ Кампания Серпуло была переработана.[]\n\nПорядок секторов и их сложность были изменены. Вы можете столкнуться с проблемами, связанными с сохранением или загрузкой данных кампании из старых версий.\n\nДля лучшего опыта, подумайте о том, чтобы сбросить сохранения кампании в настройках. +campaign.rework.serpulo = [accent]⚠ Кампания Серпуло была переработана.[]\n\n\ +Порядок секторов и их сложность были изменены. Вы можете столкнуться с проблемами, связанными с сохранением или загрузкой данных кампании из старых версий.\n\n\ +Для лучшего опыта, подумайте о том, чтобы сбросить сохранения кампании в настройках. completed = [accent]Завершено techtree = Дерево\n технологий techtree.select = Выбор дерева технологий @@ -246,7 +248,7 @@ server.kicked.vote = Вы были выгнаны с помощью голосо server.kicked.clientOutdated = Устаревший клиент! Обновите игру! server.kicked.serverOutdated = Устаревший сервер! Попросите администратора сервера обновить сервер/игру! server.kicked.banned = Вы заблокированы на этом сервере. -server.kicked.steamBanned = Хватит людям игри портить. +server.kicked.steamBanned = Хватит людям игры портить. server.kicked.typeMismatch = Этот сервер не совместим с вашим типом сборки. server.kicked.playerLimit = Этот сервер заполнен. Дождитесь свободного слота. server.kicked.recentKick = Вас недавно выгнали.\nПодождите немного перед следующим подключением. @@ -331,10 +333,10 @@ cantconnect = Не удаётся присоединиться к игре ([acc connecting = [accent]Подключение... reconnecting = [accent]Переподключение... -connecting.establish = [accent]Establishing connection... -receiving.world = [accent]Receiving world data ({0})... -receiving.assets = [accent]Receiving assets ({0})... -receiving.assets.fail = Error occurred while receiving assets. +connecting.establish = [accent]Установка соединения... +receiving.world = [accent]Получение данных мира ({0})... +receiving.assets = [accent]Получение ресурсов ({0})... +receiving.assets.fail = Произошла ошибка при получении ресурсов мира. server.port = Порт: server.invalidport = Неверный номер порта! @@ -352,10 +354,13 @@ save.export = Экспортировать сохранение save.import.invalid = [accent]Это сохранение недействительно! save.import.fail = [scarlet]Не удалось импортировать сохранение: [accent]{0} save.export.fail = [scarlet]Не удалось экспортировать сохранение: [accent]{0} -save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it. -save.assets.missing = Missing Assets -save.assets.missing.list = Asset List... -save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well. +save.export.needsload = [scarlet]⚠ Это сохранение имеет встроенные ресурсы.[]\nЗагрузите это сохранение перед экспортом. +save.assets.missing = Недостающие ресурсы +save.assets.missing.list = Список ресурсов... +save.assets.missing.info = [scarlet]⚠ В сохранении отсутствует часть ресурсов![]\n\n\ +[lightgray]Это скорее всего произошло из-за некорректного экспорта.\n\ +[lightgray]Если вы делитесь сохранениями, экспортируйте их только через внутриигровой интерфейс. Не копируйте файлы напрямую.\n\ +[lightgray]Если перенос файлов обязателен, убедитесь, что папка [accent]assetCache[] тоже скопирована. save.import = Импортировать сохранение save.newslot = Имя сохранения: save.rename = Переименовать @@ -472,9 +477,9 @@ publish.confirm = Вы уверены, что хотите опубликова publish.error = Ошибка отправки предмета: {0} steam.error = Не удалось инициализировать сервисы Steam.\nОшибка: {0} -editor.showblocks = Показывать блоки -editor.showterrain = Показывать ландшафт -editor.showfloor = Показывать покрытия +editor.showblocks = Показывать \nблоки +editor.showterrain = Показывать \nландшафт +editor.showfloor = Показывать \nпол editor.planet = Планета: editor.sector = Сектор: editor.seed = Сид: @@ -512,77 +517,77 @@ editor.filters.description = Описанию editor.filters.modname = Название модификации editor.filters.prioritizemod = Приоритет модификации editor.filters.prioritizecustom = Пользовательский приоритет -editor.filters.planetselect = Planet Selection +editor.filters.planetselect = Выбор планеты editor.shiftx = Сдвиг по X editor.shifty = Сдвиг по Y -asset.patch = Patch -asset.content = Content -asset.bundle = Translation Bundle -asset.image = Image -asset.sound = Sound -asset.music = Music +asset.patch = Патчи +asset.content = Контент +asset.bundle = Переводы +asset.image = Изображения +asset.sound = Звуки +asset.music = Музыка -content.unit = Unit -content.item = Item -content.liquid = Liquid -content.block = Block -content.planet = Planet -content.weather = Weather -content.status = Status Effect +content.unit = Боевая единица +content.item = Предмет +content.liquid = Жидкость +content.block = Блок +content.planet = Планета +content.weather = Погода +content.status = Статусный эффект -patch.set = Patchset: {0} +patch.set = Набор патчей: {0} patch.none = [lightgray]Ни одного набора патчей не загружено. patch.errors = Ошибки набора патчей patch.importerror = Не удалось импортировать набор патчей patch.delete.confirm = Вы уверены, что хотите удалить этот набор патчей? -patch.path = Path: +patch.path = Путь файла: patch.fields = Параметров: {0} -bundle.lines = {0} lines +bundle.lines = {0} строк -images = Images -asset.title = Data Patches & Assets -asset.guide = Usage Guide -asset.bundle.exists = A bundle with path '{0}' already exists. -asset.importzip = Import Asset Zip -asset.exportzip = Export Asset Zip -asset.image.importzip = Import Zip -asset.image.exportzip = Export Zip -asset.clearall = Clear All -asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc. -asset.imports = Import Results -asset.imported = [accent]{0} assets imported. -asset.import.none = No valid asset files found in zip archive. -asset.content.errors = Content Errors -asset.content.add = Add Content -asset.content.type = Type: -asset.content.exists = [red]Content with that name already exists! -asset.content.badname = [red]Invalid name! Most symbols are not allowed. -asset.content.import.file = Import File -asset.content.import.clipboard = Import From Clipboard -asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0} -asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save. -asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file. -asset.delete.confirm = Are you sure you want to delete this asset? -asset.images = Data Patch Images -asset.image.imports = Import Results -asset.image.imported = [accent]{0} images imported. -asset.image.none = No valid PNG files found in zip archive. -asset.image.error = [red]The following errors were encountered:[] -asset.image.clearall.confirm = Are you certain that you wish to clear all images? -asset.image.info = Image Info -asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}. -asset.image.exists = An image with that path/name already exists:\n[lightgray]{0} -asset.image.delete.confirm = Are you certain that you wish to delete this image? -asset.image.name = [accent]File Name: [lightgray]{0} -asset.image.region.name = [accent]Region Name: [lightgray]{0} -asset.image.path = [accent]Path: [lightgray]{0} -asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0} -asset.image.size = [accent]Size: [lightgray]{0}x{1} -asset.image.filesize = [accent]File Size: [lightgray]{0} -asset.image.packfailed = [red]⚠ Failed to pack sprite![] -asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area. +images = Изображения +asset.title = Патчи контента и ресурсы +asset.guide = Руководство +asset.bundle.exists = Перевод с путём файла '{0}' уже существует. +asset.importzip = Импортировать архив с ресурсами +asset.exportzip = Экспортировать архив с ресурсами +asset.image.importzip = Импортировать архив с изображениями +asset.image.exportzip = Экспортировать архив с изображениями +asset.clearall = Очистить всё +asset.clearall.confirm = Вы точно хотите удалить [red]все[] ресурсы из этой карты?\nБудут удалены изображения, звуки, контент, и т.д. +asset.imports = Результаты импорта +asset.imported = [accent]Ресурсов импортировано: {0}. +asset.import.none = Нет подходящих файлов ресурсов в архиве. +asset.content.errors = Ошибки контента +asset.content.add = Добавить контент +asset.content.type = Тип: +asset.content.exists = [red]Контент с этим именем уже существует! +asset.content.badname = [red]Неверное имя! Большинство символов не разрешены. +asset.content.import.file = Импортировать файл +asset.content.import.clipboard = Импортировать из буфера обмена +asset.exists = Ресурс этого типа с таким путём/именем уже существует:\n[lightgray]{0} +asset.broken = Не удалось обнаружить файл ресурса.\nЭто скорее всего произошло из-за некорректного импорта данных или экспорта сохранения. +asset.audio.invalid = Аудио не удалось загрузить.\nУбедитесь, что это рабочий файл OGG или MP3. +asset.delete.confirm = Вы уверены, что хотите удалить этот ресурс? +asset.images = Изображения патчей контента +asset.image.imports = Результаты импорта +asset.image.imported = [accent]Изображений импортировано: {0}. +asset.image.none = Нет подходящих файлов PNG в архиве. +asset.image.error = [red]Обнаруженные ошибки:[] +asset.image.clearall.confirm = Вы уверены, что хотите удалить все изображения? +asset.image.info = Информация +asset.image.toolarge = Изображение ([lightgray]{0}x{1}[]) слишком большое. Максимальный размер - {2}x{3}. +asset.image.exists = Изображение с таким путём/именем уже существует:\n[lightgray]{0} +asset.image.delete.confirm = Вы уверены, что хотите удалить это изображение? +asset.image.name = [accent]Имя файла: [lightgray]{0} +asset.image.region.name = [accent]Имя региона: [lightgray]{0} +asset.image.path = [accent]Путь файла: [lightgray]{0} +asset.image.env = [accent]Использует атлас ландшафта: [lightgray]{0} +asset.image.size = [accent]Размер: [lightgray]{0}x{1} +asset.image.filesize = [accent]Размер файла: [lightgray]{0} +asset.image.packfailed = [red]⚠ Не удалось обработать спрайт![] +asset.image.packfailed.env = Это скорее всего произошло из-за нехватки места в атласе ландшафта.\nСпрайты ландшафта ограничены общей зоной 512x512. workshop = Мастерская waves.title = Волны @@ -598,7 +603,7 @@ waves.spawn = точка появления: waves.spawn.all = <везде> waves.spawn.select = Выбрать точку появления waves.spawn.none = [scarlet]не обнаружено точек появления на карте! -waves.spawn.first = [lightgray](first {0}) +waves.spawn.first = [lightgray](первые {0}) waves.max = максимум единиц waves.guardian = Страж waves.preview = Предварительный просмотр @@ -607,7 +612,7 @@ waves.copy = Копировать в буфер обмена waves.load = Загрузить из буфера обмена waves.invalid = Неверные волны в буфере обмена. waves.copied = Волны скопированы. -waves.none = Враги не были определены.\nОбратите внимание, что пустые волны будут автоматически заменены обычной волной. +waves.none = Враги не были определены.\nОбратите внимание, что пустые волны будут автоматически заменены обычным набором волн. waves.sort = Сортировать по waves.sort.reverse = Обратная сортировка waves.sort.begin = Начало @@ -630,7 +635,7 @@ details = Подробности... edit = Редактировать... edit.menu = Edit... variables = Переменные -logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes) +logic.error.toolong = Код процессора слишком длинный (Лимит: {0} сжатых байтов, текущая длина: {1} байтов) logic.clear.confirm = Вы уверены, что хотите удалить весь код из этого процессора? logic.restart = Перезапустить logic.globals = Встроенные переменные @@ -706,8 +711,8 @@ toolmode.drawteams.description = Изменяет принадлежность\n #unused toolmode.underliquid = Под жидкостями toolmode.underliquid.description = Рисует пол под плитками жидкости. -toolmode.fillunderliquid = Fill Under Liquids -toolmode.fillunderliquid.description = Fill floors under liquid tiles. +toolmode.fillunderliquid = Заливка под жидкостями +toolmode.fillunderliquid.description = Заполняет пол под плитками жидкости. filters.empty = [lightgray]Нет фильтров! Добавьте один при помощи кнопки ниже. @@ -771,8 +776,8 @@ locales.showsame = Показать свойства, которые имеют locales.viewproperty = Смотреть во всех локалях locales.viewing = Просмотр свойства "{0}" locales.addicon = Добавить иконку -locales.property.name = name -locales.property.text = text +locales.property.name = имя +locales.property.text = текст width = Ширина: height = Высота: @@ -784,8 +789,8 @@ save = Сохранить fps = FPS: {0} ping = Пинг: {0}мс tps = TPS: {0} -memory = Mem: {0}МБ -memory2 = Mem:\n {0}МБ +\n {1}МБ +memory = Память: {0}МБ +memory2 = Память:\n {0}МБ +\n {1}МБ language.restart = Перезагрузите игру, чтобы языковые настройки вступили в силу. settings = Настройки tutorial = Обучение @@ -918,7 +923,7 @@ sectors.redirect = Перенаправить пусковые площадки sectors.rename = Переименовать сектор sectors.enemybase = [scarlet]Вражеская база sectors.vulnerable = [scarlet]Уязвим -sectors.underattack = [scarlet]Атакован! [accent]{0}% повреждений +sectors.underattack = [scarlet]Атакован! sectors.go = Перейти sector.abandon = Покинуть sector.abandon.confirm = Все ядра данного сектора будут самоуничтожены.\nПродолжить? @@ -935,7 +940,7 @@ sector.noswitch.title = Перемещение между секторами sector.noswitch = Вы не можете переключаться между секторами, пока существующий сектор находится под атакой.\n\nСектор: [accent]{0}[] на [accent]{1}[] sector.view = Просмотр сектора sector.foundationrequired = [lightgray] Требуется Ядро: «Штаб» -sector.shielded = [lightgray] Shielded +sector.shielded = [lightgray] Защищён threat.low = Низкая threat.medium = Средняя @@ -945,7 +950,7 @@ threat.eradication = Истребляющая difficulty.guide.title = Примечание difficulty.guide = Если сектор слишком тяжелый, сложность кампании может быть изменена для упрощения. -difficulty.guide.confirm = Отрегулируйте сложность +difficulty.guide.confirm = Отрегулировать сложность difficulty.casual = Казуальная difficulty.easy = Лёгкая @@ -1092,7 +1097,7 @@ settings.resetKey = Сбросить settings.controls = Управление settings.game = Игра settings.sound = Звук -settings.dev = Developer Options +settings.dev = Настройки разработчика settings.graphics = Графика settings.cleardata = Очистить игровые данные... settings.clear.confirm = Вы действительно хотите очистить свои данные?\nЭто нельзя отменить! @@ -1103,12 +1108,12 @@ settings.clearresearch = Сбросить исследования settings.clearresearch.confirm = Вы уверены, что хотите сбросить все ваши исследования кампании? settings.clearcampaignsaves = Очистить сохранения кампании settings.clearcampaignsaves.confirm = Вы уверены, что хотите очистить все ваши сохранения кампании? -settings.clearplanetdata = Clear Planet Data -settings.planetselect = Planet: {0} -settings.clearplanetresearch = Clear Planet Research -settings.clearplanetresearch.confirm = Are you sure you want to clear {0}'s research? -settings.clearplanetcampaignsaves = Clear Planet Campaign Saves -settings.clearplanetcampaignsaves.confirm = Are you sure you want to clear {0}'s campaign saves? +settings.clearplanetdata = Очистить данные планеты +settings.planetselect = Планета: {0} +settings.clearplanetresearch = Сбросить исследования планеты +settings.clearplanetresearch.confirm = Вы уверены, что хотите сбросить все ваши исследования {0}? +settings.clearplanetcampaignsaves = Очистить сохранения планеты +settings.clearplanetcampaignsaves.confirm = Вы уверены, что хотите очистить сохранения планеты {0}? paused = [accent]< Пауза > clear = Очистить @@ -1139,10 +1144,10 @@ stat.damage = Урон stat.frequency = Частота stat.targetsair = Воздушные цели stat.targetsground = Наземные цели -stat.crushdamage = Урон от падения +stat.crushdamage = Урон от давки гусеницами stat.legsplashdamage = Урон по области от ног stat.itemsmoved = Скорость перемещения -stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS. +stat.itemsmoved.info = Пропускная способность часто нелинейна и зависит от FPS/TPS. stat.launchtime = Интервал запусков stat.shootrange = Радиус действия stat.size = Размер @@ -1165,8 +1170,8 @@ stat.weapons = Орудия stat.bullet = Снаряд stat.moduletier = Уровень модуля stat.unittype = Боевая единица -stat.receiverate = Receiving Rate -stat.receiverate.info = Affected by overdrive. Throughput can be increased by placing additional unloaders. +stat.receiverate = Скорость получения +stat.receiverate.info = Может быть увеличена сверхприводными проекторами. Пропускная способность может быть увеличена дополнительными выходами. stat.speedincrease = Увеличение скорости stat.range = Радиус действия stat.drilltier = Бурит @@ -1224,7 +1229,7 @@ ability.repairfield = Ремонтирующее поле ability.repairfield.description = Ремонтирует близлежащие единицы ability.statusfield = Усиливающее поле ability.statusfield.description = Накладывает эффект на ближайшие единицы -ability.unitspawn = Завод единиц � +ability.unitspawn = Завод единиц ability.unitspawn.description = Конструирует единицы ability.shieldregenfield = Поле восстановления щита ability.shieldregenfield.description = Восстанавливает щиты ближайших единиц @@ -1297,7 +1302,7 @@ bar.launchcooldown = Лимит высадки bar.input = Ввод bar.output = Вывод bar.strength = [stat]{0}[lightgray]x эффективность -bar.regenerationrate = [stat]{0}/sec[lightgray] скорость регенерации +bar.regenerationrate = [stat]{0}/сек[lightgray] скорость регенерации bar.activationtimer = Активируется через {0} bar.activated = Активировано @@ -1313,9 +1318,9 @@ bullet.armorpierce = [stat]бронебойный bullet.armorweakness = [red]{0}x[lightgray] слабость к броне bullet.partialarmorpierce = [stat]{0}%[lightgray] пробитие брони bullet.antiarmor = [stat]{0}x[lightgray] анти-броня -bullet.blockarmorweakness = [red]{0}x[lightgray] building armor weakness -bullet.blockpartialarmorpierce = [stat]{0}%[lightgray] building armor pierce -bullet.blockantiarmor = [stat]{0}x[lightgray] building anti-armor +bullet.blockarmorweakness = [red]{0}x[lightgray] слабость к броне блоков +bullet.blockpartialarmorpierce = [stat]{0}%[lightgray] пробитие брони блоков +bullet.blockantiarmor = [stat]{0}x[lightgray] анти-броня блоков bullet.maxdamagefraction = [stat]{0}%[lightgray] предел урона bullet.suppression = [stat]{0} сек[lightgray] подавления регенерации в радиусе ~ [stat]{1}[lightgray] блоков bullet.empradius = [stat]{0}[lightgray] плиток радиус подавления @@ -1405,7 +1410,7 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Масштаб пользовательского интерфейса setting.uiscale.description = Для вступления изменений в силу может потребоваться перезагрузка игры. setting.uiEdgePadding.name = Отступ от краев интерфейса -setting.uiEdgePadding.description = Добавляет отступы к краям пользовательского интерфейса. Полезно для дисплеев с закругленными углами или выемками. +setting.uiEdgePadding.description = Добавляет отступы к краям пользовательского интерфейса. \nПолезно для дисплеев с закругленными углами или выемками. setting.swapdiagonal.name = Всегда диагональное размещение setting.screenshake.name = Тряска экрана setting.bloomintensity.name = Интенсивность свечения @@ -1421,10 +1426,9 @@ setting.milliseconds = {0} миллисекунд setting.fullscreen.name = Полноэкранный режим setting.fps.name = Показывать FPS и пинг setting.console.name = Включить консоль -setting.drawhitboxes.name = Display Hitboxes -setting.showperformance.name = Display Performance Metrics -setting.buildingtimestep.name = Fixed Building Timestep -setting.buildingtimestep.description = Runs buildings on a fixed timestep with constant delta,\nas opposed to every frame with variable delta.\nIf buildings cannot be updated fast enough, the game will slow down.\nIf you don't know what that means, don't touch this option. +setting.drawhitboxes.name = Отображать хитбоксы +setting.buildingtimestep.name = Фиксированное обновление построек +setting.buildingtimestep.description = Обновляет постройки с фиксированным промежутком и постоянной дельтой, вместо обновления каждый кадр и переменной дельтой.\nЕсли постройки не могут быть обновлены достаточно быстро, игра замедлится.\nЕсли вы не знаете, что это значит, не трогайте эту настройку. setting.smoothcamera.name = Плавная камера setting.detach-camera.name = Свободная камера setting.detach-camera.description = При включении, вместо единицы можно будет двигать камеру.\nМожно быстро переключать через горячую клавишу. @@ -1626,8 +1630,8 @@ rules.checkplacement.info = При отключении, постройки эт rules.enemyCheat = Бесконечные ресурсы у ИИ rules.blockhealthmultiplier = Множитель прочности блоков rules.blockdamagemultiplier = Множитель урона блоков -rules.unitfactoryactivation = Unit Factory Activation Delay -rules.unitfactoryactivation.objective = Unit Factories Activating: {0} +rules.unitfactoryactivation = Задержка активации производства боевых единиц +rules.unitfactoryactivation.objective = До активации производства боевых единиц: {0} rules.unitbuildspeedmultiplier = Множитель скорости производства боев. ед. rules.unitcostmultiplier = Множитель стоимости боев. ед. rules.unithealthmultiplier = Множитель прочности боев. ед. @@ -1669,7 +1673,7 @@ rules.invasions = Вторжения врагов на сектора rules.legacylaunchpads = Старые пусковые площадки rules.legacylaunchpads.info = Позволяет использовать старые пусковые площадки из версии 7.0. landingpad.legacy.disabled = [scarlet]\ue815 Выключено[lightgray] ("Старые пусковые площадки" включены) -rules.hidespawns = Hide Enemy Spawns +rules.hidespawns = Скрыть точки появления врагов rules.randomwaveai = Непредсказуемый ИИ волн rules.pauseDisabled = Отключить паузы rules.fire = Огонь @@ -2193,9 +2197,9 @@ block.disperse.name = Диапазон block.afflict.name = Бедствие block.lustre.name = Сияние block.scathe.name = Погибель -block.scathe.carbide.info = Travels significantly faster.\nModerate damage at any range. -block.scathe.surge-alloy.info = Splits into micro missiles.\nHeavy damage at close distance. -block.scathe.phase-fabric.info = Equipped with a force field.\nLow damage, largest radius. +block.scathe.carbide.info = Летит быстрее.\nСредний урон на любой дистанции. +block.scathe.surge-alloy.info = Разделяется на мини-ракеты.\nБольшой урон на близкой дистанции. +block.scathe.phase-fabric.info = Оснащён щитом.\nНизкий урон, наибольшая дистанция. block.tank-refabricator.name = Рефабрикатор танков block.mech-refabricator.name = Рефабрикатор мехов block.ship-refabricator.name = Рефабрикатор кораблей @@ -2314,7 +2318,7 @@ ff.arc = Турели :arc: [accent]«Дуга»[] требуют энергии fungalpass.tutorial1 = Используйте [accent]единицы[] для защиты построек и атаки на врага.\nИсследуйте и разместите :ground-factory: [accent]Наземную фабрику[]. fungalpass.tutorial2 = Выберите единицу :dagger: [accent]«Кинжал»[] на фабрике.\nПроизведите 3 единицы. -frontier.tutorial1 = :additive-reconstructor: [accent]Добавляющий реконструктор[]\nулучшает единицы 1-го уровня до 2-го\nс использованием :silicon: кремния и :graphite: графита.\n\n[accent]Исследуйте и реконструируйте\n[]:dagger:[accent] Кинжал в []:mace:[accent] Булаву. +frontier.tutorial1 = :additive-reconstructor: [accent]Добавляющий реконструктор[]\nулучшает единицы 1-го уровня до 2-го\nс использованием :silicon: кремния и :graphite: графита.\n\n[accent]Реконструируйте []:dagger:[accent] Кинжал \nв []:mace:[accent] Булаву. frontier.tutorial2 = Волны врагов приходят [accent]бесконечно[] до тех пор, пока все вражеские ядра не будут [unlaunched]уничтожены[]. frontier.tutorial3 = [accent]Атакуйте базу врага быстро, чтобы предотвратить усиление волн[]. @@ -2742,7 +2746,7 @@ lst.radar = Обнаруживает единицы вокруг построй lst.sensor = Получает данные из постройки или единицы. lst.set = Задаёт значение переменной. lst.operation = Совершает операцию над 1-2 переменными. -lst.select = Conditionally set a variable to one of two values. +lst.select = Условно устанавливает значение переменной. lst.end = Переходит к началу стека операций. lst.wait = Ждёт определённое количество секунд. lst.stop = Останавливает работу данного процессора. @@ -2755,7 +2759,7 @@ lst.unitlocate = Обнаруживает позицию/постройку оп lst.getblock = Получает данные о плитке в любом месте. lst.setblock = Устанавливает плитку в любом месте. lst.spawnunit = Создает боевую единицу на локации. -lst.spawnbullet = Spawns a bullet at a location. +lst.spawnbullet = Создаёт пулю на локации. lst.applystatus = Применяет или снимает эффект статуса с боевой единицы. lst.weathersense = Проверяет состояние погоды. lst.weatherset = Устанавливает погоду. @@ -2778,7 +2782,7 @@ lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent lst.makemarker = Создать новый логический маркер.\nНужно указать ID маркера.\nМаксимум 20000 маркеров. lst.setmarker = Установить значение маркера.\nID маркера должен соответствовать указанному в строке создания маркера. lst.localeprint = Добавляет данные локалей в текстовый буфер.\nЧтобы добавить локали, зайдите в [accent]Информация о карте > Наборы локалей[].\nЕсли клиент на мобильном устройсте, сначала попытается найти строку с окончанием ".mobile". -lst.query = Queries units/buildings in a specified area.\nResults are outputted into [accent]@queries[].\nResults can be read from [accent]@queries[] using the [accent]Read[] instruction and an index.\nLength of [accent]@queries[] can be sensed using [accent]@size[] as a parameter. +lst.query = Проверяет единицы/постройки в области.\nРезультаты попадают в [accent]@queries[].\nРезультаты из [accent]@queries[] можно прочитать с помощью инструкции [accent]Read[] и индекса.\nДлина [accent]@queries[] может быть прочитана с использованием [accent]@size[] как параметра. lglobal.false = 0 lglobal.true = 1 From 780449edee6d804f34b5869013d86a96a964e592 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Sat, 4 Jul 2026 00:23:52 +0000 Subject: [PATCH 06/11] Automatic bundle update --- core/assets/bundles/bundle_id_ID.properties | 4 ++-- core/assets/bundles/bundle_ru.properties | 10 +++------- core/assets/bundles/bundle_vi.properties | 3 ++- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index be524c0916..871bb32f79 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -543,7 +543,7 @@ bundle.lines = {0} baris images = Gambar asset.title = Patch Data & Aset -asset.guide = Panduan Penggunaan +asset.guide = Panduan Penggunaan asset.bundle.exists = Paket terjemahan dengan jalur '{0}' sudah ada. asset.importzip = Impor Aset Zip asset.exportzip = Ekspor Aset Zip @@ -582,7 +582,7 @@ asset.image.env = [accent]Penggunaan Atlas lingkungan: [lightgray]{0} asset.image.size = [accent]Ukuran: [lightgray]{0}x{1} asset.image.filesize = [accent]Ukuran File: [lightgray]{0} asset.image.packfailed = [red]⚠ Gagal mengemas sprite![] -asset.image.packfailed.env = Hal ini kemungkinan disebabkan oleh kurangnya ruang dalam atlas lingkungan.\Perlu dicatat bahwa total area untuk sprite lingkungan dibatasi sebesar 512x512. +asset.image.packfailed.env = Hal ini kemungkinan disebabkan oleh kurangnya ruang dalam atlas lingkungan.Perlu dicatat bahwa total area untuk sprite lingkungan dibatasi sebesar 512x512. workshop = Workshop waves.title = Gelombang diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 78009040e5..09141c1b4b 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -222,9 +222,7 @@ campaign.erekir = Новый, более отточенный контент. В campaign.serpulo = Старый контент, классический опыт. Более вариативное прохождение.\n\nПотенциально несбалансированные карты и механики кампании. Менее отточено. campaign.difficulty = Сложность campaign.rework.title = Примечание об изменении кампании -campaign.rework.serpulo = [accent]⚠ Кампания Серпуло была переработана.[]\n\n\ -Порядок секторов и их сложность были изменены. Вы можете столкнуться с проблемами, связанными с сохранением или загрузкой данных кампании из старых версий.\n\n\ -Для лучшего опыта, подумайте о том, чтобы сбросить сохранения кампании в настройках. +campaign.rework.serpulo = [accent]⚠ Кампания Серпуло была переработана.[]\n\nПорядок секторов и их сложность были изменены. Вы можете столкнуться с проблемами, связанными с сохранением или загрузкой данных кампании из старых версий.\n\nДля лучшего опыта, подумайте о том, чтобы сбросить сохранения кампании в настройках. completed = [accent]Завершено techtree = Дерево\n технологий techtree.select = Выбор дерева технологий @@ -357,10 +355,7 @@ save.export.fail = [scarlet]Не удалось экспортировать с save.export.needsload = [scarlet]⚠ Это сохранение имеет встроенные ресурсы.[]\nЗагрузите это сохранение перед экспортом. save.assets.missing = Недостающие ресурсы save.assets.missing.list = Список ресурсов... -save.assets.missing.info = [scarlet]⚠ В сохранении отсутствует часть ресурсов![]\n\n\ -[lightgray]Это скорее всего произошло из-за некорректного экспорта.\n\ -[lightgray]Если вы делитесь сохранениями, экспортируйте их только через внутриигровой интерфейс. Не копируйте файлы напрямую.\n\ -[lightgray]Если перенос файлов обязателен, убедитесь, что папка [accent]assetCache[] тоже скопирована. +save.assets.missing.info = [scarlet]⚠ В сохранении отсутствует часть ресурсов![]\n\n[lightgray]Это скорее всего произошло из-за некорректного экспорта.\n[lightgray]Если вы делитесь сохранениями, экспортируйте их только через внутриигровой интерфейс. Не копируйте файлы напрямую.\n[lightgray]Если перенос файлов обязателен, убедитесь, что папка [accent]assetCache[] тоже скопирована. save.import = Импортировать сохранение save.newslot = Имя сохранения: save.rename = Переименовать @@ -1427,6 +1422,7 @@ setting.fullscreen.name = Полноэкранный режим setting.fps.name = Показывать FPS и пинг setting.console.name = Включить консоль setting.drawhitboxes.name = Отображать хитбоксы +setting.showperformance.name = Display Performance Metrics setting.buildingtimestep.name = Фиксированное обновление построек setting.buildingtimestep.description = Обновляет постройки с фиксированным промежутком и постоянной дельтой, вместо обновления каждый кадр и переменной дельтой.\nЕсли постройки не могут быть обновлены достаточно быстро, игра замедлится.\nЕсли вы не знаете, что это значит, не трогайте эту настройку. setting.smoothcamera.name = Плавная камера diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 6498cd3835..fccb6b5cf1 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1422,6 +1422,7 @@ setting.fullscreen.name = Toàn màn hình setting.fps.name = Hiện FPS & Ping setting.console.name = Bật Bảng điều khiển setting.drawhitboxes.name = Hiển Thị Khung Va Chạm +setting.showperformance.name = Display Performance Metrics setting.buildingtimestep.name = Bước Thời Gian Công Trình Cố Định setting.buildingtimestep.description = Thực hiện công trình trong bước thời gian cố định với hằng số thời gian,\nngược lại mỗi khung hình với biến số thời gian.\nNếu công trình không thể cập nhật đủ nhanh, trò chơi sẽ chậm xuống.\nNếu bạn không biết nó có nghĩa gì, đừng đụng vào tùy chọn này. setting.smoothcamera.name = Khung quay mượt mà @@ -2773,7 +2774,7 @@ lst.setprop = Thiết đặt một thuộc tính của đơn vị hoặc công t lst.effect = Tạo một phần hiệu ứng nhỏ. lst.sync = Đồng bộ biến số qua mạng.\nChỉ gọi tối đa 20 lần mỗi giây cho mỗi biến. lst.playsound = Phát một âm thanh.\nÂm lượng và hướng xoay có thể là một giá trị toàn cục, hoặc được tính toán dựa vào vị trí. -lst.playmusic = Phát một bản nhạc theo tên, vd: [accent]\"game1\"[].\nNếu [accent]interrupt[] là [accent]true[], nhạc đang phát trước đó sẽ bị dừng lại.\nPhát nhạc tên [accent]null[] và [accent]interrupt[] là [accent]true[] sẽ dừng bản phát hiện tại.\nLưu ý rằng nhạc từ bản vá dữ liệu phải bắt đầu với [accent]dp-[]. +lst.playmusic = Phát một bản nhạc theo tên, vd: [accent]"game1"[].\nNếu [accent]interrupt[] là [accent]true[], nhạc đang phát trước đó sẽ bị dừng lại.\nPhát nhạc tên [accent]null[] và [accent]interrupt[] là [accent]true[] sẽ dừng bản phát hiện tại.\nLưu ý rằng nhạc từ bản vá dữ liệu phải bắt đầu với [accent]dp-[]. lst.makemarker = Tạo mới điểm đánh dấu logic trên thế giới.\nMột định danh cho điểm đánh dấu này phải được cung cấp.\nĐiểm đánh dấu hiện tại bị giới hạn 20,000 trên mỗi thế giới. lst.setmarker = Thiết đặt một thuộc tính cho một điểm đánh dấu.\nĐịnh danh phải giống như định danh ở chỉ lệnh Tạo Điểm đánh dấu (Make Marker).\nGiá trị [accent]null[] sẽ bị phớt lờ. lst.localeprint = Thêm một giá trị thuộc tính ngôn ngữ của bản đồ vào bộ đệm văn bản.\nĐể thiết đặt gói ngôn ngữ trong trình chỉnh sửa bản đồ, xem qua [accent]Thông tin bản đồ > Gói ngôn ngữ[].\nNếu máy khách là một thiết bị di động, sẽ cố in thuộc tính kết thúc bằng ".mobile" trước tiên. From 713e796da69b9b43416f757b47bc66d7255b6180 Mon Sep 17 00:00:00 2001 From: EggleEgg <125359838+EggleEgg@users.noreply.github.com> Date: Sat, 4 Jul 2026 02:24:00 +0200 Subject: [PATCH 07/11] Serpulo nano-rebalance: conveyor and junction (#11767) --- core/src/mindustry/content/Blocks.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index ae16aff021..270d55ac38 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -2068,9 +2068,8 @@ public class Blocks{ conveyor = new Conveyor("conveyor"){{ requirements(Category.distribution, with(Items.copper, 1)); health = 45; - speed = 0.03f; - displayedSpeed = 4.2f; - buildCostMultiplier = 2f; + speed = 0.046f; + displayedSpeed = 6.5f; researchCost = with(Items.copper, 5); }}; @@ -2100,7 +2099,7 @@ public class Blocks{ speed = 26; capacity = 6; health = 30; - buildCostMultiplier = 6f; + buildCostMultiplier = 3f; }}; itemBridge = new BufferedItemBridge("bridge-conveyor"){{ From 7b8347a9c275f7222adb200f340b51b47f6e4fc4 Mon Sep 17 00:00:00 2001 From: Y-Yes <129616271+Y-Yes@users.noreply.github.com> Date: Sat, 4 Jul 2026 03:24:11 +0300 Subject: [PATCH 08/11] Updated translations in bundle_lt.properties (#12248) --- core/assets/bundles/bundle_lt.properties | 122 +++++++++++------------ 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 359af76489..d998fac794 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -18,8 +18,8 @@ linkopen = Šis serveris atsiuntė jums nuorodą. Ar jūs norite atidaryti ją?\ clipboardcopy = This server wants to copy text to your clipboard. Are you sure you want to continue?\n\n[sky]{0} linkfail = Nepavyko atidaryti nuorodos!\nURL nukopijuotas į jūsų iškarpinę. screenshot = Ekrano kopija išsaugota į {0} -screenshot.invalid = Žemėlapis yra per didelis, potencialiai nepakanka vietos išsaugoti ekrano kopiją. -screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large. +screenshot.invalid = Žemėlapis yra per didelis, galimai nepakanka vietos išsaugoti ekrano kopijai. +screenshot.error = Nepavyko padaryti ekrano nuotraukos. Jūsų įrenginys galimai nepalaiko tokio dydžio ekranvaizdžio. gameover = Žaidimas Baigtas gameover.disconnect = Atsijungti gameover.pvp = [accent] {0}[] komanda laimėjo! @@ -27,7 +27,7 @@ gameover.waiting = [accent]Laukiama kito žemėlapio... highscore = [accent]Naujas rekordas! copied = Nukopijuota. indev.notready = Ši žaidimo dalis dar neparuošta -bundle.external = Note: You have successfully loaded an external translation bundle.\n[accent]{0} +bundle.external = Pastaba: Sėkmingai įkėlėte išorinį vertimų rinkinį.\n[accent]{0} load.sound = Garsai load.map = Žemėlapiai @@ -52,7 +52,7 @@ mods.browser.view-releases = Pažiūrėti leidimus mods.browser.noreleases = [scarlet]Nerasti jokių leidimų\n[accent]Nėjo rasti leidimų šiai modifikacijai. Patikrinkite ar modifikacijos repo yra paskelbtų leidimų. mods.browser.latest = mods.browser.releases = Leidimai -mods.browser.fetching = Fetching Releases... +mods.browser.fetching = Ieškoma Leidimų... mods.github.open = Repo mods.github.open-release = Leidimų puslapis mods.browser.sortdate = Rūšioti pagal naujausius @@ -62,7 +62,7 @@ export.file = Eksportuoti failą import.file = Importuoti failą copy.clipboard = Kopijuoti į iškarpinę import.clipboard = Importuoti iš iškarpinės -workshop.browse = Browse Workshop +workshop.browse = Naršyti Dirbtuves workshop.share = Dalintis Dirbtuvėje schematic = Schema @@ -89,15 +89,15 @@ schematic.tagdelconfirm = Visiškai ištrinti šią žymę? schematic.tagexists = Ši žymė jau egzistuoja. stats = Statistikos -stats.wave = Bangos Praeitos -stats.unitsCreated = Units Created -stats.enemiesDestroyed = Priešai sunaikinti -stats.built = Pastatų pastata -stats.destroyed = Pastatų sugriauta -stats.deconstructed = Pastatų dekonstruta -stats.playtime = Laiko žaista +stats.wave = Bangų Įveikta +stats.unitsCreated = Vienetų Sukurta +stats.enemiesDestroyed = Priešų sunaikinta +stats.built = Pastatų Pastatyta +stats.destroyed = Pastatų Sugriauta +stats.deconstructed = Pastatų Iškonstruota +stats.playtime = Laiko Žaista -globalitems = [accent]Globalūs Daiktai +globalitems = [accent]Globalūs Resursai map.delete = Ar esate tikri, jog norite ištrinti žemėlapį "[accent]{0}[]"? level.highscore = Rekordas: [accent]{0} level.select = Lygio pasirinkimas @@ -114,8 +114,8 @@ joingame = Įeiti į žaidimą customgame = Pasirinktinis žaidimas newgame = Naujas žaidimas none = -none.found = [lightgray] -none.inmap = [lightgray] +none.found = [lightgray] +none.inmap = [lightgray]<žemėlapyje nerasta> minimap = Mini žemėlapis position = Pozicija close = Uždaryti @@ -128,9 +128,9 @@ continue = Tęsti maps.none = [lightgray]Nerasta žemėlapių! invalid = Klaidingas pickcolor = Pasirinkti spalvą -color = Color -import = Import -export = Export +color = Spalva +import = Importuoti +export = Eksportuoti preparingconfig = Ruošiamos konfiguracijos preparingcontent = Ruošiamas turinys uploadingcontent = Talpinamas turinys @@ -140,7 +140,7 @@ committingchanges = Daromi pakeitimai done = Baigta feature.unsupported = Jūsų įrenginys nepalaiko šios funkcijos. -mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[] +mods.initfailed = [red]⚠[] Praitas Mindustry paleidimas nepavyko. Tikėtina, kad tai sukėlė netinkamai veikiančios modifikacijos.\n\nSiekiant išvengti strigimo pasikartojimo, [red]visos modifijacijos išjungtos.[] mods = Modifikacijos mods.name = Mod: mods.none = [lightgray]Modifikacijos nerastos @@ -149,8 +149,8 @@ mods.report = Pranešti apie klaidas mods.openfolder = Atidaryti modifikacijų aplanką mods.viewcontent = Peržiūrėti turinį mods.reload = Perkrauti -mods.reloadexit = Žadimas dabar išsijungs perkrauti modifikacijas. -mod.installed = [[Installed] +mods.reloadexit = Žaidimas išsijungs modifikacijoms perkrauti. +mod.installed = [[Įdiegta] mod.display = [gray]Modifikacijos:[orange] {0} mod.enabled = [lightgray]Įjungta mod.disabled = [scarlet]Išjungta @@ -168,9 +168,9 @@ mod.erroredcontent = [scarlet]Turinio klaidos. mod.circulardependencies = [red]Circular Dependencies mod.incompletedependencies = [red]Nebaigtos Priklausomybės -mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function. -mod.incompatiblemod.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 154[] to its [accent]mod.json[] file. -mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it. +mod.requiresversion.details = Reikalinga žaidimo versija: [accent]{0}[]\nJūsų žaidimo versija yra pasenusi. Šiai modifikacijai veikti reikalinga naujesnė žaidimo versija (gali būti beta/alpha leidimas). +mod.incompatiblemod.details = Ši modifikacija yra nesuderinama su naujausia žaidimo versija. Autoriui reikia ją atnaujinti ir pridėti [accent]minGameVersion: 154[] į jos [accent]mod.json[] failą. +mod.blacklisted.details = Ši modifikacija buvo rankiniu būdu uždrausta, nes sukelia gedimus ar kitas problemas su šia žaidimo versija. Nenaudokite jos. mod.missingdependencies.details = Šiai modifikacijai trūksta priklausomybių: {0} mod.erroredcontent.details = Ši modifikacija kraunant sukėlė klaidų. Paprašykite modifikacijos autoriaus pataisyti jas. mod.circulardependencies.details = Ši modifikacija turi priklausomybių kurios priklauso nuo vieno kito. @@ -179,7 +179,7 @@ mod.incompletedependencies.details = Šios modifikacijos negalima užkrauti dėl mod.requiresversion = Reikia žaidimo versijos: [red]{0} mod.errors = Įvyko klaida kraunant turinį. -mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly. +mod.errors.map = [scarlet]Iškilo klaidų kraunant žemėlapio turinį. Visas modifikuotas turinys išjungas.[]\nŠis žemėlapis, tikėtina, neveiks tinkamai. mod.noerrorplay = [scarlet]Turite modifikacijas su klaidomis.[] Išjunkite modifikacijas su klaidomis arba patasykite jas prieš žaidžiant. mod.enable = Įjungti mod.requiresrestart = Žaidimas dabar išsijungs modifikacijų perkrovimui. @@ -196,15 +196,15 @@ mod.preview.missing = Prieš publikuojant šią modifikaciją workshop'e, jūs p mod.folder.missing = Tik modifikacijos aplanko formoje gali būti publikuojamos workshop'e.\nNorint konvertuoti bet kurią modifikaciją į aplanką, paprasčiausiai išpakuokite jos failą į aplanką ir ištrinkite senąją zip versiją, po to, perkraukite žaidimą arba modifikacijas. mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game. -mod.dependencies.error = [scarlet]Mods are missing dependencies -mod.dependencies.soft = (optional) -mod.dependencies.download = Import -mod.dependencies.downloadreq = Import Required -mod.dependencies.downloadall = Import All -mod.dependencies.status = Import Results -mod.dependencies.success = Successfully downloaded: -mod.dependencies.failure = Failed to download: -mod.dependencies.imported = This mod requires dependencies. Download? +mod.dependencies.error = [scarlet]Modifikacijos turi neišpildytų priklausomybių +mod.dependencies.soft = (neprivaloma) +mod.dependencies.download = Importuoti +mod.dependencies.downloadreq = Importuoti privalomus +mod.dependencies.downloadall = Importuoti viską +mod.dependencies.status = Importavimo Rezultatai +mod.dependencies.success = Sėkmingai parsisiųsta: +mod.dependencies.failure = Nepavyko parsisiųsti: +mod.dependencies.imported = Šiai modifikacijai reikalingos priklausomybės. Atsisiųsti? about.button = Apie name = Vardas: @@ -218,14 +218,14 @@ available = Naujas turinys pasiekiamas! unlock.incampaign = < Atrakinkite kampanijoje detalėm > campaign.select = Pasirinkite pradinę kampanija campaign.none = [lightgray]Pasirinkite planetą ant kurios pradėti.\nTai gali būti pakeista bet kada. -campaign.erekir = Naujesnis, patobulintas turinys. Daugiausia linijinė kampanijos eiga.\n\nAukštesnės kokybės žemėlapiai ir bendra patirtis. -campaign.serpulo = Senesnis turinys; klasikinė versija. Atviresnis.\n\nPotencialiai nebalancuoti žemelapiai ir kampanijos mechanika. Mažiau tobulinta. -campaign.difficulty = Difficulty -campaign.rework.title = Campaign Changes Notice -campaign.rework.serpulo = [accent]⚠ The Serpulo campaign has been reworked.[]\n\nSector positions and difficulty have changed. You may encounter issues relating to leftover campaign saves from the old layout.\n\nFor a cleaner experience, consider resetting your campaign saves in the settings. +campaign.erekir = Naujesnis, patobulintas turinys. Daugiausia nuosekli kampanijos eiga.\n\nAukštesnės kokybės žemėlapiai ir bendra patirtis. +campaign.serpulo = Senesnis turinys; klasikinė versija. Atviresnis.\n\nPotencialiai nebalansuoti žemelapiai ir kampanijos mechanika. Mažiau tobulinta. +campaign.difficulty = Sudėtingumas +campaign.rework.title = Kampanijos Pakeitimų Įspėjimas +campaign.rework.serpulo = [accent]⚠ Serpulo kampanija buvo perdirba.[]\n\nSektorių pozicijos ir sudėtingumas pasikeitė. Galite susidurti su problemomis, susijusiomis su kampanijos išsaugojimais senesniu formatu.\n\nDėl geresnės patirties, apsvarstykite kampanijos išsaugojimų atstatymą nustatymuose. completed = [accent]Išrasta techtree = Technologijų Medis -techtree.select = Technologijų Medį parinkti +techtree.select = Technologijų Medžio Pasirinkimas techtree.serpulo = Serpulo techtree.erekir = Erekir research.load = Load @@ -272,7 +272,7 @@ hosts.none = [lightgray]Žaidimų vietiniame tinkle nerasta! host.invalid = [scarlet]Negalima prisijungti prie serverio. servers.local = Vietinio Tinklo Serveriai -servers.local.steam = Open Games & Local Servers +servers.local.steam = Atviri Žaidimai ir Vietiniai Serveriai servers.remote = Nuotoliniai Serveriai servers.global = Globalūs Serveriai @@ -286,7 +286,7 @@ trace = Sekti Žaidėją trace.playername = Žaidėjo vardas: [accent]{0} trace.ip = IP: [accent]{0} trace.id = Unikalus ID: [accent]{0} -trace.language = Language: [accent]{0} +trace.language = Kalba: [accent]{0} trace.mobile = Mobilus Klientas: [accent]{0} trace.modclient = Custom Client: [accent]{0} trace.times.joined = Sykių prisijungta: [accent]{0} @@ -295,18 +295,18 @@ trace.ips = IPs: trace.names = Vardai: invalidid = Netaisyklingas kliento ID! Praneškite apie klaidą. -player.ban = Baninti +player.ban = Užblokuoti player.kick = Išmesti player.trace = Sekti player.admin = Perjungti admininistratorių -player.team = Keisti komandą +player.team = Keisti Komandą server.bans = Užblokavimai server.bans.none = Nerasta užblokuotų žaidėjų! server.admins = Administratoriai server.admins.none = Nerasta administratorių! server.add = Pridėti Serverį -server.delete = Ar esate tikras jog norite panaikinti serverį? +server.delete = Ar tikrai norite panaikinti serverį? server.edit = Redaguoti Serverį server.outdated = [crimson]Pasenęs serveris![] server.outdated.client = [crimson]Pasenęs Klientas![] @@ -329,7 +329,7 @@ disconnect.data = Nepavyko užkrauti pasaulio informacijos! disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection. cantconnect = Negalima prisijungti prie žaidimo ([accent]{0}[]). connecting = [accent]Prisijungiama... -reconnecting = [accent]Reconnecting... +reconnecting = [accent]Jungiamasi iš naujo... connecting.establish = [accent]Establishing connection... receiving.world = [accent]Receiving world data ({0})... @@ -338,7 +338,7 @@ receiving.assets.fail = Error occurred while receiving assets. server.port = Prievadas: server.invalidport = Negaliams prievado numeris! -server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network! +server.error.addressinuse = [scarlet]Nepavyko atidaryti serverio 6567 prievade.[]\n\nĮsitikinkite, kad jūsų įrenginyje, ar tinkle, nėra kitų Mindustry serverių! server.error = [crimson]Įvyko klaida. save.new = Naujas Išsaugojimas save.overwrite = Ar esate tikras, jog\n norite perrašyti šį elementą? @@ -363,29 +363,29 @@ save.rename.text = Naujas pavadinimas: selectslot = Pasirinkite išsaugojimą. slot = [accent]Elementas {0} editmessage = Redaguoti žinutę -save.corrupted = Išsaugojimo failas yra sugadintas arba ! -empty = +save.corrupted = Išsaugojimo failas yra sugadintas arba netinkamas! +empty = on = Įjungta off = Išjungta -save.search = Search saved games... +save.search = Ieškoti išsaugotų žaidimų... save.autosave = Automatinis išsaugojimas: {0} save.map = Žemėlapis: {0} save.wave = Banga {0} save.mode = Žaidimo Režimas: {0} save.date = Paskutinis Išsaugojimas: {0} save.playtime = Žaidimo laikas: {0} -dontshowagain = Don't show again +dontshowagain = Daugiau nerodyti warning = Perspėjimas. confirm = Priimti delete = Šalinti view.workshop = Apžiūrėti Workshop'e workshop.listing = Edit Workshop Listing -hide = Hide +hide = Paslėpti ok = Gerai open = Atidaryti customize = Keisti Taisykles cancel = Atšaukti -command = Command +command = Valdyti command.queue = [lightgray][Queuing] command.mine = Mine command.repair = Repair @@ -411,7 +411,7 @@ openlink = Atidaryti Nuorodą copylink = Kopijuoti Nuorodą back = Sugrįžti max = Max -objective = Map Objective +objective = Žemėlapio Tikslas crash.export = Export Crash Logs crash.none = No crash logs found. crash.exported = Crash logs exported. @@ -423,7 +423,7 @@ data.invalid = Tai nėra veikiantys žaidimo duomenys. data.import.confirm = Importuojant išorinius duomenis bus pašalinti[scarlet] visi esami duomenys[] quit.confirm = Ar tikrai norite išeiti? loading = [accent]Kraunama... -downloading = [accent]Downloading... +downloading = [accent]Atisiunčiama... saving = [accent]Išsaugoma... respawn = [accent][[{0}][] to respawn in core cancelbuilding = [accent][[{0}][] plano išvalymui @@ -432,15 +432,15 @@ pausebuilding = [accent][[{0}][] statymo sustabdymui resumebuilding = [scarlet][[{0}][] statymo pratęsimui enablebuilding = [scarlet][[{0}][] to enable building showui = UI hidden.\nPress [accent][[{0}][] to show UI. -commandmode.name = [accent]Command Mode +commandmode.name = [accent]Valdymo Režimas commandmode.nounits = [no units] wave = [accent]Banga {0} -wave.cap = [accent]Wave {0}/{1} -wave.waiting = [lightgray]Banga po {0} +wave.cap = [accent]Banga {0}/{1} +wave.waiting = [lightgray]Banga už {0} wave.waveInProgress = [lightgray]Vyksta banga waiting = [lightgray]Laukiama... waiting.players = Laukiama žaidėjų... -wave.enemies = [lightgray]{0} Likę priešai +wave.enemies = [lightgray]{0} Likę priešų wave.enemycores = [accent]{0}[lightgray] Enemy Cores wave.enemycore = [accent]{0}[lightgray] Enemy Core wave.enemy = [lightgray]{0} Likęs priešas @@ -958,11 +958,11 @@ difficulty.enemySpawnMultiplier = Enemy Amount: {0} difficulty.waveTimeMultiplier = Wave Timer: {0} difficulty.nomodifiers = [lightgray](No modifiers) -planets = Planets +planets = Planetos planet.serpulo.name = Serpulo planet.erekir.name = Erekir -planet.sun.name = Sun +planet.sun.name = Saulė sector.impact0078.name = Impact 0078 sector.groundZero.name = Ground Zero From 6d855fef2421c3dba4bdbfe652875b3cf1badc1a Mon Sep 17 00:00:00 2001 From: Pyratite No Lead <62745850+woodjecket@users.noreply.github.com> Date: Sat, 4 Jul 2026 08:25:36 +0800 Subject: [PATCH 09/11] Update Simplified Chinese Translation (#12215) * Update Simplified Chinese translation * Update Simplified Chinese translation 2 * Fix typo * Revert "Fix typo" This reverts commit 9a097d8e19f1de32df6af0fb3be222462628cb32. * Fix typo * Update Simplified Chinese Translation * Update Simplified Chinese translation 2 * Fix typo * Fix typo --- core/assets/bundles/bundle_zh_CN.properties | 175 ++++++++++---------- 1 file changed, 90 insertions(+), 85 deletions(-) diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 0b06c373f6..944c74193d 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -19,7 +19,7 @@ clipboardcopy = 这个服务器想要将文本复制到你的剪贴板。你确 linkfail = 无法打开链接!\n链接已复制到你的剪贴板。 screenshot = 截图已保存到 {0} screenshot.invalid = 地图太大了,可能没有足够的内存进行截图。 -screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large. +screenshot.error = 未能截图。你的设备可能不支持这么大的截图。 gameover = 游戏结束 gameover.disconnect = 断开连接 gameover.pvp = [accent]{0}[] 队获胜! @@ -179,7 +179,7 @@ mod.incompletedependencies.details = 此模组无法加载,因为缺少或无 mod.requiresversion = 需要游戏版本:[red]{0} mod.errors = 加载内容时发生错误。 -mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly. +mod.errors.map = [scarlet]加载地图内容时发生错误。自定义内容已经全部禁用。[]\n地图可能发生异常。 mod.noerrorplay = [red]你的模组发生了错误。[] 请禁用受影响的模组或修复错误后再进行游戏。 mod.enable = 启用 mod.requiresrestart = 游戏将关闭以应用模组更改。 @@ -222,7 +222,9 @@ campaign.erekir = 更新的、更精致的内容。主要是线性的战役进 campaign.serpulo = 较旧的内容;经典体验。更具开放性,更多的内容。\n\n可能存在不平衡的地图和战役机制。 campaign.difficulty = 难度 campaign.rework.title = 战役更改通知 -campaign.rework.serpulo = [accent]⚠ 塞普罗战役已全面重做。[]\n\n区块位置和难度发生变化。你或许会遇到与旧版本遗留区块相关的问题。\n\n若想获得更干净的游戏体验,可以在设置中重置战役进度。 +campaign.rework.serpulo = [accent]⚠ 塞普罗战役已全面重做。[]\n\n\ +区块位置和难度发生变化。你或许会遇到与旧版本遗留区块相关的问题。\n\n\ +若想获得更干净的游戏体验,可以在设置中重置战役进度。 completed = [accent]已研究 techtree = 科技树 techtree.select = 切换科技树 @@ -331,10 +333,10 @@ cantconnect = 无法加入游戏([accent]{0}[])。 connecting = [accent]连接中… reconnecting = [accent]重新连接… -connecting.establish = [accent]Establishing connection... -receiving.world = [accent]Receiving world data ({0})... -receiving.assets = [accent]Receiving assets ({0})... -receiving.assets.fail = Error occurred while receiving assets. +connecting.establish = [accent]建立连接中... +receiving.world = [accent]接收世界数据中 ({0})... +receiving.assets = [accent]接收资源中 ({0})... +receiving.assets.fail = 接收资源时发生错误。 server.port = 端口: server.invalidport = 端口号无效! @@ -352,10 +354,13 @@ save.export = 导出存档 save.import.invalid = [accent]此存档无效! save.import.fail = [scarlet]导入存档失败:[accent]{0} save.export.fail = [scarlet]导出存档失败:[accent]{0} -save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it. -save.assets.missing = Missing Assets -save.assets.missing.list = Asset List... -save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well. +save.export.needsload = [scarlet]⚠ 此地图内嵌有资源文件。[]\n在导出地图前先加载它们。 +save.assets.missing = 缺失资源 +save.assets.missing.list = 资源列表... +save.assets.missing.info = [scarlet]⚠ 这个地图缺失资源![]\n\n\ +[lightgray]这可能是导出不当导致的。\n\ +[lightgray]分享存档需要通过游戏内界面,不应直接复制文件。\n\ +[lightgray]如果有必要传输文件,确保 [accent]assetCache[] 文件夹也被复制。 save.import = 导入存档 save.newslot = 存档名称: save.rename = 重命名 @@ -516,73 +521,73 @@ editor.filters.planetselect = 选择星球 editor.shiftx = X 轴平移 editor.shifty = Y 轴平移 -asset.patch = Patch -asset.content = Content -asset.bundle = Translation Bundle -asset.image = Image -asset.sound = Sound -asset.music = Music +asset.patch = 补丁 +asset.content = 内容 +asset.bundle = 语言包 +asset.image = 图像 +asset.sound = 音效 +asset.music = 音乐 -content.unit = Unit -content.item = Item -content.liquid = Liquid -content.block = Block -content.planet = Planet -content.weather = Weather -content.status = Status Effect +content.unit = 单位 +content.item = 物品 +content.liquid = 流体 +content.block = 方块 +content.planet = 行星 +content.weather = 天气 +content.status = 状态效果 -patch.set = Patchset: {0} +patch.set = 补丁集:{0} patch.none = [lightgray]未加载补丁集。 patch.errors = 补丁集出错 patch.importerror = 导入补丁集失败 patch.delete.confirm = 您确定要删除此补丁集吗? -patch.path = Path: +patch.path = 路径: patch.fields = {0} 处变动 -bundle.lines = {0} lines +bundle.lines = {0} 行 -images = Images -asset.title = Data Patches & Assets -asset.guide = Usage Guide -asset.bundle.exists = A bundle with path '{0}' already exists. -asset.importzip = Import Asset Zip -asset.exportzip = Export Asset Zip -asset.image.importzip = Import Zip -asset.image.exportzip = Export Zip -asset.clearall = Clear All -asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc. -asset.imports = Import Results -asset.imported = [accent]{0} assets imported. -asset.import.none = No valid asset files found in zip archive. -asset.content.errors = Content Errors -asset.content.add = Add Content -asset.content.type = Type: -asset.content.exists = [red]Content with that name already exists! -asset.content.badname = [red]Invalid name! Most symbols are not allowed. -asset.content.import.file = Import File -asset.content.import.clipboard = Import From Clipboard -asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0} -asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save. -asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file. -asset.delete.confirm = Are you sure you want to delete this asset? -asset.images = Data Patch Images -asset.image.imports = Import Results -asset.image.imported = [accent]{0} images imported. -asset.image.none = No valid PNG files found in zip archive. -asset.image.error = [red]The following errors were encountered:[] -asset.image.clearall.confirm = Are you certain that you wish to clear all images? -asset.image.info = Image Info -asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}. -asset.image.exists = An image with that path/name already exists:\n[lightgray]{0} -asset.image.delete.confirm = Are you certain that you wish to delete this image? -asset.image.name = [accent]File Name: [lightgray]{0} -asset.image.region.name = [accent]Region Name: [lightgray]{0} -asset.image.path = [accent]Path: [lightgray]{0} -asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0} -asset.image.size = [accent]Size: [lightgray]{0}x{1} -asset.image.filesize = [accent]File Size: [lightgray]{0} -asset.image.packfailed = [red]⚠ Failed to pack sprite![] -asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area. +images = 图像 +asset.title = 补丁与资源 +asset.guide = 用法指南 +asset.bundle.exists = 已有路径为'{0}'的文件存在。 +asset.importzip = 导入资源压缩包 +asset.exportzip = 导出资源压缩包 +asset.image.importzip = 导入压缩包 +asset.image.exportzip = 导出压缩包 +asset.clearall = 全部清除 +asset.clearall.confirm = 你确定要清除此地图[red]所有[]的资源文件吗?\n这包括图像,音频和内容等。 +asset.imports = 导入结果 +asset.imported = [accent]导入 {0} 个资源 +asset.import.none = 在压缩包归档中未找到有效资源文件。 +asset.content.errors = 内容错误 +asset.content.add = 添加内容 +asset.content.type = 类型: +asset.content.exists = [red]已有同名内容! +asset.content.badname = [red]无效名称!大部分保留字都无法使用。 +asset.content.import.file = 导入文件 +asset.content.import.clipboard = 从剪贴板导入 +asset.exists = 已有此类资源文件:\n[lightgray]{0} +asset.broken = 无法找到此资源文件。\n这可能是导入或导出不当引起的。 +asset.audio.invalid = 无法加载音频文件。\n确保其为有效的 OGG 或 MP3 文件。 +asset.delete.confirm = 你确定要删除此资源吗? +asset.images = 数据补丁图像 +asset.image.imports = 导入结果 +asset.image.imported = [accent]导入了 {0} 张图像 +asset.image.none = 在压缩包归档中没有有效的 PNG 文件。 +asset.image.error = [red]遇到了以下错误:[] +asset.image.clearall.confirm = 你确定要删除所有图像吗? +asset.image.info = 图像信息 +asset.image.toolarge = 图像 ([lightgray]{0}x{1}[]) 过大,最大尺寸为 {2}x{3}. +asset.image.exists = 已有相同图像:\n[lightgray]{0} +asset.image.delete.confirm = 你确定要删除此图像吗? +asset.image.name = [accent]文件名:[lightgray]{0} +asset.image.region.name = [accent]贴图名:[lightgray]{0} +asset.image.path = [accent]路径: [lightgray]{0} +asset.image.env = [accent]使用环境图集: [lightgray]{0} +asset.image.size = [accent]尺寸: [lightgray]{0}x{1} +asset.image.filesize = [accent]文件大小: [lightgray]{0} +asset.image.packfailed = [red]⚠无法打包图像:[] +asset.image.packfailed.env = 这可能是环境图集空间不足导致的。\n注意,环境贴图最大为 512x512。 workshop = 创意工坊 waves.title = 波次 @@ -1092,7 +1097,7 @@ settings.resetKey = 恢复默认 settings.controls = 控制 settings.game = 游戏 settings.sound = 声音 -settings.dev = Developer Options +settings.dev = 开发者选项 settings.graphics = 图形 settings.cleardata = 清除游戏数据 settings.clear.confirm = 确认要清除该数据吗?\n此操作无法撤销! @@ -1142,7 +1147,7 @@ stat.targetsground = 攻击地面单位 stat.crushdamage = 碾压伤害 stat.legsplashdamage = 践踏伤害 stat.itemsmoved = 移动速度 -stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS. +\stat.itemsmoved.info = 吞吐量与时间并不是线性关系,易受FPS/TPS影响。 stat.launchtime = 发射间隔 stat.shootrange = 范围 stat.size = 尺寸 @@ -1421,10 +1426,10 @@ setting.milliseconds = {0} 毫秒 setting.fullscreen.name = 全屏 setting.fps.name = 显示帧数和网络延迟 setting.console.name = 启用控制台 -setting.drawhitboxes.name = Display Hitboxes -setting.showperformance.name = Display Performance Metrics -setting.buildingtimestep.name = Fixed Building Timestep -setting.buildingtimestep.description = Runs buildings on a fixed timestep with constant delta,\nas opposed to every frame with variable delta.\nIf buildings cannot be updated fast enough, the game will slow down.\nIf you don't know what that means, don't touch this option. +setting.drawhitboxes.name = 显示碰撞箱 +setting.showperformance.name = 显示性能表现 +setting.buildingtimestep.name = 固定建筑时间步进 +setting.buildingtimestep.description = 以固定的时间间隔更新建筑实体,\n与原有的每帧时间间隔可变相反。\n如果建筑更新过慢,则会拖慢游戏。\n如果你不知道这意味着什么,不要改变这个选项。 setting.smoothcamera.name = 平滑镜头 setting.detach-camera.name = 自由视角 setting.detach-camera.description = 启用后,视角可独立于玩家单位自由移动。\n此设置可绑定快捷键。 @@ -1567,9 +1572,9 @@ keybind.chat_mode.name = 切换聊天模式 keybind.drop_unit.name = 释放单位 keybind.zoom_minimap.name = 小地图缩放 keybind.detach_camera.name = 切换自由视角 -keybind.teleport_cursor.name = Teleport To Cursor (Sandbox) +keybind.teleport_cursor.name = 传送到指针位置(沙盒模式) keybind.debug_hitboxes.name = 切换调试碰撞箱 -keybind.performance_metrics.name = Toggle Performance Metrics +keybind.performance_metrics.name = 切换性能表现显示 mode.help.title = 游戏模式说明 mode.survival.name = 生存 mode.survival.description = 通常的游戏模式,资源有限,自动生成敌人波次。\n[gray]需要地图中有敌方出生点和己方核心。 @@ -1627,7 +1632,7 @@ rules.enemyCheat = 敌人无限资源 rules.blockhealthmultiplier = 建筑生命倍率 rules.blockdamagemultiplier = 建筑伤害倍率 rules.unitfactoryactivation = 单位工厂延迟激活 -rules.unitfactoryactivation.objective = Unit Factories Activating: {0} +rules.unitfactoryactivation.objective = 单位工厂激活时间: {0} rules.unitbuildspeedmultiplier = 单位生产速度倍率 rules.unitcostmultiplier = 单位生产花费倍率 rules.unithealthmultiplier = 单位生命倍率 @@ -1669,7 +1674,7 @@ rules.invasions = 敌方入侵区块 rules.legacylaunchpads = 旧版发射台机制 rules.legacylaunchpads.info = 允许使用没有接收台的发射台(与 7.0 版本一致)。 landingpad.legacy.disabled = [scarlet]\ue815 禁用[lightgray] (旧版发射台已启用) -rules.hidespawns = Hide Enemy Spawns +rules.hidespawns = 隐藏敌人出生点 rules.randomwaveai = 不可预测的 AI 波次 rules.pauseDisabled = 禁用暂停 rules.fire = 允许火焰产生并蔓延 @@ -2302,10 +2307,10 @@ gz.zone3 = 波次即将开始。\n做好准备。 gz.finish = 建造更多炮塔,挖掘更多资源,\n击退所有波次以[accent]占领区块[]。 ff.coal = 使用 :mechanical-drill: [accent]机械钻头[]来开采:ore-coal: [accent]煤炭[]、 -ff.graphitepress = :tree: 研究并放置 :graphite-press: [accent]石墨压缩机[]、 +ff.graphitepress = :tree: 研究并放置 :graphite-press: [accent]石墨压缩机[]。 ff.craft = 将 :coal: 煤炭放入 :graphite-press: [accent]石墨压缩机[]。\n它将会向邻近传送带输出 :graphite: 石墨。\n将 :graphite: 石墨从 :graphite-press: [accent]石墨压缩机[]中移至核心。 -ff.generator = :coal: 煤炭也可以作为 :combustion-generator: [accent]火力发电机[]的燃料。\n研究并放置一个 :combustion-generator: [accent]火力发电机[]。 -ff.coalpower = 将 :coal: 煤炭放至发电机中产出[accent]:power: 电力[]。 +ff.generator = :coal: 煤炭也可以充当 :combustion-generator: [accent]火力发电机[]的燃料。\n研究并放置一个 :combustion-generator: [accent]火力发电机[]。 +ff.coalpower = 将 :coal: 煤炭放入发电机中产出[accent]:power: 电力[]。 ff.coalpower.objective = :combustion-generator: 产出电力 ff.node = :power-node: [accent]电力节点[]可以将电力传输到附近的方块。\n研究并在发电机旁放置一个 :power-node: [accent]电力节点[]。 ff.battery = :battery: [accent]电池[]可以存储电力。\n研究并在电力节点旁放置一个 :battery: [accent]电池[]。 @@ -2334,7 +2339,7 @@ atolls.carry2 = 1:命令巨像单位移动到地面单位[accent]上方[]。 atolls.carry3 = 2:选择 \ue87b [accent]拾取单位[]命令,来让巨像拾起地面单位。 atolls.carry4 = 3:指挥并移动[accent]携有单位[]的巨像。 atolls.carry5 = 4:选择 \ue879 [accent]卸载载荷[]命令,来让巨像放下它携带的单位。 -atolls.carry6 = 可以在[accent]回顾这些步骤。 +atolls.carry6 = 可以再[accent]回顾这些步骤[]。 atolls.carry7 = 跟随指示,在敌人基地旁空降单位。 atolls.noairunit = 这座基地防守森严,无法用空军单位攻破。 atolls.2strategies = 有两种策略可以摧毁这座基地。 @@ -2681,7 +2686,7 @@ unit.vela.description = 发射巨大的持续激光束攻击敌人并引起燃 unit.corvus.description = 发射巨大的爆发激光束,摧毁敌人并修复己方建筑。可以跨越大多数地形。 unit.crawler.description = 冲向敌人并自毁,造成大范围爆炸。 unit.atrax.description = 向地面目标发射削弱性的球状矿渣液。可以跨越大多数地形。 -unit.spiroct.description = 向敌人发射较弱的激光束,并在该过程中自我修复。可以跨越大多数地形。 +unit.spiroct.description = 向敌人发射弱化性的激光束,并在该过程中自我修复。可以跨越大多数地形。 unit.arkyid.description = 向敌人发射大型激光束,并在该过程中自我修复。可以跨越大多数地形。 unit.toxopid.description = 向敌人发射大型带电集束炮弹和穿透性激光。可以跨越大多数地形。 unit.flare.description = 向敌人发射标准子弹。 @@ -2774,7 +2779,7 @@ lst.setprop = 设置单位或建筑物的属性。 lst.effect = 创建一个粒子效果。 lst.sync = 在网络中同步一个变量。\n最多每秒调用 10 次。 lst.playsound = 播放声音。\n音量和声场位置可以是全局值,也可以根据位置计算得出。 -lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[]. +lst.playmusic = 按名称播放音乐,如[accent]"game1"[].\n如果[accent]interrupt[]设置为 true ,先前播放的音乐将会中止\n播放 null 并把 interrupt 设置为 true 可以停止音乐。\n注意,数据补丁中的音乐需加上[accent]dp-[]前缀。 lst.makemarker = 在世界中创建一个新的逻辑标记。\n必须提供一个用于标识该标记的 ID。\n目前每个世界限制最多 20000 个标记。 lst.setmarker = 为标记设置属性。\n使用的 ID 必须与制作标记指令中的相同。 lst.localeprint = 将地图本地化文本属性值添加到文本缓冲区中。\n要在地图编辑器中设置地图本地化包,请检查 [accent]地图信息 > 本地化包[]。\n如果客户端是移动设备,则尝试首先打印以 “.mobile” 结尾的属性。 From 3ff15ff7e9948bc1278afef66141eb92b9e0d38b Mon Sep 17 00:00:00 2001 From: Github Actions Date: Sat, 4 Jul 2026 00:27:00 +0000 Subject: [PATCH 10/11] Automatic bundle update --- core/assets/bundles/bundle_zh_CN.properties | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 944c74193d..897743c491 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -222,9 +222,7 @@ campaign.erekir = 更新的、更精致的内容。主要是线性的战役进 campaign.serpulo = 较旧的内容;经典体验。更具开放性,更多的内容。\n\n可能存在不平衡的地图和战役机制。 campaign.difficulty = 难度 campaign.rework.title = 战役更改通知 -campaign.rework.serpulo = [accent]⚠ 塞普罗战役已全面重做。[]\n\n\ -区块位置和难度发生变化。你或许会遇到与旧版本遗留区块相关的问题。\n\n\ -若想获得更干净的游戏体验,可以在设置中重置战役进度。 +campaign.rework.serpulo = [accent]⚠ 塞普罗战役已全面重做。[]\n\n区块位置和难度发生变化。你或许会遇到与旧版本遗留区块相关的问题。\n\n若想获得更干净的游戏体验,可以在设置中重置战役进度。 completed = [accent]已研究 techtree = 科技树 techtree.select = 切换科技树 @@ -357,10 +355,7 @@ save.export.fail = [scarlet]导出存档失败:[accent]{0} save.export.needsload = [scarlet]⚠ 此地图内嵌有资源文件。[]\n在导出地图前先加载它们。 save.assets.missing = 缺失资源 save.assets.missing.list = 资源列表... -save.assets.missing.info = [scarlet]⚠ 这个地图缺失资源![]\n\n\ -[lightgray]这可能是导出不当导致的。\n\ -[lightgray]分享存档需要通过游戏内界面,不应直接复制文件。\n\ -[lightgray]如果有必要传输文件,确保 [accent]assetCache[] 文件夹也被复制。 +save.assets.missing.info = [scarlet]⚠ 这个地图缺失资源![]\n\n[lightgray]这可能是导出不当导致的。\n[lightgray]分享存档需要通过游戏内界面,不应直接复制文件。\n[lightgray]如果有必要传输文件,确保 [accent]assetCache[] 文件夹也被复制。 save.import = 导入存档 save.newslot = 存档名称: save.rename = 重命名 @@ -1147,7 +1142,7 @@ stat.targetsground = 攻击地面单位 stat.crushdamage = 碾压伤害 stat.legsplashdamage = 践踏伤害 stat.itemsmoved = 移动速度 -\stat.itemsmoved.info = 吞吐量与时间并不是线性关系,易受FPS/TPS影响。 +stat.itemsmoved.info = 吞吐量与时间并不是线性关系,易受FPS/TPS影响。 stat.launchtime = 发射间隔 stat.shootrange = 范围 stat.size = 尺寸 From 689d8c9e482296ebce954a4a0ee0cb3b3f4d5885 Mon Sep 17 00:00:00 2001 From: BalaM314 <71201189+BalaM314@users.noreply.github.com> Date: Sat, 4 Jul 2026 06:00:38 +0530 Subject: [PATCH 11/11] Blacklist UDP address along with TCP address (#12274) --- core/src/mindustry/core/NetClient.java | 2 +- core/src/mindustry/net/ArcNetProvider.java | 13 ++++++++++++- core/src/mindustry/net/NetConnection.java | 4 ++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index 7a72b558d7..bf335576b6 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -319,7 +319,7 @@ public class NetClient implements ApplicationListener{ //detect and kick for foul play if(player != null && player.con != null && !player.con.chatRate.allow(2000, Config.chatSpamLimit.num())){ player.con.kick(KickReason.kick); - netServer.admins.blacklistDos(player.con.address); + player.con.blacklist(); return; } diff --git a/core/src/mindustry/net/ArcNetProvider.java b/core/src/mindustry/net/ArcNetProvider.java index 6a78149728..c1e753bc7e 100644 --- a/core/src/mindustry/net/ArcNetProvider.java +++ b/core/src/mindustry/net/ArcNetProvider.java @@ -162,7 +162,7 @@ public class ArcNetProvider implements NetProvider{ if(packetSpamLimit > 0 && !k.packetRate.allow(3000, packetSpamLimit)){ Log.warn("Blacklisting IP '@' as potential DOS attack - packet spam.", k.address); connection.close(DcReason.closed); - netServer.admins.blacklistDos(k.address); + k.blacklist(); return; } @@ -366,6 +366,17 @@ public class ArcNetProvider implements NetProvider{ return connection.isConnected(); } + @Override + public void blacklist(){ + //Blacklist TCP address + super.blacklist(); + //Blacklist UDP address + var address = connection.getRemoteAddressUDP(); + if(address != null){ + netServer.admins.blacklistDos(address.getAddress().getHostAddress()); + } + } + @Override public void sendStream(Streamable stream){ connection.addListener(new InputStreamSender(stream.stream, 1024){ diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java index 3df0c54447..e379d1c73d 100644 --- a/core/src/mindustry/net/NetConnection.java +++ b/core/src/mindustry/net/NetConnection.java @@ -129,6 +129,10 @@ public abstract class NetConnection{ } } + public void blacklist(){ + netServer.admins.blacklistDos(address); + } + public abstract void send(Object object, boolean reliable); public abstract void close();