diff --git a/artwork/steam/announcement.png b/artwork/steam/announcement.png index 5c073820..a5d64005 100644 Binary files a/artwork/steam/announcement.png and b/artwork/steam/announcement.png differ diff --git a/artwork/steam/announcement.psd b/artwork/steam/announcement.psd index a1cbfe3c..c08e72cd 100644 --- a/artwork/steam/announcement.psd +++ b/artwork/steam/announcement.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c0202d7a718899265d3ac3e722c8c9449efc633609d691220cc66c5b009b68de -size 197261 +oid sha256:47b6aca7fe07f4628b041f32ce813a840793cfdce8ffa27c7ff4562858ac05f9 +size 194245 diff --git a/gulp/gulpfile.js b/gulp/gulpfile.js index 520a9286..fca5d84c 100644 --- a/gulp/gulpfile.js +++ b/gulp/gulpfile.js @@ -107,9 +107,14 @@ gulp.task("utils.cleanup", $.sequence("utils.cleanBuildFolder", "utils.cleanBuil // Requires no uncomitted files gulp.task("utils.requireCleanWorkingTree", cb => { - const output = $.trim(execSync("git status -su").toString("ascii")); + let output = $.trim(execSync("git status -su").toString("ascii")).replace(/\r/gi, "").split("\n"); + + // Filter files which are OK to be untracked + output = output.filter(x => x.indexOf(".local.js") < 0); if (output.length > 0) { console.error("\n\nYou have unstaged changes, please commit everything first!"); + console.error("Unstaged files:"); + console.error(output.join("\n")); process.exit(1); } cb(); diff --git a/gulp/webpack.production.config.js b/gulp/webpack.production.config.js index 312923f0..837cfe8b 100644 --- a/gulp/webpack.production.config.js +++ b/gulp/webpack.production.config.js @@ -40,6 +40,8 @@ module.exports = ({ G_ALL_UI_IMAGES: JSON.stringify(utils.getAllResourceImages()), }; + const minifyNames = environment === "prod"; + return { mode: "production", entry: { @@ -91,15 +93,15 @@ module.exports = ({ parse: {}, module: true, toplevel: true, - keep_classnames: false, - keep_fnames: false, - keep_fargs: false, + keep_classnames: !minifyNames, + keep_fnames: !minifyNames, + keep_fargs: !minifyNames, safari10: true, compress: { arguments: false, // breaks drop_console: false, global_defs: globalDefs, - keep_fargs: false, + keep_fargs: !minifyNames, keep_infinity: true, passes: 2, module: true, @@ -141,8 +143,8 @@ module.exports = ({ }, mangle: { eval: true, - keep_classnames: false, - keep_fnames: false, + keep_classnames: !minifyNames, + keep_fnames: !minifyNames, module: true, toplevel: true, safari10: true, @@ -154,7 +156,7 @@ module.exports = ({ braces: false, ecma: es6 ? 6 : 5, preamble: - "/* Shapez.io Codebase - Copyright 2020 Tobias Springer - " + + "/* shapez.io Codebase - Copyright 2020 Tobias Springer - " + utils.getVersion() + " @ " + utils.getRevision() + diff --git a/src/css/ingame_hud/dialogs.scss b/src/css/ingame_hud/dialogs.scss index eef87505..2e1c417d 100644 --- a/src/css/ingame_hud/dialogs.scss +++ b/src/css/ingame_hud/dialogs.scss @@ -118,6 +118,10 @@ pointer-events: all; @include S(width, 350px); + @include DarkThemeOverride { + color: #aaa; + } + strong { font-weight: bold; } diff --git a/src/js/application.js b/src/js/application.js index a1557263..ee913a3f 100644 --- a/src/js/application.js +++ b/src/js/application.js @@ -14,13 +14,10 @@ import { Vector } from "./core/vector"; import { AdProviderInterface } from "./platform/ad_provider"; import { NoAdProvider } from "./platform/ad_providers/no_ad_provider"; import { AnalyticsInterface } from "./platform/analytics"; -import { ShapezGameAnalytics } from "./platform/browser/game_analytics"; import { GoogleAnalyticsImpl } from "./platform/browser/google_analytics"; +import { NoGameAnalytics } from "./platform/browser/no_game_analytics"; import { SoundImplBrowser } from "./platform/browser/sound"; -import { StorageImplBrowser } from "./platform/browser/storage"; -import { StorageImplBrowserIndexedDB } from "./platform/browser/storage_indexed_db"; import { PlatformWrapperImplBrowser } from "./platform/browser/wrapper"; -import { StorageImplElectron } from "./platform/electron/storage"; import { PlatformWrapperImplElectron } from "./platform/electron/wrapper"; import { GameAnalyticsInterface } from "./platform/game_analytics"; import { SoundInterface } from "./platform/sound"; @@ -36,7 +33,6 @@ import { MainMenuState } from "./states/main_menu"; import { MobileWarningState } from "./states/mobile_warning"; import { PreloadState } from "./states/preload"; import { SettingsState } from "./states/settings"; -import { NoGameAnalytics } from "./platform/browser/no_game_analytics"; const logger = createLogger("application"); diff --git a/src/js/changelog.js b/src/js/changelog.js index f875ff85..292be78a 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -1,14 +1,19 @@ export const CHANGELOG = [ { version: "1.1.11", - date: "unreleased", + date: "13.06.2020", entries: [ "Pinned shapes are now smart, they dynamically update their goal and also unpin when no longer required. Completed objectives are now rendered transparent.", - "Improve upgrade number rounding, so there are no goals like '37.4k', instead it will now be '35k'", "You can now cut areas, and also paste the last blueprint again! (by hexy)", + "You can now export your whole base as an image by pressing F3!", + "Improve upgrade number rounding, so there are no goals like '37.4k', instead it will now be '35k'", "You can now configure the camera movement speed when using WASD (by mini-bomba)", "Selecting an area now is relative to the world and thus does not move when moving the screen (by Dimava)", + "Allow higher tick-rates up to 500hz (This will burn your PC!)", "Fix bug regarding number rounding", + "Fix dialog text being hardly readable in dark theme", + "Fix app not starting when the savegames were corrupted - there is now a better error message as well.", + "Further translation updates - Big thanks to all contributors!", ], }, { diff --git a/src/js/core/config.js b/src/js/core/config.js index fa3a80ab..4a8953d4 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -1,3 +1,5 @@ +import { queryParamOptions } from "./query_parameters"; + export const IS_DEBUG = G_IS_DEV && typeof window !== "undefined" && @@ -5,9 +7,10 @@ export const IS_DEBUG = (window.location.host.indexOf("localhost:") >= 0 || window.location.host.indexOf("192.168.0.") >= 0) && window.location.search.indexOf("nodebug") < 0; -export const IS_DEMO = - (G_IS_PROD && !G_IS_STANDALONE) || - (typeof window !== "undefined" && window.location.search.indexOf("demo") >= 0); +export const IS_DEMO = queryParamOptions.fullVersion + ? false + : (G_IS_PROD && !G_IS_STANDALONE) || + (typeof window !== "undefined" && window.location.search.indexOf("demo") >= 0); const smoothCanvas = true; diff --git a/src/js/core/query_parameters.js b/src/js/core/query_parameters.js index b3dab1b3..8a27801f 100644 --- a/src/js/core/query_parameters.js +++ b/src/js/core/query_parameters.js @@ -3,8 +3,14 @@ const options = queryString.parse(location.search); export let queryParamOptions = { embedProvider: null, + fullVersion: false, }; if (options.embed) { queryParamOptions.embedProvider = options.embed; } + +// Allow testing full version outside of standalone +if (options.fullVersion && !G_IS_RELEASE) { + queryParamOptions.fullVersion = true; +} diff --git a/src/js/core/vector.js b/src/js/core/vector.js index 2a02f75d..635556d6 100644 --- a/src/js/core/vector.js +++ b/src/js/core/vector.js @@ -10,6 +10,7 @@ import { Math_atan2, Math_sin, Math_cos, + Math_ceil, } from "./builtins"; const tileSize = globalConfig.tileSize; @@ -303,13 +304,21 @@ export class Vector { } /** - * Computes componentwise floor and return a new vector + * Computes componentwise floor and returns a new vector * @returns {Vector} */ floor() { return new Vector(Math_floor(this.x), Math_floor(this.y)); } + /** + * Computes componentwise ceil and returns a new vector + * @returns {Vector} + */ + ceil() { + return new Vector(Math_ceil(this.x), Math_ceil(this.y)); + } + /** * Computes componentwise round and return a new vector * @returns {Vector} diff --git a/src/js/game/core.js b/src/js/game/core.js index 3d2c1f3d..8b1c464d 100644 --- a/src/js/game/core.js +++ b/src/js/game/core.js @@ -409,7 +409,7 @@ export class GameCore { } if (G_IS_DEV) { - root.map.drawStaticEntities(params); + root.map.drawStaticEntityDebugOverlays(params); } // END OF GAME CONTENT diff --git a/src/js/game/entity.js b/src/js/game/entity.js index dc849851..9dea1c2b 100644 --- a/src/js/game/entity.js +++ b/src/js/game/entity.js @@ -136,7 +136,7 @@ export class Entity extends BasicSerializableObject { * Draws the entity, to override use @see Entity.drawImpl * @param {DrawParameters} parameters */ - draw(parameters) { + drawDebugOverlays(parameters) { const context = parameters.context; const staticComp = this.components.StaticMapEntity; diff --git a/src/js/game/hud/hud.js b/src/js/game/hud/hud.js index a541dc2e..979190f8 100644 --- a/src/js/game/hud/hud.js +++ b/src/js/game/hud/hud.js @@ -2,6 +2,10 @@ import { GameRoot } from "../root"; /* typehints:end */ +/* dev:start */ +import { TrailerMaker } from "./trailer_maker"; +/* dev:end */ + import { Signal } from "../../core/signal"; import { DrawParameters } from "../../core/draw_parameters"; import { HUDProcessingOverlay } from "./parts/processing_overlay"; @@ -29,10 +33,7 @@ import { HUDModalDialogs } from "./parts/modal_dialogs"; import { HUDPartTutorialHints } from "./parts/tutorial_hints"; import { HUDWaypoints } from "./parts/waypoints"; import { HUDInteractiveTutorial } from "./parts/interactive_tutorial"; - -/* dev:start */ -import { TrailerMaker } from "./trailer_maker"; -/* dev:end */ +import { HUDScreenshotExporter } from "./parts/screenshot_exporter"; export class GameHUD { /** @@ -66,6 +67,7 @@ export class GameHUD { // betaOverlay: new HUDBetaOverlay(this.root), debugInfo: new HUDDebugInfo(this.root), dialogs: new HUDModalDialogs(this.root), + screenshotExporter: new HUDScreenshotExporter(this.root), }; this.signals = { diff --git a/src/js/game/hud/parts/keybinding_overlay.js b/src/js/game/hud/parts/keybinding_overlay.js index 0c3f3342..24d7040e 100644 --- a/src/js/game/hud/parts/keybinding_overlay.js +++ b/src/js/game/hud/parts/keybinding_overlay.js @@ -57,12 +57,6 @@ export class HUDKeybindingOverlay extends BaseHUDPart { -
- ${getKeycode(KEYMAPPINGS.massSelect.pasteLastBlueprint)} - -
- -
diff --git a/src/js/game/hud/parts/screenshot_exporter.js b/src/js/game/hud/parts/screenshot_exporter.js new file mode 100644 index 00000000..dfdd8224 --- /dev/null +++ b/src/js/game/hud/parts/screenshot_exporter.js @@ -0,0 +1,105 @@ +import { BaseHUDPart } from "../base_hud_part"; +import { KEYMAPPINGS } from "../../key_action_mapper"; +import { IS_DEMO, globalConfig } from "../../../core/config"; +import { T } from "../../../translations"; +import { createLogger } from "../../../core/logging"; +import { StaticMapEntityComponent } from "../../components/static_map_entity"; +import { Vector } from "../../../core/vector"; +import { Math_max, Math_min } from "../../../core/builtins"; +import { makeOffscreenBuffer } from "../../../core/buffer_utils"; +import { DrawParameters } from "../../../core/draw_parameters"; +import { Rectangle } from "../../../core/rectangle"; + +const logger = createLogger("screenshot_exporter"); + +export class HUDScreenshotExporter extends BaseHUDPart { + createElements() {} + + initialize() { + this.root.keyMapper.getBinding(KEYMAPPINGS.ingame.exportScreenshot).add(this.startExport, this); + } + + startExport() { + if (IS_DEMO) { + this.root.hud.parts.dialogs.showFeatureRestrictionInfo(T.demo.features.exportingBase); + return; + } + + const { ok } = this.root.hud.parts.dialogs.showInfo( + T.dialogs.exportScreenshotWarning.title, + T.dialogs.exportScreenshotWarning.desc, + ["cancel:good", "ok:bad"] + ); + ok.add(this.doExport, this); + } + + doExport() { + logger.log("Starting export ..."); + + // Find extends + const staticEntities = this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent); + + const minTile = new Vector(0, 0); + const maxTile = new Vector(0, 0); + for (let i = 0; i < staticEntities.length; ++i) { + const bounds = staticEntities[i].components.StaticMapEntity.getTileSpaceBounds(); + minTile.x = Math_min(minTile.x, bounds.x); + minTile.y = Math_min(minTile.y, bounds.y); + + maxTile.x = Math_max(maxTile.x, bounds.x + bounds.w); + maxTile.y = Math_max(maxTile.y, bounds.y + bounds.h); + } + + const minChunk = minTile.divideScalar(globalConfig.mapChunkSize).floor(); + const maxChunk = maxTile.divideScalar(globalConfig.mapChunkSize).ceil(); + + const dimensions = maxChunk.sub(minChunk); + logger.log("Dimensions:", dimensions); + + const chunkSizePixels = 128; + const chunkScale = chunkSizePixels / (globalConfig.mapChunkSize * globalConfig.tileSize); + logger.log("Scale:", chunkScale); + + logger.log("Allocating buffer, if the factory grew too big it will crash here"); + const [canvas, context] = makeOffscreenBuffer( + dimensions.x * chunkSizePixels, + dimensions.y * chunkSizePixels, + { + smooth: true, + reusable: false, + label: "export-buffer", + } + ); + logger.log("Got buffer, rendering now ..."); + + const visibleRect = new Rectangle( + minChunk.x * globalConfig.mapChunkSize * globalConfig.tileSize, + minChunk.y * globalConfig.mapChunkSize * globalConfig.tileSize, + dimensions.x * globalConfig.mapChunkSize * globalConfig.tileSize, + dimensions.y * globalConfig.mapChunkSize * globalConfig.tileSize + ); + const parameters = new DrawParameters({ + context, + visibleRect, + desiredAtlasScale: "1", + root: this.root, + zoomLevel: chunkScale, + }); + + context.scale(chunkScale, chunkScale); + context.translate(-visibleRect.x, -visibleRect.y); + + // Render all relevant chunks + this.root.map.drawBackground(parameters); + this.root.map.drawForeground(parameters); + + // Offer export + logger.log("Rendered buffer, exporting ..."); + const image = canvas.toDataURL("image/png"); + const link = document.createElement("a"); + link.download = "base.png"; + link.href = image; + link.click(); + logger.log("Done!"); + } +} diff --git a/src/js/game/hud/parts/unlock_notification.js b/src/js/game/hud/parts/unlock_notification.js index 20a4482f..7a5c923b 100644 --- a/src/js/game/hud/parts/unlock_notification.js +++ b/src/js/game/hud/parts/unlock_notification.js @@ -39,7 +39,7 @@ export class HUDUnlockNotification extends BaseHUDPart { this.btnClose = document.createElement("button"); this.btnClose.classList.add("close", "styledButton"); - this.btnClose.innerText = "Next level"; + this.btnClose.innerText = T.ingame.levelCompleteNotification.buttonNextLevel; dialog.appendChild(this.btnClose); this.trackClicks(this.btnClose, this.requestClose); diff --git a/src/js/game/key_action_mapper.js b/src/js/game/key_action_mapper.js index 58077f01..816c5cd3 100644 --- a/src/js/game/key_action_mapper.js +++ b/src/js/game/key_action_mapper.js @@ -24,7 +24,8 @@ export const KEYMAPPINGS = { menuOpenStats: { keyCode: key("G") }, toggleHud: { keyCode: 113 }, // F2 - toggleFPSInfo: { keyCode: 115 }, // F1 + exportScreenshot: { keyCode: 114 }, // F3 + toggleFPSInfo: { keyCode: 115 }, // F4 }, navigation: { diff --git a/src/js/game/map_view.js b/src/js/game/map_view.js index 90919a2a..5c4bf88a 100644 --- a/src/js/game/map_view.js +++ b/src/js/game/map_view.js @@ -64,7 +64,7 @@ export class MapView extends BaseMap { * Draws all static entities like buildings etc. * @param {DrawParameters} drawParameters */ - drawStaticEntities(drawParameters) { + drawStaticEntityDebugOverlays(drawParameters) { const cullRange = drawParameters.visibleRect.toTileCullRectangle(); const top = cullRange.top(); const right = cullRange.right(); @@ -90,7 +90,7 @@ export class MapView extends BaseMap { if (content) { let isBorder = x <= left - 1 || x >= right + 1 || y <= top - 1 || y >= bottom + 1; if (!isBorder) { - content.draw(drawParameters); + content.drawDebugOverlays(drawParameters); } } } diff --git a/src/js/profile/application_settings.js b/src/js/profile/application_settings.js index 87c2c244..17563ab9 100644 --- a/src/js/profile/application_settings.js +++ b/src/js/profile/application_settings.js @@ -165,7 +165,7 @@ export const allApplicationSettings = [ }), new EnumSetting("refreshRate", { - options: ["60", "100", "144", "165"], + options: ["60", "100", "144", "165", "250", "500"], valueGetter: rate => rate, textGetter: rate => rate + " Hz", category: categoryGame, diff --git a/src/js/states/about.js b/src/js/states/about.js index aa29ff87..900adc5a 100644 --- a/src/js/states/about.js +++ b/src/js/states/about.js @@ -15,17 +15,9 @@ export class AboutState extends TextualGameState { } getMainContentHTML() { - return ` - This game is open source and developed by Tobias Springer (this is me). -

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

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

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

- Finally, huge thanks to my best friend Niklas - Without our factorio sessions this game would never have existed. - `; + return T.about.body + .replace("", THIRDPARTY_URLS.github) + .replace("", THIRDPARTY_URLS.discord); } onEnter() { diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index a2a75db9..b782155f 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -366,11 +366,19 @@ export class MainMenuState extends GameState { this.app.adProvider.showVideoAd().then(() => { this.app.analytics.trackUiClick("resume_game_adcomplete"); const savegame = this.app.savegameMgr.getSavegameById(game.internalId); - savegame.readAsync().then(() => { - this.moveToState("InGameState", { - savegame, + savegame + .readAsync() + .then(() => { + this.moveToState("InGameState", { + savegame, + }); + }) + .catch(err => { + this.dialogs.showWarning( + T.dialogs.gameLoadFailure.title, + T.dialogs.gameLoadFailure.text + "

" + err + ); }); - }); }); } diff --git a/src/js/states/preload.js b/src/js/states/preload.js index 535d7004..eee57f05 100644 --- a/src/js/states/preload.js +++ b/src/js/states/preload.js @@ -138,15 +138,10 @@ export class PreloadState extends GameState { .then(() => { return this.app.savegameMgr.initialize().catch(err => { logger.error("Failed to initialize savegames:", err); - return new Promise(resolve => { - // const { ok } = this.dialogs.showWarning( - // T.preload.savegame_corrupt_dialog.title, - // T.preload.savegame_corrupt_dialog.content, - // ["ok:good"] - // ); - // ok.add(resolve); - alert("Your savegames failed to load. They might not show up. Sorry!"); - }); + alert( + "Your savegames failed to load, it seems your data files got corrupted. I'm so sorry!\n\n(This can happen if your pc crashed while a game was saved).\n\nYou can try re-importing your savegames." + ); + return this.app.savegameMgr.writeAsync(); }); }) diff --git a/src/js/states/settings.js b/src/js/states/settings.js index e092c717..4dce1fa3 100644 --- a/src/js/states/settings.js +++ b/src/js/states/settings.js @@ -19,7 +19,7 @@ export class SettingsState extends TextualGameState { ${ this.app.platformWrapper.getSupportsKeyboard() ? ` - + ` : "" } diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 8e87eacf..11864c3c 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -724,9 +730,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -737,5 +761,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-cz.yaml b/translations/base-cz.yaml index 6645887b..ec1d6f55 100644 --- a/translations/base-cz.yaml +++ b/translations/base-cz.yaml @@ -241,6 +241,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -707,9 +713,27 @@ keybindings: placeInverse: Přepnout automatickou orientaci pásů pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: O hře + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Seznam změn @@ -720,5 +744,6 @@ demo: importingGames: Importování uložených her oneGameLimit: Omezeno pouze na jednu uloženou hru customizeKeybindings: Změna klávesových zkratek + exportingBase: Exporting whole Base as Image settingNotAvailable: Nedostupné v demo verzi. diff --git a/translations/base-de.yaml b/translations/base-de.yaml index 416095a7..74e4d927 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -259,6 +259,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -728,9 +734,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: Über dieses Spiel + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Änderungen @@ -741,5 +765,6 @@ demo: importingGames: Spiele importieren oneGameLimit: Beschränkt auf einen Spielstand customizeKeybindings: Tastenkürzel anpassen + exportingBase: Exporting whole Base as Image settingNotAvailable: Nicht verfügbar in der Demo. diff --git a/translations/base-el.yaml b/translations/base-el.yaml index 104f39aa..3eb04db4 100644 --- a/translations/base-el.yaml +++ b/translations/base-el.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -726,9 +732,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -739,5 +763,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 7430f7dd..7e6781c2 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -260,6 +260,10 @@ dialogs: markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! + exportScreenshotWarning: + title: Export screenshot + desc: You requested to export your base as a screenshot. Please note that this can be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -698,6 +702,7 @@ keybindings: toggleHud: Toggle HUD toggleFPSInfo: Toggle FPS and Debug Info + exportScreenshot: Export whole Base as Image belt: *belt splitter: *splitter underground_belt: *underground_belt @@ -729,6 +734,16 @@ keybindings: about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our factorio sessions this game would never have existed. changelog: title: Changelog @@ -739,5 +754,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-es.yaml b/translations/base-es.yaml index 76d039c0..78ba8b53 100644 --- a/translations/base-es.yaml +++ b/translations/base-es.yaml @@ -256,6 +256,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -714,9 +720,27 @@ keybindings: placeInverse: Invierte automáticamente la orientación de las cintas transportadoras pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: Sobre el Juego + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Registro de Cambios @@ -727,5 +751,6 @@ demo: importingGames: Importando partidas guardadas oneGameLimit: Limitado a una partida guardada customizeKeybindings: Personalizando Atajos de Teclado + exportingBase: Exporting whole Base as Image settingNotAvailable: No disponible en la versión de prueba. diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index a036d318..4074e565 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -261,6 +261,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -735,9 +741,27 @@ keybindings: placeInverse: Inverser le mode d'orientation automatique pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: À propos de ce jeu + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Historique @@ -748,6 +772,7 @@ demo: importingGames: Importer des sauvegardes oneGameLimit: Limité à une sauvegarde customizeKeybindings: Personnalisation des contrôles + exportingBase: Exporting whole Base as Image settingNotAvailable: Indisponible dans la démo. # diff --git a/translations/base-hu.yaml b/translations/base-hu.yaml index 9fd82e3e..5395506c 100644 --- a/translations/base-hu.yaml +++ b/translations/base-hu.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -725,9 +731,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: A játékról + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -738,5 +762,6 @@ demo: 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. diff --git a/translations/base-it.yaml b/translations/base-it.yaml index 104f39aa..3eb04db4 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -726,9 +732,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -739,5 +763,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-ja.yaml b/translations/base-ja.yaml index 3cc99a7d..dfd97ed3 100644 --- a/translations/base-ja.yaml +++ b/translations/base-ja.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -726,9 +732,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -739,5 +763,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-kor.yaml b/translations/base-kor.yaml index 7c41d70f..f367a2f1 100644 --- a/translations/base-kor.yaml +++ b/translations/base-kor.yaml @@ -260,6 +260,12 @@ dialogs: markerDemoLimit: desc: 데모 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다! + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -726,9 +732,27 @@ keybindings: placementDisableAutoOrientation: 자동 회전 끄기 placeMultiple: 배치 모드에 있기 placeInverse: 자동 벨트 회전 뒤집기 + exportScreenshot: Export whole Base as Image about: title: 이 게임의 정보 + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: 업데이트 기록 @@ -739,5 +763,6 @@ demo: importingGames: 게임 저장 파일 불러오기 oneGameLimit: 게임 저장 파일 최대 1개 customizeKeybindings: 키바인딩 설정하기 + exportingBase: Exporting whole Base as Image settingNotAvailable: 데모 버전에서 사용 불가 diff --git a/translations/base-lt.yaml b/translations/base-lt.yaml index f9fc08fc..7164fe34 100644 --- a/translations/base-lt.yaml +++ b/translations/base-lt.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -725,9 +731,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -738,5 +762,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index fe5bcd0f..979110d8 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -46,13 +46,13 @@ steamPage: [*] Oneindig veel Savegames [*] Donkere modus [*] Meer opties - [*] Door jouw steun kan ik shapez.io verder ontwikkelen ❤️ + [*] Met jouw steun kan ik shapez.io verder ontwikkelen ❤️ [*] Meer functies in de toekomst! [/list] [b]Geplande functies & suggesties van de community[/b] - Deze game is open source - Iedereen kan bijdragen! Daarnaast luister ik [b]erg veel[/b] naar de community! Ik probeer alle suggesties te lezen en neem zo veel mogelijk feedback mee als mogelijk. + Dit spel is open source - Iedereen kan bijdragen! Daarnaast luister ik [b]erg veel[/b] naar de community! Ik probeer alle suggesties te lezen en gebruik feedback zo veel als mogelijk. [list] [*] Verhaalmodus, waar gebouwen specifieke vormen kosten om te bouwen @@ -86,7 +86,7 @@ global: time: # Used for formatting past time dates - oneSecondAgo: een seconde geleden + oneSecondAgo: één seconde geleden xSecondsAgo: seconden geleden oneMinuteAgo: een minuut geleden xMinutesAgo: minuten geleden @@ -199,8 +199,8 @@ dialogs: Je moet het spel opnieuw opstarten om de instellingen toe te passen. editKeybinding: - title: Change Keybinding - desc: Press the key or mouse button you want to assign, or escape to cancel. + title: Verander sneltoetsen + desc: Druk op de toets of muisknop die je aan deze functie toe wil wijzen, of druk op ESC om te annuleren. resetKeybindingsConfirmation: title: Reset sneltoetsen @@ -255,17 +255,22 @@ dialogs: markerDemoLimit: desc: Je kunt maar twee markeringen plaatsen in de demo. Koop de standalone voor een ongelimiteerde hoeveelheid markeringen! massCutConfirm: - title: Confirm cut + title: Bevestig knippen desc: >- - You are cutting a lot of buildings ( to be exact)! Are you sure you - want to do this? + Je bent veel gebouwen aan het knippen ( om precies te zijn)! Weet je zeker dat je dit wil doen? + + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! ingame: # This is shown in the top left corner and displays useful keybindings in # every situation keybindingsOverlay: - moveMap: Beweeg het speelveld - selectBuildings: Selecteer een gebied + moveMap: Beweeg speelveld + selectBuildings: Selecteer gebied stopPlacement: Stop met plaatsen rotateBuilding: Draai een gebouw placeMultiple: Plaats meerdere @@ -275,7 +280,7 @@ ingame: placeBuilding: Plaats gebouw createMarker: Plaats markering delete: Vernietig - pasteLastBlueprint: Paste last blueprint + pasteLastBlueprint: Plak de laatst gekopiëerde blauwdruk # Everything related to placing buildings (I.e. as soon as you selected a building # from the toolbar) @@ -308,13 +313,13 @@ ingame: # Notifications on the lower right notifications: - newUpgrade: Een nieuwe upgrade is beschikbaar! + newUpgrade: Er is een nieuwe upgrade beschikbaar! gameSaved: Je spel is opgeslagen. # Mass select information, this is when you hold CTRL and then drag with your mouse # to select multiple buildings massSelect: - infoText: Press to cut, to copy, to remove and to cancel. + infoText: Druk op om te knippen, om te kopiëren, om te verwijderen en om de selectie te annuleren. # The "Upgrades" window shop: @@ -338,9 +343,9 @@ ingame: description: Geeft weer hoe veel vormen er zijn opgeslagen in je centrale gebouw. produced: title: Geproduceerd - description: Geeft alle vormen weer die op dit moment geproduceerd worden door de volledige fabriek, inclusief tussenproducten. + description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten. delivered: - title: Bezorgt + title: Geleverd description: Geeft alle vormen weer die in het centrale gebouw worden bezorgd. noShapesProduced: Er zijn nog geen vormen geproduceerd. @@ -385,7 +390,7 @@ ingame: Verbind de extractor met een lopende band aan je hub!

Tip: Klik en sleep de lopende band met je muis! 1_3_expand: >- - Dit is GEEN inactief spel! bouw meer extractors en lopende banden om het doel sneller te behalen.

Tip: Houd SHIFT ingedrukt om meerdere extractors te plaatsen en gebruik R om ze te draaien. + Dit is GEEN nietsdoen-spel! bouw meer extractors en lopende banden om het doel sneller te behalen.

Tip: Houd SHIFT ingedrukt om meerdere extractors te plaatsen en gebruik R om ze te draaien. # All shop upgrades shopUpgrades: @@ -433,11 +438,11 @@ buildings: description: Multifunctioneel - Verdeelt alle input gelijk over alle output. compact: - name: Samenvoeger (compact) + name: Invoeger (compact) description: Voegt twee lopende banden samen tot één. compact-inverse: - name: Samenvoeger (compact) + name: Invoeger (compact) description: Voegt twee lopende banden samen tot één. cutter: @@ -487,8 +492,8 @@ buildings: description: Slaat het overschot aan voorwerpen op, tot een zekere hoeveelheid. Kan worden gebruikt als buffer. hub: - deliver: Deliver - toUnlock: to unlock + deliver: Lever + toUnlock: om te ontgrendelen levelShortcut: LVL storyRewards: @@ -499,7 +504,7 @@ storyRewards: reward_rotater: title: Roteren - desc: De roteerder is ontgrendeld! Het draait vormen 90 graden met de klok mee. + desc: De roteerder is ontgrendeld - ! Het draait vormen 90 graden met de klok mee. reward_painter: title: Verven @@ -508,9 +513,7 @@ storyRewards: reward_mixer: title: Kleuren mengen - desc: >- - The mixer has been unlocked - Combine two colors using - additive blending with this building! + desc: The mixer has been unlocked - Combine two colors using additive blending with this building! reward_stacker: title: Stapelaar @@ -537,7 +540,7 @@ storyRewards: desc: Je hebt een variant van de tunnel ontgrendeld - Deze heeft een grotere reikwijdte- Je hebt een compacte variant van de verdeler ontgrendeld - Dit voegt twee lopende banden samen tot één. @@ -586,7 +589,7 @@ settings: dev: Ontwikkeling staging: Staging prod: Productie - buildDate: Gebouwd op + buildDate: gebouwd labels: uiScale: @@ -637,8 +640,8 @@ settings: Kies de gewenste weergave (licht / donker). themes: - dark: Dark - light: Light + dark: Donker + light: Licht refreshRate: title: Simulation Target @@ -656,15 +659,15 @@ settings: Wanneer dit uit staat zullen er geen hints en tutorials meer aangeboden worden. Als deze optie aan staat, zullen ook bepaalde elementen uit de UI verborgen worden tot het punt waarop ze gebruikt worden om de instap in het spel makkelijker te maken. movementSpeed: - title: Movement speed - description: Changes how fast the view moves when using the keyboard. + title: Bewegingssnelheid + description: Veranderd hoe snel het beeld beweegt wanneer je het toetsenbord gebruikt. speeds: - super_slow: Super slow - slow: Slow - regular: Regular - fast: Fast - super_fast: Super Fast - extremely_fast: Extremely Fast + super_slow: Super langzaam + slow: Langzaam + regular: Standaard + fast: Snel + super_fast: Super snel + extremely_fast: Extreem snel keybindings: title: Sneltoetsen @@ -726,11 +729,29 @@ keybindings: placementDisableAutoOrientation: Schakel automatisch draaien uit placeMultiple: Blijf in plaatsmodus placeInverse: Omkeren richting lopende band - pasteLastBlueprint: Paste last blueprint - massSelectCut: Cut area + pasteLastBlueprint: Plak laatst gekopiëerde blauwdruk + massSelectCut: Knip geselecteerd gebied + exportScreenshot: Export whole Base as Image about: title: Over dit spel + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -741,5 +762,6 @@ demo: importingGames: Savegames importeren oneGameLimit: Gelimiteerd tot één savegame customizeKeybindings: Custom sneltoetsen + exportingBase: Exporting whole Base as Image settingNotAvailable: Niet beschikbaar in de demo. diff --git a/translations/base-pl.yaml b/translations/base-pl.yaml index 39e49efc..8fec1dea 100644 --- a/translations/base-pl.yaml +++ b/translations/base-pl.yaml @@ -78,7 +78,7 @@ global: # Translator note: We don't use SI size units for common speak, but if you want to keep it SI # ...also, Polish has wierd nature of diffrent number naming, we have "million" and "milliard"-thing wich actually is billion in English suffix: - thousands: tyś + thousands: tys millions: mln billions: mld trillions: bln @@ -98,9 +98,10 @@ global: xDaysAgo: dni temu # Short formats for times, e.g. '5h 23m' + # 2nd translator's note: Changed 'm' to 'min' to distinguish from meters & to be consistent secondsShort: s - minutesAndSecondsShort: m s - hoursAndMinutesShort: godz m + minutesAndSecondsShort: min s + hoursAndMinutesShort: godz min xMinutes: minut @@ -259,9 +260,15 @@ dialogs: desc: Możesz stworzyć tylko dwa własne znaczniki w wersji demo. Zakup pełną wersję gry dla nielimitowanych znaczników! massCutConfirm: - title: Potwierdź wycinanie - desc: >- - Wycinasz sporą ilość maszyn ( gwoli ścisłości)! Czy na pewno chcesz kontynuować? + title: Potwierdź wycinanie + desc: >- + Wycinasz sporą ilość maszyn ( gwoli ścisłości)! Czy na pewno chcesz kontynuować? + + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! ingame: # This is shown in the top left corner and displays useful keybindings in @@ -295,8 +302,8 @@ ingame: speed: Szybkość range: Zasięg storage: Pojemność - oneItemPerSecond: 1 obiekt / sekundę - itemsPerSecond: obiektów / sekundę + oneItemPerSecond: 1 obiekt / s + itemsPerSecond: obiektów / s itemsPerSecondDouble: (x2) tiles: kafelków @@ -532,7 +539,7 @@ storyRewards: reward_tunnel: title: Tunel - desc: Tunel został odblokowany - Możesz prowadzić podziemne taśmociągi! + desc: Tunel został odblokowany - Możesz teraz prowadzić podziemne taśmociągi! reward_rotater_ccw: title: Obracanie odwrotne @@ -549,8 +556,9 @@ storyRewards: reward_splitter_compact: title: Łącznik Kompaktowy desc: >- - You have unlocked a compact variant of the balancer - It - accepts two inputs and merges them into one! + Odblokowano nowy wariant rozdzielacza - Przyjmuje + przedmioty z dwóch taśmociągów i przenosi je na jeden! + reward_cutter_quad: title: Przecinak Poczwórny desc: Odblokowano nowy wariant Przecinaka - Pozwala ciąć kształty na cztery ćwiartki! @@ -574,11 +582,11 @@ storyRewards: reward_blueprints: title: Schematy desc: >- - Możesz teraz kopiować i wklejać części swojej fabryki! - Zaznacz obszar (Przytrzymaj CTRL, a następnie przeciągnij myszą) i naciśnij 'C', - by go skopiować.

Wklejanie nie jest darmowe - musisz - produkować kształty schematów (te, które właśnie dostarczyłeś), - by móc wklejać! + Możesz teraz kopiować i wklejać części swojej fabryki! + Zaznacz obszar (Przytrzymaj CTRL, a następnie przeciągnij myszą) i naciśnij 'C', + by go skopiować.

Wklejanie nie jest darmowe - musisz + produkować kształty schematów (te, które właśnie dostarczyłeś), + by móc wklejać! # Special reward, which is shown when there is no reward actually no_reward: @@ -684,7 +692,7 @@ settings: keybindings: title: Klawiszologia hint: >- - Tip: Upewnij się, że wykorzystujesz CTRL, SHIFT i ALT! Pozwalają na różne metody kładzenia elementów. + Wskazówka: Upewnij się, że wykorzystujesz CTRL, SHIFT i ALT! Pozwalają na różne metody kładzenia elementów. resetKeybindings: Zresetuj Klawiszologię categoryLabels: @@ -742,9 +750,16 @@ keybindings: placeInverse: Odwróć automatyczną orientacje pasów pasteLastBlueprint: Wklej ostatnio skopiowany obszar massSelectCut: Wytnij obszar + exportScreenshot: Export whole Base as Image about: title: O Grze + body: >- + Ta gra jest open-source. Rozwijana jest przez Tobiasa Springera (to ja).

+ Jeżeli chcesz pomóc w rozwoju gry, sprawdź repozytorium shapez.io na Githubie.

+ Ta gra nie byłaby możliwa bez wspaniałej społeczności Discord skupionej na moich grach - Naprawdę powinieneś dołączyć do mojego serwera Discord!

+ Ścieżka dźwiękowa tej gry została stworzona przez Peppsena - Jest niesamowity.

+ Na koniec, wielkie dzięki mojemu najlepszemu przyjacielowi: Niklas - Bez naszego wspólnego grania w Factorio, ta gra nigdy by nie powstała. changelog: title: Dziennik zmian @@ -755,5 +770,6 @@ demo: importingGames: Importowanie zapisów gry oneGameLimit: Limit jednego zapisu gry customizeKeybindings: Personalizowanie Klawiszologii + exportingBase: Exporting whole Base as Image settingNotAvailable: Niedostępne w wersji demo. diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index 283809d6..ca58d79e 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -262,6 +262,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -734,9 +740,27 @@ keybindings: placeInverse: Inverter orientação de esteira pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: Sobre o jogo + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -747,5 +771,6 @@ demo: importingGames: Carregando jogos salvos oneGameLimit: Limitado para um savegamne customizeKeybindings: Modificando Teclas + exportingBase: Exporting whole Base as Image settingNotAvailable: Não disponível na versão demo. diff --git a/translations/base-pt-PT.yaml b/translations/base-pt-PT.yaml index ba022165..71c44a20 100644 --- a/translations/base-pt-PT.yaml +++ b/translations/base-pt-PT.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -725,8 +731,26 @@ keybindings: placeInverse: Inverter orientação automática do tapete pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: Sobre o jogo + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -737,5 +761,6 @@ demo: importingGames: Importação de savegames oneGameLimit: Limitado a um savegame customizeKeybindings: Costumizar Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Não disponível no Demo. diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index 8652e2b1..1eeadd47 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -725,9 +731,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -738,5 +762,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 0434c87c..23628e79 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -34,9 +34,9 @@ steamPage: Поскольку спрос растет, вам придется увеличивать свою фабрику, чтобы соответствовать потребностям. Однако, не забывайте о ресурсах, несмотря на то что вы будете расширятся на [b]бесконечной карте[/b]! - Поскольку фигуры вскоре могут наскучить, вам потребуется смешивать цвета и рискрашивать свои фигуры ими. Комбинируйте красный, зеленый и синий цветовые ресурсы для получения разных цветов и красте ими фигуры, чтобы удовлетворить спрос. + Поскольку фигуры вскоре могут наскучить, вам потребуется смешивать цвета и раскрашивать свои фигуры ими. Комбинируйте красный, зеленый и синий красители для получения разных цветов и красте ими фигуры, чтобы удовлетворить спрос. - Эта игра имеет 18 уровней (но и они займут вас на часы!), но я постоянно добавляю новый контент - там много чего запланировано! + Эта игра имеет 18 уровней (но и они займут вас на часы!). Я постоянно добавляю новый контент - там много чего запланировано! [b]Преимущества полной версии[/b] @@ -52,7 +52,7 @@ steamPage: [b]Планируемые функции & Предложения сообщества[/b] - Это игра с открытым исходным кодом - Любой может внести свой вклад! Кроме того, я во [b]многом[/b] прислушиваюсь к сообществу! Я стараюсь прочитать все предложения и учту как можно больше отзывов. + Это игра с открытым исходным кодом - любой может внести свой вклад! Кроме того, я во [b]многом[/b] прислушиваюсь к сообществу! Я стараюсь прочитать все предложения и учту как можно больше отзывов. [list] [*] Режим истории, где здания стоят фигур @@ -82,7 +82,7 @@ global: trillions: трлн # Shown for infinitely big numbers - infinite: inf + infinite: ∞ time: # Used for formatting past time dates @@ -98,9 +98,9 @@ global: # Short formats for times, e.g. '5h 23m' secondsShort: с minutesAndSecondsShort: м с - hoursAndMinutesShort: м с + hoursAndMinutesShort: ч м - xMinutes: minutes + xMinutes: мин. keys: tab: TAB @@ -112,7 +112,7 @@ global: demoBanners: # This is the "advertisement" shown in the main menu and other various places - title: Демо версия + title: Демо-версия intro: >- Приобретите полную версию чтобы разблокировать все возможности! @@ -133,26 +133,26 @@ mainMenu: contests: contest_01_03062020: - title: "Contest #01" - desc: Win $25 for the coolest base! + title: "Конкурс №01" + desc: Выиграй $25 за лучшую базу! longDesc: >- - To give something back to you, I thought it would be cool to make weekly contests! + Чтобы вернуть вам что-то, я подумал, что было бы здорово проводить еженедельные конкурсы!

- This weeks topic: Build the coolest base! + Тема этой недели: Постройка самой классной базы!

- Here's the deal:
+ Вот что нужно сделать:
    -
  • Submit a screenshot of your base to contest@shapez.io
  • -
  • Bonus points if you share it on social media!
  • -
  • I will choose 5 screenshots and propose it to the discord community to vote.
  • -
  • The winner gets $25 (Paypal, Amazon Gift Card, whatever you prefer)
  • -
  • Deadline: 07.06.2020 12:00 AM CEST
  • +
  • Отправить скриншот вашей базы сюда: contest@shapez.io
  • +
  • Бонусные баллы, если вы поделитесь этим в социальных сетях!
  • +
  • Я выберу 5 скриншотов и предложу сообществу в дискорде проголосовать.
  • +
  • Победитель получит $25 (Paypal, Amazon Gift Card, что вы предпочитаете)
  • +
  • Крайний срок: 07.06.2020 12:00 AM CEST

- I'm looking forward to seeing your awesome creations! + Я с нетерпением жду, чтобы увидеть ваши удивительные творения! - showInfo: View - contestOver: This contest has ended - Join the discord to get noticed about new contests! + showInfo: Посмотреть + contestOver: Этот конкурс закончился - присоединяйтесь в дискорде, чтобы получать уведомления о новых конкурсах! dialogs: buttons: @@ -171,27 +171,27 @@ dialogs: importSavegameError: title: Ошибка импортирования text: >- - Не удалось импортировать ваше сохранение игры: + Не удалось импортировать сохранение игры. importSavegameSuccess: - title: Сохраненная игра импортированна + title: Сохранение игры импортировано text: >- - Ваша сохраненная игра успешно импортированна. + Сохранение игры успешно импортировано. gameLoadFailure: title: Ошибка загрузки text: >- - Не удалось загрузить ваше сохранение игры: + Не удалось загрузить сохранение игры. confirmSavegameDelete: title: Подтвердите удаление. text: >- - Вы действительно хотите удалить игру? + Вы действительно хотите удалить сохранение игры? savegameDeletionError: title: Ошибка удаления text: >- - Не удалось удалить сохранение игры: + Не удалось удалить сохранение игры. restartRequired: title: Необходим перезапуск @@ -211,8 +211,8 @@ dialogs: desc: Настройки управления сброшены до соответствующих значений по умолчанию! featureRestriction: - title: Демо версия - desc: Вы попытались получить доступ к функции (), которая недоступна в демоверсии. Вы можете приобрести полную версию чтобы пользоваться всеми функциями! + title: Демо-версия + desc: Вы попытались получить доступ к функции (), которая недоступна в демо-версии. Вы можете приобрести полную версию чтобы пользоваться всеми функциями! oneSavegameLimit: title: Лимит сохранений @@ -224,15 +224,15 @@ dialogs: Здесь изменения с тех пор, когда вы в последний раз играли: upgradesIntroduction: - title: Открыть улучшения + title: Улучшения открыты! desc: >- - All shapes you produce can be used to unlock upgrades - Don't destroy - your old factories! The upgrades tab can be found on the top right - corner of the screen. + Все формы, которые вы производите, могут быть использованы для разблокировки + улучшений - Не разрушайте свои старые фабрики! + Вкладка обновлений находится в правом верхнем углу экрана. massDeleteConfirm: title: Подтвердить удаление desc: >- - Вы удаляете много построек ()! Вы действительно хотите сделать это? + Вы удаляете много построек (точнее: )! Вы действительно хотите сделать это? blueprintsNotUnlocked: title: Еще не открыто @@ -255,10 +255,17 @@ dialogs: markerDemoLimit: desc: Вы можете создать только 2 своих маркера в демо версии. Приобретите полную версию для безлимитных маркеров. massCutConfirm: - title: Confirm cut + title: Подтвердите вырезку desc: >- - You are cutting a lot of buildings ( to be exact)! Are you sure you - want to do this? + Вы вырезаете много зданий (точнее: )! Вы уверены, + что хотите это сделать? + + exportScreenshotWarning: + title: Экспорт скриншота + desc: >- + Вы запросили экспортировать вашу базу в виде скриншота. Обратите внимание, + что это может быть довольно медленным процессом для большой базы + и даже привести к аварийному завершению игры! ingame: # This is shown in the top left corner and displays useful keybindings in @@ -275,7 +282,7 @@ ingame: placeBuilding: Разместить постройку createMarker: Создать маркер delete: Уничтожить - pasteLastBlueprint: Paste last blueprint + pasteLastBlueprint: Вставить последний чертеж # Everything related to placing buildings (I.e. as soon as you selected a building # from the toolbar) @@ -291,9 +298,9 @@ ingame: infoTexts: speed: Скорость range: Расстояние - storage: Storage - oneItemPerSecond: 1 предмет / сек - itemsPerSecond: предметов / сек + storage: Хранилище + oneItemPerSecond: 1 пред. / сек. + itemsPerSecond: пред. / сек. itemsPerSecondDouble: (x2) tiles: клеток @@ -309,12 +316,12 @@ ingame: # Notifications on the lower right notifications: newUpgrade: Новое улучшение доступно! - gameSaved: Ваша игра была сохранена. + gameSaved: Игра сохранена. # Mass select information, this is when you hold CTRL and then drag with your mouse # to select multiple buildings massSelect: - infoText: Press to cut, to copy, to remove and to cancel. + infoText: - Вырезать; - Копировать; - Удалить; - Отменить. # The "Upgrades" window shop: @@ -335,17 +342,17 @@ ingame: dataSources: stored: title: Хранится - description: Показывает количество хранящихся фигур в вашем центральном здании. + description: Показывает количество хранящихся фигур в хабе. produced: title: Производится description: Показывает производящиеся фигуры, включая промежуточное производство. delivered: title: Доставлено - description: Показывает фигуры, которые доставляются в ваше центральное здание. + description: Показывает фигуры, которые доставляются в хаб. noShapesProduced: Фигуры еще не произведены. # Displays the shapes per minute, e.g. '523 / m' - shapesPerMinute: / мин + shapesPerMinute: / мин. # Settings menu, when you press "ESC" settingsMenu: @@ -382,21 +389,21 @@ ingame: hints: 1_1_extractor: Поместите экстрактор на фигуру в форме круга чтобы добыть ее! 1_2_conveyor: >- - Соедините экстрактор конвейерной лентой с вашим хабом!

Подсказка: Необходимо выбрать конвейерную ленту и нажать и перетащить мышку! + Соедините экстрактор конвейером с хабом!

Подсказка: Необходимо выбрать конвейер и нажать и потащить мышку! 1_3_expand: >- - Это НЕ idle-игра! Постройте больше экстракторов и конвейерных лент, чтобы достичь цели быстрее.

Подсказка: Удерживайте SHIFT чтобы разместить несколько экстракторов, а R чтобы вращать их. + Это НЕ idle-игра! Постройте больше экстракторов и конвейеров, чтобы достичь цели быстрее.

Подсказка: Удерживайте SHIFT чтобы разместить несколько экстракторов, а R чтобы вращать их. # All shop upgrades shopUpgrades: belt: - name: Конвейерные ленты, Распределители & Туннели + name: Конвейеры, Расделители & Туннели description: Скорость x → x miner: name: Добыча description: Скорость x → x processors: - name: Нарезка, Вращение & Склейка + name: Нарезка, Вращение & Объединение description: Скорость x → x painting: name: Смешивание & Покраска @@ -412,20 +419,20 @@ buildings: miner: # Internal name for the Extractor default: name: &miner Экстрактор - description: Поместите над фигурным или цветовым ресурсом, чтобы добыть его. + description: Поместите над жилой с фигурами или красителями, чтобы добыть ресурс. chainable: name: Экстрактор (Цепной) - description: Поместите над фигурным или цветовым ресурсом, чтобы добыть его. Может последовательно соединяться. + description: Поместите над жилой с фигурами или красителями, чтобы добыть ресурс. Может последовательно соединяться. underground_belt: # Internal name for the Tunnel default: name: &underground_belt Туннель - description: Позволяет перевозить ресурсы под зданиями и конвейерными лентами. + description: Позволяет перевозить ресурсы под зданиями и конвейерами. tier2: name: Туннель II - description: Позволяет перевозить ресурсы под зданиями и конвейерными лентами. + description: Позволяет перевозить ресурсы под зданиями и конвейерами. splitter: # Internal name for the Balancer default: @@ -434,11 +441,11 @@ buildings: compact: name: Соединитель (компактный) - description: Объединяет две конвейерные ленты в одну. + description: Объединяет два конвейера в один. compact-inverse: name: Соединитель (компактный) - description: Объединяет две конвейерные ленты в одну. + description: Объединяет два конвейера в один. cutter: default: @@ -446,7 +453,7 @@ buildings: description: Разрезает фигуры сверху вниз и выводит обе половины. Если вы используете только одну часть, обязательно уничтожьте другую, иначе производство остановится! quad: name: Резчик (Четырехпоточный) - description: Разрезает фигуры на четыре части. Если вы используете только одну часть, обязательно уничтожьте другие, иначе производство остановится! + description: Разрезает фигуры на четыре части. Если вы используете не все части, обязательно уничтожьте оставшиеся, иначе производство остановится! rotater: default: @@ -458,21 +465,21 @@ buildings: stacker: default: - name: &stacker Склеиватель - description: Склеивает оба предмета. Если они не могут быть объединены, правый элемент помещается над левым элементом. + name: &stacker Объединитель + description: Объедининяет два предмета. Если они не могут быть соединены, правый элемент помещается над левым. mixer: default: - name: &mixer Смешиватель цветов + name: &mixer Смеситель description: Смешивает два цвета с помощью аддитивного смешивания. painter: default: name: &painter Покрасчик - description: Красит всю фигуру из левого входа краской из верхнего. + description: Красит всю фигуру из левого входа красителем из верхнего. double: name: Покрасчик (Двойной) - description: Красит фигуру из левых входов краской из верхнего. + description: Красит фигуру из левых входов красителем из верхнего. quad: name: Покрасчик (Четырехпоточный) description: Позволяет раскрасить каждую четверть фигуры разными цветами. @@ -486,110 +493,110 @@ buildings: name: Хранилище description: Хранит лишние предметы, до заданной вместимости. Может использоваться в качестве ворот для пропускания излишков. hub: - deliver: Deliver - toUnlock: to unlock - levelShortcut: LVL + deliver: Доставить + toUnlock: чтобы открыть + levelShortcut: Ур. storyRewards: # Those are the rewards gained from completing the store reward_cutter_and_trash: - title: Cutting Shapes - desc: You just unlocked the cutter - it cuts shapes half from top to bottom regardless of its orientation!

Be sure to get rid of the waste, or otherwise it will stall - For this purpose I gave you a trash, which destroys everything you put into it! + title: Разрезание Фигур + desc: Вы только что открыли резчик - он разрезает фигуры пополам сверху вниз независимо от их ориентации!

Обязательно избавьтесь от отходов, иначе он остановится - для этого я дал вам мусорку, которая уничтожит все, что в нее поместить! reward_rotater: - title: Rotating - desc: The rotater has been unlocked! It rotates shapes clockwise by 90 degrees. + title: Вращение + desc: Разблокирован вращатель! Он поворачивает фигуры по часовой стрелке на 90 градусов. reward_painter: - title: Painting + title: Покраска 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, I'm working on a solution already! + Разблокирован покрасчик! Добудте краситель из жилы (так же как и фигуры) и объедините его с фигурой в покрасчике, чтобы раскрасить ее!

PS: Если вы дальтоник, я уже работаю над решением! reward_mixer: - title: Color Mixing - desc: The mixer has been unlocked - Combine two colors using additive blending with this building! + title: Смешивание Цветов + desc: Разблокирован смеситель! Объедините два цвета в этом здании, используя аддитивное смешивание! 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! + title: Объединитель + desc: Теперь вы можете объединять фигурыw объединителем! Фигуры из обеих входов объединяются. Если они могут быть расположены рядом друг с другом, они будут соединены, иначе фигура из правого входа наложится на фигуру из левого! reward_splitter: - title: Разделитель/соеденитель - desc: Был открыт многофункциональный balancer.It can be used to build bigger factories by splitting and merging items onto multiple belts!

+ title: Разделитель / Соеденитель + desc: Разблокирован многофункциональный разделитель! Его можно использовать для создания больших фабрик путем разделения и соединения конвейеров!

reward_tunnel: title: Туннель - desc: Был открыт Туннель. You can now pipe items through belts and buildings with it! + desc: Разблокирован туннель! Теперь вы можете транспортировать предметы сквозь конвейеры и здания! 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: Вращатель (обратный) + desc: Разблокирован вариант вращателя, он позволяет вращать фигуры против часовой стрелки! Чтобы построить его, выберите вращатель и нажмите 'T' чтобы переключаться между вариантами! reward_miner_chainable: - title: Chaining Extractor - desc: You have unlocked the chaining extractor! It can forward its resources to other extractors so you can more efficiently extract resources! + title: Цепной Экстрактор + desc: Разблокирован цепной экстрактор! Он может передавать свои ресурсы другим экстракторам, чтобы вы могли эффективнее извлекать ресурсы! 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: Туннель II + desc: Разблокирован новый вариант туннеля с большей дальностью, а также вы можете совмещать эти туннели! reward_splitter_compact: - title: Compact Balancer + title: Компактный Соединитель desc: >- - You have unlocked a compact variant of the balancer - It accepts two inputs and merges them into one! + Разблокирован компактный вариант разделителя, он объединяет воедино потоки предметов из двух входов! 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: Резчик (Четырехпоточный) + desc: Разблокирован вариант резчика - он позволяет разрезать фигуры на четыре части вместо, всего лишь двух! 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: Двойной Покрасчик + desc: Разблокирован вариант покрасчика - он работает как обычный покрасчик, но обрабатывает две фигуры одновременно, потребляя только один краситель вместо двух! reward_painter_quad: - title: Quad Painting - desc: You have unlocked a variant of the painter - It allows to paint each part of the shape individually! + title: Четырехпоточный Покрасчик + desc: Разблокирован вариант покрасчика - он позволяет отдельно раскрашивать каждую часть фигуры! reward_storage: - title: Storage Buffer - desc: You have unlocked a variant of the trash - It allows to store items up to a given capacity! + title: Буферное Хранилище + desc: Разблокирован вариант мусорки - он позволяет хранить предметы до заданной вместимости! reward_freeplay: title: Свободная игра - desc: You did it! You unlocked the free-play mode! This means that shapes are now randomly generated! (No worries, more content is planned for the standalone!) + desc: У вас получилось! Разблокирован режим свободной игры! Это означает, что фигуры теперь генерируются случайным образом! (Не беспокойтесь, больше контента планируется в полной версии!) 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: Чертежи + desc: Теперь вы можете копировать и вставлять части вашей фабрики! Выберите область (Удерживая CTRL, перетащите мышь) и нажмите 'C' чтобы скопировать ее.

Вставка не бесплатна, чтобы позволить себе это вам необходимо произвести фигуры для чертежей! (Которые вы только что доставили). # 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 don't destroy your existing factory - You need all those shapes later again to unlock upgrades! + Этот уровень не дал вам награды, но следующий даст!

PS: Лучше не разрушайте вашу существующую фабрику - Вам понадобятся все эти фигуры позже, чтобы разблокировать улучшения! no_reward_freeplay: title: Следующий уровень desc: >- - Congratulations! By the way, more content is planned for the standalone! + Поздравляем! Кстати, больше контента планируется для полной версии! settings: title: Настройки categories: - game: Game - app: Application + game: Игровые + app: Основные versionBadges: - dev: Development - staging: Staging - prod: Production - buildDate: Built + dev: Разработчик + staging: Постановка + prod: Произведена + buildDate: Сборка labels: uiScale: title: Размер интерфейса description: >- - Выберите размер пользовательского интерфейса. The interface will still scale based on your device resolution, but this setting controls the amount of scale. + Выберите размер пользовательского интерфейса. Интерфейс будет по-прежнему масштабироваться в зависимости от разрешения вашего устройства, но этот параметр управляет величиной масштабирования. scales: super_small: Очень маленький small: Маленький @@ -598,9 +605,9 @@ settings: huge: Огромный scrollWheelSensitivity: - title: Zoom sensitivity + title: Чувствительность зума description: >- - Changes how sensitive the zoom is (Either mouse wheel or trackpad). + Изменяет чувствительность зума (колесико мыши или сенсорная панель). sensitivity: super_slow: Очень медленно slow: Медленно @@ -621,12 +628,12 @@ settings: soundsMuted: title: Выключить звуки description: >- - Если включено, выключает все звуковые эффекты + Если включено, выключает все звуковые эффекты. musicMuted: title: Выключить музыку description: >- - Если включено, выключает музыку + Если включено, выключает музыку. theme: title: Тема игры @@ -634,68 +641,68 @@ settings: Выберите тему игры (светлая / темная). themes: - dark: Dark - light: Light + dark: Темная + light: Светлая refreshRate: - title: Simulation Target + title: Частота обновления 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. + Если у вас монитор 144 Гц, измените частоту обновления здесь, чтобы игра правильно выглядела при более высоких частотах обновления. Это может уменьшить FPS, если ваш компьютер работает слишком медленно. alwaysMultiplace: - title: Multiplace + title: Многократное размещение description: >- - If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently. + Если включено, все здания останутся выбранными после размещения, пока вы не отмените выбор. Это эквивалентно постоянному удержанию SHIFT. offerHints: - title: Hints & Tutorials + title: Подсказки & Обучение 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. + title: Скорость движения + description: Изменяет скорость перемещения изображения при использовании клавиатуры. speeds: - super_slow: Super slow - slow: Slow - regular: Regular - fast: Fast - super_fast: Super Fast - extremely_fast: Extremely Fast + super_slow: Очень медленно + slow: Медленно + regular: Средне + fast: Быстро + super_fast: Очень быстро + extremely_fast: Чрезвычайно быстро keybindings: title: Настройки управления hint: >- - Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options. + Подсказка: Обязательно используйте CTRL, SHIFT и ALT! Они дают разные варианты размещения. - resetKeybindings: Настройки по умолчанию + resetKeybindings: Сброс настроек управления categoryLabels: - general: Application - ingame: Game - navigation: Navigating - placement: Placement - massSelect: Mass Select - buildings: Building Shortcuts - placementModifiers: Placement Modifiers + general: Основные + ingame: Игровые + navigation: Навигация + placement: Размещение + massSelect: Множественный Выбор + buildings: Постройки + placementModifiers: Модификаторы Размещения mappings: confirm: Подтвердить back: Назад - mapMoveUp: Move Up - mapMoveRight: Move Right - mapMoveDown: Move Down - mapMoveLeft: Move Left - centerMap: Center Map + mapMoveUp: Вверх + mapMoveRight: Вправо + mapMoveDown: Вниз + mapMoveLeft: Влево + centerMap: Центрировать карту - mapZoomIn: Zoom in - mapZoomOut: Zoom out - createMarker: Create Marker + mapZoomIn: Приблизить + mapZoomOut: Отдалить + createMarker: Создать Маркер - menuOpenShop: Upgrades - menuOpenStats: Statistics + menuOpenShop: Улучшения + menuOpenStats: Статистика - toggleHud: Toggle HUD + toggleHud: Переключить HUD toggleFPSInfo: Включить/выключить FPS и информацию отладки belt: *belt splitter: *splitter @@ -708,35 +715,54 @@ keybindings: painter: *painter trash: *trash - abortBuildingPlacement: Abort Placement - rotateWhilePlacing: Rotate + abortBuildingPlacement: Прекратить размещение + rotateWhilePlacing: Вращать rotateInverseModifier: >- - Modifier: Rotate CCW instead - cycleBuildingVariants: Cycle Variants - confirmMassDelete: Confirm Mass Delete - cycleBuildings: Cycle Buildings + Модификатор: Вращать против часовой стрелки + cycleBuildingVariants: Переключение Вариантов + confirmMassDelete: Подтверждение Массового Удаления + cycleBuildings: Переключение Построек - massSelectStart: Hold and drag to start - massSelectSelectMultiple: Select multiple areas - massSelectCopy: Copy area + massSelectStart: Удерживайте и тащите, чтобы начать + massSelectSelectMultiple: Выбрать несколько областей + massSelectCopy: Копировать область - placementDisableAutoOrientation: Disable automatic orientation - placeMultiple: Stay in placement mode - placeInverse: Invert automatic belt orientation - pasteLastBlueprint: Paste last blueprint - massSelectCut: Cut area + placementDisableAutoOrientation: Отключить авто-определение направления + placeMultiple: Оставаться в режиме размещения + placeInverse: Инвертировать авто-определение направления конвейеров + pasteLastBlueprint: Вставить последний чертеж + massSelectCut: Вырезать область + exportScreenshot: Экспорт всей Базы в виде Изображения about: title: О игре + body: >- + Эта игра с открытым исходным кодом, разработана Тобиасом Спрингером (это я).

+ + Если вы хотите внести свой вклад то вам сюда - shapez.io в github.

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

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

+ + Наконец, огромное спасибо моему лучшему другу Niklas - Без наших + игровых сессий в factorio эта игра никогда не существовала бы. changelog: title: Список измений demo: features: - restoringGames: Restoring savegames - importingGames: Importing savegames - oneGameLimit: Limited to one savegame - customizeKeybindings: Customizing Keybindings + restoringGames: Восстановить сохранения игр + importingGames: Импортировать сохранения игр + oneGameLimit: Ограниченность одним сохранением игры + customizeKeybindings: Пользовательская настройка Управления + exportingBase: Экспорт всей Базы в виде Изображения settingNotAvailable: Не доступно в демо-версии. diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index 8652e2b1..1eeadd47 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -725,9 +731,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -738,5 +762,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-tr.yaml b/translations/base-tr.yaml index 3cc99a7d..dfd97ed3 100644 --- a/translations/base-tr.yaml +++ b/translations/base-tr.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -726,9 +732,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -739,5 +763,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-zh-CN.yaml b/translations/base-zh-CN.yaml index 8652e2b1..1eeadd47 100644 --- a/translations/base-zh-CN.yaml +++ b/translations/base-zh-CN.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -725,9 +731,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -738,5 +762,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 8652e2b1..1eeadd47 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -260,6 +260,12 @@ dialogs: You are cutting a lot of buildings ( to be exact)! Are you sure you want to do this? + exportScreenshotWarning: + title: Export screenshot + desc: >- + You requested to export your base as a screenshot. Please note that this can + be quite slow for a big base and even crash your game! + ingame: # This is shown in the top left corner and displays useful keybindings in # every situation @@ -725,9 +731,27 @@ keybindings: placeInverse: Invert automatic belt orientation pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area + exportScreenshot: Export whole Base as Image about: title: About this Game + body: >- + This game is open source and developed by Tobias Springer (this is me).

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

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

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

+ + Finally, huge thanks to my best friend Niklas - Without our + factorio sessions this game would never have existed. changelog: title: Changelog @@ -738,5 +762,6 @@ demo: importingGames: Importing savegames oneGameLimit: Limited to one savegame customizeKeybindings: Customizing Keybindings + exportingBase: Exporting whole Base as Image settingNotAvailable: Not available in the demo. diff --git a/version b/version index 9695327b..51653031 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.1.10 \ No newline at end of file +1.1.11 \ No newline at end of file