From 070245270f484cbfc28b41bc4c8ed6799a1c0544 Mon Sep 17 00:00:00 2001 From: LeopoldTal Date: Sat, 31 Oct 2020 10:15:45 +0100 Subject: [PATCH 01/15] Use locale decimal separator on belt reader display (#816) * use locale decimal separator on belt reader display * rename formatter method --- src/js/core/utils.js | 11 ++++++++++- src/js/game/systems/item_processor_overlays.js | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/js/core/utils.js b/src/js/core/utils.js index 98327378..50657841 100644 --- a/src/js/core/utils.js +++ b/src/js/core/utils.js @@ -558,7 +558,16 @@ export function formatSeconds(secs) { } /** - * Formats a number like 2.5 to "2.5 items / s" + * Formats a number like 2.51 to "2.5" + * @param {number} speed + * @param {string=} separator The decimal separator for numbers like 50.1 (separator='.') + */ +export function round1DigitLocalized(speed, separator = T.global.decimalSeparator) { + return round1Digit(speed).toString().replace(".", separator); +} + +/** + * Formats a number like 2.51 to "2.51 items / s" * @param {number} speed * @param {boolean=} double * @param {string=} separator The decimal separator for numbers like 50.1 (separator='.') diff --git a/src/js/game/systems/item_processor_overlays.js b/src/js/game/systems/item_processor_overlays.js index 3ba44c7b..0377f779 100644 --- a/src/js/game/systems/item_processor_overlays.js +++ b/src/js/game/systems/item_processor_overlays.js @@ -1,6 +1,6 @@ import { globalConfig } from "../../core/config"; import { Loader } from "../../core/loader"; -import { smoothPulse } from "../../core/utils"; +import { round1DigitLocalized, smoothPulse } from "../../core/utils"; import { enumItemProcessorRequirements, enumItemProcessorTypes } from "../components/item_processor"; import { Entity } from "../entity"; import { GameSystem } from "../game_system"; @@ -92,7 +92,7 @@ export class ItemProcessorOverlaysSystem extends GameSystem { parameters.context.textAlign = "center"; parameters.context.font = "bold 10px GameFont"; parameters.context.fillText( - "" + Math.round(readerComp.lastThroughput * 10) / 10, + round1DigitLocalized(readerComp.lastThroughput), (staticComp.origin.x + 0.5) * globalConfig.tileSize, (staticComp.origin.y + 0.62) * globalConfig.tileSize ); From b1faff31edd15a819f5ce99f1146f8343f3dfa76 Mon Sep 17 00:00:00 2001 From: presdm <72538204+presdm@users.noreply.github.com> Date: Sat, 31 Oct 2020 16:18:24 +0700 Subject: [PATCH 02/15] Update base-ind.yaml (#837) * Update base-ind.yaml Update on tips, matching it with the new improved version, and corrected some things. - PresS#9257 * Update base-ind.yaml * Update base-ind.yaml Fixed some things --- translations/base-ind.yaml | 76 +++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/translations/base-ind.yaml b/translations/base-ind.yaml index 0c041a6a..3cffbc48 100644 --- a/translations/base-ind.yaml +++ b/translations/base-ind.yaml @@ -1,6 +1,6 @@ steamPage: shortText: shapez.io adalah game tentang membangun pabrik untuk mengotomatiskan - pembuatan dan pemrosesan bentuk-bentuk yang semakin lama semakin kompleks + pembuatan dan pemrosesan bentuk-bentuk yang semakin lama semakin kompleks di dalam peta yang meluas tanpa batas. discordLinkShort: Server Discord Resmi intro: >- @@ -23,7 +23,7 @@ steamPage: - Dukung saya! ❤️ title_future: Konten Terencana planned: - - Penyimpanan Cetak Biru (Eksklusif Versi Lengkap) + - Perpustakaan Cetak Biru (Eksklusif Versi Lengkap) - Achievement Steam - Mode Puzzle - Peta Kecil @@ -125,7 +125,7 @@ dialogs: title: Gagal Menghapus text: "Gagal untuk menghapus data simpanan:" restartRequired: - title: Diperlukan untuk Restart + title: Diperlukan untuk Memulai Kembali (Restart) text: kamu harus memulai kembali permainan untuk menerapkan pengaturan. editKeybinding: title: Ganti Tombol Pintas (Keybinding) @@ -189,17 +189,17 @@ dialogs: disini) markerDemoLimit: desc: Kamu hanya dapat membuat dua penanda pada versi demo. Dapatkan versi - lengkap untuk penanda-penanda tak terhingga! + lengkap untuk penanda-penanda tak terbatas! exportScreenshotWarning: title: Ekspor Screenshot - desc: Kamu meminta untuk mengekspor pabrikmu sebagai screenshot. - Harap ketahui bahwa ini bisa menjadi lambat untuk pabrik + desc: Kamu meminta untuk mengekspor pabrikmu sebagai screenshot. + Harap ketahui bahwa ini bisa menjadi lambat untuk pabrik yang besar dan bahkan dapat membuat permainanmu berhenti! editSignal: title: Atur Tanda descItems: "Pilih item yang telah ditentukan sebelumnya:" descShortKey: ... atau masukkan shortkey dari bentuk (Yang - bisa Kamu buat sendiri disini) + bisa kamu buat sendiri disini) renameSavegame: title: Ganti Nama Data Simpanan desc: Kamu bisa mengganti nama data simpanan di sini. @@ -208,8 +208,8 @@ dialogs: desc: Ada video tutorial yang tersedia untuk level ini! Apakah kamu ingin menontonnya? tutorialVideoAvailableForeignLanguage: title: Tutorial Tersedia - desc: Ada video tutorial yang tersedia untuk level ini, tetapi hanya dalam Bahasa Inggris. - Apakaha kamu ingin menontonnya? + desc: Ada video tutorial yang tersedia untuk level ini, tetapi hanya dalam Bahasa Inggris. + Apakah kamu ingin menontonnya? ingame: keybindingsOverlay: moveMap: Geser @@ -285,9 +285,9 @@ ingame: minute: /m hour: /j settingsMenu: - playtime: Waktu bermain + playtime: Waktu Bermain buildingsPlaced: Bangunan - beltsPlaced: Sabuk konveyor + beltsPlaced: Sabuk Konveyor tutorialHints: title: Butuh bantuan? showHint: Tampilkan petunjuk @@ -616,7 +616,7 @@ storyRewards: warna di dalam pengaturan!" reward_mixer: title: Mencampur Warna - desc: Pencampur Warna telah dibuka – Ia mencampur dua warna menjadi satu! + desc: Pencampur Warna telah dibuka – Bangunan ini mencampur dua warna menjadi satu! reward_stacker: title: Penumpuk desc: Kamu sekarang dapat mengombinasikan bentuk-bentuk dengan @@ -625,7 +625,7 @@ storyRewards: akan terpadukan. Apabila tidak bisa, maka input kanan akan diletakkan diatas input kiri! reward_splitter: - title: Pembagi Sederhana + title: Pembagi Kompak desc: Kamu telah membuka varian pembagi dari penyeimbang - Menerima satu input dan membaginya menjadi dua! @@ -703,7 +703,7 @@ storyRewards: digunakan untuk membuat pabrik yang lebih besar lagi dengan memisahkan dan menggabungkan item ke beberapa sabuk konveyor! reward_merger: - title: Penggabung Sederhana + title: Penggabung Kompak desc: Kamu telah membuka varianpenggabung dari penyeimbang - Bangunan ini menerima dua input dan menggabungkannya dalam satu sabuk konveyor! @@ -872,7 +872,7 @@ settings: description: Mengaktifkan vignette, yang menggelapkan sudut-sudut layar dan membuat teks lebih mudah dibaca. rotationByBuilding: - title: Pemutaran masing-masing tipe bangunan + title: Pemutaran Masing-masing Tipe Bangunan description: Setiap tipe bangunan mengingat putaran atau rotasi yang kamu tetapkan kepadanya. Ini mungkin lebih nyaman apabila kamu sering berganti untuk menempatkan berbagai tipe bangunan. @@ -893,31 +893,31 @@ settings: description: Mengatur volume untuk musik lowQualityMapResources: title: Kualitas Peta Sumber Daya Rendah - description: Menyederhanakan rendering sumber daya pada peta saat diperbesar untuk meningkatkan performa. + description: Menyederhanakan rendering sumber daya pada peta saat diperbesar untuk meningkatkan performa. Bahkan terlihat lebih rapi, jadi pastikan untuk mencobanya! disableTileGrid: title: Nonaktifkan Grid - description: Menonaktifkan ubin grid dapat membantu performa. + description: Menonaktifkan ubin grid dapat membantu performa. Ini juga membuat game menjadi lebih rapi! clearCursorOnDeleteWhilePlacing: title: Menghapus Kursor dengan Klik Kanan description: Diaktifkan secara default, menghapus kursor setiap kali kamu mengklik kanan saat kamu memiliki bangunan yang dipilih untuk penempatan. Jika dinonaktifkan, kamu dapat menghapus bangunan dengan mengklik kanan saat meletakkan bangunan. lowQualityTextures: - title: Tekstur kualitas rendah (Jelek) - description: Menggunakan kualitas rendah untuk menyelamatkan performa. + title: Tekstur Kualitas Rendah (Jelek) + description: Menggunakan kualitas rendah untuk menyelamatkan performa. Ini akan membuat penampilan game menjadi jelek! displayChunkBorders: title: Tampilkan Batasan Chunk description: Game ini dibagi-bagi menjadi ubin 16x16 bagian, jika pengaturan ini diaktifkan maka batas dari tiap chunk akan diperlihatkan. pickMinerOnPatch: - title: Memilih ekstraktor pada tampungan sumber daya + title: Memilih Ekstraktor pada Tampungan Sumber Daya description: Diaktifkan secara default, memilih ekstraktor apabila kamu menggunakan pipet ketika mengarahkan pada tampungan sumber daya. simplifiedBelts: title: Sabuk Sederhana (Jelek) description: Tidak merender item pada sabuk konveyor kecuali ketika mengarahkan ke konveyor - untuk menyelamatkan performa. Saya tidak merekomendasikan untuk bermain dengan pengaturan ini + untuk menyelamatkan performa. Saya tidak merekomendasikan untuk bermain dengan pengaturan ini jika kamu tidak benar-benar perlu performanya. enableMousePan: title: Bergeser pada Layar Tepi @@ -980,7 +980,7 @@ keybindings: pasteLastBlueprint: Tempel (paste) cetak biru terakhir cycleBuildings: Ganti bangunan lockBeltDirection: Aktifkan perencana konveyor - switchDirectionLockSide: "Planner: Alih sisi" + switchDirectionLockSide: "Perencana: Alihkan sisi" massSelectStart: Tahan dan seret untuk memulai massSelectSelectMultiple: Pilih berbagai area massSelectCopy: Salin (copy) area @@ -1028,11 +1028,11 @@ demo: exportingBase: Mengekspor keseluruhan pangkalan pusat sebagai gambar settingNotAvailable: Tidak tersedia dalam versi demo. tips: - - Bangunan pusat menerima segala input, tidak hanya bentuk sekarang! + - Bangunan pusat akan menerima segala input, tidak hanya bentuk sekarang! - Pastikan pabrikmu berbentuk modul - akan membantu! - - Jangan membangun terlalu dekat PUSAT, atau akan terjadi kericuhan yang besar! + - Jangan membangun terlalu dekat PUSAT, atau akan menjadi berantakan! - Apabila penumpukkan tidak bekerja, cobalah tukar kedua input. - - Kamu bisa mengaktifkan Perencana Sabuk Konveyor dengan menekan tombol R. + - Kamu bisa mengubah arah Perencana Sabuk Konveyor dengan menekan tombol R. - Menahan CTRL memungkinkan untuk menyeret sabuk konveyor tanpa rotasi otomatis. - Rasio akan tetap sama, selama semua upgrade berada pada Tingkatan yang sama. - Eksekusi atau pembuatan secara serial lebih efisian daripada paralel. @@ -1044,25 +1044,25 @@ tips: - Pengecat memiliki varian lain yang bisa kamu pilih dengan menekan tombol T - Memiliki rasio bangunan yang tepat dapat memaksimalkan efektivitas. - Pada level maksimum, 5 ekstraktor akan memenuhi 1 sabuk konveyor. - - Jangan lupa tentang terowongan! + - Jangan lupa gunakan terowongan! - Kamu tidak perlu membagi item secara merata untuk meraih efisiensi maksimal. - Menahan SHIFT akan mengaktifkan Perencana Sabuk Konveyor, memungkinkan kamu untuk meletakkan sabuk konveyor yang panjang dengan mudah - Pemotong selalu memotong secara vertikal, bagaimanapun orientasinya. - Untuk mendapatkan warna putih, campurkan ketiga warna. - - Tempat penyimpanan memprioritaskan output pertama. - - Gunakan waktu untuk menciptakan desain yang dapat diulang - itu sangat berharga! - - Menahan CTRL memungkinkan untuk meletakkan beberapa bangunan. + - Tempat penyimpanan memprioritaskan output kiri. + - Gunakan waktu untuk menciptakan desain yang dapat diulang - sangat berharga! + - Menahan SHIFT memungkinkan kamu untuk meletakkan beberapa bangunan sekaligus. - Kamu dapat menahan ALT untuk memutar arah pada sabuk konveyor yang sudah diletakkan. - Efisiensi adalah kunci! - Tampungan bentuk yang semakin jauh dari pusat maka akan semakin kompleks. - Mesin-mesin memiliki kecepatan maksimum, bagilah mereka untuk mendapatkan efisiensi maksimal. - Gunakan penyeimbang untuk memaksimalkan efisiensi pabrikmu. - Pabrik yang terorganisir itu penting. Cobalah untuk tidak banyak menyebrangi konveyor. - - Rencanakan terlebih dahulu, atau akan menjadi kericuhan yang besar! - - Jangan hapus pabrik-pabrik lama kamu! Kamu akan memerlukannya untuk membuka tingkatan. - - Cobalah untuk menyelesaikan level 20 sebelum mencari bantuan! + - Rencanakan terlebih dahulu, supaya tidak menjadi berantakan! + - Jangan hapus pabrik-pabrik lama kamu! Kamu akan memerlukannya untuk mengupgrade Tingkatan selanjutnya. + - Cobalah untuk menyelesaikan level 20 atau 26 sendiri terlebih dahulu sebelum mencari bantuan! - Jangan mempersulit hal-hal, cobalah untuk tetap simpel dan kamu akan maju. - - Kamu mungkin perlu menggunakan ulang pabrik-pabrik yang telah kamu buat. Rencanakan pabrik kamu supaya dapat digunakan kembali. + - Kamu mungkin perlu menggunakan ulang pabrik-pabrik yang telah kamu buat. Buat pabrikmu supaya dapat digunakan kembali. - Terkadang, kamu dapat menemukan bentuk yang diperlukan pada peta tanpa harus menumpuknya. - Bentuk penuh windmills dan pinwheels tidak akan pernah muncul secara natural. - Warnai bentuk sebelum memotongnya untuk meningkatkan efisiensi. @@ -1073,14 +1073,14 @@ tips: - Bangunan yang terlau dekat dengan pusat dapat menghalangi projek yang akan datang. - Ikon pin di samping tiap bentuk pada tab upgrade akan mem-pin bentuknya ke layar. - Campur semua warna utama untuk menciptakan warna putih! - - Kamu punya peta yang tak terbatas, jadi jangan memadatkan pabrikmu di pusat, luaskan! + - Kamu punya peta yang tak terbatas. Jadi jangan memadatkan pabrikmu di pusat, luaskan! - Cobalah Factorio juga! Itu game favorit saya. - - Pemotong (Empat Bagian) memotong searah jarum jam mulai dari bagian kanan atas! + - Pemotong (Empat Bagian) memotong searah jarum jam mulai dari bagian kanan atas. - Kamu bisa mengunduh data simpananmu di menu utama (main menu)! - - Game ini memiliki banyak tombol pintas yag sangat berguna! Pastikan untuk mengeceknya di pengaturan. + - Game ini memiliki banyak tombol pintas (keybindings) yag sangat berguna! Pastikan untuk mengeceknya di pengaturan. - Game ini memiliki banyak pengaturan, Pastikan untuk mengeceknya! - - Penanda ke bangunan pusatmu memiliki kompas yang menunjukkan lokasinya! - - Untuk membersihkan sabuk konveyor, pindahkan bagian dan tempel di lokasi yang sama. + - Penanda bangunan pusatmu memiliki kompas yang menunjukkan lokasinya! + - Untuk membersihkan sabuk konveyor, pindahkan (cut) bagian dan tempel (paste) di lokasi yang sama. - Tekan F4 untuk menunjukkan FPS dan Tick Rate kamu. - Tekan F4 dua kali untuk menunjukkan ubin mouse dan kameramu. - Kamu bisa mengklik bentuk yang di-pin di sebelah kiri untuk tidak mem-pinnya lagi. From 9f985babcac8fd21e439fdc944050f7ff6630c06 Mon Sep 17 00:00:00 2001 From: AdJaGu Date: Sat, 31 Oct 2020 05:20:00 -0400 Subject: [PATCH 03/15] Merge base-*.yaml & fix YAML lint errors and warnings. (#918) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update base-en.yaml Updated spelling, grammar, and to a lesser extent the information of some tips. * Update base-en.yaml * Update base-en.yaml * Update base-en.yaml Applied most of EmeraldBlock's suggestions * Update base-ind.yaml Update on tips, matching it with the new improved version, and corrected some things. - PresS#9257 * Update base-cz.yaml Corrected one of the tips. * Update base-zh-TW.yaml * Update base-en.yaml Issue #849 * Few more spelling mistakes. * Update base-en.yaml Fixed inconsistencies and mispellations of Rotator (previously was Rotater, which is wrong) * Update base-en.yaml * Improving existing CZ translations and yaml check * Update base-en.yaml * Update base-zh-TW.yaml * Update base-ind.yaml * Update base-cz.yaml * Completed translation * Update base-en.yaml Changed "20 Upgrade Tiers" to "Unlimited" * Update base-zh-TW.yaml * Update base-pl.yaml Updated some polish translations. * Update base-uk.yaml * Update base-pl.yaml Fix linter * Update base-uk.yaml * Update base-fi.yaml Full translation. Fixed some bad grammar. Anything you need here? * Update base-zh-TW.yaml Finish translating. Still need to review it all over again. * fixing errors * fixed errors. found few paragraphs not translated * changed settings * edits * more edits * quote marks 129 * fixed last errors. should work now * ready now? * colon error fix, hopefully * 2 * new try. still error with colon * Fixed idents * fixed some syntax errors * fixed more idents * Fixed missing lines and stuff * update translation ja-jp * Update base-en.yaml Upgrade text should say ∞ instead of 20 upgrade tiers, for real this time * Update base-en.yaml Changed "it" to "the game" because there wasn't enough context to know what "it" means * Update base-ind.yaml Fixed some things * Update base-kor.yaml * Update base-zh-TW.yaml * A little more Polish * Update base-it.yaml Uploaded the new text relative to the wire layer and other small corrections, it's 100% done * Update base-sv.yaml Advantages, title_future, planned, title_open_source and title_links text translated * Update base-sv.yaml Trailing space fixed * Update base-sv.yaml * Update base-sv.yaml Fix trailing spaces and wierd syntax error * Update base-en.yaml Removed changes present in a future pr * Update for base-ro.yaml I found some words like Roadmap and Standalone to be better suited when they're in English, I think some neologisms are better kept in their language. * Update base-it.yaml * Fix YAML Lint errors and warnings Co-authored-by: Hyperion-21 <69665635+Hyperion-21@users.noreply.github.com> Co-authored-by: presdm <72538204+presdm@users.noreply.github.com> Co-authored-by: RevosCZ <72229413+RevosCZ@users.noreply.github.com> Co-authored-by: Colleabois <12426652+Colleabois@users.noreply.github.com> Co-authored-by: ZrubekLukas <39225468+ZrubekLukas@users.noreply.github.com> Co-authored-by: VL4DL3N <6233477+Vlad1slaw@users.noreply.github.com> Co-authored-by: Jędrzej Stolarz Co-authored-by: Hermanni Saresma Co-authored-by: Nucleareal Co-authored-by: sindaehyeon <56984093+sindaehyeon@users.noreply.github.com> Co-authored-by: BananoGamer <72351355+BananoGamer@users.noreply.github.com> Co-authored-by: Oscar Bäck Co-authored-by: Memel <30528044+MemelDanzig@users.noreply.github.com> Co-authored-by: tobspr --- .vscode/settings.json | 4 +- shapez.code-workspace | 3 +- translations/base-ar.yaml | 3 +- translations/base-cz.yaml | 87 +- translations/base-da.yaml | 3 +- translations/base-de.yaml | 6 +- translations/base-en.yaml | 71 +- translations/base-fi.yaml | 686 ++++++++-------- translations/base-fr.yaml | 9 +- translations/base-ind.yaml | 19 +- translations/base-it.yaml | 92 +-- translations/base-ja.yaml | 151 ++-- translations/base-kor.yaml | 34 +- translations/base-nl.yaml | 12 +- translations/base-pl.yaml | 140 ++-- translations/base-ro.yaml | 51 +- translations/base-ru.yaml | 6 +- translations/base-sv.yaml | 175 ++-- translations/base-uk.yaml | 1444 +++++++++++++++++++++------------- translations/base-zh-TW.yaml | 328 ++++---- 20 files changed, 1799 insertions(+), 1525 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 335f886a..e47654f3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,5 @@ { - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "esbenp.prettier-vscode", + "files.trimTrailingWhitespace": true, + "editor.formatOnSave": true } \ No newline at end of file diff --git a/shapez.code-workspace b/shapez.code-workspace index 29dae2a2..e8e7e5b3 100644 --- a/shapez.code-workspace +++ b/shapez.code-workspace @@ -14,6 +14,7 @@ "vetur.format.defaultFormatter.js": "vscode-typescript", "vetur.format.defaultFormatter.ts": "vscode-typescript", "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true + "editor.formatOnSave": true, + "files.trimTrailingWhitespace": true } } \ No newline at end of file diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 1ecee9c3..55327fdf 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -6,7 +6,8 @@ steamPage: لعبة شيبز (أشكال) هي لعبة مريحة تقوم فيها ببناء مصانع ووتشغيلها آليا لصناعة أشكال هندسية. - مع التقدم في المستوى، تزداد الأشكال تعقيداً، فيتوجب عليك التوسع في الخريطة اللانهائية، وذلك ليس كافياً للتقدم في مستوى اللعبة حيث عليك صناعة المزيد بأضعاف مضاعفة لتلبية الطلب، الشيء الوحيد الذي يمكنه مساعدتك هو التوسع. + مع التقدم في المستوى، تزداد الأشكال تعقيداً، فيتوجب عليك التوسع في الخريطة اللانهائية، وذلك ليس كافياً للتقدم في مستوى اللعبة حيث عليك صناعة المزيد بأضعاف مضاعفة لتلبية الطلب، الشيء + الوحيد الذي يمكنه مساعدتك هو التوسع. بينما في البداية تقوم بصناعة أشكال مختلفة، تتطلب منك المراحل المتقدمة تلوين هذه الأشكال، حيث يتوجب عليك استخراج وخلط الألوان. diff --git a/translations/base-cz.yaml b/translations/base-cz.yaml index 147237d6..add0e440 100644 --- a/translations/base-cz.yaml +++ b/translations/base-cz.yaml @@ -5,9 +5,11 @@ steamPage: intro: >- Máte rádi automatizaci? Tak to jste na správném místě! - shapez.io je relaxační hra, ve které musíte stavět továrny na automatizaci výroby geometrických tvarů. Jak se zvyšuje úroveň, tvary se stávají stále složitějšími a vy se musíte rozšířit po nekonečné mapě. + shapez.io je relaxační hra, ve které musíte stavět továrny na automatizaci výroby geometrických tvarů. Jak se zvyšuje úroveň, tvary se stávají + stále složitějšími a vy se musíte rozšířit po nekonečné mapě. - A jako by to nestačilo, musíte také produkovat exponenciálně více, abyste uspokojili požadavky - jediná věc, která pomáhá, je škálování! Zatímco na začátku tvary pouze zpracováváte, později je musíte obarvit - těžbou a mícháním barev! + A jako by to nestačilo, musíte také produkovat exponenciálně více, abyste uspokojili požadavky - jediná věc, která pomáhá, je škálování! Zatímco + na začátku tvary pouze zpracováváte, později je musíte obarvit - těžbou a mícháním barev! Koupením hry na platformě Steam získáte přístup k plné verzi hry, ale také můžete nejdříve hrát demo verzi na shapez.io a až potom se rozhodnout! title_advantages: Výhody samostatné verze hry @@ -232,8 +234,8 @@ ingame: speed: Rychlost range: Dosah storage: Úložný prostor - oneItemPerSecond: 1 tvar / sekundu - itemsPerSecond: tvarů / s + oneItemPerSecond: 1 kus / sekundu + itemsPerSecond: kusů / s itemsPerSecondDouble: (x2) tiles: dílků levelCompleteNotification: @@ -244,7 +246,7 @@ ingame: notifications: newUpgrade: Nové vylepšení je k dispozici! gameSaved: Hra byla uložena. - freeplayLevelComplete: Level byl dokončen! + freeplayLevelComplete: Úroveň dokončena! shop: title: Vylepšení buttonUnlock: Vylepšit @@ -307,7 +309,7 @@ ingame: 2_3_more_cutters: "Dobrá práce! Teď postavte více pil pro zrychlení tohoto pomalého procesu!

PS: Použijte 0-9 na klávesnici pro rychlejší přístup k budovám!" - 3_1_rectangles: "Teď vytěžte nějaké obdelníkové tvary! Postavte 4 + 3_1_rectangles: "Teď vytěžte nějaké obdélníkové tvary! Postavte 4 extraktory a připojte je k HUBu.

PS: Podržením klávesy SHIFT a tažením pásu aktivujete plánovač pásů!" @@ -367,7 +369,7 @@ ingame: title: Kabely desc: Zcela nový rozměr! darkmode: - title: Dark Mode + title: Tmavý mód desc: Přestanou vás bolet oči! support: title: Podpořte mě @@ -450,7 +452,7 @@ buildings: description: Obarví tvary z levých vstupů barvou z horního vstupu. quad: name: Barvič (čtyřnásobný) - description: Umožnuje obarvit každou čtvrtinu tvaru individuálně. Jen čtvrtiny + description: Umožňuje obarvit každou čtvrtinu tvaru individuálně. Jen čtvrtiny se vstupy barev s logickým signálem na vrstvě kabelů budou obarveny! mirrored: @@ -563,7 +565,7 @@ buildings: description: Virtuálně Spojí tvary dohromady. Pokud nemohou být spojeny, pravý tvar je položen na levý. painter: - name: Virtual barvič + name: Virtuální barvič description: Virtuálně obarví celý tvar v levém vstupu barvou z pravého vstupu. item_producer: default: @@ -575,7 +577,7 @@ storyRewards: title: Řezání tvarů desc: Právě jste odemkli pilu, která řeže tvary svisle na poloviny bez ohledu na její - orientaci!

Nezapoměňte se zbavit zbytku tvarů, jinak + orientaci
!

Nezapomeňte se zbavit zbytku tvarů, jinak se vám produkce zasekne - za tímto účelem jsem vám dal koš, který smaže vše, co do něj vložíte! reward_rotater: @@ -608,7 +610,7 @@ storyRewards: budovami a pásy. reward_rotater_ccw: title: Otáčení II - desc: Odemknuli jste variantu rotoru - Umožňuje vám otáčet + desc: Odemkli jste variantu rotoru - Umožňuje vám otáčet proti směru hodinových ručiček. Vyberte rotor a zmáčkněte 'T' pro přepnutí mezi variantami! reward_miner_chainable: @@ -619,27 +621,27 @@ storyRewards: teď nahrazen ve vašem panelu nástrojů!" reward_underground_belt_tier_2: title: Tunel II. úrovně - desc: Odemknuli jste tunel II. úrovně - Má delší + desc: Odemkli jste tunel II. úrovně - Má delší dosah a také můžete nyní míchat tunely dohromady! reward_cutter_quad: title: Řezání na čtvrtiny - desc: Odemknuli jste variantu pily - Rozebírač vám umožňuje + desc: Odemkli jste variantu pily - Rozebírač vám umožňuje rozdělit tvary na čtvrtiny místo na poloviny! reward_painter_double: title: Dvojité barvení - desc: Odemknuli jste variantu barviče - Funguje stejně jako + desc: Odemkli jste variantu barviče - Funguje stejně jako normální, ale nabarví dva tvary naráz pomocí jedné barvy! reward_storage: title: Sklad - desc: Právě jste odemkli sklad - Umožnuje skladovat přebytečné + desc: Právě jste odemkli sklad - Umožňuje skladovat přebytečné věci až do naplnění kapacity!

Dává prioritu levému výstupu, takže ho také můžete použít jako průtokovou bránu! reward_freeplay: title: Volná hra desc: Zvládli jste to! Odemkli jste mód volné hry! To znamená, - budou od teď náhodně generovány!

Vzhledem k - tomu, že Hub nadále potřebuje propustnost , + že od teď budou tvary náhodně generovány!

Vzhledem k + tomu, že Hub nadále potřebuje propustnost, především doporučuji postavit továrnu, která automaticky doručí požadovaný tvar!

Hub vysílá požadovaný tvar na vrstvu kabelů, takže jediné co musíte udělat, je analyzovat tvar a @@ -653,7 +655,7 @@ storyRewards: (Jsou to ty které jste právě dodali). no_reward: title: Další úroveň - desc: "Tato úroveň vám nic neodemknula, ale s další to přijde!

PS: + desc: "Tato úroveň vám nic neodemkla, ale s další to přijde!

PS: Radši neničte vaše stávající továrny - budete potřebovat všechny produkované tvary později na odemčení vylepšení!" @@ -672,7 +674,7 @@ storyRewards: jednoho! reward_belt_reader: title: Čtečka pásů - desc: Právě jste odemkli čtečku pásů! Umožnuje vám změřit + desc: Právě jste odemkli čtečku pásů! Umožňuje vám změřit propustnost pásu.

A počkejte na odemčení kabelů - později to bude velmi užitečné! reward_rotater_180: @@ -683,7 +685,7 @@ storyRewards: title: Display desc: "Právě jste odemkli Display - Připojte signál ve vrstvě kabelů pro vizualizaci!

PS: Všimli jste si, že čtečka pásů a - sklad vysílájí jejich poslední přečtěný předmět? Zkuste ho ukázat na + sklad vysílají jejich poslední přečtený předmět? Zkuste ho ukázat na displeji!" reward_constant_signal: title: Konstantní signál @@ -791,9 +793,8 @@ settings: SHIFT. offerHints: title: Tipy & Nápovědy - description: Pokud zapnuté, budou se ve hře zobrazovat tipy a nápovědy. Také - schová určité elementy na obrazovce pro jednodušší dostání se do - hry. + description: Pokud bude zapnuté, budou se ve hře zobrazovat tipy a nápovědy. Také + skryje určité elementy na obrazovce pro jednodušší osvojení hry. movementSpeed: title: Rychlost kamery description: Mění, jak rychle se kamera posouvá při použití klávesnice. @@ -806,7 +807,7 @@ settings: extremely_fast: Extrémně rychlá enableTunnelSmartplace: title: Chytré tunely - description: Pokládání tunelů po zapnutí bude samo odstraňovat nepotřebné pásy. + description: Po zapnutí bude vkládání tunelů samo odstraňovat nepotřebné pásy. Umožňuje také potahování tunelů a nadbytečné tunely budou odstraněny. vignette: @@ -857,10 +858,10 @@ settings: description: Vypnutí mřížky částic může pomoct s výkonem. Toto nastavení zlepšuje vzhled hry! clearCursorOnDeleteWhilePlacing: - title: Uvolní kurzor při kliknutím pravým tlačitkem + title: Uvolní kurzor při kliknutím pravým tlačítkem description: Povoleno dle výchozího nastavení, uvolní kurzor pokaždé co kliknete pravým tlačítkem, když máte budovu vybranou pro pokládání. Při - vypnutí, můžete smazat budovy při kliknutí pravým tlačikem spolu + vypnutí, můžete smazat budovy při kliknutí pravým tlačítkem spolu s položením dalších budov. lowQualityTextures: title: Nižší kvalita textur (Horší vzhled) @@ -871,9 +872,9 @@ settings: description: Hra je rozdělena na oblasti 16x16 částic. Pokud je toto nastavení povolené, zobrazí se hranice těchto oblastí. pickMinerOnPatch: - title: Vybrat extraktor na naležistě zdrojů + title: Vybrat extraktor na naleziště zdrojů description: Povoleno dle výchozího nastavení, vybere extraktor, pokud použijete - kapátko pro kliknutí na nalezistě zdrojů. + kapátko pro kliknutí na naleziště zdrojů. simplifiedBelts: title: Zjednodušené pásy (Horší vzhled) description: Nevykresluje předměty na pásech, pokud nad nimi nepřejíždíte @@ -881,8 +882,8 @@ settings: nastavením, pokud opravdu nepotřebujete ušetřit výkon. enableMousePan: title: Posouvání myší - description: Umožnuje posouvání po mapě, pokud myší přejedete na okraj - obrazovky. Rychlost žáleží na nastavení rychlosti pohybu. + description: Umožňuje posouvání po mapě, pokud myší přejedete na okraj + obrazovky. Rychlost záleží na nastavení rychlosti pohybu. zoomToCursor: title: Přiblížení ke kurzoru description: Při zapnutí dojde k přibližování ve směru polohy @@ -974,11 +975,13 @@ about: Pokud se chceš na hře podílet, podívej se na shapez.io na githubu.

- Tato hra by nebyla možná ani bez skvělé Discord komunity okolo Tobiasových her - Vážně by ses měl přijít mrknout na Discord server!

+ Tato hra by nebyla možná ani bez skvělé Discord komunity okolo Tobiasových her - Vážně by ses měl přijít mrknout na + Discord server!

Soundtrack udělal Peppsen - Je úžasnej.

- V neposlední řadě by Tobias (já jen tlumočím) rád poděkoval skvělému kamarádovi Niklasi - Bez hodin strávených u factoria by tato hra nikdy neexistovala. + V neposlední řadě by Tobias (já jen tlumočím) rád poděkoval skvělému kamarádovi + Niklasi - Bez hodin strávených u Factoria by tato hra nikdy neexistovala. changelog: title: Seznam změn demo: @@ -992,12 +995,12 @@ demo: tips: - Hub přijímá vstup jakéhokoliv tvaru, nejen právě požadovaný tvar! - Ujistěte se, že vaše továrny jsou rozšiřitelné - vyplatí se to! - - Nestavte přilíš blízko Hubu nebo vznikne velký chaos! + - Nestavte příliš blízko Hubu nebo vznikne velký chaos! - Pokud skládání nefunguje, zkuste prohodit vstupy. - Směr plánovače pásů můžete změnit stisknutím klávesy R. - - Držení klávesy CTRL umožnuje natažení pásů bez auto-orientace. + - Držení klávesy CTRL umožňuje natažení pásů bez auto-orientace. - Poměry zůstávají stejné, dokud jsou všechny vylepšení na stejné úrovní. - - Sériové zapojení je efektivnější nez paralelní. + - Sériové zapojení je efektivnější než paralelní. - V průběhu hry později odemknete další varianty mnoha budov! - Můžete použít klávesu T k přepnutí mezi různými variantami. - Symetrie je klíčová! @@ -1016,32 +1019,32 @@ tips: - Sklad preferuje levý výstup. - Investujte čas pro vytvoření opakovatelných designů - ulehčí vám to pozdější expanzy! - - Držení klávesy CTRL umožnuje postavit více budov stejného typu. + - Držení klávesy SHIFT umožňuje postavit více budov stejného typu. - Můžete podržet klávesu ALT k obrácení směru pokládaných pásů. - Efektivita je klíčová! - - Nalezistě zdrojů, které jsou více vzdálené od Hubu, jsou větší. + - Naleziště zdrojů, které jsou více vzdálené od Hubu, jsou větší. - Továrny mají omezenou rychlost, rozdělte předměty pro vyšší efektivitu. - Použijte vyvažovače pro maximalizaci efektivity. - Organizace je důležitá. Zkuste nekřížit příliš mnoho pásů. - Plánujte dopředu, abyste předešli vzniku velkého chaosu! - Neodstraňujte své staré továrny! Budete je potřebovat pro další vylepšení. - Před vyhledáním pomoci zkuste sami porazit úroveň 20! - - Snažte se věci nekomplikovat, zůstaňtě u jednoduchých designů a dostanete + - Snažte se věci nekomplikovat, zůstaňte u jednoduchých designů a dostanete se daleko. - Možná budete muset použít stejné továrny i v budoucnu. Vytvořte své továrny takovým stylem, abyste je mohli použít i v dalších případech. - - V nektěrých případech můžete najít celý požadovaný tvar bez nutnosti jeho + - V některých případech můžete najít celý požadovaný tvar bez nutnosti jeho výroby s pomocí kombinátorů. - Celý tvar typu mlýnu se na mapě nikdy nevyskytne. - Obarvěte své tvary před řezáním pro zvýšení efektivity. - S moduly, prostor je pouze vnímáním; starost pro smrtelníky. - - Vytvořtě si samostatnou továrnu jen na plány (blueprinty). Jsou důležité + - Vytvořte si samostatnou továrnu jen na plány (blueprinty). Jsou důležité pro moduly. - Podívejte se zblízka na míchač barev, a vaše otázky budou odpovězeny. - Použijte klávesu CTRL a myš pro označení oblasti. - Pokud stavíte příliš blízko Hubu, v budoucnu můžete narazit na problémy s dalšími projekty. - - Ikona připínáčku vedle každého tvaru vám umožnuje připnout tvar, čímž se + - Ikona připínáčku vedle každého tvaru vám umožňuje připnout tvar, čímž se vám bude neustále zobrazovat vlevo na obrazovce. - Smíchejte všechny základní barvy pro vytvoření bílé barvy! - Vaše mapa je nekonečná, nesnažte se postavit továrnu na malinkém prostoru, @@ -1057,5 +1060,5 @@ tips: - Pro vyčistění pásů, vyjměte budovy z prostoru a pak je zkopírujte zpět na stejné místo. - Stisknutím F4 zobrazíte FPS a rychlost ticků. - - Stisknutím F4 dvakrát zobrazíte častici myši a kamery. + - Stisknutím F4 dvakrát zobrazíte souřadnici myši a kamery. - Můžete kliknout na připínáček vlevo vedle připnutého tvaru k jeho odepnutí. diff --git a/translations/base-da.yaml b/translations/base-da.yaml index f0b5f4e3..68976184 100644 --- a/translations/base-da.yaml +++ b/translations/base-da.yaml @@ -992,7 +992,8 @@ about: Hvis du vil kontribuere, tjek shapez.io på github.

- Dette spil ville ikke have været muligt uden det fremragende Discord-fælleskab omkring mine spil - Du burde virkelig deltage på Discordserveren!

+ Dette spil ville ikke have været muligt uden det fremragende Discord-fælleskab omkring mine spil - Du burde virkelig deltage på + Discordserveren!

Lydsporet er lavet af Peppsen - Han er fantastisk.

diff --git a/translations/base-de.yaml b/translations/base-de.yaml index e2792e1b..0c4fa30f 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -7,9 +7,11 @@ steamPage: shapez.io ist ein entspanntes Spiel, in dem du Fabriken zur automatisierten Produktion von geometrischen Formen bauen musst. - Mit steigendem Level werden die Formen immer komplexer, und du musst dich auf der unendlich großen Karte ausbreiten. Das ist noch nicht alles, denn du musst exponentiell mehr produzieren, um die Anforderungen zu erfüllen - Da hilft nur skalieren! + Mit steigendem Level werden die Formen immer komplexer, und du musst dich auf der unendlich großen Karte ausbreiten. Das ist noch nicht alles, denn du musst exponentiell mehr produzieren, + um die Anforderungen zu erfüllen - Da hilft nur skalieren! - Während du am Anfang nur Formen verarbeitest, musst du diese später auch einfärben - Dafür musst du Farben extrahieren und mischen! Der Kauf des Spiels auf Steam gibt dir Zugriff auf die Vollversion, aber du kannst auch zuerst die Demo auf shapez.io spielen und dich später entscheiden! + Während du am Anfang nur Formen verarbeitest, musst du diese später auch einfärben - Dafür musst du Farben extrahieren und mischen! Der Kauf des Spiels auf Steam gibt dir Zugriff auf die + Vollversion, aber du kannst auch zuerst die Demo auf shapez.io spielen und dich später entscheiden! title_advantages: Vorteile der Vollversion advantages: - 12 Neue Level für insgesamt 26 Level diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 9d145999..639dca3a 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -3,7 +3,7 @@ # # Contributing: # -# If you want to contribute, please make a pull request on this respository +# If you want to contribute, please make a pull request on this repository # and I will have a look. # # Placeholders: @@ -30,9 +30,11 @@ steamPage: intro: >- Do you like automation games? Then you are in the right place! - shapez.io is a relaxed game in which you have to build factories for the automated production of geometric shapes. As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. + shapez.io is a relaxed game in which you have to build factories for the automated production of geometric shapes. As the level increases, the shapes become more and more complex, and you + have to spread out on the infinite map. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! While you only have to process shapes at the beginning, you will later have to color them - by extracting and mixing colors! + And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! While you only have to process shapes at the + beginning, you will later have to color them - by extracting and mixing colors! Buying the game on Steam gives you access to the full version, but you can also play a demo at shapez.io first and decide later! @@ -79,7 +81,7 @@ global: # How big numbers are rendered, e.g. "10,000" thousandsDivider: "," - # What symbol to use to seperate the integer part from the fractional part of a number, e.g. "0.4" + # What symbol to use to separate the integer part from the fractional part of a number, e.g. "0.4" decimalSeparator: "." # The suffix for large numbers, e.g. 1.3k, 400.2M, etc. @@ -402,7 +404,9 @@ ingame: waypoints: waypoints: Markers hub: HUB - description: Left-click a marker to jump to it, right-click to delete it.

Press to create a marker from the current view, or right-click to create a marker at the selected location. + description: >- + Left-click a marker to jump to it, right-click to delete it.

Press to create a marker from the current view, or right-click to create a marker at the + selected location. creationSuccessNotification: Marker has been created. # Shape viewer @@ -420,7 +424,8 @@ ingame: Connect the extractor with a conveyor belt to your hub!

Tip: Click and drag the belt with your mouse! 1_3_expand: >- - This is NOT an idle game! Build more extractors and belts to finish the goal quicker.

Tip: Hold SHIFT to place multiple extractors, and use R to rotate them. + This is NOT an idle game! Build more extractors and belts to finish the goal quicker.

Tip: Hold SHIFT to place multiple extractors, and use + R to rotate them. 2_1_place_cutter: >- Now place a Cutter to cut the circles in two halves!

@@ -499,7 +504,7 @@ ingame: support: title: Support me - desc: I develop it in my spare time! + desc: I develop the game in my spare time! # All shop upgrades shopUpgrades: @@ -581,13 +586,13 @@ buildings: rotater: default: - name: &rotater Rotate + name: &rotater Rotator description: Rotates shapes clockwise by 90 degrees. ccw: - name: Rotate (CCW) + name: Rotator (CCW) description: Rotates shapes counter-clockwise by 90 degrees. rotate180: - name: Rotate (180°) + name: Rotator (180°) description: Rotates shapes by 180 degrees. stacker: @@ -705,7 +710,7 @@ buildings: description: Virtually cuts the shape into two halves. rotater: - name: Virtual Rotater + name: Virtual Rotator description: Virtually rotates the shape clockwise. unstacker: @@ -729,16 +734,19 @@ storyRewards: # Those are the rewards gained from completing the store reward_cutter_and_trash: title: Cutting Shapes - desc: You just unlocked the cutter, which cuts shapes in half from top to bottom regardless of its orientation!

Be sure to get rid of the waste, or otherwise it will clog and stall - For this purpose I have given you the trash, which destroys everything you put into it! + desc: >- + You just unlocked the cutter, which cuts shapes in half from top to bottom regardless of its orientation!

Be sure to get rid of the waste, or + otherwise it will clog and stall - For this purpose I have given you the trash, which destroys everything you put into it! reward_rotater: title: Rotating - desc: The rotater has been unlocked! It rotates shapes clockwise by 90 degrees. + desc: The rotator has been unlocked! It rotates shapes clockwise by 90 degrees. reward_painter: title: Painting desc: >- - The painter has been unlocked - Extract some color veins (just as you do with shapes) and combine it with a shape in the painter to color them!

PS: If you are colorblind, there is a colorblind mode in the settings! + The painter has been unlocked - Extract some color veins (just as you do with shapes) and combine it with a shape in the painter to color them!

PS: If you are + colorblind, there is a colorblind mode in the settings! reward_mixer: title: Color Mixing @@ -746,7 +754,9 @@ storyRewards: reward_stacker: title: Stacker - desc: You can now combine shapes with the stacker! Both inputs are combined, and if they can be put next to each other, they will be fused. If not, the right input is stacked on top of the left input! + desc: >- + You can now combine shapes with the stacker! Both inputs are combined, and if they can be put next to each other, they will be fused. If not, the right + input is stacked on top of the left input! reward_balancer: title: Balancer @@ -758,7 +768,9 @@ storyRewards: reward_rotater_ccw: title: CCW Rotating - desc: You have unlocked a variant of the rotater - It allows you to rotate shapes counter-clockwise! To build it, select the rotater and press 'T' to cycle through its variants! + desc: >- + You have unlocked a variant of the rotator - It allows you to rotate shapes counter-clockwise! To build it, select the rotator and + press 'T' to cycle through its variants! reward_miner_chainable: title: Chaining Extractor @@ -791,7 +803,9 @@ storyRewards: reward_painter_double: title: Double Painting - desc: You have unlocked a variant of the painter - It works similar to the regular painter but processes two shapes at once, consuming just one color instead of two! + desc: >- + You have unlocked a variant of the painter - It works similar to the regular painter but processes two shapes at once, consuming just one color + instead of two! reward_storage: title: Storage @@ -801,11 +815,13 @@ storyRewards: reward_blueprints: title: Blueprints - desc: You can now copy and paste parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.

Pasting it is not free, you need to produce blueprint shapes to afford it! (Those you just delivered). + desc: >- + You can now copy and paste parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.

Pasting it is + not free, you need to produce blueprint shapes to afford it! (Those you just delivered). reward_rotater_180: - title: Rotater (180°) - desc: You just unlocked the 180 degrees rotater! - It allows you to rotate a shape by 180 degress (Surprise! :D) + title: Rotator (180°) + desc: You just unlocked the 180 degrees rotator! - It allows you to rotate a shape by 180 degrees (Surprise! :D) reward_wires_painter_and_levers: title: >- @@ -846,18 +862,19 @@ storyRewards: title: Virtual Processing desc: >- I just gave a whole bunch of new buildings which allow you to simulate the processing of shapes!

- You can now simulate a cutter, rotater, stacker and more on the wires layer! + You can now simulate a cutter, rotator, stacker and more on the wires layer! With this you now have three options to continue the game:

- Build an automated machine to create any possible shape requested by the HUB (I recommend to try it!).

- Build something cool with wires.

- - Continue to play regulary.

+ - Continue to play normally.

Whatever you choose, remember to have fun! # Special reward, which is shown when there is no reward actually no_reward: title: Next level desc: >- - This level gave you no reward, but the next one will!

PS: Better not destroy your existing factory - You'll need all those shapes later to unlock upgrades! + This level gave you no reward, but the next one will!

PS: Better not destroy your existing factory - You'll need all those shapes later to + unlock upgrades! no_reward_freeplay: title: Next level @@ -986,7 +1003,8 @@ settings: refreshRate: title: Tick Rate description: >- - This determines how many game ticks happen per second. In general, a higher tick rate means better precision but also worse performance. On lower tickrates, the throughput may not be exact. + This determines how many game ticks happen per second. In general, a higher tick rate means better precision but also worse performance. On lower tickrates, the throughput may not be + exact. alwaysMultiplace: title: Multiplace @@ -1037,7 +1055,8 @@ settings: clearCursorOnDeleteWhilePlacing: title: Clear Cursor on Right Click description: >- - Enabled by default, clears the cursor whenever you right click while you have a building selected for placement. If disabled, you can delete buildings by right-clicking while placing a building. + Enabled by default, clears the cursor whenever you right click while you have a building selected for placement. If disabled, you can delete buildings by right-clicking while placing + a building. lowQualityTextures: title: Low quality textures (Ugly) @@ -1211,7 +1230,7 @@ tips: - Cutters always cut vertically, regardless of their orientation. - The storage buffer prioritises the left output. - Invest time to build repeatable designs - it's worth it! - - Holding SHIFT lets you place multiple buildings in one click. + - Holding SHIFT lets you place multiple buildings at a time. - You can hold ALT to invert the direction of placed belts. - Efficiency is key! - Shape patches that are further away from the hub are more complex. diff --git a/translations/base-fi.yaml b/translations/base-fi.yaml index 6da1e0bf..56b52600 100644 --- a/translations/base-fi.yaml +++ b/translations/base-fi.yaml @@ -1,57 +1,56 @@ steamPage: shortText: shapez.io on peli tehtaiden rakentamisesta, joiden avulla - automatisoidaan yhä monimutkaisempien muotojen luonti and yhdisteleminen + automatisoidaan yhä monimutkaisempien muotojen luonti ja yhdisteleminen loputtomassa maailmassa. discordLinkShort: Virallinen Discord intro: >- Shapez.io on rento peli, jossa sinun täytyy rakentaa tehtaita geometristen muotojen automatisoituun tuotantoon. - Kun taso kasvaa, muodot tulevat entistä vaikeammaksi sekä sinun täytyy laajentua loputtomassa kartassa. + Kun taso nousee, muodot tulevat entistä vaikeammiksi ja sinun täytyy laajentua loputtomassa kartassa. - Ja jos tämä ei ollut tarpeeksi, niin sinun täytyy tuottaa eksponentiaalisesti enemmän täyttääksesi tarpeet - ainut asia mikä auttaa on skaalautuminen! + Ja jos tämä ei ollut tarpeeksi, niin sinun täytyy tuottaa eksponentiaalisesti enemmän täyttääksesi tarpeet + - ainut asia mikä auttaa on skaalautuminen! - Vaikka alussa vain prosessoit muotoja, myöhemmin niitä pitää maalata - tätä varten täytyy sinun kaivaa ja sekoittaa värejä + Vaikka alussa vain prosessoit muotoja, myöhemmin niitä pitää myös maalata - tätä varten sinun täytyy kerätä ja sekoittaa värejä - Pelin ostaminen Steamista antaa sinulle pääsyn pelin kokoversioon, mutta voit myös pelata kokeiluversiota esin sivuillamme shapez.io ja päättää myöhemmin! - title_advantages: Kokoversion hyödyt + Pelin ostaminen Steamista antaa sinulle pääsyn pelin täysversioon, mutta voit myös pelata kokeiluversiota ensin sivuillamme shapez.io ja päättää myöhemmin! + title_advantages: Täysversion hyödyt advantages: - 12 uutta tasoa nostaen tasojen määrän 26 tasoon! - - 18 uutta rakennusta täysin automatisoidulle tehtaalle! + - 18 uutta laitetta täysin automatisoidulle tehtaalle! - 20 päivitystasoa monelle hauskalle pelitunnille! - - Johdot -päivitys tuoden täyden uuden ulottuvuuden! + - Johdot -päivitys tuo täysin uuden ulottuvuuden! - Tumma teema! - Rajattomat tallennukset - Rajattomat merkit - Tue minua! ❤️ title_future: Suunniteltu sisältö planned: - - Pohjapiirustus kirjasto (Standalone Exclusive) + - Pohjapiirustuskirjasto (Vain täysversiossa) - Steam Achievements - Palapelitila - Minikartta - Modit - - Hiekkalaatikko -tila + - Hiekkalaatikkotila - ... ja paljon muuta! title_open_source: Tämä peli on avointa lähdekoodia! title_links: Linkit links: discord: Virallinen Discord - roadmap: Roadmap + roadmap: Tiekartta subreddit: Subreddit source_code: Lähdekoodi (GitHub) translate: Auta kääntämään text_open_source: >- Kuka tahansa voi osallistua. Olen aktiivisesti mukana yhteisössä ja - yritän tarkistaa kaikki ehdotukset ja ottaa palautteen huomioon missä - mahdollista. - - Muista tarkistaa Trello -lautani, jossa löytyy koko roadmap! + yritän tarkistaa kaikki ehdotukset ja ottaa palautteen huomioon missä mahdollista. + Muista tarkistaa Trello -lautani, jossa löytyy koko tiekartta! global: loading: Ladataan error: Virhe - thousandsDivider: "," - decimalSeparator: . + thousandsDivider: " " + decimalSeparator: "," suffix: thousands: k millions: M @@ -80,7 +79,7 @@ global: space: VÄLILYÖNTI demoBanners: title: Demoversio - intro: Hanki pelin kokoversio avataksesi kaikki ominaisuudet! + intro: Hanki pelin täysversio avataksesi kaikki ominaisuudet! mainMenu: play: Pelaa continue: Jatka @@ -93,10 +92,10 @@ mainMenu: helpTranslate: Auta kääntämään! madeBy: Pelin on tehnyt browserWarning: Anteeksi, mutta pelin tiedetään toimivan huonosti selaimellasi! - Hanki pelin kokoversio tai lataa Google Chrome täyttä tukea varten. + Hanki pelin täysversio tai lataa Google Chrome täyttä tukea varten. savegameLevel: Taso savegameLevelUnknown: Tuntematon taso - savegameUnnamed: Unnamed + savegameUnnamed: Nimetön dialogs: buttons: ok: OK @@ -105,7 +104,7 @@ dialogs: later: Myöhemmin restart: Käynnistä uudelleen reset: Nollaa - getStandalone: Hanki kokoversio + getStandalone: Hanki täysversio deleteGame: Tiedän mitä olen tekemässä viewUpdate: Näytä päivitys showUpgrades: Näytä päivitykset @@ -123,13 +122,13 @@ dialogs: title: Varmista poisto text: Oletko varma, että haluat poistaa valitun pelin?

'' tasossa

Tätä toimintoa ei - voida peruuttaa! + voi peruuttaa! savegameDeletionError: title: Poisto epäonnistui text: "Tallennuksen poisto epäonnistui:" restartRequired: title: Uudelleenkäynnistys vaaditaan - text: Käynnistä peli uudelleen ottaaksesi asetukset käyttöön. + text: "Käynnistä peli uudelleen ottaaksesi asetukset käyttöön." editKeybinding: title: Vaihda pikanäppäin desc: Paina näppäintä tai hiiren nappia, jonka haluat asettaa tai paina @@ -143,15 +142,14 @@ dialogs: featureRestriction: title: Demoversio desc: Yritit käyttää ominaisuutta (), joka ei ole saatavilla - demoversiossa. Harkitse kokoversio avataksesi - kaikki ominaisuudet! + demoversiossa. Hanki täysversio avataksesi kaikki ominaisuudet! oneSavegameLimit: title: Rajoitetut tallennukset - desc: Sinulla voi olla vain yksi tallennus kerrallaan demoversiossa. Poista - vanha tallennus tai hanki kokoversio pelistä! + desc: Sinulla voi olla demoversiossa vain yksi tallennus kerrallaan. Poista + vanha tallennus tai hanki täysversio pelistä! updateSummary: title: Uusi päivitys! - desc: "Tässä uudet muutokset sen jälkeen kun viimeksi pelasit:" + desc: "Tässä uudet muutokset edellisen pelikertasi jälkeen:" upgradesIntroduction: title: Avaa päivitykset desc: Kaikkia muotoja joita tuotat voidaan käyttää päivitysten avaamiseen - @@ -174,16 +172,16 @@ dialogs: rakentamisesta helpompaa. Tässä on muutama, mutta katso kaikki pikanäppäimet!

CTRL + Raahaus: Valitse alue.
VAIHTO: Pidä pohjassa sijoittaaksesi + class='keybinding'>SHIFT: Pidä pohjassa sijoittaaksesi useita samoja rakennuksia.
ALT: - Käännä sijoitettavien hihnojen suunta.
" + Käännä sijoitettavien kuljettimien suunta.
" createMarker: title: Uusi merkki - desc: Anna merkille merkitsevä nimi. Voit myös liittää lyhyen koodin + desc: Anna merkille kuvaava nimi. Voit myös liittää lyhyen koodin muodosta. (Jonka voit luoda täällä.) titleEdit: Muokkaa merkkiä markerDemoLimit: - desc: Voit tehdä vain kaksi mukautettua merkkiä demoversiossa. Hanki kokoversio + desc: Voit tehdä vain kaksi mukautettua merkkiä demoversiossa. Hanki täysversio saadaksesi loputtoman määrän merkkejä! exportScreenshotWarning: title: Vie kuvakaappaus @@ -194,10 +192,10 @@ dialogs: desc: Sinulla ei ole varaa leikata tätä aluetta! Oletko varma että haluat leikata sen? editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the short key of a shape (Which you - can generate here) + title: Aseta signaali + descItems: "Valitse esivalmisteltu muoto" + descShortKey: ... tai käytä muodon pikanäppäintä + (Jonka voit luoda täällä) renameSavegame: title: Nimeä tallennus uudelleen desc: Voit nimetä tallennuksesi uudelleen täällä. @@ -212,16 +210,16 @@ ingame: moveMap: Liiku selectBuildings: Valitse alue stopPlacement: Lopeta sijoittaminen - rotateBuilding: Käännä rakennusta + rotateBuilding: Käännä laitetta placeMultiple: Sijoita useita reverseOrientation: Käänteinen suunta disableAutoOrientation: Poista automaattinen suunta käytöstä toggleHud: Vaihda valikon näkyvyys - placeBuilding: Sijoita rakennus + placeBuilding: Sijoita laite createMarker: Luo merkki delete: Poista pasteLastBlueprint: Liitä viimeisin piirustus - lockBeltDirection: Ota hihnojen suunnittelija käyttöön + lockBeltDirection: Ota kuljettimen suunnittelija käyttöön plannerSwitchSide: Käännä suunnittelijan puoli cutSelection: Leikkaa copySelection: Kopioi @@ -271,12 +269,12 @@ ingame: description: Näyttää keskusrakennuksessa varastoitujen muotojen määrän. produced: title: Tuotettu - description: Näyttää kaikki muodot mitä tehtaasi tuottaa ja lisäksi myös + description: Näyttää kaikki tehtaidesi tuottamat muodot ja lisäksi myös välituotteet. delivered: title: Toimitettu description: Näyttää muodot, jotka on toimitettu keskusrakennukseen. - noShapesProduced: Toistaiseksi ei muotoja tuotettu. + noShapesProduced: Muotoja ei ole vielä tuotettu. shapesDisplayUnits: second: / s minute: / m @@ -284,7 +282,7 @@ ingame: settingsMenu: playtime: Peliaika buildingsPlaced: Rakennukset - beltsPlaced: Liukuhihnat + beltsPlaced: Kuljettimet tutorialHints: title: Tarvitsetko apua? showHint: Näytä vihje @@ -296,7 +294,7 @@ ingame: hub: Keskusrakennus description: Paina merkkiä hiiren vasemmalla mennäksesi siihen, paina oikeaa nappia poistaaksesi sen.

Paina luodaksesi merkin - nykyisestä näkymästä tai vasen nappi luodaksesi + nykyisestä näkymästä tai vasenta nappia luodaksesi merkin valittuun paikkaan. creationSuccessNotification: Merkki luotiin onnistuneesti. shapeViewer: @@ -306,57 +304,55 @@ ingame: interactiveTutorial: title: Tutoriaali hints: - 1_1_extractor: Laita Kaivaja ympyrämuodon - päälle kaivaaksesi sen! - 1_2_conveyor: "Yhdistä kaivaja liukuhihnalla + 1_1_extractor: Laita Poimija ympyrämuodon + päälle käyttääksesi sitä! + 1_2_conveyor: "Yhdistä poimija kuljettimella keskusrakennukseen!

Vihje: Paina ja - raahaa liukuhihnaa hiirellä!" + raahaa
kuljetinta hiirellä!" 1_3_expand: "Tämä EI OLE tyhjäkäyntipeli! Rakenna lisää - kaivajia ja hihnoja saadaksesi tavoitteen nopeammin - valmiiksi.

Vihje: Pidä pohjassa VAIHTO - laittaaksesi useampia kaivajia ja käytä R + poimijoita ja kuljettimia saavuttaaksesi tavoitteen nopeammin + valmiiksi.

Vihje: Pidä SHIFT pohjassa + laittaaksesi useampia poimijoita ja käytä R kääntääksesi niitä." 2_1_place_cutter: "Nyt aseta Leikkuri leikataksesi ympyrä - puoliksi!

PS: Leikkuri aina leikkaa ylhäältä alaspäin + puoliksi!

PS: Leikkuri aina leikkaa ylhäältä alaspäin riippumatta sen asennosta." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + 2_2_place_trash: Leikkuri voi tukkeutua!

Käytä + roskakoria hävittääksesi (vielä!) tarpeeton jäte. + 2_3_more_cutters: "Hienoa! Lisää kaksi leikkuria nopeuttaaksesi + hidasta prosessia!

PS: Käytä pikanäppäimiä 0-9 + valitaksesi rakennuksen nopeammin!" + 3_1_rectangles: "Poimitaanpa nyt neliöitä! Rakenna 4 + poimijaa ja yhdistä ne keskusrakennukseen.

PS: + Pidä SHIFT painettuna, kun raahaat kuljetinta + aktivoidaksesi kuljetinsuunnittelijan!" + 21_1_place_quad_painter: Aseta nelimaalain ja hanki + ympyröitä, valkoista ja + punaista väriä! + 21_2_switch_to_wires: Vaihda Johdot -tasolle painamalla + E!

Sitten yhdistä kaikki neljä tuloa maalaimeen johdoilla! + 21_3_place_button: MahtaVATA! Aseta nyt kytkin ja yhdistä + se johdoilla! + 21_4_press_button: "Paina kytkintä lähettääksesi tosi- + signaalin ja aktivoidaksesi maalaimen.

PS: Kaikkia + tuloja ei tarvitse kytkeä! Kokeile vaikka vain kahta." connectedMiners: - one_miner: 1 kaivaja - n_miners: kaivajaa + one_miner: 1 poimija + n_miners: poimijaa limited_items: Rajoitettu watermark: title: Kokeiluversio desc: Napsauta tästä nähdäksesi Steam version edut! get_on_steam: Hanki Steamista standaloneAdvantages: - title: Hanki kokoversio! + title: Hanki täysversio! no_thanks: Ei kiitos! points: levels: title: 12 Uutta tasoa desc: Yhteensä 26 tasoa! buildings: - title: 18 Uutta rakennusta + title: 18 Uutta laitetta desc: Automatisoi tehtaasi täysin! savegames: title: ∞ Tallennukset @@ -378,10 +374,10 @@ ingame: desc: Kehitän peliä vapaa-ajallani! shopUpgrades: belt: - name: Hihnat, jakelija & tunneli + name: Kuljettimet, jakelijat & tunnelit description: Nopeus x → x miner: - name: Kaivuu + name: Poiminta description: Nopeus x → x processors: name: Leikkaus, kääntö & pinoaminen @@ -397,7 +393,7 @@ buildings: endOfDemo: Kokeiluversion loppu! belt: default: - name: Liukuhihna + name: Kuljetin description: Kuljettaa esineitä. Pidä pohjassa ja raahaa laittaaksesi useampia. wire: default: @@ -409,20 +405,18 @@ buildings: Eriväriset johdot eivät yhdisty toisiinsa. miner: default: - name: Kaivaja - description: Laita muodon tai värin päälle kaivaaksesi sen. + name: Poimija + description: Laita muodon tai värin päälle poimiaksesi sitä. chainable: - name: Kaivaja (Sarja) - description: Laita muodon tai värin päälle kaivaaksesi sen. Voidaan kytkeä - sarjaan. + name: Poimija (Sarja) + description: Laita muodon tai värin päälle poimiaksesi sitä. Voidaan kytkeä sarjaan. underground_belt: default: name: Tunneli - description: Sallii resurssien kuljetuksen rakennuksien ja hihnojen alta. + description: Sallii resurssien kuljetuksen laitteiden ja kuljetinten alta. tier2: name: Tunneli taso II - description: Sallii resurssien kuljetuksen rakennuksien ja hihnojen alta - pidemmältä kantamalta. + description: Sallii resurssien kuljetuksen laitteiden ja kuljetinten alta pidemmältä matkalta. cutter: default: name: Leikkuri @@ -442,7 +436,7 @@ buildings: name: Kääntäjä (vastapäivään) description: Kääntää muotoja 90 astetta vastapäivään. rotate180: - name: Kääntäjä (180) + name: Kääntäjä (180°) description: Kääntää muotoja 180 astetta. stacker: default: @@ -455,22 +449,21 @@ buildings: description: Sekoittaa kaksi väriä lisäaineiden avulla. painter: default: - name: Maalari + name: Maalain description: Maalaa vasemmasta sisääntulosta tulevan muodon ylemmästä sisääntulosta tulevalla värillä. mirrored: - name: Maalari + name: Maalain description: Maalaa vasemmasta sisääntulosta tulevan muodon alemmasta sisääntulosta tulevalla värillä. double: - name: Maalari (kaksinkertainen) - description: Värjää vasemmasta sisääntulosta tulevat muodot ylemmästä + name: Maalain (kaksinkertainen) + description: Maalaa vasemmasta sisääntulosta tulevat muodot ylemmästä sisääntulosta tulevalla värillä. quad: - name: Maalari (neljännes) - description: Allows you to color each quadrant of the shape individually. Only - slots with a truthy signal on the wires layer - will be painted! + name: Maalain (neljännes) + description: Maalaa jokaisen neljänneksen erikseen. Vain ruudut + joissa signaali on tosi johtotasolla maalataan. trash: default: name: Roskakori @@ -478,23 +471,23 @@ buildings: balancer: default: name: Tasaaja - description: Monikäyttöinen - Jaa sisääntulot tasaisesti kaikkiin ulostuloihin. + description: Monikäyttöinen - Jakaa sisääntulot tasaisesti kaikkiin ulostuloihin. merger: name: Yhdistäjä (compact) - description: Yhdistää kaksi hihnaa yhteen. + description: Yhdistää kaksi kuljetinta yhteen. merger-inverse: name: Yhdistäjä (compact) - description: Yhdistää kaksi hihnaa yhteen. + description: Yhdistää kaksi kuljetinta yhteen. splitter: name: Erottaja (compact) - description: Erottaa hihnan kahteen hihnaan. + description: Erottaa kuljettimen kahteen kuljettimeen. splitter-inverse: name: Erottaja (compact) - description: Erottaa hihnan kahteen hihnaan. + description: Erottaa kuljettimen kahteen kuljettimeen. storage: default: name: Varasto - description: Varasotoi ylijäämätavarat tiettyyn kapasiteettiin asti. Priorisoi vasemman ulostulon + description: Varastoi ylijäämätavarat tiettyyn kapasiteettiin asti. Priorisoi vasemman ulostulon ja voidaan käyttää ylivuotoporttina. wire_tunnel: default: @@ -513,92 +506,89 @@ buildings: default: name: AND portti description: Lähettää totuusarvon "1", jos molemmat sisääntulot ovat totta. (Totuus tarkoittaa, - että muoto, väri tai totuusarvo "1") + että muoto, väri tai binääriarvo on "1") not: name: NOT portti description: Lähettää totuusarvon "1", jos sisääntulot eivät ole totta. - (Totuus tarkoittaa, että muoto, väri tai totuusarvo "1") + (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") xor: name: XOR portti description: Lähettää totuusarvon "1", jos yksi sisääntuloista on totta, mutta kaikki eivät. - (Totuus tarkoittaa, että muoto, väri tai totuusarvo "1") + (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") or: name: OR portti description: Lähettää totuusarvon "1", jos yksi sisääntuloista on totta. - (Totuus tarkoittaa, että muoto, väri tai totuusarvo "1") + (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") transistor: default: name: Transistori description: Lähettää pohjasignaalin eteenpäin, jos sivusisääntulo on totta. - (Totuus tarkoittaa, että muoto, väri tai totuusarvo "1") + (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") mirrored: name: Transistori description: Lähettää pohjasignaalin eteenpäin, jos sivusisääntulo on totta. - (Totuus tarkoittaa, että muoto, väri tai totuusarvo "1") + (Totuus tarkoittaa, että muoto, väri tai binääriarvo on "1") filter: default: name: Suodatin description: Yhdistä signaali reitittääksesi kaikki vastaavat tavarat ylös, - ja jäljelle jäämät vasemmalle. Voidaan ohjata myös binääriarvoilla. + ja jäljelle jäävät vasemmalle. Voidaan ohjata myös binääriarvoilla. display: default: name: Näyttö - description: Yhdistö signaali näyttääksesi sen näytöllä. Voi olla muoto, + description: Yhdistä signaali näyttääksesi sen näytöllä. Voi olla muoto, väri tai binääriarvo. reader: default: - name: Hihnanlukija - description: Mittaa hihnan keskiarvosuorituskyky. Antaa viimeksi luetun - tavaran signaalin johtotasolla (kun saavutettu). + name: Kuljetinanturi + description: Mittaa kuljettimen keskiarvosuorituskykyä. Antaa viimeksi luetun + tavaran signaalin johtotasolla (kunhan se on avattu). analyzer: default: name: Tutkija - description: Analysoi ylä oikean neljänneksen alimmasta tavaran tasosta ja + description: Analysoi ylä-oikean neljänneksen alimmasta tavaran tasosta ja palauttaa sen muodon ja värin. comparator: default: name: Vertain - description: Palauttaa binääriarvon "1", jos molemmat signaalit ovat täysin samat. - Voi verrata värejä, tavaroita, ja binääriarvoja. + description: Palauttaa totuusarvon "1", jos molemmat signaalit ovat täysin samat. + Voi verrata värejä, tavaroita ja binääriarvoja. virtual_processor: default: name: Virtuaalileikkuri - description: Virtuaalisesti leikkaa tavara kahteen puoliskoon. + description: Leikkaa tavara virtuaalisesti kahteen puoliskoon. rotater: - name: Virtuaalikääntäjä Rotater - description: Virtuaalisesti käännä tavara, sekä myötäpäivään että vastapäivään. + name: Virtuaalikääntäjä + description: Käännä tavara virtuaalisesti, sekä myötäpäivään että vastapäivään. unstacker: name: Virtuaalierottaja - description: Virtuaalisesti erota ylin taso oikeaan ulostuloon ja jäljelle jäävät + description: Erota ylin taso virtuaalisesti oikeaan ulostuloon ja jäljelle jäävät vasempaan ulostuloon. stacker: name: Virtuaaliyhdistäjä - description: Virtuaalisesti yhdistä oikea tavara vasempaan. + description: Yhdistä oikea tavara virtuaalisesti vasempaan. painter: - name: Virtuaalimaalaaja - description: Virtuaalisesti maalaa tavara alhaalta sisääntulosta oikean sisääntulon värillä. + name: Virtuaalimaalain + description: Maalaa virtuaalisesti tavara alhaalta sisääntulosta oikean sisääntulon värillä. item_producer: default: - name: Item Producer - description: Saatavilla vain hiekkalaatikkotilassa. Palauttaa + name: Signaaligeneraattori + description: Saatavilla vain hiekkalaatikkotilassa. Lähettää johtotasolla annetun signaalin normaaliin tasoon. storyRewards: reward_cutter_and_trash: title: Muotojen Leikkaus - desc: You just unlocked the cutter, which cuts shapes in half - from top to bottom regardless of its - orientation!

Be sure to get rid of the waste, or - otherwise it will clog and stall - For this purpose - I have given you the trash, which destroys - everything you put into it! + desc: Avasit juuri leikkurin. Se leikkaa muotoja ylhäältä alaspäin + ja tuottaa muodon molemmat puoliskot. Jos käytät vain yhden puoliskon, tuhoa toinen + puolisko tai se jumittaa leikkurin! - Siksi sinulla on + roskakori, joka tuhoaa kaiken sinne laittamasi! reward_rotater: title: Kääntö - desc: Avasit Kääntäjän! Se kääntää muotoja myötäpäivään 90 - astetta. + desc: Avasit Kääntäjän! Se kääntää muotoja myötäpäivään 90 astetta. reward_painter: title: Värjäys - desc: "Avasit Värjääjän - Kaiva joitain värialueita - (Samanlailla kuin muotoja) ja yhdistä se muotoon värjääjän + desc: "Avasit Maalaimen - Poimi joitain värialueita + (Samoin kuin muotoja) ja yhdistä se muotoon maalaimen avulla!

PS: Jos olet värisokea, asetuksissa on tila värisokeille!" reward_mixer: @@ -607,53 +597,52 @@ storyRewards: lisäaineiden avulla tällä rakennuksella! reward_stacker: title: Yhdistäjä - desc: Nyt voit yhdistää muotoja Yhdistäjällä! Molemman + desc: Nyt voit yhdistää muotoja Yhdistäjällä! Molemmat sisääntulot yhdistetään, jos ne laitetaan vierekkäin, niistä tulee - sulatettu. Jos ne eivät ole vierekkäin, + sulautettu. Jos ne eivät ole vierekkäin, oikeanpuoleinen sisääntulo kasataan vasemman päälle! reward_splitter: - title: Tasaaja - desc: You have unlocked a splitter variant of the - balancer - It accepts one input and splits them - into two! + title: Erottaja + desc: Avasit juuri Erottajan, version + Tasaajasta - Se jakaa yhden sisääntulon kahteen! reward_tunnel: title: Tunneli desc: Avasit Tunnelin - Nyt voit kuljettaa tavaroita - liukuhihnoilla rakennusten ja liukuhihnojen alta! + kuljettimilla laitteiden ja toisten kuljettimien alta! reward_rotater_ccw: - title: Vastapäivään Kääntö - desc: Avasit uuden muodon Kääntäjästä - Se sallii kääntämisen + title: Kääntö vastapäivään + desc: Avasit uuden version Kääntäjästä - Se sallii kääntämisen vastapäivään! Sen voi rakentaa valitsemalla kääntäjän ja - painamalla 'T' vaihtaaksesi sen muotoja! + painamalla 'T' vaihtaaksesi sen versioita! reward_miner_chainable: - title: Sarja Kaivaja - desc: "You have unlocked the chained extractor! It can - forward its resources to other extractors so you - can more efficiently extract resources!

PS: The old - extractor has been replaced in your toolbar now!" + title: Sarjapoimija + desc: "Avasit juuri Sarjapoimijan! Se voi + siirtää resurssejaan muihin poimijoihin, joten + voit hankkia resursseja tehokkaammin!

PS: Vanha + poimija on nyt korvattu työkalupalkissa!" reward_underground_belt_tier_2: title: Tunneli Taso II - desc: Avasit uuden muodon Tunnelista - Siinä on pidempi - matka, ja voit myös yhdistellä ja sovitella tunneleita! + desc: Avasit uuden version Tunnelista - Siinä on pidempi + kantama, ja voit myös yhdistellä ja sovitella tunneleita! reward_cutter_quad: - title: Neljäsosa Leikkaus - desc: Avasit muodon Leikkurista - Se sallii muotojen - leikkaamisen neljään osaan kahden sijaan! + title: Neljännesleikkuri + desc: Avasit version Leikkurista - Se sallii muotojen + leikkaamisen neljään osaan kahden sijasta! reward_painter_double: - title: Kaksinkertainen Värjäys - desc: Avasit muodon Värjääjästä - Se toimii samanlailla kuin - normaali värjääjä, mutta käsittelee kaksi muotoa + title: Tuplamaalain + desc: Avasit version Maalaimesta - Se toimii samoin kuin + normaali maalain, mutta käsittelee kaksi muotoa kerrallaan käyttäen vain yhden värin kahden sijaan! reward_storage: - title: Varasto Puskuri - desc: You have unlocked the storage building - It allows you to - store items up to a given capacity!

It priorities the left - output, so you can also use it as an overflow gate! + title: Varastopuskuri + desc: Olet avannut Varaston - Voit varastoida + resursseja tiettyyn rajaan saakka!

Priorisoi vasemman ulostulon + ja voidaan käyttää ylivuotoporttina! reward_freeplay: title: Vapaapeli - desc: You did it! You unlocked the free-play mode! This means - that shapes are now randomly generated!

+ desc: Onnistuit! Avasit juuri vapaapelimuodon! + Muodot luodaan nyt satunnaisesti

Since the hub will require a throughput from now on, I highly recommend to build a machine which automatically delivers the requested shape!

The HUB outputs the requested @@ -662,82 +651,75 @@ storyRewards: reward_blueprints: title: Piirustukset desc: Nyt voit Kopioida ja Liittää paloja tehtaastasi! Valitse - alue (pidä pohjassa CTRL ja raahaa hiirellä), ja paina 'C' - kopioidaksesi.

Sen liittäminen ei ole - ilmaista, sinun täytyy tuottaa piirustus - muotoja jotta sinulla on varaa siihen! (Ne mitkä juuri - toimitit). + alue (pidä CTRL pohjassa ja raahaa hiirellä), ja paina 'C' + kopioidaksesi piirrustuksen.

Sen liittäminen ei ole + ilmaista. Sinun täytyy tuottaa piirustusmuotoja, + jotta sinulla on varaa siihen! (Ne mitkä juuri toimitit). no_reward: title: Seuraava taso - desc: "This level gave you no reward, but the next one will!

PS: Better - don't destroy your existing factory - You need all - those shapes later again to unlock upgrades!" + desc: "Et saanut palkintoa tältä tasolta, mutta seuraavalta tasolta saat!

PS: Parempi + olla tuhoamatta vanhoja tehtaita - Tarvitset kaikkia + muotoja myöhemmin avataksesi päivityksiä!" no_reward_freeplay: title: Seuraava taso - desc: Onnittelut! Muuten, lisää sisältöä on suunniteltu itsenäiseen versioon! + desc: Onnittelut! Muuten, lisää sisältöä on suunniteltu täysversioon! reward_balancer: - title: Balancer - desc: The multifunctional balancer has been unlocked - It can - be used to build bigger factories by splitting and merging - items onto multiple belts! + title: Tasaaja + desc: Monikäyttöinen tasaaja avattu - Voit rakentaa + sen avulla isompia tehtaita erottaen ja yhdistäen + tavaroita useille kuljettimille! reward_merger: - title: Compact Merger - desc: You have unlocked a merger variant of the - balancer - It accepts two inputs and merges them - into one belt! + title: Kompakti Yhdistäjä + desc: Avasit yhdistäjän, joka on versio + tasaajasta - Se yhdistää kaksi sisääntuloa yhdeksi reward_belt_reader: - title: Belt reader - desc: You have now unlocked the belt reader! It allows you to - measure the throughput of a belt.

And wait until you unlock - wires - then it gets really useful! + title: Kuljetinanturi + desc: Olet avannut Kuljetinanturin! Voit mitata kuljettimen + tehokkuutta.

Ja odotahan vain, kunhan saat Johdot auki. Sitten tämä on kätevä! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: Kääntäjä (180°) + desc: Avasit juuri 180-asteen Kääntäjän! - Sillä voit + kääntää muotoa 180 astetta (Ylläripylläri! :D) reward_display: - title: Display - desc: "You have unlocked the Display - Connect a signal on the - wires layer to visualize it!

PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + title: Näyttö + desc: "Avasit juuri Näytön - Yhdistä signaali näyttöön + Johto-tasolla visualisoidaksesi sen

PS: Huomasitko, että kuljetinanturi ja varasto näyttävät viimeisimmän esineen? Yritäpä saada se näkyviin näytölle!" reward_constant_signal: - title: Constant Signal - desc: You unlocked the constant signal building on the wires - layer! This is useful to connect it to item filters - for example.

The constant signal can emit a - shape, color or - boolean (1 / 0). + title: Jatkuva Signaali + desc: Avasit Jatkuvan Signaalin laitteen johtotasolla! + Tämä on hyödyllinen esimerkiksi yhdistettynä + tavarasuodattimeen.

Jatkuva signaali voi lähettää esim. + muodon, värin tai binääriarvon (1 / 0). reward_logic_gates: - title: Logic Gates - desc: You unlocked logic gates! You don't have to be excited - about this, but it's actually super cool!

With those gates - you can now compute AND, OR, XOR and NOT operations.

As a - bonus on top I also just gave you a transistor! + title: Logiikkaportit + desc: Avasit Logiikkaportit (heh,heh)! Niistä ei tarvitse innostua, + mutta ne ovat oikeasti tosi päheitä!

Logiikkaporteilla + voit suorittaa AND, OR, XOR ja NOT operaatioita.

Kaupanpäällisiksi sait + myös transistorin! reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - simulate the processing of shapes!

You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:

- - Build an automated machine to create any possible - shape requested by the HUB (I recommend to try it!).

- Build - something cool with wires.

- Continue to play - regulary.

Whatever you choose, remember to have fun! + title: Virtuaaliprosessointi + desc: Sait juuri hyvän setin uusia laitteita, joiden avulla + voit simuloida muotojen prosessointia!

Nyt voit + simuloida leikkuria, kääntäjää, pinoajaa ja muita johtotasolla! + Sinulla on nyt kolme vaihtoehtoa pelin jatkamiseen:

- + Rakenna automatisoitu kone luodaksesi mikä tahansa + keskusrakennuksen vaatima muoto (Suosittelen kokeilemaan!).

- Rakenna + jotakin hienoa johdoilla.

- Jatka pelaamista + tavallisesti.

Mitä valitsetkin, muista pitää hauskaa! reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" + title: Johdot & Nelimaalain + desc: "Avasit juuri Johtotason: Se on erillinen + taso tavallisen tason päällä ja sieltä löytyy useita uusia + mekaniikkoja!

Aluksi avasin sinulle Nelimaalaimen + - Yhdistä johtotasolla lokerot, joihin haluat maalia

+ Vaihtaaksesi johtotasolle, paina E.

+ PS: Aktivoi vinkit asetuksissa nähdäksesi Johdot-tutoriaalin!" reward_filter: - title: Item Filter - desc: You unlocked the Item Filter! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.

You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + title: Esinesuodatin + desc: Olet avannut Esinesuodattimen! Se lähettää esineet + joko ylös tai oikealle riippuen siitä vastaavatko ne + signaalia johtotasolla vai eivät.

Voit myös lähettää + binääriarvon (1 / 0) aktivoidaksesi tai sammuttaaksesi sen. reward_demo_end: title: Kokeiluversion loppu! desc: Olet läpäissyt kokeiluversion! @@ -777,7 +759,7 @@ settings: disabled: Pois käytöstä scrollWheelSensitivity: title: Suurennusherkkyys - description: Vaihtaa kuinka herkkä suurennus on (Joko hiiren rulla tai ohjauslevy). + description: Vaihtaa suurennuksen herkkyyttä (Joko hiiren rulla tai ohjauslevy). sensitivity: super_slow: Erittäin hidas slow: Hidas @@ -786,7 +768,7 @@ settings: super_fast: Erittäin nopea movementSpeed: title: Liikkumisnopeus - description: Muuttaa kuinka nopeasti näkymä liikkuu kun käytetään näppäimistöä. + description: Muuttaa näkymän liikkumisnopeutta kun käytetään näppäimistöä. speeds: super_slow: Erittäin hidas slow: Hidas @@ -796,16 +778,16 @@ settings: extremely_fast: Supernopea language: title: Kieli - description: Vaihda kieltä. Kaikki käännökset ovat käyttäjien tekemiä ja + description: Vaihtaa kieltä. Kaikki käännökset ovat käyttäjien tekemiä ja saattavat olla puutteellisia! enableColorBlindHelper: title: Värisokeatila - description: Ottaa käyttöön useita työkaluja, jotka sallivat pelin pelaamisen + description: Ottaa käyttöön useita työkaluja, jotka helpottavat pelaamista jos olet värisokea. fullscreen: title: Kokonäyttö - description: On suositeltava pelata tätä peliä kokonäytön tilassa saadaksesi - parhaan kokemuksen. Saatavilla vain itsenäisessä versiossa. + description: Peliä suositellaan pelattavaksi kokonäytön tilassa + parhaan kokemuksen saamiseksi. Saatavilla vain täysversiossa. soundsMuted: title: Mykistä äänet description: Jos käytössä, mykistää kaikki ääniefektit. @@ -822,7 +804,7 @@ settings: title: Virkistystaajuus description: Jos sinulla on 144hz näyttö, muuta virkistystaajuus täällä jotta pelin simulaatio toimii oikein isommilla virkistystaajuuksilla. - Tämä voi laskea FPS nopeutta, jos tietokoneesi on liian hidas. + Tämä voi laskea FPS-nopeutta, jos tietokoneesi on liian hidas. alwaysMultiplace: title: Monisijoitus description: Jos käytössä, kaikki rakennukset pysyvät valittuina sijoittamisen @@ -831,84 +813,72 @@ settings: offerHints: title: Vihjeet & oppaat description: Tarjoaa pelaamisen aikana vihjeitä ja oppaita. Myös piilottaa - tietyt käyttöliittymäelementit tietyn tason mukaan, jotta + tietyt käyttöliittymäelementit tason mukaan, jotta alkuunpääseminen olisi helpompaa. enableTunnelSmartplace: title: Älykkäät tunnelit description: Kun käytössä, tunnelin sijoittaminen automaattisesti poistaa - tarpeettomat liukuhihnat. Tämä myös ottaa käyttöön tunnelien - raahaamisen ja ylimääräiset tunnelit poistetaan. + tarpeettomat kuljettimet. Tämä myös ottaa käyttöön tunnelien + raahaamisen ja ylimääräisten tunnelien poiston. vignette: title: Vinjetointi description: Ottaa käyttöön vinjetoinnin, joka tummentaa näytön kulmia ja tekee tekstin lukemisesta helpompaa. rotationByBuilding: - title: Kiertäminen rakennustyypin mukaan - description: Jokainen rakennustyyppi muistaa kierron, jonka viimeksi asetit - yksilöllisesti. Tämä voi olla mukavampi vaihtoehto jos usein - sijoitat eri rakennustyyppejä. + title: Kiertäminen laitetyypin mukaan + description: Muistaa jokaisen laitetyypin viimeisimmän kiertoasetuksen. + Tämä voi olla mukavampi vaihtoehto jos sijoitat usein eri laitetyyppejä. compactBuildingInfo: - title: Kompaktit rakennusten tiedot - description: Lyhentää rakennusten tietolaatikoita näyttämällä vain niiden - suhteet. Muuten rakennuksen kuvaus ja kuva näytetään. + title: Kompaktit laitetiedot + description: Lyhentää laitteiden tietolaatikoita näyttämällä vain niiden + suhteet. Muuten laitteen kuvaus ja kuva näytetään. disableCutDeleteWarnings: title: Poista leikkaus/poisto -varoitukset - description: Poista varoitusikkunat jotka ilmestyy kun leikkaat/poistat enemmän - kuin 100 entiteettiä + description: Poista varoitusikkunat, jotka ilmestyvät kun leikkaat/poistat enemmän + kuin 100 entiteettiä. soundVolume: title: Efektien äänenvoimakkuus - description: Aseta äänenvoimakkuus efekteille + description: Aseta ääniefektien äänenvoimakkuus musicVolume: title: Musiikin äänenvoimakkuus - description: Aseta äänenvoimakkuus musiikille + description: Aseta musiikin äänenvoimakkuus lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: Alhaisen tason resurssit + description: Yksinkertaistaa resurssikenttien ulkonäön suurennetussa näkymässä + suorituskyvyn parantamiseksi. Näyttää jopa siistimmältä, joten kannattaa kokeilla! disableTileGrid: title: Poista ruudukko - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + description: Poistaa ruudukon ja parantaa suorituskykyä. Pelialue näyttää myös siistimmältä! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: Tyhjennä kursori oikalla klikillä + description: Oletuksena päällä. Tyhjentää kursorin klikattaessa oikealla kun laite on valittu asetettavaksi. lowQualityTextures: title: Alhaisen tason tekstuurit (ruma) description: Käyttää alhaisen tason tekstuureja tehojen säästämiseksi. Tämä muutta pelin rumaksi! displayChunkBorders: - title: Näytä kimpaleiden reunus Display Chunk Borders - description: Pel on jaettu 16x16 kimpaleisiin. Jos tämä asetus on käytössä, + title: Näytä kimpaleiden reunus + description: Peli on jaettu 16x16 kimpaleisiin. Jos tämä asetus on käytössä, reunat jokaiselle kimpaleelle näytetään. pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: Valitse poimija resurssikentässä + description: Oletuksena päällä. Valitsee poimijan jos käytät pipettiä resurssikentän päällä. simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: Yksinkertaiset kuljettimet (ruma) + description: Ei näytä tavaroita kuljettimella, ellei hiiren osoitin ole sen päällä. Asetusta ei suositella, ellet todella tarvitse lisätehoja. enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: Ruudun liikuttaminen hiirellä + description: Liikuttaa ruutua siirrettäessä hiiri reunaan. Nopeus määritellään liikenopeuden asetuksissa. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Suurenna kursoriin + description: Aktivoituna suurentaa näkymää hiiren osoittimen suuntaan. Muuten suurentaa ruudun keskelle. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Kartan resurssien koko + description: Määrittää muotojen koon kartalla (loitonnettaessa). rangeSliderPercentage: % keybindings: title: Pikanäppäimet - hint: "Tip: Muista käyttää CTRL, SHIFT ja ALT! Ne ottavat käyttöön erilaisia + hint: "Vinkki: Muista käyttää CTRL, SHIFT ja ALT! Ne ottavat käyttöön erilaisia sijoitteluvaihtoehtoja." resetKeybindings: Nollaa pikanäppäimet categoryLabels: @@ -934,51 +904,51 @@ keybindings: menuOpenShop: Päivitykset menuOpenStats: Tilastot toggleHud: Vaihda valikon näkyvyys - toggleFPSInfo: Vaihda FPS and Virheenkorjaus tiedot + toggleFPSInfo: Vaihda FPS- and virheenkorjaustiedot switchLayers: Vaihda tasoa exportScreenshot: Vie koko tukikohta kuvana - belt: Liukuhihna + belt: Kuljetin underground_belt: Tunneli - miner: Kaivaja + miner: Poimija cutter: Leikkuri rotater: Kääntäjä stacker: Pinoaja mixer: Värinsekoittaja - painter: Värjääjä + painter: Maalain trash: Roskakori wire: Johto pipette: Pipetti rotateWhilePlacing: Käännä - rotateInverseModifier: "Modifier: Käännä sen sijaan vastapäivään" + rotateInverseModifier: "Muutos: Käännä vastapäivään" cycleBuildingVariants: Valitse muotoja confirmMassDelete: Poista alue pasteLastBlueprint: Liitä viimeisin piirustus - cycleBuildings: Valitse Rakennuksia - lockBeltDirection: Ota liukuhihnasuunnittelija käyttöön - switchDirectionLockSide: "Planner: Muuta sivua" + cycleBuildings: Valitse rakennuksia + lockBeltDirection: Ota kuljetinsuunnittelija käyttöön + switchDirectionLockSide: "Suunnittelija: Muuta sivua" massSelectStart: Pidä pohjassa ja raahaa aloittaaksesi massSelectSelectMultiple: Valitse useita alueita massSelectCopy: Kopioi alue massSelectCut: Leikkaa alue placementDisableAutoOrientation: Poista automaattinen suunta käytöstä placeMultiple: Pysy sijoittamistilassa - placeInverse: Käännä automaattinen hihnan suunta päinvastoin + placeInverse: Käännä automaattinen kuljettimen suunta päinvastoin menuClose: Sulje valikko - balancer: Balancer - storage: Storage - constant_signal: Constant Signal - logic_gate: Logic Gate - lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing - display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare - item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + balancer: Tasaaja + storage: Varasto + constant_signal: Jatkuva signaali + logic_gate: Logiikkaportti + lever: Kytkin (tavallinen) + filter: Suodatin + wire_tunnel: Johtojen risteys + display: Näyttö + reader: Kuljetinanturi + virtual_processor: Virtuaalileikkuri + transistor: Transistori + analyzer: Muotoanalysaattori + comparator: Vertaa + item_producer: Signaaligeneraattori (Hiekkalaattikko) + copyWireValue: "Johdot: Kopioi arvo kursorin kohdalta" about: title: Tietoja tästä pelistä body: >- @@ -986,13 +956,11 @@ about: href="https://github.com/tobspr" target="_blank">Tobias Springer (tämä on minä).

- Jos haluat osallistua, tarkista shapez.io GitHubissa.

- - Tämä peli ei olisi ollut mahdollista ilman suurta Discord -yhteisöä pelini ympärillä - Sinun kannattaisi liittyä Discord palvelimelleni!

+ Tämän pelin tekeminen ei olisi ollut mahdollista ilman suurta Discord-yhteisöä pelini ympärillä - Voisit liittyä Discord palvelimelleni!

Ääniraidan on tehnyt Peppsen - Hän on mahtava.

- Lopuksi, isot kiitokset minun parhaalle kaverilleni Niklas - Ilman meidän factorio istuntoja tätä peliä ei olisi koskaan ollut olemassa. + Lopuksi, isot kiitokset parhaalle kaverilleni Niklakselle - Ilman meidän factorio istuntoja tätä peliä ei olisi koskaan olemassa. changelog: title: Muutosloki demo: @@ -1004,63 +972,59 @@ demo: exportingBase: Viedään koko tukikohta kuvana settingNotAvailable: Ei saatavilla demoversiossa. tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing R. - - Holding CTRL allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use T to switch between different variants. + - Keskusrakennus huolii minkä tahansa muodon, ei ainoastaan tarvittua muotoa! + - Varmista tehtaittesi modulaarisuus - se kannattaa! + - Älä rakenna liian lähelle keskusrakennusta tai olet pian pulassa! + - Jos pinoaminen ei toimi, kokeile vaihtaa syöttöjä. + - Voit vaihtaa kuljetinsuunnittelijan suuntaa painamalla R. + - CTRL:n painaminen antaa vetää kuljettimia ilman automaattisuuntausta. + - Suhteet säilyvät samana, kunhan kaikki pivityset ovat samalla tasolla. + - Sarjassa tekeminen on tehokkaampaa, kuin rinnan. + - Rakennuksista avautuu lisää versioita myöhemmin pelissä! + - Paina T vaihtaaksesi versioiden välillä. - Symmetria on keskeistä! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with T - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding SHIFT will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. + - Voit yhdistellä eri tasojen tunneleita. + - Yritäö rakentaa kompakteja tehtaita - se kannattaa! + - Maalaimesta on peilikuvaversio, jonka saat painamalla T + - Rakennusten oikea suhde maksimoi tehokkuuden. + - Maksimitasolla 5 poimijaa täyttää yhden kuljettimen. + - Älä unohda tunneleita! + - Asioita ei tarvitse jakaa tasan parhaan tehokkuuden saavuttamiseksi. + - SHIFTinpainaminen aktivoi kuljetinsuunnittelijan, joka helpottaa pitkien linjojen rakentamista. + - Leikkurit leikkaavat aina pystysuunnassa riippumatta niiden asemoinnista. - Sekoita kolmea väriä saadaksesi valkoista. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding CTRL allows to place multiple buildings. - - You can hold ALT to invert the direction of placed belts. + - Varasto priorisoi ensimmäisen lähdön. + - Käytä aikaa toistettavien rakennelmien tekoon - se kannattaa! + - CTRLia painamalla voit asettaa useita rakennuksia. + - ALTia voit vaihtaa kuljetinten suuntaa. - Tehokkuus on keskeistä! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use CTRL + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. + - Muotokentät ovat monimutkaisempia kauempana keskusrakennuksesta. + - Koneiden nopeus on rajoitettu. Jaa töitä useammalle koneelle tehokkuuden maksimoimiseksi + - Käytä tasaajia tehokkuuden maksimoimiseksi. + - Järjestys on tärkeää. Vältä liiallista kuljetinten risteämistä. + - Suunnittele etukäteen tai jodut keskelle kaaosta! + - Älä poista vanhoja tehtaitasi! Tarvitset niitä päivitysten avaamiseen. + - Yritä läpäistä taso 20 itseksesi, ennen kuin etsit apuja! + - Älä monimutkaista asioita. Yksinkertainen vie pitkälle. + - Saatat joutua käyttämään tehtaitasi uudelleen myöhemmin. Rakenna niistä kierrätettäviä. + - Joskus tarvitsemasi muoto löytyy suoraan kartalta, etkä tarvitse pinoajia. + - Kokonaiset tuulimyllyt ja piikkipyörät eivät synny luonnollisesti. + - Tehokkainta on maalata muodot ennen leikkausta. + - Moduleissa tila on vain havainto; kuolevaisten huoli. + - Tee erilliset mallitehtaat. Ne ovat tärkeitä modulaarisuudessa. + - Katso tarkkaan värinsekoitinta ja kysymyksiisi vastataan. + - CTRL + hiiren vasen nappi valitsee alueen. + - Liian lähelle keskusrakennusta rakennettu tehdas on tiellä myöhemmissä projekteissa. + - Nastaikoni päivityslistan muotojen vieressä kiinnittää muodon ruudulle. + - Sekoita kaikkia päävärejä saadaksesi valkoista! + - Kartta on ääretön. Älä rakenna tehtaitasi liian ahtaasti, laajenna! + - Kokeile myös Factoriota! Se on lempipelini. + - Nelileikkuri leikkaa myötäpäivään aloittaen yläoikealta! + - Voit ladata tallennuksesi päävalikosta! + - Tässä pelissä on monia käteviä pikanäppäimiä. Muista tutustua asetussivuihin. + - Tässä pelissä on useita asetuksia. Tutustu niihin! + - Keskusrakennuksen merkissä on pieni kompassi osoittamassa sen suuntaa! + - Poistaaksesti kuljettimia leikkaa alue ja liitä se samaan kohtaan - Paina F4 nähdäksesi FPS laskurin ja virkistystaajuuden. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - Press F4 kahdesti nähdäksesi hiiren ja kameran ruudun. + - Klikkaa kiinnitetyn muodon vasemmalta puolelta irrottaaksesi sen. diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index bb2ada7c..65d962a2 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -6,9 +6,11 @@ steamPage: intro: >- Vous aimez les jeux d’automatisation ? Ce jeu est pour vous ! - shapez.io est un jeu calme où vous devrez construire des usines pour produire automatiquement des formes géométriques. À mesure que le niveau augmente, les formes deviennent de plus en plus complexes, et vous devrez vous étendre sur la carte infinie. + shapez.io est un jeu calme où vous devrez construire des usines pour produire automatiquement des formes géométriques. À mesure que le niveau augmente, les formes deviennent de plus en plus + complexes, et vous devrez vous étendre sur la carte infinie. - Et en plus, vous devrez aussi produire de plus en plus pour satisfaire la demande. La seule solution est de construire en plus grand ! Au début vous ne ferez que découper les formes, mais plus tard vous devrez les peindre — et pour ça vous devrez extraire et mélanger des couleurs ! + Et en plus, vous devrez aussi produire de plus en plus pour satisfaire la demande. La seule solution est de construire en plus grand ! Au début vous ne ferez que découper les formes, mais + plus tard vous devrez les peindre — et pour ça vous devrez extraire et mélanger des couleurs ! En achetant le jeu sur Steam, vous aurez accès à la version complète, mais vous pouvez aussi jouer à une démo sur shapez.io et vous décider ensuite ! title_advantages: Avantages de la version complète @@ -1028,7 +1030,8 @@ about: Si vous souhaitez contribuer, allez voir shapez.io sur GitHub.

- Ce jeu n’aurait pas pu être réalisé sans la précieuse communauté Discord autour de mes jeux — Vous devriez vraiment rejoindre le serveur Discord !

+ Ce jeu n’aurait pas pu être réalisé sans la précieuse communauté Discord autour de mes jeux — Vous devriez vraiment rejoindre le + serveur Discord !

La bande son a été créée par Peppsen — Il est génial !

diff --git a/translations/base-ind.yaml b/translations/base-ind.yaml index 3cffbc48..2da9b377 100644 --- a/translations/base-ind.yaml +++ b/translations/base-ind.yaml @@ -6,9 +6,11 @@ steamPage: intro: >- Kamu suka game otomasi? Maka kamu berada di tempat yang tepat! - shapez.io adalah game santai dimana kamu harus membuat pabrik untuk mengotomatiskan produksi bentuk-bentuk geometris. Semakin meningkatnya level, bentuk-bentuknya menjadi lebih kompleks, dan kamu perlu meluaskan pabrikmu semakin jauh lagi. + shapez.io adalah game santai dimana kamu harus membuat pabrik untuk mengotomatiskan produksi bentuk-bentuk geometris. Semakin meningkatnya level, bentuk-bentuknya menjadi lebih kompleks, + dan kamu perlu meluaskan pabrikmu semakin jauh lagi. - Dan jita itu tidak cukup, kamu juga perlu memproduksi bentuk secara eksponensial untuk memenuhkan kebutuhan - hal yang membantu hanyalah memperbesar pabrik! Walaupun kamu hanya perlu memproses bentuk di awal, nantinya kamu harus memberinya warna - dengan mengekstrak dan mencampur warna! + Dan jita itu tidak cukup, kamu juga perlu memproduksi bentuk secara eksponensial untuk memenuhkan kebutuhan - hal yang membantu hanyalah memperbesar pabrik! Walaupun kamu hanya perlu + memproses bentuk di awal, nantinya kamu harus memberinya warna - dengan mengekstrak dan mencampur warna! Membeli game ini di Steam memberikan kamu akses ke versi lengkap, namun kamu juga dapat mencoba demo dan memutuskan nanti! title_advantages: Keuntungan Versi Lengkap @@ -325,7 +327,8 @@ ingame: bawah
apapun orientasinya." 2_2_place_trash: Pemotong dapat tersumbat dan macet!

Gunakan tong sampah untuk membuang sisa (!) yang saat ini tidak diperlukan. - 2_3_more_cutters: "Kerja yang bagus! Sekarang letakkan 2 pemotong lagi untuk mempercepat + 2_3_more_cutters: + "Kerja yang bagus! Sekarang letakkan 2 pemotong lagi untuk mempercepat proses ini!

NB: Gunakan tombol 0-9 untuk mengakses bangunan lebih cepat!" 3_1_rectangles: "Sekarang ekstrak beberapa persegi! Bangun 4 @@ -893,7 +896,8 @@ settings: description: Mengatur volume untuk musik lowQualityMapResources: title: Kualitas Peta Sumber Daya Rendah - description: Menyederhanakan rendering sumber daya pada peta saat diperbesar untuk meningkatkan performa. + description: + Menyederhanakan rendering sumber daya pada peta saat diperbesar untuk meningkatkan performa. Bahkan terlihat lebih rapi, jadi pastikan untuk mencobanya! disableTileGrid: title: Nonaktifkan Grid @@ -901,7 +905,9 @@ settings: Ini juga membuat game menjadi lebih rapi! clearCursorOnDeleteWhilePlacing: title: Menghapus Kursor dengan Klik Kanan - description: Diaktifkan secara default, menghapus kursor setiap kali kamu mengklik kanan saat kamu memiliki bangunan yang dipilih untuk penempatan. Jika dinonaktifkan, kamu dapat menghapus bangunan dengan mengklik kanan saat meletakkan bangunan. + description: >- + Diaktifkan secara default, menghapus kursor setiap kali kamu mengklik kanan saat kamu memiliki bangunan yang dipilih untuk penempatan. Jika dinonaktifkan, kamu dapat menghapus + bangunan dengan mengklik kanan saat meletakkan bangunan. lowQualityTextures: title: Tekstur Kualitas Rendah (Jelek) description: Menggunakan kualitas rendah untuk menyelamatkan performa. @@ -1016,7 +1022,8 @@ about: Lagunya dibuat oleh Peppsen - Dia mengagumkan.

- Akhir kata, banyak terima kasih kepada teman baik saya Niklas - Tanpa sesi-sesi factorio kami, permainan ini tidak mungkin tercipta. + Akhir kata, banyak terima kasih kepada teman baik saya Niklas - Tanpa sesi-sesi factorio kami, permainan ini tidak mungkin + tercipta. changelog: title: Catatan Perubahan demo: diff --git a/translations/base-it.yaml b/translations/base-it.yaml index f03072e1..f1ed9ba4 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -207,13 +207,12 @@ dialogs: title: Rinomina salvataggio. desc: Qui puoi cambiare il nome del salvataggio. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Tutorial Disponibile + desc: C'è un video tutorial disponibile per questo livello! Vorresti dargli un'occhiata? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Tutorial Disponibile + desc: C'è un video tutorial per questo livello, ma è disponibile solo in + Inglese. Vorresti dargli un'occhiata? ingame: keybindingsOverlay: moveMap: Sposta @@ -309,30 +308,29 @@ ingame: velocemente.

Suggerimento: Tieni premuto MAIUSC per piazzare estrattori multipli, e usa R per ruotarli." - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "Ora posiziona un Taglierino per tagliare i cerchi in due + metà!

PS: Il taglierino taglia sempre dall'alto verso il + basso indipendentemente dal suo orientamento." + 2_2_place_trash: Il taglierino può intasarsi e bloccarsi!

Usa un + cestino per sbarazzarti delgli scarti (!) inutilizzati. + 2_3_more_cutters: "Ben fatto! Ora posiziona altri 2 taglierini per velocizzare + questo lento processo!

PS: Usa i numeri da 0 a 9 + per selezionare gli edifici più in fretta!" + 3_1_rectangles: "Ora estraiamo qualche rettangolo! Costruisci 4 + estrattori and connect them to the HUB.

PS: + Tieni premuto SHIFT mentre trascini un nastro per attivare il + pianificatore di nastri!" + 21_1_place_quad_painter: Posiziona il verniciatore quadruplo e prendi dei + cerchi e i colori bianco + rosso! + 21_2_switch_to_wires: Per passare al livello elettrico basta premere + E!

Poi connetti tutti e quattro gli + input del verniciatore con i cavi! + 21_3_place_button: Fantastico! Ora posiziona un Interruttore e connettilo + con i cavi! + 21_4_press_button: "Premi l'interruttore per fargli emettere un segnale di verità + e fargli quindi attivare il vernciatore.

PS: Non c'è bisogno + che tu connetta tutti gli imput! Prova a collegarne solo due." colors: red: Rosso green: Verde @@ -747,13 +745,13 @@ storyRewards: divertirti! reward_wires_painter_and_levers: title: Cavi e Verniciatrice quadrupla - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" + desc: "Hai appena sbloccato il Livello Elettrico: è un livello separato + dal livelo normale e introduce molte altre + meccaniche di gioco!

Per il momento ti ho sbloccato il Verniciatore + Quadruplo - Connetti con il piano elettrico gli spazi + che vorresti colorare!

Per passare al livello elettrico ti basta premere + E.

PS: Attiva gli aiuti nelle + impostazioni per attivare il tutorial dei cavi!" reward_filter: title: Filtro oggetti desc: Hai sbloccato il filtro oggetti! Smisterà gli oggetti @@ -927,13 +925,13 @@ settings: dello schermo. La velocità dipende dall'impostazione Velocità di movimento. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Zoom verso il Cursore + description: Se attivato, lo zoom andrà verso la posizione del mouse, + altrimenti sarà verso il centro dello schermo. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Grandezza delle Risorse sulla Mappa + description: Controlla la grandezza delle forme visualizzate sulla mappa (quando si fa lo zoom + indietro). rangeSliderPercentage: % keybindings: title: Comandi @@ -1017,11 +1015,13 @@ about: Se vuoi contribuire visita la pagina github di shapez.io.

- Realizzare questo gioco non sarebbe stato possibile senza la grande community di Discord per i miei giochi - Unisciti al server di Discord!

+ Realizzare questo gioco non sarebbe stato possibile senza la grande community di Discord per i miei giochi - + Unisciti al server di Discord!

La colonna sonora è stata composta daPeppsen - È un grande.

- Per finire, grazie di cuore al mio migliore amico Niklas - Senza le nostre sessioni su factorio questo gioco non sarebbe mai esistito. + Per finire, grazie di cuore al mio migliore amico Niklas - + Senza le nostre sessioni su factorio questo gioco non sarebbe mai esistito. changelog: title: Registro modifiche demo: @@ -1103,6 +1103,6 @@ tips: - L'etichetta dell'hub ha una piccola bussola per indicarne la direzione! - Per svuotare i nastri, taglia e re-incolla l'area nello stesso punto. - Premi F4 per mostrare FPS e Tick al secondo. - - Press F4 due volte per mostrare la casella del cursore e della telecamera. + - Premi F4 due volte per mostrare la casella del cursore e della telecamera. - Puoi cliccare a sinistra di una forma fermata a schermo per rimuoverla dalla lista. diff --git a/translations/base-ja.yaml b/translations/base-ja.yaml index ed10eab3..a49611a2 100644 --- a/translations/base-ja.yaml +++ b/translations/base-ja.yaml @@ -177,13 +177,13 @@ dialogs: title: セーブデータの名前を変更 desc: セーブデータの名前を変更することができます tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: チュートリアル視聴可能 + desc: このレベルで利用できるチュートリアルの動画があります! + 見ますか? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: チュートリアル視聴可能 + desc: このレベルで利用できるチュートリアルの動画がありますが、それは + 英語です。見ますか? ingame: keybindingsOverlay: moveMap: マップ移動 @@ -222,10 +222,10 @@ ingame: speed: スピード range: レンジ storage: ストレージ - oneItemPerSecond: 1 アイテム / 秒 - itemsPerSecond: アイテム / 秒 + oneItemPerSecond: 1アイテム/秒 + itemsPerSecond: アイテム/秒 itemsPerSecondDouble: (x2) - tiles: タイル + tiles: タイル levelCompleteNotification: levelTitle: レベル completed: 完了 @@ -287,34 +287,32 @@ ingame: もっと早く要件を満たせるように、追加の抽出機とベルトを設置しましょう。

Tip: SHIFT キーを押し続けると抽出機を連続配置できます。Rキーで設置方向を回転できます。" - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "次に、切断機を設置し、円を + 2分割します!

追記: 切断機はそれの向きに関わらず、縦の線で切断します。" + 2_2_place_trash: 切断機は詰まる場合があります!

+ ゴミ箱を利用して、不必要な部品を廃棄することができます。 + 2_3_more_cutters: "いいですね!更に2つ以上の切断機を設置して + 処理をスピードアップさせましょう!

追記: 0から9 + のホットキーを使用すると素早く部品にアクセスできます。" + 3_1_rectangles: "それでは四角形を抽出しましょう!4つの抽出機を + 作成してそれをハブに接続します。

追記: + SHIFTを押しながらベルトを引くと + ベルトプランナーが有効になります!" + 21_1_place_quad_painter: 四色着色機を設置して、 + そして + を抽出します! + 21_2_switch_to_wires: Eを押すとワイヤレイヤに + 切り替えできます!

そして4つの入力全てを + ケーブルで接続します! + 21_3_place_button: いいね!次にスイッチを設置して + そのワイヤに接続します! + 21_4_press_button: "スイッチを押して真らしい信号を + 発するようにして、着色機を有効化します。

追記: 全ての + 入力を接続する必要はありません!2つだけ接続してみてください。" connectedMiners: one_miner: 1個の抽出機 n_miners: 個の抽出機 - limited_items: に制限されます + limited_items: に制限 watermark: title: デモバージョン desc: Steamバージョンの特典を確認するには、ここをクリックしてください! @@ -530,7 +528,8 @@ buildings: storyRewards: reward_cutter_and_trash: title: 形の切断 - desc: 切断機が利用可能になりました。これは入力された形を、向きを考慮せず上下の直線で半分に切断します。

利用しない側の出力に注意しましょう。破棄するなどをしない限り詰まって停止してしまいます + desc: + 切断機が利用可能になりました。これは入力された形を、向きを考慮せず上下の直線で半分に切断します。

利用しない側の出力に注意しましょう。破棄するなどをしない限り詰まって停止してしまいます - このためにゴミ箱も用意しました。入力アイテムをすべて破棄できます! reward_rotater: title: 回転 @@ -549,9 +548,9 @@ storyRewards: desc: 積層機で形を組み合わせ可能になりました。双方の入力を組み合わせ、もし連続した形になっていればそれらは融合してひとつになります! もしできなかった場合は、左の入力の上に右の入力が重なります。 reward_balancer: title: 分配機/合流機 - desc: The multifunctional balancer has been unlocked - It can - be used to build bigger factories by splitting and merging - items onto multiple belts! + desc: 多機能な分配機/合流機が利用可能になりました - より + 大規模な工場を構築するため、複数のベルト間でアイテムを合流、 + 分配できます! reward_tunnel: title: トンネル desc: トンネルが利用可能になりました。 - 他のベルトや建造物の地下を通してベルトが配置可能です! @@ -561,10 +560,10 @@ storyRewards: 反時計回りの回転ができるようになります! 回転機を選択し、'T'キーを押すことで方向の切り替えができます reward_miner_chainable: title: 連鎖抽出機 - desc: "You have unlocked the chained extractor! It can - forward its resources to other extractors so you - can more efficiently extract resources!

PS: The old - extractor has been replaced in your toolbar now!" + desc: "連鎖抽出機が利用可能になりました!他の + 他の抽出機に出力を渡すことができるので、 + 資源の抽出がより効率的になります!

補足: ツールバーの + 旧い抽出機が置き換えられました!" reward_underground_belt_tier_2: title: トンネル レベルII desc: トンネルのバリエーションが利用可能になりました。 - @@ -590,44 +589,49 @@ storyRewards: 通常の着色機と同様に機能しますが、ひとつの色の消費で一度に2つの形を着色処理できます! reward_storage: title: 余剰の貯蓄 - desc: ゴミ箱のバリエーションが利用可能になりました。 - 容量上限までアイテムを格納することができます!

+ desc: + ゴミ箱のバリエーションが利用可能になりました。 - 容量上限までアイテムを格納することができます!

左側の出力を優先するため、オーバーフローゲートとしても使用できます! reward_blueprints: title: ブループリント - desc: 工場の建造物のコピー&ペーストが利用可能になりました! 範囲選択(CTRLキーを押したままマウスドラッグ)した状態で、'C'キーを押すことでコピーができます。

ペーストはタダではありません。ブループリントの形を生産することで可能になります!(たった今納品したものです) + desc: >- + 工場の建造物のコピー&ペーストが利用可能になりました! + 範囲選択(CTRLキーを押したままマウスドラッグ)した状態で、'C'キーを押すことでコピーができます。

ペーストはタダではありません。ブループリントの形を生産することで可能になります!(たった今納品したものです) reward_rotater_180: title: 180度の回転 desc: 回転機のバリエーションが利用可能になりました! 180度の回転ができるようになります!(サプライズ! :D) reward_wires_painter_and_levers: title: ワイヤ&着色機(四分割) - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" + desc: "ワイヤレイヤが利用可能になりました: これは通常の + レイヤーの上にある別のレイヤであり、多くの新しい要素が + あります!

最初に、四色 + 着色機が利用可能になりました - 着色するスロットをワイヤレイヤで + 接続します!

ワイヤレイヤに切り替えるには、 + Eを押します。

補足: 設定でヒントを有効にすると、 + ワイヤのチュートリアルが有効になります。" reward_filter: title: アイテムフィルタ - desc: アイテムフィルタが利用可能になりました! ワイヤレイヤの信号と一致するかどうかに応じて、 + desc: + アイテムフィルタが利用可能になりました! ワイヤレイヤの信号と一致するかどうかに応じて、 アイテムを上部または右側の出力に分離します。

真偽値(0/1)信号を利用することで どんなアイテムでも通過させるか、または通過させないかを選ぶこともできます。 reward_display: title: ディスプレイ - desc: "You have unlocked the Display - Connect a signal on the - wires layer to visualize it!

PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + desc: "ディスプレイが利用可能になりました - ワイヤレイヤで + 信号を接続することで、その内容を視認することができます!

補足: ベルトリーダーとストレージが + 最後に通過したアイテムを出力していることに気づきましたか? それをディスプレイに + 表示してみてください!" reward_constant_signal: title: 定数信号 - desc: You unlocked the constant signal building on the wires - layer! This is useful to connect it to item filters - for example.

The constant signal can emit a - shape, color or - boolean (1 or 0). + desc: 定数信号がワイヤレイヤで + 利用可能になりました!これは例えばアイテムフィルタに接続する + 場合に便利です。

定数信号は + 形状または + 真偽値(1か0)を発信できます。 reward_logic_gates: title: 論理ゲート - desc: 論理ゲートが利用可能になりました! 興奮するほどでは ありませんが、これらは非常に優秀です!

+ desc: + 論理ゲートが利用可能になりました! 興奮するほどでは ありませんが、これらは非常に優秀です!

AND, OR, XOR and NOTを計算できます!

ボーナスとしてトランジスタも追加しました! reward_virtual_processing: @@ -639,7 +643,8 @@ storyRewards: - ワイヤでイカしたものを作る。

- 今までのように工場を建設する。

いずれにしても、楽しんでください! no_reward: title: 次のレベル - desc: "このレベルには報酬はありません。次にはあるでしょう!

補足: すでに作った生産ラインは削除しないようにしましょう。 - + desc: + "このレベルには報酬はありません。次にはあるでしょう!

補足: すでに作った生産ラインは削除しないようにしましょう。 - 生産された形はすべて、後にアップグレードの解除のために必要になりま\ す!" no_reward_freeplay: @@ -705,7 +710,7 @@ settings: regular: 普通 fast: 速い super_fast: 超速 - extremely_fast: ちょっぱや + extremely_fast: 極速 language: title: 言語 description: 言語を変更します。すべての翻訳はユーザーからの協力で成り立っており、まだ完全には完了していない可能性があります! @@ -766,7 +771,8 @@ settings: description: 配置用のグリッドを無効にして、パフォーマンスを向上させます。 これにより、ゲームの見た目もすっきりします。 clearCursorOnDeleteWhilePlacing: title: 右クリックで配置をキャンセル - description: デフォルトで有効です。建物を設置しているときに右クリックすると、選択中の建物がキャンセルされます。 + description: + デフォルトで有効です。建物を設置しているときに右クリックすると、選択中の建物がキャンセルされます。 無効にすると、建物の設置中に右クリックで建物を削除できます。 lowQualityTextures: title: 低品質のテクスチャ(視認性低下) @@ -785,13 +791,12 @@ settings: title: マウスで画面を移動 description: 画面の端にカーソルを合わせることで移動できます。移動速度を設定することで、速度を変更できます。 zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: カーソルに向かってズーム + description: 有効にすると、カーソルの方に向かってズームします。 + 無効にすると、画面の中央に向かってズームします。 mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: 資源アイコンのサイズ + description: ズームアウトしたときの図形のサイズを調節します。 keybindings: title: キー設定 hint: "Tip: CTRL, SHIFT, ALTを利用するようにしてください。これらはそれぞれ建造物配置の際の機能があります。" @@ -836,7 +841,7 @@ keybindings: storage: ストレージ wire: ワイヤ constant_signal: 定値信号 - logic_gate: Logic Gate + logic_gate: 論理ゲート lever: スイッチ filter: アイテムフィルタ wire_tunnel: 交差ワイヤ @@ -849,7 +854,7 @@ keybindings: item_producer: なんでも抽出機(サンドボックス) pipette: スポイト rotateWhilePlacing: 回転 - rotateInverseModifier: "Modifier: 逆時計回りにする" + rotateInverseModifier: "変更: 逆時計回りにする" cycleBuildingVariants: バリエーション変更 confirmMassDelete: 複数選択削除の確認 pasteLastBlueprint: 直前のブループリントをペーストする diff --git a/translations/base-kor.yaml b/translations/base-kor.yaml index 34a14fbd..ca2f2cf3 100644 --- a/translations/base-kor.yaml +++ b/translations/base-kor.yaml @@ -265,7 +265,7 @@ ingame: waypoints: 마커 hub: 허브 description: 마커를 좌클릭하여 그곳으로 이동하고, 우클릭으로 삭제할 수 있습니다.

마커를 배치하기 위해 - 키로 지금 있는 위치에 혹은 우클릭하여 원하는 위치에 배치할 수 + 키로 지금 있는 위치에, 또는 우클릭하여 원하는 위치에 배치할 수 있습니다. creationSuccessNotification: 마커가 성공적으로 생성되었습니다. interactiveTutorial: @@ -436,10 +436,10 @@ buildings: wire: default: name: 전선 - description: 아이템, 색상, 또는 불 값 (0 혹은 1)이 될 수 있는 신호를 전송합니다. 색이 다른 전선은 서로 연결되지 않습니다. + description: 아이템, 색상, 또는 불 값 (0 또는 1) 신호를 전송합니다. 색이 다른 전선은 서로 연결되지 않습니다. second: name: 전선 - description: 아이템, 색상, 또는 불 값 (0 혹은 1)이 될 수 있는 신호를 전송합니다. 색이 다른 전선은 서로 연결되지 않습니다. + description: 아이템, 색상, 또는 불 값 (0 또는 1) 신호를 전송합니다. 색이 다른 전선은 서로 연결되지 않습니다. balancer: default: name: 밸런서 @@ -459,19 +459,19 @@ buildings: storage: default: name: 저장고 - description: 아이템을 지정된 용량까지 저장합니다. 왼쪽 출력이 가장 우선되므로 오버플로 회로로 사용할 수 있습니다. + description: 아이템을 지정된 용량까지 저장합니다. 왼쪽 출력이 가장 우선되므로 오버플로로 사용할 수 있습니다. wire_tunnel: default: - name: 전선 교차 장치 + name: 전선 교차기 description: 두 전선이 서로 연결되지 않고 교차할 수 있도록 합니다. constant_signal: default: - name: 일정 신호 - description: 모양, 색상, 또는 불 값 (1 혹은 0)이 될 수 있는 상수 신호를 방출합니다. + name: 일정 신호기 + description: 모양, 색상, 또는 불 값 (1 또는 0) 상수 신호를 방출합니다. lever: default: name: 스위치 - description: 전선 레이어에서 불 값 (1 또는 0)를 방출하도록 전환할 수 있으며, 그 후 아이템 선별같은 구성 요소를 제어하는 데 + description: 전선 레이어에서 불 값 (1 또는 0)을 방출하도록 전환할 수 있으며, 그 후 아이템 선별같은 구성 요소를 제어하는 데 사용될 수 있습니다. logic_gate: default: @@ -593,10 +593,10 @@ storyRewards: 출력이 우선되므로 오버플로 회로로도 활용될 수 있습니다! reward_freeplay: title: 자유플레이 - desc: 드디어 해내셨군요! 자유플레이 모드가 잠금 해제되었습니다! 이는 즉 앞으로 도형이 - 무작위로 생성됩니다.

이제부터 허브는 처리량이 + desc: 드디어 해내셨군요! 자유플레이 모드가 잠금 해제되었습니다! 이제 앞으로 도형이 + 무작위로 생성됩니다.

또한 허브는 처리량이 필요하므로 요청하는 도형을 자동으로 전달하는 공장을 구축하는 것이 좋습니다.

허브는 요청된 도형을 전선 - 레이어에서 출력하므로 이를 분석하고 기반으로 하여 공장을 자동으로 구성하기만 하면 됩니다. + 레이어를 통해 내보내므로 이를 분석하는 구조를 기반으로 하여 공장을 자동으로 구성하기만 하면 됩니다. reward_blueprints: title: 청사진 desc: 이제 공장의 일부를 복사하고 붙여넣는 기능을 사용할 수 있습니다! 영역을 선택 (CTRL 키를 누른 채 @@ -631,10 +631,10 @@ storyRewards: desc: "디스플레이가 잠금 해제되었습니다! 이제 신호를 전선 레이어에 연결해 시각화할 수 있습니다.

추신: 벨트 판독기와 저장고가 마지막으로 읽은 아이템을 출력했나요? 디스플레이로 한번 봐보세요!" reward_constant_signal: - title: 일정 신호 - desc: 전선 레이어에서 구축할 수 있는 일정 신호가 잠금 해제되었습니다! 간단한 예시로, 아이템 - 선별에 연결하여 사용하는 데 유용합니다.

일정 신호는 도형, - 색상, 혹은 불 값 (1 혹은 0)을 출력할 수 있습니다. + title: 일정 신호기 + desc: 전선 레이어에서 구축할 수 있는 일정 신호기가 잠금 해제되었습니다! 간단한 예시로, 아이템 + 선별에 연결하여 사용하는 데 유용합니다.

일정 신호기는 도형, + 색상, 또는 불 값 (1 또는 0)을 출력할 수 있습니다. reward_logic_gates: title: 논리 회로 desc: 논리 회로가 잠금 해제되었습니다! 굳이 흥분할 필요는 없지만, 진짜 멋진 기술입니다!

@@ -862,11 +862,11 @@ keybindings: wire: 전선 balancer: 밸런서 storage: 저장고 - constant_signal: 일정 신호 + constant_signal: 일정 신호기 logic_gate: 논리 회로 lever: 레버 filter: 선별기 - wire_tunnel: 전선 교차 장치 + wire_tunnel: 전선 교차기 display: 디스플레이 reader: 벨트 판독기 virtual_processor: 가상 절단기 diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index e43d6450..bebba218 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -310,13 +310,14 @@ ingame: 2_1_place_cutter: "Plaats nu een Knipper om de cirkels in twee te knippen halves!

PS: De knipper knipt altijd van boven naar onder ongeacht zijn oriëntatie." - 2_2_place_trash: De knipper kan vormen verstoppen en bijhouden!

Gebruik een + 2_2_place_trash: + De knipper kan vormen verstoppen en bijhouden!

Gebruik een vuilbak om van het (!) niet nodige afval vanaf te geraken. 2_3_more_cutters: "Goed gedaan! Plaats nu 2 extra knippers om dit traag process te versnellen!

PS: Gebruik de 0-9 sneltoetsen om gebouwen sneller te selecteren." - 3_1_rectangles: "Laten we nu rechthoeken ontginnen! Bouw 4 + 3_1_rectangles: "Laten we nu rechthoeken ontginnen! Bouw 4 ontginners en verbind ze met de lever.

PS: Houd SHIFT Ingedrukt terwijl je lopende banden plaats om ze te plannen!" @@ -686,8 +687,8 @@ storyRewards: reward_balancer: title: Verdeler desc: De multifunctionele verdeler is nu ontgrendeld - Het kan - gebruikt worden om grotere te knippen en plakken vormen op meerdere - lopende banden te zetten + gebruikt worden om grotere te knippen en plakken vormen op meerdere + lopende banden te zetten reward_merger: title: Compacte samenvoeger desc: Je hebt een variant op de samenvoeger van de @@ -1001,7 +1002,8 @@ about: Als je ook bij wil dragen, ga dan naar shapez.io op github.

- Dit spel was niet mogelijk geweest zonder de geweldige Discord community rondom mijn spellen - Je zou eens lid moeten worden van de Discord server (engelstalig)!

+ Dit spel was niet mogelijk geweest zonder de geweldige Discord community rondom mijn spellen - Je zou eens lid moeten worden van de + Discord server (engelstalig)!

De muziek is gemaakt door Peppsen - Hij is geweldig.

diff --git a/translations/base-pl.yaml b/translations/base-pl.yaml index 80b49d99..d42c80f2 100644 --- a/translations/base-pl.yaml +++ b/translations/base-pl.yaml @@ -7,7 +7,7 @@ steamPage: Shapez.io jest spokojną grą, której celem jest budowanie automatycznych fabryk produkujących różne kształty geometryczne. - W miarę zwiększania się poziomów, kształty będą stawać się coraz bardziej skomplikowane, a Twoja fabryka będzie musiała się rozpszetrzenić na mapie o nieskończonej wielkości. + W miarę zwiększania się poziomów, kształty będą stawać się coraz bardziej skomplikowane, a Twoja fabryka będzie musiała się rozprzestrzenić na mapie o nieskończonej wielkości. A jeżeli to było mało, będziesz również musiał produkować coraz więcej kształtów, by zaspokoić wymagania - jedynym rozwiązaniem jest skalowanie fabryki! @@ -207,13 +207,11 @@ dialogs: title: Zmień nazwę zapisu gry desc: Tutaj możesz zmienić nazwę zapisu gry. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Dostępny tutorial + desc: Dla tego poziomu dostępny jest video tutorial. Chcesz go obejrzeć? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Dostępny tutorial + desc: Dla tego poziomu dostępny jest video tutorial w języku angielskim. Chcesz go obejrzeć? ingame: keybindingsOverlay: moveMap: Ruch @@ -316,37 +314,35 @@ ingame: 1_1_extractor: Postaw ekstraktor na źródle kształtu koła, aby go wydobyć! 1_2_conveyor: "Połącz ekstraktor taśmociągiem do głównego - budynku!

Porada: Kliknij i przeciągnij + budynku!

PS: Kliknij i przeciągnij taśmociąg myszką!" 1_3_expand: 'To NIE JEST gra "do poczekania"! Buduj więcej taśmociągów i ekstraktorów, by wydobywać - szybciej.

Porada: Przytrzymaj SHIFT, by + szybciej.

PS: Przytrzymaj SHIFT, by postawić wiele ekstraktorów. Naciśnij R, by je obracać.' - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "Teraz umieść przecinak aby przeciąć koła na dwie + połowy!

PS: Przecinak zawsze tnie pionowo + niezależnie od swojej orientacji." + 2_2_place_trash: Przecinak może się zapchać i zablokować!

Użyj + śmietnik aby usunąć obecnie (!) nie potrzebne elementy. + 2_3_more_cutters: "Dobra robota! Teraz umieść 2 kolejne przecinaki,aby przyspieszyć + ten wolny proces!

PS: Użyj klawiszy 0-9, + aby szybciej uzyskać dostęp do budynków!" + 3_1_rectangles: "Teraz wydobądź kilka kwadratów! Wybuduj + ekstraktory i połącz je do głównego budynku.

PS: + Przytrzymaj SHIFT i przeciągnij taśmociąg, aby uruchomić + planer taśmociągu!" + 21_1_place_quad_painter: Umieść malarz poczwórny i wykonaj kilka + biało-czerwonych kółek! + 21_2_switch_to_wires: Przełącz się na warstwę przewodów wciskając + E!

Następnie połącz wszystkie cztery + wejścia malarza przewodem! + 21_3_place_button: Świetnie! Teraz umieść Przełącznik i połącz go + z przewodem! + 21_4_press_button: "Wciśnij przełącznik aby emitował sygnał + Prawda i aktywował malarza.

PS: Nie + musisz łączyć wszystkich wejść! Spróbuj połączyć tylko dwa." connectedMiners: one_miner: 1 ekstraktor n_miners: ekstraktorów @@ -462,9 +458,9 @@ buildings: kształty używając 1 barwnika. quad: name: Malarz (Poczwórny) - description: Allows you to color each quadrant of the shape individually. Only - slots with a truthy signal on the wires layer - will be painted! + description: Pozwala pomalować każdą ćwiartkę osobno. Tylko + sloty z podłączonym sygnałem "Prawda" w warstwie przewodów + będą malowane! mirrored: name: Malarz description: Koloruje kształt za pomocą koloru dostarczonego od boku. @@ -603,7 +599,7 @@ buildings: storyRewards: reward_cutter_and_trash: title: Przecinanie Kształtów - desc: Właśnie odblokowałeś przecinaka, który przecina kstałty + desc: Właśnie odblokowałeś przecinaka, który przecina kształty na pół od góry na dół bez znaczenia na ich orientację!

Upewnij się, że usuwasz śmieci - w przeciwnym przypadku maszyna zapcha się i przestanie @@ -666,7 +662,7 @@ storyRewards: raz, pobierając wyłącznie jeden barwnik! reward_storage: title: Magazyn - desc: Właśnie odblokowałeś magazyn - Pozwala na przecowywanie + desc: Właśnie odblokowałeś magazyn - Pozwala na przechowywanie przedmiotów, do pewnej ilości!

Prawe wyjście posiada większy piorytet, więc może być on użyty jako brama przepełnieniowa! @@ -676,7 +672,7 @@ storyRewards: kształty są teraz losowo generowane!

Od teraz budynek główny będzie wymagał odpowiedniej przepustowości kształtów, zatem sugeruję budowę - maszyny, która będzie atuomatycznie dostarczała wymagany + maszyny, która będzie automatycznie dostarczała wymagany kształt!

Budynek główny emituje wymagany kształt na warstwie przewodów, więc wystarczy analizować ten sygnał i konfigurować fabrykę bazując na nim. @@ -699,9 +695,9 @@ storyRewards: pełnej! reward_balancer: title: Dystrybutor - desc: The multifunctional balancer has been unlocked - It can - be used to build bigger factories by splitting and merging - items onto multiple belts! + desc: Wielofunkcyjny dystrybutor został odblokowany - Może + być wykorzystany przy budowaniu większych fabryk do łączenia i dzielenia + przedmiotów na kilku taśmociągach! reward_merger: title: Kompaktowy łącznik desc: Właśnie odblokowałeś łącznik - typ @@ -715,7 +711,7 @@ storyRewards: użyteczny! reward_rotater_180: title: Obracacz (180°) - desc: Właśnie odblokowałeś kolejny wariant obraczacza! - + desc: Właśnie odblokowałeś kolejny wariant obrazacza! - Pozwala ci na obrócenie kształtu o 180 stopni! reward_display: title: Wyświetlacz @@ -743,23 +739,23 @@ storyRewards: przecinaka, obracacza, sklejacza i wiele więcej na warstwie przewodów! Teraz masz trzy opcje na kontynuację gry:

- Zbuduj zautomatyzowaną maszynę, która stworzy każdy - kstałt ządany przez budynek główny (Polecam tą opcję!).

- + kształt żądany przez budynek główny (Polecam tą opcję!).

- Zbuduj coś ciekawego za pomocą przewodów.

- Kontynuuj zwykłą rozgrywkę.

Cokolwiek wybierzesz, pamiętaj by się dobrze bawić! reward_wires_painter_and_levers: title: Przewody i poczwórny malarz - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" + desc: "Właśnie odblokowałeś Warstwę Przewodów: Jest to osobna + warstwa powyżej zwykłej warstwy i wprowadza wiele nowych możliwości.

+ Na początku odblokowałem dla Ciebie Poczwórnego Malarza + - Podłącz ćwiartki, które chcesz pomalować, na warstwie przewodów!!

+ Aby przełączyć się na warstwę przewodów, wciśnij + E.

PS: Włącz podpowiedzi w + ustawieniach, aby aktywować samouczek przewodów!" reward_filter: title: Filtr przedmiotów desc: Właśnie odblokowałeś Filtr Przedmiotów! Będzie on - przekirowywał przedmioty do górnego lub prawego wyjścia, zależnie od + przekierowywał przedmioty do górnego lub prawego wyjścia, zależnie od tego, czy pasują one do sygnału z warstwy przewodów.

Możesz również przekazać sygnał typu Prawda/Fałsz, by całkowicie go włączyć lub wyłączyć. @@ -901,12 +897,12 @@ settings: budynki podczas budowania używając tego samego przycisku. lowQualityTextures: title: Tekstury niskiej jakości (Brzydkie) - description: Używa niskej jakości tekstur, by zwiększyć wydajność. Spowoduje to, + description: Używa niskiej jakości tekstur, by zwiększyć wydajność. Spowoduje to, że gra będzie wyglądać bardzo brzydko! displayChunkBorders: - title: Wyświetl granice chunków - description: Gra jest podzielona na chunki o wielkości 16x15 kratek. Włączenie - tego ustawienia powoduje wyświetlenie granicy każdego chunku. + title: Wyświetl granice obszarów + description: Gra jest podzielona na obszary o wielkości 16x15 kratek. Włączenie + tego ustawienia powoduje wyświetlenie granicy każdego obszaru. pickMinerOnPatch: title: Wybierz ekstraktor zamiast źródła description: Domyślnie włączone, wybiera ekstraktor, jeżeli spróbujesz wybrać @@ -922,13 +918,11 @@ settings: granicy ekranu. Szybkość jest zależna od ustawienia Prędkość poruszania. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Powiększ w kierunku kursora + description: Powiększ w kierunku pozycji kursora myszylub do środka ekranu. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Rozmiar mapy zasobów + description: Steruje rozmiarem kształtów w przeglądzie mapy (podczas pomniejszenia). rangeSliderPercentage: % keybindings: title: Klawiszologia @@ -1035,7 +1029,7 @@ tips: - Nie buduj zbyt blisko budynku głównego, albo będziesz miał wielki chaos! - Jeżeli łączenie kształtów nie działa, spróbuj zamienić wejścia. - Możesz zmienić kierunek planera taśmociągów poprzez naciśnięcie R. - - Przytrymanie CTRL pozwala na przeciąganie taśmociągów bez + - Przytrzymanie CTRL pozwala na przeciąganie taśmociągów bez automatycznego zmieniania kierunków. - Stosunku pozostają takie same, dopóki wszystkie ulepszenia są na tym samym poziomie. @@ -1050,13 +1044,13 @@ tips: - Na najwyższym poziomie, 5 ekstraktorów zapełni pojedynczy taśmociąg. - Nie zapomnij o tunelach! - Nie musisz dzielić równo przedmiotów, by osiągnąć pełną wydajność. - - Przytrymanie SHIFT aktywuje planera taśmociągów, pozwalającego ci + - Przytrzymanie SHIFT aktywuje planera taśmociągów, pozwalającego ci na łatwe budowanie długich taśmociągów. - Przecinaki zawsze tną pionowo, nie zważając na ich orientację. - - Zmieszanie wszystich 3 barwników daje biały barwnik. + - Zmieszanie wszystkich 3 barwników daje biały barwnik. - Pierwsze wyjście z magazynu ma najwyższy piorytet. - Zainwestuj czas w budowanie powtarzalnych układów fabryk - warto! - - Przytrymanie CTRL pozwala na układanie wielu budynków tego samego + - Przytrzymanie CTRL pozwala na układanie wielu budynków tego samego typu. - Możesz przytrzymać ALT, by odwrócić kierunek układanych taśmociągów. - Wydajność to klucz do sukcesu! @@ -1073,31 +1067,31 @@ tips: - Możesz potrzebować ponownie używać swoich fabryk w późniejszej fazie rozgrywki. Planuj swoje fabryki, by były zdatne do ponownego użycia. - Czasami znajdziesz wymagany kształt na mapie, bez potrzeby tworzenia go za - pomoca sklejaczy. + pomocą sklejaczy. - Pełne "wiatraczki" nigdy nie pojawią się naturalnie na mapie. - - Maluj swoje kształty przed przecianiem dla maksymalnej wydajności. + - Maluj swoje kształty przed przecinaniem dla maksymalnej wydajności. - Z modułami, miejsce jest tylko tym, co postrzegamy; troska dla śmiertelników - Zbuduj osobną fabrykę schematów. Są one bardzo potrzebne do modułów. - - Obejrz dokładnie mikser kolorów, a wszystkie twoje pytania zostaną + - Obejrzyj dokładnie mikser kolorów, a wszystkie twoje pytania zostaną rozwiązane. - Przytrzymaj CTRL i przeciągnij, by zaznaczyć obszar - Budowanie zbyt blisko budynku głównego może przeszkodzić ci w późniejszych projektach. - Ikona pinezki przy każdym kształcie na liście ulepszeń przypina je na ekranie. - - Połącz wszystkie głowne kolory, by stworzyć biały! + - Połącz wszystkie główne kolory, by stworzyć biały! - Masz nieskończoną mapę, nie ściskaj swojej fabryki, rozszerzaj ją! - Spróbuj też Factorio! To moja ulubiona gra. - Poczwórny przecinak tnie zgodnie z ruchem wskazówek zegara, zaczynając do prawej górnej ćwiartki! - - Możesz pobrać swoje zapisy gry w głownym menu gry! + - Możesz pobrać swoje zapisy gry w głównym menu gry! - Ta gra posiada dużo użytecznych skrótów klawiszowych! Sprawdź stronę ustawień! - Ta gra posiada mnóstwo ustawień, sprawdź je! - - Znacznik do budynku główneko posiada mały kompas, wskazujący do niego + - Znacznik do budynku głównego posiada mały kompas, wskazujący do niego kierunek! - By wyczyścić taśmociągi, wytnij obszar i wklej go w tym samym miejscu. - Naciśnij F4, by zobaczyć ilość FPS i tempo ticków. - Naciśnij F4 dwa razy, by zobaczyć kratkę twojej myszy i kamery. - - Możesz klinąć przypięty kształt po lewej stronie, by go odpiąć. + - Możesz kliknąć przypięty kształt po lewej stronie, by go odpiąć. diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index e90ca308..3a6ca947 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -14,39 +14,39 @@ steamPage: While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages + title_advantages: Avantaje Standalone advantages: - - 12 New Level for a total of 26 levels - - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! - - Wires Update for an entirely new dimension! - - Dark Mode! + - 12 Noi Nivele pentru un total de 26 niveluri + - 18 Noi Clădiri pentru o fabrică complet automatizată! + - 20 de Grade de Upgrade pentru multe ore de distracție! + - Actualizare cu Fire pentru o dimensiune cu totul nouă! + - Temă întunecată! - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content + - Marcaje nelimitate! + - Susține-mă! ❤️ + title_future: Conținut Planificat planned: - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links + - Realizări Steam + - Mod Puzzle + - Hartă + - Mod-uri + - Mod Sandbox + - ... și multe altele! + title_open_source: Acest joc are sursă liberă! + title_links: Link-uri links: - discord: Official Discord + discord: Discord Oficial roadmap: Roadmap subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate + source_code: Cod sursă (GitHub) + translate: Ajută la traducere text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. + Oricine poate să contribuie, Sunt implicat activ în comunitate și + încerc să revizuiesc toate sugestiile și să iau păreri și răspunsuri în considerație + oriunde-i posibil. - Be sure to check out my trello board for the full roadmap! + Fii sigur să-mi vezi panoul Trello pentru roadmap-ul întreg! global: loading: Se Încarcă error: Eroare @@ -1004,7 +1004,8 @@ about: Dacă vrei să contribui, verifică shapez.io pe github.

- Acest joc nu ar fi fost posibil fără minunata comunitate de pe Discord pe lângă jocurile mele - Chiar ar trebui să te alături server-ului de Discord!

+ Acest joc nu ar fi fost posibil fără minunata comunitate de pe Discord pe lângă jocurile mele - Chiar ar trebui să te alături + server-ului de Discord!

Coloana sonoră a fost făcută de Peppsen - Este uimitor.

diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index ffbe04e6..23b635b7 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -681,7 +681,8 @@ storyRewards: desc: Поздравляем! Кстати, больше контента планируется для полной версии! reward_balancer: title: Балансер - desc: Многофункциональный банансер разблокирован - Он используется для разделения и обьединения + desc: + Многофункциональный банансер разблокирован - Он используется для разделения и обьединения потора предметов на несколько конвейеров! reward_merger: title: Компактный Соединитель @@ -997,7 +998,8 @@ about: Если вы хотите внести свой вклад игре - shapez.io в github.

- Эта игра не была бы возможна без большого сообщества в дискорде, которое собралось вокруг моих игр - Вам действительно стоит присоединиться к серверу Discord!!

+ Эта игра не была бы возможна без большого сообщества в дискорде, которое собралось вокруг моих игр - Вам действительно стоит присоединиться к + серверу Discord!!

Саундтрек сделал Peppsen - Он потрясающий.

diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index 5b2bcf53..9d4284de 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -15,37 +15,37 @@ steamPage: Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! title_advantages: Standalone Advantages advantages: - - 12 New Level for a total of 26 levels - - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! - - Wires Update for an entirely new dimension! - - Dark Mode! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content + - 12 Nya nivåer av totalt 26 nivåer! + - 18 Nya byggnader för en fullt automatiserad fabrik! + - 20 Upgraderingsnivåer för många roliga timmar! + - Kabelupdatering för en helt ny dimension! + - Mörkt Läge! + - Obegränsade sparningar! + - Obegränsade markeringar! + - Stötta mig! ❤️ + title_future: Planerat innehåll planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode + - Planbibliotek (Standalone Exclusive) + - Steam prestationer + - Pusselläge - Minimap - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links + - Sandlådeläge + - ... och mycket mer! + title_open_source: Detta spel har öppen källkod! + title_links: Länkar links: discord: Official Discord roadmap: Roadmap subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate + source_code: Källkod (GitHub) + translate: Översättningshjälp text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. + Vem som helst kan bidra, jag är aktivt involverad i gruppen + och försöker granska alla förslag och ta förslag och feedback + i åtanke där det är möjligt. - Be sure to check out my trello board for the full roadmap! + Se till och kolla mitt trello board för hela roadmappen! global: loading: Laddar error: Error @@ -176,8 +176,8 @@ dialogs: rullband.
" createMarker: title: Ny Markör - desc: Give it a meaningful name, you can also include a short - key of a shape (Which you can generate here) + desc: Ge det ett meningsfullt namn, du kan också inkludera en kort + nyckel av en form (Som du kan generera här) titleEdit: Ändra Markör markerDemoLimit: desc: Du kan endast ha två markörer i demoversionen. Skaffa den fristående @@ -196,21 +196,20 @@ dialogs: desc: Du har inte råd att placera detta område! Är du säker att du vill klippa det? editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the short key of a shape (Which you - can generate here) + title: Sätt singal + descItems: "Välj en förvald sak:" + descShortKey: ... eller skriv in kort nyckel av en form + (Som du kan generera här) renameSavegame: title: Byt namn på sparfil desc: Du kan byta namn på din sparfil här. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Handledning Tillgänglig + desc: Det finns en handledningsvideo tillgänglig för denna nivå! Vill du se den? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Handledning Tillgänglig + desc: Det finns en handledningsvideo tillgänglig för denna nivå, men den är bara + tillgänglig på engelska. Vill du se den? ingame: keybindingsOverlay: moveMap: Flytta @@ -479,99 +478,97 @@ buildings: balancer: default: name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + description: Multifunktionell - Distribuerar alla inflöden till alla utflöden. merger: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Merger (Kompakt) + description: Sammansätter två rullband till ett. merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Merger (Kompakt) + description: Sammansätter två rullband till ett. splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Splitter (Kompakt) + description: Delar ett rullband till två. splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Splitter (Kompakt) + description: Delar ett rullband till två. storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: Lagring + description: Lagra överflödiga saker, till en viss mängd. Prioriterar den vänstra + utflödet och kan användas som en överströmningsgrind. wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: Korsande sladdar + description: Tillåter två sladdar att korsa varandra utan att koppla samman. constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: Konstant Signal + description: Avger en konstant signal, som kan vara en form, färg eller boolean (1 / 0). lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: Signalknapp + description: Kan ställas om till att ge en booleansk singal (1 / 0) på sladdlagret, + vilket kan användas för att kontrollera till exempel ett sakfilter. logic_gate: default: - name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + name: AND Grind + description: Avger en booleansk "1" om båda inflöden är positiva. (positiva menas med former, + färger eller booleansk "1") not: - name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + name: NOT Grind + description: Avger en booleansk "1" om inflödet inte är positiv. (positiva menas med former, + färger eller booleansk "1") xor: - name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + name: XOR Grind + description: Avger en booleansk "1" om ett av inflöderna är positiv, dock inte om båda är positiva. + (Positiva menas med former, färger eller booleansk "1") or: - name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + name: OR Grind + description: Avger en booleansk "1" om ett av inflöderna är positiv. (positiva menas med former, + färger eller booleansk "1") transistor: default: name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + description: För fram det undre inflödet om sido inflödet är positivt (en form, + färg eller "1"). mirrored: name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + description: För fram det undre inflödet om sido inflödet är positivt (en form, + färg eller "1"). filter: default: name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + description: Koppla en signal för att dirigera alla matchande objekt till toppen och + dem kvarvarande till höger. Kan kontrolleras med booleanska singaler också. display: default: name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + description: Koppla en singal för att visa den på displayen - Det kan vara en form, + färg eller boolean. reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: Rullbandsläsare + description: Mäter den genomsnittliga rullbands genomströmningen. Läser ut det sist + lästa saken på sladdlagret (när det är upplåst). analyzer: default: - name: Shape Analyzer - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + name: Formanalysator + description: Analyserar den övre högra kvadranten av formens lägsta lager + och returnerar sin form och färg. comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: Jämför + description: Returnerar booleansk "1" om båda signalerna är exakt lika. Kan jämföra + former, saker och boolean. virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: Virtuell skärare + description: Skär virtuellt formen till två halvor. rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: Virtuell roterare + description: Roterar virtuellt formen, både medurs och moturs. unstacker: - name: Virtual Unstacker + name: Virtuell stapelupplösare description: Virtually extracts the topmost layer to the right output and the remaining ones to the left. stacker: diff --git a/translations/base-uk.yaml b/translations/base-uk.yaml index 79de8572..45765dd9 100644 --- a/translations/base-uk.yaml +++ b/translations/base-uk.yaml @@ -1,74 +1,118 @@ +# +# GAME TRANSLATIONS +# +# Contributing: +# +# If you want to contribute, please make a pull request on this respository +# and I will have a look. +# +# Placeholders: +# +# Do *not* replace placeholders! Placeholders have a special syntax like +# `Hotkey: `. They are encapsulated within angle brackets. The correct +# translation for this one in German for example would be: `Taste: ` (notice +# how the placeholder stayed '' and was not replaced!) +# +# Adding a new language: +# +# If you want to add a new language, ask me in the Discord and I will setup +# the basic structure so the game also detects it. +# + +--- steamPage: + # This is the short text appearing on the steam page shortText: shapez.io — це гра про будування фабрик для автоматизації створення - та обробки все більш складних форм на нескінченно розширюваній мапі. + та обробки все більш складних форм на нескінченно розширюваній карті. + + # This is the text shown above the Discord link discordLinkShort: Official Discord + intro: >- - Shapez.io is a relaxed game in which you have to build factories for the - automated production of geometric shapes. + Shapez.io - розслабляюча гра, в якій вам потрібно будувати фабрики для + автоматизованого виробництва геометричних фігур. - As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. + З кожним рівнем зростає складність фігур, і вам доведеться розширювати виробництво на нескінченній карті. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! + Якщо цього не достатньо, вам також необхідно виробляти експоненціально більше, аби задовільнити потреби що ростуть - може допомогти лише масштабування! - While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! + Спочатку ви лише обробляєте фігури, пізніше їх потрібно буде ще й фарбувати - для цього необхідно буде видобувати та змішувати кольори! - Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages + Купуючи гру в Steam ви отримаєте доступ до повної версії гри, але ви також можете спробувати демо-версію гри на shapez.io та вирішити пізніше! + + title_advantages: Переваги повної версії advantages: - - 12 New Level for a total of 26 levels - - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! - - Wires Update for an entirely new dimension! - - Dark Mode! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content - planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate - text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. + - 12 нових рівнів що в цілому 26 рівнів + - 18 нових будівель для повної автоматизації фабрики! + - 20 рівнів поліпшення для довготривалої та веселої гри! + - Оновлення "Wires"(Дроти) для цілого нового виміру! + - Нічний режим! + - Необмежена кільксть збережень + - Необмежена кільксть позначок + - Підтримка автора! ❤️ + + title_future: Запланований вміст + planned: + - Бібліотека креслень (лише в Повній версії) + - Досягнення в Steam + - Режим головоломок + - Мінікарта + - Модифікації + - Режим пісочниці + - ... та багато іншого! + + title_open_source: Гра з відкритим кодом! + text_open_source: >- + Будь-хто може зробити свій внесок. Я активно беру участь у спільноті та + намагаюсь переглянути всі пропозиції та враховувати відгуки. + + Не забудьте перевірити дошку trello, щоб отримати розгорнутий список планів! + + title_links: Посилання + + links: + discord: Офіційний Discord + roadmap: Плани + subreddit: Subreddit + source_code: Вихідний код (GitHub) + translate: Допомогти з перекладом - Be sure to check out my trello board for the full roadmap! global: loading: Завантаження error: Помилка + + # How big numbers are rendered, e.g. "10,000" thousandsDivider: " " + + # What symbol to use to seperate the integer part from the fractional part of a number, e.g. "0.4" decimalSeparator: "," + + # The suffix for large numbers, e.g. 1.3k, 400.2M, etc. suffix: thousands: тис. millions: млн billions: млрд trillions: трлн + + # Shown for infinitely big numbers infinite: неск. + time: + # Used for formatting past time dates oneSecondAgo: одну секунду тому xSecondsAgo: секунд тому - oneMinuteAgo: 1 хвилину тому + oneMinuteAgo: хвилину тому xMinutesAgo: хвилин тому oneHourAgo: одну годину тому xHoursAgo: годин тому oneDayAgo: один день тому xDaysAgo: днів тому + + # Short formats for times, e.g. '5h 23m' secondsShort: сек. minutesAndSecondsShort: хв. сек. hoursAndMinutesShort: год. хв. + xMinutes: хв. keys: tab: TAB @@ -77,26 +121,35 @@ global: escape: ESC shift: SHIFT space: SPACE + demoBanners: - title: Демоверсія - intro: Завантажте окрему версію, щоб розблокувати всі функції! + # This is the "advertisement" shown in the main menu and other various places + title: Демо-версія + intro: >- + Завантажте повну версію, щоб розблокувати всі можливості та вміст! + mainMenu: play: Грати continue: Продовжити newGame: Нова гра - changelog: Змінопис + changelog: Список змін subreddit: Reddit importSavegame: Імпортувати openSourceHint: Ця гра з відкритим вихідним кодом! discordLink: Офіційний Discord сервер helpTranslate: Допоможіть з перекладом! madeBy: Зробив - browserWarning: Вибачте, але гра, як відомо, працює повільно у вашому браузері! - Завантажте окрему версію чи хром, щоб отримати більше задоволення від + + # This is shown when using firefox and other browsers which are not supported. + browserWarning: >- + Вибачте, але гра, як відомо, працює повільно у вашому браузері! + Завантажте повну версію чи Google Chrome, щоб отримати більше задоволення від гри. + savegameLevel: Рівень savegameLevelUnknown: Невідомий рівень savegameUnnamed: Unnamed + dialogs: buttons: ok: Гаразд @@ -105,116 +158,156 @@ dialogs: later: Пізніше restart: Перезавантажити reset: Скинути - getStandalone: Завантажити гру + getStandalone: Купити гру deleteGame: Я знаю, що роблю viewUpdate: Переглянути оновлення showUpgrades: Показати поліпшення showKeybindings: Показати прив’язки клавіш + importSavegameError: title: Помилка при імпортуванні - text: "Не вдалося імпортувати вашу збережену гру:" + text: >- + Не вдалося імпортувати вашу збережену гру: + importSavegameSuccess: title: Збереження імпортовано - text: Вашу збережену гру успішно імпортовано. + text: >- + Вашу збережену гру успішно імпортовано. + gameLoadFailure: title: Гра поламана - text: Не вдалося завантажити вашу збережену гру. + text: >- + Не вдалося завантажити вашу збережену гру. + confirmSavegameDelete: - title: Підтвердження - text: Are you sure you want to delete the following game?

- '' at level

This can not be - undone! + title: Підтвердження видалення + text: >- + Ви дійсно бажаєте видалити цю збережену гру?

+ '' яка рівня

+ Цю дію неможливо буде відмінити! + savegameDeletionError: - title: Виникла помилка при видаленні - text: Не вдалося видалити збережену гру. + title: Не вдалось видалити + text: >- + Не вдалося видалити збережену гру: + restartRequired: title: Потрібне перезавантаження - text: Перезавантажте гру, щоб налаштування вступили в дію. + text: >- + Перезавантажте гру, щоб налаштування вступили в дію. + editKeybinding: title: Зміна гарячої клавіши - desc: Натисніть клавішу, яку ви хочете призначити, або escape для скасування. + desc: Натисніть клавішу, або кнопку миші, яку ви хочете призначити, або escape для скасування. + resetKeybindingsConfirmation: - title: Скинути гарячу клавіші + title: Скинути гарячі клавіші desc: Це скине всі прив'язки клавіш до їхніх значень за замовчуванням. Будь ласка, підтвердіть. + keybindingsResetOk: - title: Скинути гарячі клавіші - desc: Гарячі клавіши скинемуться до їхніх початкових значень! + title: Гарячі клавіші скинуто + desc: Гарячі клавіши скинуто до їхніх початкових значень! + featureRestriction: - title: Демоверсія - desc: Ви спробували отримати доступ до функції (), яка недоступна в - демонстраційній версії. Подумайте про отримання окремої версії, щоб + title: Демо-версія + desc: >- + Ви спробували отримати доступ до функції (), яка недоступна в + демонстраційній версії. Подумайте про отримання повної версії, щоб насолодитися грою сповна! + oneSavegameLimit: title: Обмежені збереження - desc: Ви можете мати лише одне збереження одночасно в демоверсії. Будь ласка, - видаліть збереження чи завантажте окрему версію гри! + desc: Ви можете мати лише одне збереження одночасно в демо-версії. Будь ласка, + видаліть існуюче збереження чи купіть повну версію гри! + updateSummary: title: Нове оновлення! - desc: "Ось зміни з вашої останньої гри:" + desc: >- + Ось зміни з вашої останньої гри: + upgradesIntroduction: title: Розблокування поліпшень - desc: Усі форми, що ви виробляєте, можуть використовуватися для розблокування - поліпшення - Не зруйнуйте свої старі фабрики! + desc: >- + Усі фігури, що ви виробляєте, можуть використовуватися для розблокування + поліпшень - радимо не видаляти старі фабрики! Вкладку з поліпшеннями можна знайти в правому верхньому куті екрана. + massDeleteConfirm: title: Підтвердження видалення - desc: Ви видаляєте багато будівль (, якщо бути точним)! Ви справді хочете + desc: >- + Ви видаляєте багато будівль (, якщо бути точним)! Ви справді хочете зробити це? + massCutConfirm: title: Підтвердження вирізання - desc: Ви вирізаєте багато будівль(, якщо бути точним)! Ви справді хочете + desc: >- + Ви вирізаєте багато будівль(, якщо бути точним)! Ви справді хочете зробити це? + massCutInsufficientConfirm: title: Підтвердити вирізання - desc: Ви не можете дозволити собі вставити цю область! Ви справді хочете - вирізати це? + desc: >- + Ви не можете дозволити собі вставити цю область! Ви справді хочете + вирізати її? + blueprintsNotUnlocked: title: Ще не розблоковано - desc: Досягніть 13-го рівня, щоб розблокувати креслення! + desc: >- + Досягніть 13-го рівня, щоб розблокувати креслення! + keybindingsIntroduction: title: Корисні гарячі клавіши - desc: "Гра має багато гарячих клавіш, що полегшують будівництво великих фабрик. - Ось декілька, але обов’язково ознайомтеся з прив’язками - клавіш!

CTRL + - тягніть: виділити зону.
SHIFT: - тримайте, щоб розмістити декілька одного будинку.
ALT: змінити сторону розміщеної конвеєрної - стрічки.
" + desc: >- + Гра має багато гарячих клавіш, що полегшують будівництво великих фабрик. + Ось декілька, але обов’язково ознайомтеся з прив’язками клавіш!

+ CTRL + тягніть: виділити зону.
+ SHIFT: тримайте, щоб розмістити декілька копій однієї будівлі.
+ ALT: змінити напрям розміщеної конвеєрної стрічки.
+ createMarker: title: Нова позначка titleEdit: Редагувати позначку - desc: Give it a meaningful name, you can also include a short - key of a shape (Which you can generate here) + desc: Дайте їй інформативну назву, ви також можете використати код + фігури (Який ви можете створити тут) + + editSignal: + title: Встановити сигнал + descItems: >- + Виберіть попередньо визначений елемент: + descShortKey: ... або введіть код фігури (Який ви + можете створити тут) + markerDemoLimit: - desc: Ви можете створити тільки 2 позначки в демоверсії. Отримайте окрему версії + desc: Ви можете створити тільки 2 позначки в демо-версії. Отримайте повну версію гри для створення необмеженної кількості позначок. + exportScreenshotWarning: - title: Експортувати зняток - desc: Ви просили експортувати свою базу як знімок екрана. Зверніть увагу, що для + title: Експортувати знімок + desc: Ви запросили експорт бази в зображення. Зверніть увагу, що для великої бази це може бути досить повільним процесом і може навіть зруйнувати вашу гру! - editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the short key of a shape (Which you - can generate here) + renameSavegame: - title: Rename Savegame - desc: You can rename your savegame here. + title: Перейменувати збереження + desc: Тут ви можете перейменувати збереження гри. + tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Доступна інструкція + desc: Для цього рівня доступна відео-інструкція! Чи бажаєте переглянути її? + tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Доступна інструкція + desc: Для цього рівня доступна відео-інструкція, але вона доступна + лише на Англійській. Чи бажаєте переглянути її? + ingame: + # This is shown in the top left corner and displays useful keybindings in + # every situation keybindingsOverlay: moveMap: Рухатися - selectBuildings: Виділити будівлі - stopPlacement: Зупинити розміщення + selectBuildings: Виділити область + stopPlacement: Припинити розміщення rotateBuilding: Повернути будівлю placeMultiple: Розмістити декілька reverseOrientation: Змінити орієнтацію @@ -224,13 +317,15 @@ ingame: createMarker: Створити позначку delete: Видалити pasteLastBlueprint: Вставити останнє креслення - lockBeltDirection: Увімкнути стрічковий планувальник + lockBeltDirection: Увімкнути конвеєрний планувальник plannerSwitchSide: Змінити сторону планувальника cutSelection: Вирізати copySelection: Скопіювати clearSelection: Очистити виділене pipette: Піпетка - switchLayers: Змінити шари + switchLayers: Змінити шар + + # Names of the colors, used for the color blind mode colors: red: Червоний green: Зелений @@ -240,542 +335,699 @@ ingame: cyan: Блакитний white: Білий black: Чорний - uncolored: Без кольору + uncolored: Без кольору + + # Everything related to placing buildings (I.e. as soon as you selected a building + # from the toolbar) buildingPlacement: - cycleBuildingVariants: Натисніть для циклу варіантів. - hotkeyLabel: "Hotkey: " + cycleBuildingVariants: Натисніть для перебору варіантів. + + # Shows the hotkey in the ui, e.g. "Hotkey: Q" + hotkeyLabel: "Гаряча клавіша: " + infoTexts: speed: Швидкість range: Дальність storage: Сховище - oneItemPerSecond: 1 предмет за сек. - itemsPerSecond: предмет. за сек + oneItemPerSecond: 1 предмет/сек. + itemsPerSecond: предм./сек itemsPerSecondDouble: (x2) + tiles: плиток + + # The notification when completing a level levelCompleteNotification: + # is replaced by the actual level, so this gets 'Level 03' for example. levelTitle: Рівень completed: Завершено unlockText: Розблоковано «»! buttonNextLevel: Наступний рівень + + # Notifications on the lower right notifications: - newUpgrade: Нове оновлення розблоковано! + newUpgrade: Нове поліпшення розблоковано! gameSaved: Вашу гру збережено. - freeplayLevelComplete: Level has been completed! + freeplayLevelComplete: Рівень було завершено! + + # The "Upgrades" window shop: title: Поліпшення - buttonUnlock: Поліпшення + buttonUnlock: Відкрити + # Gets replaced to e.g. "Tier IX" tier: Ранг + maximumLevel: МАКСИМАЛЬНИЙ РІВЕНЬ (Швидкість x) + + # The "Statistics" window statistics: title: Статистика dataSources: stored: title: Зберігається - description: Відображає кількість збережених фігур у вашому центрі. + description: Відображає кількість збережених фігур у вашому Центрі. produced: title: Виробляється description: Відображає всі форми вашої цілої фабрики, що виробляються, включаючи проміжні продукти. delivered: - title: Доставлено - description: Відображає форми, що доставляються до центру. - noShapesProduced: Жодної форми поки не випускається. + title: Доставляється + description: Відображає форми, що доставляються до Центру. + noShapesProduced: Жодна фігура поки не випускається. + + # Displays the shapes per second, e.g. '523 / s' shapesDisplayUnits: - second: / s - minute: / m - hour: / h + second: / с + minute: / хв + hour: / г + + # Settings menu, when you press "ESC" settingsMenu: playtime: У грі - buildingsPlaced: Будівлі - beltsPlaced: Стрічки + buildingsPlaced: Будівель + beltsPlaced: Конвеєрів + + # Bottom left tutorial hints tutorialHints: title: Потрібна допомога? showHint: Показати підказку hideHint: Закрити + + # When placing a blueprint blueprintPlacer: cost: Вартість + + # Map markers waypoints: waypoints: Позначки hub: Центр - description: ЛКМ на позначку, щоб перейти до неї, ПКМ для + description: ЛКМ на позначку, щоб перейти до неї, ПКМ для видалення

Натисніть для створення позначки з поточного виду або ПКМ, щоб створити позначку в обраному місці. creationSuccessNotification: Позначку створено. + + # Shape viewer shapeViewer: title: Шари empty: Пустий copyKey: Копіювати ключ + + # Interactive tutorial interactiveTutorial: title: Навчання hints: 1_1_extractor: Розмістіть екстрактор поверх фігури - кола, щоб отримати її! - 1_2_conveyor: "З’єднайте екстрактор з вашим центром за допомогою + кола
, щоб видобути її! + + 1_2_conveyor: >- + З’єднайте екстрактор з вашим центром за допомогою конвеєрної стрічки!

Підказка: - Натисніть і протягніть стрічку вашою мишею." - 1_3_expand: "У цій грі ВАМ НЕ ПОТРІБНО БЕЗДІЯТИ! Будуйте більше + Натисніть і протягніть стрічку вашою мишею. + + 1_3_expand: >- + У цій грі ВАМ НЕ ПОТРІБНО БЕЗДІЯТИ! Будуйте більше екстракторів і стрічок, щоб виконати свою мету швидше.

Підказка: Утримуйте SHIFT, щоб розмістити багато екстракторів, і використовуйте - R, щоб обертати їх." - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + R, щоб обертати їх. + + 2_1_place_cutter: >- + Тепер розмістіть Різчик щоб розрізати коло на дві + половинки!

PS: Різчик завжди ділить фігуру по вертикалі + незалежного від його орієнтації. + + 2_2_place_trash: >- + Різчик може забиватись!

Використовуйте + Смітник аби позбутись поки що(!) не + потрібних залишків. + + 2_3_more_cutters: >- + Чудово! Тепер розмістіть ще 2 різчика щоб прискорити + цей повільний процес!

PS: Використовуте 0-9 + гарячі клавіші аби мати швидкий доступ до будівель! + + 3_1_rectangles: >- + Тепер давайте добудемо квадратів! Збудуйте 4 + Екстрактори і приєднайте їх до Центру.

PS: + Утримуйте SHIFT + тягнути для переходу в режим планувальника конвеєрів! + + 21_1_place_quad_painter: >- + Розмістіть Фарбувач (х4) та добудьте + коло, білий та + червоний кольори! + + 21_2_switch_to_wires: >- + Перейдіть в шар проводів натиснувши + E!

Та підключіть всі 4 + вводи фарбувальника за допомогою проводу! + + 21_3_place_button: >- + Неймовірно! Тепер розмістіть Вимикач Та з'єднайте їх + дротом! + + 21_4_press_button: >- + Натисніть вимикач, аби він почав видавати сигнал "Істина" + активувавши таким чином фарбувальник.

PS: Не обов'язково + підключати всі входи! Спробуйте підключити лише два. + + # Connected miners connectedMiners: - one_miner: 1 Miner - n_miners: Miners - limited_items: Limited to + one_miner: 1 Екстрактор + n_miners: Екстракторів + limited_items: Обмежено до + + # Pops up in the demo every few minutes watermark: - title: Demo version - desc: Click here to see the Steam version advantages! - get_on_steam: Get on steam + title: Демо-версія + desc: Натисніть сюди аби переглянути переваги Steam версії! + get_on_steam: Отримати в Steam + standaloneAdvantages: - title: Get the full version! - no_thanks: No, thanks! + title: Отримати повну версію! + no_thanks: Ні, дякую! + points: levels: - title: 12 New Levels - desc: For a total of 26 levels! + title: 12 нових Рівнів + desc: В цілому 26 рівнів! + buildings: - title: 18 New Buildings - desc: Fully automate your factory! + title: 18 нових Будівель + desc: Для повної автоматизації вашої фабрики! + savegames: - title: ∞ Savegames - desc: As many as your heart desires! + title: ∞ Збережень + desc: Стільки, скільки вашій душі завгодно! + upgrades: - title: 20 Upgrade Tiers - desc: This demo version has only 5! + title: 20 рівнів Поліпшень + desc: Демо-версія має лише 5! + markers: - title: ∞ Markers - desc: Never get lost in your factory! + title: ∞ Позначок + desc: Забудьте про блукання по фабриці! + wires: - title: Wires - desc: An entirely new dimension! + title: Дроти + desc: Цілий новий вимір! + darkmode: - title: Dark Mode - desc: Stop hurting your eyes! + title: Нічний режим + desc: Дайте очам відпочити! + support: - title: Support me - desc: I develop it in my spare time! + title: Підтримайте мене + desc: Я розробляю гру в свій вільний час! + +# All shop upgrades shopUpgrades: belt: name: Стрічки, розподілювачі і тунелі - description: Швидкість x → x + description: Шв. x → x miner: name: Видобуток - description: Швидкість x → x + description: Шв. x → x processors: name: Різання, обертання й укладання - description: Швидкість x → x + description: Шв. x → x painting: name: Змішування і малювання - description: Швидкість x → x + description: Шв. x → x + +# Buildings and their name / description buildings: hub: deliver: Доставте, toUnlock: щоб розблокувати levelShortcut: РІВ - endOfDemo: End of Demo + endOfDemo: Кінець Демки + belt: default: - name: Конвеєрна стрічка + name: &belt Конвеєрна стрічка description: Транспортує предмети, утримуйте і перетягуйте для розміщення декількох. - wire: - default: - name: Дріт - description: Дозволяє передавати енергію - second: - name: Wire - description: Transfers signals, which can be items, colors or booleans (1 / 0). - Different colored wires do not connect. + + # Internal name for the Extractor miner: default: - name: Екстрактор - description: Розмістіть над формою чи кольором, який хочете видобути. + name: &miner Екстрактор + description: Розмістіть над фігурою чи кольором, який хочете видобути. + chainable: name: Екстрактор (Ланц.) - description: Розмістіть над формою чи кольором, який хочете видобути. Можна + description: Розмістіть над фігурою чи кольором, який хочете видобути. Можна об’єднати в ланцюг. + + # Internal name for the Tunnel underground_belt: default: - name: Тунель - description: Дозволяє транспортувати ресурси під будівлями та стрічками. + name: &underground_belt Тунель + description: Дозволяє транспортувати ресурси під будівлями та іншими стрічками. + tier2: name: Тунель, ранг II - description: Дозволяє транспортувати ресурси під будівлями та стрічками. + description: Дозволяє транспортувати ресурси під будівлями та іншими стрічками. + + # Balancer + balancer: + default: + name: &balancer Балансир + description: Багатофункціональний - Рівномірно розподіляє всі входи між всіма виходами. + + merger: + name: З'єднувач + description: З'єднує дві конвеєрних стрічки в одну. + + merger-inverse: + name: З'єднувач + description: З'єднує дві конвеєрних стрічки в одну. + + splitter: + name: Розподілювач + description: Поділяє конвеєрну стрічку на дві. + + splitter-inverse: + name: Розподілювач + description: Поділяє конвеєрну стрічку на дві. + cutter: default: - name: Різчик - description: Розрізає форми зверху вниз і виводить обидві половинки. + name: &cutter Різчик + description: Розрізає фігури зверху вниз і виводить обидві половинки. Якщо ви використовуєте лише одну частину, не забудьте - знищити іншу частину, інакше вона застрягне в + знищити іншу, інакше вона застрягне в механізмі! quad: name: Різчик (4 вих.) - description: Розрізає форми на 4 частини. Якщо ви використовуєте лише - одну частину, не забудьте знищити інші, інакше вони застрягнуть + description: Розрізає фігури на 4 частини. Якщо ви використовуєте не всі + частини, не забудьте знищити решту, інакше вони застрягнуть в механізмі! + rotater: default: - name: Обертач - description: Обертає форми за годинниковою стрілкою на 90 градусів. + name: &rotater Обертач + description: Обертає фігури за годинниковою стрілкою на 90 градусів. ccw: name: Обертач (-90) - description: Обертає форми проти годинникової стрілки на 90 градусів. + description: Обертає фігури проти годинникової стрілки на 90 градусів. rotate180: - name: Rotate (180) - description: Rotates shapes by 180 degrees. + name: Обертач (180) + description: Обертає фігури за годинниковою стрілкою на 180 градусів. + stacker: default: - name: Укладальник + name: &stacker Укладальник description: Складає обидва елементи. Якщо їх неможливо об’єднати, правий елемент розміщується над лівим елементом. + mixer: default: - name: Змішувач кольорів + name: &mixer Змішувач кольорів description: Змішує два кольори за допомогою добавки. + painter: default: - name: Фарбувач - description: Забирає форму з лівого входу, а колір з верхнього. + name: &painter Фарбувач + description: &painter_desc Фарбує всю фігуру з лівого входу в колір з верхнього входу. + mirrored: - name: Фарбувач - description: Забирає форму з лівого входу, а колір з верхнього. + name: *painter + description: Фарбує всю фігуру з лівого входу в колір з нижнього входу. + double: - name: Фарбувач (подв.) - description: Фарбує фігури, що надійшла з лівого входу, кольором, що надійшов з + name: Подвійний Фарбувач + description: Фарбує фігури, що надійшли з лівих входів, кольором, що надійшов з верхнього. + quad: - name: Фарбувач (чотири) - description: Allows you to color each quadrant of the shape individually. Only - slots with a truthy signal on the wires layer - will be painted! + name: Фарбувач (х4) + description: Дозволяє вам розфарбувати кожну частину окремо. Лише + частини з сигналом "Істина" на шарі Дротів + буде пофабровано! + trash: default: - name: Смітник - description: Приймає форми зі всіх сторін і руйнує їх. Назавжди. - balancer: - default: - name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. - merger: - name: Merger (compact) - description: Merges two conveyor belts into one. - merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. - splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. - splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: &trash Смітник + description: Приймає фігури зі всіх сторін і знищує їх. Назавжди. + storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: &storage Сховище + description: Зберігає надлишкові предмети, до заданої ємності. Лівий вихід пріоритетний, + може бути використаний як переповнювальний затвор. + + wire: + default: + name: &wire Дріт + description: &wire_desc Передає сигнали, якими можуть бути фігури, кольори чи логічні сигнали (1 чи 0). Дроти різних кольорів не приєднуються один до одного. + + second: + name: *wire + description: *wire_desc + wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: &wire_tunnel Пересічення дроту + description: Дозволяє двом дротам пересіктись не підключаючись один до одного. + constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: &constant_signal Постійний Сигнал + description: Видає постійний сигнал, яким може бути фігура, колір чи + логічний сигнал (1 / 0). + lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: &lever Вимикач + description: Можна перемикати видачу логічного сигналу (1 / 0) на шар дротів, + цей сигнал може бути використаний для управління компонентами, наприклад Фільтром елементів. + logic_gate: default: - name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + name: Логічне "І" + description: Видає логічну "1" якщо обидва вводи отримують сигнал "Істинний". (Під "Істинний" мається наувазі фігура, + колір чи логічна "1") not: - name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + name: Логічне "НЕ" + description: Видає логічну "1" якщо вхід отримує сигнал "Хибний". ("Хибний" сигнал - протилежний "Істинному", і відповідає логічному "0") xor: - name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + name: Виключне "АБО" + description: Видає логічну "1" якщо лише один з вводів "Істинний", но не обидва. + (Під "Істинний" мається наувазі фігура, колір чи логічна "1") or: - name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + name: Логічне "АБО" + description: Видає логічну "1" якщо хоча б один з вводів "Істинний". + (Під "Істинний" мається наувазі фігура, колір чи логічна "1") + transistor: default: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: &transistor Транзистор + description: &transistor_desc Пропускає нижній сигнал якщо боковий вхід "Істинний" (фігура, + колір чи логічна "1"). + mirrored: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: *transistor + description: *transistor_desc + filter: default: - name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + name: &filter Фільтр + description: Підключіть сигнал щоб направити всі відповідні елементи вгору, а решту вправо. + Також ним можна керувати за допомогою логічних сигналів (1 / 0). + display: default: - name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + name: &display Дисплей + description: Підключіть сигнал, аби відобразити його на дисплеї - ним може бути фігура, + колір чи логічний сигнал + reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: &reader Зчитувач конвеєєра + description: Дозволяє вимірювати середню пропускну здатність конвеєрної стрічки. Видає сигнал останнього зчитаного елемента + на шар дротів (коли розблоковано). + analyzer: default: - name: Shape Analyzer - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + name: &analyzer Дослідник фігур + description: Аналізує верхню-праву частину самого нижнього слою фігури + та повертає її форму і колір. + comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: &comparator Компаратор + description: Видає логічну "1" якщо обидва сигнали абсолютно рівні. Може порівнювати + фігури, елементи та кольори. + virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: &virtual_processor Віртуальний Різчик + description: Віртуально розрізає фігуру на дві половинки. + rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: Віртуальний Обертач + description: Віртуально обертає фігуру по часовій стрілці, та проти. + unstacker: - name: Virtual Unstacker - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + name: Віртуальний Розпаковувач + description: Віртуально видобуває верхній шар фігури на правий вихід, а решту на лівий вихід. + stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: Віртуальний Укладальник + description: Віртуально складає праву фігуру на ліву. + painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: Віртуальний Фарбувач + description: Віртуально фарбує фігуру з нижнього вводу, використовуючи колір з правого вводу. + item_producer: default: - name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + name: Генератор елементів + description: Доступно лише в режимі Пісочниці, видає отриманий на шарі дроту сигнал в якості фігури на звичайний шар. + storyRewards: + # Those are the rewards gained from completing the story reward_cutter_and_trash: title: Різання фігур - desc: You just unlocked the cutter, which cuts shapes in half - from top to bottom regardless of its - orientation!

Be sure to get rid of the waste, or - otherwise it will clog and stall - For this purpose - I have given you the trash, which destroys - everything you put into it! + desc: Ви щойно відкрили Різчик, який ріже фігури навпіл + зверху вниз незалежно від його орієнтації!

+ Обов'язково позбудьтесь відходів, інакше + вони застрягнуть - Для цих цілей + я дав вам Смітник, який знищує все що ви туда направите! + reward_rotater: title: Обертання - desc: Обертач розблоковано! Він повертає форми за годинниковою + desc: Обертач розблоковано! Він повертає фігури за годинниковою стрілкою на 90 градусів. + reward_painter: title: Фарбування - desc: Фарбувач розблоковано. Видобудьте трохи кольорів з - відповідних жилок (як ви зробили це з формами) і об’єднуйте їх з - формами у фарбувачі, щоб розфарбувати форми!

До речі, якщо ви - дальтонік, то в увімкніть режим високої + desc: >- + Фарбувач розблоковано. Видобудьте трохи кольорів з + відповідних жилок (як ви зробили це з фігурами) і об’єднайте їх з + фігурами у фарбувачі, щоб розфарбувати фігури!

До речі, для + дальтоніків, доступний режим високої контрастності в налаштуваннях! + reward_mixer: title: Змішування кольорів - desc: The mixer has been unlocked - It mixes two colors using - additive blending! + desc: Змішувач кольорів було відкрито - Він змішує два кольори + шляхом добавки! + reward_stacker: - title: Поєднувач форм - desc: Тепер ви можете поєднувати фігури з поєднувачем форм! - Форми об’єднуються з двох сторін, і якщо їх можна поставити поруч, - вони будуть з’єднані. Якщо ні, то форма, що подана - з правого входу, застрягне на горі лівого входу. - reward_splitter: - title: Розподілювач (з’єднувач) - desc: You have unlocked a splitter variant of the - balancer - It accepts one input and splits them - into two! + title: Поєднання фігур + desc: Тепер ви можете поєднувати фігури з Укладальником! + Фігури об’єднуються з двох сторін, і якщо їх можна поставити поруч, + вони будуть з’єднані. Якщо ні, то фігуру, що подана + з правого входу, буде накладено на фігуру з лівого входу. + + reward_balancer: + title: Балансир + desc: Багатофункціональний Балансир було відкрито - Він + використовується для будування більших фабрик шляхом розподілу чи змішування + елементів між кількома конвеєрними стрічками! + reward_tunnel: title: Тунель desc: Тунель розблоковано. Ви можете створювати тунелі для преметів через стрічки і будівлі. + reward_rotater_ccw: title: Обертання проти годинникової стрілки desc: Ви розблокували новий варіант обертача. Він дозволяє обертати проти годинникової стрілки! Щоб побудувати його виберіть обертач, натисніть «T», щоб переглянути всі варіанти, та оберіть потрібний! + reward_miner_chainable: title: Екстрактор (ланцюг.) - desc: "You have unlocked the chained extractor! It can - forward its resources to other extractors so you - can more efficiently extract resources!

PS: The old - extractor has been replaced in your toolbar now!" + desc: >- + Ви відкрили Ланцюговий Екстрактор! Він може + направляти свої ресурси в інший екстрактор + так ви зможете добувати ресурси більш ефективно!

PS: Звичаний Екстрактор + було замінено на вашій панелі інструментів! + reward_underground_belt_tier_2: title: Тунель II desc: Ви розблокували новий варіант тунеля. Він має більшу дальність, і ви можете також змішувати і зіставляти ці тунелі! + + reward_merger: + title: З'єднувач + desc: >- + Ви відкрили З'єднувач - різновид + балансиру - Приймає два вводи, та з'єднує їх + в одину конвеєрну стрічку! + + reward_splitter: + title: Розподілювач + desc: >- + Ви відкрили Розподілювач - різновид + балансиру - Приймає один ввід, та розподілює їх на два! + + reward_belt_reader: + title: Зчитувач конвеєєра + desc: >- + Ви відкрили Зчитувач конвеєєра! Дає вам змогу + вимірювати пропускну здатність конвеєрної стрічки.

Зачекайте поки відкриєте шар + дротів - тоді він стане ще кориснішим! + reward_cutter_quad: title: Різчик (чотири) desc: Ви розблокували інший варіант різчика. Він може розрізати - форми на чотири частини замість двох. + фігури на чотири частини замість двох. + reward_painter_double: - title: Double Painting + title: Подвійний Фарбувач desc: Ви розблокували інший варіант фарбувача. Він працює як звичайний фарбувач, але обробляє дві фігури одночасно, споживаючи лише один колір замість двох! + reward_storage: - title: Storage Buffer - desc: You have unlocked the storage building - It allows you to - store items up to a given capacity!

It priorities the left - output, so you can also use it as an overflow gate! - reward_freeplay: - title: Пісочниця - desc: You did it! You unlocked the free-play mode! This means - that shapes are now randomly generated!

- Since the hub will require a throughput from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!

The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + title: Сховище + desc: >- + Ви відкрили Сховище - Воно дає вам змогу + зберігати елементи до заданої місткості!

Лівий вихід є пріоритетним, + ви також можете використовувати його як переповнювальний затвор! + reward_blueprints: title: Креслення desc: Ви вже можете копіювати і вставляти частини вашої фабрики. Виберіть зону (утримуйте CTRL, а тоді тягніть мишою), і натисніть «C», щоб скопіювати.

Вставляти креслення — річ не безкоштовна, спочатку вам потрібно створити - форми креслень, щоб собі це дозволити! (ті, що ви + фігури креслень, щоб собі це дозволити! (ті, що ви щойно доставили). + + reward_rotater_180: + title: Обертач (180 градусів) + desc: Ви щойно відкрили Обертач на 180! - Він повертає фігури за годинниковою стрілкою на 180 градусів. (Сюрприз! :D) + + reward_wires_painter_and_levers: + title: >- + Дроти & Фарбувач(х4) + desc: >- + Ви щойно відкрили шар Дротів: Це окремий + шар поверх звичайного, він впроваджує нові механіки! +

Для початку вам доступний Фарбувач + (х4) - Підключіть входи з яких ви хочете пофарбувати + через шар дротів!

Щоб перейти на шар дротів, натисніть + E.

PS: Включіть підказки в + налаштуваннях щоб активувати навчання по дротам! + + reward_filter: + title: >- + Фільтр + desc: >- + Ви відкрили Фільтр! Він направлятиме елементи + в верхній чи правий виходи в залежності чи відповідають вони + сигналу отриманому з шару дроту.

Ви також можете передати + логічний сигнал (1 / 0) аби повністю активувати чи деактивувати його. + + reward_display: + title: Дисплей + desc: >- + Ви відкрили Дисплей - Підключіть сигнал на + шар дротів щоб візуалізувати його!

PS: Чи помітили ви що Зчитувач конвеєєра + та Сховище виводять останній прочитаний елемент? Спробуйте показати їх на + дисплеї! + + reward_constant_signal: + title: Постійний Сигнал + desc: >- + Ви відкрили Постійний Сигнал на шарі дротів! + Пригодиться для приєднання до Фільтру елементів + наприклад.

Постійний сигнал може видавати + фігуру, колір або + логічний сигнал (1/0). + + reward_logic_gates: + title: Логічні вентилі + desc: >- + Ви відкрили Логічні вентилі! Вам не обов'язково відчувати захоплення, + але це й насправді круто!

З їх допомогою + ви можете обчислювати операції "І", "АБО", "НЕ-АБО" і "НЕ".

Як + бонус, я щойно дав вам Транзистор! + + reward_virtual_processing: + title: Віртуальна обробка + desc: >- + Я щойно дав цілу гору нових будівель, які дозволяють вам + імітувати обробку фігур!

Ви можете + тепер імітувати різак, обертач, укладач та решту на шарі дротів! + З цим у вас є три варіанти продовження гри:

- + Створіть автоматизовану машину, щоб створювати будь-яку можливу + фігуру за запитом Центру (рекомендую спробувати!).

- Побудуйте + щось круте з дротами.

- Продовжуйте грати як раніше. +

Що б ви не вибрали, не забувайте насолоджуватись грою! + + # Special reward, which is shown when there is no reward actually no_reward: title: Наступний рівень - desc: "This level gave you no reward, but the next one will!

PS: Better - not destroy your existing factory - You'll need all - those shapes later to unlock upgrades!" + desc: >- + Цей рівень не дає вам винагороди, але наступний дасть!

PS: Краще + не руйнувати існуючу фабрику - Вам знадобляться всі + ці фігури пізніше, щоб розблокувати поліпшення! + no_reward_freeplay: title: Наступний рівень - desc: Вітаємо! До речі, більше контенту планується в окремій версії! - reward_balancer: - title: Balancer - desc: The multifunctional balancer has been unlocked - It can - be used to build bigger factories by splitting and merging - items onto multiple belts! - reward_merger: - title: Compact Merger - desc: You have unlocked a merger variant of the - balancer - It accepts two inputs and merges them - into one belt! - reward_belt_reader: - title: Belt reader - desc: You have now unlocked the belt reader! It allows you to - measure the throughput of a belt.

And wait until you unlock - wires - then it gets really useful! - reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) - reward_display: - title: Display - desc: "You have unlocked the Display - Connect a signal on the - wires layer to visualize it!

PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" - reward_constant_signal: - title: Constant Signal - desc: You unlocked the constant signal building on the wires - layer! This is useful to connect it to item filters - for example.

The constant signal can emit a - shape, color or - boolean (1 / 0). - reward_logic_gates: - title: Logic Gates - desc: You unlocked logic gates! You don't have to be excited - about this, but it's actually super cool!

With those gates - you can now compute AND, OR, XOR and NOT operations.

As a - bonus on top I also just gave you a transistor! - reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - simulate the processing of shapes!

You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:

- - Build an automated machine to create any possible - shape requested by the HUB (I recommend to try it!).

- Build - something cool with wires.

- Continue to play - regulary.

Whatever you choose, remember to have fun! - reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" - reward_filter: - title: Item Filter - desc: You unlocked the Item Filter! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.

You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + desc: >- + Вітаємо! + + reward_freeplay: + title: Вільна гра + desc: >- + Вам це вдалось! Ви відкрили режим Вільної гри! Це означає + що тепер фігури генеруються випадково!

+ Оскільки Центр вимагатиме забезпечення пропускної здатності, відтепер + я настійно рекомендую будувати машину, яка автоматично + створюватиме запитувану форму!

Центр виводить задану + фігуру на шарі дротів, і все, що вам потрібно буде зробити, це проаналізувати її та + автоматично налаштувати свою фабрику. + reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: Кінець демо-версії + desc: >- + Ви досягнули кінець демо-версії! + settings: title: Налаштування categories: general: Загальне userInterface: Користувацький інтерфейс - advanced: Передове - performance: Performance + advanced: Розширені + performance: Продуктивність + versionBadges: dev: Розробка staging: Тестування prod: Виробництво buildDate: Створено + + rangeSliderPercentage: % + labels: uiScale: title: Масштаб інтерфейсу - description: Змінює розмір користувацього інтерфейсу. Інтерфейс усе ще буде + description: >- + Змінює розмір користувацього інтерфейсу. Інтерфейс усе ще буде масштабуватися залежно від роздільної здатності вашого пристрою, - але цей параметр контролює масштаб масштабування. + але цей параметр контролює ступінь масштабування. scales: super_small: Надзвичайно малий small: Малий regular: Звичайний large: Великий huge: Величезний + autosaveInterval: title: Проміжок між автозбереженнями - description: Контролює, як часто гра автоматично зберігатиметься. Ви також + description: >- + Контролює, як часто гра автоматично зберігатиметься. Ви також можете повністю вимкнути його тут. + intervals: one_minute: 1 хвилина two_minutes: 2 хвилини @@ -783,6 +1035,7 @@ settings: ten_minutes: 10 хвилин twenty_minutes: 20 хвилин disabled: Вимкнено + scrollWheelSensitivity: title: Чутливість масштабування description: Змінює наскільки чутливе масштабування (колесо миші або трекпад). @@ -792,9 +1045,10 @@ settings: regular: Звичайна fast: Швидка super_fast: Надзвичайно швидка + movementSpeed: title: Швидкість руху - description: Змінює Змінює швидкість руху бачення при використанні клавіатури. + description: Змінює швидкість руху камери при використанні клавіатури, або тягнучи мишу до країв екрану. speeds: super_slow: Надзвичайно повільна slow: Повільна @@ -802,193 +1056,249 @@ settings: fast: Швидка super_fast: Надзвичайно швидка extremely_fast: Екстремально швидка + language: title: Мова description: Зміна мови. Усі переклади зроблені користувачами і можуть бути незавершеними! + enableColorBlindHelper: title: Режим високої контрастності description: Дозволяє використовувати різні інструменти, які дозволяють грати в гру, якщо ви є дальтоніком. + fullscreen: title: Повноекранний режим description: Щоб повністю насолодитися грою, рекомендується грати у - повноекранному режимі. Не доступно тільки в демоверсії. + повноекранному режимі. Доступно лише в повній версії. + soundsMuted: title: Заглушити звуки - description: Якщо увімкнено, то вимикає всі звукові ефекти. + description: Якщо увімкнено, то приглушує всі звукові ефекти. + musicMuted: title: Заглушити музику - description: Якщо увімкнено, то вимикає всю музику. + description: Якщо увімкнено, то приглушує всю музику. + + soundVolume: + title: Гучність звуків + description: Встановити гучність для звукових ефектів + + musicVolume: + title: Гучність музики + description: Встановити гучність для музики + theme: title: Тема гри description: Оберіть тему гри (світлу чи темну). themes: dark: Темна light: Світла + refreshRate: title: Частота оновлення - description: Якщо ви маєте 144-герцовий монітор, то змініть частоту оновлення - тут, щоб гра правильно працювала при більшій швидкості - оновлення. Це може фактично знизити FPS, якщо ваш комп’ютер - занадто повільний. + description: >- + Визначає як багато ігрових циклів буде оброблено за секунду. + Загалом, висока частота циклів оновлення дає більшу точність розрахунків, але, також зменьшує продуктивність гри. + З низькою частотою пропускна здатність конвеєрних стрічок та машин може бути не точною. + alwaysMultiplace: title: Мультирозміщення - description: Якщо ввімкнено, всі будівлі залишатимуться вибраними після + description: >- + Якщо ввімкнено, всі будівлі залишатимуться вибраними після розміщення, доки ви не скасуєте це. Це еквівалентно постійному утримуванню SHIFT. + offerHints: title: Підказки & посібники - description: Якщо увімкнено, то пропонує підказки та посібники під час гри. + description: >- + Якщо увімкнено, то пропонує підказки та посібники під час гри. Також приховує певні елементи інтерфейсу до заданого рівня, щоб полегшити потрапляння в гру. + enableTunnelSmartplace: title: Розумні тунелі - description: Якщо увімкнено, то розміщення тунелів видалить непотрібні стрічки. - Це також дозволяє вам перетягувати тунелі і видаляти автоматично + description: >- + Якщо увімкнено, то розміщення тунелів видалить непотрібні стрічки. + Це також дозволяє вам перетягувати тунелі, що видалятими автоматично зайві тунелі. + vignette: title: Віньєтка - description: Вмикає віньєтку, яка затемнює кути екрану і робить текст легшим для + description: >- + Вмикає віньєтку, яка затемнює кути екрану і робить текст легшим для читання. + rotationByBuilding: title: Обертання за типом будівлі - description: Кожний тип будівлі запам’ятовує обертання, яке ви встановили. Це - може бути зручнішим, якщо ви часто перемикаєтесь між розміщенням + description: >- + Кожний тип будівлі запам’ятовує обертання, яке ви встановили. + Досить зручно, якщо ви часто перемикаєтесь між розміщенням різних типів будівель. + compactBuildingInfo: title: Компактна інформація про будівлі - description: Скорочує інформаційні поля для будівель, лише показуючи їх - співвідношення. В іншому випадку відображається опис та + description: >- + Скорочує інформаційні поля для будівель, лише показуючи їх + співвідношення. В іншому випадку відображається ще й опис та зображення. + disableCutDeleteWarnings: title: Вимкнути попердження про вирізання та видалення - description: Вимикає діалогові вікна попередження, що з’являються під час - вирізання/видалення більше 100 об’єктів. - soundVolume: - title: Sound Volume - description: Set the volume for sound effects - musicVolume: - title: Music Volume - description: Set the volume for music + description: >- + Вимикає діалогові вікна попередження, що з’являються під час + вирізання/видалення 100 та більше об’єктів. + lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: Ресурси низької якості на карті + description: >- + Спрощує відображення ресурсів в режимі карти, щоб збільшити продуктивність. + Крім того, так навіть виглядає чуть чистіше, тож раджу спробувати! + disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: Вимкнути сітку + description: >- + Вимкнення сітки може допомогти з продуктивністю. + Також робить гру чуть чистіше! + clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: Очистити курсор кліком правої кнопки миші + description: >- + Увімкнено за замовчуванням, очищає курсор при кожному натисканні правої кнопки миші + поки у вас є будівля, обрана для розміщення. Якщо вимкнено, + ви можете видаляти будівлі, клацнувши правою кнопкою миші, в режимі розміщення + будівель. + lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: Текстури низької якості (Потворне) + description: >- + Використовує текстури низької якості для збереження продуктивності. Але це зробить + гру дуже потворною! + displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: Відображати рамки блоків + description: >- + Гра розділена на блоки 16х16 плиток, якщо ця опція включена + межі блоків будуть відображатись. + pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: Підбирати екстрактор на родовищі ресурсів + description: >- + Активоване за замовчуванням, обирає майнер, якщо ви використовуєте + піпетку при наведенні на родовище ресурсів. + simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: Спрощує конвеєри (Потворне) + description: >- + Відображає предмети на конвеєрі лише коли наведено на них, аби зберегти продуктивність. + Я не рекомендую грати з цією опцією, якщо є така можливість. + enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: Ввімкнути панорамування мишею + description: >- + Дозволяє передвигатись по карті курсором миші передвигаючи його до країв екрану. + Швидкість залежить від обраної в налаштуваннях Швидкості Руху. + zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Приближати в напрямку курсора + description: >- + Якщо активовано, масштабування буде відбуватись в + напрямку курсору миші, в іншому випадку до ентру екрану. + mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). - rangeSliderPercentage: % + title: Розмір ресурсів на карті + description: >- + Регулює розмір фігур в режимі карти (при віддаленні). + keybindings: title: Гарячі клавіши - hint: "Tip: Упевніться, що ви можете використовувати CTRL, SHIFT і ALT! Вони - дозволяють різні варіанти розміщення." + hint: >- + "Підказка: Упевніться, що ви використовуєте CTRL, SHIFT і ALT! Вони + дозволяють застосовувати різні варіанти розміщення." + resetKeybindings: Скинути гарячі клавіші + categoryLabels: - general: Застосунок + general: Загальні ingame: Гра navigation: Навігація placement: Розміщення massSelect: Масовий вибір buildings: Гарячі клавіши будівництва placementModifiers: Модифікатори розміщення + mappings: confirm: Підтвердити back: Назад - mapMoveUp: Угору + mapMoveUp: Вгору mapMoveRight: Праворуч - mapMoveDown: Униз + mapMoveDown: Вниз mapMoveLeft: Ліворуч mapMoveFaster: Пришвидшитися centerMap: Центрувати мапу + mapZoomIn: Приблизити mapZoomOut: Віддалити createMarker: Створити позначку + menuOpenShop: Поліпшення menuOpenStats: Статистика menuClose: Закрити меню + toggleHud: Перемкнути користувацький інтерфейс - toggleFPSInfo: Перемкнути інформацію про FPS та зневадження + toggleFPSInfo: Перемкнути інформацію про FPS та налагоджувальну інформацію switchLayers: Перемкнути шари exportScreenshot: Експортувати цілу базу у вигляді зображення - belt: Конвеєрна стрічка - underground_belt: Тунель - miner: Екстрактор - cutter: Різчик - rotater: Обертач - stacker: Укладальник - mixer: Змішувач кольорів - painter: Фарбувач - trash: Смітник - wire: Дріт + + # --- Do not translate the values in this section + belt: *belt + balancer: *balancer + underground_belt: *underground_belt + miner: *miner + cutter: *cutter + rotater: *rotater + stacker: *stacker + mixer: *mixer + painter: *painter + trash: *trash + storage: *storage + wire: *wire + constant_signal: *constant_signal + logic_gate: Логічний вентиль + lever: *lever + filter: *filter + wire_tunnel: *wire_tunnel + display: *display + reader: *reader + virtual_processor: *virtual_processor + transistor: *transistor + analyzer: *analyzer + comparator: *comparator + item_producer: Матеріалізатор елементів (Пісочниця) + # --- + pipette: Піпетка rotateWhilePlacing: Повернути - rotateInverseModifier: "Modifier: Повернути проти годинникової стрілки натомість" + rotateInverseModifier: >- + "Модифікатор: Повернути проти годинникової стрілки натомість" cycleBuildingVariants: Повторювати варіанти циклічно confirmMassDelete: Видалити ділянку pasteLastBlueprint: Вставити останнє креслення cycleBuildings: Перемикання будівль lockBeltDirection: Увімкнути планувальник конвеєрних стрічок - switchDirectionLockSide: "Planner: Змінити сторону" + switchDirectionLockSide: >- + "Планувальник: Змінити сторону" + copyWireValue: >- + "Дроти: Копіювати значення зпід курсору" massSelectStart: Утримуйте і перетягуйте, щоб розпочати - massSelectSelectMultiple: Select multiple areas + massSelectSelectMultiple: Виділити кілька ділянок massSelectCopy: Копіювати ділянку massSelectCut: Вирізати ділянку + placementDisableAutoOrientation: Вимкнути автоматичну орієнтацію placeMultiple: Залишатися у режимі розміщення placeInverse: Перевернути автоматичну орієнтацію стрічки - balancer: Balancer - storage: Storage - constant_signal: Constant Signal - logic_gate: Logic Gate - lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing - display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare - item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + about: title: Про гру body: >- @@ -996,15 +1306,17 @@ about: href="https://github.com/tobspr" target="_blank">Tobias Springer (це я).

- Якщо ви хочете зробити внесок, то йдіть на github shapez.io.

+ Якщо ви хочете зробити внесок, загляньте на GitHub Shapez.io.

- Ця гра не була б можливою без великої Discord спільноти навколо моїх ігор. Гадаю, вам дійсно слід долучитися до серверу в discord!

+ Ця гра не була б можливою без великої Discord спільноти навколо моїх ігор. Гадаю, вам дійсно слід долучитися до серверу в Discord!

- Звуковий трек був зроблений гравцем Peppsen — він просто приголомшливий.

+ Звуковий трек був зроблений Peppsen — він просто приголомшливий.

І нарешті, величезна подяка моєму найкращому другу Niklas, бо без наших сеансів у факторіо ця гра ніколи б не існувала. + changelog: - title: Змінопис + title: Журнал змін + demo: features: restoringGames: Відновлення збережень @@ -1012,65 +1324,63 @@ demo: oneGameLimit: Обмежено одним збереженням customizeKeybindings: Налаштування гарячих клавіш exportingBase: Експортування цілої бази у вигляді зображення + settingNotAvailable: Недоступно в демоверсії. + tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing R. - - Holding CTRL allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use T to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with T - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding SHIFT will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding CTRL allows to place multiple buildings. - - You can hold ALT to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use CTRL + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - Центр приймає фігури різного виду, не лише ті що наразі вимагаються! + - Переконайтесь що ваші фабрики модульні - це в майбутньому може знадобитись! + - Не будуйте близько до Центру, інакше це може перерости в великий хаос! + - Якщо укладальник працює не так як очікувалось, спробуйте поміняти місцями входи. + - Ви можете переключити напрямок планувальника конвеєрів натискаючи R. + - Утримуючи CTRL ви можете перетягувати конвеєри не змінюючи їх орієнтації. + - Співвідношення залишаються однаковими поки поліпшення на одному рівні. + - Послідовне виконання більш ефективне ніж паралельне. + - Ви відкриєте більше варіантів будівель пізніше в грі. + - Ви можете використовувати T між різними варіантами. + - Симетрія - ключ! + - Ви можете переплітати тунелі різніх рангів. + - Намагайтесь будувати компактні фабрики - це відплатить вам в майбутньому! + - Фарбувальник має дзеркальний варіант, який ви можете обрати натиснувши T + - Дотримування правильних співвідношень збільшить ефективність. + - На максимальному рівні 5 Екстракторів заповнять конвеєрну стрічку. + - Не забувайте про тунелі! + - Вам не обов'язково розділяти елементи рівномірно для повної ефективності. + - Утримуючи SHIFT активується планувальник конвеєрних стрічок, що дає вам змогу розміщувати конвеєри значно легче. + - Різчик завжди ділить фігуру вертикально, не залежно від його орієнтації. + - Для отримання білого кольору змішайте всі три основних кольори. + - Сховище має пріоритетний вихід, що знаходиться зліва. + - Приділіть час для будування компактного та повторюваного дизайну - воно того варте! + - Утримування SHIFT дозволяє ставити будівлю кілька раз. + - Ви можете утримувати ALT для зміни напряму конвеєрних стрічок. + - Ефективність - ключ! + - Родовища що знаходяться дальше від Центру мають більш складні фігури. + - Машини мають обмежену швидкість, розподіляйте елементи між ними для збільшення ефективності. + - Використовуйте балансири для збільшення ефективності. + - Організація важлива. Постарайтесь не пересікати конвеєри дуже часто. + - Плануйте заздалегідь, аби уникнути неймовірного хаосу! + - Не поспішайте видаляти старі фабрики! Вони знадобляться вам для відкриття поліпшень. + - Спробуйте подолати 20 рівень своїми силами, перед пошуком допомоги! + - Не ускладнюйте речі, намагайтесь тримати все якомога простим, і ви продвинетесь далеко. + - Ви можете повторно використовувати старі фабрики пізніше в грі. Плануйте фабрики універсальними. + - Інколи ви можете знайти необхідну фігуру на карті, без необхідності використання різчика та укладальника. + - Ціла фігура млин/вентилятор не появляється на карті. + - Фарбуйте ваші фігури перед розрізанням, для більшої ефективності. + - З модулями, простір - лише сприйняття; турбота для смертних. + - Зробіть окрему фабрику для фігур креслення. Вони дуже важливі для модулів. + - Гляньте уважніше на Змішувач кольорів, і на ваші питання найдеться відповідь. + - Використовуйте CTRL + Тягнути мишою для виділення області. + - Будування поруч з Центром може завадити подальшим проектам. + - Іконка "кнопки" поруч з фігурою в списку поліпшень закріплює фігуру на екрані. + - Змішайте всі три основних кольори аби отримати білий колір! + - У вас є безмежна карта, не кучкуйте фабрику, розширюйте! + - Також спробуйте Factorio! Це моя улюблена гра. + - Різчик (4 вих.) розділяє по часовій стрілці починаючи з верхнього правого кута! + - Ви можете завантажити свої збереження в основному меню гри! + - Ця гра має багато корисних гарячих клавіш! Вам варто глянути сторінку налаштувань. + - Ця гра має багато цікавих налаштувань, обов'язково перевірте їх! + - Позначка вашого Центру має невеликий компас, що завжди вказує напрямок до нього! + - Аби очистити конвеєрні стрічки, виріжте область та вставте її в те ж місце. + - Натисніть F4 аби відобразити вашу частоту кадрів та частоту циклів оновлень. + - Натисніть F4 двічі аби відобразити координати плитки що під курсором та координати камери. + - Ви можете натиснути на фігуру, зкаріплену в лівому краю екрану, аби відкріпити її. diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index d5b5fd3d..1de7b8ad 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -10,9 +10,9 @@ steamPage: 玩家可以在 Steam 購買本游戲的單機版,如果還在猶豫,也可以到 shapez.io 先免費試玩再決定! title_advantages: 單機版優點 advantages: - - 12 個新關卡 (總共有26關) - - 18 個新建築 幫助玩家自動化整個工廠! - - 20 個升級 讓遊玩時間更久! + - 12個新關卡 (總共有26關) + - 18個新建築 幫助玩家自動化整個工廠! + - 20個升級 讓遊玩時間更久! - 電路更新 帶給玩家新次元體驗! - 深色模式! - 無限存檔 @@ -33,7 +33,7 @@ steamPage: discord: 官方 Discord 伺服器 roadmap: Roadmap subreddit: Reddit - source_code: Source code (GitHub) + source_code: 原始碼(GitHub) translate: 幫助我們翻譯! text_open_source: |- 任何人都可以幫助我開發遊戲或提供建議,我很活躍於各個社群媒體,也會讀所有的建議與回饋、並嘗試改善。 @@ -70,7 +70,7 @@ global: shift: SHIFT space: 空格 demoBanners: - title: 演示版 + title: 試玩版 intro: 獲取單機版以解鎖所有功能! mainMenu: play: 開始遊戲 @@ -78,8 +78,8 @@ mainMenu: importSavegame: 導入 openSourceHint: 本遊戲已開源! discordLink: 官方 Discord 伺服器 - helpTranslate: 幫助我們翻譯! - browserWarning: 很抱歉, 本遊戲在當前瀏覽器上可能運行緩慢! 使用chrome或者獲取單機版以得到更好的體驗。 + helpTranslate: 協助我們翻譯! + browserWarning: 很抱歉, 本遊戲在當前瀏覽器上可能運行緩慢! 使用 chrome 或者獲取單機版以得到更好的體驗。 savegameLevel: 級 savegameLevelUnknown: 未知關卡 continue: 繼續 @@ -111,7 +111,7 @@ dialogs: text: 存檔載入失敗: confirmSavegameDelete: title: 確認刪除 - text: 你確定要刪除這個存檔?

'' 在第

級 不能反悔喔! + text: 你確定要刪除這個存檔?

'' 在第

不能反悔喔! savegameDeletionError: title: 刪除錯誤 text: 存檔刪除失敗 @@ -120,7 +120,7 @@ dialogs: text: 你需要重啟遊戲以套用變更的設置。 editKeybinding: title: 更改按鍵設置 - desc: 請按下你想要使用的按鍵,或者按下ESC鍵來取消設置。 + desc: 請按下你想要使用的按鍵,或者按下 ESC 鍵來取消設置。 resetKeybindingsConfirmation: title: 重置所有按鍵 desc: 這將會重置所有按鍵,請確認。 @@ -128,11 +128,11 @@ dialogs: title: 重置了所有按鍵 desc: 成功重置了所有按鍵! featureRestriction: - title: 演示版 - desc: 你嘗試使用了 功能。該功能在演示版中不可用。請考慮購買單機版以獲得更好的體驗。 + title: 試玩版 + desc: 你嘗試使用了 功能。該功能在試玩版中不可用。請考慮購買單機版以獲得更好的體驗。 oneSavegameLimit: title: 存檔數量限制 - desc: 演示版中只能保存一份存檔。請刪除舊存檔或者獲取單機版! + desc: 試玩版中只能保存一份存檔。請刪除舊存檔或者獲取單機版! updateSummary: title: 更新了! desc: "以下為自上次遊戲以來更新的內容:" @@ -157,7 +157,7 @@ dialogs: 生成短代碼。) titleEdit: 修改標記 markerDemoLimit: - desc: 在演示版中你只能創建兩個地圖標記。請獲取單機版以創建更多標記。 + desc: 在試玩版中你只能創建兩個地圖標記。請獲取單機版以創建更多標記。 massCutConfirm: title: 確認剪下 desc: 你將要剪下很多建築,準確來說有幢!你確定要這麼做嗎? @@ -168,21 +168,18 @@ dialogs: title: 確認剪下 desc: 你的複製圖形不夠貼上!你確定要剪下嗎? editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the short key of a shape (Which you - can generate here) + title: 訊號設定 + descItems: "選擇一個預先設定的物件" + descShortKey: ... 或輸入圖形的短代碼 (可以由 here 生成) renameSavegame: title: 重新命名存檔 desc: 你可以在這裡重新命名存檔 tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: 有教程 + desc: 這個等級有教學影片!你想觀看嗎? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: 有教程 + desc: 這個等級目前只有英文版教學影片,你想觀看嗎? ingame: keybindingsOverlay: moveMap: 移動 @@ -192,7 +189,7 @@ ingame: placeMultiple: 放置多個 reverseOrientation: 反向放置 disableAutoOrientation: 關閉自動定向 - toggleHud: 開關HUD + toggleHud: 開關基地 placeBuilding: 放置建築 createMarker: 創建地圖標記 delete: 銷毀 @@ -270,30 +267,21 @@ ingame:

提示:用你的游標按下並拖動傳送帶! 1_3_expand: 這不是一個放置型遊戲!建造更多的開採機和傳送帶來更快地完成目標。

提示:按住SHIFT鍵來放置多個開採機,用R鍵旋轉它們。 - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "現在放置一個切割機並利用它把圓圈切成兩半!

+ PS: 不論切割機的方向,它都會把圖形垂直地切成兩半。" + 2_2_place_trash: 切割機可能會堵塞並停止運作!

+ 用垃圾桶把「目前」不需要的部分處理掉。 + 2_3_more_cutters: "做得好! 現在,再放2個切割機來加速這個緩慢的生產線!

+ PS: 使用0-9快捷鍵可以更快選取建築 !" + 3_1_rectangles: "現在來開採一些方形吧!蓋4座開採機,把形狀收集到基地。

PS: + 選擇輸送帶,按住SHIFT並拖曳滑鼠可以計畫輸送帶位置!" + 21_1_place_quad_painter: 放置一個切割機(四分)並取得一些 + 圓形白色紅色! + 21_2_switch_to_wires: 按E切換到電路層

+ 然後將上色機的四個輸入端用電線連接。 + 21_3_place_button: 太棒了!現在放置一個開關並將之與電線連接。 + 21_4_press_button: "按下開關使之輸出真值並啟動上色機。

+ PS: 你不用連接所有的輸入端,試試只連接兩個。" colors: red: 紅 green: 綠 @@ -303,18 +291,18 @@ ingame: cyan: 青 white: 白 uncolored: 無顏色 - black: Black + black: 黑 shapeViewer: title: 層 empty: 空 - copyKey: Copy Key + copyKey: 複製鍵 connectedMiners: one_miner: 1 個開採機 n_miners: 個開採機 - limited_items: Limited to + limited_items: 上限 watermark: - title: Demo version - desc: Click here to see the Steam version advantages! + title: 試玩版 + desc: 按這裡看 Steam 版的優勢! get_on_steam: 在 Steam 上取得 standaloneAdvantages: title: 取得單機版! @@ -452,18 +440,16 @@ buildings: description: 儲存多餘的物品,有一定儲存上限。優先從左側輸出,可以被用來作為溢流門。 wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: 電線交叉 + description: 電線彼此交叉但不互相連接。 constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: 固定信號 + description: 輸出固定信號,可以是形狀、顏色或布林值(1或0)。 lever: default: name: 信號切換器 - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + description: 切換電路層的輸出布林值(1或0),舉例來說,它可以操控物件分類器。 logic_gate: default: name: AND 邏輯閘 @@ -488,30 +474,25 @@ buildings: (「真」值代表:形狀正確、顏色正確或布林值為1) filter: default: - name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + name: 物件分類器 + description: 它會依據電路層收到的訊號分類,符合的會到上方,不符合的到右方。 + 它也可以被布林值訊號控制。 display: default: - name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + name: 顯示器 + description: 連接一個訊號到顯示器上顯示,訊號可以是形狀、物件或布林值。 reader: default: name: 傳送帶讀取機 - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + description: 它會讀取輸送帶的平均流量,(解鎖後)在電路層輸出最後讀取的物件。 analyzer: default: name: 形狀分析機 - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + description: 分析最底層右上角的圖形並輸出他的形狀跟顏色。 comparator: default: name: 比較機 - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + description: 當兩個輸入訊號完全相等時,輸出布林值「1」。它可以比較形狀、物件或布林值。 virtual_processor: default: name: 虛擬切割機 @@ -552,9 +533,8 @@ storyRewards: desc: 混合機已解鎖。如果沒有重疊的部分,混合機會嘗試把兩個輸入的圖形拼貼在一起。如果有重疊的部分,右邊的輸入會被到左邊的輸入上方! reward_splitter: title: 分流 - desc: You have unlocked a splitter variant of the - balancer - It accepts one input and splits them - into two! + desc: 分流機平衡機的變體)已解鎖。 + - 它將單個傳送帶分流成兩個。 reward_tunnel: title: 隧道 desc: 隧道已解鎖。你現在可以從其他傳送帶或建築底下運送物品了! @@ -589,11 +569,9 @@ storyRewards: 基地會在電路層輸出他需要的形狀,你只需要分析這些訊號,然後依照需求自動調整你的工廠。 reward_blueprints: title: 藍圖 - desc: You can now copy and paste parts of your factory! Select - an area (Hold CTRL, then drag with your mouse), and press 'C' to - copy it.

Pasting it is not free, you need to - produce blueprint shapes to afford it! (Those you - just delivered). + desc: 你現在可以複製貼上你的工廠某些區域。 + 選擇一個區域(按住 CTRL 並拖曳滑鼠),再按「C」來複製。

+ 貼上不是免費的,你必須製造(剛才生成的)藍圖形狀來給付。 no_reward: title: 下一關 desc: "這一關沒有獎勵,但是下一關有!

PS: @@ -606,72 +584,66 @@ storyRewards: desc: 平衡機已解鎖。在大型工廠中,平衡機負責合流或分流多個傳送帶上的物品。 reward_merger: title: 合流 - desc: You have unlocked a merger variant of the - balancer - It accepts two inputs and merges them - into one belt! + desc: 合流機平衡機的變體)已解鎖。 + - 它會將兩個傳送帶整合成一個。 reward_belt_reader: - title: Belt reader - desc: You have now unlocked the belt reader! It allows you to - measure the throughput of a belt.

And wait until you unlock - wires - then it gets really useful! + title: 讀取輸送帶 + desc: 輸送帶讀取機已解鎖。 + 它會讀取輸送帶的流量。

+ 當你解鎖電路層時,它會變得超有用! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: 180度旋轉 + desc: 180度旋轉機已解鎖。 + - 它可以180度旋轉物件(驚喜!:D) reward_display: - title: Display - desc: "You have unlocked the Display - Connect a signal on the - wires layer to visualize it!

PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + title: 顯示器 + desc: "顯示器 已解鎖。 + - 在電路層上連接一個訊號到顯示器上顯示!

+ PS: 你有注意到輸送帶讀取機跟倉庫都會輸出它們最後讀取的物件嗎? + 試試看在顯示器上顯示它吧!" reward_constant_signal: - title: Constant Signal - desc: You unlocked the constant signal building on the wires - layer! This is useful to connect it to item filters - for example.

The constant signal can emit a - shape, color or - boolean (1 / 0). + title: 固定信號 + desc: 電路層上的固定信號已解鎖。 + 舉例,將物件分類器連上固定信號會很有用。

+ 固定信號可以輸出形狀顏色或是 + 布林值(1或0)。 reward_logic_gates: - title: Logic Gates - desc: You unlocked logic gates! You don't have to be excited - about this, but it's actually super cool!

With those gates - you can now compute AND, OR, XOR and NOT operations.

As a - bonus on top I also just gave you a transistor! + title: 邏輯閘 + desc: 邏輯閘已解鎖。 + 你可以覺得無所謂,但其實邏輯閘其實超酷的!

+ 有了這些邏輯閘,你可以運算 AND, OR, XOR 與 NOT。

+ 錦上添花,我再送你電晶體! reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - simulate the processing of shapes!

You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:

- - Build an automated machine to create any possible - shape requested by the HUB (I recommend to try it!).

- Build - something cool with wires.

- Continue to play - regulary.

Whatever you choose, remember to have fun! + title: 虛擬操作 + desc: 虛擬操作!

已解鎖。很多新建築有虛擬版,你可以模擬切割機、旋轉機、推疊機還有更多電路層上的建築。 + 繼續遊玩的你現在有三個選項:

+ - 蓋一個自動生成任何基地要求圖形的自動機(推薦!)。

+ - 利用電路層蓋一些很酷建築

+ - 繼續用原本的方式破關。

+ 不論你的選擇是什麼,祝你玩得開心! reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" + title: 電路層 & 四角上色機 + desc: "You just unlocked the 電路層已解鎖。 + 它是一個獨立於一般層之外的存在,將帶給你更多玩法!

+ 首先,我為你解鎖四角上色機。 + 想要上色的角落記得在電路層通電!

+ 按E切換至電路層。

+ PS: 設定裡開啟提示來啟動教程!" reward_filter: - title: Item Filter - desc: You unlocked the Item Filter! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.

You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + title: 物件分類器 + desc: 物件分類器已解鎖。 + 它會依據電路層收到的訊號決定輸出端(右方或上方)。

+ 你也可以送一個固定訊號(1或0)來徹底啟用或不啟用此機器。 reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: 試玩結束 + desc: 你已破關試玩版! settings: title: 設置 categories: - general: General - userInterface: User Interface - advanced: Advanced - performance: Performance + general: 一般 + userInterface: 使用者介面(UI) + advanced: 進階 + performance: 效能 versionBadges: dev: 開發版本 staging: 預覽版本 @@ -770,53 +742,41 @@ settings: title: 音樂 description: 音樂設定 lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: 低畫質地圖資源 + description: 地圖資源在放大時呈現低畫質,此舉可以提升效率。地圖看起來更乾淨了,不妨試試看! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: 取消網格 + description: 取消網格可以增加效能,畫面也會比較乾淨! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: 按右鍵淨空游標 + description: 預設是開啟的,按下右鍵時,清空游標上顯示的準備要蓋建築。 + 如果關閉此選項,你可以一邊蓋工廠一邊刪除不要的建築。 lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: 低畫質(醜) + description: 用低畫質節省效能。遊戲畫面會變的很醜! displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: 顯示分區邊界 + description: 遊戲是由許多 16x16 的分區組成,啟用這個選項會顯示分區的邊界。 pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: 在資源叢上使用開採機 + description: 預設是開啟的,當滴管移動到資源叢上方時,選擇開採機。 simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: 簡化輸送帶(醜) + description: 為節省效能,不 render 輸送帶。 + 除非有必要節省效能,不然我是不建議使用。 enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: 允許用滑鼠移動畫面 + description: 當滑鼠靠近畫面邊緣時,會移動地圖。移動速度取決於「移動速度」設定。 zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: 聚焦游標 + description: 如果啟用的話,放大縮小地圖時會以游標位置為中心,不然會以畫面中央為中心。 mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: 地圖資源標示大小 + description: 控制地圖資源標示大小(縮小俯瞰時)。 rangeSliderPercentage: % keybindings: title: 按鍵設置 - hint: 提示:使用CTRL、SHIFT、ALT! 這些建在放置建築時有不同的效果。 + hint: 提示:使用 CTRL、SHIFT、ALT ! 這些建在放置建築時有不同的效果。 resetKeybindings: 重置按鍵設置 categoryLabels: general: 通用 @@ -839,7 +799,7 @@ keybindings: createMarker: 創建地圖標記 menuOpenShop: 升級選單 menuOpenStats: 統計選單 - toggleHud: 開關HUD + toggleHud: 開關基地 toggleFPSInfo: 開關幀數與調試信息 belt: 傳送帶 underground_belt: 隧道 @@ -867,25 +827,25 @@ keybindings: mapMoveFaster: 快速移動 lockBeltDirection: 啟用傳送帶規劃 switchDirectionLockSide: 規劃器:換邊 - pipette: Pipette - menuClose: Close Menu + pipette: 滴管 + menuClose: 關閉選單 switchLayers: 更換層 wire: 電線 balancer: 平衡機 - storage: Storage - constant_signal: Constant Signal + storage: 倉庫 + constant_signal: 固定信號 logic_gate: 邏輯閘 - lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing + lever: 開關(一般) + filter: 過濾器 + wire_tunnel: 電線交叉 display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor + reader: 輸送帶讀取機 + virtual_processor: 虛擬切割機 + transistor: 電晶體 analyzer: 形狀分析機 comparator: 比對機 item_producer: 物品生產機(沙盒模式) - copyWireValue: "Wires: Copy value below cursor" + copyWireValue: "電路:複製數值於游標底下" about: title: 關於遊戲 body: >- @@ -908,7 +868,7 @@ demo: oneGameLimit: 最多一個存檔 customizeKeybindings: 按鍵設置 exportingBase: 匯出工廠截圖 - settingNotAvailable: 在演示版中不可用。 + settingNotAvailable: 在試玩版中不可用。 tips: - 基地接受任何輸入,不只是當前要求的圖形! - 盡量讓工廠模組化,會有回報的! @@ -933,7 +893,7 @@ tips: - 白 = 紅 + 綠 + 藍。 - 倉庫優先從左側輸出。 - 花點時間研究可以重複利用的設計,會有回報的! - - 按住 CTRL 可以一次放置多個建築。 + - 按住 SHIFT 可以一次放置多個建築。 - 按住 ALT 以反轉輸送帶的放置方向。 - 效率是關鍵! - 離基地越遠得圖形叢越複雜。 From 91cb53b6ce34cba0665512ae6eede3dd2cee1304 Mon Sep 17 00:00:00 2001 From: Polarbub <71790726+Polarbub@users.noreply.github.com> Date: Sat, 31 Oct 2020 06:07:25 -0500 Subject: [PATCH 04/15] Fix Dependency errors (#869) * Add files via upload * Fixed Dependence error * Fixed Dependence errors * Add files via upload * Add files via upload --- gulp/package.json | 2 + gulp/yarn.lock | 233 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 4 +- yarn.lock | 229 +++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 450 insertions(+), 18 deletions(-) diff --git a/gulp/package.json b/gulp/package.json index ec69f4ce..49118c32 100644 --- a/gulp/package.json +++ b/gulp/package.json @@ -18,6 +18,7 @@ "@types/node": "^12.7.5", "ajv": "^6.10.2", "audiosprite": "^0.7.2", + "babel-core": "^6.26.3", "babel-loader": "^8.1.0", "browser-sync": "^2.26.10", "circular-dependency-plugin": "^5.0.2", @@ -45,6 +46,7 @@ "query-string": "^6.8.1", "rusha": "^0.8.13", "serialize-error": "^3.0.0", + "stream-browserify": "^3.0.0", "strictdom": "^1.0.1", "string-replace-webpack-plugin": "^0.1.3", "strip-indent": "^3.0.0", diff --git a/gulp/yarn.lock b/gulp/yarn.lock index 0fbce524..61c19815 100644 --- a/gulp/yarn.lock +++ b/gulp/yarn.lock @@ -1923,6 +1923,62 @@ axios@0.19.0: follow-redirects "1.5.10" is-buffer "^2.0.2" +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0, babel-core@^6.26.3: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-loader@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" @@ -1934,6 +1990,13 @@ babel-loader@^8.1.0: pify "^4.0.1" schema-utils "^2.6.5" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + babel-plugin-closure-elimination@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-closure-elimination/-/babel-plugin-closure-elimination-1.3.0.tgz#3217fbf6d416dfdf14ff41a8a34e4d0a6bfc22b2" @@ -1956,6 +2019,27 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + babel-runtime@^7.0.0-beta.3: version "7.0.0-beta.3" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-7.0.0-beta.3.tgz#7c750de5514452c27612172506b49085a4a630f2" @@ -1964,6 +2048,47 @@ babel-runtime@^7.0.0-beta.3: core-js "^2.4.0" regenerator-runtime "^0.11.0" +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + bach@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" @@ -2965,6 +3090,11 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -3135,7 +3265,7 @@ content-disposition@^0.5.2: dependencies: safe-buffer "5.1.2" -convert-source-map@^1.5.0, convert-source-map@^1.7.0: +convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -3190,6 +3320,11 @@ core-js@^2.4.0, core-js@^2.5.7: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== +core-js@^2.5.0: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -3581,7 +3716,7 @@ dateformat@^2.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= -debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: +debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3808,6 +3943,13 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -5607,7 +5749,7 @@ globals@^11.1.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^9.2.0: +globals@^9.18.0, globals@^9.2.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== @@ -6265,6 +6407,14 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -6602,7 +6752,7 @@ inherits@1: resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js= -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -7172,6 +7322,11 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -7216,6 +7371,11 @@ jsdom@12.2.0: ws "^6.1.0" xml-name-validator "^3.0.0" +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -7263,7 +7423,7 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^0.5.0: +json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= @@ -7463,6 +7623,14 @@ limiter@^1.0.5: resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.4.tgz#87c9c3972d389fdb0ba67a45aadbc5d2f8413bc1" integrity sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg== +line-column@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" + integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= + dependencies: + isarray "^1.0.0" + isobject "^2.0.0" + load-bmfont@^1.3.1, load-bmfont@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" @@ -7851,6 +8019,11 @@ lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.4: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + lodash@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" @@ -8404,6 +8577,11 @@ nan@^2.12.1, nan@^2.13.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== +nanoid@^3.1.12: + version "3.1.12" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" + integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -8982,7 +9160,7 @@ os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -9304,7 +9482,7 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -10212,6 +10390,16 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2 source-map "^0.6.1" supports-color "^6.1.0" +postcss@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.1.tgz#c3a287dd10e4f6c84cb3791052b96a5d859c9389" + integrity sha512-9DGLSsjooH3kSNjTZUOt2eIj2ZTW0VI2PZ/3My+8TC7KIbH2OKwUlISfDsf63EP4aiRUt3XkEWMWvyJHvJelEg== + dependencies: + colorette "^1.2.1" + line-column "^1.0.2" + nanoid "^3.1.12" + source-map "^0.6.1" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -10242,7 +10430,7 @@ pretty-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -private@^0.1.6, private@~0.1.5: +private@^0.1.6, private@^0.1.8, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -10573,7 +10761,7 @@ readable-stream@^1.0.27-1, readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^3.0.2, readable-stream@^3.1.1: +readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.5.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -11372,6 +11560,11 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -11533,6 +11726,13 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + source-map-support@~0.5.12: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -11553,7 +11753,7 @@ source-map@^0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0: +source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -11718,6 +11918,14 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + stream-consume@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" @@ -12394,6 +12602,11 @@ to-buffer@^1.1.1: resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" diff --git a/package.json b/package.json index acd23c07..715bf26d 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@types/cordova": "^0.0.34", "@types/filesystem": "^0.0.29", "ajv": "^6.10.2", + "babel-core": "^6.26.3", "babel-loader": "^8.0.4", "circular-dependency-plugin": "^5.0.2", "circular-json": "^0.5.9", @@ -49,6 +50,7 @@ "markdown-loader": "^4.0.0", "match-all": "^1.2.5", "phonegap-plugin-mobile-accessibility": "^1.0.5", + "postcss": ">=5.0.0", "promise-polyfill": "^8.1.0", "query-string": "^6.8.1", "rusha": "^0.8.13", @@ -71,7 +73,7 @@ "yawn-yaml": "^1.5.0" }, "devDependencies": { - "@octokit/rest": "^18.0.6", + "@octokit/rest": "^18.0.6", "@typescript-eslint/eslint-plugin": "3.0.1", "@typescript-eslint/parser": "3.0.1", "autoprefixer": "^9.4.3", diff --git a/yarn.lock b/yarn.lock index da9d4625..4a7612d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1627,6 +1627,62 @@ autoprefixer@^9.4.3, autoprefixer@^9.4.7, autoprefixer@^9.6.1: postcss "^7.0.27" postcss-value-parser "^4.0.3" +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0, babel-core@^6.26.3: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-loader@^8.0.4: version "8.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" @@ -1638,6 +1694,13 @@ babel-loader@^8.0.4: pify "^4.0.1" schema-utils "^2.6.5" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + babel-plugin-closure-elimination@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-closure-elimination/-/babel-plugin-closure-elimination-1.3.0.tgz#3217fbf6d416dfdf14ff41a8a34e4d0a6bfc22b2" @@ -1660,6 +1723,27 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + babel-runtime@^7.0.0-beta.3: version "7.0.0-beta.3" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-7.0.0-beta.3.tgz#7c750de5514452c27612172506b49085a4a630f2" @@ -1668,6 +1752,47 @@ babel-runtime@^7.0.0-beta.3: core-js "^2.4.0" regenerator-runtime "^0.11.0" +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -2402,6 +2527,11 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + colors@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -2489,7 +2619,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.7.0: +convert-source-map@^1.5.1, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -2536,7 +2666,7 @@ core-js@3: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== -core-js@^2.4.0, core-js@^2.5.7: +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== @@ -2852,7 +2982,7 @@ debounce-promise@^3.1.2: resolved "https://registry.yarnpkg.com/debounce-promise/-/debounce-promise-3.1.2.tgz#320fb8c7d15a344455cd33cee5ab63530b6dc7c5" integrity sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3006,6 +3136,13 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -4037,6 +4174,11 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + gonzales-pe@^4.2.3: version "4.3.0" resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" @@ -4223,6 +4365,14 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -4815,6 +4965,11 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -4831,6 +4986,11 @@ js-yaml@^3.4.2: argparse "^1.0.7" esprima "^4.0.0" +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -4861,7 +5021,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@^0.5.0: +json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= @@ -4943,6 +5103,14 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +line-column@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" + integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= + dependencies: + isarray "^1.0.0" + isobject "^2.0.0" + load-bmfont@^1.3.1, load-bmfont@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b" @@ -5059,6 +5227,11 @@ lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17. resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.4: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + logalot@^2.0.0, logalot@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" @@ -5446,6 +5619,11 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== +nanoid@^3.1.12: + version "3.1.12" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" + integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -5718,6 +5896,11 @@ os-filter-obj@^2.0.0: dependencies: arch "^2.1.0" +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -5727,7 +5910,7 @@ os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@~1.0.2: +os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -5974,7 +6157,7 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -6772,6 +6955,16 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2 source-map "^0.6.1" supports-color "^6.1.0" +postcss@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.1.tgz#c3a287dd10e4f6c84cb3791052b96a5d859c9389" + integrity sha512-9DGLSsjooH3kSNjTZUOt2eIj2ZTW0VI2PZ/3My+8TC7KIbH2OKwUlISfDsf63EP4aiRUt3XkEWMWvyJHvJelEg== + dependencies: + colorette "^1.2.1" + line-column "^1.0.2" + nanoid "^3.1.12" + source-map "^0.6.1" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -7486,6 +7679,11 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -7562,6 +7760,13 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -7575,7 +7780,7 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0: +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -8063,6 +8268,11 @@ to-buffer@^1.1.1: resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -8117,6 +8327,11 @@ trim-repeated@^1.0.0: dependencies: escape-string-regexp "^1.0.2" +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + trim@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" From 61f3b1991f256b8fa368b5e28593942770dbfa06 Mon Sep 17 00:00:00 2001 From: Galo223344 <46462621+Galo223344@users.noreply.github.com> Date: Sat, 31 Oct 2020 08:09:12 -0300 Subject: [PATCH 05/15] Translated strings and improved translation (#875) * Translating the rest of the strings to spanish Don't merge yet! Only commiting to save progress * Update base-es.yaml * Translated strings and improved translation - Translated 99% of the strings, there's only one hint left that I didn't quite understand - Fixed some typos - Changed the translation of hub from "Central building" to "HUB" * Update base-es.yaml * More improvements, also changed 20 upgrades to infinite upgrades. --- translations/base-es.yaml | 173 +++++++++++++++++++------------------- 1 file changed, 85 insertions(+), 88 deletions(-) diff --git a/translations/base-es.yaml b/translations/base-es.yaml index 8354c684..66197195 100644 --- a/translations/base-es.yaml +++ b/translations/base-es.yaml @@ -9,21 +9,21 @@ steamPage: A medida que el nivel aumenta, las formas se vuelven más y más complejas, y tienes que extenderte en un mapa infinito. - Y por si fuera poco, también tienes que producir exponencialmente más para satisfacer las demandas - ¡lo único que ayuda es escalar! + Y por si fuera poco, también tienes que producir exponencialmente más para satisfacer las demandas - ¡lo único que ayuda es ampliar! - Mientras que sólo procesas formas al principio, tienes que colorearlas después - ¡para ello tienes que extraer y mezclar los colores! + Mientras que sólo procesas formas al principio, tienes que colorearlas después - ¡para ello tienes que extraer y mezclar colores! Comprando el juego en Steam tienes acceso a la versión completa, ¡pero también puedes jugar una demo en shapez.io primero y decidir después! title_advantages: Ventajas del juego advantages: - 12 nuevos niveles de un total de 26 niveles - - 18 nuevos edificios ¡para una fábrica totalmente automatizada! - - 20 Upgrade Tiers for many hours of fun! - - Wires Update for an entirely new dimension! - - Modo oscuro! + - 18 nuevos edificios ¡Para una fábrica totalmente automatizada! + - Nieveles infinitos de mejoras ¡Para horas de diversión! + - ¡Cables para una dimensión completamente nueva! + - ¡Modo oscuro! - Partidad guardadas ilimitadas - Marcadores ilimitados - - Me apoyarás! ❤️ + - ¡Me apoyarás! ❤️ title_future: Contenido futuro planned: - Librería de planos (Exclusivo de Standalone) @@ -46,7 +46,7 @@ steamPage: trato de revisar todas las sugerencias además de tomar en cuenta los consejos siempre que sea posible. - Asegurate de revisar mi página de Trello donde podrás encontrar el Roadmap! + ¡Asegurate de revisar mi página de Trello donde podrás encontrar el Roadmap! global: loading: Cargando error: Error @@ -92,7 +92,7 @@ mainMenu: discordLink: Servidor de Discord oficial helpTranslate: ¡Ayuda a traducirlo! madeBy: Desarrollado por - browserWarning: ¡Lo siento, pero el juego funcionará despacio en tu navegador! + browserWarning: ¡Lo siento, pero el juego funcionará lento en tu navegador! Obtén el juego completo o descarga Chrome para la experiencia completa. savegameLevel: Nivel savegameLevelUnknown: Nivel desconocido @@ -121,8 +121,8 @@ dialogs: text: "No se ha podido cargar la partida guardada:" confirmSavegameDelete: title: Confirmar borrado - text: Estás seguro de querér borrar el siguiente guardado?

- '' que está en el nivel

Esto no se puede deshacer! + text: ¿Estás seguro de querér borrar el siguiente guardado?

+ '' que está en el nivel

¡Esto no se puede deshacer! savegameDeletionError: title: Fallo al borrar text: "Fallo al borrar la partida guardada:" @@ -131,7 +131,7 @@ dialogs: text: Tienes que reinciar la partida para aplicar los cambios. editKeybinding: title: Cambiar atajos de teclado - desc: Pulsa la tecla o botón del ratón que quieras asignar, o escape para + desc: Pulsa la tecla o botón del ratón que quieras asignar, o presiona escape para cancelar. resetKeybindingsConfirmation: title: Reiniciar atajos de teclado @@ -166,7 +166,7 @@ dialogs: desc: ¡Estás cortando muchos edificios ( para ser exactos)! ¿Estas seguro de que quieres hacer esto? massCutInsufficientConfirm: - title: Confirm cut + title: Confirmar corte desc: ¡No puedes permitirte pegar este área! ¿Estás seguro de que quieres cortarlo? blueprintsNotUnlocked: @@ -197,7 +197,7 @@ dialogs: editSignal: title: Establecer señal descItems: "Elige un item pre-definido:" - descShortKey: ... o escribe la calve de una forma (La cual + descShortKey: ... o escribe la clave de una forma (La cual puedes generar aquí) renameSavegame: title: Renombrar archivo de guardado @@ -258,7 +258,7 @@ ingame: notifications: newUpgrade: ¡Una nueva mejora está disponible! gameSaved: Se ha guardado la partida. - freeplayLevelComplete: Level has been completed! + freeplayLevelComplete: ¡El nivel ha sido completado! shop: title: Mejoras buttonUnlock: Mejorar @@ -269,14 +269,14 @@ ingame: dataSources: stored: title: Almacenado - description: Muestra la cantidad de figuras guardadas en tu edificio central. + description: Muestra la cantidad de figuras guardadas en tu HUB. produced: title: Producido description: Muestra todas las figuras que tu fábrica al completo produce, incluyendo productos intermedios. delivered: title: Entregados - description: Muestra las figuras que son entregadas a tu edificio central. + description: Muestra las figuras que son entregadas a tu HUB. noShapesProduced: Todavía no se han producido figuras. shapesDisplayUnits: second: / s @@ -294,7 +294,7 @@ ingame: cost: Coste waypoints: waypoints: Marcadores - hub: Edificio Central + hub: HUB description: Click izquierdo sobre un marcador para ir ahí, click derecho para borrarlo.

Pulsa para crear un marcador de la vista actual o click derecho para crear un marcador @@ -310,7 +310,7 @@ ingame: 1_1_extractor: ¡Coloca un extractor encima de un círculo para extraerlo! 1_2_conveyor: "¡Conecta el extractor con una cinta - transportadora a tu edificio central!

Pista: + transportadora
a tu HUB!

Pista: ¡Pulsa y arrastra la cinta transportadora con el ratón!" 1_3_expand: '¡Esto NO es un "juego de esperar"! Construye más @@ -321,14 +321,14 @@ ingame: 2_1_place_cutter: "¡Ahora pon un Cortador para dividir los circulos en dos mitades!

PD: El cortador siempre corta de de arriba a abajo independientemente de su orientación." - 2_2_place_trash: ¡El cortador se puede tabar y atorar!

Usa un + 2_2_place_trash: ¡El cortador se puede trabar y atorar!

Usa un basurero para deshacerse de la actualmente (!) no necesitada basura. 2_3_more_cutters: "¡Buen trabajo! ¡Ahora pon 2 cortadores más para acelerar este lento proceso!

PD: Usa las teclas 0-9 para acceder a los edificios más rápido!" 3_1_rectangles: "¡Ahora consigamos unos rectangulos! construye 4 - extractores y conectalos a el edificio central.

PD: + extractores
y conectalos a el HUB.

PD: Manten apretado SHIFT mientrás pones cintas transportadoras para activar el planeador de cintas!" 21_1_place_quad_painter: ¡Pon el pintaor cuadruple y consigue unos @@ -339,7 +339,7 @@ ingame: entradas de el pintador con cables! 21_3_place_button: ¡Genial! ¡Ahora pon un Interruptor y conectalo con cables! - 21_4_press_button: "Presioa el interruptor para hacer que emita una señal + 21_4_press_button: "Presiona el interruptor para hacer que emita una señal verdadera lo cual activa el piintador.

PD: ¡No necesitas conectar todas las entradas! Intenta conectando solo dos." connectedMiners: @@ -364,7 +364,7 @@ ingame: title: Archivos de guardado infinitos desc: ¡Tantos como desees! upgrades: - title: 20 niveles de mejoras + title: Niveles infinitos de mejoras desc: ¡Esta demo solo tiene 5! markers: title: Marcadores infinitos @@ -660,11 +660,11 @@ storyRewards: title: Juego libre desc: ¡Lo hiciste! Haz desbloqueado el modo de juego libre! ¡Esto significa que las formas ahora son aleatoriamente generadas!

- Since the hub will require a throughput from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!

The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + Debído a que desde ahora de adelante el HUB pedrirá una cantidad especifica de formas por segundo + ¡Te recomiendo encarecidamente que construyas una maquina que automáticamente + envíe la forma pedida!

El HUB emite la forma + pedida en la capa de cables, así que todo lo que tienes que hacer es analizarla y + automaticamente configurar tu fabrica basada en ello. reward_blueprints: title: Planos desc: ¡Ahora puedes copiar y pegar partes de tu fábrica! @@ -1014,63 +1014,60 @@ demo: exportingBase: Exportando la base completa como imagen settingNotAvailable: No disponible en la versión de prueba. tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing R. - - Holding CTRL allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use T to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with T - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding SHIFT will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding CTRL allows to place multiple buildings. - - You can hold ALT to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use CTRL + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - El HUB acepta entradas de cualquier tipo ¡No solo la forma actual! + - Trata de que tus fábricas sean modulares - ¡Te servirá en el futuro! + - No construyas muy cerca del HUB ¡O se volverá todo un caos! + - Si apilar las formas no funciona, intenta intercambiar las entradas. + - Puedes activar la dirección del planeador de cintas apretando R. + - Mantener apretado CTRL te permite poner cintas sin auto-orientación. + - Las proporciones siempre serán las mismas. Siempre y cuando todas las mejoras estén al mismo nivel. + - La ejecución en serie es más eficiente que la paralela. + - ¡Desbloquearás más variantes de edificios más adelante en el juego! + - Puedes usar T para cambiar entre diferentes variantes. + - ¡La simetría es clave! + - Los túneles de diferentes niveles pueden cruzarse entre sí + - Intenta construir fábricas compactas - ¡Me lo agradecerás luego! + - El pintor tiene una variante en espejo que puedes seleccionar con la técla T + - Tener una buena proporción entre edificion maximizará su eficiencia + - A su máximo nivel, 5 extractores llenarán por completo una cinta trasnportadora. + - ¡No te olvides de utilizár túneles! + - No es necesario dividir los items de manera uniforme para conseguír la mayor eficiencia. + - Mantener apretado SHIFT activará el planeador de cintas, permitiendote poner + largas lineas de cintas fácilmente. + - Los cortadores siempre cortan verticalmente, sin importar su orientación. + - Para obtener blanco solo mexcla todos los colores. + - El buffer de almacenamiento prioriza la primera salida. + - Invierte tiempo en construir diseños repetibles, ¡vale la pena! + - Mantener apretado CTRL te permite poner varios edificios a la vez. + - Puedes apretar ALT para invertir la dirección a la que van las cintas. + - ¡La eficiencia es la clave! + - Mientras más lejos del HUB estés más complejas serán las formas que te encuentres. + - Las máquinas tienen una velocidad limitada, divídelas para una máxima eficiencia. + - Usa balanceadores para maximizar tu eficiencia. + - La organización es importante. Trate de no cruzar demasiado las cintas transportadoras. + - ¡Planea con anticipación, o será un gran caos! + - ¡No saques tus viejas fábricas! Las necesitararás para desbloquear nuevas mejoras. + - ¡Intenta superar el nivel 20 por tu cuenta antes de buscar ayuda! + - No compliques las cosas, intenta mantenerlo simple y llegarás lejos. + - Puede que tengas que reutilizar las fábricas más tarde en el juego. Planea tus fábricas para que sean reutilizables. + - A veces puedes encontrar la forma que necesitas en el mapa sin la necesidad de usar apiladores. + - Los molinillos no pueden aparecer enteros naturalmente. + - Colorear las formas antes de cortarlas para una máxima eficiencia. + - Con los módulos, el espacio es sólo una percepción; una preocupación para los mortales. + - Haz una fábrica para planos separada. Son importantes para los módulos. + - Echa un vistazo más de cerca al mezclador de colores, y tus preguntas serán respondidas. + - Usa CTRL + Click izquierdo para seleccionar un área. + - Construir demasiado cerca del HUB puede interponerse en el camino de proyectos a futuro. + - El icono del alfiler junto a cada forma de la lista de mejoras lo fija a la pantalla. + - ¡Mezcla todos los colores primarios para obtener blanco! + - Tienes un mapa infinito, no te agobies tu fábrica, ¡expande! + - ¡Prueba también Factorio! Es mi juego favorito. + - ¡El cortador cuádruple corta en el sentido de las agujas del reloj empezando por la parte superior derecha! + - ¡Puedes descargar tus archivos de guardado en el menú principal! + - ¡Este juego tiene un montón de atajos útiles! Asegúrate de revisar la página de ajustes. + - Este juego tiene muchos ajustes, ¡asegúrate de revisarlos! + - ¡El marcador de tu HUB tiene una pequeña brújula para indicar su dirección! + - Para despejar las cintas transportadoras, corta el área y luego pégala en el mismo lugar. + - Presiona F4 para mostrar tu FPS y Tick Rate. + - Presiona F4 dos veces para mostrar las coordenadas de tu ratón y de la cámara. + - Puedes hacer clic en una forma fijada en el lado izquierdo para desfijarla. From 785eb31c8d39b6ffbe1896455e487488486d8423 Mon Sep 17 00:00:00 2001 From: LeopoldTal Date: Sat, 31 Oct 2020 12:12:05 +0100 Subject: [PATCH 06/15] make save compressor faster (#888) Fixes #836 by using a Map instead of an array. The Map maps the values to their indices rather than the reverse, making finding the index constant-time rather than linear, and so building the full map linear rather than quadratic. Flipping it to build the final array is also linear. --- src/js/savegame/savegame_compressor.js | 34 ++++++++++++++++---------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/js/savegame/savegame_compressor.js b/src/js/savegame/savegame_compressor.js index bc14baf7..ac82ebda 100644 --- a/src/js/savegame/savegame_compressor.js +++ b/src/js/savegame/savegame_compressor.js @@ -59,7 +59,7 @@ if (G_IS_DEV) { } } -function compressObjectInternal(obj, keys = [], values = []) { +function compressObjectInternal(obj, keys, values) { if (Array.isArray(obj)) { let result = []; for (let i = 0; i < obj.length; ++i) { @@ -69,33 +69,41 @@ function compressObjectInternal(obj, keys = [], values = []) { } else if (typeof obj === "object" && obj !== null) { let result = {}; for (const key in obj) { - let index = keys.indexOf(key); - if (index < 0) { - keys.push(key); - index = keys.length - 1; + let index = keys.get(key); + if (index === undefined) { + index = keys.size; + keys.set(key, index); } const value = obj[key]; result[compressInt(index)] = compressObjectInternal(value, keys, values); } return result; } else if (typeof obj === "string") { - let index = values.indexOf(obj); - if (index < 0) { - values.push(obj); - index = values.length - 1; + let index = values.get(obj); + if (index === undefined) { + index = values.size; + values.set(obj, index); } return compressInt(index); } return obj; } +function indexMapToArray(hashMap) { + const result = []; + hashMap.forEach((index, key) => { + result[index] = key; + }); + return result; +} + export function compressObject(obj) { - const keys = []; - const values = []; + const keys = new Map(); + const values = new Map(); const data = compressObjectInternal(obj, keys, values); return { - keys, - values, + keys: indexMapToArray(keys), + values: indexMapToArray(values), data, }; } From b17cb6952b00ea135596691d7442e1ab8efb55f6 Mon Sep 17 00:00:00 2001 From: tobspr Date: Sat, 31 Oct 2020 12:19:51 +0100 Subject: [PATCH 07/15] Update changelog and minor fixes --- src/js/changelog.js | 2 ++ src/js/core/config.js | 3 ++- src/js/savegame/savegame_compressor.js | 24 +++++++++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index 84f0bc07..3a93bb96 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -5,6 +5,8 @@ export const CHANGELOG = [ entries: [ "Fixed stacking bug for level 26 which required restarting the game", "Fix reward notification being too long sometimes (by LeopoldTal)", + "Use locale decimal separator on belt reader display (by LeopoldTal)", + "Vastly improved performance when saving games (by LeopoldTal)", "Updated translations", ], }, diff --git a/src/js/core/config.js b/src/js/core/config.js index a7df2a90..4169a0c2 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -26,7 +26,8 @@ export const THIRDPARTY_URLS = { }, }; -export const A_B_TESTING_LINK_TYPE = Math.random() > 0.5 ? "steam_1_pr" : "steam_2_npr"; +// export const A_B_TESTING_LINK_TYPE = Math.random() > 0.95 ? "steam_1_pr" : "steam_2_npr"; +export const A_B_TESTING_LINK_TYPE = "steam_2_npr"; export const globalConfig = { // Size of a single tile in Pixels. diff --git a/src/js/savegame/savegame_compressor.js b/src/js/savegame/savegame_compressor.js index ac82ebda..b0b92aa8 100644 --- a/src/js/savegame/savegame_compressor.js +++ b/src/js/savegame/savegame_compressor.js @@ -59,6 +59,12 @@ if (G_IS_DEV) { } } +/** + * @param {any} obj + * @param {Map} keys + * @param {Map} values + * @returns {any[]|object|number|string} + */ function compressObjectInternal(obj, keys, values) { if (Array.isArray(obj)) { let result = []; @@ -89,14 +95,21 @@ function compressObjectInternal(obj, keys, values) { return obj; } +/** + * @param {Map} hashMap + * @returns {Array} + */ function indexMapToArray(hashMap) { - const result = []; + const result = new Array(hashMap.size); hashMap.forEach((index, key) => { result[index] = key; }); return result; } +/** + * @param {object} obj + */ export function compressObject(obj) { const keys = new Map(); const values = new Map(); @@ -108,6 +121,12 @@ export function compressObject(obj) { }; } +/** + * @param {object} obj + * @param {string[]} keys + * @param {any[]} values + * @returns {object} + */ function decompressObjectInternal(obj, keys = [], values = []) { if (Array.isArray(obj)) { let result = []; @@ -130,6 +149,9 @@ function decompressObjectInternal(obj, keys = [], values = []) { return obj; } +/** + * @param {object} obj + */ export function decompressObject(obj) { if (obj.keys && obj.values && obj.data) { const keys = obj.keys; From 1cd26f74b24c5029e7d52f4d745f90cfacbf90dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20Szab=C3=B3?= Date: Sat, 31 Oct 2020 12:20:29 +0100 Subject: [PATCH 08/15] Hungarian Translation 100% (#895) * Translate all to Hungarian * Hungarian added to language selector --- src/js/languages.js | 7 + translations/base-hu.yaml | 1267 ++++++++++++++++++------------------- 2 files changed, 640 insertions(+), 634 deletions(-) diff --git a/src/js/languages.js b/src/js/languages.js index 46ff8af9..4cc39f9b 100644 --- a/src/js/languages.js +++ b/src/js/languages.js @@ -117,4 +117,11 @@ export const LANGUAGES = { code: "da", region: "", }, + + "hu": { + name: "Magyar", + data: require("./built-temp/base-hu.json"), + code: "hu", + region: "", + }, }; diff --git a/translations/base-hu.yaml b/translations/base-hu.yaml index 81e6d7ab..9f1cc854 100644 --- a/translations/base-hu.yaml +++ b/translations/base-hu.yaml @@ -2,55 +2,52 @@ steamPage: shortText: A shapez.io-ban gyárak építésével kell automatizálni az egyre összetettebb alakzatok gyártását és kombinálását egy végtelen méretű térképen. - discordLinkShort: Official Discord + discordLinkShort: Hivatalos Discord intro: >- - Shapez.io is a relaxed game in which you have to build factories for the - automated production of geometric shapes. + Szereted az automatizálós játékokat? Akkor jó helyen vagy! - As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. + A Shapez.io egy nyugtató játék, amelyben gyárakat kell építened, hogy geometrikus alakzatokat gyárts és automatizálj. Ahogy szintet lépsz, az alakzatok egyre összetettebbek lesznek, és tovább kell terjeszkedned a végtelen pályán. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! + És ha ez nem lenne elég, exponenciálisan többet kell termelned az igények kielégítése érdekében - az egyetlen dolog, ami segít, az a termelés mennyisége! Az alakzatokat a játék elején csak feldolgoznod kell, később azonban színezned is kell őket - ehhez bányászni és keverni kell a színeket! - While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! - - Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages + A játék Steamen történő megvásárlása hozzáférést biztosít a teljes verzióhoz, de kipróbálhatod a játékot a shapez.io oldalon, és később dönthetsz! + title_advantages: Önálló Verzió Előnyei advantages: - - 12 New Level for a total of 26 levels - - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! - - Wires Update for an entirely new dimension! - - Dark Mode! - - Unlimited Savegames - - Unlimited Markers - - Support me! ❤️ - title_future: Planned Content + - 12 Új Szint, összesen 26 + - 18 Új Épület egy teljesen automatizált gyárhoz! + - 20 Fejlesztési szint sok órányi szórakozáshoz! + - Vezetékek Frissítés egy teljesen új dimenzióhoz! + - Sötét mód! + - Végtelen mentés + - Végtelen Jelölő + - Támogatod a Fejlesztőt ❤️ + title_future: Tervezett Tartalom planned: - - Blueprint Library (Standalone Exclusive) - - Steam Achievements - - Puzzle Mode - - Minimap - - Mods - - Sandbox mode - - ... and a lot more! - title_open_source: This game is open source! - title_links: Links - links: - discord: Official Discord - roadmap: Roadmap - subreddit: Subreddit - source_code: Source code (GitHub) - translate: Help translate + - Tervrajz Könyvtár + - Steam Eredmények + - Puzzle Mód + - Kistérkép + - Modok + - Homokozó játékmód + - ... és még sok más! + title_open_source: A játék nyílt forráskódú! text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. + Bárki hozzájárulhat, aktívan részt veszek a közösségben és próbálok + áttekinteni minden javaslatot, és figyelembe veszem a visszajelzéseket, + ahol lehetséges. - Be sure to check out my trello board for the full roadmap! + Feltétlenül nézd meg a Trello táblámat a teljes ütemtervért! + title_links: Linkek + links: + discord: Hivatalos Discord + roadmap: Ütemterv + subreddit: Subreddit + source_code: Forráskód (GitHub) + translate: Segíts lefordítani global: loading: Betöltés error: Hiba - thousandsDivider: . + thousandsDivider: "." decimalSeparator: "," suffix: thousands: e @@ -59,14 +56,14 @@ global: trillions: Tr infinite: végtelen time: - oneSecondAgo: egy másodperccel ezelőtt - xSecondsAgo: másodperccel ezelőtt - oneMinuteAgo: egy perccel ezelőtt - xMinutesAgo: perccel ezelőtt - oneHourAgo: egy órával ezelőtt - xHoursAgo: órával ezelőtt - oneDayAgo: egy nappal ezelőtt - xDaysAgo: nappal ezelőtt + oneSecondAgo: egy másodperce + xSecondsAgo: másodperce + oneMinuteAgo: egy perce + xMinutesAgo: perce + oneHourAgo: egy órája + xHoursAgo: órája + oneDayAgo: egy napja + xDaysAgo: napja secondsShort: mp minutesAndSecondsShort: p mp hoursAndMinutesShort: ó p @@ -77,10 +74,10 @@ global: alt: ALT escape: ESC shift: SHIFT - space: SPACE + space: SZÓKÖZ demoBanners: title: Demó verzió - intro: Vásárold meg az önálló verziót a teljes játékélményért! + intro: Vásárold meg az Önálló Verziót a teljes játékélményért! mainMenu: play: Játék continue: Folytatás @@ -88,16 +85,15 @@ mainMenu: changelog: Változások subreddit: Reddit importSavegame: Importálás - openSourceHint: Ez a játék nyílt forráskódú! + openSourceHint: Nyílt forráskód discordLink: Hivatalos Discord Szerver helpTranslate: Segíts fordítani! madeBy: Készítette - browserWarning: Elnézést, de a játék ezen a böngészőn problémásan fut. Vásárold - meg az Önálló Verziót, vagy töltsd le a Chrome-ot a teljes - játékélményért. + browserWarning: A játék ezen a böngészőn problémásan futhat. Vásárold meg az + Önálló Verziót, vagy töltsd le a Chrome-ot a teljes játékélményért. savegameLevel: . szint savegameLevelUnknown: Ismeretlen szint - savegameUnnamed: Unnamed + savegameUnnamed: Névtelen dialogs: buttons: ok: OK @@ -113,7 +109,7 @@ dialogs: showKeybindings: Irányítás importSavegameError: title: Importálás Hiba - text: "Nem sikerült importálni a mentésed:" + text: "Nem sikerült importálni a mentésedet:" importSavegameSuccess: title: Mentés Importálva text: A mentésed sikeresen importálva lett. @@ -122,9 +118,9 @@ dialogs: text: "Nem sikerült betölteni a mentésed:" confirmSavegameDelete: title: Törlés megerősítése - text: Are you sure you want to delete the following game?

- '' at level

This can not be - undone! + text: Biztos hogy törölni akarod a következő mentésedet?

+ '' . szinten

Ezt nem lehet + visszacsinálni! savegameDeletionError: title: Sikertelen törlés text: "Nem sikerült törölni a mentésed:" @@ -163,16 +159,16 @@ dialogs: desc: Egy csomó épületet akarsz egyszerre törölni (egészen pontosan -t)! Biztos, hogy ezt szeretnéd? massCutConfirm: - title: Biztosan kivágod? + title: Kivágás megerősítése desc: Egy csomó épületet akarsz egyszerre kivágni (egészen pontosan -t)! Biztos, hogy ezt szeretnéd? massCutInsufficientConfirm: title: Kivágás megerősítése - desc: Nincs elég Tervrajzod ennek a beillsztéséhez! Egészen biztos, hogy + desc: Nincs elég Tervrajzod ennek a beillesztéséhez! Egészen biztos, hogy kivágod? blueprintsNotUnlocked: title: Még nincs feloldva - desc: A Tervrajzokat a 12-es szinten fogod feloldani. + desc: A Tervrajzokat a 12-es szinten tudod feloldani. keybindingsIntroduction: title: Hasznos billentyűk desc: "A játék sok hasznos gyorsbillentyűt tartalmaz, amelyek megkönnyítik a @@ -185,9 +181,14 @@ dialogs: lehelyezéskor.
" createMarker: title: Új Jelölő + titleEdit: Jelölő Szerkesztése desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) - titleEdit: Jelölő Szerkesztése + editSignal: + title: Jel Beállítása + descItems: "Válassz egy előre definiált elemet:" + descShortKey: ... vagy írd be egy alakzat gyorskódját, amit + itt generálhatsz le) markerDemoLimit: desc: A Demó verzióban csak két Jelölőd lehet. Vásárold meg az Önálló verziót, hogy feloldd ezt a korlátozást! @@ -196,22 +197,16 @@ dialogs: desc: A teljes bázisod képének lementését választottad. Vedd figyelembe, hogy ez nagy méretű bázisoknál igen lassú lehet, de akár a játék összeomlását is okozhatja! - editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the short key of a shape (Which you - can generate here) renameSavegame: - title: Rename Savegame - desc: You can rename your savegame here. + title: Mentés átnevezése + desc: Itt tudod átnevezni a mentésedet. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Oktatás Elérhető + desc: Elérhető egy oktatóvideó ehhez a szinthez! Szeretnéd megnézni? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Oktatás Elérhető + desc: Elérhető egy oktatóvideó ehhez a szinthez, de csak angol nyelven. + Szeretnéd megnézni? ingame: keybindingsOverlay: moveMap: Mozgatás @@ -242,9 +237,9 @@ ingame: cyan: Világoskék white: Fehér black: Fekete - uncolored: Színezetlen + uncolored: Szürke buildingPlacement: - cycleBuildingVariants: Nyomd meg a -t, a variációk váltogatásához. + cycleBuildingVariants: Nyomj -t a variációk váltogatásához. hotkeyLabel: "Gyorsbillentyű: " infoTexts: speed: Sebesség @@ -261,37 +256,37 @@ ingame: buttonNextLevel: Következő Szint notifications: newUpgrade: Egy új fejlesztés elérhető! - gameSaved: A játékállás mentve. - freeplayLevelComplete: Level has been completed! + gameSaved: Játékállás mentve. + freeplayLevelComplete: . Szint teljesítve! shop: title: Fejlesztések buttonUnlock: Fejlesztés tier: . Szint maximumLevel: LEGMAGASABB SZINT (x Sebesség) statistics: - title: Statisztikák + title: Statisztika dataSources: stored: title: Tárolva description: Az összes tárolt alakzatod a központi épületben. produced: - title: Gyártva + title: Legyártva description: Az összes eddig legyártott alakzatod, beleértve a köztes alakzatokat is. delivered: title: Beszállítva - description: Az összes alakzat, amely jelenleg kézbesítés alatt van a központba. - noShapesProduced: Még nem gyártottál egy alazkatot sem. + description: Az összes alakzat, amely jelenleg a Központba érkezik. + noShapesProduced: Még nem gyártottál egy alakzatot sem. shapesDisplayUnits: - second: / s - minute: / m - hour: / h + second: / mp + minute: / p + hour: / ó settingsMenu: playtime: Játékidő buildingsPlaced: Épületek száma - beltsPlaced: Futószalagok hossza + beltsPlaced: Futószalagok tutorialHints: - title: Segítségre van szükséged? + title: Elakadtál? showHint: Segítség mutatása hideHint: Bezárás blueprintPlacer: @@ -316,70 +311,72 @@ ingame: 1_2_conveyor: "Kösd össze a bányát egy futószalag segítségével a Központi épülettel!

Tipp: Kattints és húzd a futószalagot az egérrel!" - 1_3_expand: "Ez NEM egy tétlen játék! Építs több bányát és + 1_3_expand: "A shapez.io NEM tétlen játék! Építs több bányát és futószalagot, hogy hamarabb elérd a célt.

Tipp: Tartsd lenyomva a SHIFT-et, hogy egyszerre több bányát helyezz le, és nyomj R-t a forgatáshoz." - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + 2_1_place_cutter: "Most építs egy Vágót a körök két részbe + vágásához!

Tipp: A Vágó mindig függőleges + irányban vágja félbe az alakzatot, függetlenül az + irányától." + 2_2_place_trash: A Vágó eldugulhat és megállhat!

+ Használd a Kukát, hogy megszabadulj a + (jelenleg) nem használt alakzattól. + 2_3_more_cutters: "Nagyszerű! Most helyezz le további 2 Vágót, + hogy felgyorsítsd az amúgy lassú folyamatot!

Tipp: + Használd a 0-9 gyorsbillentyűket az épületek + gyorsabb eléréséhez!" + 3_1_rectangles: "Most bányásszunk négyzeteket! Építs 4 Bányát + és kösd össze őket a Központtal.

Tipp: Tartsd lenyomva a + SHIFT gombot a Futószalag lehelyezésekor, hogy + aktiváld az iránytervezőt!" + 21_1_place_quad_painter: Helyezd le a Négyirányú Festőt és + szerezz köröket, illetve fehér + és piros színeket! + 21_2_switch_to_wires: Válts át a Vezeték rétegre az E + gombbal!

Kapcsold össze a Festő mind a négy + bemenetét kábelekkel! + 21_3_place_button: Nagyszerű! Most rakj le egy Kapcsolót és + kösd össze vezetékekkel! + 21_4_press_button: "Nyomd meg a Kapcsolót, hogy igaz jelet + bocsásson ki, ezzel aktiválva a Festőt.

Tipp: Nem muszáj + mindegyik bemenetet bekötni! Próbálj bekötni csak kettőt." connectedMiners: - one_miner: 1 Miner - n_miners: Miners - limited_items: Limited to + one_miner: 1 Bánya + n_miners: Bánya + limited_items: Maximum watermark: - title: Demo version - desc: Click here to see the Steam version advantages! - get_on_steam: Get on steam + title: Demó verzió + desc: Kattints ide, hogy megnézd az Önálló Verzió előnyeit! + get_on_steam: Megvásárlás Steamen standaloneAdvantages: - title: Get the full version! - no_thanks: No, thanks! + title: Vásárold meg a Teljes Verziót! + no_thanks: Nem, köszönöm! points: levels: - title: 12 New Levels - desc: For a total of 26 levels! + title: 12 Új Szint + desc: Összesen 26 buildings: - title: 18 New Buildings - desc: Fully automate your factory! + title: 18 Új Épület + desc: Egy teljesen automatikus gyárhoz! savegames: - title: ∞ Savegames - desc: As many as your heart desires! + title: ∞ Mentés + desc: Amennyit csak szeretnél! upgrades: - title: 20 Upgrade Tiers - desc: This demo version has only 5! + title: 20 Fejlesztési Szint + desc: A Demó Verzió csak 5-öt tartalmaz! markers: - title: ∞ Markers - desc: Never get lost in your factory! + title: ∞ Jelölő + desc: Hogy mindig tudd, mi hol van! wires: - title: Wires - desc: An entirely new dimension! + title: Vezetékek + desc: Egy teljesen új dimenzióhoz! darkmode: - title: Dark Mode - desc: Stop hurting your eyes! + title: Sötét Mód + desc: Ha már fáj a szemed! support: - title: Support me - desc: I develop it in my spare time! + title: Támogass + desc: A játékot továbbfejlesztem szabadidőmben shopUpgrades: belt: name: Futószalagok, Elosztók & Alagutak @@ -391,33 +388,25 @@ shopUpgrades: name: Vágás, Forgatás & Összeillesztés description: x → x Sebesség painting: - name: Keverés & Festés + name: Színkeverés & Festés description: x → x Sebesség buildings: hub: - deliver: Deliver - toUnlock: to unlock - levelShortcut: LVL - endOfDemo: End of Demo + deliver: Szállíts + toUnlock: hogy feloldd + levelShortcut: Szint + endOfDemo: Demó Verzió vége belt: default: name: Futószalag description: Elemeket szállít, tartsd nyomva az egérgombot egyszerre több lerakásához. - wire: - default: - name: Energy Wire - description: Allows you to transport energy. - second: - name: Wire - description: Transfers signals, which can be items, colors or booleans (1 / 0). - Different colored wires do not connect. miner: default: - name: Bányász + name: Bánya description: Tedd egy alakzatra vagy színre a kibányászásához. chainable: - name: Bányász (összekapcsolható) + name: Bánya (összeköthető) description: Tedd egy alakzatra vagy színre a kibányászásához. Több egymáshoz kapcsolható. underground_belt: @@ -427,647 +416,657 @@ buildings: tier2: name: Alagút II description: Segítségével futószalagok és épületek alatt átvezethetők az elemek. + balancer: + default: + name: Kiegyenlítő + description: Többfunkciós - Egyenlően elosztja az összes bemenetet az összes + kimenetre. + merger: + name: Összevonó (kompakt) + description: Egyesít két futószalagot. + merger-inverse: + name: Összevonó (kompakt) + description: Egyesít két futószalagot. + splitter: + name: Elosztó (kompakt) + description: Kettéoszt egy futószalagot. + splitter-inverse: + name: Elosztó (kompakt) + description: Kettéoszt egy futószalagot. cutter: default: name: Vágó description: Függőlegesen félbevágja az alakzatokat. Ha csak az egyik - felet akarod használni, ne felejtsd el a másikat kukába küldeni, - különben eldugítja! + részét akarod használni, ne felejtsd el a többit a Kukába + küldeni, különben eldugul!
quad: - name: Vágó (negyedelő) - description: Négyfelé vágja az alakzatokat. Cuts shapes into four parts. - Ha csak az egyik felet akarod használni, ne felejtsd el - a többit a kukába küldeni, különben eldugítja! + name: Vágó (Negyedelő) + description: Négyfelé vágja az alakzatokat. Ha csak az egyik részét + akarod használni, ne felejtsd el a többit a Kukába küldeni, + különben eldugul! rotater: default: name: Forgató - description: Elforgatja az alakzatot óramutató irányában 90 fokkal. + description: Elforgatja az alakzatot 90 fokkal, az óramutató irányában. ccw: - name: Forgató (fordított) - description: Elforgatja az alakzatot óramutatóval ellentétesen 90 fokkal. + name: Forgató (Balra) + description: Elforgatja az alakzatot 90 fokkal, az óramutatóval ellentétes + irányban. rotate180: - name: Rotate (180) - description: Rotates shapes by 180 degrees. + name: Forgató (180°) + description: Elforgatja az alakzatot 180 fokkal. stacker: default: name: Egyesítő - description: Egyesít két elemet. Ha nem lehet összeilleszteni őket, a jobboldali - elem a baloldali tetejére kerül. + description: Egyesít két elemet. Ha nem lehet összeilleszteni őket, a jobb + oldali elem a bal oldali tetejére kerül. mixer: default: name: Színkeverő - description: Összekever két színt összeadó színkeveréssel. + description: Összekever két színt additív (összeadó) színkeveréssel. painter: default: name: Festő - description: Beszínezi az alakzatot a baloldali bemeneten a jobboldali bemeneten + description: Beszínezi a bal oldali bemeneten érkező alakzatot a felső bemeneten érkező színnel. mirrored: name: Festő - description: Beszínezi az alakzatot a baloldali bemeneten a jobboldali bemeneten + description: Beszínezi a bal oldali bemeneten érkező alakzatot az alsó bemeneten érkező színnel. double: name: Festő (Dupla) - description: Beszínezi az alakzatokat a baloldali bemeneteken a fenti bemeneten + description: Beszínezi az alakzatokat a bal oldali bemeneteken a fenti bemeneten érkező színnel. quad: name: Festő (Négyszeres) - description: Allows you to color each quadrant of the shape individually. Only - slots with a truthy signal on the wires layer - will be painted! + description: Az alakzat négy negyedét különböző színekkel lehet vele színezni. + Csak azokat a negyedeket festi le, amik a Vezeték rétegen + igaz jelet kapnak! trash: default: name: Kuka - description: Bármelyik irányból lehet hozzá csatlakozni, és megsemmisíti a - beleküldött elemeket. Örökre. - balancer: - default: - name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. - merger: - name: Merger (compact) - description: Merges two conveyor belts into one. - merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. - splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. - splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + description: Megsemmisíti a beleküldött elemeket. Örökre. Bármelyik irányból + lehet hozzá csatlakozni. storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: Raktár + description: Eltárolja a fölösleges elemeket, egy meghatározott kapacitásig. A + bal oldai kimenetet részesíti előnyben. Használható túlcsorduló + kapuként. + wire: + default: + name: Vezeték + description: Jelet hordoz, amely lehet alakzat, szín vagy logikai érték (1 vagy + 0). Különböző színű vezetékek nem kapcsolódnak egymáshoz. + second: + name: Vezeték + description: Jelet hordoz, amely lehet alakzat, szín vagy logikai érték (1 vagy + 0). Különböző színű vezetékek nem kapcsolódnak egymáshoz. wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: Vezeték Kereszteződés + description: Áthidal két vezetéket anélkül, hogy kapcsolódnának egymáshoz. constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: Állandó jel + description: Állandó jelet bocsát ki, amely lehet egy alakzat, szín vagy logikai + érték (1 vagy 0). lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: Kapcsoló + description: Logikai 1 vagy 0 értéket bocsát ki a Vezeték rétegen, amivel + épületeket lehet vezérelni (például alakzat szűrőket). logic_gate: default: - name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + name: ÉS Kapu + description: Igaz (1) a kimenete, ha mindkét bemenet igaz. not: - name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + name: NEM Kapu + description: Igaz (1) a kimenete, ha a bemenet Hamis (0), és fordítva. xor: - name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + name: Kizáró VAGY Kapu + description: Igaz (1) a kimenete, ha csak az egyik bemenet igaz. or: - name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + name: VAGY Kapu + description: Igaz (1) a kimenete, ha legalább az egyik bemenet igaz. transistor: default: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: Tranzisztor + description: Továbbítja az alsó jelet, ha az oldalsó jel igaz. mirrored: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: Tranzisztor + description: Továbbítja az alsó jelet, ha az oldalsó jel igaz. filter: default: - name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + name: Szűrő + description: Minden, a bemenettel megyező alakzatot a fenti kimenetre irányít, + minden mást a jobb oldalira. Vezérelhető 1 vagy 0 jelekkel is. display: default: - name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + name: Kijelző + description: Csatlakoztass egy jelet, és az megjelenik a Kijelzőn. Ez lehet + alakzat, szín, illetve logikai 1 vagy 0. reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: Futószalag-olvasó + description: Megméri egy Futószalag átmenő teljesítményét. A legutóbb beolvasott + alakzatot kiküldi a Vezeték rétegre (amint feloldottad). analyzer: default: - name: Shape Analyzer - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + name: Alakzatvizsgáló + description: Megvizsgálja a beküldött alakzat legalsó rétegének jobb felső + negyedét, és visszaadja ezt az alakzatot és a színét. comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: Összehasonlító + description: Igaz "1" jelet eredményez, ha mindkét bemenete egyforma. Össze tud + hasonlítani alakzatokat, színeket és logikai értékeket. virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: Virtuális Vágó + description: Virtuálisan félbevág egy alakzatot. rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: Virtuális Forgató + description: Virtuálisan elforgat egy alakzatot, az óramutató járásával + megegyező és ellenkező irányba is. unstacker: - name: Virtual Unstacker - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + name: Virtuális Leválasztó + description: Virtuálisan leszedi a legfelső rétegét egy alakzatnak, és kiküldi a + jobb oldali kimenetre, a maradékot pedig a bal oldalira. stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: Virtuális Összevonó + description: Virtuálisan ráhelyezi a jobb oldali alakzatot a bal oldali + tetejére. painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: Virtuális Festő + description: Virtuálisan lefesti az alsó bemeneten érkező alakzatot a jobb + oldali bemeneten érkező színnel. item_producer: default: - name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + name: Létrehozó + description: Csak Homokozó módban elérhető. Létrehozza a Vezeték rétegen + beállított jelet a normál rétegen. storyRewards: reward_cutter_and_trash: - title: Cutting Shapes - desc: You just unlocked the cutter, which cuts shapes in half - from top to bottom regardless of its - orientation!

Be sure to get rid of the waste, or - otherwise it will clog and stall - For this purpose - I have given you the trash, which destroys - everything you put into it! + title: Alakzatok Vágása + desc: Feloldottad a Vágót, amely függőlegesen félbevág + alakzatokat, függetlenül a Vágó + irányától!

Szabadulj meg a feleslegtől, ellenkező + esetben eldugulhat a rendszer - Ezért kaptál egy + Kukát, amely elpusztít mindent, amit belevezetsz! reward_rotater: - title: Rotating - desc: The rotater has been unlocked! It rotates shapes - clockwise by 90 degrees. + title: Forgatás + desc: Feloldottad a Forgatót, amely az óramutató járásával 90 + fokban forgatja el az alakzatokat. reward_painter: - title: Painting - desc: "The painter has been unlocked - Extract some color veins - (just as you do with shapes) and combine it with a shape in the - painter to color them!

PS: If you are colorblind, there is a - color blind mode in the settings!" + title: Festés + desc: "Feloldottad a Festőt - Bányássz ki színeket (úgy, ahogy + az alakzatokat eddig) és fesd le az alakzatokat a + Festőben!

Tipp: Ha színtévesztő vagy, a Beállításokban + bekapcsolhatod a Színtévesztő Módot!" reward_mixer: - title: Color Mixing - desc: The mixer has been unlocked - Combine two colors using - additive blending with this building! + title: Színkeverés + desc: Feloldottad a Színkeverőt, amely két színt kever össze + additív színkeveréssel! reward_stacker: - title: Combiner - desc: You can now combine shapes with the combiner! Both inputs - are combined, and if they can be put next to each other, they will - be fused. If not, the right input is - stacked on top of the left input! - reward_splitter: - title: Splitter/Merger - desc: You have unlocked a splitter variant of the - balancer - It accepts one input and splits them - into two! + title: Egyesítő + desc: Kombinálj össze elemeket az Egyesítővel! Ha a két bemenet + egymás mellé helyezhető, akkor összeolvasztja őket. + Ha nem, a jobb oldali bemenetet ráhelyezi a bal + oldali bemeneten érkező alakzat tetejére! reward_tunnel: - title: Tunnel - desc: The tunnel has been unlocked - You can now pipe items - through belts and buildings with it! + title: Alagút + desc: Feloldottad az Alagutat - Átvihetsz egy futószalagot + másik futószalag, vagy akár épület alatt! reward_rotater_ccw: - title: CCW Rotating - desc: You have unlocked a variant of the rotater - It allows to - rotate counter clockwise! To build it, select the rotater and - press 'T' to cycle its variants! + title: Ellentétes Forgatás + desc: Feloldottad a Forgató ellentétes irányú variánsát, + amellyel az óramutató járásával ellentétes irányban forgathatsz + elemeket! Használatához válaszd ki a Forgatót és nyomj 'T'-t + az irány változtatásához! reward_miner_chainable: - title: Chaining Extractor - desc: "You have unlocked the chained extractor! It can - forward its resources to other extractors so you - can more efficiently extract resources!

PS: The old - extractor has been replaced in your toolbar now!" + title: Összeköthető Bánya + desc: "Feloldottad az Összeköthető Bányát! Segítségével + továbbadhatod a kibányászott erőforrást egy másik + Bányának, így hatékonyabban bányászhatsz!

Tipp: A régi + Bányát lecseréltük az Eszköztáradon!" reward_underground_belt_tier_2: - title: Tunnel Tier II - desc: You have unlocked a new variant of the tunnel - It has a - bigger range, and you can also mix-n-match those - tunnels now! + title: Alagút, II. Szint + desc: Feoldottad az Alagút fejlesztett változatát - + Nagyobb távolságot képes lefedni, és mostmár + variálhatod az Alagutak típusait! + reward_splitter: + title: Kompakt Elosztó + desc: Feloldottad a Kiegyenlítő egy új variánsát, az + Elosztót, amely egy bemenetből csinál két + Futószalagot! reward_cutter_quad: - title: Quad Cutting - desc: You have unlocked a variant of the cutter - It allows you - to cut shapes in four parts instead of just two! + title: Négybevágó + desc: Feloldottad a Vágó egy új variánsát, a Negyedelőt, amely + négy részre vágja az alakzatokat kettő helyett! reward_painter_double: - title: Double Painting - desc: You have unlocked a variant of the painter - It works as - the regular painter but processes two shapes at - once consuming just one color instead of two! + title: Dupla Festés + desc: Feloldottad a Festő egy új variánsát - Ugyanúgy működik, + mint a sima Festő, de két alakzatot fest le + egyszerre, kettő helyett egyetlen festék felhasználásával! reward_storage: - title: Storage Buffer - desc: You have unlocked the storage building - It allows you to - store items up to a given capacity!

It priorities the left - output, so you can also use it as an overflow gate! - reward_freeplay: - title: Freeplay - desc: You did it! You unlocked the free-play mode! This means - that shapes are now randomly generated!

- Since the hub will require a throughput from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!

The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + title: Raktár + desc: Feloldottad a Raktárat, amelyben meghatározott számú + elemet tudsz eltárolni!

A bal oldali kimenetet részesíti + előnyben, így túlcsorduló kapuként is használható! reward_blueprints: - title: Blueprints - desc: You can now copy and paste parts of your factory! Select - an area (Hold CTRL, then drag with your mouse), and press 'C' to - copy it.

Pasting it is not free, you need to - produce blueprint shapes to afford it! (Those you - just delivered). + title: Tervrajzok + desc: Innentől lehetőséged van másolni/beilleszteni a gyárad + bizonyos részeit! Jelölj ki egy területet (Nyomd a CTRL-t, és húzd + az egeredet), majd nyomj 'Ctrl+C'-t a másoláshoz.

A + beillesztés nincs ingyen; tervrajz + alakzatokat kell gyártani hozzá! (Amiket az imént + szállítottál le). no_reward: - title: Next level - desc: "This level gave you no reward, but the next one will!

PS: Better - don't destroy your existing factory - You need all - those shapes later again to unlock upgrades!" + title: Következő Szint + desc: "Ez a szint most nem ad jutalmat, a következő viszont fog!

Tipp: + Ne rombold le a meglévő gyáraidat - Az összes + eddigi alakzatra szükséged lesz majd a fejlesztések + feloldásához!" no_reward_freeplay: - title: Next level - desc: Congratulations! By the way, more content is planned for the standalone! + title: Következő Szint + desc: Gratulálok! Hamarosan további funkciókkal bővül a Teljes Verzió! reward_balancer: - title: Balancer - desc: The multifunctional balancer has been unlocked - It can - be used to build bigger factories by splitting and merging - items onto multiple belts! + title: Kiegyenlítő + desc: Feloldottad a többfunkciós Kiegyenlítőt - Nagyobb, + hatékonyabb gyárat építhetsz bele oly módon, hogy elosztasz + vagy összevonsz elemeket több futószalagra! reward_merger: - title: Compact Merger - desc: You have unlocked a merger variant of the - balancer - It accepts two inputs and merges them - into one belt! + title: Kompakt Összevonó + desc: Feloldottad a Kiegyenlítő egy új variánsát, az + Összevonót, amely két bemenetből csinál egy + Futószalagot! reward_belt_reader: - title: Belt reader - desc: You have now unlocked the belt reader! It allows you to - measure the throughput of a belt.

And wait until you unlock - wires - then it gets really useful! + title: Futószalag-mérő + desc: Feloldottad a Futószalag-mérőt! Segítségével megmérheted + a Futószalag átmenő teljesítményét.

Várj csak, amíg feloldod + a Vezetékeket - utána lesz csak igazán hasznos! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: Forgató (180°) + desc: Feloldottad a 180 fokos Forgatót, amellyel megfordíthatsz + egy alakzatot 180 fokban (Meglepő, mi? :D) reward_display: - title: Display - desc: "You have unlocked the Display - Connect a signal on the - wires layer to visualize it!

PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + title: Kijelző + desc: "Feloldottad a Kijelzőt - Csatlakoztass egy jelet a + Vezeték rétegen, annak megmutatásához!

Tipp: Észrevetted, + hogy a Futószalag-olvasó és a Raktár megmutatják a legutóbb + beolvasott elemet? A Kijelző segítségével megmutathatod ezt az + elemet a normál rétegen!" reward_constant_signal: - title: Constant Signal - desc: You unlocked the constant signal building on the wires - layer! This is useful to connect it to item filters - for example.

The constant signal can emit a - shape, color or - boolean (1 / 0). + title: Állandó Jel + desc: Feloldottad az Állandó Jel épületet a Vezeték rétegen! + Hasznos lehet például Szűrőkhöz + csatlakoztatni.

Az Állandó Jel értéke lehet egy + alakzat, szín illetve + logikai 1 vagy 0. reward_logic_gates: - title: Logic Gates - desc: You unlocked logic gates! You don't have to be excited - about this, but it's actually super cool!

With those gates - you can now compute AND, OR, XOR and NOT operations.

As a - bonus on top I also just gave you a transistor! + title: Logikai Kapuk + desc: Feloldottad a logikai kapukat! Nem baj, ha nem tudod, mik + ezek, de amúgy nagyon hasznosak!

Logikai kapuk segítségével + tudsz ÉS, VAGY, Kizáró VAGY és TAGADÁS műveleteket számolni.

+ Ráadásként kaptál egy Tranzisztort is! reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - simulate the processing of shapes!

You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:

- - Build an automated machine to create any possible - shape requested by the HUB (I recommend to try it!).

- Build - something cool with wires.

- Continue to play - regulary.

Whatever you choose, remember to have fun! + title: Virtuális Eszközök + desc: Feloldottál egy csomó épületet, amelyek segítségével szimulálhatod + az alakzatok gyártását!

A Vágót, a Forgatót, az + Összevonót és a többi épületet a Vezeték rétegen tudod szimulálni! + Ezzel háromféle módon folytathatod a játékot:

- Építs egy + automatizált gyárat, amely bármely, a Központ által + kért alakzatot el tud készíteni (Javaslom, hogy próbáld ki!). +

- Építs valami nagyszerűt a Vezetékek segítségével.

+ - Folytasd a játékot, ahogy eddig.

Bárhogy is választasz, + érezd jól Magad! reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" + title: Vezetékek & Négyszeres Festő + desc: "Feloldottad a Vezeték Réteget: Ez egy új réteg a normál + játéktér felett, amely egy csomó új játékmechanikát kínál!

+ Kezdésképpen feloldottad a Négyszeres Festőt - Kösd + be a Vezeték rétegen az épület azon részeit, amiket le szeretnél + festeni!

A Vezeték rétegre való váltáshoz nyomj + E-t.

Tipp: Engedélyezd a + tippeket a Beállítások menüben, hogy bekapcsold a + Vezetékekhez tartozó oktatást!" reward_filter: - title: Item Filter - desc: You unlocked the Item Filter! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.

You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + title: Szűrő + desc: Feloldottad a Szűrőt! A bemeneten érkező alakzatokat a + felső kimenetre küldi, ha azok megegyeznek a Vezeték rétegen + beállított jellel, és a jobb oldali kimenetre, ha nem.

+ Vezérelhető logikai (1 / 0) jellel is, ami be- és kikapcsolja az + épületet. reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: Demó Vége + desc: Elérted a Demó verzió végét! + reward_freeplay: + title: Végtelen Játékmód + desc: Megcsináltad! Feloldottad a Végtelen Játékmódot! Innentől kezdve az alakzatok véleetlenszerűen generálódnak!

A Központ innentől nem darabszámot kér, hanem átmenő teljesítményt, így ajánlom, hogy építs egy olyan gépezetet, amely automatikusan eljuttatja a Központnak a kívánt alakzatot!

A Központ kiküldi a kívánt alakzatot a Vezeték rétegre, szóval annyi a dolgot, hogy megvizsgáld az Alakzatvizsgálóval és ez alapján beállítsd a gyáradat. settings: title: Beállítások categories: - general: General - userInterface: User Interface - advanced: Advanced - performance: Performance + general: Általános + userInterface: Felhasználói Felület + advanced: Haladó + performance: Teljesítmény versionBadges: - dev: Development - staging: Staging - prod: Production - buildDate: Built + dev: Fejlesztői + staging: Teszt + prod: Stabil + buildDate: Dátum labels: uiScale: - title: Interfész nagyság - description: Changes the size of the user interface. The interface will still - scale based on your device resolution, but this setting controls - the amount of scale. + title: Felület elemeinek átméretezése + description: A felhasználói felületen található elemek mérete változik a + képernyőfelbontásoddal, ez a beállítás ennek a felméretezésnek a + mértékét állítja. scales: - super_small: Szuper kicsi + super_small: Apró small: Kicsi - regular: Közepes + regular: Normál large: Nagy huge: Hatalmas + autosaveInterval: + title: Automatikus mentés gyakorisága + description: Az automatikus játékmentés gyakorisága, vagy annak kikapcsolása + intervals: + one_minute: 1 Perc + two_minutes: 2 Perc + five_minutes: 5 Perc + ten_minutes: 10 Perc + twenty_minutes: 20 Perc + disabled: Kikapcsolva scrollWheelSensitivity: - title: Zoom sensitivity - description: Changes how sensitive the zoom is (Either mouse wheel or trackpad). + title: Nagyítás érzékenysége + description: A nagyítás/kicsinyítés mértékét állítja (Egérgörgő vagy touchpad). sensitivity: - super_slow: Szuper lassú + super_slow: Szuperlassú slow: Lassú - regular: Közepes + regular: Normál fast: Gyors - super_fast: Szuper gyors + super_fast: Szupergyors + movementSpeed: + title: Kameramozgás + description: A kamera mozgásának gyorsaságát állítja, ha a kurzorbillentyűket + használod, vagy a képernyő szélére húzod az egeret. + speeds: + super_slow: Szuperlassú + slow: Lassú + regular: Normál + fast: Gyors + super_fast: Szupergyors + extremely_fast: Extrém Gyors language: title: Nyelv - description: Change the language. All translations are user contributed and - might be incomplete! + description: A játék megjelenítési nyelve. A fordításokat a rajongók végzik, + ezért lehet, hogy nem teljesek. + enableColorBlindHelper: + title: Színtévesztő Mód + description: Színtévesztő vagy színvak felhasználók számára is játszhatóvá teszi + a játékot. fullscreen: - title: Fullscreen - description: It is recommended to play the game in fullscreen to get the best - experience. Only available in the standalone. + title: Teljes képernyő + description: A legjobb élmény érdekében ajánlott a teljes képernyős módot + bekapcsolni. Csak az Önálló Verzióban elérhető. soundsMuted: title: Hangok Némítása - description: If enabled, mutes all sound effects. + description: Kkapcsol minden hangeffektet a játékban. musicMuted: title: Zene Némítása - description: If enabled, mutes all music. + description: Kikapcsolja a játék alatt futó zenét. + soundVolume: + title: Hangok Hangereje + description: A játék hangeffektjeinek az erősségét állítja. + musicVolume: + title: Zene Hangereje + description: A játék zenéjének a hangerejét állítja. theme: - title: Game theme - description: Choose the game theme (light / dark). + title: Téma + description: Sötét és Világos mód közötti váltás. themes: dark: Sötét light: Világos refreshRate: - title: Simulation Target - description: If you have a 144hz monitor, change the refresh rate here so the - game will properly simulate at higher refresh rates. This might - actually decrease the FPS if your computer is too slow. + title: Tick / másodperc + description: Megszabja, hogy hány Tick történik másodpercenként. + Általánosságban, minél magasabb a Tick érték, annál pontosabb az + egérmozgás és a lehelyezés, viszont annál gyengébb a + teljesítmény. Alacsonyabb Tick érték esetén a Futószalagok + áteresztőképessége nem mindig számolódik pontosan. alwaysMultiplace: - title: Multiplace - description: If enabled, all buildings will stay selected after placement until - you cancel it. This is equivalent to holding SHIFT permanently. + title: Folyamatos Lehelyezés + description: Ha be van kapcsolva, akkor az épület lehelyezés után kiválasztva + marad, megszakításig. Ez egyenlő azzal, mintha nyomnád a + SHIFT-et lehelyezéskor. offerHints: - title: Hints & Tutorials - description: Whether to offer hints and tutorials while playing. Also hides - certain UI elements onto a given level to make it easier to get - into the game. - movementSpeed: - title: Movement speed - description: Changes how fast the view moves when using the keyboard. - speeds: - super_slow: Super slow - slow: Slow - regular: Regular - fast: Fast - super_fast: Super Fast - extremely_fast: Extremely Fast + title: Tippek és Oktatás + description: Tippek és oktatóanyagok bekapcsolása játék közben. Elrejt bizonyos + haladó felhasználói felületi elemeket, hogy könnyítse a játék + megtanulását. enableTunnelSmartplace: - title: Smart Tunnels - description: When enabled, placing tunnels will automatically remove unnecessary - belts. This also enables to drag tunnels and excess tunnels will - get removed. + title: Intelligens Alagutak + description: Ha engedélyezve van, akkor Alagutak lehelyezésekor az útban lévő + Futószalagok automatikusan törlődnek. Továbbá lehetővé teszi, + hogy az Alagutakat folyamatos húzással helyezd le. vignette: - title: Vignette - description: Enables the vignette which darkens the screen corners and makes - text easier to read. - autosaveInterval: - title: Autosave Interval - description: Controls how often the game saves automatically. You can also - disable it entirely here. - intervals: - one_minute: 1 Minute - two_minutes: 2 Minutes - five_minutes: 5 Minutes - ten_minutes: 10 Minutes - twenty_minutes: 20 Minutes - disabled: Disabled - compactBuildingInfo: - title: Compact Building Infos - description: Shortens info boxes for buildings by only showing their ratios. - Otherwise a description and image is shown. - disableCutDeleteWarnings: - title: Disable Cut/Delete Warnings - description: Disable the warning dialogs brought up when cutting/deleting more - than 100 entities. - enableColorBlindHelper: - title: Color Blind Mode - description: Enables various tools which allow to play the game if you are color - blind. + title: Sarkok Elsötétítése + description: Elsötétíti a képernyő sarkait, így könnyebben olvashatók az ott + megjelenő szövegek. rotationByBuilding: - title: Rotation by building type - description: Each building type remembers the rotation you last set it to - individually. This may be more comfortable if you frequently - switch between placing different building types. - soundVolume: - title: Sound Volume - description: Set the volume for sound effects - musicVolume: - title: Music Volume - description: Set the volume for music + title: Épületek Irányának Megjegyzése + description: Minden épület megjegyzi a legutóbbi forgásirányát, amire + beállítottad. Ez nagyon hasznos lehet, ha gyakran váltogatsz + épülettípusokat, amiknek a legutóbb használt irányba kell + állniuk. + compactBuildingInfo: + title: Rövidített Épület Infók + description: A kiválasztott épületnek csak a termelési arányát mutatja, szöveges + leírást és képet nem. + disableCutDeleteWarnings: + title: Törlés/Kivágás Figyelmeztetések Kikapcsolása + description: Kikapcsolja a megerősítő ablakokat, ha 100-nál több épületet + szeretnél egyszerre törölni vagy kivágni. lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: Alacsony Minőségű Erőforrás Ikonok + description: Leegyszerűsíti az erőforrások kirajzolását a térképen bezoomolt + állapotban a teljesítmény javítása érdekében. Érdemes + kipróbálni! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: Rács kikapcsolása + description: A rácsvonalak kikapcsolásával javítható a teljesítmény, és + letisztultabbá tehető a játék felülete! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: Kijelölés Megszüntetése Jobbklikkre + description: Megszünteti a kijelölést az egér jobb gombra kattintva. Ha ki van + kapcsolva, akkor úgy tudsz épületeket törölni, ha építési módban + jobbklikkelsz. lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: Alacsony Minőségű Textúrák (Ronda) + description: Alacsony minőségű textúrák használata a teljesítmény javítása + érdekében. Vigyázat, a játék elég ronda lesz tőle! displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: Térképdarabok Határainak Mutatása + description: A játék 16×16-os térképdarabokra van osztva. Ennek a funkciónak a + bekapcsolásával láthatóvá válnak ezek a határok. pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: Bánya Automatikus Kiválasztása + description: Ha egy erőforráson használod a Pipettát, akkor automatikusan a + kiválasztja a Bányát leépítéshez. simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: Egyszerűsített Futószalagok (Ronda) + description: Nem mutatja a Futószalagokon található elemeket, csak ha nagyon + közel mész, hogy javítsa a teljesítményt. Erősen ellenjavallott, + hacsak nincs szükséged minden utolsó csepp teljesítményre. enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: Kameramozgatás a Képernyő Szélén + description: Lehetővé teszi a kamera mozgatását, ha a képernyő szélére viszed az + egeret. A mozgatás sebessége a fenti Kameramozgás beállítással + állítható. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Nagyítás a Kurzor Felé + description: Ha be van kapcsolva, a Nagyítás és Kicsinyítés középpontja a kurzor + aktuális helyzete lesz. Kikapcsolt állapotban a képernyő közepe. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Erőforrások Mérete a Térképen + description: Kizoomolt állapotban a térképen megjelenő erőforrások (alakzatok és + színek) méretét állítja. rangeSliderPercentage: % keybindings: - title: Keybindings - hint: "Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different - placement options." - resetKeybindings: Reset Keyinbindings + title: Gyorsbillentyűk + hint: "Tipp: Használd ki a CTRL, SHIFT és ALT billentyűket, amelyek különféle + lehelyezési opciókat tesznek lehetővé." + resetKeybindings: Visszaállítás categoryLabels: - general: Application - ingame: Game - navigation: Navigating - placement: Placement - massSelect: Mass Select - buildings: Building Shortcuts - placementModifiers: Placement Modifiers + general: Általános + ingame: Játék + navigation: Kameramozgás + placement: Lehelyezés + massSelect: Több Kijelölése + buildings: Épület Gyorsgombok + placementModifiers: Lehelyezés Módosítók mappings: - confirm: Confirm + confirm: Elfogad back: Vissza - mapMoveUp: Move Up - mapMoveRight: Move Right - mapMoveDown: Move Down - mapMoveLeft: Move Left - centerMap: Center Map - mapZoomIn: Zoom in - mapZoomOut: Zoom out - createMarker: Create Marker + mapMoveUp: Fel + mapMoveRight: Jobbra + mapMoveDown: Le + mapMoveLeft: Balra + mapMoveFaster: Gyorsabb mozgás + centerMap: Ugrás a térkép közepére + mapZoomIn: Nagyítás + mapZoomOut: Kicsinytés + createMarker: Jelölő létrehozása menuOpenShop: Fejlesztések - menuOpenStats: Statisztikák - toggleHud: Toggle HUD - toggleFPSInfo: Toggle FPS and Debug Info + menuOpenStats: Statisztika + menuClose: Menü bezárása + toggleHud: Felület ki-/bekapcsolása + toggleFPSInfo: FPS és Debug információ megjelenítése + switchLayers: Váltás a rétegek között + exportScreenshot: Képernyőkép készítése a teljes bázisról belt: Futószalag + balancer: Kiegyenlítő underground_belt: Alagút - miner: Bányász + miner: Bánya cutter: Vágó rotater: Forgató stacker: Egyesítő mixer: Színkeverő painter: Festő trash: Kuka - rotateWhilePlacing: Rotate - rotateInverseModifier: "Modifier: Rotate CCW instead" - cycleBuildingVariants: Cycle Variants - confirmMassDelete: Confirm Mass Delete - cycleBuildings: Cycle Buildings - massSelectStart: Hold and drag to start - massSelectSelectMultiple: Select multiple areas - massSelectCopy: Copy area - placementDisableAutoOrientation: Disable automatic orientation - placeMultiple: Stay in placement mode - placeInverse: Invert automatic belt orientation - pasteLastBlueprint: Paste last blueprint - massSelectCut: Cut area - exportScreenshot: Export whole Base as Image - mapMoveFaster: Move Faster - lockBeltDirection: Enable belt planner - switchDirectionLockSide: "Planner: Switch side" - pipette: Pipette - menuClose: Close Menu - switchLayers: Switch layers - wire: Energy Wire - balancer: Balancer - storage: Storage - constant_signal: Constant Signal + storage: Raktár + wire: Vezeték + constant_signal: Állandó jel logic_gate: Logic Gate - lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing - display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare + lever: Kapcsoló + filter: Szűrő + wire_tunnel: Vezeték Kereszteződés + display: Kijelző + reader: Futószalag-olvasó + virtual_processor: Virtuális Vágó + transistor: Tranzisztor + analyzer: Alakzatvizsgáló + comparator: Összehasonlító item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + pipette: Pipetta + rotateWhilePlacing: Forgatás + rotateInverseModifier: "Módosító: Forgass ellenkező irányba" + cycleBuildingVariants: Váltás a változatok között + confirmMassDelete: Terület törlése + pasteLastBlueprint: Legutóbbi tervrajz beillesztése + cycleBuildings: Váltás az épületek között + lockBeltDirection: Futószalag iránykeresés engedélyezése + switchDirectionLockSide: "Iránykereső: Oldal váltása" + copyWireValue: "Vezetékek: Kurzor alatti érték másolása" + massSelectStart: Nyomd le és húzd a kezdéshez + massSelectSelectMultiple: Több terület kiválasztása + massSelectCopy: Terület másolása + massSelectCut: Terület kivágása + placementDisableAutoOrientation: Automatikus irány kikapcsolása + placeMultiple: Több lehelyezése + placeInverse: Futószalag irányának megfordítása about: - title: A játékról + title: A Játékról body: >- - This game is open source and developed by Tobias Springer - (this is me).

+ A játékot Tobias + Springer készíti, és nyílt forráskódú.

- If you want to contribute, check out shapez.io on github.

+ Ha szeretnél hozzájárulni, nézz fel a shapez.io GitHub oldalára.

- This game wouldn't have been possible without the great Discord community around my games - You should really join the Discord server!

+ Ez a játék nem jöhetett volna létre a játékaimat körülvevő nagyszerű Discord közösség nélkül - Csatlakozz Te is a Discord szerverünkhöz!

- The soundtrack was made by Peppsen - He's awesome.

+ A játék zenéjét Peppsen készítette - Ő egy remek srác.

- Finally, huge thanks to my best friend Niklas - Without our factorio sessions this game would never have existed. + Végezetül, hatalmas köszönet a legjobb barátomnak, Niklasnak - A közös Factorio-s játékaink nélkül ez a játék nem jöhetett volna létre. changelog: - title: Changelog + title: Változások demo: features: restoringGames: Mentések visszaállítása importingGames: Mentések importálása - oneGameLimit: Egy mentésre van limitálva - customizeKeybindings: Customizing Keybindings - exportingBase: Exporting whole Base as Image - settingNotAvailable: Nem elérhető a demóban. + oneGameLimit: Egyetlen játékmentés elérhető + customizeKeybindings: Gyorsbillentyűk beállítása + exportingBase: Képernyőkép készítése a teljes bázisról + settingNotAvailable: Nem elérhető a Demó Verzióban. tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing R. - - Holding CTRL allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use T to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with T - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding SHIFT will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding CTRL allows to place multiple buildings. - - You can hold ALT to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use CTRL + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - A Központ mindenféle bemenetet elfogad, nemcsak az éppen aktuálisan kívánt + alakzatot! + - Igyekezz moduláris gyárakat építeni - megéri! + - Igyekezz kompakt gyárakat építeni - megéri! + - Ne építs közvetlenül a Központ közelébe, mert óriási káoszt okozhat! + - A szalagtervező irányát az R billentyűvel állíthatod. + - Az arányok mindaddig állandók maradnak, amíg a Fejlesztéseid azonos + szinten vannak. + - A soros végrehajtás hatékonyabb, mint a párhuzamos. + - A T megnyomásával váltogathatsz a különböző épülettípusok között. + - A szimmetria kulcsfontosságú! + - A hatékonyság kulcsfontosságú! + - A Festőnek van egy tükrözött változata is, amit a T-vel hozhatsz elő. + - Az épületek megfelelő arányban való építésével maximalizálható a hatékonyság. + - A legmagasabb szinten 5 Bánya teljesen megtölt egy Futószalagot. + - Ne feledkezz meg az Alagutakról! + - A SHIFT lenyomva tartásával bekapcsolod a Futószalagok automatikus + iránykeresését, amellyel hosszú Futószalagokat helyezhetsz le könnyedén. + - A Vágók mindig függőleges irányban vágnak, mindegy, milyen irányban állnak. + - A fehér szín előállításához keverd össze mindhárom színt. + - A SHIFT lenyomva tartásával több épületet is lehelyezhetsz egymás után. + - Az ALT lenyomva tartásával megfordíthatod a lehelyezendú Futószalag irányát. + - A hatékonyság kulcsfontosságú! + - A Központtól távolabb eső bányászható alakzatok jóval összetettebbek. + - A gépeknek korlátozott sebességük van, csinálj belőlük többet a maximális + hatékonyságért. + - Használj Elosztókat a maximális hatékonyságért. + - A rendszerezettség fontos. Igyekezz a lehető legkevesebbszer keresztezni + Futószalagokat. + - Tervezz előre, mert óriási káosz lehet a vége! + - Ne rombold le a régi gyáraidat! Szükséged lesz rájuk a Fejlesztésekhez. + - Próbáld megdönteni a 20. Szintet, mielőtt segítséget kérnél! + - Ne bonyolítsd túl a dolgokat; csináld egyszerűen és sokra viheted. + - Bizonyos gyárakat újra kell használnod a játék során. Tervezd + újrahasználhatóra a gyáraidat. + - Bizonyos alakzatokat megtalálsz a pályán elszórva, így nem kell őket + összeraknod. + - Teljes szélmalom alakzatokat nem fogsz találni a pályán, csak + részlegeseket. + - Színezd be az alakzatodat vágás előtt a maximális hatékonyság érdekében. + - Ha modulárisan építkezel, akkor nem számít a hely. + - Csinálj egy különálló Tervrajz-gyárat. A modulokhoz később hasznos lesz. + - A CTRL + balklikkel jelölhetsz ki egy területet a pályán. + - Ha közel építesz a Központhoz, útban lesz a következő projektjeidnek. + - A Fejlesztések lapon a gombostű ikon megnyomásával kitűzheted a képernyőre + az aktuális alakzatot. + - Keverd össze mind a három alapszínt, hogy Fehéret csinálj! + - A pálya végtelen méretű; ne nyomorgasd sösze a gyáraidat, terjeszkedj! + - Próbáld ki a Factorio-t is! Az a kedvenc játékom. + - A Negyedelő az alakzat jobb felső negyedétől kezd vágni, az óramutató + járásával megegyező irányban! + - A játékmentéseidet a Főmenüben tudod lementeni! + - A játék nagyon sok hasznos gyorsbillentyűt tartalmaz! Nézd meg őket a + Beállítások menüben. + - A játék nagyon sok beállítást tartalmaz, mindenképpen nézd meg őket! + - A képernyőn lévő Irányítű a Központ irányát mutatja! + - A Futószalagok kiürítéséhez vágd ki a területet és illeszd be újra + ugyanarra a helyre. + - Az F4 megnyomásával láthatod az FPS-edet és a Tick/mp értéket. + - Nyomd meg az F4-et kétszer, hogy arra a csempére ugorj, ahol az egered van. From b6e6970e0edb4749c52004bba8f24057e3badcfe Mon Sep 17 00:00:00 2001 From: LeopoldTal Date: Sat, 31 Oct 2020 12:21:39 +0100 Subject: [PATCH 09/15] use electron builtin to open links (#897) When opening a link on standalone, use [shell.openExternal](https://github.com/electron/electron/blob/master/docs/api/shell.md#shellopenexternalurl-options). This works cross-platform, and looks less suspicious to antivirus than explicitly shelling out. --- electron/index.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/electron/index.js b/electron/index.js index 7b9377df..91ab8e9e 100644 --- a/electron/index.js +++ b/electron/index.js @@ -4,7 +4,7 @@ const { app, BrowserWindow, Menu, MenuItem, session } = require("electron"); const path = require("path"); const url = require("url"); const childProcess = require("child_process"); -const { ipcMain } = require("electron"); +const { ipcMain, shell } = require("electron"); const fs = require("fs"); const isDev = process.argv.indexOf("--dev") >= 0; const isLocal = process.argv.indexOf("--local") >= 0; @@ -67,11 +67,7 @@ function createWindow() { win.webContents.on("new-window", (event, pth) => { event.preventDefault(); - if (process.platform == "win32") { - childProcess.execSync("start " + pth); - } else if (process.platform == "linux") { - childProcess.execSync("xdg-open " + pth); - } + shell.openExternal(pth); }); win.on("closed", () => { From 400e3e0b08ed8a1f55150e3af72f4430282528d6 Mon Sep 17 00:00:00 2001 From: LeopoldTal Date: Sat, 31 Oct 2020 12:22:23 +0100 Subject: [PATCH 10/15] match tutorials to the correct painter variants (#901) --- .../building_tutorials/painter-mirrored.png | Bin 45606 -> 46254 bytes res/ui/building_tutorials/painter.png | Bin 46254 -> 45606 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/res/ui/building_tutorials/painter-mirrored.png b/res/ui/building_tutorials/painter-mirrored.png index 63cc6683232906c7485fe93e68ce337c698de1ee..bb1147d5da167f98e86cd1a363c0fe5e2bbb5d95 100644 GIT binary patch literal 46254 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 z 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 literal 45606 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 MxbZ)wFsJbU0pcEAZ~y=R diff --git a/res/ui/building_tutorials/painter.png b/res/ui/building_tutorials/painter.png index bb1147d5da167f98e86cd1a363c0fe5e2bbb5d95..63cc6683232906c7485fe93e68ce337c698de1ee 100644 GIT binary patch literal 45606 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 MxbZ)wFsJbU0pcEAZ~y=R literal 46254 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 z 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 From ff37013074eb9a7a21c8be59984690241d63f908 Mon Sep 17 00:00:00 2001 From: CEbbinghaus <31423391+CEbbinghaus@users.noreply.github.com> Date: Sat, 31 Oct 2020 22:23:13 +1100 Subject: [PATCH 11/15] Added Flooring the Required amount (#904) --- src/js/game/hub_goals.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/js/game/hub_goals.js b/src/js/game/hub_goals.js index c9d9494f..9a945128 100644 --- a/src/js/game/hub_goals.js +++ b/src/js/game/hub_goals.js @@ -238,7 +238,8 @@ export class HubGoals extends BasicSerializableObject { return; } - const required = Math.min(200, 4 + (this.level - 27) * 0.25); + //Floor Required amount to remove confusion + const required = Math.min(200, Math.floor(4 + (this.level - 27) * 0.25)); this.currentGoal = { definition: this.computeFreeplayShape(this.level), required, From 48c3db4a28618b81316476c8d7b7de0434914fca Mon Sep 17 00:00:00 2001 From: Katie Chan <72162917+KatieChan-IOM@users.noreply.github.com> Date: Sat, 31 Oct 2020 11:25:47 +0000 Subject: [PATCH 12/15] Update base-zh-TW.yaml (#921) --- translations/base-zh-TW.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 1de7b8ad..06ebdd9b 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -5,7 +5,7 @@ steamPage: 你喜歡自動化生產的遊戲類型嗎?那你來對地方了! Shapez.io 是一款建造工廠、自動化生產與組合圖形的休閒遊戲。 每當玩家不斷晉級,形狀會越來越複雜,你的工廠將在一個無邊際的地圖上不斷擴展。 - 除此之外,你也必須不斷累加你的生產量來達到升級的需求,達成目標的方法無他,只有不段地擴張! + 除此之外,你也必須不斷累加你的生產量來達到升級的需求,達成目標的方法無他,只有不斷地擴張! 遊戲初期只需要組合特定圖形,接著玩家會被要求幫圖形上色,有時甚至需要先混色才能達到目標。 玩家可以在 Steam 購買本游戲的單機版,如果還在猶豫,也可以到 shapez.io 先免費試玩再決定! title_advantages: 單機版優點 From 6b0df96179147f864214c29e2898eb2640b75299 Mon Sep 17 00:00:00 2001 From: MineJulRBX <34965273+MineJulRBX@users.noreply.github.com> Date: Sat, 31 Oct 2020 12:28:33 +0100 Subject: [PATCH 13/15] Update base-da.yaml (#926) --- translations/base-da.yaml | 76 +++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/translations/base-da.yaml b/translations/base-da.yaml index 68976184..52af9b54 100644 --- a/translations/base-da.yaml +++ b/translations/base-da.yaml @@ -4,22 +4,22 @@ steamPage: mere komplicerede. discordLinkShort: Official Discord intro: >- - Shapez.io er et afslapet spil hvor du skal bygge fabrikker for at + Shapez.io er et afslappet spil hvor du skal bygge fabrikker for at automatisere productionen af geometriske figurer. Jo længer du når, jo mere kompliseret bliver figurene, og du bliver nød til at spræde dig ud på den grænseløse spilleflade. - og hvis det ikke var nok, så skal du også producere eksponentielt flere figurer for at måde behovene spillet giver dig - det eneste der virker er skalering! + og hvis det ikke var nok, så skal du også producere eksponentielt flere figurer for at møde behovene spillet giver dig - det eneste der virker er skalering! - Mens du i starten kun laver former, skal du senere farve lægge dem - for at gøre dette skal du udvinde og blande farver! + Mens du i starten kun laver former, skal du senere farvelægge dem - for at gøre dette skal du udvinde og blande farver! At købe spllet på Steam, giver dig adgang til det fulde spil, men du kan også spille en demo version på shapez.io og vælge senere! title_advantages: Steam version Fordele advantages: - 12 Nye Niveauer for i alt 26 niveauer - - 18 Nye Byginger for en fuldt autmaticeret fabrik! + - 18 Nye Bygninger for en fuldt autmaticeret fabrik! - 20 Upgraderings Niveauer for mange timers sjov! - - Wires Update for an entirely new dimension! + - Ledninger Opdatering for en helt ny dimension! - Dark Mode! - Unlimited Savegames - Uendelige Markører @@ -32,7 +32,7 @@ steamPage: - Minimap - Mods - Sandbox mode - - ... and a lot more! + - ... og meget mere! title_open_source: This game is open source! title_links: Links links: @@ -40,12 +40,12 @@ steamPage: roadmap: Roadmap subreddit: Subreddit source_code: Source code (GitHub) - translate: Help translate + translate: Hjælp med oversættelse text_open_source: >- - Anybody can contribute, I'm actively involved in the community and - attempt to review all suggestions and take feedback into consideration - where possible. - + Hvem som helst kan bidrage, jeg er aktivt involveret i fælleskabet og + forsøger at gennemgå alle ideer og tager feedback i overvejelse + hvor muligt. + Be sure to check out my trello board for the full roadmap! global: loading: Indlæser @@ -259,7 +259,7 @@ ingame: notifications: newUpgrade: En ny opgradering er tilgængelig! gameSaved: Dit spil er gemt. - freeplayLevelComplete: Level has been completed! + freeplayLevelComplete: Level er blevet fuldført! shop: title: Opgraderinger buttonUnlock: Opgrader @@ -282,7 +282,7 @@ ingame: shapesDisplayUnits: second: / s minute: / m - hour: / h + hour: / t settingsMenu: playtime: Spilletid buildingsPlaced: Bygninger @@ -348,20 +348,20 @@ ingame: watermark: title: Demo version desc: Click here to see the Steam version advantages! - get_on_steam: Get on steam + get_on_steam: Få på steam standaloneAdvantages: - title: Get the full version! - no_thanks: No, thanks! + title: Få den fulde version! + no_thanks: Nej tak! points: levels: - title: 12 New Levels - desc: For a total of 26 levels! + title: 12 Nye Levels + desc: For et total af 26 levels! buildings: - title: 18 New Buildings + title: 18 Nye Bygninger desc: Fully automate your factory! savegames: - title: ∞ Savegames - desc: As many as your heart desires! + title: ∞ Gemte spil + desc: Så mange dit hjerte begær! upgrades: title: 20 Upgrade Tiers desc: This demo version has only 5! @@ -369,14 +369,14 @@ ingame: title: ∞ Markers desc: Never get lost in your factory! wires: - title: Wires - desc: An entirely new dimension! + title: Ledninger + desc: En helt ny dimension! darkmode: title: Dark Mode desc: Stop hurting your eyes! support: - title: Support me - desc: I develop it in my spare time! + title: Støt mig + desc: Jeg arbejder på det i min fritid! shopUpgrades: belt: name: Bælter, Fordelere & Tuneller @@ -434,7 +434,7 @@ buildings: description: Drejer figurer 90 grader mod uret. rotate180: name: Rotate (180) - description: Rotates shapes by 180 degrees. + description: Drejer figurer 180 grader med uret. stacker: default: name: Stabler @@ -468,25 +468,25 @@ buildings: name: Energiledning description: Lader dig transportere energi. second: - name: Wire - description: Transfers signals, which can be items, colors or booleans (1 / 0). - Different colored wires do not connect. + name: Ledning + description: Overfør signaler, som kan være elementer, farver eller boolsk variabler (1 / 0). + Forskellig farvet ledninger kan ikke forbindes. balancer: default: name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + description: Multifunktionelt - Fordeler alle indgange jævnt til alle udgange. merger: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Forener (kompakt) + description: Forener to transportbånd til en. merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: Forener (kompakt) + description: Forener to transportbånd til en. splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Splitter (kompakt) + description: Splitter et transportbånd til to. splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: Splitter (kompakt) + description: Splitter et transportbånd til to. storage: default: name: Storage From 607650dae36103f259871c5d0de512580ac96776 Mon Sep 17 00:00:00 2001 From: Anykan Date: Sat, 31 Oct 2020 12:28:59 +0100 Subject: [PATCH 14/15] Update base-de.yaml (#931) N-Gate description is wrong. it makes from a 1 a zero and from a zero a 1 --- translations/base-de.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/translations/base-de.yaml b/translations/base-de.yaml index 0c4fa30f..ee3bc70f 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -521,8 +521,7 @@ buildings: sind. not: name: NICHT-Gatter - description: Gibt eine "1" aus, wenn beide Eingänge nicht wahr (kein Signal oder - "0") sind. + description: Kehrt den Wert um. Macht aus einer "1" eine "0" und eine "0" aus einer "1". xor: name: XODER-Gatter description: Gibt eine "1" aus, wenn genau einer der Eingänge wahr (Form, Farbe From d33a72202a2b9788f93908c6a8acf96f30053622 Mon Sep 17 00:00:00 2001 From: tobspr Date: Sat, 31 Oct 2020 12:41:18 +0100 Subject: [PATCH 15/15] Update changelog and update translation regarding 20 upgrade tiers, closes #907 --- src/js/changelog.js | 5 ++++- translations/base-ar.yaml | 4 ++-- translations/base-cat.yaml | 2 +- translations/base-cz.yaml | 5 +++-- translations/base-da.yaml | 8 ++++---- translations/base-de.yaml | 2 +- translations/base-el.yaml | 4 ++-- translations/base-en.yaml | 4 ++-- translations/base-fi.yaml | 2 +- translations/base-fr.yaml | 2 +- translations/base-hr.yaml | 4 ++-- translations/base-hu.yaml | 2 +- translations/base-ind.yaml | 2 +- translations/base-it.yaml | 2 +- translations/base-lt.yaml | 4 ++-- translations/base-nl.yaml | 2 +- translations/base-no.yaml | 2 +- translations/base-pl.yaml | 5 +++-- translations/base-pt-BR.yaml | 2 +- translations/base-pt-PT.yaml | 2 +- translations/base-ro.yaml | 2 +- translations/base-ru.yaml | 2 +- translations/base-sl.yaml | 4 ++-- translations/base-sr.yaml | 4 ++-- translations/base-sv.yaml | 5 +++-- translations/base-tr.yaml | 11 +++++++---- translations/base-uk.yaml | 8 +++++--- 27 files changed, 56 insertions(+), 45 deletions(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index 3a93bb96..fcafbe2b 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -7,7 +7,10 @@ export const CHANGELOG = [ "Fix reward notification being too long sometimes (by LeopoldTal)", "Use locale decimal separator on belt reader display (by LeopoldTal)", "Vastly improved performance when saving games (by LeopoldTal)", - "Updated translations", + "Prevent some antivirus programs blocking the opening of external links (by LeopoldTal)", + "Match tutorials to the correct painter variants (by LeopoldTal)", + "Prevent throughput goals containing fractional numbers (by CEbbinghaus)", + "Updated translations and added Hungarian", ], }, { diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 55327fdf..305c9b88 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -16,7 +16,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -359,7 +359,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-cat.yaml b/translations/base-cat.yaml index 85e03e8f..4d4954b3 100644 --- a/translations/base-cat.yaml +++ b/translations/base-cat.yaml @@ -369,7 +369,7 @@ ingame: title: Guarda ∞ partides desc: Tantes com vulguis! upgrades: - title: 20 Nivells de millora + title: ∞ Nivells de millora desc: La versió demo només en té 5! markers: title: ∞ Marcadors diff --git a/translations/base-cz.yaml b/translations/base-cz.yaml index add0e440..2f2909f0 100644 --- a/translations/base-cz.yaml +++ b/translations/base-cz.yaml @@ -303,7 +303,8 @@ ingame: 2_1_place_cutter: "Teď umístěte pilu k rozřezání kruhového tvaru na dvě poloviny!

PS: Pila řeže tvary vždy svisle na poloviny bez ohledu na její orientaci." - 2_2_place_trash: Pila se může zaseknout a zastavit vaši produkci!

Použijte + 2_2_place_trash: + Pila se může zaseknout a zastavit vaši produkci!

Použijte koš ke smazání (!) nepotřebných částí tvarů. 2_3_more_cutters: "Dobrá práce! Teď postavte více pil pro zrychlení @@ -360,7 +361,7 @@ ingame: title: ∞ Uložených her desc: Tolik, kolik vaše srdce touží! upgrades: - title: 20 vylepšení + title: ∞ vylepšení desc: Tato demo verze má pouze 5! markers: title: ∞ Značek diff --git a/translations/base-da.yaml b/translations/base-da.yaml index 52af9b54..44293fdd 100644 --- a/translations/base-da.yaml +++ b/translations/base-da.yaml @@ -42,10 +42,10 @@ steamPage: source_code: Source code (GitHub) translate: Hjælp med oversættelse text_open_source: >- - Hvem som helst kan bidrage, jeg er aktivt involveret i fælleskabet og - forsøger at gennemgå alle ideer og tager feedback i overvejelse + Hvem som helst kan bidrage, jeg er aktivt involveret i fælleskabet og + forsøger at gennemgå alle ideer og tager feedback i overvejelse hvor muligt. - + Be sure to check out my trello board for the full roadmap! global: loading: Indlæser @@ -363,7 +363,7 @@ ingame: title: ∞ Gemte spil desc: Så mange dit hjerte begær! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-de.yaml b/translations/base-de.yaml index ee3bc70f..26e9dfc2 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -360,7 +360,7 @@ ingame: title: ∞ Speicherstände desc: So viele dein Herz begehrt! upgrades: - title: 20 Upgrade-Stufen + title: ∞ Upgrade-Stufen desc: Diese Demo hat nur 5! markers: title: ∞ Marker diff --git a/translations/base-el.yaml b/translations/base-el.yaml index 08edd918..ec0df592 100644 --- a/translations/base-el.yaml +++ b/translations/base-el.yaml @@ -18,7 +18,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -374,7 +374,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 639dca3a..62ed2808 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -42,7 +42,7 @@ steamPage: advantages: - 12 New Levels for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -487,7 +487,7 @@ ingame: desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: diff --git a/translations/base-fi.yaml b/translations/base-fi.yaml index 56b52600..42d73425 100644 --- a/translations/base-fi.yaml +++ b/translations/base-fi.yaml @@ -358,7 +358,7 @@ ingame: title: ∞ Tallennukset desc: Niin paljon kuin sielusi kaipaa! upgrades: - title: 20 päivitystasoa + title: ∞ päivitystasoa desc: Kokeiluversiossa on vain viisi! markers: title: ∞ Merkit diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index 65d962a2..6af2f86e 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -367,7 +367,7 @@ ingame: title: Sauvegardes ∞ desc: Autant que votre cœur le désire ! upgrades: - title: 20 niveaux d’amélioration + title: ∞ niveaux d’amélioration desc: Cette version de démonstration n’en a que 5 ! markers: title: Balises ∞ diff --git a/translations/base-hr.yaml b/translations/base-hr.yaml index 70f2bcb3..ae62d58c 100644 --- a/translations/base-hr.yaml +++ b/translations/base-hr.yaml @@ -17,7 +17,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -360,7 +360,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-hu.yaml b/translations/base-hu.yaml index 9f1cc854..cfbce76a 100644 --- a/translations/base-hu.yaml +++ b/translations/base-hu.yaml @@ -363,7 +363,7 @@ ingame: title: ∞ Mentés desc: Amennyit csak szeretnél! upgrades: - title: 20 Fejlesztési Szint + title: ∞ Fejlesztési Szint desc: A Demó Verzió csak 5-öt tartalmaz! markers: title: ∞ Jelölő diff --git a/translations/base-ind.yaml b/translations/base-ind.yaml index 2da9b377..8211a34f 100644 --- a/translations/base-ind.yaml +++ b/translations/base-ind.yaml @@ -368,7 +368,7 @@ ingame: title: ∞ Data Simpanan desc: Sebanyak yang kamu mau! upgrades: - title: 20 Tingkatan Upgrade + title: ∞ Tingkatan Upgrade desc: Versi demo ini hanya punya 5! markers: title: ∞ Penanda diff --git a/translations/base-it.yaml b/translations/base-it.yaml index f1ed9ba4..572bbc77 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -367,7 +367,7 @@ ingame: title: ∞ salvataggi desc: Quanti ne desideri! upgrades: - title: 20 gradi di miglioramenti + title: ∞ gradi di miglioramenti desc: Questa demo ne ha solo 5! markers: title: ∞ etichette diff --git a/translations/base-lt.yaml b/translations/base-lt.yaml index 910cb9f2..f69bbc03 100644 --- a/translations/base-lt.yaml +++ b/translations/base-lt.yaml @@ -17,7 +17,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -359,7 +359,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index bebba218..09192564 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -368,7 +368,7 @@ ingame: title: ∞ Savegames desc: Zo veel je maar wilt! upgrades: - title: 20 Upgrade Levels + title: ∞ Upgrade Levels desc: Deze demo heeft er enkel 5! markers: title: ∞ Markeringen diff --git a/translations/base-no.yaml b/translations/base-no.yaml index 1e8bf7b0..8ab3a2a7 100644 --- a/translations/base-no.yaml +++ b/translations/base-no.yaml @@ -365,7 +365,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-pl.yaml b/translations/base-pl.yaml index d42c80f2..360f3cad 100644 --- a/translations/base-pl.yaml +++ b/translations/base-pl.yaml @@ -326,7 +326,8 @@ ingame: niezależnie od swojej orientacji." 2_2_place_trash: Przecinak może się zapchać i zablokować!

Użyj śmietnik aby usunąć obecnie (!) nie potrzebne elementy. - 2_3_more_cutters: "Dobra robota! Teraz umieść 2 kolejne przecinaki,aby przyspieszyć + 2_3_more_cutters: + "Dobra robota! Teraz umieść 2 kolejne przecinaki,aby przyspieszyć ten wolny proces!

PS: Użyj klawiszy 0-9, aby szybciej uzyskać dostęp do budynków!" 3_1_rectangles: "Teraz wydobądź kilka kwadratów! Wybuduj @@ -365,7 +366,7 @@ ingame: title: ∞ Zapisów Gry desc: Twórz tyle, ile potrzebujesz! upgrades: - title: 20 Poziomów Ulepszeń + title: ∞ Poziomów Ulepszeń desc: To demo posiada tylko 5! markers: title: ∞ Znaczników diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index 8e8ea027..c52816d4 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -361,7 +361,7 @@ ingame: title: Saves ∞ desc: Quantos o seu coração mandar! upgrades: - title: 20 Níveis de Melhorias + title: ∞ Níveis de Melhorias desc: Essa demo tem apenas 5! markers: title: Marcadores ∞ diff --git a/translations/base-pt-PT.yaml b/translations/base-pt-PT.yaml index c6c18b98..a0d7901c 100644 --- a/translations/base-pt-PT.yaml +++ b/translations/base-pt-PT.yaml @@ -368,7 +368,7 @@ ingame: title: Savegames ∞ desc: Tantos quanto o teu corção desejar! upgrades: - title: 20 Níveis de melhoria + title: ∞ Níveis de melhoria desc: Nesta versão demo apenas tens 5! markers: title: Marcos ∞ diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index 3a6ca947..1dd87f08 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -367,7 +367,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 23b635b7..6c01272e 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -360,7 +360,7 @@ ingame: title: ∞ Сохранений desc: Сколько Вашей душе угодно! upgrades: - title: 20 стадий улучшений! + title: ∞ стадий улучшений! desc: В демоверсии всего 5! markers: title: ∞ Маркеров! diff --git a/translations/base-sl.yaml b/translations/base-sl.yaml index 516aa9de..907aa1f5 100644 --- a/translations/base-sl.yaml +++ b/translations/base-sl.yaml @@ -18,7 +18,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -361,7 +361,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-sr.yaml b/translations/base-sr.yaml index 3a9d72ea..35f2c8ca 100644 --- a/translations/base-sr.yaml +++ b/translations/base-sr.yaml @@ -17,7 +17,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -361,7 +361,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index 9d4284de..8083c8d1 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -364,7 +364,7 @@ ingame: title: ∞ med sparfiler desc: Så många som du bara vill! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ med markeringar! @@ -520,7 +520,8 @@ buildings: färger eller booleansk "1") xor: name: XOR Grind - description: Avger en booleansk "1" om ett av inflöderna är positiv, dock inte om båda är positiva. + description: + Avger en booleansk "1" om ett av inflöderna är positiv, dock inte om båda är positiva. (Positiva menas med former, färger eller booleansk "1") or: name: OR Grind diff --git a/translations/base-tr.yaml b/translations/base-tr.yaml index 7cc78d33..389b01e8 100644 --- a/translations/base-tr.yaml +++ b/translations/base-tr.yaml @@ -302,20 +302,23 @@ ingame: yerleştir.

İpucu: Birden fazla üretici yerleştirmek için SHIFT tuşuna basılı tut, ve R tuşuyla taşıma bandının yönünü döndür." - 2_1_place_cutter: "Şimdi daireleri yarıya bölmek için bir Kesici yerleştir!

+ 2_1_place_cutter: + "Şimdi daireleri yarıya bölmek için bir Kesici yerleştir!

Not: Kesici şekilleri yönünden bağımsız olarak her zaman yukarıdan aşağıya keser." 2_2_place_trash: Kesicinin çıkış hatları doluysa durabilir!

Bunun için kullanılmayan çıktılara çöp yerleştirin. - 2_3_more_cutters: "İyi iş çıkardın! Şimdi işleri hızlandırmak için iki kesici daha + 2_3_more_cutters: + "İyi iş çıkardın! Şimdi işleri hızlandırmak için iki kesici daha yerleştir.

Not: 0-9 tuşlarını kullanarak yapılara daha hızlı ulaşabilirsin!" 3_1_rectangles: "Şimdi biraz dikdörtgen üretelim! 4 Üretici yerleştir ve bunları merkeze bağla.

Not: SHIFT tuşuna basılı tutarak bant planlayıcıyı etkinleştir!" - 21_1_place_quad_painter: Dörtlü boyayıcıyı yerleştirin ve daireyi, + 21_1_place_quad_painter: + Dörtlü boyayıcıyı yerleştirin ve daireyi, beyaz ve kırmızı renkleri elde edin! 21_2_switch_to_wires: Kablo katmanına E tuşuna basarak geçiş yapın!

@@ -362,7 +365,7 @@ ingame: title: ∞ Oyun Kayıtları desc: Canın ne kadar isterse! upgrades: - title: 20 Geliştirme Aşaması + title: ∞ Geliştirme Aşaması desc: Bu deneme sürümünde sadece 5 tane var! markers: title: ∞ Yer imleri diff --git a/translations/base-uk.yaml b/translations/base-uk.yaml index 45765dd9..eddd4210 100644 --- a/translations/base-uk.yaml +++ b/translations/base-uk.yaml @@ -520,7 +520,7 @@ ingame: desc: Стільки, скільки вашій душі завгодно! upgrades: - title: 20 рівнів Поліпшень + title: ∞ рівнів Поліпшень desc: Демо-версія має лише 5! markers: @@ -706,7 +706,8 @@ buildings: logic_gate: default: name: Логічне "І" - description: Видає логічну "1" якщо обидва вводи отримують сигнал "Істинний". (Під "Істинний" мається наувазі фігура, + description: + Видає логічну "1" якщо обидва вводи отримують сигнал "Істинний". (Під "Істинний" мається наувазі фігура, колір чи логічна "1") not: name: Логічне "НЕ" @@ -745,7 +746,8 @@ buildings: reader: default: name: &reader Зчитувач конвеєєра - description: Дозволяє вимірювати середню пропускну здатність конвеєрної стрічки. Видає сигнал останнього зчитаного елемента + description: + Дозволяє вимірювати середню пропускну здатність конвеєрної стрічки. Видає сигнал останнього зчитаного елемента на шар дротів (коли розблоковано). analyzer: