1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-06-13 13:04:03 +00:00

Merge remote-tracking branch 'origin/master' into GeoZ

This commit is contained in:
Exund 2020-09-13 22:49:45 +02:00
commit 9ee7b642bc
40 changed files with 11642 additions and 11293 deletions

View File

@ -36,6 +36,7 @@
"core-js": "3", "core-js": "3",
"crc": "^3.8.0", "crc": "^3.8.0",
"cssnano-preset-advanced": "^4.0.7", "cssnano-preset-advanced": "^4.0.7",
"debounce-promise": "^3.1.2",
"email-validator": "^2.0.4", "email-validator": "^2.0.4",
"eslint": "7.1.0", "eslint": "7.1.0",
"fastdom": "^1.0.8", "fastdom": "^1.0.8",

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:a4f810fcfbfcea08cfb48a8d58f9b65d1fd14cd20ff3cabf94a03c39b5250547 oid sha256:3207e92c0fa5e71030d04c739647032be2697bf910eb7b7d9548bf04e95803b1
size 1765124 size 1223220

View File

@ -351,12 +351,12 @@ canvas {
box-sizing: border-box; box-sizing: border-box;
} }
.pressed { .pressed:not(.noPressEffect) {
transform: scale(0.98) !important; transform: scale(0.98) !important;
animation: none !important; animation: none !important;
} }
.pressedSmallElement { .pressedSmallElement:not(.noPressEffect) {
transform: scale(0.88) !important; transform: scale(0.88) !important;
animation: none !important; animation: none !important;
} }
@ -570,36 +570,46 @@ canvas {
} }
} }
.range { .rangeInputContainer {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
label {
@include S(margin-right, 5px);
&,
& * {
@include PlainText;
}
}
} }
.range-input { input.rangeInput {
cursor: pointer; cursor: pointer;
background-color: transparent; background-color: transparent;
width: 100px; @include S(width, 100px);
height: 10px; @include S(height, 16px);
transform: translate(7px, 2px);
&::-webkit-slider-runnable-track { &::-webkit-slider-runnable-track {
background-color: darken($mainBgColor, 3); background-color: darken($mainBgColor, 3);
color: darken($mainBgColor, 3); color: darken($mainBgColor, 3);
height: 16px; // @include S(height, 16px);
border-radius: 8px; @include S(border-radius, 8px);
} }
&::-webkit-slider-thumb { &::-webkit-slider-thumb {
appearance: none; appearance: none;
-webkit-appearance: none; -webkit-appearance: none;
box-shadow: inset 0 0 0 10px $themeColor; box-shadow: inset 0 0 0 D(10px) $themeColor;
background-color: transparent;
width: 20px;
height: 20px;
border-radius: 50%; border-radius: 50%;
transition: 0.3s;
transition: box-shadow 0.3s;
} }
&:hover::-webkit-slider-thumb {
box-shadow: inset 0 0 0 10px lighten($themeColor, 15); &:hover {
&::-webkit-slider-thumb {
box-shadow: inset 0 0 0 D(10px) lighten($themeColor, 15);
}
} }
} }

View File

@ -18,6 +18,14 @@
background-color: #55585a; background-color: #55585a;
} }
transition: opacity 0.1s ease-out;
&.hovered {
opacity: 0.1;
.buildingImage {
opacity: 0;
}
}
.buildingLabel { .buildingLabel {
@include PlainText; @include PlainText;
@include S(margin-bottom, 2px); @include S(margin-bottom, 2px);
@ -70,6 +78,7 @@
@include S(height, 100px); @include S(height, 100px);
background: top left / 100% 100% no-repeat; background: top left / 100% 100% no-repeat;
@include S(border-radius, $globalBorderRadius); @include S(border-radius, $globalBorderRadius);
transition: opacity 0.1s ease-in-out;
} }
@include StyleBelowWidth(700px) { @include StyleBelowWidth(700px) {

View File

@ -34,19 +34,6 @@
&:hover { &:hover {
opacity: 0.8; opacity: 0.8;
} }
&.music {
background-image: uiResource("icons/music_on.png");
&.muted {
background-image: uiResource("icons/music_off.png");
}
}
&.sfx {
background-image: uiResource("icons/sound_on.png");
&.muted {
background-image: uiResource("icons/sound_off.png");
}
}
&.save { &.save {
background-image: uiResource("icons/save.png"); background-image: uiResource("icons/save.png");

View File

@ -29,6 +29,16 @@
} }
} }
pointer-events: all;
transition: opacity 0.1s ease-out;
&.hovered {
opacity: 10%;
.helperGif {
opacity: 0%;
}
}
.title { .title {
color: #fff; color: #fff;
opacity: 0.5; opacity: 0.5;
@ -48,5 +58,6 @@
@include S(margin-top, 5px); @include S(margin-top, 5px);
@include S(height, 150px); @include S(height, 150px);
background: center center / contain no-repeat; background: center center / contain no-repeat;
transition: opacity 0.1s ease-out;
} }
} }

View File

@ -14,6 +14,11 @@
color: #fff; color: #fff;
} }
transition: opacity 0.1s ease-out;
&.hovered {
opacity: 0.1;
}
> .binding { > .binding {
&:not(.visible) { &:not(.visible) {
display: none !important; display: none !important;

View File

@ -34,6 +34,18 @@
flex-direction: column; flex-direction: column;
@include DarkThemeInvert(); @include DarkThemeInvert();
max-height: 50vh;
overflow-x: hidden;
overflow-y: auto;
pointer-events: all;
@include S(padding-right, 5px);
// Scrollbar
&::-webkit-scrollbar {
@include S(width, 2px);
@include S(height, 6px);
}
.waypoint { .waypoint {
@include SuperSmallText; @include SuperSmallText;
pointer-events: all; pointer-events: all;

View File

@ -22,11 +22,6 @@
@include S(border-radius, $globalBorderRadius); @include S(border-radius, $globalBorderRadius);
@include S(margin-bottom, 5px); @include S(margin-bottom, 5px);
label {
text-transform: uppercase;
@include Text;
}
.desc { .desc {
@include S(margin-top, 5px); @include S(margin-top, 5px);
@include SuperSmallText; @include SuperSmallText;
@ -37,6 +32,11 @@
display: grid; display: grid;
align-items: center; align-items: center;
grid-template-columns: 1fr auto; grid-template-columns: 1fr auto;
> label {
text-transform: uppercase;
@include Text;
}
} }
&.disabled { &.disabled {

View File

@ -17,15 +17,20 @@ export const CHANGELOG = [
"Added a button to the statistics dialog to disable the sorting (by squeek502)", "Added a button to the statistics dialog to disable the sorting (by squeek502)",
"Tier 2 tunnels are now 9 tiles wide, so the gap between is 8 tiles (double the tier 1 range)", "Tier 2 tunnels are now 9 tiles wide, so the gap between is 8 tiles (double the tier 1 range)",
"Updated and added new translations (Thanks to all contributors!)", "Updated and added new translations (Thanks to all contributors!)",
"Show connected chained miners on hover",
"Added setting to be able to delete buildings while placing (inspired by hexy)", "Added setting to be able to delete buildings while placing (inspired by hexy)",
"You can now adjust the sound and music volumes! (inspired by Yoshie2000)",
"Some hud elements now have reduced opacity when hovering, so you can see through (inspired by mvb005)",
"Mark pinned shapes in statistics dialog and show them first (inspired by davidburhans)", "Mark pinned shapes in statistics dialog and show them first (inspired by davidburhans)",
"Added setting to show chunk borders", "Added setting to show chunk borders",
"Quad painters have been reworked! They now are integrated with the wires, and only paint the shape when the value is 1 (inspired by dengr1605)", "Quad painters have been reworked! They now are integrated with the wires, and only paint the shape when the value is 1 (inspired by dengr1605)",
"There are now compact 1x1 splitters available to be unlocked!", "There are now compact 1x1 splitters available to be unlocked!",
"Replaced level completion sound to be less distracting",
"Allow editing waypoints (by isaisstillalive)", "Allow editing waypoints (by isaisstillalive)",
"Show confirmation when cutting area which is too expensive to get pasted again (by isaisstillalive)", "Show confirmation when cutting area which is too expensive to get pasted again (by isaisstillalive)",
"Show mouse and camera tile on debug overlay (F4) (by dengr)", "Show mouse and camera tile on debug overlay (F4) (by dengr)",
"Fix tunnels entrances connecting to exits sometimes when they shouldn't", "Fixed tunnels entrances connecting to exits sometimes when they shouldn't",
"Added setting to auto select the extractor when pipetting a resource patch (by Exund)",
"The initial belt planner direction is now based on the cursor movement (by MizardX)", "The initial belt planner direction is now based on the cursor movement (by MizardX)",
"Fix preferred variant not getting saved when clicking on the hud (by Danacus)", "Fix preferred variant not getting saved when clicking on the hud (by Danacus)",
], ],

View File

@ -12,6 +12,8 @@ import { decompressX64, compressX64 } from "./lzstring";
import { asyncCompressor, compressionPrefix } from "./async_compression"; import { asyncCompressor, compressionPrefix } from "./async_compression";
import { compressObject, decompressObject } from "../savegame/savegame_compressor"; import { compressObject, decompressObject } from "../savegame/savegame_compressor";
const debounce = require("debounce-promise");
const logger = createLogger("read_write_proxy"); const logger = createLogger("read_write_proxy");
const salt = accessNestedPropertyReverse(globalConfig, ["file", "info"]); const salt = accessNestedPropertyReverse(globalConfig, ["file", "info"]);
@ -36,6 +38,11 @@ export class ReadWriteProxy {
); );
}); });
} }
/**
* Store a debounced handler to prevent double writes
*/
this.debouncedWrite = debounce(this.doWriteAsync.bind(this), 50);
} }
// -- Methods to override // -- Methods to override
@ -122,7 +129,8 @@ export class ReadWriteProxy {
} }
/** /**
* Writes the data asychronously, fails if verify() fails * Writes the data asychronously, fails if verify() fails.
* Debounces the operation by up to 50ms
* @returns {Promise<void>} * @returns {Promise<void>}
*/ */
writeAsync() { writeAsync() {
@ -133,6 +141,14 @@ export class ReadWriteProxy {
return Promise.reject(verifyResult.reason); return Promise.reject(verifyResult.reason);
} }
return this.debouncedWrite();
}
/**
* Actually writes the data asychronously
* @returns {Promise<void>}
*/
doWriteAsync() {
return asyncCompressor return asyncCompressor
.compressObjectAsync(this.currentData) .compressObjectAsync(this.currentData)
.then(compressed => { .then(compressed => {

View File

@ -1,6 +1,7 @@
import { types } from "../../savegame/serialization"; import { types } from "../../savegame/serialization";
import { BaseItem } from "../base_item"; import { BaseItem } from "../base_item";
import { Component } from "../component"; import { Component } from "../component";
import { Entity } from "../entity";
import { typeItemSingleton } from "../item_resolver"; import { typeItemSingleton } from "../item_resolver";
const chainBufferSize = 6; const chainBufferSize = 6;
@ -40,6 +41,13 @@ export class MinerComponent extends Component {
* @type {BaseItem} * @type {BaseItem}
*/ */
this.cachedMinedItem = null; this.cachedMinedItem = null;
/**
* Which miner this miner ejects to, in case its a chainable one.
* If the value is false, it means there is no entity, and we don't have to re-check
* @type {Entity|null|false}
*/
this.cachedChainedMiner = null;
} }
/** /**

View File

@ -1,3 +1,4 @@
import { TrackedState } from "../../core/tracked_state";
import { GameRoot } from "../root"; import { GameRoot } from "../root";
// Automatically attaches and detaches elements from the dom // Automatically attaches and detaches elements from the dom
@ -7,15 +8,28 @@ import { GameRoot } from "../root";
// Also attaches a class name if desired // Also attaches a class name if desired
export class DynamicDomAttach { export class DynamicDomAttach {
constructor(root, element, { timeToKeepSeconds = 0, attachClass = null } = {}) { /**
*
* @param {GameRoot} root
* @param {HTMLElement} element
* @param {object} param2
* @param {number=} param2.timeToKeepSeconds How long to keep the element visible (in ms) after it should be hidden.
* Useful for fade-out effects
* @param {string=} param2.attachClass If set, attaches a class while the element is visible
* @param {boolean=} param2.trackHover If set, attaches the 'hovered' class if the cursor is above the element. Useful
* for fading out the element if its below the cursor for example.
*/
constructor(root, element, { timeToKeepSeconds = 0, attachClass = null, trackHover = false } = {}) {
/** @type {GameRoot} */ /** @type {GameRoot} */
this.root = root; this.root = root;
/** @type {HTMLElement} */ /** @type {HTMLElement} */
this.element = element; this.element = element;
this.parent = this.element.parentElement; this.parent = this.element.parentElement;
assert(this.parent, "Dom attach created without parent");
this.attachClass = attachClass; this.attachClass = attachClass;
this.trackHover = trackHover;
this.timeToKeepSeconds = timeToKeepSeconds; this.timeToKeepSeconds = timeToKeepSeconds;
this.lastVisibleTime = 0; this.lastVisibleTime = 0;
@ -26,8 +40,19 @@ export class DynamicDomAttach {
this.internalIsClassAttached = false; this.internalIsClassAttached = false;
this.classAttachTimeout = null; this.classAttachTimeout = null;
// Store the last bounds we computed
/** @type {DOMRect} */
this.lastComputedBounds = null;
this.lastComputedBoundsTime = -1;
// Track the 'hovered' class
this.trackedIsHovered = new TrackedState(this.setIsHoveredClass, this);
} }
/**
* Internal method to attach the element
*/
internalAttach() { internalAttach() {
if (!this.attached) { if (!this.attached) {
this.parent.appendChild(this.element); this.parent.appendChild(this.element);
@ -36,6 +61,9 @@ export class DynamicDomAttach {
} }
} }
/**
* Internal method to detach the element
*/
internalDetach() { internalDetach() {
if (this.attached) { if (this.attached) {
assert(this.element.parentElement === this.parent, "Invalid parent #2"); assert(this.element.parentElement === this.parent, "Invalid parent #2");
@ -44,14 +72,50 @@ export class DynamicDomAttach {
} }
} }
/**
* Returns whether the element is currently attached
*/
isAttached() { isAttached() {
return this.attached; return this.attached;
} }
/**
* Actually sets the 'hovered' class
* @param {boolean} isHovered
*/
setIsHoveredClass(isHovered) {
this.element.classList.toggle("hovered", isHovered);
}
/**
* Call this every frame, and the dom attach class will take care of
* everything else
* @param {boolean} isVisible Whether the element should currently be visible or not
*/
update(isVisible) { update(isVisible) {
if (isVisible) { if (isVisible) {
this.lastVisibleTime = this.root ? this.root.time.realtimeNow() : 0; this.lastVisibleTime = this.root ? this.root.time.realtimeNow() : 0;
this.internalAttach(); this.internalAttach();
if (this.trackHover && this.root) {
let bounds = this.lastComputedBounds;
// Recompute bounds only once in a while
if (!bounds || this.root.time.realtimeNow() - this.lastComputedBoundsTime > 1.0) {
bounds = this.lastComputedBounds = this.element.getBoundingClientRect();
this.lastComputedBoundsTime = this.root.time.realtimeNow();
}
const mousePos = this.root.app.mousePosition;
if (mousePos) {
this.trackedIsHovered.set(
mousePos.x > bounds.left &&
mousePos.x < bounds.right &&
mousePos.y > bounds.top &&
mousePos.y < bounds.bottom
);
}
}
} else { } else {
if (!this.root || this.root.time.realtimeNow() - this.lastVisibleTime >= this.timeToKeepSeconds) { if (!this.root || this.root.time.realtimeNow() - this.lastVisibleTime >= this.timeToKeepSeconds) {
this.internalDetach(); this.internalDetach();

View File

@ -43,6 +43,7 @@ import { HUDWiresToolbar } from "./parts/wires_toolbar";
import { HUDWireInfo } from "./parts/wire_info"; import { HUDWireInfo } from "./parts/wire_info";
import { HUDLeverToggle } from "./parts/lever_toggle"; import { HUDLeverToggle } from "./parts/lever_toggle";
import { HUDLayerPreview } from "./parts/layer_preview"; import { HUDLayerPreview } from "./parts/layer_preview";
import { HUDMinerHighlight } from "./parts/miner_highlight";
export class GameHUD { export class GameHUD {
/** /**
@ -83,6 +84,8 @@ export class GameHUD {
wiresOverlay: new HUDWiresOverlay(this.root), wiresOverlay: new HUDWiresOverlay(this.root),
layerPreview: new HUDLayerPreview(this.root), layerPreview: new HUDLayerPreview(this.root),
minerHighlight: new HUDMinerHighlight(this.root),
// Typing hints // Typing hints
/* typehints:start */ /* typehints:start */
/** @type {HUDChangesDebugger} */ /** @type {HUDChangesDebugger} */
@ -239,6 +242,7 @@ export class GameHUD {
"blueprintPlacer", "blueprintPlacer",
"colorBlindHelper", "colorBlindHelper",
"changesDebugger", "changesDebugger",
"minerHighlight",
]; ];
for (let i = 0; i < partsOrder.length; ++i) { for (let i = 0; i < partsOrder.length; ++i) {

View File

@ -55,7 +55,7 @@ export class HUDBuildingPlacer extends HUDBuildingPlacerLogic {
this.signals.variantChanged.add(this.rerenderVariants, this); this.signals.variantChanged.add(this.rerenderVariants, this);
this.root.hud.signals.buildingSelectedForPlacement.add(this.startSelection, this); this.root.hud.signals.buildingSelectedForPlacement.add(this.startSelection, this);
this.domAttach = new DynamicDomAttach(this.root, this.element, {}); this.domAttach = new DynamicDomAttach(this.root, this.element, { trackHover: true });
this.variantsAttach = new DynamicDomAttach(this.root, this.variantsElement, {}); this.variantsAttach = new DynamicDomAttach(this.root, this.variantsElement, {});
this.currentInterpolatedCornerTile = new Vector(); this.currentInterpolatedCornerTile = new Vector();
@ -233,8 +233,8 @@ export class HUDBuildingPlacer extends HUDBuildingPlacerLogic {
return; return;
} }
this.domAttach.update(this.currentMetaBuilding.get()); this.domAttach.update(!!this.currentMetaBuilding.get());
this.variantsAttach.update(this.currentMetaBuilding.get()); this.variantsAttach.update(!!this.currentMetaBuilding.get());
const metaBuilding = this.currentMetaBuilding.get(); const metaBuilding = this.currentMetaBuilding.get();
if (!metaBuilding) { if (!metaBuilding) {

View File

@ -327,7 +327,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
const tileBelow = this.root.map.getLowerLayerContentXY(tile.x, tile.y); const tileBelow = this.root.map.getLowerLayerContentXY(tile.x, tile.y);
// Check if there's a shape or color item below, if so select the miner // Check if there's a shape or color item below, if so select the miner
if (tileBelow) { if (tileBelow && this.root.app.settings.getAllSettings().pickMinerOnPatch) {
this.currentMetaBuilding.set(gMetaBuildingRegistry.findByClass(MetaMinerBuilding)); this.currentMetaBuilding.set(gMetaBuildingRegistry.findByClass(MetaMinerBuilding));
// Select chained miner if available, since thats always desired once unlocked // Select chained miner if available, since thats always desired once unlocked

View File

@ -88,19 +88,13 @@ export class HUDGameMenu extends BaseHUDPart {
const menuButtons = makeDiv(this.element, null, ["menuButtons"]); const menuButtons = makeDiv(this.element, null, ["menuButtons"]);
this.musicButton = makeDiv(menuButtons, null, ["button", "music"]);
this.sfxButton = makeDiv(menuButtons, null, ["button", "sfx"]);
this.saveButton = makeDiv(menuButtons, null, ["button", "save", "animEven"]); this.saveButton = makeDiv(menuButtons, null, ["button", "save", "animEven"]);
this.settingsButton = makeDiv(menuButtons, null, ["button", "settings"]); this.settingsButton = makeDiv(menuButtons, null, ["button", "settings"]);
this.trackClicks(this.musicButton, this.toggleMusic);
this.trackClicks(this.sfxButton, this.toggleSfx);
this.trackClicks(this.saveButton, this.startSave); this.trackClicks(this.saveButton, this.startSave);
this.trackClicks(this.settingsButton, this.openSettings); this.trackClicks(this.settingsButton, this.openSettings);
this.musicButton.classList.toggle("muted", this.root.app.settings.getAllSettings().musicMuted);
this.sfxButton.classList.toggle("muted", this.root.app.settings.getAllSettings().soundsMuted);
} }
initialize() { initialize() {
this.root.signals.gameSaved.add(this.onGameSaved, this); this.root.signals.gameSaved.add(this.onGameSaved, this);
} }
@ -111,7 +105,7 @@ export class HUDGameMenu extends BaseHUDPart {
// Update visibility of buttons // Update visibility of buttons
for (let i = 0; i < this.visibilityToUpdate.length; ++i) { for (let i = 0; i < this.visibilityToUpdate.length; ++i) {
const { button, condition, domAttach } = this.visibilityToUpdate[i]; const { condition, domAttach } = this.visibilityToUpdate[i];
domAttach.update(condition()); domAttach.update(condition());
} }
@ -172,17 +166,4 @@ export class HUDGameMenu extends BaseHUDPart {
openSettings() { openSettings() {
this.root.hud.parts.settingsMenu.show(); this.root.hud.parts.settingsMenu.show();
} }
toggleMusic() {
const newValue = !this.root.app.settings.getAllSettings().musicMuted;
this.root.app.settings.updateSetting("musicMuted", newValue);
this.musicButton.classList.toggle("muted", newValue);
}
toggleSfx() {
const newValue = !this.root.app.settings.getAllSettings().soundsMuted;
this.root.app.settings.updateSetting("soundsMuted", newValue);
this.sfxButton.classList.toggle("muted", newValue);
}
} }

View File

@ -48,7 +48,7 @@ export class HUDInteractiveTutorial extends BaseHUDPart {
} }
initialize() { initialize() {
this.domAttach = new DynamicDomAttach(this.root, this.element); this.domAttach = new DynamicDomAttach(this.root, this.element, { trackHover: true });
this.currentHintId = new TrackedState(this.onHintChanged, this); this.currentHintId = new TrackedState(this.onHintChanged, this);
} }

View File

@ -28,8 +28,6 @@ const ADDER_TOKEN = "+";
*/ */
export class HUDKeybindingOverlay extends BaseHUDPart { export class HUDKeybindingOverlay extends BaseHUDPart {
initialize() {}
/** /**
* HELPER / Returns if there is a building selected for placement * HELPER / Returns if there is a building selected for placement
* @returns {boolean} * @returns {boolean}
@ -310,6 +308,12 @@ export class HUDKeybindingOverlay extends BaseHUDPart {
} }
} }
initialize() {
this.domAttach = new DynamicDomAttach(this.root, this.element, {
trackHover: true,
});
}
update() { update() {
for (let i = 0; i < this.keybindings.length; ++i) { for (let i = 0; i < this.keybindings.length; ++i) {
const handle = this.keybindings[i]; const handle = this.keybindings[i];
@ -319,5 +323,8 @@ export class HUDKeybindingOverlay extends BaseHUDPart {
handle.cachedElement.classList.toggle("visible", visibility); handle.cachedElement.classList.toggle("visible", visibility);
} }
} }
// Required for hover
this.domAttach.update(true);
} }
} }

View File

@ -0,0 +1,170 @@
import { globalConfig } from "../../../core/config";
import { formatItemsPerSecond, round2Digits } from "../../../core/utils";
import { Vector } from "../../../core/vector";
import { T } from "../../../translations";
import { Entity } from "../../entity";
import { THEME } from "../../theme";
import { BaseHUDPart } from "../base_hud_part";
export class HUDMinerHighlight extends BaseHUDPart {
initialize() {}
/**
*
* @param {import("../../../core/draw_utils").DrawParameters} parameters
*/
draw(parameters) {
const mousePos = this.root.app.mousePosition;
if (!mousePos) {
// Mouse pos not ready
return;
}
if (this.root.currentLayer !== "regular") {
// Not within the regular layer
return;
}
if (this.root.camera.getIsMapOverlayActive()) {
// Not within the map overlay
return;
}
const worldPos = this.root.camera.screenToWorld(mousePos);
const hoveredTile = worldPos.toTileSpace();
const contents = this.root.map.getTileContent(hoveredTile, "regular");
if (!contents) {
// Empty tile
return;
}
const minerComp = contents.components.Miner;
if (!minerComp || !minerComp.chainable) {
// Not a chainable miner
return;
}
parameters.context.fillStyle = THEME.map.connectedMiners.overlay;
const connectedEntities = this.findConnectedMiners(contents);
for (let i = 0; i < connectedEntities.length; ++i) {
const entity = connectedEntities[i];
const staticComp = entity.components.StaticMapEntity;
parameters.context.beginRoundedRect(
staticComp.origin.x * globalConfig.tileSize + 5,
staticComp.origin.y * globalConfig.tileSize + 5,
globalConfig.tileSize - 10,
globalConfig.tileSize - 10,
3
);
parameters.context.fill();
}
const throughput = round2Digits(connectedEntities.length * this.root.hubGoals.getMinerBaseSpeed());
const maxThroughput = this.root.hubGoals.getBeltBaseSpeed();
const screenPos = this.root.camera.screenToWorld(mousePos);
const scale = (1 / this.root.camera.zoomLevel) * this.root.app.getEffectiveUiScale();
const isCapped = throughput > maxThroughput;
// Background
parameters.context.fillStyle = THEME.map.connectedMiners.background;
parameters.context.beginRoundedRect(
screenPos.x + 5 * scale,
screenPos.y - 3 * scale,
(isCapped ? 100 : 65) * scale,
(isCapped ? 45 : 30) * scale,
2
);
parameters.context.fill();
// Throughput
parameters.context.fillStyle = THEME.map.connectedMiners.textColor;
parameters.context.font = "bold " + scale * 10 + "px GameFont";
parameters.context.fillText(
formatItemsPerSecond(throughput),
screenPos.x + 10 * scale,
screenPos.y + 10 * scale
);
// Amount of miners
parameters.context.globalAlpha = 0.6;
parameters.context.font = "bold " + scale * 8 + "px GameFont";
parameters.context.fillText(
connectedEntities.length === 1
? T.ingame.connectedMiners.one_miner
: T.ingame.connectedMiners.n_miners.replace("<amount>", String(connectedEntities.length)),
screenPos.x + 10 * scale,
screenPos.y + 22 * scale
);
parameters.context.globalAlpha = 1;
if (isCapped) {
parameters.context.fillStyle = THEME.map.connectedMiners.textColorCapped;
parameters.context.fillText(
T.ingame.connectedMiners.limited_items.replace(
"<max_throughput>",
formatItemsPerSecond(maxThroughput)
),
screenPos.x + 10 * scale,
screenPos.y + 34 * scale
);
}
}
/**
* Finds all connected miners to the given entity
* @param {Entity} entity
* @param {Set<number>} seenUids Which entities have already been processed
* @returns {Array<Entity>} The connected miners
*/
findConnectedMiners(entity, seenUids = new Set()) {
let results = [];
const origin = entity.components.StaticMapEntity.origin;
if (!seenUids.has(entity.uid)) {
seenUids.add(entity.uid);
results.push(entity);
}
// Check for the miner which we connect to
const connectedMiner = this.root.systemMgr.systems.miner.findChainedMiner(entity);
if (connectedMiner && !seenUids.has(connectedMiner.uid)) {
results.push(connectedMiner);
seenUids.add(connectedMiner.uid);
results.push(...this.findConnectedMiners(connectedMiner, seenUids));
}
// Search within a 1x1 grid - this assumes miners are always 1x1
for (let dx = -1; dx <= 1; ++dx) {
for (let dy = -1; dy <= 1; ++dy) {
const contents = this.root.map.getTileContent(
new Vector(origin.x + dx, origin.y + dy),
"regular"
);
if (contents) {
const minerComp = contents.components.Miner;
if (minerComp && minerComp.chainable) {
// Found a miner connected to this entity
if (!seenUids.has(contents.uid)) {
if (this.root.systemMgr.systems.miner.findChainedMiner(contents) === entity) {
results.push(contents);
seenUids.add(contents.uid);
results.push(...this.findConnectedMiners(contents, seenUids));
}
}
}
}
}
}
return results;
}
}

View File

@ -212,43 +212,5 @@ export class MapView extends BaseMap {
} }
this.drawVisibleChunks(parameters, MapChunkView.prototype.drawBackgroundLayer); this.drawVisibleChunks(parameters, MapChunkView.prototype.drawBackgroundLayer);
if (G_IS_DEV && globalConfig.debug.showChunkBorders) {
const cullRange = parameters.visibleRect.toTileCullRectangle();
const top = cullRange.top();
const right = cullRange.right();
const bottom = cullRange.bottom();
const left = cullRange.left();
const border = 1;
const minY = top - border;
const maxY = bottom + border;
const minX = left - border;
const maxX = right + border - 1;
const chunkStartX = Math.floor(minX / globalConfig.mapChunkSize);
const chunkStartY = Math.floor(minY / globalConfig.mapChunkSize);
const chunkEndX = Math.ceil(maxX / globalConfig.mapChunkSize);
const chunkEndY = Math.ceil(maxY / globalConfig.mapChunkSize);
for (let chunkX = chunkStartX; chunkX <= chunkEndX; ++chunkX) {
for (let chunkY = chunkStartY; chunkY <= chunkEndY; ++chunkY) {
parameters.context.fillStyle = "#ffaaaa";
parameters.context.fillRect(
chunkX * globalConfig.mapChunkWorldSize,
chunkY * globalConfig.mapChunkWorldSize,
globalConfig.mapChunkWorldSize,
3
);
parameters.context.fillRect(
chunkX * globalConfig.mapChunkWorldSize,
chunkY * globalConfig.mapChunkWorldSize,
3,
globalConfig.mapChunkWorldSize
);
}
}
}
} }
} }

View File

@ -10,6 +10,24 @@ import { MapChunkView } from "../map_chunk_view";
export class MinerSystem extends GameSystemWithFilter { export class MinerSystem extends GameSystemWithFilter {
constructor(root) { constructor(root) {
super(root, [MinerComponent]); super(root, [MinerComponent]);
this.needsRecompute = true;
this.root.signals.entityAdded.add(this.onEntityChanged, this);
this.root.signals.entityChanged.add(this.onEntityChanged, this);
this.root.signals.entityDestroyed.add(this.onEntityChanged, this);
}
/**
* Called whenever an entity got changed
* @param {Entity} entity
*/
onEntityChanged(entity) {
const minerComp = entity.components.Miner;
if (minerComp && minerComp.chainable) {
// Miner component, need to recompute
this.needsRecompute = true;
}
} }
update() { update() {
@ -20,11 +38,15 @@ export class MinerSystem extends GameSystemWithFilter {
for (let i = 0; i < this.allEntities.length; ++i) { for (let i = 0; i < this.allEntities.length; ++i) {
const entity = this.allEntities[i]; const entity = this.allEntities[i];
const minerComp = entity.components.Miner;
// Reset everything on recompute
if (this.needsRecompute) {
minerComp.cachedChainedMiner = null;
}
// Check if miner is above an actual tile // Check if miner is above an actual tile
const minerComp = entity.components.Miner;
if (!minerComp.cachedMinedItem) { if (!minerComp.cachedMinedItem) {
const staticComp = entity.components.StaticMapEntity; const staticComp = entity.components.StaticMapEntity;
const tileBelow = this.root.map.getLowerLayerContentXY( const tileBelow = this.root.map.getLowerLayerContentXY(
@ -59,6 +81,36 @@ export class MinerSystem extends GameSystemWithFilter {
} }
} }
} }
// After this frame we are done
this.needsRecompute = false;
}
/**
* Finds the target chained miner for a given entity
* @param {Entity} entity
* @returns {Entity|false} The chained entity or null if not found
*/
findChainedMiner(entity) {
const ejectComp = entity.components.ItemEjector;
const staticComp = entity.components.StaticMapEntity;
const ejectingSlot = ejectComp.slots[0];
const ejectingPos = staticComp.localTileToWorld(ejectingSlot.pos);
const ejectingDirection = staticComp.localDirectionToWorld(ejectingSlot.direction);
const targetTile = ejectingPos.add(enumDirectionToVector[ejectingDirection]);
const targetContents = this.root.map.getTileContent(targetTile, "regular");
// Check if we are connected to another miner and thus do not eject directly
if (targetContents) {
const targetMinerComp = targetContents.components.Miner;
if (targetMinerComp && targetMinerComp.chainable) {
return targetContents;
}
}
return false;
} }
/** /**
@ -69,26 +121,23 @@ export class MinerSystem extends GameSystemWithFilter {
tryPerformMinerEject(entity, item) { tryPerformMinerEject(entity, item) {
const minerComp = entity.components.Miner; const minerComp = entity.components.Miner;
const ejectComp = entity.components.ItemEjector; const ejectComp = entity.components.ItemEjector;
const staticComp = entity.components.StaticMapEntity;
// Check if we are a chained miner // Check if we are a chained miner
if (minerComp.chainable) { if (minerComp.chainable) {
const ejectingSlot = ejectComp.slots[0]; const targetEntity = minerComp.cachedChainedMiner;
const ejectingPos = staticComp.localTileToWorld(ejectingSlot.pos);
const ejectingDirection = staticComp.localDirectionToWorld(ejectingSlot.direction);
const targetTile = ejectingPos.add(enumDirectionToVector[ejectingDirection]); // Check if the cache has to get recomputed
const targetContents = this.root.map.getTileContent(targetTile, "regular"); if (targetEntity === null) {
minerComp.cachedChainedMiner = this.findChainedMiner(entity);
}
// Check if we are connected to another miner and thus do not eject directly // Check if we now have a target
if (targetContents) { if (targetEntity) {
const targetMinerComp = targetContents.components.Miner; const targetMinerComp = targetEntity.components.Miner;
if (targetMinerComp) { if (targetMinerComp.tryAcceptChainedItem(item)) {
if (targetMinerComp.tryAcceptChainedItem(item)) { return true;
return true; } else {
} else { return false;
return false;
}
} }
} }
} }
@ -97,6 +146,7 @@ export class MinerSystem extends GameSystemWithFilter {
if (ejectComp.tryEject(0, item)) { if (ejectComp.tryEject(0, item)) {
return true; return true;
} }
return false; return false;
} }

View File

@ -39,6 +39,13 @@
"overlayColor": "rgba(97, 161, 152, 0.75)", "overlayColor": "rgba(97, 161, 152, 0.75)",
"previewColor": "rgb(97, 161, 152, 0.5)", "previewColor": "rgb(97, 161, 152, 0.5)",
"highlightColor": "rgba(0, 0, 255, 0.5)" "highlightColor": "rgba(0, 0, 255, 0.5)"
},
"connectedMiners": {
"overlay": "rgba(40, 50, 60, 0.5)",
"textColor": "#fff",
"textColorCapped": "#ef5072",
"background": "rgba(40, 50, 60, 0.8)"
} }
}, },

View File

@ -39,7 +39,14 @@
"wires": { "wires": {
"overlayColor": "rgba(97, 161, 152, 0.75)", "overlayColor": "rgba(97, 161, 152, 0.75)",
"previewColor": "rgb(97, 161, 152, 0.4)", "previewColor": "rgb(97, 161, 152, 0.4)",
"highlightColor": "rgba(72, 137, 255, 0.8)" "highlightColor": "rgba(72, 137, 255, 1)"
},
"connectedMiners": {
"overlay": "rgba(40, 50, 60, 0.5)",
"textColor": "#fff",
"textColorCapped": "#ef5072",
"background": "rgba(40, 50, 60, 0.8)"
} }
}, },

View File

@ -185,6 +185,9 @@ export class SoundImplBrowser extends SoundInterface {
} }
initialize() { initialize() {
// NOTICE: We override the initialize() method here with custom logic because
// we have a sound sprites instance
this.sfxHandle = new SoundSpritesContainer(); this.sfxHandle = new SoundSpritesContainer();
// @ts-ignore // @ts-ignore
@ -198,11 +201,11 @@ export class SoundImplBrowser extends SoundInterface {
this.music[musicPath] = music; this.music[musicPath] = music;
} }
this.musicMuted = this.app.settings.getAllSettings().musicMuted; this.musicVolume = this.app.settings.getAllSettings().musicVolume;
this.soundsMuted = this.app.settings.getAllSettings().soundsMuted; this.soundVolume = this.app.settings.getAllSettings().soundVolume;
if (G_IS_DEV && globalConfig.debug.disableMusic) { if (G_IS_DEV && globalConfig.debug.disableMusic) {
this.musicMuted = true; this.musicVolume = 0.0;
} }
return Promise.resolve(); return Promise.resolve();

View File

@ -103,9 +103,6 @@ export class SoundInterface {
this.pageIsVisible = true; this.pageIsVisible = true;
this.musicMuted = false;
this.soundsMuted = false;
this.musicVolume = 1.0; this.musicVolume = 1.0;
this.soundVolume = 1.0; this.soundVolume = 1.0;
} }
@ -127,13 +124,11 @@ export class SoundInterface {
this.music[musicPath] = music; this.music[musicPath] = music;
} }
this.musicMuted = this.app.settings.getAllSettings().musicMuted;
this.soundsMuted = this.app.settings.getAllSettings().soundsMuted;
this.musicVolume = this.app.settings.getAllSettings().musicVolume; this.musicVolume = this.app.settings.getAllSettings().musicVolume;
this.soundVolume = this.app.settings.getAllSettings().soundVolume; this.soundVolume = this.app.settings.getAllSettings().soundVolume;
if (G_IS_DEV && globalConfig.debug.disableMusic) { if (G_IS_DEV && globalConfig.debug.disableMusic) {
this.musicMuted = true; this.musicVolume = 0.0;
} }
return Promise.resolve(); return Promise.resolve();
@ -170,47 +165,6 @@ export class SoundInterface {
return Promise.all(...promises); return Promise.all(...promises);
} }
/**
* Returns if the music is muted
* @returns {boolean}
*/
getMusicMuted() {
return this.musicMuted;
}
/**
* Returns if sounds are muted
* @returns {boolean}
*/
getSoundsMuted() {
return this.soundsMuted;
}
/**
* Sets if the music is muted
* @param {boolean} muted
*/
setMusicMuted(muted) {
this.musicMuted = muted;
if (this.musicMuted) {
if (this.currentMusic) {
this.currentMusic.stop();
}
} else {
if (this.currentMusic) {
this.currentMusic.play(this.musicVolume);
}
}
}
/**
* Sets if the sounds are muted
* @param {boolean} muted
*/
setSoundsMuted(muted) {
this.soundsMuted = muted;
}
/** /**
* Returns the music volume * Returns the music volume
* @returns {number} * @returns {number}
@ -254,7 +208,7 @@ export class SoundInterface {
this.pageIsVisible = pageIsVisible; this.pageIsVisible = pageIsVisible;
if (this.currentMusic) { if (this.currentMusic) {
if (pageIsVisible) { if (pageIsVisible) {
if (!this.currentMusic.isPlaying() && !this.musicMuted) { if (!this.currentMusic.isPlaying()) {
this.currentMusic.play(this.musicVolume); this.currentMusic.play(this.musicVolume);
} }
} else { } else {
@ -267,9 +221,6 @@ export class SoundInterface {
* @param {string} key * @param {string} key
*/ */
playUiSound(key) { playUiSound(key) {
if (this.soundsMuted) {
return;
}
if (!this.sounds[key]) { if (!this.sounds[key]) {
logger.warn("Sound", key, "not found, probably not loaded yet"); logger.warn("Sound", key, "not found, probably not loaded yet");
return; return;
@ -288,7 +239,7 @@ export class SoundInterface {
logger.warn("Music", key, "not found, probably not loaded yet"); logger.warn("Music", key, "not found, probably not loaded yet");
return; return;
} }
if (!this.pageIsVisible || this.soundsMuted) { if (!this.pageIsVisible) {
return; return;
} }
@ -319,7 +270,7 @@ export class SoundInterface {
this.currentMusic.stop(); this.currentMusic.stop();
} }
this.currentMusic = music; this.currentMusic = music;
if (music && this.pageIsVisible && !this.musicMuted) { if (music && this.pageIsVisible) {
logger.log("Starting", this.currentMusic.key); logger.log("Starting", this.currentMusic.key);
music.play(this.musicVolume); music.play(this.musicVolume);
} }

View File

@ -162,29 +162,13 @@ export const allApplicationSettings = [
(app, id) => app.updateAfterUiScaleChanged(), (app, id) => app.updateAfterUiScaleChanged(),
}), }),
new BoolSetting(
"soundsMuted",
enumCategories.general,
/**
* @param {Application} app
*/
(app, value) => app.sound.setSoundsMuted(value)
),
new RangeSetting( new RangeSetting(
"soundVolume", "soundVolume",
enumCategories.general, enumCategories.general,
/** /**
* @param {Application} app * @param {Application} app
*/ */
(app, value) => app.sound.setSoundVolume(value / 100.0) (app, value) => app.sound.setSoundVolume(value)
),
new BoolSetting(
"musicMuted",
enumCategories.general,
/**
* @param {Application} app
*/
(app, value) => app.sound.setMusicMuted(value)
), ),
new RangeSetting( new RangeSetting(
"musicVolume", "musicVolume",
@ -192,7 +176,7 @@ export const allApplicationSettings = [
/** /**
* @param {Application} app * @param {Application} app
*/ */
(app, value) => app.sound.setMusicVolume(value / 100.0) (app, value) => app.sound.setMusicVolume(value)
), ),
new BoolSetting( new BoolSetting(
@ -280,6 +264,7 @@ export const allApplicationSettings = [
new BoolSetting("disableCutDeleteWarnings", enumCategories.advanced, (app, value) => {}), new BoolSetting("disableCutDeleteWarnings", enumCategories.advanced, (app, value) => {}),
new BoolSetting("rotationByBuilding", enumCategories.advanced, (app, value) => {}), new BoolSetting("rotationByBuilding", enumCategories.advanced, (app, value) => {}),
new BoolSetting("displayChunkBorders", enumCategories.advanced, (app, value) => {}), new BoolSetting("displayChunkBorders", enumCategories.advanced, (app, value) => {}),
new BoolSetting("pickMinerOnPatch", enumCategories.advanced, (app, value) => {}),
new EnumSetting("refreshRate", { new EnumSetting("refreshRate", {
options: refreshRateOptions, options: refreshRateOptions,
@ -320,8 +305,6 @@ class SettingsStorage {
this.uiScale = "regular"; this.uiScale = "regular";
this.fullscreen = G_IS_STANDALONE; this.fullscreen = G_IS_STANDALONE;
this.soundsMuted = false;
this.musicMuted = false;
this.soundVolume = 1.0; this.soundVolume = 1.0;
this.musicVolume = 1.0; this.musicVolume = 1.0;
@ -341,6 +324,7 @@ class SettingsStorage {
this.rotationByBuilding = true; this.rotationByBuilding = true;
this.clearCursorOnDeleteWhilePlacing = true; this.clearCursorOnDeleteWhilePlacing = true;
this.displayChunkBorders = false; this.displayChunkBorders = false;
this.pickMinerOnPatch = true;
this.enableColorBlindHelper = false; this.enableColorBlindHelper = false;
@ -535,7 +519,17 @@ export class ApplicationSettings extends ReadWriteProxy {
const setting = allApplicationSettings[i]; const setting = allApplicationSettings[i];
const storedValue = settings[setting.id]; const storedValue = settings[setting.id];
if (!setting.validate(storedValue)) { if (!setting.validate(storedValue)) {
return ExplainedResult.bad("Bad setting value for " + setting.id + ": " + storedValue); return ExplainedResult.bad(
"Bad setting value for " +
setting.id +
": " +
storedValue +
" @ settings version " +
data.version +
" (latest is " +
this.getCurrentVersion() +
")"
);
} }
} }
return ExplainedResult.good(); return ExplainedResult.good();
@ -549,7 +543,7 @@ export class ApplicationSettings extends ReadWriteProxy {
} }
getCurrentVersion() { getCurrentVersion() {
return 24; return 26;
} }
/** @param {{settings: SettingsStorage, version: number}} data */ /** @param {{settings: SettingsStorage, version: number}} data */
@ -653,10 +647,23 @@ export class ApplicationSettings extends ReadWriteProxy {
} }
if (data.version < 24) { if (data.version < 24) {
data.settings.musicVolume = 1.0;
data.settings.soundVolume = 1.0;
data.settings.refreshRate = "60"; data.settings.refreshRate = "60";
data.version = 24; }
if (data.version < 25) {
data.settings.musicVolume = 0.5;
data.settings.soundVolume = 0.5;
// @ts-ignore
delete data.settings.musicMuted;
// @ts-ignore
delete data.settings.soundsMuted;
data.version = 25;
}
if (data.version < 26) {
data.settings.pickMinerOnPatch = true;
data.version = 26;
} }
return ExplainedResult.good(); return ExplainedResult.good();

View File

@ -231,10 +231,10 @@ export class RangeSetting extends BaseSetting {
category, category,
changeCb = null, changeCb = null,
enabled = true, enabled = true,
defaultValue = 100, defaultValue = 1.0,
minValue = 0, minValue = 0,
maxValue = 100, maxValue = 1.0,
stepSize = 1 stepSize = 0.0001
) { ) {
super(id, category, changeCb, enabled); super(id, category, changeCb, enabled);
@ -251,9 +251,9 @@ export class RangeSetting extends BaseSetting {
<div class="row"> <div class="row">
<label>${T.settings.labels[this.id].title}</label> <label>${T.settings.labels[this.id].title}</label>
<div class="value range" data-setting="${this.id}"> <div class="value rangeInputContainer noPressEffect" data-setting="${this.id}">
<label class="range-label">${this.defaultValue}</label> <label>${this.defaultValue}</label>
<input class="range-input" type="range" value="${this.defaultValue}" min="${ <input class="rangeInput" type="range" value="${this.defaultValue}" min="${
this.minValue this.minValue
}" max="${this.maxValue}" step="${this.stepSize}"> }" max="${this.maxValue}" step="${this.stepSize}">
</div> </div>
@ -269,33 +269,58 @@ export class RangeSetting extends BaseSetting {
this.element = element; this.element = element;
this.dialogs = dialogs; this.dialogs = dialogs;
this.element.querySelector(".range-input").addEventListener("input", () => { this.getRangeInputElement().addEventListener("input", () => {
this.updateLabels();
});
this.getRangeInputElement().addEventListener("change", () => {
this.modify(); this.modify();
}); });
} }
syncValueToElement() { syncValueToElement() {
const value = this.app.settings.getSetting(this.id); const value = this.app.settings.getSetting(this.id);
/** @type {HTMLInputElement} */ this.setElementValue(value);
const rangeInput = this.element.querySelector(".range-input"), }
rangeLabel = this.element.querySelector(".range-label");
rangeInput.value = value; /**
rangeLabel.innerHTML = value; * Sets the elements value to the given value
* @param {number} value
*/
setElementValue(value) {
const rangeInput = this.getRangeInputElement();
const rangeLabel = this.element.querySelector("label");
rangeInput.value = String(value);
rangeLabel.innerHTML = T.settings.rangeSliderPercentage.replace(
"<amount>",
String(Math.round(value * 100.0))
);
}
updateLabels() {
const value = Number(this.getRangeInputElement().value);
this.setElementValue(value);
}
/**
* @returns {HTMLInputElement}
*/
getRangeInputElement() {
return this.element.querySelector("input.rangeInput");
} }
modify() { modify() {
/** @type {HTMLInputElement} */ const rangeInput = this.getRangeInputElement();
const rangeInput = this.element.querySelector(".range-input"); const newValue = Math.round(Number(rangeInput.value) * 100.0) / 100.0;
const newValue = Number(rangeInput.value);
this.app.settings.updateSetting(this.id, newValue); this.app.settings.updateSetting(this.id, newValue);
this.syncValueToElement(); this.syncValueToElement();
console.log("SET", newValue);
if (this.changeCb) { if (this.changeCb) {
this.changeCb(this.app, newValue); this.changeCb(this.app, newValue);
} }
} }
validate(value) { validate(value) {
return typeof value === "number"; return typeof value === "number" && value >= this.minValue && value <= this.maxValue;
} }
} }

View File

@ -42,7 +42,7 @@ steamPage:
Der går ikke lang tid før du må mikse farver og male dine figurer med dem - Kombiner rød, grøn og blå farveresurser for at producere forskellige farver og mal derefter figurer med dem for at møde efterspørgslen. Der går ikke lang tid før du må mikse farver og male dine figurer med dem - Kombiner rød, grøn og blå farveresurser for at producere forskellige farver og mal derefter figurer med dem for at møde efterspørgslen.
Dette spil indeholder 18 fremadskridende levels (Som allerede burde holde dig beskæftiget i timevis!) men jeg tilføjer hele tiden nyt - Der er en hel masse planlagt! Dette spil indeholder 18 fremadskridende Niveauers (Som allerede burde holde dig beskæftiget i timevis!) men jeg tilføjer hele tiden nyt - Der er en hel masse planlagt!
Hvis du køber spillet, får du adgang til den selvstændige version, der har endnu flere ting, og du får også adgang til nyudviklet indhold. Hvis du køber spillet, får du adgang til den selvstændige version, der har endnu flere ting, og du får også adgang til nyudviklet indhold.
@ -54,7 +54,7 @@ steamPage:
[*] Uendelige Gem [*] Uendelige Gem
[*] Yderligere Indstillinger [*] Yderligere Indstillinger
[*] Kommer snart: Ledninger & Energi! Går efter at udgive (omkring) enden af juli 2020. [*] Kommer snart: Ledninger & Energi! Går efter at udgive (omkring) enden af juli 2020.
[*] Kommer snart: Flere levels [*] Kommer snart: Niveauer
[*] Støtter mig i yderligere at udvikle shapez.io ❤️ [*] Støtter mig i yderligere at udvikle shapez.io ❤️
[/list] [/list]
@ -130,7 +130,7 @@ global:
control: CTRL control: CTRL
alt: ALT alt: ALT
escape: ESC escape: ESC
shift: SHIFT shift: SKIFT
space: MELLEMRUM space: MELLEMRUM
demoBanners: demoBanners:
@ -145,7 +145,7 @@ mainMenu:
newGame: Nyt Spil newGame: Nyt Spil
changelog: Changelog changelog: Changelog
subreddit: Reddit subreddit: Reddit
importSavegame: Importer importSavegame: Importér
openSourceHint: Dette spil er open source! openSourceHint: Dette spil er open source!
discordLink: Officiel Discord Server discordLink: Officiel Discord Server
helpTranslate: Hjælp med at oversætte! helpTranslate: Hjælp med at oversætte!
@ -155,8 +155,8 @@ mainMenu:
browserWarning: >- browserWarning: >-
Undskyld, men spillet er kendt for at køre langsomt på denne browser! Køb spillet eller download chrome for den fulde oplevelse. Undskyld, men spillet er kendt for at køre langsomt på denne browser! Køb spillet eller download chrome for den fulde oplevelse.
savegameLevel: Level <x> savegameLevel: Niveau <x>
savegameLevelUnknown: Ukendt Level savegameLevelUnknown: Ukendt Niveau
dialogs: dialogs:
buttons: buttons:
@ -175,32 +175,32 @@ dialogs:
importSavegameError: importSavegameError:
title: Import Fejl title: Import Fejl
text: >- text: >-
Importering af gem fejlede: Importering af gemt spil fejlede:
importSavegameSuccess: importSavegameSuccess:
title: Gem Importeret title: Gemt spil Importeret
text: >- text: >-
Dit gem blev importet. Dit gemte spil blev importet.
gameLoadFailure: gameLoadFailure:
title: Spillet er i stykker title: Spillet er i stykker
text: >- text: >-
Det lykkedes ikke at åbne dit gem: Det lykkedes ikke at åbne dit gemte spil:
confirmSavegameDelete: confirmSavegameDelete:
title: Bekræft sletning title: Bekræft sletning
text: >- text: >-
Er du sikker på du vil slette dit gem? Er du sikker på du vil slette dit gemte spil?
savegameDeletionError: savegameDeletionError:
title: Sletning fejlede title: Sletning fejlede
text: >- text: >-
Det lykkedes ikke at slette dit gem: Det lykkedes ikke at slette dit gemte spil:
restartRequired: restartRequired:
title: Genstart er nødvendig title: Genstart er nødvendig
text: >- text: >-
You need to restart the game to apply the settings. Du er nødt til at genstarte spillet for at anvende indstillingerne.
editKeybinding: editKeybinding:
title: Ændr Keybinding title: Ændr Keybinding
@ -208,7 +208,7 @@ dialogs:
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Nulstil keybindings title: Nulstil keybindings
desc: Dette vil nulstille alle keybindings til deres standarder. Vær sød at bekræfte. desc: Dette vil nulstille alle keybindings til deres standarder. Bekræft venligst.
keybindingsResetOk: keybindingsResetOk:
title: Keybindings nulstillet title: Keybindings nulstillet
@ -219,8 +219,8 @@ dialogs:
desc: Du prøvede at bruge en funktion (<feature>) der ikke er tilgængelig i demoen. Overvej at købe spillet for den fulde oplevelse! desc: Du prøvede at bruge en funktion (<feature>) der ikke er tilgængelig i demoen. Overvej at købe spillet for den fulde oplevelse!
oneSavegameLimit: oneSavegameLimit:
title: Begrænset mængde gem title: Begrænset mængde gemte spil
desc: Du kan kun have et gem af gangen in demoversionen. Vær sød at slette det nuværende gem eller at købe spillet! desc: Du kan kun have et gemt spil ad gangen in demoversionen. Vær sød at slette det nuværende gemte spil eller at købe spillet!
updateSummary: updateSummary:
title: Ny opdatering! title: Ny opdatering!
@ -230,23 +230,23 @@ dialogs:
upgradesIntroduction: upgradesIntroduction:
title: Få Opgraderinger title: Få Opgraderinger
desc: >- desc: >-
Alle figurer du producere kan blive brugt til at få opgraderinger - <strong>Ødelæg ikke dine gamle fabrikker!</strong> Alle figurer du producerer kan blive brugt til at få opgraderinger - <strong>Ødelæg ikke dine gamle fabrikker!</strong>
Opgraderingeringsvinduet kan findes i det øverste højre hjørne af skærmen. Opgraderingeringsvinduet kan findes i det øverste højre hjørne af skærmen.
massDeleteConfirm: massDeleteConfirm:
title: Bekræft sletning title: Bekræft sletning
desc: >- desc: >-
Du er ved at slette mange bygninger (<count> helt præcis)! Er du sikker på at det er det du vil gøre? Du er ved at slette mange bygninger (<count> helt præcist)! Er du sikker på at det er det du vil gøre?
massCutConfirm: massCutConfirm:
title: Bekræft klip title: Bekræft klip
desc: >- desc: >-
Du er ved at klippe mange bygninger (<count> helt præcis)! Er du sikker på at det er det du vil gøre? Du er ved at klippe mange bygninger (<count> helt præcist)! Er du sikker på at det er det du vil gøre?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Ikke tilgængeligt endnu title: Ikke tilgængeligt endnu
desc: >- desc: >-
Klar level 12 for at bruge arbejdstegninger! Gennemfør Niveau 12 for at bruge arbejdstegninger!
keybindingsIntroduction: keybindingsIntroduction:
title: Brugbare keybindings title: Brugbare keybindings
@ -254,8 +254,8 @@ dialogs:
Dette spil har mange keybindings, som gør det lettere at bygge store fabrikker. Dette spil har mange keybindings, som gør det lettere at bygge store fabrikker.
Her er et par, men husk at <strong>tjekke keybindings</strong>!<br><br> Her er et par, men husk at <strong>tjekke keybindings</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Træk: Vælg et område.<br> <code class='keybinding'>CTRL</code> + Træk: Vælg et område.<br>
<code class='keybinding'>SHIFT</code>: Hold for at sætte flere af en bygning.<br> <code class='keybinding'>SHIFT</code>: Hold for at placere flere af en bygning.<br>
<code class='keybinding'>ALT</code>: Vend retningen af nedsatte transportbånd.<br> <code class='keybinding'>ALT</code>: Vend retningen af placerede transportbånd.<br>
createMarker: createMarker:
title: Ny Markør title: Ny Markør
@ -270,7 +270,7 @@ dialogs:
desc: Du bad om at eksportere din fabrik som et skærmbillede. Bemærk at dette kan være rimelig langsomt for en stor base og kan endda lukke dit spil! desc: Du bad om at eksportere din fabrik som et skærmbillede. Bemærk at dette kan være rimelig langsomt for en stor base og kan endda lukke dit spil!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Bekræft klip title: Bekræft klip
desc: Du har ikke råd til at sætte dette område ind igen! Er du sikker på du vil klippe det? desc: Du har ikke råd til at sætte dette område ind igen! Er du sikker på at du vil klippe det?
ingame: ingame:
# This is shown in the top left corner and displays useful keybindings in # This is shown in the top left corner and displays useful keybindings in
@ -280,7 +280,7 @@ ingame:
selectBuildings: Marker område selectBuildings: Marker område
stopPlacement: Stop placering stopPlacement: Stop placering
rotateBuilding: Roter bygning rotateBuilding: Roter bygning
placeMultiple: Sæt flere placeMultiple: Placer flere
reverseOrientation: Omvend retning reverseOrientation: Omvend retning
disableAutoOrientation: Slå automatisk retning fra disableAutoOrientation: Slå automatisk retning fra
toggleHud: Slå HUD til/fra toggleHud: Slå HUD til/fra
@ -289,7 +289,7 @@ ingame:
delete: Slet delete: Slet
pasteLastBlueprint: Sæt sidste arbejdstegning ind pasteLastBlueprint: Sæt sidste arbejdstegning ind
lockBeltDirection: Aktiver bælteplanlægger lockBeltDirection: Aktiver bælteplanlægger
plannerSwitchSide: Flip planlægsningsside plannerSwitchSide: Vend planlægsningsside
cutSelection: Klip cutSelection: Klip
copySelection: Kopier copySelection: Kopier
clearSelection: Ryd Selektion clearSelection: Ryd Selektion
@ -353,7 +353,7 @@ ingame:
# The roman number for each tier # The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X] tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: STØRSTE NIVEAU (Speed x<currentMult>) maximumLevel: HØJESTE NIVEAU (Speed x<currentMult>)
# The "Statistics" window # The "Statistics" window
statistics: statistics:
@ -364,7 +364,7 @@ ingame:
description: Viser mængden af opbevarede figurer i din centrale bygning. description: Viser mængden af opbevarede figurer i din centrale bygning.
produced: produced:
title: Produceret title: Produceret
description: Viser alle de figurer hele din fabrik producere, inklusiv produkter brugt til videre produktion. description: Viser alle de figurer hele din fabrik producerer, inklusiv produkter brugt til videre produktion.
delivered: delivered:
title: Afleveret title: Afleveret
description: Viser figurer som er afleveret til din centrale bygning. description: Viser figurer som er afleveret til din centrale bygning.
@ -383,7 +383,7 @@ ingame:
buttons: buttons:
continue: Fortsæt continue: Fortsæt
settings: Indstillinger settings: Indstillinger
menu: Til menu menu: Hovedmenu
# Bottom left tutorial hints # Bottom left tutorial hints
tutorialHints: tutorialHints:
@ -399,7 +399,7 @@ ingame:
waypoints: waypoints:
waypoints: Markører waypoints: Markører
hub: HUB hub: HUB
description: Venstreklik en markør for at hoppe til den, højreklik for at slette den.<br><br>Tryk <keybinding> for at lave en markør på det nuværende sted, eller <strong>højreklik</strong> for at lave en markør på den valgte lokation. description: Venstreklik en markør for at hoppe til den, højreklik for at slette den.<br><br>Tryk <keybinding> for at lave en markør på det nuværende sted, eller <strong>højreklik</strong> for at lave en markør på det valgte sted.
creationSuccessNotification: Markør er sat. creationSuccessNotification: Markør er sat.
# Shape viewer # Shape viewer
@ -414,10 +414,10 @@ ingame:
hints: hints:
1_1_extractor: Sæt en <strong>udvinder</strong> på toppen af en<strong>cirkelfigur</strong> for at begynde produktion af den! 1_1_extractor: Sæt en <strong>udvinder</strong> på toppen af en<strong>cirkelfigur</strong> for at begynde produktion af den!
1_2_conveyor: >- 1_2_conveyor: >-
Forbind udvinderen med et <strong>transportbælte</strong> til din hub!<br><br>Tip: <strong>Tryk og træk</strong> bæltet med din mus! Forbind udvinderen til din hub med et <strong>transportbælte</strong>!<br><br>Tip: <strong>Tryk og træk</strong> bæltet med din mus!
1_3_expand: >- 1_3_expand: >-
Dette er <strong>IKKE</strong> et idle game! Byg flere udvindere og bælter for at færdiggøre målet hurtigere.<br><br>Tip: Hold <strong>SHIFT</strong> for at sætte flere udvindere, og tryk <strong>R</strong> for at rotere dem. Dette er <strong>IKKE</strong> et idle game! Byg flere udvindere og bælter for at færdiggøre målet hurtigere.<br><br>Tip: Hold <strong>SKIFT</strong> for at sætte flere udvindere, og tryk <strong>R</strong> for at rotere dem.
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -439,12 +439,12 @@ buildings:
hub: hub:
deliver: Aflever deliver: Aflever
toUnlock: for at få adgang til toUnlock: for at få adgang til
levelShortcut: LVL levelShortcut: NIV
belt: belt:
default: default:
name: &belt Transportbælte name: &belt Transportbælte
description: Transportere varer, hold og træk for at sætte flere. description: Transporterer figurer, hold og træk for at sætte flere.
# Internal name for the Extractor # Internal name for the Extractor
miner: miner:
@ -454,55 +454,55 @@ buildings:
chainable: chainable:
name: Udvinder (Kæde) name: Udvinder (Kæde)
description: Placer over en figur eller farve for at udvinde den. Kan sættes i kæder. description: Placer over en figur eller farve for at udvinde den. Kan kædes.
# Internal name for the Tunnel # Internal name for the Tunnel
underground_belt: underground_belt:
default: default:
name: &underground_belt Tunnel name: &underground_belt Tunnel
description: Laver tunneller under bygninger and bælter. description: Laver tunneller under bygninger og bælter.
tier2: tier2:
name: Tunnel Trin II name: Tunnel Trin II
description: Laver tunneller under bygninger and bælter. description: Laver tunneller under bygninger og bælter.
# Internal name for the Balancer # Internal name for the Balancer
splitter: splitter:
default: default:
name: &splitter Spalter name: &splitter Fordeler
description: Flere funktioner - Fordeler alle modtagne varer jævnt. description: Flere funktioner - Fordeler alle modtagne varer jævnt.
compact: compact:
name: Sammenlægger (kompakt) name: Sammenlægger (kompakt)
description: Sammenlægger to bælter til en. description: Lægger to bælter sammen til et.
compact-inverse: compact-inverse:
name: Sammenlægger (kompakt) name: Sammenlægger (kompakt)
description: Sammenlægger to bælter til en. description: Lægger to bælter sammen til et.
cutter: cutter:
default: default:
name: &cutter Klipper name: &cutter Klipper
description: Klipper figurer fra top til bund og udsender begge halvdele. <strong>Hvis du kun bruger den ene halvdel så husk at ødelæg den anden del eller maskinen går i stå!</strong> description: Klipper figurer fra top til bund og udsender begge halvdele. <strong>Hvis du kun bruger den ene halvdel så husk at ødelægge den anden del, ellers går maskinen i stå!</strong>
quad: quad:
name: Klipper (firdeler) name: Klipper (firdeler)
description: Klipper figurer om til fire dele. <strong>Hvis du kun bruger nogle af dem så husk at ødelæg de andre dele eller maskinen går i stå!</strong> description: Klipper figurer om til fire dele. <strong>Hvis du kun bruger nogle af dem så husk at ødelægge de andre dele, ellers går maskinen i stå!</strong>
rotater: rotater:
default: default:
name: &rotater Drejer name: &rotater Drejer
description: Drejer figurer med uret med 90 grader. description: Drejer figurer 90 grader med uret.
ccw: ccw:
name: Drejer (mod uret) name: Drejer (mod uret)
description: Drejer figurer mod uret med 90 grader. description: Drejer figurer 90 grader mod uret.
fl: fl:
name: Drejer (180) name: Drejer (180)
description: Drejer figurer med 180 grader. description: Drejer figurer 180 grader.
stacker: stacker:
default: default:
name: &stacker Stabler name: &stacker Stabler
description: Stabler begge figurer. Hvis de ikke kan sammensmeltes, så er den højre figur sat oven på den venstre. description: Stabler begge figurer. Hvis de ikke kan sammensmeltes, så sættes den højre figur oven på den venstre.
mixer: mixer:
default: default:
@ -527,12 +527,12 @@ buildings:
trash: trash:
default: default:
name: &trash Skrald name: &trash Skraldespand
description: Tillader input fra alle sider og ødelææger dem. For evigt. description: Tillader input fra alle sider og ødelægger dem. For evigt.
storage: storage:
name: Opbevaring name: Opbevaring
description: Opbevarer ekstra varer, til en given kapicitet. Kan bruges til at håndtere overproduktion. description: Opbevarer ekstra figurer, til en given kapicitet. Kan bruges til at håndtere overproduktion.
energy_generator: energy_generator:
deliver: Aflever deliver: Aflever
@ -548,14 +548,14 @@ buildings:
advanced_processor: advanced_processor:
default: default:
name: Farveomvender name: Farveomvender
description: Tager imod en farve giver den modsatte. description: Tager imod en farve, og giver den modsatte.
wire_crossings: wire_crossings:
default: default:
name: Ledningsspalter name: Ledningsspalter
description: Spalter en energiledning i to. description: Spalter en energiledning i to.
merger: merger:
name: Ledningssammenlægger name: Ledningssammenlægger
description: Sammenlægger to energiledninger til en. description: Lægger to energiledninger sammen til en.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
@ -565,7 +565,7 @@ storyRewards:
reward_rotater: reward_rotater:
title: Rotation title: Rotation
desc: <strong>Drejeren</strong> er nu tilgængelig! Den drejer figurer med uret med 90 grader. desc: <strong>Drejeren</strong> er nu tilgængelig! Den drejer figurer 90 grader med uret.
reward_painter: reward_painter:
title: Maling title: Maling
@ -578,11 +578,11 @@ storyRewards:
reward_stacker: reward_stacker:
title: Stabler title: Stabler
desc: Du kan du stable figurer med <strong>stableren</strong>! Begge input er stablet, hvis de kan sættes ved siden af hinanden, <strong>sammensmeltes de</strong>. Hvis ikke er det højre input <strong>stablet ovenpå</strong> det venstre! desc: Du kan du stable figurer med <strong>stableren</strong>! Begge inputs stables. Hvis de kan sættes ved siden af hinanden, <strong>sammensmeltes de</strong>. Hvis ikke, bliver det højre input <strong>stablet ovenpå</strong> det venstre!
reward_splitter: reward_splitter:
title: Spalter/Sammenlægger title: Fordeler/Sammenlægger
desc: Den flerfunktionelle <strong>spalter</strong> er nu tilgængelig - Den kan blive brugt til at bygge større fabrikker ved at <strong>spalte og sammenlægge varer</strong> på flere bælter!<br><br> desc: Den flerfunktionelle <strong>Fordeler</strong> er nu tilgængelig - Den kan bruges til at bygge større fabrikker ved at <strong>fordele og sammenlægge varer</strong> på flere bælter!<br><br>
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
@ -601,13 +601,13 @@ storyRewards:
desc: Du har fået adgang til en variant af <strong>tunnellen</strong> - Den har en <strong>større rækkevidde</strong>, og du kan også bruge begge typer tunneller på den samme strækning! desc: Du har fået adgang til en variant af <strong>tunnellen</strong> - Den har en <strong>større rækkevidde</strong>, og du kan også bruge begge typer tunneller på den samme strækning!
reward_splitter_compact: reward_splitter_compact:
title: Kompakt Spalter title: Kompakt Fordeler
desc: >- desc: >-
Du har fået adgang til en kompakt variant af <strong>spalteren</strong> - Den tager to inputs og sammenlægger dem til en! Du har fået adgang til en kompakt variant af <strong>fordeleren</strong> - Den tager to inputs og lægger dem sammen til en!
reward_cutter_quad: reward_cutter_quad:
title: Quad Klipining title: Quad Klipining
desc: Du har fået adgang til en variant af <strong>klipperen</strong> - Den lader dig klippe figurer i <strong>fire dele</strong> i stedet for bare to! desc: Du har fået adgang til en variant af <strong>klipperen</strong> - Den lader dig klippe figurer i <strong>fire dele</strong> i stedet for kun to!
reward_painter_double: reward_painter_double:
title: Dobbelt Maling title: Dobbelt Maling
@ -615,37 +615,37 @@ storyRewards:
reward_painter_quad: reward_painter_quad:
title: Quad Maling title: Quad Maling
desc: Du har fået adgang til en variant af <strong>maleren</strong> - Den lader dig male hver del af en figur for sig! desc: Du har fået adgang til en variant af <strong>maleren</strong> - Den lader dig male alle dele af en figur hver for sig!
reward_storage: reward_storage:
title: Opbevaringsbuffer title: Opbevaringsbuffer
desc: Du har fået adgang til en variant af <strong>skraldespanden</strong> - Den lader dig opbevarer varer til en hvis kapacitet! desc: Du har fået adgang til en variant af <strong>skraldespanden</strong> - Den lader dig opbevare varer til en hvis kapacitet!
reward_freeplay: reward_freeplay:
title: Frit spil title: Frit spil
desc: Du klarede det! Du har fået adgang til <strong>frit spil</strong>! Dette betyder at figurer nu er tilfældigt genereret! (Vær ikke bekymret, mere indhold er planlagt for den bte version!) desc: Du klarede det! Du har fået adgang til <strong>frit spil</strong>! Dette betyder at figurer nu er tilfældigt genereret! (Vær ikke bekymret, mere indhold er planlagt for den betalte version!)
reward_blueprints: reward_blueprints:
title: Arbejdstegninger title: Arbejdstegninger
desc: Du kan nu <strong>kopiere og indsætte</strong> dele af din fabrik! Vælg et område (Hold CTRL, og træk med musen), og tryk 'C' for at kopiere det.<br><br>At sætte det ind er <strong>ikke gratis</strong>, du skal producere <strong>arbejdstegning figurer</strong> for at have råd til det! (Dem du lige har leveret). desc: Du kan nu <strong>kopiere og indsætte</strong> dele af din fabrik! Vælg et område (Hold CTRL, og træk med musen), og tryk 'C' for at kopiere det.<br><br>At sætte det ind er <strong>ikke gratis</strong>. Du skal producere <strong>arbejdstegning figurer</strong> for at have råd til det! (Dem du lige har leveret).
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
title: Næste level title: Næste niveau
desc: >- desc: >-
Dette level gav dig ingen belønninger, men det vil det næste! <br><br> PS: Du må hellere lade være med at ødelægge din fabrik - Du får brug for <strong>alle</strong> de figurer senere igen for at <strong>få opgraderinger</strong>! Dette niveau gav dig ingen belønninger, men det vil det næste! <br><br> PS: Du må hellere lade være med at ødelægge din fabrik - Du får brug for <strong>alle</strong> de figurer senere igen for at <strong>få opgraderinger</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Næste level title: Næste niveau
desc: >- desc: >-
Tillykke! Forresten er mere indhold planlagt for den bte version! Tillykke! Forresten er mere indhold planlagt for den betalte version!
settings: settings:
title: Indstillinger title: Indstillinger
categories: categories:
general: Generelt general: Generelt
userInterface: Brugerflade userInterface: Brugerflade
advanced: Advanceret advanced: Avanceret
versionBadges: versionBadges:
dev: Udvikling dev: Udvikling
@ -657,7 +657,7 @@ settings:
uiScale: uiScale:
title: Grænseflade størrelse title: Grænseflade størrelse
description: >- description: >-
Ændrer størrelsen på brugerfladen. Den vil stadig skalere baseret på opløsningen af din skærm, men denne indstilling bestemmer hvor meget den skalere. Ændrer størrelsen på brugerfladen. Den vil stadig skalere baseret på opløsningen af din skærm, men denne indstilling bestemmer hvor meget den skalerer.
scales: scales:
super_small: Meget lille super_small: Meget lille
small: Lille small: Lille
@ -668,20 +668,20 @@ settings:
autosaveInterval: autosaveInterval:
title: Autogem Interval title: Autogem Interval
description: >- description: >-
Kontrollere hvor ofte spillet gemmer automatisk. Du kan også slå det helt fra her. Ændrer hvor ofte spillet gemmer automatisk. Du kan også slå det helt fra her.
intervals: intervals:
one_minute: 1 Minut one_minute: 1 Minut
two_minutes: 2 Minuter two_minutes: 2 Minutter
five_minutes: 5 Minuter five_minutes: 5 Minutter
ten_minutes: 10 Minuter ten_minutes: 10 Minutter
twenty_minutes: 20 Minuter twenty_minutes: 20 Minutter
disabled: Slået fra disabled: Slået fra
scrollWheelSensitivity: scrollWheelSensitivity:
title: Zoom følsomhed title: Zoom følsomhed
description: >- description: >-
Ændrer hvor følsomt zoomet er (Enten mussehjulet eller trackpad). Ændrer hvor følsomt zoomet er (Enten musehjulet eller trackpad).
sensitivity: sensitivity:
super_slow: Meget langsom super_slow: Meget langsom
slow: Langsom slow: Langsom
@ -709,12 +709,12 @@ settings:
enableColorBlindHelper: enableColorBlindHelper:
title: Farveblindstilstand title: Farveblindstilstand
description: >- description: >-
Aktivere forskellige redskaber der lader dig spille, selv hvis du er farveblind. Aktiverer forskellige redskaber der lader dig spille, selv hvis du er farveblind.
fullscreen: fullscreen:
title: Fuld skærm title: Fuld skærm
description: >- description: >-
Det er forslået at spille i fuld skærm for den bedste oplevelse. Kun tilgængelig i den bte version. Det er foreslået at spille i fuld skærm for den bedste oplevelse. Kun tilgængelig i den betalte version.
soundsMuted: soundsMuted:
title: Slå lydeffekterne fra title: Slå lydeffekterne fra
@ -727,9 +727,9 @@ settings:
Aktiver for at slå al musik fra. Aktiver for at slå al musik fra.
theme: theme:
title: Spiltilstand title: Tema
description: >- description: >-
Vælg spiltilstand (lys / mørk). Vælg tema (lys / mørk).
themes: themes:
dark: Mørk dark: Mørk
light: Lys light: Lys
@ -737,17 +737,17 @@ settings:
refreshRate: refreshRate:
title: Simulationsmål title: Simulationsmål
description: >- description: >-
Hvis du har en 144hz skærm ændr opdateringshastigheden her så spillet vil simulere den højere opdateringshastighed korrekt. Dette kan faktisk sænke din FPS hvis din computer er for langsom. Hvis du har en 144hz skærm, så ændr opdateringshastigheden her så spillet vil simulere den højere opdateringshastighed korrekt. Dette kan faktisk sænke din FPS hvis din computer er for langsom.
alwaysMultiplace: alwaysMultiplace:
title: Multiplacer title: Multiplacér
description: >- description: >-
Aktiver for at alle bygninger fortsætter med at være valgt efter placering, indtil du vælger den fra. Dette svarer til altid at holde SHIFT nede. Aktiver for at alle bygninger fortsætter med at være valgt efter placering, indtil du vælger dem fra. Dette svarer til altid at holde SKIFT nede.
offerHints: offerHints:
title: Hints & Vejledning title: Hints & Vejledning
description: >- description: >-
Om spillet skal tilbyde hints og vejledning imens du spiller. Skjuler også visse dele af brugerfladen indtil et givent level for at gøre det nemmere at lære spillet at kende. Om spillet skal tilbyde hints og vejledning imens du spiller. Skjuler også visse dele af brugerfladen indtil et givent niveau for at gøre det nemmere at lære spillet at kende.
enableTunnelSmartplace: enableTunnelSmartplace:
title: Smarte Tunneller title: Smarte Tunneller
@ -757,7 +757,7 @@ settings:
vignette: vignette:
title: Vignette title: Vignette
description: >- description: >-
Aktivere vignette hvilket mørkner kanterne af skærmen og gør teksten nemmere at læse. Aktiverer vignette hvilket mørkner kanterne af skærmen og gør teksten nemmere at læse.
rotationByBuilding: rotationByBuilding:
title: Rotation baseret på bygningstype title: Rotation baseret på bygningstype
@ -767,7 +767,7 @@ settings:
compactBuildingInfo: compactBuildingInfo:
title: Kompakt Bygningsinfo title: Kompakt Bygningsinfo
description: >- description: >-
Forkorter infobokse til bygninger ved kun at vise deres ratioer. Ellers er en beskrivelse og et billede også vist. Forkorter infobokse til bygninger ved kun at vise deres forhold. Ellers er en beskrivelse og et billede også vist.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Slå klip/slet advarsler fra title: Slå klip/slet advarsler fra
@ -777,7 +777,7 @@ settings:
keybindings: keybindings:
title: Keybindings title: Keybindings
hint: >- hint: >-
Tip: Husk at bruge CTRL, SHIFT og ALT! De byder på forskellige placeringsmuligheder. Tip: Husk at bruge CTRL, SKIFT og ALT! De byder på forskellige placeringsmuligheder.
resetKeybindings: Nulstil Keybindings resetKeybindings: Nulstil Keybindings
@ -840,7 +840,7 @@ keybindings:
massSelectCopy: Kopier område massSelectCopy: Kopier område
massSelectCut: Klip område massSelectCut: Klip område
placementDisableAutoOrientation: Slå automatisk orientering fra placementDisableAutoOrientation: Slå automatisk rotation fra
placeMultiple: Bliv i placeringstilstand placeMultiple: Bliv i placeringstilstand
placeInverse: Spejlvend automatisk bælteorientering placeInverse: Spejlvend automatisk bælteorientering
menuClose: Luk Menu menuClose: Luk Menu
@ -850,7 +850,7 @@ keybindings:
about: about:
title: Om dette spil title: Om dette spil
body: >- body: >-
Dette spil er open source og er udviklet af <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (dette er mig).<br><br> Dette spil er open source og er udviklet af <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (det er mig).<br><br>
Hvis du vil kontribuere, tjek <a href="<githublink>" target="_blank">shapez.io på github</a>.<br><br> Hvis du vil kontribuere, tjek <a href="<githublink>" target="_blank">shapez.io på github</a>.<br><br>

View File

@ -303,7 +303,7 @@ ingame:
green: Grün green: Grün
blue: Blau blue: Blau
yellow: Gelb yellow: Gelb
purple: Violett purple: Magenta
cyan: Cyan cyan: Cyan
white: Weiß white: Weiß
black: Schwarz black: Schwarz
@ -400,7 +400,7 @@ ingame:
waypoints: waypoints:
waypoints: Markierungen waypoints: Markierungen
hub: Hub hub: Hub
description: Linksklick auf einen Marker, um dort hinzugelangen, Rechtsklick, um ihn zu löschen.<br><br>Drücke <keybinding> um einen Marker aus deinem Blickwinkel, oder <strong>rechtsklicke</strong>, um einen Marker auf der ausgewählten Position zu erschaffen. description: Linksklick auf einen Marker, um dort hinzugelangen. Rechtsklick, um ihn zu löschen.<br><br>Drücke <keybinding>, um einen Marker aus deinem Blickwinkel, oder <strong>rechtsklicke</strong>, um einen Marker auf der ausgewählten Position zu erschaffen.
creationSuccessNotification: Marker wurde erstellt. creationSuccessNotification: Marker wurde erstellt.
# Shape viewer # Shape viewer
@ -413,12 +413,12 @@ ingame:
interactiveTutorial: interactiveTutorial:
title: Tutorial title: Tutorial
hints: hints:
1_1_extractor: Platziere einen <strong>Extrahierer</strong> auf der <strong>Kreisform</strong> um sie zu extrahieren! 1_1_extractor: Platziere einen <strong>Extrahierer</strong> auf der <strong>Kreisform</strong>, um sie zu extrahieren!
1_2_conveyor: >- 1_2_conveyor: >-
Verbinde den Extrahierer mit einem <strong>Förderband</strong> und schließe ihn am Hub an!<br><br>Tipp: <strong>Drück und ziehe</strong> das Förderband mit der Maus! Verbinde den Extrahierer mit einem <strong>Förderband</strong> und schließe ihn am Hub an!<br><br>Tipp: <strong>Drücke und ziehe</strong> das Förderband mit der Maus!
1_3_expand: >- 1_3_expand: >-
Dies ist <strong>KEIN</strong> Idle-Game! Baue mehr Extrahierer und Förderbänder, um das Ziel schneller zu erreichen.<br><br>Tipp: Halte <strong>UMSCH</strong>, um mehrere Gebäude zu platzieren und nutze <strong>R</strong> um sie zu rotieren. Dies ist <strong>KEIN</strong> Idle-Game! Baue mehr Extrahierer und Förderbänder, um das Ziel schneller zu erreichen.<br><br>Tipp: Halte <strong>UMSCH</strong>, um mehrere Gebäude zu platzieren und nutze <strong>R</strong>, um sie zu rotieren.
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -446,17 +446,17 @@ buildings:
belt: belt:
default: default:
name: &belt Förderband name: &belt Förderband
description: Transportiert Items. Halte und ziehe um mehrere zu platzieren. description: Transportiert Items. Halte und ziehe, um mehrere zu platzieren.
# Internal name for the Extractor # Internal name for the Extractor
miner: miner:
default: default:
name: &miner Extrahierer name: &miner Extrahierer
description: Platziere ihn auf einer Form oder Farbe um sie zu extrahieren. description: Platziere ihn auf einer Form oder Farbe, um sie zu extrahieren.
chainable: chainable:
name: Extrahierer (Kette) name: Extrahierer (Kette)
description: Platziere ihn auf einer Form oder Farbe um sie zu extrahieren. Kann verkettet werden. description: Platziere ihn auf einer Form oder Farbe, um sie zu extrahieren. Kann verkettet werden.
# Internal name for the Tunnel # Internal name for the Tunnel
underground_belt: underground_belt:
@ -472,15 +472,15 @@ buildings:
splitter: splitter:
default: default:
name: &splitter Verteiler name: &splitter Verteiler
description: Multifunktional - Verteilt gleichmäßig vom Eingang auf den Ausgang. description: Multifunktional - Verteilt gleichmäßig von den Eingängen auf die Ausgänge.
compact: compact:
name: Kombinierer (Kompakt) name: Kombinierer (Kompakt)
description: Vereint zwei Förderbänder zu einem. description: Vereint zwei Eingänge zu einem Ausgang.
compact-inverse: compact-inverse:
name: Kombinierer (Kompakt) name: Kombinierer (Kompakt)
description: Vereint zwei Förderbänder zu einem. description: Vereint zwei Eingänge zu einem Ausgang.
cutter: cutter:
default: default:
@ -521,12 +521,12 @@ buildings:
description: *painter_desc description: *painter_desc
double: double:
name: Färber (2-Fach) name: Färber (2-fach)
description: Färbt beide Formen aus dem linken Eingang mit der Farbe aus dem oberen Eingang. description: Färbt beide Formen aus dem linken Eingang mit der Farbe aus dem oberen Eingang.
quad: quad:
name: Färber (4-Fach) name: Färber (4-fach)
description: Erlaubt jedes einzelne Viertel einer Form beliebig einzufärben. description: Erlaubt es, jedes einzelne Viertel einer Form beliebig einzufärben.
trash: trash:
default: default:
@ -535,7 +535,7 @@ buildings:
storage: storage:
name: Lager name: Lager
description: Lagert den Überschuss bis zu einer gegebenen Kapazität. Kann als Überlauftor agieren. description: Lagert Items bis zu einer gegebenen Kapazität und verwaltet den Überlauf.
wire: wire:
default: default:
@ -563,24 +563,24 @@ storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
reward_cutter_and_trash: reward_cutter_and_trash:
title: Formen zerschneiden title: Formen zerschneiden
desc: Du hast den <strong>Schneider</strong> freigeschaltet! - Er zerschneidet Formen von <strong>oben nach unten</strong>, unabhängig von ihrer Orientierung!<br><br>Stelle sicher, dass du den Abfall loswirst, sonst <strong>verstopft die Maschine</strong>! - Dafür habe ich dir extra einen Mülleimer freigeschaltet. desc: Du hast den <strong>Schneider</strong> freigeschaltet! Er zerschneidet Formen von <strong>oben nach unten</strong>, unabhängig von ihrer Orientierung.<br><br>Stelle sicher, dass du den Abfall loswirst, sonst <strong>verstopft die Maschine</strong>! Dafür habe ich dir extra einen Mülleimer freigeschaltet.
reward_rotater: reward_rotater:
title: Rotieren title: Rotieren
desc: Der <strong>Rotierer</strong> wurde freigeschaltet! Er rotiert Formen im Uhrzeigersinn um 90 Grad! desc: Der <strong>Rotierer</strong> wurde freigeschaltet! Er rotiert Formen im Uhrzeigersinn um 90 Grad.
reward_painter: reward_painter:
title: Färben title: Färben
desc: >- desc: >-
Der <strong>Färber</strong> wurde freigeschaltet. Extrahiere ein paar Farben (genauso wie bei Formen) und färbe damit eine Form im Färber!<br><br>PS: Falls du Farbenblind bist, es gibt einen <strong>Modus für Farbenblinde</strong> in den Einstellungen! Der <strong>Färber</strong> wurde freigeschaltet. Extrahiere ein paar Farben (genauso wie bei Formen) und färbe damit eine Form im Färber.<br><br>PS: Falls du Farbenblind bist, gibt es einen <strong>Modus für Farbenblinde</strong> in den Einstellungen!
reward_mixer: reward_mixer:
title: Farben mischen title: Farben mischen
desc: Der <strong>Farbmischer</strong> wurde freigeschaltet! Kombiniere mit diesem Gebäude zwei Farben getreu der <strong>additiven Farbmischung</strong>! desc: Der <strong>Farbmischer</strong> wurde freigeschaltet! Kombiniere mit diesem Gebäude zwei Farben getreu der <strong>additiven Farbmischung</strong>.
reward_stacker: reward_stacker:
title: Stapler title: Stapler
desc: Mit dem <strong>Stapler</strong> kannst du nun Formen kombinieren! Passen sie nebeneinander, werden sie <strong>verschmolzen</strong>. Anderenfalls wird die rechte auf die linke Form <strong>gestapelt</strong>! desc: Mit dem <strong>Stapler</strong> kannst du nun Formen kombinieren! Passen sie nebeneinander, werden sie <strong>verschmolzen</strong>. Anderenfalls wird die rechte auf die linke Form <strong>gestapelt</strong>.
reward_splitter: reward_splitter:
title: Verteiler/Kombinierer title: Verteiler/Kombinierer
@ -588,11 +588,11 @@ storyRewards:
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
desc: Der <strong>Tunnel</strong> wurde freigeschaltet! Du kannst Items nun unter Gebäuden oder Förderbändern hindurchleiten! desc: Der <strong>Tunnel</strong> wurde freigeschaltet! Du kannst Items nun unter Gebäuden oder Förderbändern hindurchleiten.
reward_rotater_ccw: reward_rotater_ccw:
title: Gegen UZS Rotieren title: Gegen UZS Rotieren
desc: Du hast eine zweite Variante des <strong>Rotierers</strong> freigeschaltet! Damit können Items gegen den Uhrzeigensinn gedreht werden. Wähle den Rotierer aus und <strong>drücke 'T', um auf verschiedene Varianten zuzugreifen</strong>! desc: Du hast eine zweite Variante des <strong>Rotierers</strong> freigeschaltet! Damit können Items gegen den Uhrzeigensinn gedreht werden. Wähle den Rotierer aus und <strong>drücke 'T', um auf verschiedene Varianten zuzugreifen</strong>.
reward_miner_chainable: reward_miner_chainable:
title: Extrahierer (Kette) title: Extrahierer (Kette)
@ -600,28 +600,28 @@ storyRewards:
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunnel Stufe II title: Tunnel Stufe II
desc: Du hast eine neue Variante des <strong>Tunnels</strong> freigeschaltet! Dieser hat eine <strong>höhere Reichweite</strong> und du kannst beide Tunnel miteinander mischen! desc: Du hast eine neue Variante des <strong>Tunnels</strong> freigeschaltet! Dieser hat eine <strong>höhere Reichweite</strong> und du kannst beide Tunnel miteinander mischen.
reward_splitter_compact: reward_splitter_compact:
title: Kompakter Kombinierer title: Kompakter Kombinierer
desc: >- desc: >-
Du hast eine kompakte Variante des <strong>Kombinierers</strong> freigeschaltet! Er hat zwei Eingänge und gibt zwei Förderbänder als eines aus! Du hast eine kompakte Variante des <strong>Kombinierers</strong> freigeschaltet! Er hat zwei Eingänge und vereint diese zu einem Ausgang.
reward_cutter_quad: reward_cutter_quad:
title: Schneider (4-fach) title: Schneider (4-fach)
desc: Du hast eine neue Variante des <strong>Schneiders</strong> freigeschaltet! Damit kannst du Formen in alle <strong>vier Teile</strong> zerschneiden! desc: Du hast eine neue Variante des <strong>Schneiders</strong> freigeschaltet! Damit kannst du Formen in alle <strong>vier Teile</strong> zerschneiden.
reward_painter_double: reward_painter_double:
title: Färber (2-fach) title: Färber (2-fach)
desc: Du hast eine neue Variante des <strong>Färbers</strong> freigeschaltet! Hiermit kannst du <strong>zwei Formen auf einmal</strong> färben und verbrauchst nur eine Farbe! desc: Du hast eine neue Variante des <strong>Färbers</strong> freigeschaltet! Hiermit kannst du <strong>zwei Formen auf einmal</strong> färben und verbrauchst nur eine Farbe.
reward_painter_quad: reward_painter_quad:
title: Färber (4-fach) title: Färber (4-fach)
desc: Du hast eine neue Variante des <strong>Färbers</strong> freigeschaltet! Er kann jedes Viertel einer Form einzeln färben, verbraucht aber auch jeweils eine Farbe! desc: Du hast eine neue Variante des <strong>Färbers</strong> freigeschaltet! Er kann jedes Viertel einer Form einzeln färben, verbraucht aber auch jeweils eine Farbe.
reward_storage: reward_storage:
title: Zwischenlager title: Zwischenlager
desc: Du hast eine neue Variante des <strong>Mülleimers</strong> freigeschaltet! Bis zu einer gewissen Kapazität können hier Items zwischengelagert werden! desc: Du hast eine neue Variante des <strong>Mülleimers</strong> freigeschaltet! Bis zu einer gewissen Kapazität können hier Items zwischengelagert werden.
reward_freeplay: reward_freeplay:
title: Freies Spiel title: Freies Spiel
@ -635,7 +635,7 @@ storyRewards:
no_reward: no_reward:
title: Nächstes Level title: Nächstes Level
desc: >- desc: >-
Dieses Level hat dir keine Belohnung gegeben, aber dafür das Nächste schon! <br><br> PS: Denk daran, deine alten Fabriken nicht zu zerstören - Du wirst sie später <strong>alle</strong> noch brauchen, um <strong>Upgrades freizuschalten</strong>! Dieses Level hat dir keine Belohnung gegeben, aber dafür das Nächste schon! <br><br> PS: Denke daran, deine alten Fabriken nicht zu zerstören - Du wirst sie später <strong>alle</strong> noch brauchen, um <strong>Upgrades freizuschalten</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Nächstes Level title: Nächstes Level
@ -721,22 +721,22 @@ settings:
soundsMuted: soundsMuted:
title: Geräusche stummschalten title: Geräusche stummschalten
description: >- description: >-
Bei der Aktivierung werden alle Geräusche stummgeschaltet. Bei Aktivierung werden alle Geräusche stummgeschaltet.
musicMuted: musicMuted:
title: Musik stummschalten title: Musik stummschalten
description: >- description: >-
Bei der Aktivierung wird die Musik stummgeschaltet. Bei Aktivierung wird die Musik stummgeschaltet.
soundVolume: soundVolume:
title: Geräuschlautstärke title: Geräuschlautstärke
description: >- description: >-
Ändert die Lautstärke von Geräuschen. Regler für die Lautstärke von Geräuschen.
musicVolume: musicVolume:
title: Musiklautstärke title: Musiklautstärke
description: >- description: >-
Ändert die Lautstärke der Musik. Regler für die Lautstärke der Musik.
theme: theme:
title: Farbmodus title: Farbmodus
@ -749,12 +749,12 @@ settings:
refreshRate: refreshRate:
title: Tickrate title: Tickrate
description: >- description: >-
Das Spiel passt die Tickrate automatisch so an, dass sie immer zwischen diesem Wert und der hälfte bleibt. Zum Beispiel bei einer Tickrate von 60 Hz versucht das Spiel, diese zu halten. Falls dies zu viel ist, regelt der Computer diese runter bis zu einer Untergrenze von 30Hz. Das Spiel passt die Tickrate automatisch so an, dass sie immer zwischen diesem Wert und der Hälfte bleibt. Zum Beispiel bei einer Tickrate von 60 Hz versucht das Spiel, diese zu halten. Bei Bedarf regelt der Computer diese bis zu einer Untergrenze von 30 Hz herunter.
alwaysMultiplace: alwaysMultiplace:
title: Mehrfachplatzierung title: Mehrfachplatzierung
description: >- description: >-
Bei Aktivierung wird das platzierte Gebäude nicht abgewählt. Das hat den gleichen Effekt wie beim Platzieren UMSCH gedrückt zu halten. Bei Aktivierung wird das platzierte Gebäude nicht abgewählt. Das hat den gleichen Effekt, wie beim Platzieren UMSCH gedrückt zu halten.
offerHints: offerHints:
title: Hinweise & Tutorials title: Hinweise & Tutorials
@ -793,7 +793,7 @@ keybindings:
hint: >- hint: >-
Tipp: Benutze STRG, UMSCH and ALT! Sie aktivieren verschiedene Platzierungsoptionen. Tipp: Benutze STRG, UMSCH and ALT! Sie aktivieren verschiedene Platzierungsoptionen.
resetKeybindings: Tastenbelegung zurücksetzen. resetKeybindings: Tastenbelegung zurücksetzen
categoryLabels: categoryLabels:
general: Anwendung general: Anwendung
@ -844,13 +844,13 @@ keybindings:
rotateWhilePlacing: Rotieren rotateWhilePlacing: Rotieren
rotateInverseModifier: >- rotateInverseModifier: >-
Modifikator: stattdessen gegen den UZS rotieren Modifikator: stattdessen gegen den UZS rotieren
cycleBuildingVariants: Variante wählen cycleBuildingVariants: Nächste Variante auswählen
confirmMassDelete: Massenlöschung bestätigen confirmMassDelete: Massenlöschung bestätigen
pasteLastBlueprint: Letzte Blaupause einfügen pasteLastBlueprint: Letzte Blaupause einfügen
cycleBuildings: Gebäude rotieren cycleBuildings: Nächstes Gebäude auswählen
lockBeltDirection: Bandplaner aktivieren lockBeltDirection: Bandplaner aktivieren
switchDirectionLockSide: >- switchDirectionLockSide: >-
Planer: Seite wechseln Bandplaner: Seite wechseln
massSelectStart: Halten und ziehen zum Beginnen massSelectStart: Halten und ziehen zum Beginnen
massSelectSelectMultiple: Mehrere Areale markieren massSelectSelectMultiple: Mehrere Areale markieren

View File

@ -426,6 +426,12 @@ ingame:
1_3_expand: >- 1_3_expand: >-
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them. This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them.
# Connected miners
connectedMiners:
one_miner: 1 Miner
n_miners: <amount> Miners
limited_items: Limited to <max_throughput>
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
belt: belt:
@ -596,7 +602,7 @@ buildings:
default: default:
name: &filter Filter name: &filter Filter
# TEMP # TEMP
description: Only leaves through items who match exactly the provided shape / color. If you put in a boolean 1, it leaves everything through, if you put in a 0 it will leave nothing through. description: Only allows through items which match exactly the provided shape / color. If you put in a boolean 1, it allows everything through, if you put in a 0 it will allow nothing through.
display: display:
default: default:
@ -730,6 +736,8 @@ settings:
prod: Production prod: Production
buildDate: Built <at-date> buildDate: Built <at-date>
rangeSliderPercentage: <amount> %
labels: labels:
uiScale: uiScale:
title: Interface scale title: Interface scale
@ -887,6 +895,11 @@ settings:
description: >- description: >-
The game is divided into chunks of 16x16 tiles, if this setting is enabled the borders of each chunk are displayed. The game is divided into chunks of 16x16 tiles, if this setting is enabled the borders of each chunk are displayed.
pickMinerOnPatch:
title: Pick miner on resource patch
description: >-
Enabled by default, selects the miner if you use the pipette when hovering a resource patch.
keybindings: keybindings:
title: Keybindings title: Keybindings
hint: >- hint: >-

View File

@ -638,6 +638,7 @@ settings:
general: Général general: Général
userInterface: Interface Utilisateur userInterface: Interface Utilisateur
advanced: Avancé advanced: Avancé
performance: Performance
versionBadges: versionBadges:
dev: Développement dev: Développement
@ -722,11 +723,13 @@ settings:
fast: Rapide fast: Rapide
super_fast: Très rapide super_fast: Très rapide
extremely_fast: Extrêmement rapide extremely_fast: Extrêmement rapide
enableTunnelSmartplace: enableTunnelSmartplace:
title: Tunnels intelligents title: Tunnels intelligents
description: >- description: >-
Si cette option est sélectionnée, placer des tunnels effacera automatiquement les convoyeurs inutiles. Si cette option est sélectionnée, placer des tunnels effacera automatiquement les convoyeurs inutiles.
Cela permet aussi d'étirer les tunnels et les tunnels en surnombre seront effacés. Cela permet aussi d'étirer les tunnels et les tunnels en surnombre seront effacés.
vignette: vignette:
title: Effet de vignette title: Effet de vignette
description: >- description: >-
@ -743,10 +746,12 @@ settings:
ten_minutes: 10 Minutes ten_minutes: 10 Minutes
twenty_minutes: 20 Minutes twenty_minutes: 20 Minutes
disabled: Désactivé disabled: Désactivé
compactBuildingInfo: compactBuildingInfo:
title: Informations réduites sur les bâtiments title: Informations réduites sur les bâtiments
description: >- description: >-
Raccourcit les panneaux d'information sur les bâtiments en n'affichant que les ratios. Dans le cas contraire, une description et une imagine sont présentés. Raccourcit les panneaux d'information sur les bâtiments en n'affichant que les ratios. Dans le cas contraire, une description et une imagine sont présentés.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Désactive les avertissement pour Couper/Effacer title: Désactive les avertissement pour Couper/Effacer
description: >- description: >-
@ -755,12 +760,39 @@ settings:
enableColorBlindHelper: enableColorBlindHelper:
title: Mode Daltonien title: Mode Daltonien
description: Active divers outils qui permettent de jouer à ce jeu si vous êtes daltonien. description: Active divers outils qui permettent de jouer à ce jeu si vous êtes daltonien.
rotationByBuilding: rotationByBuilding:
title: Rotation par catégorie de bâtiment title: Rotation par catégorie de bâtiment
description: >- description: >-
Chaque catégorie de bâtiment enregistre le sens de rotation que vous lui avez assigné la dernière fois, de manière individuelle. Chaque catégorie de bâtiment enregistre le sens de rotation que vous lui avez assigné la dernière fois, de manière individuelle.
Cela sera sans doute plus confortable si vous alternez fréquemment entre le placement de différents types de bâtiments. Cela sera sans doute plus confortable si vous alternez fréquemment entre le placement de différents types de bâtiments.
lowQualityMapResources:
title: Ressources de la carte de plus basse qualité
description: >-
Simplifie le rendu des ressources sur la carte lorsqu'elle est zoomée opur améliorer les performances.
C'est encore plus clean, n'oubliez pas d'essayer !
disableTileGrid:
title: Desactiver la grille de placement
description: >-
Desactiver la grille de placement peut aider les performances. Ça rend aussi le jeu encore plus uni!
clearCursorOnDeleteWhilePlacing:
title: Effacer le curseur avec clic droit
description: >-
Activé par défaut, efface le curseur lorsque vous faites un clic droit en ayant un bâtiment selectioné pour la constructio. Si desactivé, vous pouvez detruire les bâtiments en faisant un clic droit tout en placant un bâtiment.
lowQualityTextures:
title: Textures de basse résolution (Moche)
description: >-
Utilise des textures de basse qualité pour augmenter les performances. Cela va rendre le jeu moche!
displayChunkBorders:
title: Monter les bordures de chunks
description: >-
Le jeu est divisé en parties de 16x16 cases, si ce réglage est activé, les bordures de chaque partie sont affichées.
keybindings: keybindings:
title: Contrôles title: Contrôles
hint: >- hint: >-
@ -868,6 +900,4 @@ demo:
# French translation version v0.5 based on english v1.1.8 by Didier WEERTS 'The Corsaire' # French translation version v0.5 based on english v1.1.8 by Didier WEERTS 'The Corsaire'
# #
# French translation completed (and corrected) by Pascal Grossé and Withers001 # French translation completed (and corrected) by Pascal Grossé, martypiton and Withers001.
# French translation entirely completed and corrected by martypiton

View File

@ -31,75 +31,76 @@ steamPage:
longText: >- longText: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. In shapez.io potrai costruire delle fabbriche per automatizzare la creazione e la combinazione di forme sempre più complesse, in una mappa infinita.
Upon delivering the requested shapes you will progress within the game and unlock upgrades to speed up your factory.
As the demand for shapes increases, you will have to scale up your factory to meet the demand - Don't forget about resources though, you will have to expand across the [b]infinite map[/b]! Una volta che avrai consegnato le forme richieste, progredirai nel gioco e sbloccherai dei miglioramenti per rendere la tua fabbrica più veloce.
Soon you will have to mix colors and paint your shapes with them - Combine red, green and blue color resources to produce different colors and paint shapes with it to satisfy the demand. Per rispondere alla crescente richiesta di forme, dovrai ingrandire la tua fabbrica - Non dimenticarti delle risorse, però; dovrai espanderti attraverso la [b]mappa infinita[/b]!
This game features 18 progressive levels (Which should keep you busy for hours already!) but I'm constantly adding new content - There is a lot planned! Presto dovrai mescolare colori e usarli per verniciare le tue forme - Combina le risorse dei colori rosso, verde e blu per produrre colori differenti, verniciare le forme con essi e soddisfare la richiesta.
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Nel gioco sono presenti 18 livelli progressivi (Che già dovrebbero tenerti occupato per ore) Ma sto costantemente aggiungendo nuovi contenuti - C'è molto in programma!
[b]Standalone Advantages[/b] Acquistare il gioco ti darà accesso alla versione standalone, con caratteristiche aggiuntive e l'accesso ai nuovi contenuti sviluppati.
[b]Vantaggi della versione completa[/b]
[list] [list]
[*] Dark Mode [*] Modalità scura
[*] Unlimited Waypoints [*] Segnapunti illimitati
[*] Unlimited Savegames [*] Salvataggi illimitati
[*] Additional settings [*] Opzioni aggiuntive
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] In arrivo: Cavi ed energia! Previsti (approssimativamente) per la fine di Luglio 2020.
[*] Coming soon: More Levels [*] Coming soon: Più livelli
[*] Allows me to further develop shapez.io ❤️ [*] Mi consente di svillupare ulteriormente shapez.io ❤️
[/list] [/list]
[b]Future Updates[/b] [b]Aggiornamenti futuri[/b]
I am updating the game very often and trying to push an update at least every week! Sto aggiornando il gioco molto di frequente e cerco di pubblicare un nuovo aggiornamento almeno una volta a settimana.
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] Mappe diverse e sfide (ad esempio mappe con ostacoli)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] Rompicapi (Consegna la forma richiesta utilizzando un'area limitata o un insieme ristretto di edifici)
[*] A story mode where buildings have a cost [*] Una modalità storia in cui gli edifici hanno un costo.
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] Generatore della mappa configurabile (Configura dimensione e densità delle forme/risorse, seed e altro)
[*] Additional types of shapes [*] Tipi di forma aggiuntivi.
[*] Performance improvements (The game already runs pretty well!) [*] Miglioramenti delle prestazioni (Il gioco funziona già piuttosto bene!)
[*] And much more! [*] E molto altro!
[/list] [/list]
[b]This game is open source![/b] [b]Questo gioco è open source![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. Chiunque può contribuire, interagisco attivamente con la community, cerco leggere tutti i suggerimenti e tengo in considerazione i feedback quando possibile.
Be sure to check out my trello board for the full roadmap! Visita la mia pagina su trello per la tabella di marcia completa!
[b]Links[/b] [b]Links[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]Server ufficiale Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]Tabella di marcia[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url] [*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Source code (GitHub)[/url] [*] [url=https://github.com/tobspr/shapez.io]Codice sorgente(GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Help translate[/url] [*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Aiuto per le traduzioni[/url]
[/list] [/list]
discordLink: Official Discord - Chat with me! discordLink: Server ufficiale Discord - Chatta con me!
global: global:
loading: Caricamento loading: Caricamento
error: Errore error: Errore
# How big numbers are rendered, e.g. "10,000" # How big numbers are rendered, e.g. "10,000"
thousandsDivider: "," 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 seperate the integer part from the fractional part of a number, e.g. "0.4"
decimalSeparator: "." decimalSeparator: ","
# The suffix for large numbers, e.g. 1.3k, 400.2M, etc. # The suffix for large numbers, e.g. 1.3k, 400.2M, etc.
suffix: suffix:
thousands: k thousands: k
millions: M millions: M
billions: B billions: G
trillions: T trillions: T
# Shown for infinitely big numbers # Shown for infinitely big numbers
@ -135,7 +136,7 @@ demoBanners:
# This is the "advertisement" shown in the main menu and other various places # This is the "advertisement" shown in the main menu and other various places
title: Versione Demo title: Versione Demo
intro: >- intro: >-
Ottieni la versione standalone per sbloccare tutte le funzioni! Ottieni la versione completa per sbloccare tutte le funzioni!
mainMenu: mainMenu:
play: Play play: Play
@ -147,7 +148,7 @@ mainMenu:
# This is shown when using firefox and other browsers which are not supported. # This is shown when using firefox and other browsers which are not supported.
browserWarning: >- browserWarning: >-
Ci spiace, ma il gioco è molto lento su questo browser! Ottieni la versione standalone oppure scarica Chrome per provare l'esperienza completa. Ci spiace, ma il gioco è molto lento su questo browser! Ottieni la versione completa oppure scarica Chrome per l'intera esperienza.
savegameLevel: Livello <x> savegameLevel: Livello <x>
savegameLevelUnknown: Livello sconosciuto savegameLevelUnknown: Livello sconosciuto
@ -163,12 +164,12 @@ dialogs:
delete: Elimina delete: Elimina
cancel: Annulla cancel: Annulla
later: Più tardi later: Più tardi
restart: Ricomincia restart: Riavvia
reset: Reset reset: Reset
getStandalone: Ottieni la versione completa getStandalone: Ottieni la versione completa
deleteGame: So cosa sto facendo deleteGame: So cosa sto facendo
viewUpdate: Mostra aggiornamento viewUpdate: Mostra aggiornamento
showUpgrades: Mostra upgrade showUpgrades: Mostra miglioramenti
showKeybindings: Mostra scorciatoie showKeybindings: Mostra scorciatoie
importSavegameError: importSavegameError:
@ -199,42 +200,43 @@ dialogs:
restartRequired: restartRequired:
title: Restart richiesto title: Restart richiesto
text: >- text: >-
Per applicare le nuove impostazioni è necessario il Restart del gioco. Per applicare le nuove impostazioni è necessario riavviare del gioco.
editKeybinding: editKeybinding:
title: Cambia comandi title: Cambia comandi
desc: Premi un nuovo tasto o un tasto del mouse a cui vuoi assegnare questo comando, Esc per cancellarlo. desc: Premi un nuovo tasto o un tasto del mouse a cui vuoi assegnare questo comando, Esc per annullare.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Reset comandi assegnati title: Reset comandi assegnati
desc: Così riporterai tutti comandi al loro stato di default. Perfavore conferma. desc: Così riporterai tutti comandi al loro stato predefinto. Per favore conferma.
keybindingsResetOk: keybindingsResetOk:
title: Successo nel reset dei comandi title: Successo nel reset dei comandi
desc: I comandi sono stati riassegnati ai loro rispettivi comandi di default! desc: I comandi predefiniti sono stati ripristinati!
featureRestriction: featureRestriction:
title: Versione Demo title: Versione Demo
desc: Hai provato ad accedere ad una feature (<feature>) che non è disponibile nella Demo. Considera di prendere la versione standalne per un'esperienza completa! desc: Hai provato ad accedere ad una caratteristica (<feature>) che non è disponibile nella Demo. Considera di prendere la versione completa per l'intera esperienza!
oneSavegameLimit: oneSavegameLimit:
title: Salvataggi limitati title: Salvataggi limitati
desc: Puoi avere solo un salvataggio nella versione Demo. Perfavore rimuovi il salvataggio già esistente o prendi la versione standalone! desc: Puoi avere solo un salvataggio nella versione Demo. Perfavore rimuovi il salvataggio già esistente o prendi la versione completa!
updateSummary: updateSummary:
title: Nuovo update! title: Nuovo aggiornamento!
desc: >- desc: >-
Qui puoi trovare i cambiamenti dall'ultima volta che hai giocato: Qui puoi trovare i cambiamenti dall'ultima volta che hai giocato:
upgradesIntroduction: upgradesIntroduction:
title: Aggiornamenti sbloccati title: Miglioramenti sbloccati
desc: >- desc: >-
Tutte le forme che produci possono essere utilizzate per i miglioramenti - <strong>Non distruggere le tue vecchie fabbriche!</strong> Tutte le forme che produci possono essere utilizzate per i miglioramenti - <strong>Non distruggere le tue vecchie fabbriche!</strong>
Puoi trovare gli aggiornamenti nell'angolo in alto a destra dello schermo. Puoi trovare i miglioramenti nell'angolo in alto a destra dello schermo.
massDeleteConfirm: massDeleteConfirm:
title: Conferma la rimozione title: Conferma la rimozione
desc: >- desc: >-
Stai rimuovendo molte strutture (<count> to be exact)! Stai rimuovendo molte strutture (<count> per essere precisi)!
Sei sicuro di volerlo fare? Sei sicuro di volerlo fare?
blueprintsNotUnlocked: blueprintsNotUnlocked:
@ -246,33 +248,33 @@ dialogs:
title: Comandi utili title: Comandi utili
desc: >- desc: >-
Questo gioco ha molti comandi utili che possono rendere più semplice la costruzione delle fabbriche. Questo gioco ha molti comandi utili che possono rendere più semplice la costruzione delle fabbriche.
Qui ce ne sono un paio, ma sii sicuro <strong>controlla i comandi</strong>!<br><br> Qui ce ne sono un paio, ma dovresti <strong>controllare i comandi</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Drag: Seleziona l'area da copiare / cancella.<br> <code class='keybinding'>CTRL</code> + Drag: Seleziona l'area da copiare / cancella.<br>
<code class='keybinding'>SHIFT</code>: Tieni premuto per costruire copie dalla struttura.<br> <code class='keybinding'>SHIFT</code>: Tieni premuto per costruire copie dell'edificio.<br>
<code class='keybinding'>ALT</code>: Invert l'orientamento dei nastri trasportatori.<br> <code class='keybinding'>ALT</code>: Inverti l'orientamento dei nastri trasportatori.<br>
createMarker: createMarker:
title: Nuovo Marker title: Nuovo segnapunto
desc: Dagli un magnifico nome, puoi anche includere <strong>short key</strong> di una figura (Che puoi generare <a href="https://viewer.shapez.io" target="_blank">here</a>) desc: Dagli un nome con un significato, puoi anche includere il <strong>codice</strong> di una figura (Che puoi generare <a href="https://viewer.shapez.io" target="_blank">qui</a>)
titleEdit: Edit Marker titleEdit: Modifica segnapunto
markerDemoLimit: markerDemoLimit:
desc: Puoi creare solo due Marker personalizzati nella Demo. Prendi la versione standalone per Marker personalizzati illimitati! desc: Puoi creare solo due segnapunti personalizzati nella Demo. Ottieni la versione completa per avere segnapunti personalizzati illimitati!
massCutConfirm: massCutConfirm:
title: Conferma taglio title: Conferma taglio
desc: >- desc: >-
Stai tagliando molte strutture (<count> to be exact)! Stai tagliando molte strutture (<count> per essere precisi)!
Sei sicuro di volerlo fare? Sei sicuro di volerlo fare?
exportScreenshotWarning: exportScreenshotWarning:
title: Esportare screenshot title: Esportare screenshot
desc: >- desc: >-
Hai richiesto di esportare la tua base come screenshot. Perfavore tieni conto che potrebbe Hai richiesto di esportare la tua base come screenshot. Perfavore tieni conto che potrebbe
essere lento per una grossa base e che potrebbe crushare il gioco! essere lento per una grossa base e che potrebbe causare il crash del gioco!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Conferma taglia
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: Non puoi permetterti di incollare quest'area! Sei sicuro di volerla tagliare?
ingame: ingame:
# This is shown in the top left corner and displays useful keybindings in # This is shown in the top left corner and displays useful keybindings in
@ -281,23 +283,22 @@ ingame:
moveMap: Sposta moveMap: Sposta
selectBuildings: Seleziona area selectBuildings: Seleziona area
stopPlacement: Concludi posizionamento stopPlacement: Concludi posizionamento
rotateBuilding: Ruota costruzione rotateBuilding: Ruota edificio
placeMultiple: Posiziona multiplo placeMultiple: Posiziona multiplo
reverseOrientation: Inverti orientamento reverseOrientation: Inverti orientamento
disableAutoOrientation: Disabilita orientamento automatico disableAutoOrientation: Disabilita orientamento automatico
toggleHud: Mostra/Nascondi HUD toggleHud: Mostra/Nascondi HUD
placeBuilding: Posiziona costruzione placeBuilding: Posiziona costruzione
createMarker: Crea etichetta createMarker: Crea etichetta
delete: Distruggi delete: Cancella
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Incolla l'ultimo progetto
lockBeltDirection: Enable belt planner lockBeltDirection: Attiva pianificatore nastri
plannerSwitchSide: Flip planner side plannerSwitchSide: Cambia direzione pianificatore
cutSelection: Taglia cutSelection: Taglia
copySelection: Copia copySelection: Copia
clearSelection: Annulla selezione clearSelection: Annulla selezione
pipette: Contagocce pipette: Contagocce
switchLayers: Switch layers switchLayers: Cambia livello
# Everything related to placing buildings (I.e. as soon as you selected a building # Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar) # from the toolbar)
buildingPlacement: buildingPlacement:
@ -317,47 +318,48 @@ ingame:
itemsPerSecond: <x> oggetti / s itemsPerSecond: <x> oggetti / s
itemsPerSecondDouble: (x2) itemsPerSecondDouble: (x2)
tiles: <x> titles tiles: <x> caselle
# The notification when completing a level # The notification when completing a level
levelCompleteNotification: levelCompleteNotification:
# <level> is replaced by the actual level, so this gets 'Level 03' for example. # <level> is replaced by the actual level, so this gets 'Level 03' for example.
levelTitle: Livello <level> levelTitle: Livello <level>
completed: Completato completed: Completato
unlockText: Sbloccato <reward>! unlockText: >-
Sbloccato: <reward>!
buttonNextLevel: Prossimo livello buttonNextLevel: Prossimo livello
# Notifications on the lower right # Notifications on the lower right
notifications: notifications:
newUpgrade: U nuovo aggiornamento è disponibile! newUpgrade: È disponibile un nuovo aggiornamento!
gameSaved: La tua partita è stata salvata. gameSaved: Partita salvata.
# The "Upgrades" window # The "Upgrades" window
shop: shop:
title: Aggiornamenti title: Miglioramenti
buttonUnlock: Sblocca buttonUnlock: Sblocca
# Gets replaced to e.g. "Tier IX" # Gets replaced to e.g. "Tier IX"
tier: Tier <x> tier: Grado <x>
# The roman number for each tier # The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X] tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: LIVELLO MASSIMO (Speed x<currentMult>) maximumLevel: GRADO MASSIMO (Velocità x<currentMult>)
# The "Statistics" window # The "Statistics" window
statistics: statistics:
title: Statistiche title: Statistiche
dataSources: dataSources:
stored: stored:
title: Immagazzinati title: Immagazzinate
description: Displaying amount of stored shapes in your central building. description: Mostra il numero di forme immagizzinate nell'edificio centrale.
produced: produced:
title: Prodotti title: Prodotte
description: Displaying all shapes your whole factory produces, including intermediate products. description: Mostra tutte le forme prodotte dalla tua fabbrica, inclusi i prodotti intermedi.
delivered: delivered:
title: Delivered title: Consegnate
description: Displaying shapes which are delivered to your central building. description: Mostra le forme che vengono consegnate all'edificio centrale.
noShapesProduced: No shapes have been produced so far. noShapesProduced: No shapes have been produced so far.
# Displays the shapes per minute, e.g. '523 / m' # Displays the shapes per minute, e.g. '523 / m'
@ -367,7 +369,7 @@ ingame:
settingsMenu: settingsMenu:
playtime: Tempo di gioco playtime: Tempo di gioco
buildingsPlaced: Buildings buildingsPlaced: Edifici
beltsPlaced: Nastri beltsPlaced: Nastri
buttons: buttons:
@ -387,50 +389,50 @@ ingame:
# Map markers # Map markers
waypoints: waypoints:
waypoints: Markers waypoints: Segnapunti
hub: HUB hub: HUB
description: Left-click a marker to jump to it, right-click to delete it.<br><br>Press <keybinding> to create a marker from the current view, or <strong>right-click</strong> to create a marker at the selected location. description: Click sinistro su un segnapunto per raggiungerlo, click destro per cancellarlo. <br><br>Premi <keybinding> per creare un segnapunto dalla visuale corrente, oppure <strong>click destro</strong> per creare un segnapunto nella posizione selezionata.
creationSuccessNotification: Marker has been created. creationSuccessNotification: Il segnapunto è stato creato.
# Interactive tutorial # Interactive tutorial
interactiveTutorial: interactiveTutorial:
title: Tutorial title: Tutorial
hints: hints:
1_1_extractor: Place an <strong>extractor</strong> on top of a <strong>circle shape</strong> to extract it! 1_1_extractor: Posiziona un <strong>estrattore</strong> sopra una <strong>forma circolare</strong> per estrarla!
1_2_conveyor: >- 1_2_conveyor: >-
Connect the extractor with a <strong>conveyor belt</strong> to your hub!<br><br>Tip: <strong>Click and drag</strong> the belt with your mouse! Connetti l'estrattore all'Hub centrale utilizzando un <strong>nastro trasportatore</strong>!<br><br>Suggerimento: <strong>Clicca e trascina</strong> il nastro con il mouse!
1_3_expand: >- 1_3_expand: >-
This is <strong>NOT</strong> an idle game! Build more extractors and belts to finish the goal quicker.<br><br>Tip: Hold <strong>SHIFT</strong> to place multiple extractors, and use <strong>R</strong> to rotate them. Questo <strong>NON</strong> è un idle game! Costruisci più estrattori e nastri per raggiungere l'obiettivo più velocemente.<br><br>Suggerimento: Tieni premuto <strong>MAIUSC</strong> per piazzare estrattori multipli, e usa <strong>R</strong> per ruotarli.
colors: colors:
red: Rosso red: Rosso
green: Verde green: Verde
blue: Blu blue: Blu
yellow: Giallo yellow: Giallo
purple: Viola purple: Magenta
cyan: Azzurro cyan: Azzurro
white: Bianco white: Bianco
uncolored: No colore uncolored: No colore
black: Black black: Nero
shapeViewer: shapeViewer:
title: Livelli title: Strati
empty: Vuoto empty: Vuoto
copyKey: Copy Key copyKey: Copia codice
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
belt: belt:
name: Belts, Distributor & Tunnels name: Nastri, distribuzione e tunnel
description: Velocità x<currentMult> → x<newMult> description: Velocità x<currentMult> → x<newMult>
miner: miner:
name: Estrazione name: Estrazione
description: Velocità x<currentMult> → x<newMult> description: Velocità x<currentMult> → x<newMult>
processors: processors:
name: Cutting, Rotating & Stacking name: Taglio, rotazione e impilamento
description: Velocità x<currentMult> → x<newMult> description: Velocità x<currentMult> → x<newMult>
painting: painting:
name: Mixing & Painting name: Mix e verniciatura
description: Velocità x<currentMult> → x<newMult> description: Velocità x<currentMult> → x<newMult>
# Buildings and their name / description # Buildings and their name / description
@ -473,27 +475,27 @@ buildings:
cutter: cutter:
default: default:
name: &cutter Cutter name: &cutter Tagliatrice
description: Cuts shapes from top to bottom and outputs both halfs. <strong>If you use only one part, be sure to destroy the other part or it will stall!</strong> description: Taglia le forme verticalmente e restituisce le metà destra e sinistra. <strong>Se usi solo una parte, distruggi l'altra o la macchina si fermerà!</strong>
quad: quad:
name: Cutter (Quad) name: Tagliatrice (4x)
description: Cuts shapes into four parts. <strong>If you use only one part, be sure to destroy the other part or it will stall!</strong> description: Taglia le forme in quattro parti. <strong>Se usi solo una parte, distruggi le altre o la macchina si fermerà!</strong>
rotater: rotater:
default: default:
name: &rotater Rotate name: &rotater Ruotatrice
description: Rotates shapes clockwise by 90 degrees. description: Ruota le forme di 90 gradi in senso orario.
ccw: ccw:
name: Rotate (CCW) name: Ruotatrice (Ant.)
description: Rotates shapes counter clockwise by 90 degrees. description: Ruota le forme di 90 gradi in senso antiorario.
fl: fl:
name: Rotate (180) name: Ruotatrice (180)
description: Rotates shapes by 180 degrees. description: Ruota le forme di 180 gradi.
stacker: stacker:
default: default:
name: &stacker Stacker name: &stacker Impilatrice
description: Stacks both items. If they can not be merged, the right item is placed above the left item. description: Unisce o impila i due oggetti, se gli oggetti non possono essere uniti, l'oggetto destro è posizionato sopra il sinstro.
mixer: mixer:
default: default:
@ -502,14 +504,14 @@ buildings:
painter: painter:
default: default:
name: &painter Verniciatore name: &painter Verniciatrice
description: &painter_desc Colora l'intera forma dell'ingresso sinistro con il colore dell'ingresso destro. description: &painter_desc Colora l'intera forma dall'ingresso sinistro con il colore dall'ingresso destro.
double: double:
name: Verniciatore (Doppio) name: Verniciatrice (2x)
description: Colors the shapes on the left inputs with the color from the top input. description: Colora le forme dagli ingressi sinistri con il colore dall'ingresso destro.
quad: quad:
name: Verniciatore (Quadruplo) name: Verniciatrice (4x)
description: Allows to color each quadrant of the shape with a different color. description: Consente di colorare ogni quadrante della forma con un colore diverso.
mirrored: mirrored:
name: *painter name: *painter
description: *painter_desc description: *painter_desc
@ -517,156 +519,158 @@ buildings:
trash: trash:
default: default:
name: &trash Cestino name: &trash Cestino
description: Accetta ingressi da tutti i lati e li distrugge. per sempre. description: Accetta oggetti da tutti i lati e li distrugge. Per sempre.
storage: storage:
name: Storage name: Stoccaggio
description: Stores excess items, up to a given capacity. Can be used as an overflow gate.
#Literal translation, quite ugly, might need rephrasing
description: Immagazzina gli oggetti in eccesso, fino ad una certa capacità. Può essere usato come varco per le eccedenze
hub: hub:
deliver: Consegna deliver: Consegna
toUnlock: per sbloccare toUnlock: per sbloccare
levelShortcut: LVL levelShortcut: LVL
wire: wire:
default: default:
name: Energy Wire name: Cavo energetico
description: Allows you to transport energy. description: Ti consente di trasportare energia.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: Invertitore di colori
description: Accepts a color or shape and inverts it. description: Accetta un colore o una forma e li inverte.
energy_generator: energy_generator:
deliver: Deliver deliver: Consegna
toGenerateEnergy: For toGenerateEnergy: per generare
default: default:
name: Energy Generator name: Generatore di energia
description: Generates energy by consuming shapes. description: Genera energia consumando forme.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: Separatore cavi
description: Splits a energy wire into two. description: Divide un cavo energetico in due.
merger: merger:
name: Wire Merger name: Giunzione cavi
description: Merges two energy wires into one. description: Unisce due cavi energetici in uno.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
reward_cutter_and_trash: reward_cutter_and_trash:
title: Cutting Shapes title: Taglio forme
desc: You just unlocked the <strong>cutter</strong> - it cuts shapes half from <strong>top to bottom</strong> regardless of its orientation!<br><br>Be sure to get rid of the waste, or otherwise <strong>it will stall</strong> - For this purpose I gave you a trash, which destroys everything you put into it! desc: Hai appena sbloccato la <strong>tagliatrice</strong> - taglia le forme <strong>verticalmente</strong> indipendentemente da come è orientata!<br><br>Elimina gli scarti, o altrimenti <strong>si bloccherà</strong> - A questo scopo ti ho dato un cestino, che distrugge qualsiasi cosa tu metta dentro!
reward_rotater: reward_rotater:
title: Rotating title: Rotazione
desc: The <strong>rotater</strong> has been unlocked! It rotates shapes clockwise by 90 degrees. desc: La <strong>ruotatrice</strong> è stata sbloccata! Ruota le forme di 90 gradi in senso orario.
reward_painter: reward_painter:
title: Painting title: Verniciatura
desc: >- desc: >-
The <strong>painter</strong> 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!<br><br>PS: If you are colorblind, there is a <strong>color blind mode</strong> in the settings! La <strong>verniciatrice</strong> è stata sbloccata - Estrai dalle vene colorate (esattamente come fai con le forme) e combina il colore con una forma nella veniciatrice per colorarla!<br><br>PS: Se sei daltonico, c'è la <strong>modalità daltonici </strong> nelle opzioni!
reward_mixer: reward_mixer:
title: Color Mixing title: Mix colori
desc: The <strong>mixer</strong> has been unlocked - Combine two colors using <strong>additive blending</strong> with this building! desc: Il <strong>mixer</strong> è stato sbloccato - Con questo edificio, puoi combinare due colori mediante <strong>sintesi additiva</strong>!
reward_stacker: rreward_stacker:
title: Combiner title: Impilatrice
desc: You can now combine shapes with the <strong>combiner</strong>! Both inputs are combined, and if they can be put next to each other, they will be <strong>fused</strong>. If not, the right input is <strong>stacked on top</strong> of the left input! desc: >-
Ora puoi unire forme con l'<strong>impilatrice</strong>! Le forme in ingresso vengono combinate: se possono essere poste l'una accanto all'altra verranno <strong>fuse</strong>, altrimenti le forme dall'ingresso destro vengono <strong>impilate sopra</strong> quelle dal sinistro!
reward_splitter: reward_splitter:
title: Splitter/Merger title: Separatore/Agrregatore
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can be used to build bigger factories by <strong>splitting and merging items</strong> onto multiple belts!<br><br> desc: Il <strong>bilanciatore</strong> multifunzione è stato sbloccato - Può essere usato per costruire fabbriche più grandi <strong>unendo o dividendo gli oggetti</strong> tra diversi nastri!<br><br>
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
desc: The <strong>tunnel</strong> has been unlocked - You can now pipe items through belts and buildings with it! desc: Il <strong>tunnel</strong> è stato sbloccato - In questo modo puoi trasportare oggetti al di sotto di nastri ed edifici!
reward_rotater_ccw: reward_rotater_ccw:
title: CCW Rotating title: Rotazione antioraria
desc: You have unlocked a variant of the <strong>rotater</strong> - It allows to rotate counter clockwise! To build it, select the rotater and <strong>press 'T' to cycle its variants</strong>! desc: Hai sbloccato una variante della <strong>ruotatrice</strong> - Consente di ruotare in senso antiorario! Per costruirla, seleziona la ruotatrice e <strong>premi 'T' per cambiare variante</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Chaining Extractor title: Estrattore a catena
desc: You have unlocked the <strong>chaining extractor</strong>! It can <strong>forward its resources</strong> to other extractors so you can more efficiently extract resources! desc: Hai sbloccato l'<strong>estrattore a catena</strong>! Può <strong>trasferire le sue risorse</strong> ad altri estrattori, così puoi estrarre risorse in modo più efficiente!
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunnel Tier II title: Tunnel grado II
desc: You have unlocked a new variant of the <strong>tunnel</strong> - It has a <strong>bigger range</strong>, and you can also mix-n-match those tunnels now! desc: Hai sbloccato una nuova variante del <strong>tunnel</strong> - Ha un <strong>raggio più ampio</strong> e puoi anche mischiare le due varianti ora!
reward_splitter_compact: reward_splitter_compact:
title: Compact Balancer title: Bilanciatore compatto
desc: >- desc: >-
You have unlocked a compact variant of the <strong>balancer</strong> - It accepts two inputs and merges them into one! Hai sbloccato una variante compatta del <strong>bilanciatore</strong> - Accetta due ingressi e li unisce!
reward_cutter_quad: reward_cutter_quad:
title: Quad Cutting title: Taglio quadruplo
desc: You have unlocked a variant of the <strong>cutter</strong> - It allows you to cut shapes in <strong>four parts</strong> instead of just two! desc: Hai sbloccato una variante della <strong>tagliatrice</strong> - Cconsente di tagliare le forme in <strong>quattro parti</strong> invece che in due!
reward_painter_double: reward_painter_double:
title: Double Painting title: Verniciatura doppia
desc: You have unlocked a variant of the <strong>painter</strong> - It works as the regular painter but processes <strong>two shapes at once</strong> consuming just one color instead of two! desc: Hai sbloccato una variante della <strong>verniciatrice</strong> - Funziona come una normale verniciatrice, ma processa <strong>due forme alla volta</strong> consumando solo un'unità di colore invece che due!
reward_painter_quad: reward_painter_quad:
title: Quad Painting title: Verniciatrice
desc: You have unlocked a variant of the <strong>painter</strong> - It allows to paint each part of the shape individually! desc: Hai sbloccato una variante della <strong>verniciatrice</strong> - Consente di verniciare ogni parte della forma indipendentemente!
reward_storage: reward_storage:
title: Storage Buffer title: Unità di stoccaggio
desc: You have unlocked a variant of the <strong>trash</strong> - It allows to store items up to a given capacity! desc: Hai sbloccato una variante del <strong>cestino</strong> - Consente di immagazzinare oggetti fino ad una certa capacità!
reward_freeplay: reward_freeplay:
title: Freeplay title: Modalità libera
desc: You did it! You unlocked the <strong>free-play mode</strong>! This means that shapes are now randomly generated! (No worries, more content is planned for the standalone!) desc: Ce l'hai fatta! Hai sbloccato la <strong>modalità libera</strong>! Questo significa che adesso le forme sono generate casualmente! (Non preoccuparti, altri contenuti sono in programma per la versione completa!)
reward_blueprints: reward_blueprints:
title: Blueprints title: Progetti
desc: You can now <strong>copy and paste</strong> parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.<br><br>Pasting it is <strong>not free</strong>, you need to produce <strong>blueprint shapes</strong> to afford it! (Those you just delivered). desc: Ora puoi <strong>copiare ed incollare</strong> parti della tua fabbrica! Seleziona un'area (Tieni premuto CTRL e trascina con il mouse) e premi 'C' per copiarla.<br><br>Incollarla <strong>non è gratis</strong>, devi produrre <strong>forme progetto</strong> per potertelo permettere! (Quelle che hai appena consegnato).
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
title: Next level title: Prossimo livello
desc: >- desc: >-
This level gave you no reward, but the next one will! <br><br> PS: Better don't destroy your existing factory - You need <strong>all</strong> those shapes later again to <strong>unlock upgrades</strong>! Questo livello non ti ha dato alcuna ricompensa, ma il prossimo lo farà! <br><br> PS: Meglio non distruggere la fabbrica che hai costruito - Successivamente avrai bisogno di <strong>tutte</strong> quelle forme per <strong>sbloccare i miglioramenti</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Next level title: Prossimo livello
desc: >- desc: >-
Congratulations! By the way, more content is planned for the standalone! Congratulazioni! Ci sono altri contenuti in prgramma per la versione completa!
settings: settings:
title: Impostazioni title: Impostazioni
categories: categories:
general: General general: Generali
userInterface: User Interface userInterface: Interfaccia utente
advanced: Advanced advanced: Avanzate
versionBadges: versionBadges:
dev: Sviluppo dev: Sviluppo
staging: Staging staging: Staging
prod: Produzione prod: Produzione
buildDate: Built <at-date> buildDate: Build del <at-date>
labels: labels:
uiScale: uiScale:
title: Interface scale title: Dimensione interfaccia
description: >- 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. Cambia la dimensione dell'interfaccia utente. L'interfaccia continuerà a cambiare in base alla risoluzione del tuo dispositivo, ma questa impostazione controlla la proporzione.
scales: scales:
super_small: Super small super_small: Minuscola
small: Small small: Piccola
regular: Regular regular: Normale
large: Large large: Grande
huge: Huge huge: Enorme
scrollWheelSensitivity: scrollWheelSensitivity:
title: Zoom sensitivity title: Sensibilità zoom
description: >- description: >-
Changes how sensitive the zoom is (Either mouse wheel or trackpad). Determina quanto è sensibile lo zoom (Sia rotella del mouse che trackpad).
sensitivity: sensitivity:
super_slow: Super slow super_slow: Molto lento
slow: Slow slow: Lento
regular: Regular regular: Regolare
fast: Fast fast: Veloce
super_fast: Super fast super_fast: Molto veloce
language: language:
title: Lingua title: Lingua
@ -674,9 +678,9 @@ settings:
Cambia la lingua. Tutte le traduzioni sono realizzate dagli utenti e potrebbero essere incomplete! Cambia la lingua. Tutte le traduzioni sono realizzate dagli utenti e potrebbero essere incomplete!
fullscreen: fullscreen:
title: Fullscreen title: Schermo intero
description: >- description: >-
It is recommended to play the game in fullscreen to get the best experience. Only available in the standalone. È consigliabile giocare a schermo intero per la migliore esperienza. Disponibile solo nella versione completa.
soundsMuted: soundsMuted:
title: Silenzia Suoni title: Silenzia Suoni
@ -698,23 +702,23 @@ settings:
light: Chiaro light: Chiaro
refreshRate: refreshRate:
title: Simulation Target title: Obiettivo della simulazione
description: >- 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. Se hai un monitor a 144Hz, cambia la frequenza di aggiornamento, in modo tale che il gioco possa correttamente simulare alla frequenza di aggiornamento più alta. Questo potrebbe abbasare i frame al secondo se il tuo computer è troppo lento.
alwaysMultiplace: alwaysMultiplace:
title: Multiplace title: Posizionamento multiplo
description: >- description: >-
If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently. Se abilitato, tutti gli edifici rimarranno selezionati dopo il posizionamento finchè non lo annullerai. È equivalente a tenere costantemente premuto MAIUSC.
offerHints: offerHints:
title: Hints & Tutorials title: Indizi e tutorial
description: >- 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. Determina se saranno presenti indizi e tutorial durante il gioco. Inoltre, nasconde alcuni elementi dell'interfaccia in certi livelli per semplificare le prime fasi di gioco.
movementSpeed: movementSpeed:
title: Movement speed title: Velocità di movimento
description: Changes how fast the view moves when using the keyboard. description: Determina la velocità di spostamento sulla mappa quando si usa la tastiera.
speeds: speeds:
super_slow: Molto lento super_slow: Molto lento
slow: Lento slow: Lento
@ -723,79 +727,75 @@ settings:
super_fast: Molto veloce super_fast: Molto veloce
extremely_fast: Velocissimo extremely_fast: Velocissimo
enableTunnelSmartplace: enableTunnelSmartplace:
title: Smart Tunnels title: Tunnel intelligenti
description: >- description: >-
When enabled, placing tunnels will automatically remove unnecessary belts. Se abilitato, piazzare un tunnel rimuoverà anche qualsiasi nastro superfluo.
This also enables to drag tunnels and excess tunnels will get removed. Consente anche di trascinare i tunnel: i tunnel in eccesso verrano rimossi.
vignette: vignette:
title: Vignetta title: Vignettatura
description: >- description: >-
Enables the vignette which darkens the screen corners and makes text easier Abilita la vignettatura che scurisce gli angoli dello schermo e rende i testi più leggibili.
to read.
autosaveInterval: autosaveInterval:
title: Autosave Interval title: Intervallo salvataggio automatico
description: >- description: >-
Controls how often the game saves automatically. You can also disable it Determina ogni quanto il gioco salva automaticamente.
entirely here. Qui puoi anche disabilitarlo completamente.
intervals: intervals:
one_minute: 1 Minute one_minute: 1 Minuto
two_minutes: 2 Minutes two_minutes: 2 Minuti
five_minutes: 5 Minutes five_minutes: 5 Minuti
ten_minutes: 10 Minutes ten_minutes: 10 Minuti
twenty_minutes: 20 Minutes twenty_minutes: 20 Minuti
disabled: Disabled disabled: Disabilitato
compactBuildingInfo: compactBuildingInfo:
title: Compact Building Infos title: Info edifici compatte
description: >- description: >-
Shortens info boxes for buildings by only showing their ratios. Otherwise a Accorcia le informazioni sugli edifici mostrandone solo la velocità. In caso contrario saranno mostrate immagine e descrizione.
description and image is shown.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Disable Cut/Delete Warnings title: Disabilita avvertimenti taglia/cancella
description: >- description: >-
Disable the warning dialogs brought up when cutting/deleting more than 100 Disabilita i messaggi d'avvertimento quando tagli o cancelli più di 100 entità.
entities.
enableColorBlindHelper: enableColorBlindHelper:
title: Color Blind Mode title: Modalità daltonici
description: Enables various tools which allow to play the game if you are color blind. description: Abilita vari strumenti che ti consentono di giocare se sei daltonico.
rotationByBuilding: rotationByBuilding:
title: Rotation by building type title: Rotazione per tipo di edificio
description: >- description: >-
Each building type remembers the rotation you last set it to individually. Ogni tipo di edificio ricorderà l'ultimo orientamento che hai selezionato indipendentemente dagli altri tipi.
This may be more comfortable if you frequently switch between placing È utile se cambi spesso tipo di edificio.
different building types.
keybindings: keybindings:
title: Keybindings title: Comandi
hint: >- hint: >-
Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options. Suggerimento: Usa spesso CTRL, MAIUSC e ALT! Abilitano opzioni di posizionamento alternative.
resetKeybindings: Reset Keyinbindings resetKeybindings: Reimposta comandi
categoryLabels: categoryLabels:
general: Applicazione general: Generale
ingame: Gioco ingame: Gioco
navigation: Navigazione navigation: Navigazione
placement: Posizionamento placement: Posizionamento
massSelect: Mass Select massSelect: Selezione di massa
buildings: Building Shortcuts buildings: Scorciatoie edifici
placementModifiers: Placement Modifiers placementModifiers: Modificatori piazzamento
mappings: mappings:
confirm: Conferma confirm: Conferma
back: Indietro back: Indietro
mapMoveUp: Move Up mapMoveUp: Spostati sù
mapMoveRight: Move Right mapMoveRight: Spostati a destra
mapMoveDown: Move Down mapMoveDown: Spostati giù
mapMoveLeft: Move Left mapMoveLeft: Spostati a sinistra
centerMap: Centra mappa centerMap: Centra mappa
mapZoomIn: Zoom in mapZoomIn: Aumenta zoom
mapZoomOut: Zoom out mapZoomOut: Riduci zoom
createMarker: Create Marker createMarker: Crea segnapunto
menuOpenShop: Upgrade menuOpenShop: Miglioramenti
menuOpenStats: Statistiche menuOpenStats: Statistiche
toggleHud: Mostra/Nascondi HUD toggleHud: Mostra/Nascondi HUD
@ -813,50 +813,48 @@ keybindings:
rotateWhilePlacing: Ruota rotateWhilePlacing: Ruota
rotateInverseModifier: >- rotateInverseModifier: >-
Modifier: Rotate CCW instead Modificatore: Ruota in senso antiorario
cycleBuildingVariants: Cicla varianti cycleBuildingVariants: Cicla varianti
confirmMassDelete: Conferma eliminazione di massa confirmMassDelete: Conferma eliminazione di massa
cycleBuildings: Cycle Buildings cycleBuildings: Cicla edifici
massSelectStart: Hold and drag to start massSelectStart: Clicca e trascina per cominciare
massSelectSelectMultiple: Seleziona aree multiple massSelectSelectMultiple: Seleziona aree multiple
massSelectCopy: Copia area massSelectCopy: Copia area
placementDisableAutoOrientation: Disable automatic orientation placementDisableAutoOrientation: Disabilita orientamento automatico
placeMultiple: Stay in placement mode placeMultiple: Rimani in modalità posizionamento
placeInverse: Invert automatic belt orientation placeInverse: Inverti direzione automatica nastri
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Incolla l'ultimo progetto
massSelectCut: Cut area massSelectCut: Taglia area
exportScreenshot: Export whole Base as Image exportScreenshot: Esporta l'intera base come immagine
mapMoveFaster: Move Faster mapMoveFaster: Muoviti più rapidamente
lockBeltDirection: Enable belt planner lockBeltDirection: Abilita pianificatore nastri
switchDirectionLockSide: "Planner: Switch side" switchDirectionLockSide: "Pianificatore: cambia direzione"
pipette: Pipette pipette: Contagocce
menuClose: Close Menu menuClose: Chiudi menù
switchLayers: Switch layers switchLayers: Cambia livello
advanced_processor: Color Inverter advanced_processor: Inversore di colore
energy_generator: Energy Generator energy_generator: Generatore di energia
wire: Energy Wire wire: Cavo energetico
about: about:
title: Riguardo questo gioco title: Riguardo questo gioco
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" Questo gioco è open source e sviluppato da <a href="https://github.com/tobspr"
target="_blank">Tobias Springer</a> (this is me).<br><br> target="_blank">Tobias Springer</a> (me).<br><br>
If you want to contribute, check out <a href="<githublink>" Se vuoi contribuire visita la pagina github di <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io</a>.<br><br>
This game wouldn't have been possible without the great Discord community Realizzare questo gioco non sarebbe stato possibile senza la grande community di Discord per i miei giochi - Unisciti al <a href="<discordlink>"
around my games - You should really join the <a href="<discordlink>" target="_blank">server di Discord</a>!<br><br>
target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" La colonna sonora è stata composta da<a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - È un grande.<br><br>
Finally, huge thanks to my best friend <a Per finire, grazie di cuore al mio migliore amico <a
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Senza le nostre sessioni su factorio questo gioco non sarebbe mai esistito.
factorio sessions this game would never have existed.
changelog: changelog:
title: Changelog title: Changelog

View File

@ -70,7 +70,7 @@ steamPage:
[b]このゲームはオープンソースです![/b] [b]このゲームはオープンソースです![/b]
誰でもこのげむの開発を手伝うことができ、私もプレーヤーの意見をできるだけゲームに取り入れようとしています。 誰でもこのゲームの開発を手伝うことができ、私もプレーヤーの意見をできるだけゲームに取り入れようとしています。
Trelloで今後の予定が全て確認できます。 Trelloで今後の予定が全て確認できます。
[b]外部リンク[/b] [b]外部リンク[/b]

View File

@ -213,12 +213,12 @@ dialogs:
desc: 모든 키바인딩이 기본값으로 재설정 되었습니다! desc: 모든 키바인딩이 기본값으로 재설정 되었습니다!
featureRestriction: featureRestriction:
title: 데모 버전 title: 체험판 버전
desc: 데모 버전에는 없는 콘텐츠(<feature>)로 시도했습니다. 유료 버전을 구입해서 모든 콘텐츠를 사용해보세요! desc: 체험판 버전에는 없는 콘텐츠(<feature>)로 시도했습니다. 유료 버전을 구입해서 모든 콘텐츠를 사용해보세요!
oneSavegameLimit: oneSavegameLimit:
title: 저장파일 개수 제한 title: 저장파일 개수 제한
desc: 데모 버전에서는 저장 파일을 한 번에 한 개만 사용할 수 있습니다. 이미 있는 저장 파일을 지우거나 유료 버전을 구입 해주새요. desc: 체험판 버전에서는 저장 파일을 한 번에 한 개만 사용할 수 있습니다. 이미 있는 저장 파일을 지우거나 유료 버전을 구입 해주새요.
updateSummary: updateSummary:
title: 신규 버전! title: 신규 버전!
@ -261,7 +261,7 @@ dialogs:
titleEdit: 마커 변경 titleEdit: 마커 변경
markerDemoLimit: markerDemoLimit:
desc: 데모 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다! desc: 체험판 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다!
exportScreenshotWarning: exportScreenshotWarning:
title: 스크린샷 내보내기 title: 스크린샷 내보내기
@ -460,7 +460,7 @@ buildings:
tier2: tier2:
name: 터널 티어 II name: 터널 티어 II
description: 도형을 건물과 벨트 밑으로 통과시킴. description: 도형을 건물과 벨트 밑으로 터널 보다 빨리 통과시킴.
splitter: # Internal name for the Balancer splitter: # Internal name for the Balancer
default: default:
@ -543,10 +543,10 @@ buildings:
wire_crossings: wire_crossings:
default: default:
name: 전선 분배기 name: 전선 분배기
description: Splits a energy wire into two. description: 에너지 와이어를 두 개로 분할합니다.
merger: merger:
name: 전선 병합기 name: 전선 병합기
description: Merges two energy wires into one. description: 두 개의 에너지 와이어를 하나로 병합합니다.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
@ -634,9 +634,9 @@ storyRewards:
settings: settings:
title: 설정 title: 설정
categories: categories:
general: General general: 일반
userInterface: User Interface userInterface: 유저 인터페이스
advanced: Advanced advanced: 고급
versionBadges: versionBadges:
dev: 개발 dev: 개발
@ -654,7 +654,7 @@ settings:
small: 작게 small: 작게
regular: 보통 regular: 보통
large: 크게 large: 크게
huge: 거대하 huge: 매우 크
scrollWheelSensitivity: scrollWheelSensitivity:
title: 확대 민감도 title: 확대 민감도
@ -682,7 +682,7 @@ settings:
language: language:
title: 언어 title: 언어
description: >- description: >-
언어 바꾸기 - 모든 언어팩은 사용자들이 만든 것이므로 완성되지 않았을 수 있습니다! 언어 바꾸기 - 모든 언어팩은 사용자들이 만든 것이므로 정확하지 않을 수 있습니다!
fullscreen: fullscreen:
title: 전체화면 title: 전체화면
@ -745,7 +745,7 @@ settings:
twenty_minutes: 20분 twenty_minutes: 20분
disabled: 기능 끄기 disabled: 기능 끄기
compactBuildingInfo: compactBuildingInfo:
title: 한 건물 정보 title: 한 건물 정보
description: >- description: >-
건물의 정보창을 해당 건물의 능률만 보이도록 줄입니다. 건물의 정보창을 해당 건물의 능률만 보이도록 줄입니다.
아니면, 설명과 이미지가 보입니다. 아니면, 설명과 이미지가 보입니다.
@ -862,7 +862,7 @@ demo:
restoringGames: 게임 자장 파일 리스토어 하기 restoringGames: 게임 자장 파일 리스토어 하기
importingGames: 게임 저장 파일 불러오기 importingGames: 게임 저장 파일 불러오기
oneGameLimit: 게임 저장 파일 최대 1개 oneGameLimit: 게임 저장 파일 최대 1개
customizeKeybindings: 바인딩 설정하기 customizeKeybindings: 설정하기
exportingBase: 공장 전체를 이미지로 내보내기 exportingBase: 공장 전체를 이미지로 내보내기
settingNotAvailable: 데모 버전에서 사용 불가 settingNotAvailable: 체험판 버전에서 사용 불가

View File

@ -56,10 +56,10 @@ steamPage:
[b]Fremtidige Oppdateringer[/b] [b]Fremtidige Oppdateringer[/b]
Jeg oppdaterer spillet veldig ofte og prøver å presse inn en oppdatering i det minste hver uke! Jeg oppdaterer spillet veldig ofte og prøver å presse inn minst en oppdatering hver uke!
[list] [list]
[*] Forskjellige baner og utfordringer (f.eks. baner med hindringer) [*] Forskjellige nivåer og utfordringer (f.eks. nivåer med hindringer)
[*] Gåter (lever den forspurte formen med et begrenset område / sett med bygninger) [*] Gåter (lever den forspurte formen med et begrenset område / sett med bygninger)
[*] En historiemodus der bygninger har en pris [*] En historiemodus der bygninger har en pris
[*] Konfigurerbar kartgenerator (Konfigurer ressurser/former, størrelse/tetthet, seed og mer) [*] Konfigurerbar kartgenerator (Konfigurer ressurser/former, størrelse/tetthet, seed og mer)
@ -142,12 +142,12 @@ mainMenu:
changelog: Endringshistorikk changelog: Endringshistorikk
importSavegame: Importer importSavegame: Importer
openSourceHint: Dette spillet er åpen kildekode! openSourceHint: Dette spillet er åpen kildekode!
discordLink: Offisiel Discord Server discordLink: Offisiel Discord-Server
helpTranslate: Hjelp oversetting! helpTranslate: Hjelp oversetting!
# This is shown when using firefox and other browsers which are not supported. # This is shown when using firefox and other browsers which are not supported.
browserWarning: >- browserWarning: >-
Beklager, men spillet er kjent for å kjøre sakte på din nettleser! Skaff deg frittstående versjon, eller last ned Chrome for den fulle opplevelsen. Beklager, men spillet er kjent for å kjøre sakte i din nettleser! Skaff deg den frittstående versjonen, eller last ned Chrome for den fulle opplevelsen.
savegameLevel: Nivå <x> savegameLevel: Nivå <x>
savegameLevelUnknown: Ukjent Nivå savegameLevelUnknown: Ukjent Nivå
@ -172,14 +172,14 @@ dialogs:
showKeybindings: Se Hurtigtaster showKeybindings: Se Hurtigtaster
importSavegameError: importSavegameError:
title: Importerings feil title: Importeringsfeil
text: >- text: >-
Kunne ikke importere lagringsfilen: Kunne ikke importere lagringsfilen:
importSavegameSuccess: importSavegameSuccess:
title: Lagringsfil importert title: Lagringsfil importert
text: >- text: >-
Din Lagringsfil ble vellykket importert. Din Lagringsfil ble importert.
gameLoadFailure: gameLoadFailure:
title: Lagringsfilen er ødelagt title: Lagringsfilen er ødelagt
@ -206,20 +206,20 @@ dialogs:
desc: Trykk på knappen eller museknappen du vil tildele, eller escape for å avbryte. desc: Trykk på knappen eller museknappen du vil tildele, eller escape for å avbryte.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Nullstill Hurtigtaster title: Tilbakestill Hurtigtaster
desc: Dette vil nullstille alle hurtigtaster tilbake til standard. Vennligst bekreft. desc: Dette vil tilbakestille alle hurtigtaster. Er du sikker?.
keybindingsResetOk: keybindingsResetOk:
title: Hurtigtaster nullstilt title: Hurtigtaster tilbakestillt
desc: Hurtigtastene har blitt nullstilt tilbake til standard! desc: Hurtigtastene har blitt tilbakestillt til standard!
featureRestriction: featureRestriction:
title: Demo Versjon title: Demoversjon
desc: Du prøvde å benytte deg av en funksjon (<feature>) som ikke er tilgjengelig i demoen. Vurder å skaffe frittstående versjon for den fulle opplevelsen! desc: Du prøvde å benytte deg av en funksjon (<feature>) som ikke er tilgjengelig i demoen. Vurder å skaffe den frittstående versjonen for den fulle opplevelsen!
oneSavegameLimit: oneSavegameLimit:
title: Begrenset Lagringsfiler title: Begrenset antall Lagringsfiler
desc: Du kan du ha en lagringsfil om gangen i demo versjonen. Vennligst slett den eksisterende, eller skaff frittstående versjon! desc: Du kan du ha en lagringsfil om gangen i demoversjonen. Vennligst slett den eksisterende, eller skaff den frittstående versjonen!
updateSummary: updateSummary:
title: Ny oppdatering!! title: Ny oppdatering!!
@ -238,7 +238,7 @@ dialogs:
Du skal til å slette mange bygninger (<count> for å være nøyaktig)! Er du sikker på at du ønsker å gjøre dette? Du skal til å slette mange bygninger (<count> for å være nøyaktig)! Er du sikker på at du ønsker å gjøre dette?
massCutConfirm: massCutConfirm:
title: Bekreft Klipping title: Bekreft Utlipping
desc: >- desc: >-
Du klipper ut mange bygninger (<count> for å være nøyaktig)! Er du sikker på at du ønsker å gjøre dette? Du klipper ut mange bygninger (<count> for å være nøyaktig)! Er du sikker på at du ønsker å gjøre dette?
@ -253,23 +253,23 @@ dialogs:
Spillet har mange hurtigtaster som gjør det enklere å bygge store fabrikker. Spillet har mange hurtigtaster som gjør det enklere å bygge store fabrikker.
Her er noen få, men sørg for å <strong>sjekke ut hurtigtaster</strong>!<br><br> Her er noen få, men sørg for å <strong>sjekke ut hurtigtaster</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Dra: Velg et område.<br> <code class='keybinding'>CTRL</code> + Dra: Velg et område.<br>
<code class='keybinding'>SHIFT</code>: Hold trykket for å plassere flere av en bygning.<br> <code class='keybinding'>SHIFT</code>: Hold inne for å plassere flere av en bygning.<br>
<code class='keybinding'>ALT</code>: Inverter orientasjon av plasserte belter.<br> <code class='keybinding'>ALT</code>: Inverter rettning på plasserte samlebånd.<br>
createMarker: createMarker:
title: Ny Markør title: Ny Markør
desc: Gi markøren et meningsfullt navn, du kan også inkludere <strong>"short key"</strong> av et objekt (Som du kan generere <a href="https://viewer.shapez.io" target="_blank">her</a>) desc: Gi markøren et meningsfullt navn, du kan også inkludere en <strong>"short key"</strong> av et objekt (Som du kan generere <a href="https://viewer.shapez.io" target="_blank">her</a>)
titleEdit: Edit Marker titleEdit: Rediger markør
markerDemoLimit: markerDemoLimit:
desc: Du kan kun ha to markører i demo verjsonen. Skaff deg frittstående versjon for ubegrensede markører! desc: Du kan kun ha to markører i demoverjsonen. Skaff deg den frittstående versjonen for ubegrensede markører!
exportScreenshotWarning: exportScreenshotWarning:
title: Eksporter skjermbilde title: Eksporter skjermbilde
desc: Du forespurte å eksportere bilde av basen din som et skjermbilde. Vær obs på at dette kan ta lang tid for en stor base, og i verste fall kræsje spillet ditt (Husk å lagre først)! desc: Du forespurte å eksportere bilde av basen din som et skjermbilde. Vær obs på at dette kan ta lang tid for en stor base, og i verste fall kræsje spillet ditt (Husk å lagre først)!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Bekreft Utklipping
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: Du har ikke råd til å lime inn dette området! er du sikker på at du vil klippe det ut?
ingame: ingame:
# This is shown in the top left corner and displays useful keybindings in # This is shown in the top left corner and displays useful keybindings in
@ -293,7 +293,7 @@ ingame:
copySelection: Kopier copySelection: Kopier
clearSelection: Fjern Valgte clearSelection: Fjern Valgte
pipette: Pipette pipette: Pipette
switchLayers: Switch layers switchLayers: Bytt lag
# Everything related to placing buildings (I.e. as soon as you selected a building # Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar) # from the toolbar)
@ -365,7 +365,7 @@ ingame:
playtime: Spilletid playtime: Spilletid
buildingsPlaced: Bygninger buildingsPlaced: Bygninger
beltsPlaced: Belter beltsPlaced: Samlebånd
buttons: buttons:
continue: Fortsett continue: Fortsett
@ -393,7 +393,7 @@ ingame:
interactiveTutorial: interactiveTutorial:
title: Opplæring title: Opplæring
hints: hints:
1_1_extractor: Plasser en <strong>utdrager</strong> på toppen av en <strong>sirkel form</strong> for å samle den! 1_1_extractor: Plasser en <strong>utdrager</strong> på toppen av en <strong>sirkelform</strong> for å samle den!
1_2_conveyor: >- 1_2_conveyor: >-
Koble utdrageren med et <strong>transportbånd</strong> til hovedbygningen!<br><br>Tips: <strong>Trykk og dra</strong> beltet med musa! Koble utdrageren med et <strong>transportbånd</strong> til hovedbygningen!<br><br>Tips: <strong>Trykk og dra</strong> beltet med musa!
@ -409,7 +409,7 @@ ingame:
cyan: Cyan cyan: Cyan
white: Hvit white: Hvit
uncolored: Ingen farge uncolored: Ingen farge
black: Black black: Svart
shapeViewer: shapeViewer:
title: Lag title: Lag
empty: Tom empty: Tom
@ -418,7 +418,7 @@ ingame:
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
belt: belt:
name: Belter, Distributører & Tuneller name: Belter, Distributører & Tunneler
description: Hastighet x<currentMult> → x<newMult> description: Hastighet x<currentMult> → x<newMult>
miner: miner:
name: Utdrager name: Utdrager
@ -439,7 +439,7 @@ buildings:
belt: belt:
default: default:
name: &belt Transportbånd name: &belt Samlebånd
description: Transporterer objekter, hold og dra for å plassere flere. description: Transporterer objekter, hold og dra for å plassere flere.
miner: # Internal name for the Extractor miner: # Internal name for the Extractor
@ -453,7 +453,7 @@ buildings:
underground_belt: # Internal name for the Tunnel underground_belt: # Internal name for the Tunnel
default: default:
name: &underground_belt Tunell name: &underground_belt Tunnel
description: Lar deg bruke tuneller for å transportere objekter under bygninger og belter. description: Lar deg bruke tuneller for å transportere objekter under bygninger og belter.
tier2: tier2:
@ -476,26 +476,26 @@ buildings:
cutter: cutter:
default: default:
name: &cutter Kutter name: &cutter Kutter
description: Kutter objekter fra top til bunn og spytter ut begge halvdeler. <strong>Hvis du bare skal bruke den ene biten, sørg for å ødelegge den andre biten ellers vil det låse seg!</strong> description: Kutter objekter fra top til bunn og spytter ut begge halvdeler. <strong>Hvis du bare skal bruke den ene biten, sørg for å ødelegge den andre biten ellers vil det stoppe opp!</strong>
quad: quad:
name: Kutter (4-Veis) name: Kutter (4-Veis)
description: Kutter objekter til 4 biter. <strong>Hvis du bare skal bruke den ene biten, sørg for å ødelegge den andre biten ellers vil det låse seg!</strong> description: Kutter objekter til 4 biter. <strong>Hvis du bare skal bruke den ene biten, sørg for å ødelegge den andre biten ellers vil det stoppe opp!</strong>
rotater: rotater:
default: default:
name: &rotater Roter name: &rotater Roter
description: Roter objekter med klokken, 90 grader. description: Roter former med klokken, 90 grader.
ccw: ccw:
name: Roter (Mot klokken) name: Roter (Mot klokken)
description: Roter objekter mot klokken, 90 grader. description: Roter former mot klokken, 90 grader.
fl: fl:
name: Rotate (180) name: Rotate (180)
description: Rotates shapes by 180 degrees. description: Roterer former 180 grader.
stacker: stacker:
default: default:
name: &stacker Stabler name: &stacker Stabler
description: Stabler begge objekter. Hvis de ikke kan bli stablet sidelengs, vil høyre stables over den andre. description: Stabler begge formene. Hvis de ikke kan bli stablet sidelengs, vil høyre stables over den andre.
mixer: mixer:
default: default:
@ -505,13 +505,13 @@ buildings:
painter: painter:
default: default:
name: &painter Maler name: &painter Maler
description: &painter_desc Maler hele objektet på venstre inngang med fargen fra øverste inngang. description: &painter_desc Maler hele formen på venstre inngang med fargen fra øverste inngang.
double: double:
name: Maler (Dobbel) name: Maler (Dobbel)
description: Maler hele objektet på venstre inngang med fargen fra øverste inngang. description: Maler hele formen på venstre inngang med fargen fra øverste inngang.
quad: quad:
name: Maler (Fireganger) name: Maler (Firedobbel)
description: Farger enhver kvadrant av objektet med forskjellige farger. description: Farger hvert hjørne av formen med forskjellige farger.
mirrored: mirrored:
name: *painter name: *painter
description: *painter_desc description: *painter_desc
@ -519,38 +519,38 @@ buildings:
trash: trash:
default: default:
name: &trash Søppelkasse name: &trash Søppelkasse
description: Tar imot objekter fra alle sider og ødelegger de. For alltid. description: Tar imot former og farger fra alle sider og ødelegger de. For alltid.
storage: storage:
name: Lagringsboks name: Lagringsboks
description: Lagrer overflødige objekter, opp til en viss kapasitet. Kan bli brukt som mellomlagring for overflyt. description: Lagrer overflødige former og farger, opp til en viss kapasitet. Kan bli brukt som mellomlagring for overflyt.
wire: wire:
default: default:
name: Energy Wire name: Energikabel
description: Allows you to transport energy. description: Lar deg transportere energi.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: Fargeinverterer
description: Accepts a color or shape and inverts it. description: Tar imot en farge eller form og inverterer den.
energy_generator: energy_generator:
deliver: Deliver deliver: Lever
toGenerateEnergy: For toGenerateEnergy: For
default: default:
name: Energy Generator name: Energigenerator
description: Generates energy by consuming shapes. description: Genererer energi ved å ta imot former.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: Kabeldeler
description: Splits a energy wire into two. description: Deler en energikabel i to.
merger: merger:
name: Wire Merger name: Kabelsammenslåer
description: Merges two energy wires into one. description: Slår sammen to energikabler til en.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
reward_cutter_and_trash: reward_cutter_and_trash:
title: Kutt Objekter title: Kutt Objekter
desc: Du åpnet nettop <strong>kutter</strong> - den kutter objekter i to fra <strong>topp til bunn</strong> uavhengig av rotasjon!<br><br>Husk å kvitt deg med alt søppel, ellers <strong>kiler det seg fast</strong> - For dette formålet har du søplekassen, som ødelegger alt du putter i den! desc: Du åpnet nettop <strong>kutter</strong> - den kutter former i to fra <strong>topp til bunn</strong> uavhengig av rotasjon!<br><br>Husk å kvitt deg med alt søppel, ellers <strong>kiler det seg fast</strong> - Derfor har jeg gitt deg søplekassen, som ødelegger alt du putter i den!
reward_rotater: reward_rotater:
title: Rotering title: Rotering
@ -559,7 +559,7 @@ storyRewards:
reward_painter: reward_painter:
title: Maling title: Maling
desc: >- desc: >-
<strong>Maleren</strong> har blitt tilgjengelig - Hent ut fargeressurser (på samme måte som du gjør med objekter) og kombiner det med et objekt i maleren for å male de!<br><br>PS: Hvis du er fargeblind, så er det en <strong>modus for fargeblinde</strong> i instillinger! <strong>Maleren</strong> har blitt tilgjengelig - Hent ut fargeressurser (på samme måte som du gjør med objekter) og kombiner det med et objekt i maleren for å male de!<br><br>PS: Hvis du er fargeblind, så er det en <strong>modus for fargeblinde</strong> i instillingene!
reward_mixer: reward_mixer:
title: Fargemikser title: Fargemikser
@ -571,23 +571,23 @@ storyRewards:
reward_splitter: reward_splitter:
title: Fordeler/Sammenslåer title: Fordeler/Sammenslåer
desc: Den multifunksjonelle <strong>fordeleren</strong> har blitt tilgjengelig - Den kan brukes til å bygge større fabrikker ved å <strong>fordele og slå sammen objekter</strong> til flere transportbånd!<br><br> desc: Den multifunksjonelle <strong>fordeleren</strong> har blitt tilgjengelig - Den kan brukes til å bygge større fabrikker ved å <strong>fordele og slå sammen objekter</strong> til flere samlebånd!<br><br>
reward_tunnel: reward_tunnel:
title: Tunell title: Tunnel
desc: <strong>Tunellen</strong> har blitt tilgjengelig - Du kan nå transportere objekter under transportbelter og bygninger med den! desc: <strong>Tunnelen</strong> har blitt tilgjengelig - Du kan nå transportere objekter under samlebånd og bygninger med den!
reward_rotater_ccw: reward_rotater_ccw:
title: Mot klokken rotering title: Rotering mot klokken
desc: Du har åpnte en variant av <strong>rotereren</strong> - Den tillater rotasjoner mot klokken! For å bygge den, velg rotereren og <strong>trykk 'T' for å veksle mellom variantene</strong>! desc: Du har åpnte en variant av <strong>rotereren</strong> - Den tillater rotasjoner mot klokken! For å bygge den, velg rotereren og <strong>trykk 'T' for å veksle mellom variantene</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Kjede Utdrager title: Kjedeutdrager
desc: Du har åpnet <strong>kjede utdrageren</strong>! Den sender <strong>videre sine resurser</strong> til andre utdragere så de kan mer effektivt hente ut resurser! desc: Du har åpnet <strong>kjedeutdrageren</strong>! Den sender <strong>sine resurser videre</strong> til andre utdragere så de kan hente ut ressurser mer effektivt!
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunell Nivå II title: Tunnel Nivå II
desc: Du har åpnet en ny variant av <strong>tunellen</strong> - Den har <strong>lengre rekkevidde</strong>, og du kan også blande de forskjellige tunellene nå! desc: Du har åpnet en ny variant av <strong>tunnelen</strong> - Den har <strong>lengre rekkevidde</strong>, og du kan også blande de forskjellige tunnelene nå!
reward_splitter_compact: reward_splitter_compact:
title: Kompakt Utjevning title: Kompakt Utjevning
@ -600,51 +600,51 @@ storyRewards:
reward_painter_double: reward_painter_double:
title: Dobbel Maling title: Dobbel Maling
desc: Du har åpnet en variant av <strong>maleren</strong> - Den fungerer som vanlig maler, men prosesserer <strong>to objekter om gangen</strong>, konsumerer bare en farge istedenfor to! desc: Du har åpnet en variant av <strong>maleren</strong> - Den fungerer som vanlig maler, men maler <strong>to objekter om gangen</strong>, konsumerer bare en farge istedenfor to!
reward_painter_quad: reward_painter_quad:
title: Firegangers Maling title: 4-Veis Maling
desc: Du har åpnet en variant av <strong>maleren</strong> - Den lar deg male hver del av objektet individuelt! desc: Du har åpnet en variant av <strong>maleren</strong> - Den lar deg male hver del av objektet individuelt!
reward_storage: reward_storage:
title: Lagrings Buffer title: Lagringsbuffer
desc: Du har åpnet en variant av <strong>søplekassen</strong> - Den lar deg lagre objekter opp til en viss mengde! desc: Du har åpnet en variant av <strong>søpplekassen</strong> - Den lar deg lagre objekter opp til en viss mengde!
reward_freeplay: reward_freeplay:
title: Frispill title: Frispill
desc: Du klarte det! Du åpnet <strong>frispill modus</strong>! Dette betyr at formene er nå tilfeldig generert! (Frykt ikke, mer innhold er planlagt for frittstående versjon!) desc: Du klarte det! Du åpnet <strong>frispillmodus</strong>! Dette betyr at formene er nå tilfeldig generert! (Ikke vær redd, mer innhold er planlagt for den frittstående versjonen!)
reward_blueprints: reward_blueprints:
title: Blåkopier title: Blåkopier
desc: Du kan nå <strong>kopiere og lime inn</strong> deler av fabrikken din! Velg et område (Hold inne CTRL, så dra med musa), trykk så 'C' for å kopiere det.<br><br>Lime det inn er <strong>ikke gratis</strong>, du må produsere <strong>blåkopi objekter</strong> for å få råd til det! (Det du nettop leverte). desc: Du kan nå <strong>kopiere og lime inn</strong> deler av fabrikken din! Velg et område (Hold inne CTRL, så dra med musa), trykk så 'C' for å kopiere det.<br><br>Lime det inn er <strong>ikke gratis</strong>, du må produsere <strong>blåkopiobjekter</strong> for å få råd til det! (Det du nettop leverte).
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
title: Neste nivå title: Neste nivå
desc: >- desc: >-
Dette nivået ga deg ingen belønning, men neste gjør det! <br><br> PS: Burde ikke ødelegge din nåværende fabrikk - Du trenger <strong>alle</strong> de objektene senere for å <strong>åpne nye ting</strong>! Dette nivået ga deg ingen belønning, men neste gjør det! <br><br> PS: Du burde ikke ødelegge din nåværende fabrikk - Du trenger <strong>alle</strong> de objektene senere for å <strong>åpne nye ting</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Neste nivå title: Neste nivå
desc: >- desc: >-
Gratulerer!! Forresten, mer innhold er planlagt for frittstående versjon! Gratulerer!! Forresten, mer innhold er planlagt for den frittstående versjonen!
settings: settings:
title: Instillinger title: Instillinger
categories: categories:
general: General general: Generelt
userInterface: User Interface userInterface: Brukergrensesnitt
advanced: Advanced advanced: Avansert
versionBadges: versionBadges:
dev: Utvikling dev: Utvikling
staging: Icenesettelse staging: Iscenesettelse
prod: Produksjon prod: Produksjon
buildDate: Bygget <at-date> buildDate: Bygget <at-date>
labels: labels:
uiScale: uiScale:
title: Grensesnitt skala title: Grensesnittskala
description: >- description: >-
Endrer størrelsen på brukergrensesnitt. Grensesnittet vil fortsatt skaleres basert på din enhets oppløsning, men denne instillingen styrer mengden den skalerer. Endrer størrelsen på brukergrensesnitt. Grensesnittet vil fortsatt skaleres basert på din enhets oppløsning, men denne instillingen styrer mengden den skalerer.
scales: scales:
@ -655,9 +655,9 @@ settings:
huge: Gigantisk huge: Gigantisk
scrollWheelSensitivity: scrollWheelSensitivity:
title: Forstørrelses sensitivitet title: Forstørrelsessensitivitet
description: >- description: >-
Endrer hvor sensitiv forstørringen er (Enten musehjulet eller trackpad). Endrer hvor sensitiv forstørringen er (Enten musehjulet eller museplate).
sensitivity: sensitivity:
super_slow: Veldig Sakte super_slow: Veldig Sakte
slow: Sakte slow: Sakte
@ -670,7 +670,7 @@ settings:
description: >- description: >-
Endrer hvor raskt bildet beveger seg når man bruker tastaturet. Endrer hvor raskt bildet beveger seg når man bruker tastaturet.
speeds: speeds:
super_slow: Veldig Sakte slow super_slow: Veldig Sakte
slow: Sakte slow: Sakte
regular: Vanlig regular: Vanlig
fast: Raskt fast: Raskt
@ -690,30 +690,30 @@ settings:
soundsMuted: soundsMuted:
title: Skru av lyder title: Skru av lyder
description: >- description: >-
Hvis aktivert, skrur av alle lydeffekter. Skrur av alle lydeffekter.
musicMuted: musicMuted:
title: Skru av Musikk title: Skru av Musikk
description: >- description: >-
Hvis aktivert, skrur av all musikk. Skrur av all musikk.
theme: theme:
title: Spilltema title: Spilltema
description: >- description: >-
Velg spilltema (lys / mørk). Velg spilltema (lyst / mørk).
themes: themes:
dark: Mørk dark: Mørk
light: Lys light: Lyst
refreshRate: refreshRate:
title: Simulerings Mål title: Simuleringsmål
description: >- description: >-
Hvis du har en 144hz skjerm, endre oppdateringsfrekvensen her så vil spillet simuleres mer korrekt på høyere oppdateringsfrekvenser. Dette kan redusere FPS om din PC er for treg. Hvis du har en 144hz skjerm, endre oppdateringsfrekvensen her så vil spillet simuleres mer korrekt på høyere oppdateringsfrekvenser. Dette kan redusere FPS om din PC er for treg.
alwaysMultiplace: alwaysMultiplace:
title: Plasser flere title: Plasser flere
description: >- description: >-
Hvis aktivert, alle bygg vil forbli valgt etter plassering inntil du avbryter det. Dette tilsvarer å holde SHIFT nede permanent. Hvis aktivert vil alle bygg forbli valgt etter plassering inntil du avbryter det. Dette tilsvarer å holde SHIFT nede permanent.
offerHints: offerHints:
title: Hint & Opplæring title: Hint & Opplæring
@ -723,8 +723,8 @@ settings:
enableTunnelSmartplace: enableTunnelSmartplace:
title: Smarte Tuneller title: Smarte Tuneller
description: >- description: >-
Når aktivert, plassering av tuneller vil automatisk fjerne unødvendige bånd. Når aktivert vil plassering av tunneler automatisk fjerne unødvendige bånd.
Dette lar deg også dra og slippe tuneller, og overflødige tuneller blir fjernet. Dette lar deg også dra og slippe tunneler, og overflødige tunneler blir fjernet.
vignette: vignette:
title: Vignett title: Vignett
description: >- description: >-
@ -746,21 +746,21 @@ settings:
compactBuildingInfo: compactBuildingInfo:
title: Kompakt Bygningsinformasjon title: Kompakt Bygningsinformasjon
description: >- description: >-
Forkorter informasjonsboksen for bygninger ved å bare vise dems forhold. Ellers Forkorter informasjonsboksen for bygninger ved å bare vise deres forhold. Ellers
vises en beskrivelse og bilde er vist. vises en beskrivelse og et bilde.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Deaktiverer Kutt/Slette Advarsler title: Deaktiverer Utklipps- og Sletteadvarsler
description: >- description: >-
Deaktiverer advarselsdialogen som kommer frem når du kutter/sletter mer enn 100 Deaktiverer advarselsmeldingen som kommer frem når du klipper ut eller sletter mer enn 100
bygninger. bygninger.
enableColorBlindHelper: enableColorBlindHelper:
title: Fargeblind Modus title: Fargeblindmodus
description: Aktiverer forskjellige verktøy som lar deg spille spillet om du er fargeblind. description: Aktiverer forskjellige verktøy som lar deg spille spillet om du er fargeblind.
rotationByBuilding: rotationByBuilding:
title: Roter basert på bygningstype title: Roter basert på bygningstype
description: >- description: >-
Hver bygning type husker rotasjonen du sist brukte individuelt. Hver bygningstype husker rotasjonen du sist brukte på dee.
Dette kan være mer komfortabelt hvis du ofte veksler mellom plassering Dette kan være mer komfortabelt hvis du ofte veksler mellom plassering
av forskjellige bygninger. av forskjellige bygninger.
@ -777,8 +777,8 @@ keybindings:
navigation: Navigering navigation: Navigering
placement: Plassering placement: Plassering
massSelect: Velg Masse massSelect: Velg Masse
buildings: Bygnings Snarvei buildings: Bygningssnarvei
placementModifiers: Plasserings Alternativer placementModifiers: Plasseringsalternativer
mappings: mappings:
confirm: Bekreft confirm: Bekreft
@ -798,7 +798,7 @@ keybindings:
menuOpenStats: Statistikk menuOpenStats: Statistikk
toggleHud: Veksle Grensesnitt toggleHud: Veksle Grensesnitt
toggleFPSInfo: Veksle FPS og debug informasjon toggleFPSInfo: Veksle FPS-og debuginformasjon
exportScreenshot: Eksporter hele basen som et bilde exportScreenshot: Eksporter hele basen som et bilde
belt: *belt belt: *belt
splitter: *splitter splitter: *splitter
@ -822,19 +822,19 @@ keybindings:
massSelectStart: Hold og dra for å starte massSelectStart: Hold og dra for å starte
massSelectSelectMultiple: Velg flere områder massSelectSelectMultiple: Velg flere områder
massSelectCopy: Kopier Område massSelectCopy: Kopier Område
massSelectCut: Kutt ut Område massSelectCut: Klipp ut Område
placementDisableAutoOrientation: Deaktiver automatisk orientering placementDisableAutoOrientation: Deaktiver automatisk orientering
placeMultiple: Forbli i plasseringsmodus placeMultiple: Forbli i plasseringsmodus
placeInverse: Inverter automatisk transportbånd orientering placeInverse: Inverter automatisk samlebåndsorientering
lockBeltDirection: Enable belt planner lockBeltDirection: Aktiver samlebåndplanlegger
switchDirectionLockSide: "Planlegger: Bytt side" switchDirectionLockSide: "Planlegger: Bytt side"
pipette: Pipette pipette: Pipette
menuClose: Close Menu menuClose: Lukk meny
switchLayers: Switch layers switchLayers: Bytt lag
advanced_processor: Color Inverter advanced_processor: Fargeinverterer
energy_generator: Energy Generator energy_generator: Energigenerator
wire: Energy Wire wire: Energikabel
about: about:
title: Om dette spillet title: Om dette spillet
@ -843,11 +843,11 @@ about:
Hvis du ønsker å bidra, sjekk ut <a href="<githublink>" target="_blank">shapez.io på github</a>.<br><br> Hvis du ønsker å bidra, sjekk ut <a href="<githublink>" target="_blank">shapez.io på github</a>.<br><br>
Spillet ville ikke vært mulig uten det fantastidke Discord samfunnet rundt spillet mitt - Du burde virkelig bli med på <a href="<discordlink>" target="_blank">Discord serveren</a>!<br><br> Spillet ville ikke vært mulig uten det fantastiske Discord-samfunnet rundt spillet mitt - Du burde virkelig bli med på <a href="<discordlink>" target="_blank">Discord-serveren</a>!<br><br>
Lydsporet er laget av <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Han er rå.<br><br> Lydsporet er laget av <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Han er rå.<br><br>
Til slutt, stor takk til min beste venn <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Uten våre factorio økter ville ikke dette spillet ha eksistert. Til slutt, en stor takk til min beste venn <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Uten våre factorio-økter ville ikke dette spillet ha eksistert.
changelog: changelog:
title: Endringshistorikk title: Endringshistorikk
@ -858,6 +858,6 @@ demo:
importingGames: Importer lagringsfiler importingGames: Importer lagringsfiler
oneGameLimit: Begrenset til en lagringsfil oneGameLimit: Begrenset til en lagringsfil
customizeKeybindings: Forandre Hurtigtaster customizeKeybindings: Forandre Hurtigtaster
exportingBase: Eksporter hele basen som bile exportingBase: Eksporter hele basen som bilde
settingNotAvailable: Ikke tilgjengelig i demoversjonen. settingNotAvailable: Ikke tilgjengelig i demoversjonen.

View File

@ -83,7 +83,7 @@ steamPage:
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Pomóż w tłumaczeniu[/url] [*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Pomóż w tłumaczeniu[/url]
[/list] [/list]
discordLink: Oficjalna Discord - Porozmawiaj ze mną! discordLink: Oficjalny serwer Discord - Porozmawiaj ze mną!
global: global:
loading: Ładowanie loading: Ładowanie
@ -274,8 +274,8 @@ dialogs:
Czy na pewno chcesz kontynuować? Czy na pewno chcesz kontynuować?
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Potwierdź cięcie title: Potwierdź wycinanie
desc: Nie możesz sobie pozwolić na wklejenie tego obszaru! Czy na pewno chcesz to wyciąć? desc: Nie posiadasz wystarczająco kształtów schematów na wklejenie tego obszaru! Czy na pewno chcesz go wyciąć?
ingame: ingame:
# This is shown in the top left corner and displays useful keybindings in # This is shown in the top left corner and displays useful keybindings in
@ -299,7 +299,7 @@ ingame:
copySelection: Skopiuj copySelection: Skopiuj
clearSelection: Wyczyść zaznaczenie clearSelection: Wyczyść zaznaczenie
pipette: Wybierz obiekt z mapy pipette: Wybierz obiekt z mapy
switchLayers: Switch layers switchLayers: Przełącz warstwy
# Names of the colors, used for the color blind mode # Names of the colors, used for the color blind mode
colors: colors:
@ -311,7 +311,7 @@ ingame:
cyan: Cyjanowy cyan: Cyjanowy
white: Biały white: Biały
uncolored: Brak koloru uncolored: Brak koloru
black: Black black: Czarny
# Everything related to placing buildings (I.e. as soon as you selected a building # Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar) # from the toolbar)
@ -414,7 +414,7 @@ ingame:
shapeViewer: shapeViewer:
title: Poziomy title: Poziomy
empty: Puste empty: Puste
copyKey: Copy Key copyKey: Skopiuj kod
# Interactive tutorial # Interactive tutorial
interactiveTutorial: interactiveTutorial:
@ -539,25 +539,25 @@ buildings:
description: Magazynuje obiekty, do określonego limitu. Może zostać użyty jako bramka przepełnienia. description: Magazynuje obiekty, do określonego limitu. Może zostać użyty jako bramka przepełnienia.
wire: wire:
default: default:
name: Energy Wire name: Przewód energetyczny
description: Allows you to transport energy. description: Pozwala na transportowanie energii.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: Odwracacz kolorów
description: Accepts a color or shape and inverts it. description: Przyjmuje barwnik lub kształt i odwraca jego kolory.
energy_generator: energy_generator:
deliver: Deliver deliver: Dostarcz
toGenerateEnergy: For toGenerateEnergy: Za
default: default:
name: Energy Generator name: Generator energii
description: Generates energy by consuming shapes. description: Generuje energię poprzez zużywanie kształtów.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: Rozdzielacz przewodów
description: Splits a energy wire into two. description: Rozdziela przewód energetyczny na dwa.
merger: merger:
name: Wire Merger name: Łącznik przewodów
description: Merges two energy wires into one. description: Łączy dwa przewody energetyczne w jeden.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
@ -656,9 +656,9 @@ storyRewards:
settings: settings:
title: Ustawienia title: Ustawienia
categories: categories:
general: General general: Ogólne
userInterface: User Interface userInterface: Interfejs
advanced: Advanced advanced: Zaawansowane
versionBadges: versionBadges:
dev: Wersja Rozwojowa dev: Wersja Rozwojowa
@ -780,7 +780,7 @@ settings:
100 budynków. 100 budynków.
enableColorBlindHelper: enableColorBlindHelper:
title: Tryb ślepy na kolory title: Tryb dla daltonistów
description: Włącza różne narzędzia, które pozwalają ci grać, jeśli jesteś daltonistą. description: Włącza różne narzędzia, które pozwalają ci grać, jeśli jesteś daltonistą.
rotationByBuilding: rotationByBuilding:
title: Obrót według typu budynku title: Obrót według typu budynku
@ -823,6 +823,7 @@ keybindings:
toggleHud: Przełącz widoczność interfejsu toggleHud: Przełącz widoczność interfejsu
toggleFPSInfo: Pokaż Licznik FPS i informacje do debugowania toggleFPSInfo: Pokaż Licznik FPS i informacje do debugowania
belt: *belt belt: *belt
splitter: *splitter splitter: *splitter
underground_belt: *underground_belt underground_belt: *underground_belt
@ -847,7 +848,7 @@ keybindings:
placementDisableAutoOrientation: Wyłącz automatyczną orientację placementDisableAutoOrientation: Wyłącz automatyczną orientację
placeMultiple: Pozostań w trybie stawiania placeMultiple: Pozostań w trybie stawiania
placeInverse: Odwróć automatyczną orientację pasów placeInverse: Odwróć automatyczną orientację taśmociągów
pasteLastBlueprint: Wklej ostatnio skopiowany obszar pasteLastBlueprint: Wklej ostatnio skopiowany obszar
massSelectCut: Wytnij obszar massSelectCut: Wytnij obszar
exportScreenshot: Wyeksportuj całą fabrykę jako zrzut ekranu exportScreenshot: Wyeksportuj całą fabrykę jako zrzut ekranu
@ -856,10 +857,10 @@ keybindings:
Planowanie taśmociągu: Zmień stronę Planowanie taśmociągu: Zmień stronę
pipette: Wybieranie obiektów z mapy pipette: Wybieranie obiektów z mapy
menuClose: Zamknij Menu menuClose: Zamknij Menu
switchLayers: zamknij menu switchLayers: Przełącz warstwy
advanced_processor: Kolor Falownika advanced_processor: Kolor Falownika
energy_generator: Generator Energii energy_generator: Generator Energii
wire: Drut Energetyczny wire: Przewód Energetyczny
about: about:
title: O Grze title: O Grze

View File

@ -61,7 +61,7 @@ steamPage:
[list] [list]
[*] Различные карты и испытания (например, карты с препятствиями) [*] Различные карты и испытания (например, карты с препятствиями)
[*] Пазлы (Доставить запрошенную фигуру с ограничением пространства / набора зданий) [*] Пазлы (Доставить запрошенную фигуру с ограничением пространства / набора зданий)
[*] Режим истории, где здания стоят фигур [*] Режим истории, где здания стоят фигуры
[*] Настраиваемый генератор карт (настройка ресурса / размера фигуры / плотности, семя и т.д.) [*] Настраиваемый генератор карт (настройка ресурса / размера фигуры / плотности, семя и т.д.)
[*] Дополнительные типы фигур [*] Дополнительные типы фигур
[*] Улучшения производительности (игра уже работает довольно хорошо!) [*] Улучшения производительности (игра уже работает довольно хорошо!)
@ -71,7 +71,7 @@ steamPage:
[b]Это игра с открытым исходным кодом![/b] [b]Это игра с открытым исходным кодом![/b]
Любой может внести свой вклад, я активно участвую в жизни сообщества и пытаюсь рассмотреть все предложения и по возможности принять во внимание отзывы. Любой может внести свой вклад, я активно участвую в жизни сообщества и пытаюсь рассмотреть все предложения и по возможности принять во внимание отзывы.
Не забудьте проверить мою доску trello со всеми планами! Не забудьте проверить мою доску Trello со всеми планами!
[b]Ссылки[/b] [b]Ссылки[/b]
@ -208,7 +208,7 @@ dialogs:
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Сброс управления title: Сброс управления
desc: Это сбросит все настройки управления к их значениям по умолчанию. Пожалуйста подтвердите. desc: Это сбросит все настройки управления к их значениям по умолчанию. Подтвердите это действие.
keybindingsResetOk: keybindingsResetOk:
title: Сброс управления title: Сброс управления
@ -236,12 +236,12 @@ dialogs:
massDeleteConfirm: massDeleteConfirm:
title: Подтвердить удаление title: Подтвердить удаление
desc: >- desc: >-
Вы удаляете много построек (точнее: <count>)! Вы действительно хотите сделать это? Вы собираетесь удалить много построек (точнее: <count>)! Вы действительно хотите сделать это?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Еще не открыто title: Еще не открыто
desc: >- desc: >-
Чертежи еще не открыты! Завершите больше уровней, что-бы открыть их. Чертежи еще не открыты! Завершите больше уровней, чтобы открыть их.
keybindingsIntroduction: keybindingsIntroduction:
title: Полезные горячие клавиши title: Полезные горячие клавиши
@ -262,13 +262,13 @@ dialogs:
massCutConfirm: massCutConfirm:
title: Подтвердите вырезку title: Подтвердите вырезку
desc: >- desc: >-
Вы вырезаете много зданий (точнее: <count>)! Вы уверены, Вы собираетесь вырезать много зданий (точнее: <count>)! Вы уверены,
что хотите это сделать? что хотите это сделать?
exportScreenshotWarning: exportScreenshotWarning:
title: Экспорт скриншота title: Экспорт скриншота
desc: >- desc: >-
Вы запросили экспортировать вашу базу в виде скриншота. Обратите внимание, Вы собираетесь экспортировать вашу базу в виде скриншота. Обратите внимание,
что это может быть довольно медленным процессом для большой базы что это может быть довольно медленным процессом для большой базы
и даже привести к аварийному завершению игры! и даже привести к аварийному завершению игры!
@ -358,7 +358,7 @@ ingame:
title: Производится title: Производится
description: Показывает производящиеся фигуры, включая промежуточное производство. description: Показывает производящиеся фигуры, включая промежуточное производство.
delivered: delivered:
title: Доставлено title: Доставляется
description: Показывает фигуры, которые доставляются в хаб. description: Показывает фигуры, которые доставляются в хаб.
noShapesProduced: Фигуры еще не произведены. noShapesProduced: Фигуры еще не произведены.
@ -391,8 +391,8 @@ ingame:
waypoints: waypoints:
waypoints: Маркеры waypoints: Маркеры
hub: ХАБ hub: ХАБ
description: ЛКМ по маркеру, чтобы переместиться к нему, ПКМ что-бы удалить. <br><br>Нажмите <keybinding> чтобы создать маркер в текущей позиции или <strong>ПКМ</strong> чтобы выбрать другое место для создания маркера. description: ЛКМ по маркеру, чтобы переместиться к нему, ПКМ, чтобы удалить. <br><br>Нажмите <keybinding> чтобы создать маркер в текущей позиции или <strong>ПКМ</strong>, чтобы выбрать другое место для создания маркера.
creationSuccessNotification: Маркер был создан. creationSuccessNotification: Маркер создан.
# Interactive tutorial # Interactive tutorial
interactiveTutorial: interactiveTutorial:
@ -440,7 +440,7 @@ buildings:
belt: belt:
default: default:
name: &belt Конвейер name: &belt Конвейер
description: Транспортирует предметы, держите и тащите, чтобы разместить несколько. description: Транспортирует предметы. Держите и тащите, чтобы разместить несколько.
miner: # Internal name for the Extractor miner: # Internal name for the Extractor
default: default:
@ -448,7 +448,7 @@ buildings:
description: Поместите над жилой с фигурами или красителями, чтобы добыть ресурс. description: Поместите над жилой с фигурами или красителями, чтобы добыть ресурс.
chainable: chainable:
name: Экстрактор(Цеп.) name: Цеп. экстрактор
description: Поместите над жилой с фигурами или красителями, чтобы добыть ресурс. Может последовательно соединяться в цепь. description: Поместите над жилой с фигурами или красителями, чтобы добыть ресурс. Может последовательно соединяться в цепь.
underground_belt: # Internal name for the Tunnel underground_belt: # Internal name for the Tunnel
@ -475,11 +475,11 @@ buildings:
cutter: cutter:
default: default:
name: &cutter Резчик name: &cutter Резак
description: Разрезает фигуры сверху вниз и выводит обе половины. <strong>Используя только одну часть - уничтожьте другую, иначе производство остановится!</strong> description: Разрезает фигуры сверху вниз и выводит обе половины. <strong>Если Вы собираетесь использовать только одну часть, уничтожьте другую, иначе производство остановится!</strong>
quad: quad:
name: Резчик (4Вых.) name: Резак (4Вых.)
description: Разрезает фигуры на четыре части. <strong>Используя не все части - уничтожьте оставшиеся, иначе производство остановится!</strong> description: Разрезает фигуры на четыре части. <strong>Если Вы собираетесь использовать не все части - уничтожьте оставшиеся, иначе производство остановится!</strong>
rotater: rotater:
default: default:
@ -519,18 +519,18 @@ buildings:
trash: trash:
default: default:
name: &trash Мусорка name: &trash Мусорка
description: Имеет входы со всех сторон. Уничтожает все что принимает, навсегда. description: Имеет входы со всех сторон. Уничтожает все принимаемые ресурсы.
storage: storage:
name: Хранилище name: Хранилище
description: Хранит лишние предметы, до заданной вместимости. Может использоваться в качестве ворот для пропускания излишков. description: Хранит лишние предметы до заданной вместимости. Может использоваться в качестве ворот для пропускания излишков.
hub: hub:
deliver: Доставить deliver: Доставить
toUnlock: чтобы открыть toUnlock: чтобы открыть
levelShortcut: Ур. levelShortcut: Ур.
wire: wire:
default: default:
name: Энергетический провод name: Энерг. провод
description: Позволяет транспортировать энергию. description: Позволяет транспортировать энергию.
advanced_processor: advanced_processor:
default: default:
@ -541,7 +541,7 @@ buildings:
toGenerateEnergy: Для toGenerateEnergy: Для
default: default:
name: Генератор энергии name: Генератор энергии
description: Производит энергию потребляя фигуры. description: Производит энергию из фигур.
wire_crossings: wire_crossings:
default: default:
name: Разделитель провода name: Разделитель провода
@ -554,7 +554,7 @@ storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
reward_cutter_and_trash: reward_cutter_and_trash:
title: Разрезание Фигур title: Разрезание Фигур
desc: Вы только что открыли <strong>резчик</strong> - он разрезает фигуры пополам <strong>сверху вниз</strong> независимо от их ориентации!<br><br> Обязательно избавьтесь от отходов, иначе <strong>он остановится</strong> - для этого я дал вам мусорку, которая уничтожит все, что в нее поместить! desc: Вы только что открыли <strong>резак</strong> - он разрезает фигуры пополам <strong>сверху вниз</strong> независимо от их ориентации!<br><br> Обязательно избавьтесь от отходов, иначе <strong>он остановится</strong> - для этого я дал вам мусорку, которая уничтожит все, что в нее поместить!
reward_rotater: reward_rotater:
title: Вращение title: Вращение
@ -563,7 +563,7 @@ storyRewards:
reward_painter: reward_painter:
title: Покраска title: Покраска
desc: >- desc: >-
Разблокирован <strong>покрасчик</strong>! Добудьте краситель из жилы (так же как и фигуры) и объедините его с фигурой в покрасчике, чтобы раскрасить ее!<br><br>PS: Если вы дальтоник, то в настройках есть <strong>Режим Дальтоника</strong>! Разблокирован <strong>покрасчик</strong>! Добудьте краситель из жилы (так же, как и фигуры) и объедините его с фигурой в покрасчике, чтобы раскрасить ее!<br><br>PS: Если вы дальтоник, то в настройках есть <strong>Режим Дальтоника</strong>!
reward_mixer: reward_mixer:
title: Смешивание Цветов title: Смешивание Цветов
@ -579,11 +579,11 @@ storyRewards:
reward_tunnel: reward_tunnel:
title: Туннель title: Туннель
desc: Разблокирован <strong>туннель</strong>! Теперь вы можете транспортировать предметы сквозь конвейеры и здания! desc: Разблокирован <strong>туннель</strong>! Теперь вы можете транспортировать предметы под другими конвейерами и зданиями!
reward_rotater_ccw: reward_rotater_ccw:
title: Вращатель (обратный) title: Вращатель (обратный)
desc: Разблокирован вариант <strong>вращателя</strong>, он позволяет вращать фигуры против часовой стрелки! Чтобы построить его, выберите вращатель и <strong>нажмите 'T' чтобы переключаться между вариантами</strong>! desc: Разблокирован вариант <strong>вращателя</strong>, вращающий фигуры против часовой стрелки! Чтобы построить его, выберите вращатель и <strong>нажмите 'T', чтобы переключить вариант</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Цепной Экстрактор title: Цепной Экстрактор
@ -595,12 +595,11 @@ storyRewards:
reward_splitter_compact: reward_splitter_compact:
title: Компактный Соединитель title: Компактный Соединитель
desc: >- desc: Разблокирован компактный вариант <strong>разделителя</strong>, объединяющий потоки предметов из двух входов!
Разблокирован компактный вариант <strong>разделителя</strong>, он объединяет воедино потоки предметов из двух входов!
reward_cutter_quad: reward_cutter_quad:
title: Резчик (4 Выхода) title: Резак (4 Выхода)
desc: Разблокирован вариант <strong>резчика</strong> - он позволяет разрезать фигуры на <strong>четыре части</strong> вместо, всего лишь двух! desc: Разблокирован вариант <strong>резака</strong>, разрезающий фигуры на <strong>четыре части</strong> вместо двух!
reward_painter_double: reward_painter_double:
title: Двойной Покрасчик title: Двойной Покрасчик
@ -620,13 +619,13 @@ storyRewards:
reward_blueprints: reward_blueprints:
title: Чертежи title: Чертежи
desc: Теперь вы можете <strong>копировать и вставлять</strong> части вашей фабрики! Выберите область (Удерживая CTRL, перетащите мышь) и нажмите 'C' чтобы скопировать ее.<br><br>Вставка <strong>не бесплатна</strong>, чтобы позволить себе это вам необходимо произвести <strong>фигуры для чертежей</strong>! (Которые вы только что доставили). desc: Теперь вы можете <strong>копировать и вставлять</strong> части вашей фабрики! Выберите область (Удерживая CTRL, перетащите мышь) и нажмите 'C', чтобы скопировать ее.<br><br>Вставка <strong>не бесплатна</strong>, для этого необходимо произвести <strong>фигуры для чертежей</strong>! (Которые вы только что доставили).
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
title: Следующий уровень title: Следующий уровень
desc: >- desc: >-
Этот уровень не дал вам награды, но следующий даст! <br><br> PS: Лучше не разрушайте вашу существующую фабрику - Вам понадобятся <strong>все</strong> эти фигуры позже, чтобы <strong>разблокировать улучшения</strong>! Этот уровень не дал вам награды, но следующий даст! <br><br> PS: Лучше не разрушайте вашу существующую фабрику - Вам понадобятся <strong>все</strong> эти фигуры позже, чтобы <strong>разблокировать улучшения</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Следующий уровень title: Следующий уровень
@ -737,7 +736,7 @@ settings:
title: Интервал авто-сохранения title: Интервал авто-сохранения
description: >- description: >-
Управляет тем, как часто игра автоматически сохраняется. Управляет тем, как часто игра автоматически сохраняется.
А также здесь можно полностью отключить авто-сохранение. Также здесь можно полностью отключить авто-сохранение.
intervals: intervals:
one_minute: 1 Минута one_minute: 1 Минута
two_minutes: 2 Минуты two_minutes: 2 Минуты
@ -751,7 +750,7 @@ settings:
Сокращает отображаемую информацию о зданиях, показывая только их множители. Сокращает отображаемую информацию о зданиях, показывая только их множители.
Иначе информация отображается с описанием и изображением. Иначе информация отображается с описанием и изображением.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Отключить Предупреждение о Вырезании\Удалении title: Отключить Предупреждение о Вырезании/Удалении
description: >- description: >-
Отключает диалоговые окна с предупреждениями, появляющиеся при Отключает диалоговые окна с предупреждениями, появляющиеся при
вырезании/удалении более 100 объектов. вырезании/удалении более 100 объектов.
@ -844,19 +843,19 @@ about:
Эта игра с открытым исходным кодом, разработана <a href="https://github.com/tobspr" Эта игра с открытым исходным кодом, разработана <a href="https://github.com/tobspr"
target="_blank">Тобиасом Спрингером</a> (это я).<br><br> target="_blank">Тобиасом Спрингером</a> (это я).<br><br>
Если вы хотите внести свой вклад то вам сюда - <a href="<githublink>" Если вы хотите внести свой вклад игре - <a href="<githublink>"
target="_blank">shapez.io в github</a>.<br><br> target="_blank">shapez.io в github</a>.<br><br>
Эта игра не была бы возможна без большого сообщества в дискорде, которое собралось Эта игра не была бы возможна без большого сообщества в дискорде, которое собралось
вокруг моих игр - Вы действительно должны присоединиться к <a href="<discordlink>" вокруг моих игр - Вам действительно стоит присоединиться к <a href="<discordlink>"
target="_blank">серверу в дискорде</a>!<br><br> target="_blank">серверу Discord!</a>!<br><br>
Саундтрек сделал <a href="https://soundcloud.com/pettersumelius" Саундтрек сделал <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Он потрясающий.<br><br> target="_blank">Peppsen</a> - Он потрясающий.<br><br>
Наконец, огромное спасибо моему лучшему другу <a Наконец, огромное спасибо моему лучшему другу <a
href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Без наших href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Без наших
игровых сессий в factorio эта игра никогда не существовала бы. игровых сессий в Factorio эта игра никогда не существовала бы.
changelog: changelog:
title: Список изменений title: Список изменений

View File

@ -3,7 +3,7 @@
# #
# Translators: # Translators:
# #
# Prosta4ok_ua 07.07.2020 — 04.08.2020 # Prosta4ok_ua 07.07.2020 — 05.09.2020
# #
# Contributing: # Contributing:
# #
@ -31,6 +31,7 @@
# range дальність # range дальність
# storage сховище # storage сховище
# shape форма # shape форма
# layer шар
--- ---
steamPage: steamPage:
@ -272,7 +273,7 @@ dialogs:
Ось декілька, але обов’язково <strong>ознайомтеся з прив’язками клавіш</strong>!<br><br> Ось декілька, але обов’язково <strong>ознайомтеся з прив’язками клавіш</strong>!<br><br>
<code class='keybinding'>CTRL</code> + тягніть: виділити зону.<br> <code class='keybinding'>CTRL</code> + тягніть: виділити зону.<br>
<code class='keybinding'>SHIFT</code>: тримайте, щоб розмістити декілька одного будинку.<br> <code class='keybinding'>SHIFT</code>: тримайте, щоб розмістити декілька одного будинку.<br>
<code class='keybinding'>ALT</code>: змінити орієнтацію розміщеної конвеєрної стрічки.<br> <code class='keybinding'>ALT</code>: змінити сторону розміщеної конвеєрної стрічки.<br>
createMarker: createMarker:
title: Нова позначка title: Нова позначка
@ -367,7 +368,7 @@ ingame:
# The roman number for each tier # The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X] tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: МАКСИМАЛЬНИЙ РІВЕНЬ (Швидкість <currentMult>х) maximumLevel: МАКСИМАЛЬНИЙ РІВЕНЬ (Швидкість x<currentMult>)
# The "Statistics" window # The "Statistics" window
statistics: statistics:
@ -489,7 +490,7 @@ buildings:
splitter: splitter:
default: default:
name: &splitter Розподілювач name: &splitter Розподілювач
description: Multifunctional - Evenly distributes all inputs onto all outputs. description: Багатофункціональний. Рівномірно розподіляє все, що входить.
compact: compact:
name: З’єднувач name: З’єднувач
@ -526,128 +527,128 @@ buildings:
stacker: stacker:
default: default:
name: &stacker Укладальник name: &stacker Укладальник
description: Stacks both items. If they can not be merged, the right item is placed above the left item. description: Складає обидва елементи. Якщо їх неможливо об’єднати, правий елемент розміщується над лівим елементом.
mixer: mixer:
default: default:
name: &mixer Змішувач кольо8рів name: &mixer Змішувач кольорів
description: Змішує два кольори за допомогою добавки. description: Змішує два кольори за допомогою добавки.
painter: painter:
default: default:
name: &painter Painter name: &painter Фарбувач
description: &painter_desc Colors the whole shape on the left input with the color from the top input. description: &painter_desc Забирає форму з лівого входу, а колір з верхнього.
mirrored: mirrored:
name: *painter name: *painter
description: *painter_desc description: *painter_desc
double: double:
name: Painter (Double) name: Фарбувач (подв.)
description: Colors the shapes on the left inputs with the color from the top input. description: Фарбує фігури, що надійшла з лівого входу, кольором, що надійшов з верхнього.
quad: quad:
name: Painter (Quad) name: Фарбувач (чотири)
description: Allows you to color each quadrant of the shape with a different color. description: Дозволяє вам фарбувати кожну четвертину форми у різний колір.
trash: trash:
default: default:
name: &trash Trash name: &trash Смітник
description: Accepts inputs from all sides and destroys them. Forever. description: Приймає форми зі всіх сторін і руйнує їх. Назавжди.
storage: storage:
name: Storage name: Сховище
description: Stores excess items, up to a given capacity. Can be used as an overflow gate. description: Зберігає зайві предмети до заданої місткості. Може використовуватися для зберігання надлишкових речей.
energy_generator: energy_generator:
deliver: Deliver deliver: Доставте
# This will be shown before the amount, so for example 'For 123 Energy' # This will be shown before the amount, so for example 'For 123 Energy'
toGenerateEnergy: For toGenerateEnergy: За
default: default:
name: &energy_generator Energy Generator name: &energy_generator Енергетичний генератор
description: Generates energy by consuming shapes. Each energy generator requires a different shape. description: Створює енергію споживаючи форми. Кожний енергетичний генератор потрібує свою форму.
wire_crossings: wire_crossings:
default: default:
name: &wire_crossings Wire Splitter name: &wire_crossings Дротовий розподілювач
description: Splits a wire into two description: Ділить дріт надвоє.
merger: merger:
name: Wire Merger name: Дротовий з’єднувач
description: Merges two wires into one description: Об’єднує два дроти в один.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
reward_cutter_and_trash: reward_cutter_and_trash:
title: Різання фігур title: Різання фігур
desc: Ви тільки-но розблокували <strong>різця</strong>. Він розрізає фігури наполовину з <strong>вершини до низу</strong> незалежно від його орієнтації!<br><br>Обов’язково позбудьтесь відходів або <strong>він зупиниться</strong>. Для цього є сміттєбак, який знищує все, що входить в нього. desc: Ви тільки-но розблокували <strong>різця</strong>. Він розрізає фігури наполовину з <strong>вершини до низу</strong> незалежно від його орієнтації!<br><br>Обов’язково позбудьтесь відходів або <strong>він зупиниться</strong>. Для цього є смітник, який знищує все, що входить в нього.
reward_rotater: reward_rotater:
title: Rotating title: Обертання
desc: The <strong>rotater</strong> has been unlocked! It rotates shapes clockwise by 90 degrees. desc: <strong>Обертач</strong> розблоковано! Він повертає форми за годинниковою стрілкою на 90 градусів.
reward_painter: reward_painter:
title: Painting title: Фарбування
desc: >- desc: >-
The <strong>painter</strong> 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!<br><br>PS: If you are colorblind, there is a <strong>colorblind mode</strong> in the settings! <strong>Фарбувач</strong> розблоковано. Видобудьте трохи кольорів з відповідних жилок (як ви зробили це з формами) і об’єднуйте їх з формами у фарбувачі, щоб розфарбувати форми!<br><br>До речі, якщо ви дальтонік, то в увімкніть <strong>режим високої контрастності</strong> в налаштуваннях!
reward_mixer: reward_mixer:
title: Color Mixing title: Змішування кольорів
desc: The <strong>mixer</strong> has been unlocked - Combine two colors using <strong>additive blending</strong> with this building! desc: <strong>Змішування кольорів</strong> розблоковано. Об’єднуйте два кольори у цій будівлі.
reward_stacker: reward_stacker:
title: Combiner title: Поєднувач форм
desc: You can now combine shapes with the <strong>combiner</strong>! Both inputs are combined, and if they can be put next to each other, they will be <strong>fused</strong>. If not, the right input is <strong>stacked on top</strong> of the left input! desc: Тепер ви можете поєднувати фігури з <strong>поєднувачем форм</strong>! Форми об’єднуються з двох сторін, і якщо їх можна поставити поруч, вони будуть <strong>з’єднані</strong>. Якщо ні, то форма, що подана з правого входу, <strong>застрягне на горі</strong> лівого входу.
reward_splitter: reward_splitter:
title: Splitter/Merger title: Розподілювач (з’єднувач)
desc: Багатофункціональний <strong> балансир </strong> було розблоковано. Його можна використовувати для створення великих фабрик, <strong>розділяючи та об’єднуючи предмети </strong> на кілька стрічок!<br><br> desc: Багатофункціональний <strong>розподілювач</strong> було розблоковано. Його можна використовувати для створення великих фабрик, <strong>розділяючи та об’єднуючи предмети </strong> на кілька стрічок!<br><br>
reward_tunnel: reward_tunnel:
title: Tunnel title: Тунель
desc: The <strong>tunnel</strong> has been unlocked - You can now tunnel items through belts and buildings with it! desc: <strong>Тунель</strong> розблоковано. Ви можете створювати тунелі для преметів через стрічки і будівлі.
reward_rotater_ccw: reward_rotater_ccw:
title: CCW Rotating title: Обертання проти годинникової стрілки
desc: You have unlocked a variant of the <strong>rotater</strong> - It allows you to rotate shapes counter-clockwise! To build it, select the rotater and <strong>press 'T' to cycle through its variants</strong>! desc: Ви розблокували новий варіант <strong>обертача</strong>. Він дозволяє обертати проти годинникової стрілки! Щоб побудувати його виберіть обертач, <strong>натисніть «T», щоб переглянути всі варіанти, та оберіть потрібний</strong>!
reward_miner_chainable: reward_miner_chainable:
title: Chaining Extractor title: Екстрактор (ланцюг.)
desc: You have unlocked the <strong>chaining extractor</strong>! It can <strong>forward its resources</strong> to other extractors so you can more efficiently extract resources! desc: Ви розблокували <strong>ланцюговий екстрактор</strong>! Він може <strong>пересилати свої ресурси</strong> іншим екстракторам, щоб ви могли ефективніше видобувати ресурси!
reward_underground_belt_tier_2: reward_underground_belt_tier_2:
title: Tunnel Tier II title: Тунель II
desc: You have unlocked a new variant of the <strong>tunnel</strong> - It has a <strong>bigger range</strong>, and you can also mix-n-match those tunnels now! desc: Ви розблокували новий варіант <strong>тунеля</strong>. Він має <strong>більшу дальність</strong>, і ви можете також змішувати і зіставляти ці тунелі!
reward_splitter_compact: reward_splitter_compact:
title: Compact Balancer title: Компактний розподілювач
desc: >- desc: >-
You have unlocked a compact variant of the <strong>balancer</strong> - It accepts two inputs and merges them into one belt! Ви розблокували компактний варіант <strong>розподілювача</strong>. Він приймає з двох сторін і об’єднує на одну стрічку!
reward_cutter_quad: reward_cutter_quad:
title: Quad Cutting title: Різчик (чотири)
desc: You have unlocked a variant of the <strong>cutter</strong> - It allows you to cut shapes in <strong>four parts</strong> instead of just two! desc: Ви розблокували інший варіант <strong>різчика</strong>. Він може розрізати форми на <strong>чотири частини</strong> замість двох.
reward_painter_double: reward_painter_double:
title: Double Painting title: Double Painting
desc: You have unlocked a variant of the <strong>painter</strong> - It works as the regular painter but processes <strong>two shapes at once</strong> consuming just one color instead of two! desc: Ви розблокували інший варіант <strong>фарбувача</strong>. Він працює як звичайний фарбувач, але обробляє <strong>дві фігури одночасно</strong>, споживаючи лише один колір замість двох!
reward_painter_quad: reward_painter_quad:
title: Quad Painting title: Quad Painting
desc: You have unlocked a variant of the <strong>painter</strong> - It allows you to paint each part of the shape individually! desc: Ви розблокували інший варіант <strong>фарбувача</strong>. Він дозволяє фарбувати кожну частину форми індивідуально!
reward_storage: reward_storage:
title: Storage Buffer title: Storage Buffer
desc: You have unlocked a variant of the <strong>trash</strong> - It allows you to store items up to a given capacity! desc: Ви розблокували інший варіант <strong>trash</strong> - It allows you to store items up to a given capacity!
reward_freeplay: reward_freeplay:
title: Freeplay title: Пісочниця
desc: You did it! You unlocked the <strong>free-play mode</strong>! This means that shapes are now randomly generated! (No worries, more content is planned for the standalone!) desc: Ви зробили це! Ви розблокували <strong>вільний режим</strong>! Це означає, що форми тут створюватимуться випадкові! Не хвилюйтеся, більше контенту планується для окремого режиму!
reward_blueprints: reward_blueprints:
title: Blueprints title: Креслення
desc: You can now <strong>copy and paste</strong> parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.<br><br>Pasting it is <strong>not free</strong>, you need to produce <strong>blueprint shapes</strong> to afford it! (Those you just delivered). desc: Ви вже можете <strong>копіювати і вставляти</strong> частини вашої фабрики. Виберіть зону (утримуйте CTRL, а тоді тягніть мишою), і натисніть «C», щоб скопіювати.<br><br>Вставляти креслення — <strong>річ не безкоштовна</strong>, спочатку вам потрібно створити <strong>форми креслень</strong>, щоб собі це дозволити! (ті, що ви щойно доставили).
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
no_reward: no_reward:
@ -668,10 +669,10 @@ settings:
advanced: Передове advanced: Передове
versionBadges: versionBadges:
dev: Development dev: Розробка
staging: Staging staging: Тестування
prod: Production prod: Виробництво
buildDate: Built <at-date> buildDate: Створено <at-date>
labels: labels:
uiScale: uiScale:
@ -724,7 +725,7 @@ settings:
language: language:
title: Мова title: Мова
description: >- description: >-
Змініть мову. Усі переклади зроблені користувачами і можуть бути незавершеними! Зміна мови. Усі переклади зроблені користувачами і можуть бути незавершеними!
enableColorBlindHelper: enableColorBlindHelper:
title: Режим високої контрастності title: Режим високої контрастності
@ -770,55 +771,55 @@ settings:
Якщо увімкнено, то пропонує підказки та посібники під час гри. Також приховує певні елементи інтерфейсу до заданого рівня, щоб полегшити потрапляння в гру. Якщо увімкнено, то пропонує підказки та посібники під час гри. Також приховує певні елементи інтерфейсу до заданого рівня, щоб полегшити потрапляння в гру.
enableTunnelSmartplace: enableTunnelSmartplace:
title: Розумні Tunnels title: Розумні тунелі
description: >- description: >-
When enabled, placing tunnels will automatically remove unnecessary belts. This also enables you to drag tunnels and excess tunnels will get removed. Якщо увімкнено, то розміщення тунелів видалить непотрібні стрічки. Це також дозволяє вам перетягувати тунелі і видаляти автоматично зайві тунелі.
vignette: vignette:
title: Vignette title: Віньєтка
description: >- description: >-
Enables the vignette, which darkens the screen corners and makes text easier to read. Вмикає віньєтку, яка затемнює кути екрану і робить текст легшим для читання.
rotationByBuilding: rotationByBuilding:
title: Rotation by building type title: Обертання за типом будівлі
description: >- 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. Кожний тип будівлі запам’ятовує обертання, яке ви встановили. Це може бути зручнішим, якщо ви часто перемикаєтесь між розміщенням різних типів будівель.
compactBuildingInfo: compactBuildingInfo:
title: Compact Building Infos title: Компактна інформація про будівлі
description: >- description: >-
Shortens info boxes for buildings by only showing their ratios. Otherwise a description and image is shown. Скорочує інформаційні поля для будівель, лише показуючи їх співвідношення. В іншому випадку відображається опис та зображення.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Disable Cut/Delete Warnings title: Вимкнути попердження про вирізання та видалення
description: >- description: >-
Disables the warning dialogs brought up when cutting/deleting more than 100 entities. Вимикає діалогові вікна попередження, що з’являються під час вирізання/видалення більше 100 об’єктів.
keybindings: keybindings:
title: Гарячі клавіши title: Гарячі клавіши
hint: >- hint: >-
Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options. Tip: Упевніться, що ви можете використовувати CTRL, SHIFT і ALT! Вони дозволяють різні варіанти розміщення.
resetKeybindings: Скинути гарячі клавіші resetKeybindings: Скинути гарячі клавіші
categoryLabels: categoryLabels:
general: Застосунок general: Застосунок
ingame: Гра ingame: Гра
navigation: Navigating navigation: Навігація
placement: Placement placement: Розміщення
massSelect: Mass Select massSelect: Масовий вибір
buildings: Building Shortcuts buildings: Гарячі клавіши будівництва
placementModifiers: Placement Modifiers placementModifiers: Модифікатори розміщення
mappings: mappings:
confirm: Підтвердити confirm: Підтвердити
back: Назад back: Назад
mapMoveUp: Move Up mapMoveUp: Угору
mapMoveRight: Move Right mapMoveRight: Праворуч
mapMoveDown: Move Down mapMoveDown: Униз
mapMoveLeft: Move Left mapMoveLeft: Ліворуч
mapMoveFaster: Move Faster mapMoveFaster: Пришвидшитися
centerMap: Center Map centerMap: Центрувати мапу
mapZoomIn: Приблизити mapZoomIn: Приблизити
mapZoomOut: Віддалити mapZoomOut: Віддалити
@ -828,10 +829,10 @@ keybindings:
menuOpenStats: Статистика menuOpenStats: Статистика
menuClose: Закрити меню menuClose: Закрити меню
toggleHud: Toggle HUD toggleHud: Перемкнути користувацький інтерфейс
toggleFPSInfo: Toggle FPS and Debug Info toggleFPSInfo: Перемкнути інформацію про FPS та зневадження
switchLayers: Switch layers switchLayers: Перемкнути шари
exportScreenshot: Export whole Base as Image exportScreenshot: Експортувати цілу базу у вигляді зображення
belt: *belt belt: *belt
splitter: *splitter splitter: *splitter
underground_belt: *underground_belt underground_belt: *underground_belt
@ -846,26 +847,26 @@ keybindings:
trash: *trash trash: *trash
wire: *wire wire: *wire
pipette: Pipetteї pipette: Піпетка
rotateWhilePlacing: Повернути rotateWhilePlacing: Повернути
rotateInverseModifier: >- rotateInverseModifier: >-
Modifier: Rotate CCW instead Modifier: Повернути проти годинникової стрілки натомість
cycleBuildingVariants: Cycle Variants cycleBuildingVariants: Повторювати варіанти циклічно
confirmMassDelete: Видалити ділянку confirmMassDelete: Видалити ділянку
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Вставити останнє креслення
cycleBuildings: Cycle Buildings cycleBuildings: Перемикання будівль
lockBeltDirection: Enable belt planner lockBeltDirection: Увімкнути планувальник конвеєрних стрічок
switchDirectionLockSide: >- switchDirectionLockSide: >-
Planner: Switch side Planner: Змінити сторону
massSelectStart: Hold and drag to start massSelectStart: Утримуйте і перетягуйте, щоб розпочати
massSelectSelectMultiple: massSelectSelectMultiple:
massSelectCopy: Копіювати ділянку massSelectCopy: Копіювати ділянку
massSelectCut: Вирізати ділянку massSelectCut: Вирізати ділянку
placementDisableAutoOrientation: Вимкнути автоматичну орієнтацію placementDisableAutoOrientation: Вимкнути автоматичну орієнтацію
placeMultiple: Stay in placement mode placeMultiple: Залишатися у режимі розміщення
placeInverse: Invert automatic belt orientation placeInverse: Перевернути автоматичну орієнтацію стрічки
about: about:
title: Про гру title: Про гру

View File

@ -2740,6 +2740,11 @@ cyclist@^1.0.1:
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
debounce-promise@^3.1.2:
version "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:
version "2.6.9" version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"