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

Merge branch 'master' into patch-13

This commit is contained in:
DerFeldspatz 2020-07-27 11:24:46 +02:00 committed by GitHub
commit 245ee5cf68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
99 changed files with 5466 additions and 3975 deletions

View File

@ -39,3 +39,15 @@ jobs:
- name: Lint - name: Lint
run: | run: |
yarn lint yarn lint
- name: YAML Lint
uses: ibiqlik/action-yamllint@v1.0.0
with:
file_or_dir: translations/*.yaml
- name: TSLint
run: |
cd gulp
yarn gulp translations.fullBuild
cd ..
yarn tslint

4
.gitignore vendored
View File

@ -109,10 +109,6 @@ build
tmp_standalone_files tmp_standalone_files
# Github Actions files
.github/workflows
# Local config # Local config
config.local.js config.local.js
.DS_Store .DS_Store

View File

@ -3,165 +3,164 @@ os: linux
dist: xenial dist: xenial
language: node_js language: node_js
node_js: node_js:
- "10" - "12"
cache: yarn cache: yarn
# platform specific configuration # platform specific configuration
jobs: jobs:
# jobs which have to succeed
include:
# OS: MAC
## -> build darwin
# - name: "Standalone MacOS on MacOS"
# os: osx
# osx_image: xcode11.3
# before_install:
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
# script:
# - cd gulp
# - yarn gulp build.standalone-prod || travis_terminate 1
# - yarn gulp standalone.prepare
# - yarn gulp standalone.package.prod.darwin64
# - cd ..
# jobs which have to succeed ## -> build win
include: # - name: "Standalone Windows on MacOS"
# OS: MAC # os: osx
## -> build darwin # osx_image: xcode11.3
- name: "Standalone MacOS on MacOS" # before_install:
os: osx # - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
osx_image: xcode11.3 # - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
before_install: # - HOMEBREW_NO_AUTO_UPDATE=1 brew cask install wine-stable
- HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs # # prevent Wine popup dialogs about installing additional packages
- HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg # - export WINEDLLOVERRIDES="mscoree,mshtml="
script: # - export WINEDEBUG="-all"
- cd gulp # script:
- yarn gulp build.standalone-prod || travis_terminate 1 # - cd gulp
- yarn gulp standalone.prepare # - yarn gulp build.standalone-prod || travis_terminate 1
- yarn gulp standalone.package.prod.darwin64 # - yarn gulp standalone.prepare
- cd .. # - yarn gulp standalone.package.prod.win64
# - yarn gulp standalone.package.prod.win32
# - cd ..
## -> build win ## -> build linux
- name: "Standalone Windows on MacOS" # - name: "Standalone Linux on MacOS"
os: osx # os: osx
osx_image: xcode11.3 # osx_image: xcode11.3
before_install: # before_install:
- HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs # - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
- HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg # - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
- HOMEBREW_NO_AUTO_UPDATE=1 brew cask install wine-stable # script:
# prevent Wine popup dialogs about installing additional packages # - cd gulp
- export WINEDLLOVERRIDES="mscoree,mshtml=" # - yarn gulp build.standalone-prod || travis_terminate 1
- export WINEDEBUG="-all" # - yarn gulp standalone.prepare
script: # - yarn gulp standalone.package.prod.linux64
- cd gulp # - yarn gulp standalone.package.prod.linux32
- yarn gulp build.standalone-prod || travis_terminate 1 # - cd ..
- yarn gulp standalone.prepare
- yarn gulp standalone.package.prod.win64
- yarn gulp standalone.package.prod.win32
- cd ..
## -> build linux # OS: LINUX
- name: "Standalone Linux on MacOS" ## -> build darwin
os: osx ## not possible
osx_image: xcode11.3
before_install:
- HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
- HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
script:
- cd gulp
- yarn gulp build.standalone-prod || travis_terminate 1
- yarn gulp standalone.prepare
- yarn gulp standalone.package.prod.linux64
- yarn gulp standalone.package.prod.linux32
- cd ..
# OS: LINUX ## -> build win
## -> build darwin # - name: "Standalone Windows on Linux"
## not possible # os: linux
# addons:
# apt:
# packages:
# - libavformat-dev
# - libavfilter-dev
# - libavdevice-dev
# - ffmpeg
# - wine
# script:
# - cd gulp
# - yarn gulp build.standalone-prod || travis_terminate 1
# - yarn gulp standalone.prepare
# - yarn gulp standalone.package.prod.win64
# - yarn gulp standalone.package.prod.win32
# - cd ..
## -> build win ## -> build linux
- name: "Standalone Windows on Linux" # - name: "Standalone Linux on Linux"
os: linux # os: linux
addons: # addons:
apt: # apt:
packages: # packages:
- libavformat-dev # - libavformat-dev
- libavfilter-dev # - libavfilter-dev
- libavdevice-dev # - libavdevice-dev
- ffmpeg # - ffmpeg
- wine # script:
script: # - cd gulp
- cd gulp # - yarn gulp build.standalone-prod || travis_terminate 1
- yarn gulp build.standalone-prod || travis_terminate 1 # - yarn gulp standalone.prepare
- yarn gulp standalone.prepare # - yarn gulp standalone.package.prod.linux64
- yarn gulp standalone.package.prod.win64 # - yarn gulp standalone.package.prod.linux32
- yarn gulp standalone.package.prod.win32 # - cd ..
- cd ..
## -> build linux # OS: WINDOWS
- name: "Standalone Linux on Linux" ## -> build darwin
os: linux ## not possible
addons:
apt:
packages:
- libavformat-dev
- libavfilter-dev
- libavdevice-dev
- ffmpeg
script:
- cd gulp
- yarn gulp build.standalone-prod || travis_terminate 1
- yarn gulp standalone.prepare
- yarn gulp standalone.package.prod.linux64
- yarn gulp standalone.package.prod.linux32
- cd ..
# OS: WINDOWS ## -> build linux
## -> build darwin # - name: "Standalone Linux on Windows"
## not possible # os: windows
# env: YARN_GPG=no
# before_install:
# - choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed
# - choco install ffmpeg --version=4.2.3
# - export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH
# - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/
# - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/
# script:
# - cd gulp
# - yarn gulp build.standalone-prod || travis_terminate 1
# - yarn gulp standalone.prepare
# - yarn gulp standalone.package.prod.linux64
# - yarn gulp standalone.package.prod.linux32
# - cd ..
## -> build linux ## -> build win
- name: "Standalone Linux on Windows" - name: "Standalone Windows on Windows"
os: windows os: windows
env: YARN_GPG=no env: YARN_GPG=no
before_install: before_install:
- choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed - choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed
- choco install ffmpeg --version=4.2.3 - choco install ffmpeg --version=4.2.3
- export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH - choco install wget
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/ - export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/ - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/
script: - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/
- cd gulp script:
- yarn gulp build.standalone-prod || travis_terminate 1 - cd gulp
- yarn gulp standalone.prepare - yarn gulp build.standalone-prod || travis_terminate 1
- yarn gulp standalone.package.prod.linux64 - yarn gulp standalone.prepare
- yarn gulp standalone.package.prod.linux32 - yarn gulp standalone.package.prod.win64
- cd .. - yarn gulp standalone.package.prod.win32
- cd ..
## -> build win # mark build as finished even if "allow_failures" are still running
- name: "Standalone Windows on Windows" fast_finish: true
os: windows
env: YARN_GPG=no
before_install:
- choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed
- choco install ffmpeg --version=4.2.3
- choco install wget
- export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/
script:
- cd gulp
- yarn gulp build.standalone-prod || travis_terminate 1
- yarn gulp standalone.prepare
- yarn gulp standalone.package.prod.win64
- yarn gulp standalone.package.prod.win32
- cd ..
# mark build as finished even if "allow_failures" are still running # optional jobs which may fail
fast_finish: true #allow_failures:
# - name: ""
# optional jobs which may fail
#allow_failures:
# - name: ""
# shared # shared
install: install:
- git lfs install - git lfs install
- git lfs pull - git lfs pull
- yarn - yarn
# electron dependencies
- cd electron
- yarn
- cd ..
# gulp dependendencies # electron dependencies
- cd gulp - cd electron
- yarn - yarn
- cd .. - cd ..
# gulp dependendencies
- cd gulp
- yarn
- cd ..

6
.yamllint Normal file
View File

@ -0,0 +1,6 @@
extends: default
rules:
line-length:
level: warning
max: 200

View File

@ -11,6 +11,15 @@ Your goal is to produce shapes by cutting, rotating, merging and painting parts
- [Steam Page](https://steam.shapez.io) - [Steam Page](https://steam.shapez.io)
- [Official Discord](https://discord.com/invite/HN7EVzV) <- _Highly recommended to join!_ - [Official Discord](https://discord.com/invite/HN7EVzV) <- _Highly recommended to join!_
## Reporting issues, suggestions, feedback, bugs
1. Ask in `#bugs` / `#feedback` / `#questions` on the [Official Discord](https://discord.com/invite/HN7EVzV) if you are not entirely sure if it's a bug etc.
2. Check out the trello board: https://trello.com/b/ISQncpJP/shapezio
3. See if it's already there - If so, vote for it, done. I will see it. (You have to be signed in on trello)
4. If not, check if it's already reported here: https://github.com/tobspr/shapez.io/issues
5. If not, file a new issue here: https://github.com/tobspr/shapez.io/issues/new
6. I will then have a look (This can take days or weeks) and convert it to trello, and comment with the link. You can then vote there ;)
## Building ## Building
- Make sure git `git lfs` extension is on your path - Make sure git `git lfs` extension is on your path
@ -41,7 +50,7 @@ If you want to add a new feature or in generally contribute I recommend to get i
### Code ### Code
The game is based on a custom engine which itself is based on the YORG.io 3 game egine (Actually it shares almost the same core). The game is based on a custom engine which itself is based on the YORG.io 3 game engine (Actually it shares almost the same core).
The code within the engine is relatively clean with some code for the actual game on top being hacky. The code within the engine is relatively clean with some code for the actual game on top being hacky.
This project is based on ES5. Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop. This project is based on ES5. Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop.

View File

@ -1,44 +0,0 @@
const glob = require("glob");
const execSync = require("child_process").execSync;
const trim = require("trim");
const fs = require("fs");
const path = require("path");
module.exports = {
getRevision: function (useLast = false) {
const commitHash = execSync("git rev-parse --short " + (useLast ? "HEAD^1" : "HEAD")).toString("ascii");
return commitHash.replace(/^\s+|\s+$/g, "");
},
getAllResourceImages() {
return glob
.sync("res/**/*.@(png|svg|jpg)", { cwd: ".." })
.map((f) => f.replace(/^res\//gi, ""))
.filter((f) => {
if (f.indexOf("ui") >= 0) {
// We drop all ui images except for the noinline ones
return f.indexOf("noinline") >= 0;
}
return true;
});
},
getAllAtlasImages() {
return glob.sync("res_built/atlas/*.png", { cwd: ".." }).map((s) => s.replace("res_built/atlas/", "res/"));
},
getAllSounds() {
return glob.sync("res_built/sounds/**/*.mp3", { cwd: ".." }).map((s) => s.replace("res_built/sounds/", "res/sounds/"));
},
getVersion() {
return trim(fs.readFileSync(path.join(__dirname, "version")).toString());
},
/**
* @param {string} url
* @param {string} commitHash
*/
cachebust(url, commitHash) {
return "/v/" + commitHash + "/" + url;
},
};

View File

@ -20,7 +20,7 @@
"ajv": "^6.10.2", "ajv": "^6.10.2",
"audiosprite": "^0.7.2", "audiosprite": "^0.7.2",
"babel-loader": "^8.1.0", "babel-loader": "^8.1.0",
"browser-sync": "^2.24.6", "browser-sync": "^2.26.10",
"circular-dependency-plugin": "^5.0.2", "circular-dependency-plugin": "^5.0.2",
"circular-json": "^0.5.9", "circular-json": "^0.5.9",
"clipboard-copy": "^3.1.0", "clipboard-copy": "^3.1.0",
@ -47,14 +47,13 @@
"query-string": "^6.8.1", "query-string": "^6.8.1",
"rusha": "^0.8.13", "rusha": "^0.8.13",
"serialize-error": "^3.0.0", "serialize-error": "^3.0.0",
"sloc": "^0.2.1",
"strictdom": "^1.0.1", "strictdom": "^1.0.1",
"string-replace-webpack-plugin": "^0.1.3", "string-replace-webpack-plugin": "^0.1.3",
"terser-webpack-plugin": "^1.1.0", "terser-webpack-plugin": "^1.1.0",
"through2": "^3.0.1", "through2": "^3.0.1",
"uglify-template-string-loader": "^1.1.0", "uglify-template-string-loader": "^1.1.0",
"unused-files-webpack-plugin": "^3.4.0", "unused-files-webpack-plugin": "^3.4.0",
"webpack": "^4.31.0", "webpack": "^4.43.0",
"webpack-bundle-analyzer": "^3.0.3", "webpack-bundle-analyzer": "^3.0.3",
"webpack-cli": "^3.1.0", "webpack-cli": "^3.1.0",
"webpack-deep-scope-plugin": "^1.6.0", "webpack-deep-scope-plugin": "^1.6.0",
@ -114,7 +113,7 @@
"speed-measure-webpack-plugin": "^1.3.1", "speed-measure-webpack-plugin": "^1.3.1",
"strip-json-comments": "^3.0.1", "strip-json-comments": "^3.0.1",
"trim": "^0.0.1", "trim": "^0.0.1",
"webpack-stream": "^5.1.0", "webpack-stream": "^5.2.1",
"yaml-loader": "^0.6.0" "yaml-loader": "^0.6.0"
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,6 @@
"@types/filesystem": "^0.0.29", "@types/filesystem": "^0.0.29",
"ajv": "^6.10.2", "ajv": "^6.10.2",
"babel-loader": "^8.0.4", "babel-loader": "^8.0.4",
"browser-sync": "^2.24.6",
"circular-dependency-plugin": "^5.0.2", "circular-dependency-plugin": "^5.0.2",
"circular-json": "^0.5.9", "circular-json": "^0.5.9",
"clipboard-copy": "^3.1.0", "clipboard-copy": "^3.1.0",
@ -53,14 +52,13 @@
"query-string": "^6.8.1", "query-string": "^6.8.1",
"rusha": "^0.8.13", "rusha": "^0.8.13",
"serialize-error": "^3.0.0", "serialize-error": "^3.0.0",
"sloc": "^0.2.1",
"strictdom": "^1.0.1", "strictdom": "^1.0.1",
"string-replace-webpack-plugin": "^0.1.3", "string-replace-webpack-plugin": "^0.1.3",
"terser-webpack-plugin": "^1.1.0", "terser-webpack-plugin": "^1.1.0",
"typescript": "3.9.3", "typescript": "3.9.3",
"uglify-template-string-loader": "^1.1.0", "uglify-template-string-loader": "^1.1.0",
"unused-files-webpack-plugin": "^3.4.0", "unused-files-webpack-plugin": "^3.4.0",
"webpack": "^4.31.0", "webpack": "^4.43.0",
"webpack-bundle-analyzer": "^3.0.3", "webpack-bundle-analyzer": "^3.0.3",
"webpack-cli": "^3.1.0", "webpack-cli": "^3.1.0",
"webpack-deep-scope-plugin": "^1.6.0", "webpack-deep-scope-plugin": "^1.6.0",
@ -98,6 +96,6 @@
"speed-measure-webpack-plugin": "^1.3.1", "speed-measure-webpack-plugin": "^1.3.1",
"strip-json-comments": "^3.0.1", "strip-json-comments": "^3.0.1",
"trim": "^0.0.1", "trim": "^0.0.1",
"webpack-stream": "^5.1.0" "yarn": "^1.22.4"
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 756 B

BIN
res/ui/icons/link.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 70 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 KiB

After

Width:  |  Height:  |  Size: 226 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 515 KiB

After

Width:  |  Height:  |  Size: 527 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 976 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@ -449,6 +449,7 @@
<key type="filename">sprites/blueprints/miner-chainable.png</key> <key type="filename">sprites/blueprints/miner-chainable.png</key>
<key type="filename">sprites/blueprints/miner.png</key> <key type="filename">sprites/blueprints/miner.png</key>
<key type="filename">sprites/blueprints/rotater-ccw.png</key> <key type="filename">sprites/blueprints/rotater-ccw.png</key>
<key type="filename">sprites/blueprints/rotater-fl.png</key>
<key type="filename">sprites/blueprints/rotater.png</key> <key type="filename">sprites/blueprints/rotater.png</key>
<key type="filename">sprites/blueprints/splitter-compact-inverse.png</key> <key type="filename">sprites/blueprints/splitter-compact-inverse.png</key>
<key type="filename">sprites/blueprints/splitter-compact.png</key> <key type="filename">sprites/blueprints/splitter-compact.png</key>
@ -459,6 +460,7 @@
<key type="filename">sprites/blueprints/underground_belt_exit.png</key> <key type="filename">sprites/blueprints/underground_belt_exit.png</key>
<key type="filename">sprites/buildings/miner-chainable.png</key> <key type="filename">sprites/buildings/miner-chainable.png</key>
<key type="filename">sprites/buildings/rotater-ccw.png</key> <key type="filename">sprites/buildings/rotater-ccw.png</key>
<key type="filename">sprites/buildings/rotater-fl.png</key>
<key type="filename">sprites/buildings/splitter-compact-inverse.png</key> <key type="filename">sprites/buildings/splitter-compact-inverse.png</key>
<key type="filename">sprites/buildings/splitter-compact.png</key> <key type="filename">sprites/buildings/splitter-compact.png</key>
<key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key> <key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key>

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -73,6 +73,9 @@ body {
scrollbar-face-color: #888; scrollbar-face-color: #888;
scrollbar-track-color: rgba(255, 255, 255, 0.1); scrollbar-track-color: rgba(255, 255, 255, 0.1);
// Firefox
scrollbar-color: #cdd0d4 rgba(#000, 0.05);
overflow: hidden; overflow: hidden;
@include Text; @include Text;
@ -205,7 +208,7 @@ button {
border: 0; border: 0;
background: $colorBlueBright; background: $colorBlueBright;
color: #fff; color: #fff;
@include S(border-radius, $globalBorderRadius);
// border: #{D(1px)} solid rgba(0, 10, 20, 0.2); // border: #{D(1px)} solid rgba(0, 10, 20, 0.2);
@include S(border-bottom-width, 2px); @include S(border-bottom-width, 2px);
// color: $accentColorDark; // color: $accentColorDark;
@ -345,6 +348,7 @@ canvas {
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
// border-radius: 4px; // border-radius: 4px;
@include S(border-radius, $globalBorderRadius);
background: #cdd0d4; background: #cdd0d4;
} }

View File

@ -8,8 +8,8 @@ $buildings: belt, cutter, miner, mixer, painter, rotater, splitter, stacker, tra
} }
$buildingsAndVariants: belt, splitter, splitter-compact, splitter-compact-inverse, underground_belt, $buildingsAndVariants: belt, splitter, splitter-compact, splitter-compact-inverse, underground_belt,
underground_belt-tier2, miner, miner-chainable, cutter, cutter-quad, rotater, rotater-ccw, stacker, mixer, underground_belt-tier2, miner, miner-chainable, cutter, cutter-quad, rotater, rotater-ccw, rotater-fl,
painter, painter-double, painter-quad, trash, trash-storage; stacker, mixer, painter, painter-double, painter-quad, trash, trash-storage;
@each $building in $buildingsAndVariants { @each $building in $buildingsAndVariants {
[data-icon="building_tutorials/#{$building}.png"] { [data-icon="building_tutorials/#{$building}.png"] {
background-image: uiResource("res/ui/building_tutorials/#{$building}.png") !important; background-image: uiResource("res/ui/building_tutorials/#{$building}.png") !important;

View File

@ -4,23 +4,28 @@
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
// NOTE: This flex rule may not be necessary. Need to find out intent.
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: rgb(255, 255, 255);
background: transparent; background: transparent;
border-bottom-width: 0; border-bottom-width: 0;
transition: transform 0.12s ease-in-out; transition: transform 120ms ease-in-out;
will-change: transform;
background: rgba(mix(#ddd, $colorBlueBright, 90%), 0.75); background-color: rgba(mix(#ddd, $colorBlueBright, 90%), 0.5);
backdrop-filter: blur(D(3px));
@include DarkThemeOverride { @include DarkThemeOverride {
background: #222428; background-color: #222428;
} }
&:not(.visible) { &:not(.visible) {
transform: translateX(-50%) translateY(#{D(100px)}); transform: translateX(-50%) translateY(#{D(100px)});
} }
@include S(border-top-left-radius, $globalBorderRadius);
@include S(border-top-right-radius, $globalBorderRadius);
.buildings { .buildings {
display: grid; display: grid;
grid-auto-flow: column; grid-auto-flow: column;
@ -60,21 +65,43 @@
@include S(border-radius, $globalBorderRadius); @include S(border-radius, $globalBorderRadius);
&.selected { &.unlocked {
background-color: rgba($colorBlueBright, 0.6) !important; pointer-events: all;
transform: scale(1.05); transition: all 50ms ease-in-out;
.keybinding { transition-property: background-color, transform;
color: #111;
}
}
pointer-events: all;
transition: all 0.05s ease-in-out;
transition-property: background-color, transform;
&.unlocked:hover {
background-color: rgba($accentColorDark, 0.1);
cursor: pointer; cursor: pointer;
will-change: transform;
&::before {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: $accentColorDark;
opacity: 0;
will-change: opacity;
}
&:hover {
&::before {
opacity: 0.1;
}
}
&.selected {
transform: scale(1.05);
&::before {
background-color: $colorBlueBright;
opacity: 0.6;
}
.keybinding {
color: #111;
}
}
} }
} }
} }

View File

@ -22,6 +22,7 @@
cursor: pointer; cursor: pointer;
transition: all 0.12s ease-in-out; transition: all 0.12s ease-in-out;
transition-property: opacity, transform; transition-property: opacity, transform;
will-change: opacity;
opacity: 0.9; opacity: 0.9;
@include S(margin-left, 5px); @include S(margin-left, 5px);
position: relative; position: relative;

View File

@ -15,6 +15,8 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@include S(border-radius, $globalBorderRadius);
@include MakeAnimationWrappedEvenOdd(0.5s ease-in-out) { @include MakeAnimationWrappedEvenOdd(0.5s ease-in-out) {
0% { 0% {
} }

View File

@ -7,7 +7,8 @@
flex-direction: column; flex-direction: column;
align-items: flex-start; align-items: flex-start;
color: #333438; color: #333438;
// text-shadow: #{D(1px)} #{D(1px)} 0 rgba(0, 10, 20, 0.1); backdrop-filter: blur(D(2px));
padding: D(3px);
@include DarkThemeOverride { @include DarkThemeOverride {
color: #fff; color: #fff;

View File

@ -18,6 +18,7 @@
@include S(margin-bottom, 4px); @include S(margin-bottom, 4px);
color: #333438; color: #333438;
// text-shadow: #{D(1px)} #{D(1px)} 0 rgba(0, 10, 20, 0.2); // text-shadow: #{D(1px)} #{D(1px)} 0 rgba(0, 10, 20, 0.2);
filter: drop-shadow(#{D(1px)} #{D(1px)} 0 rgba(0, 10, 20, 0.2));
&.unpinable { &.unpinable {
> canvas { > canvas {
@ -33,10 +34,12 @@
grid-row: 1 / 3; grid-row: 1 / 3;
pointer-events: all; pointer-events: all;
transition: transform 0.1s ease-in-out; transition: transform 0.1s ease-in-out;
transform-origin: D(2px) center;
will-change: transform;
position: relative; position: relative;
z-index: 20; z-index: 20;
&:hover { &:hover {
transform: scale(2) translateX(#{D(5px)}); transform: scale(2);
z-index: 21; z-index: 21;
} }
} }

View File

@ -2,8 +2,8 @@
/* Forces an element to get rendered on its own layer, increasing /* Forces an element to get rendered on its own layer, increasing
the performance when animated. Use only transform and opacity in animations! */ the performance when animated. Use only transform and opacity in animations! */
@mixin FastAnimation { @mixin FastAnimation {
// will-change: transform, opacity; will-change: transform, opacity, filter;
transform: translateZ(0); // transform: translateZ(0);
backface-visibility: hidden; backface-visibility: hidden;
-webkit-backface-visibility: hidden; -webkit-backface-visibility: hidden;
} }

View File

@ -1,6 +1,23 @@
#state_AboutState { #state_AboutState {
> .container .content { > .container .content {
@include S(max-width, 600px);
@include PlainText; @include PlainText;
padding: 0;
background: transparent;
}
.head {
@include S(padding, 20px);
img {
display: block;
margin: 0 auto;
@include S(max-width, 200px);
}
}
.text {
@include S(margin, 10px);
} }
a { a {

View File

@ -1,5 +1,6 @@
#state_ChangelogState { #state_ChangelogState {
.content { .content {
@include S(max-width, 800px);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }

View File

@ -55,7 +55,7 @@
opacity: 0; opacity: 0;
display: none; display: none;
transform: translate(50%, 50%); transform: translate(50%, 50%);
filter: blur(10px); // filter: blur(10px);
$opacity: 0.2; $opacity: 0.2;
&.loaded { &.loaded {
@ -178,6 +178,10 @@
transform: translateX(50%) rotate(-7deg) scale(1.1); transform: translateX(50%) rotate(-7deg) scale(1.1);
} }
} }
@include DarkThemeOverride {
color: $colorBlueBright;
}
} }
} }
@ -201,33 +205,6 @@
flex-grow: 1; flex-grow: 1;
@include S(margin-bottom, 10px); @include S(margin-bottom, 10px);
} }
.contest {
flex-grow: 1;
background: rgb(32, 187, 166);
@include S(padding, 15px);
h3 {
@include Heading;
color: #fff;
font-weight: bold;
text-transform: uppercase;
@include S(margin-bottom, 5px);
}
p {
color: #fff;
@include Text;
strong {
font-weight: bold;
}
@include S(margin-bottom, 5px);
}
button {
background: #fff;
color: #333538;
}
}
} }
.mainContainer { .mainContainer {
@ -265,13 +242,15 @@
@include S(min-width, 130px); @include S(min-width, 130px);
@include S(padding, 15px, 20px); @include S(padding, 15px, 20px);
letter-spacing: 0.3em !important; letter-spacing: 0.3em !important;
@include IncreasedClickArea(0px);
font-weight: bold; font-weight: bold;
color: #fff; color: #fff;
background-color: $colorGreenBright; background-color: $colorGreenBright;
transition: transform 0.12s ease-in-out; transition: transform 0.12s ease-in-out, background-color 0.12s ease-in-out;
&:hover { &:hover {
transform: scale(1.02); background-color: darken($colorGreenBright, 4);
opacity: 1;
} }
&.continueButton { &.continueButton {
@ -281,9 +260,11 @@
.importButton { .importButton {
@include S(margin-top, 15px); @include S(margin-top, 15px);
@include IncreasedClickArea(0px);
} }
.newGameButton { .newGameButton {
@include IncreasedClickArea(0px);
@include S(margin-top, 15px); @include S(margin-top, 15px);
@include S(margin-left, 15px); @include S(margin-left, 15px);
} }
@ -306,8 +287,8 @@
display: grid; display: grid;
grid-template-columns: 1fr auto auto; grid-template-columns: 1fr auto auto;
grid-template-rows: auto auto; grid-template-rows: auto auto;
@include S(grid-column-gap, 5px); @include S(grid-column-gap, 4px);
@include S(grid-row-gap, 3px); @include S(grid-row-gap, 1px);
.playtime { .playtime {
grid-column: 1 / 2; grid-column: 1 / 2;
@ -325,12 +306,9 @@
button.resumeGame, button.resumeGame,
button.downloadGame, button.downloadGame,
button.deleteGame { button.deleteGame {
grid-column: 3 / 4;
grid-row: 1 / 3;
@include S(width, 30px);
@include S(height, 30px);
padding: 0; padding: 0;
align-self: center; align-self: center;
justify-self: center;
@include IncreasedClickArea(0px); @include IncreasedClickArea(0px);
background: #44484a uiResource("icons/play.png") center center / 40% no-repeat; background: #44484a uiResource("icons/play.png") center center / 40% no-repeat;
} }
@ -338,12 +316,13 @@
button.downloadGame { button.downloadGame {
grid-column: 2 / 3; grid-column: 2 / 3;
grid-row: 1 / 2; grid-row: 1 / 2;
background-color: $colorBlueBright;
background-image: uiResource("icons/download.png"); background-image: uiResource("icons/download.png");
@include S(width, 15px); @include S(width, 15px);
@include IncreasedClickArea(0px); @include IncreasedClickArea(0px);
@include S(height, 15px); @include S(height, 15px);
align-self: end;
background-size: 60%; background-size: 60%;
align-self: start;
} }
button.deleteGame { button.deleteGame {
@ -357,6 +336,14 @@
align-self: end; align-self: end;
background-size: 60%; background-size: 60%;
} }
button.resumeGame {
grid-column: 3 / 4;
grid-row: 1 / 3;
margin: 0;
@include S(width, 32px);
height: 100%;
}
} }
} }
} }
@ -370,7 +357,7 @@
grid-template-columns: auto auto auto 1fr; grid-template-columns: auto auto auto 1fr;
@include S(padding, 10px); @include S(padding, 10px);
box-sizing: border-box; box-sizing: border-box;
@include S(grid-gap, 5px); @include S(grid-gap, 4px);
.author { .author {
flex-grow: 1; flex-grow: 1;
@ -390,7 +377,7 @@
grid-template-columns: 1fr auto; grid-template-columns: 1fr auto;
justify-content: center; justify-content: center;
background: #fdfdfd; background: #fdfdfd uiResource("icons/link.png") top D(3px) right D(3px) / D(9px) no-repeat;
@include S(padding, 5px); @include S(padding, 5px);
@include S(padding-left, 10px); @include S(padding-left, 10px);
@include S(border-radius, $globalBorderRadius); @include S(border-radius, $globalBorderRadius);
@ -401,15 +388,14 @@
text-transform: uppercase; text-transform: uppercase;
color: #616266; color: #616266;
transition: all 0.12s ease-in-out; transition: background-color 0.12s ease-in-out;
transition-property: background-color, transform;
pointer-events: all; pointer-events: all;
@include S(width, 120px); @include S(width, 120px);
@include S(height, 60px); @include S(height, 60px);
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background-color: #fff; background-color: #f0f6ff;
} }
.thirdpartyLogo { .thirdpartyLogo {
@ -432,7 +418,7 @@
align-items: flex-start; align-items: flex-start;
justify-content: flex-start; justify-content: flex-start;
grid-template-rows: 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr;
@include S(grid-gap, 2px); @include S(grid-gap, 3px);
@include S(height, 60px); @include S(height, 60px);
> a { > a {
@ -441,7 +427,7 @@
height: 100%; height: 100%;
&:hover { &:hover {
background-color: #fff; background-color: #f0f6ff;
} }
@include SuperSmallText; @include SuperSmallText;
text-transform: uppercase; text-transform: uppercase;
@ -457,6 +443,9 @@
background-position: #{D(5px)} center; background-position: #{D(5px)} center;
background-size: #{D(12px)}; background-size: #{D(12px)};
background-repeat: no-repeat; background-repeat: no-repeat;
@include S(border-radius, $globalBorderRadius);
transition: background-color 0.12s ease-in-out;
&.redditLink { &.redditLink {
background-image: uiResource("main_menu/reddit.svg"); background-image: uiResource("main_menu/reddit.svg");

View File

@ -1,113 +1,188 @@
#state_SettingsState { #state_SettingsState {
.content { $colorCategoryButton: #eee;
.versionbar { $colorCategoryButtonSelected: #5f748b;
@include S(margin-top, 20px);
@include SuperSmallText; .container .content {
display: grid; display: flex;
align-items: center; overflow-y: scroll;
grid-template-columns: 1fr auto;
.buildVersion { .categoryContainer {
display: flex; width: 100%;
flex-direction: column;
color: #aaadaf; .category {
display: none;
&.active {
display: block;
}
.setting {
@include S(padding, 10px);
background: #eeeff5;
@include S(border-radius, $globalBorderRadius);
@include S(margin-bottom, 5px);
label {
text-transform: uppercase;
@include Text;
}
.desc {
@include S(margin-top, 5px);
@include SuperSmallText;
color: #aaadb2;
}
> .row {
display: grid;
align-items: center;
grid-template-columns: 1fr auto;
}
&.disabled {
// opacity: 0.3;
pointer-events: none;
* {
pointer-events: none !important;
cursor: default !important;
}
position: relative;
.standaloneOnlyHint {
@include PlainText;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: all;
display: flex;
align-items: center;
justify-content: center;
background: rgba(#fff, 0.5);
text-transform: uppercase;
color: $colorRedBright;
}
}
.value.enum {
background: #fff;
@include PlainText;
display: flex;
align-items: flex-start;
pointer-events: all;
cursor: pointer;
justify-content: center;
@include S(min-width, 100px);
@include S(border-radius, $globalBorderRadius);
@include S(padding, 4px);
@include S(padding-right, 15px);
background: #fff uiResource("icons/enum_selector.png") calc(100% - #{D(5px)})
calc(50% + #{D(1px)}) / #{D(15px)} no-repeat;
transition: background-color 0.12s ease-in-out;
&:hover {
background-color: #fafafa;
}
}
}
} }
} }
button.about { .sidebar {
background-color: $colorGreenBright; display: flex;
} flex-direction: column;
@include S(min-width, 210px);
@include S(max-width, 320px);
width: 30%;
height: 100%;
position: sticky;
top: 0;
@include S(margin-left, 20px);
@include S(margin-right, 32px);
.setting { .other {
@include S(padding, 10px); margin-top: auto;
background: #eeeff5;
@include S(border-radius, $globalBorderRadius);
@include S(margin-bottom, 5px);
label {
text-transform: uppercase;
@include Text;
} }
.desc { button {
@include S(margin-top, 5px); @include S(margin-top, 4px);
width: calc(100% - #{D(20px)});
text-align: start;
&::after {
content: unset;
}
}
button.categoryButton,
button.about {
background-color: $colorCategoryButton;
color: #777a7f;
&.active {
background-color: $colorCategoryButtonSelected;
color: #fff;
&:hover {
opacity: 1;
}
}
&.pressed {
transform: none !important;
}
}
.versionbar {
@include S(margin-top, 20px);
@include SuperSmallText; @include SuperSmallText;
color: #aaadb2;
}
> .row {
display: grid; display: grid;
align-items: center; align-items: center;
grid-template-columns: 1fr auto; grid-template-columns: 1fr auto;
} .buildVersion {
&.disabled {
// opacity: 0.3;
pointer-events: none;
* {
pointer-events: none !important;
cursor: default !important;
}
position: relative;
.standaloneOnlyHint {
@include PlainText;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: all;
display: flex; display: flex;
align-items: center; flex-direction: column;
justify-content: center; color: #aaadaf;
background: rgba(#fff, 0.5);
text-transform: uppercase;
color: $colorRedBright;
}
}
.value.enum {
background: #fff;
@include PlainText;
display: flex;
align-items: flex-start;
pointer-events: all;
cursor: pointer;
justify-content: center;
@include S(min-width, 100px);
@include S(border-radius, $globalBorderRadius);
@include S(padding, 4px);
@include S(padding-right, 15px);
background: #fff uiResource("icons/enum_selector.png") calc(100% - #{D(5px)})
calc(50% + #{D(1px)}) / #{D(15px)} no-repeat;
transition: background-color 0.12s ease-in-out;
&:hover {
background-color: #fafafa;
} }
} }
} }
} }
@include DarkThemeOverride { @include DarkThemeOverride {
.content { .container .content {
.setting { .sidebar {
background: darken($darkModeGameBackground, 10); button.categoryButton,
button.about {
background-color: #3f3f47;
.value.enum { &.active {
// dirty but works
filter: invert(0.85);
color: #222;
}
.value.checkbox {
background-color: #74767b;
&.checked {
background-color: $colorBlueBright; background-color: $colorBlueBright;
} }
} }
} }
.categoryContainer {
.category {
.setting {
background: darken($darkModeGameBackground, 10);
.value.enum {
// dirty but works
filter: invert(0.78) sepia(40%) hue-rotate(190deg);
color: #222;
}
.value.checkbox {
background-color: #74767b;
&.checked {
background-color: $colorBlueBright;
}
}
}
}
}
} }
} }
} }

View File

@ -1,24 +1,18 @@
.gameState.textualState { .gameState.textualState {
display: flex; display: grid;
flex-direction: column; grid-template-rows: auto 1fr;
justify-content: center; box-sizing: border-box;
align-items: center; @include S(padding, 32px);
$padding: 15px; height: 100vh;
.headerBar,
> .container .content {
@include S(width, 500px);
}
.headerBar { .headerBar {
display: flex; display: flex;
align-items: center;
justify-content: flex-start;
h1 { h1 {
display: flex; display: grid;
pointer-events: all; grid-template-columns: auto 1fr;
align-items: center; align-items: center;
pointer-events: all;
cursor: pointer; cursor: pointer;
@include SuperHeading; @include SuperHeading;
text-transform: uppercase; text-transform: uppercase;
@ -39,11 +33,17 @@
} }
> .container { > .container {
display: flex;
justify-content: center;
width: 100%;
overflow-y: auto;
> .content { > .content {
width: 100%;
background: #fff; background: #fff;
@include S(border-radius, $globalBorderRadius); @include S(border-radius, $globalBorderRadius);
@include S(padding, 10px); @include S(padding, 10px);
height: calc(80vh - #{D(60px)}); height: 100%;
overflow-y: auto; overflow-y: auto;
box-sizing: border-box; box-sizing: border-box;
pointer-events: all; pointer-events: all;

View File

@ -1,4 +1,4 @@
$globalBorderRadius: 0px; $globalBorderRadius: 2px;
// When to reduce control elements size for small devices // When to reduce control elements size for small devices
$layoutExpandMinWidth: 340px; $layoutExpandMinWidth: 340px;

View File

@ -385,7 +385,7 @@ export class Application {
} }
const scale = this.getEffectiveUiScale(); const scale = this.getEffectiveUiScale();
waitNextFrame().then(() => document.documentElement.style.setProperty("--ui-scale", scale)); waitNextFrame().then(() => document.documentElement.style.setProperty("--ui-scale", `${scale}`));
window.focus(); window.focus();
} }
} }

View File

@ -4,9 +4,9 @@ export const CHANGELOG = [
date: "unreleased", date: "unreleased",
entries: [ entries: [
"WIRES", "WIRES",
"Reworked menu UI design (by dengr1605)",
"Allow holding ALT in belt planner to reverse direction (by jakobhellermann)", "Allow holding ALT in belt planner to reverse direction (by jakobhellermann)",
"Clear cursor when trying to pipette the same building twice (by hexy)", "Clear cursor when trying to pipette the same building twice (by hexy)",
"Allow binding TAB (by swtw7466)",
"Added keybinding to close menus (by isaisstillalive / Sandwichs-del)", "Added keybinding to close menus (by isaisstillalive / Sandwichs-del)",
"Fix rare crash regarding the buildings toolbar (by isaisstillalive)", "Fix rare crash regarding the buildings toolbar (by isaisstillalive)",
"Fixed some phrases (by EnderDoom77)", "Fixed some phrases (by EnderDoom77)",
@ -25,7 +25,7 @@ export const CHANGELOG = [
version: "1.1.19", version: "1.1.19",
date: "02.07.2020", date: "02.07.2020",
entries: [ entries: [
"There are now notifications every 15 minutes in the demo version to buy the full version (For further details and the reason, check the #surveys channel in the discord)", "There are now notifications every 15 minutes in the demo version to buy the full version (For further details and the reason, check the #surveys channel in the Discord)",
"I'm still working on the wires update, I hope to release it mid july!", "I'm still working on the wires update, I hope to release it mid july!",
], ],
}, },
@ -152,7 +152,7 @@ export const CHANGELOG = [
version: "1.1.10", version: "1.1.10",
date: "12.06.2020", date: "12.06.2020",
entries: [ entries: [
"There are now linux builds on steam! Please report any issues in the discord!", "There are now linux builds on steam! Please report any issues in the Discord!",
"Steam cloud saves are now available!", "Steam cloud saves are now available!",
"Added and update more translations (Big thank you to all translators!)", "Added and update more translations (Big thank you to all translators!)",
"Prevent invalid connection if existing underground tunnel entrance exists (by jaysc)", "Prevent invalid connection if existing underground tunnel entrance exists (by jaysc)",
@ -222,7 +222,7 @@ export const CHANGELOG = [
entries: [ entries: [
"The official trailer is now ready! Check it out <a href='https://www.youtube.com/watch?v=KyorY1uIqiQ' target='_blank'>here</a>!", "The official trailer is now ready! Check it out <a href='https://www.youtube.com/watch?v=KyorY1uIqiQ' target='_blank'>here</a>!",
"The <a href='https://steam.shapez.io' target='_blank'>steam page</a> is now live!", "The <a href='https://steam.shapez.io' target='_blank'>steam page</a> is now live!",
"Experimental linux builds are now available! Please give me feedback on them in the discord", "Experimental linux builds are now available! Please give me feedback on them in the Discord",
"Allow hovering pinned shapes to enlarge them", "Allow hovering pinned shapes to enlarge them",
"Allow deselecting blueprints with right click and 'Q'", "Allow deselecting blueprints with right click and 'Q'",
"Move default key for deleting from 'X' to 'DEL'", "Move default key for deleting from 'X' to 'DEL'",

View File

@ -67,6 +67,7 @@ export const globalConfig = {
cutterQuad: 1 / 4, cutterQuad: 1 / 4,
rotater: 1 / 1, rotater: 1 / 1,
rotaterCCW: 1 / 1, rotaterCCW: 1 / 1,
rotaterFL: 1 / 1,
painter: 1 / 6, painter: 1 / 6,
painterDouble: 1 / 8, painterDouble: 1 / 8,
painterQuad: 1 / 8, painterQuad: 1 / 8,

View File

@ -158,7 +158,9 @@ export class AtlasSprite extends BaseSprite {
const scale = parameters.desiredAtlasScale; const scale = parameters.desiredAtlasScale;
const link = this.linksByResolution[scale]; const link = this.linksByResolution[scale];
assert(link, "Link not known: " + scale + " (having " + Object.keys(this.linksByResolution) + ")"); if (!link) {
assert(false, `Link not known: ${scale} (having ${Object.keys(this.linksByResolution)})`);
}
const scaleW = w / link.w; const scaleW = w / link.w;
const scaleH = h / link.h; const scaleH = h / link.h;

View File

@ -11,7 +11,7 @@ import { enumHubGoalRewards } from "../tutorial_goals";
import { enumItemType } from "../base_item"; import { enumItemType } from "../base_item";
/** @enum {string} */ /** @enum {string} */
export const enumRotaterVariants = { ccw: "ccw" }; export const enumRotaterVariants = { ccw: "ccw", fl: "fl" };
export class MetaRotaterBuilding extends MetaBuilding { export class MetaRotaterBuilding extends MetaBuilding {
constructor() { constructor() {
@ -28,12 +28,20 @@ export class MetaRotaterBuilding extends MetaBuilding {
* @returns {Array<[string, string]>} * @returns {Array<[string, string]>}
*/ */
getAdditionalStatistics(root, variant) { getAdditionalStatistics(root, variant) {
const speed = root.hubGoals.getProcessorBaseSpeed( switch (variant) {
variant === enumRotaterVariants.ccw case defaultBuildingVariant: {
? enumItemProcessorTypes.rotaterCCW const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.rotater);
: enumItemProcessorTypes.rotater return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
); }
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]]; case enumRotaterVariants.ccw: {
const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.rotaterCCW);
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
}
case enumRotaterVariants.fl: {
const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.rotaterFL);
return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]];
}
}
} }
/** /**
@ -41,10 +49,14 @@ export class MetaRotaterBuilding extends MetaBuilding {
* @param {GameRoot} root * @param {GameRoot} root
*/ */
getAvailableVariants(root) { getAvailableVariants(root) {
let variants = [defaultBuildingVariant];
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_rotater_ccw)) { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_rotater_ccw)) {
return [defaultBuildingVariant, enumRotaterVariants.ccw]; variants.push(enumRotaterVariants.ccw);
} }
return super.getAvailableVariants(root); if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_rotater_fl)) {
variants.push(enumRotaterVariants.fl);
}
return variants;
} }
/** /**
@ -100,6 +112,10 @@ export class MetaRotaterBuilding extends MetaBuilding {
entity.components.ItemProcessor.type = enumItemProcessorTypes.rotaterCCW; entity.components.ItemProcessor.type = enumItemProcessorTypes.rotaterCCW;
break; break;
} }
case enumRotaterVariants.fl: {
entity.components.ItemProcessor.type = enumItemProcessorTypes.rotaterFL;
break;
}
default: default:
assertAlways(false, "Unknown rotater variant: " + variant); assertAlways(false, "Unknown rotater variant: " + variant);
} }

View File

@ -11,6 +11,7 @@ export const enumItemProcessorTypes = {
cutterQuad: "cutterQuad", cutterQuad: "cutterQuad",
rotater: "rotater", rotater: "rotater",
rotaterCCW: "rotaterCCW", rotaterCCW: "rotaterCCW",
rotaterFL: "rotaterFL",
stacker: "stacker", stacker: "stacker",
trash: "trash", trash: "trash",
mixer: "mixer", mixer: "mixer",

View File

@ -431,6 +431,7 @@ export class HubGoals extends BasicSerializableObject {
case enumItemProcessorTypes.cutterQuad: case enumItemProcessorTypes.cutterQuad:
case enumItemProcessorTypes.rotater: case enumItemProcessorTypes.rotater:
case enumItemProcessorTypes.rotaterCCW: case enumItemProcessorTypes.rotaterCCW:
case enumItemProcessorTypes.rotaterFL:
case enumItemProcessorTypes.stacker: { case enumItemProcessorTypes.stacker: {
assert( assert(
globalConfig.buildingSpeeds[processorType], globalConfig.buildingSpeeds[processorType],

View File

@ -416,6 +416,14 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
) { ) {
continue checkVariant; continue checkVariant;
} }
if (metaBuilding.id === "wire" && entity.layer !== enumLayer.wires) {
continue checkVariant;
}
if (metaBuilding.id === "belt" && entity.layer !== enumLayer.regular) {
continue checkVariant;
}
matches.push({ metaBuilding, variant }); matches.push({ metaBuilding, variant });
} }
} }

View File

@ -15,7 +15,9 @@ export class HUDEntityDebugger extends BaseHUDPart {
` `
); );
/** @type {HTMLElement} */
this.mousePosElem = this.element.querySelector(".mousePos"); this.mousePosElem = this.element.querySelector(".mousePos");
/** @type {HTMLElement} */
this.chunkPosElem = this.element.querySelector(".chunkPos"); this.chunkPosElem = this.element.querySelector(".chunkPos");
this.entityInfoElem = this.element.querySelector(".entityInfo"); this.entityInfoElem = this.element.querySelector(".entityInfo");
} }

View File

@ -105,7 +105,7 @@ export class HUDSandboxController extends BaseHUDPart {
this.root.hubGoals.upgradeImprovements[id] = improvement; this.root.hubGoals.upgradeImprovements[id] = improvement;
this.root.signals.upgradePurchased.dispatch(id); this.root.signals.upgradePurchased.dispatch(id);
this.root.hud.signals.notification.dispatch( this.root.hud.signals.notification.dispatch(
"Upgrade '" + id + "' is now at level " + this.root.hubGoals.upgradeLevels[id], "Upgrade '" + id + "' is now at tier " + (this.root.hubGoals.upgradeLevels[id] + 1),
enumNotificationType.upgrade enumNotificationType.upgrade
); );
} }

View File

@ -23,7 +23,7 @@ export class HUDSettingsMenu extends BaseHUDPart {
<strong>${T.ingame.settingsMenu.beltsPlaced}</strong><span class="beltsPlaced"></span> <strong>${T.ingame.settingsMenu.beltsPlaced}</strong><span class="beltsPlaced"></span>
<strong>${T.ingame.settingsMenu.buildingsPlaced}</strong><span class="buildingsPlaced"></span> <strong>${T.ingame.settingsMenu.buildingsPlaced}</strong><span class="buildingsPlaced"></span>
<strong>${T.ingame.settingsMenu.playtime}</strong><span class="playtime"></span> <strong>${T.ingame.settingsMenu.playtime}</strong><span class="playtime"></span>
` `
); );
@ -106,16 +106,22 @@ export class HUDSettingsMenu extends BaseHUDPart {
this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever); this.root.app.inputMgr.makeSureAttachedAndOnTop(this.inputReciever);
const totalMinutesPlayed = Math.ceil(this.root.time.now() / 60); const totalMinutesPlayed = Math.ceil(this.root.time.now() / 60);
this.statsElement.querySelector(".playtime").innerText = T.global.time.xMinutes.replace(
"<x>",
"" + totalMinutesPlayed
);
this.statsElement.querySelector(".buildingsPlaced").innerText = formatBigNumberFull( /** @type {HTMLElement} */
const playtimeElement = this.statsElement.querySelector(".playtime");
/** @type {HTMLElement} */
const buildingsPlacedElement = this.statsElement.querySelector(".buildingsPlaced");
/** @type {HTMLElement} */
const beltsPlacedElement = this.statsElement.querySelector(".beltsPlaced");
playtimeElement.innerText = T.global.time.xMinutes.replace("<x>", `${totalMinutesPlayed}`);
buildingsPlacedElement.innerText = formatBigNumberFull(
this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent).length - this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent).length -
this.root.entityMgr.getAllWithComponent(BeltComponent).length this.root.entityMgr.getAllWithComponent(BeltComponent).length
); );
this.statsElement.querySelector(".beltsPlaced").innerText = formatBigNumberFull(
beltsPlacedElement.innerText = formatBigNumberFull(
this.root.entityMgr.getAllWithComponent(BeltComponent).length this.root.entityMgr.getAllWithComponent(BeltComponent).length
); );
} }

View File

@ -183,6 +183,11 @@ export class ShapeDefinition extends BasicSerializableObject {
*/ */
static isValidShortKeyInternal(key) { static isValidShortKeyInternal(key) {
const sourceLayers = key.split(":"); const sourceLayers = key.split(":");
if (sourceLayers.length === 0 || sourceLayers.length > 4) {
return false;
}
let layers = []; let layers = [];
for (let i = 0; i < sourceLayers.length; ++i) { for (let i = 0; i < sourceLayers.length; ++i) {
const text = sourceLayers[i]; const text = sourceLayers[i];
@ -221,15 +226,12 @@ export class ShapeDefinition extends BasicSerializableObject {
} }
} }
if (!anyFilled) { if (!anyFilled && i === sourceLayers.length - 1) {
// Empty layer // Topmost layer isn't allowed being empty
return false; return false;
} }
layers.push(quads);
}
if (layers.length === 0 || layers.length > 4) { layers.push(quads);
return false;
} }
return true; return true;
@ -447,23 +449,23 @@ export class ShapeDefinition extends BasicSerializableObject {
*/ */
cloneFilteredByQuadrants(includeQuadrants) { cloneFilteredByQuadrants(includeQuadrants) {
const newLayers = this.internalCloneLayers(); const newLayers = this.internalCloneLayers();
let lastNonEmptyLayer = -1;
for (let layerIndex = 0; layerIndex < newLayers.length; ++layerIndex) { for (let layerIndex = 0; layerIndex < newLayers.length; ++layerIndex) {
const quadrants = newLayers[layerIndex]; const quadrants = newLayers[layerIndex];
let anyContents = false;
for (let quadrantIndex = 0; quadrantIndex < 4; ++quadrantIndex) { for (let quadrantIndex = 0; quadrantIndex < 4; ++quadrantIndex) {
if (includeQuadrants.indexOf(quadrantIndex) < 0) { if (includeQuadrants.indexOf(quadrantIndex) < 0) {
quadrants[quadrantIndex] = null; quadrants[quadrantIndex] = null;
} else if (quadrants[quadrantIndex]) { } else if (quadrants[quadrantIndex]) {
anyContents = true; lastNonEmptyLayer = layerIndex;
} }
} }
// Check if the layer is entirely empty
if (!anyContents) {
newLayers.splice(layerIndex, 1);
layerIndex -= 1;
}
} }
// Remove top most empty layers which aren't needed anymore
if (lastNonEmptyLayer !== newLayers.length - 1) {
newLayers.splice(lastNonEmptyLayer + 1);
}
return new ShapeDefinition({ layers: newLayers }); return new ShapeDefinition({ layers: newLayers });
} }
@ -495,62 +497,86 @@ export class ShapeDefinition extends BasicSerializableObject {
return new ShapeDefinition({ layers: newLayers }); return new ShapeDefinition({ layers: newLayers });
} }
/**
* Returns a definition which was rotated 180 degrees (flipped)
* @returns {ShapeDefinition}
*/
cloneRotateFL() {
const newLayers = this.internalCloneLayers();
for (let layerIndex = 0; layerIndex < newLayers.length; ++layerIndex) {
const quadrants = newLayers[layerIndex];
quadrants.push(quadrants.shift(), quadrants.shift());
}
return new ShapeDefinition({ layers: newLayers });
}
/** /**
* Stacks the given shape definition on top. * Stacks the given shape definition on top.
* @param {ShapeDefinition} definition * @param {ShapeDefinition} definition
*/ */
cloneAndStackWith(definition) { cloneAndStackWith(definition) {
const newLayers = this.internalCloneLayers();
if (this.isEntirelyEmpty() || definition.isEntirelyEmpty()) { if (this.isEntirelyEmpty() || definition.isEntirelyEmpty()) {
assert(false, "Can not stack entirely empty definition"); assert(false, "Can not stack entirely empty definition");
} }
// Put layer for layer on top const bottomShapeLayers = this.layers;
for (let i = 0; i < definition.layers.length; ++i) { const bottomShapeHighestLayerByQuad = [-1, -1, -1, -1];
const layerToAdd = definition.layers[i];
// On which layer we can merge this upper layer for (let layer = bottomShapeLayers.length - 1; layer >= 0; --layer) {
let mergeOnLayerIndex = null; const shapeLayer = bottomShapeLayers[layer];
for (let quad = 0; quad < 4; ++quad) {
// Go from top to bottom and check if there is anything intercepting it const shapeQuad = shapeLayer[quad];
for (let k = newLayers.length - 1; k >= 0; --k) { if (shapeQuad !== null && bottomShapeHighestLayerByQuad[quad] < layer) {
const lowerLayer = newLayers[k]; bottomShapeHighestLayerByQuad[quad] = layer;
let canMerge = true;
for (let quadrantIndex = 0; quadrantIndex < 4; ++quadrantIndex) {
const upperItem = layerToAdd[quadrantIndex];
const lowerItem = lowerLayer[quadrantIndex];
if (upperItem && lowerItem) {
// so, we can't merge it because two items conflict
canMerge = false;
break;
}
} }
// If we can merge it, store it - since we go from top to bottom
// we can simply override it
if (canMerge) {
mergeOnLayerIndex = k;
}
}
if (mergeOnLayerIndex !== null) {
// Simply merge using an OR mask
for (let quadrantIndex = 0; quadrantIndex < 4; ++quadrantIndex) {
newLayers[mergeOnLayerIndex][quadrantIndex] =
newLayers[mergeOnLayerIndex][quadrantIndex] || layerToAdd[quadrantIndex];
}
} else {
// Add new layer
newLayers.push(layerToAdd);
} }
} }
newLayers.splice(4); const topShapeLayers = definition.layers;
const topShapeLowestLayerByQuad = [4, 4, 4, 4];
return new ShapeDefinition({ layers: newLayers }); for (let layer = 0; layer < topShapeLayers.length; ++layer) {
const shapeLayer = topShapeLayers[layer];
for (let quad = 0; quad < 4; ++quad) {
const shapeQuad = shapeLayer[quad];
if (shapeQuad !== null && topShapeLowestLayerByQuad[quad] > layer) {
topShapeLowestLayerByQuad[quad] = layer;
}
}
}
/**
* We want to find the number `layerToMergeAt` such that when the top shape is placed at that
* layer, the smallest gap between shapes is only 1. Instead of doing a guess-and-check method to
* find the appropriate layer, we just calculate all the gaps assuming a merge at layer 0, even
* though they go negative, and calculating the number to add to it so the minimum gap is 1 (ends
* up being 1 - minimum).
*/
const gapsBetweenShapes = [];
for (let quad = 0; quad < 4; ++quad) {
gapsBetweenShapes.push(topShapeLowestLayerByQuad[quad] - bottomShapeHighestLayerByQuad[quad]);
}
const smallestGapBetweenShapes = Math.min(...gapsBetweenShapes);
// Can't merge at a layer lower than 0
const layerToMergeAt = Math.max(1 - smallestGapBetweenShapes, 0);
const mergedLayers = this.internalCloneLayers();
for (let layer = mergedLayers.length; layer < layerToMergeAt + topShapeLayers.length; ++layer) {
mergedLayers.push([null, null, null, null]);
}
for (let layer = 0; layer < topShapeLayers.length; ++layer) {
const layerMergingAt = layerToMergeAt + layer;
const bottomShapeLayer = mergedLayers[layerMergingAt];
const topShapeLayer = topShapeLayers[layer];
for (let quad = 0; quad < 4; quad++) {
bottomShapeLayer[quad] = bottomShapeLayer[quad] || topShapeLayer[quad];
}
}
mergedLayers.splice(4);
return new ShapeDefinition({ layers: mergedLayers });
} }
/** /**

View File

@ -127,6 +127,24 @@ export class ShapeDefinitionManager extends BasicSerializableObject {
)); ));
} }
/**
* Generates a definition for rotating a shape counter clockwise
* @param {ShapeDefinition} definition
* @returns {ShapeDefinition}
*/
shapeActionRotateFL(definition) {
const key = "rotate-fl:" + definition.getHash();
if (this.operationCache[key]) {
return /** @type {ShapeDefinition} */ (this.operationCache[key]);
}
const rotated = definition.cloneRotateFL();
return /** @type {ShapeDefinition} */ (this.operationCache[key] = this.registerOrReturnHandle(
rotated
));
}
/** /**
* Generates a definition for stacking the upper definition onto the lower one * Generates a definition for stacking the upper definition onto the lower one
* @param {ShapeDefinition} lowerDefinition * @param {ShapeDefinition} lowerDefinition

View File

@ -185,7 +185,7 @@ export class ItemProcessorSystem extends GameSystemWithFilter {
break; break;
} }
// ROTATER ( CCW) // ROTATER (CCW)
case enumItemProcessorTypes.rotaterCCW: { case enumItemProcessorTypes.rotaterCCW: {
const inputItem = /** @type {ShapeItem} */ (items[0].item); const inputItem = /** @type {ShapeItem} */ (items[0].item);
assert(inputItem instanceof ShapeItem, "Input for rotation is not a shape"); assert(inputItem instanceof ShapeItem, "Input for rotation is not a shape");
@ -198,6 +198,19 @@ export class ItemProcessorSystem extends GameSystemWithFilter {
break; break;
} }
// ROTATER (FL)
case enumItemProcessorTypes.rotaterFL: {
const inputItem = /** @type {ShapeItem} */ (items[0].item);
assert(inputItem instanceof ShapeItem, "Input for rotation is not a shape");
const inputDefinition = inputItem.definition;
const rotatedDefinition = this.root.shapeDefinitionMgr.shapeActionRotateFL(inputDefinition);
outItems.push({
item: new ShapeItem(rotatedDefinition),
});
break;
}
// STACKER // STACKER
case enumItemProcessorTypes.stacker: { case enumItemProcessorTypes.stacker: {

View File

@ -15,6 +15,7 @@ export const enumHubGoalRewards = {
reward_tunnel: "reward_tunnel", reward_tunnel: "reward_tunnel",
reward_rotater_ccw: "reward_rotater_ccw", reward_rotater_ccw: "reward_rotater_ccw",
reward_rotater_fl: "reward_rotater_fl",
reward_miner_chainable: "reward_miner_chainable", reward_miner_chainable: "reward_miner_chainable",
reward_underground_belt_tier_2: "reward_underground_belt_tier_2", reward_underground_belt_tier_2: "reward_underground_belt_tier_2",
reward_splitter_compact: "reward_splitter_compact", reward_splitter_compact: "reward_splitter_compact",

View File

@ -33,6 +33,7 @@ export const enumHubGoalRewardsToContentUnlocked = {
[enumHubGoalRewards.reward_tunnel]: typed([[MetaUndergroundBeltBuilding, defaultBuildingVariant]]), [enumHubGoalRewards.reward_tunnel]: typed([[MetaUndergroundBeltBuilding, defaultBuildingVariant]]),
[enumHubGoalRewards.reward_rotater_ccw]: typed([[MetaRotaterBuilding, enumRotaterVariants.ccw]]), [enumHubGoalRewards.reward_rotater_ccw]: typed([[MetaRotaterBuilding, enumRotaterVariants.ccw]]),
[enumHubGoalRewards.reward_rotater_fl]: typed([[MetaRotaterBuilding, enumRotaterVariants.fl]]),
[enumHubGoalRewards.reward_miner_chainable]: typed([[MetaMinerBuilding, enumMinerVariants.chainable]]), [enumHubGoalRewards.reward_miner_chainable]: typed([[MetaMinerBuilding, enumMinerVariants.chainable]]),
[enumHubGoalRewards.reward_underground_belt_tier_2]: typed([ [enumHubGoalRewards.reward_underground_belt_tier_2]: typed([
[MetaUndergroundBeltBuilding, enumUndergroundBeltVariants.tier2], [MetaUndergroundBeltBuilding, enumUndergroundBeltVariants.tier2],

12
src/js/globals.d.ts vendored
View File

@ -36,11 +36,6 @@ declare interface CanvasRenderingContext2D {
webkitImageSmoothingEnabled: boolean; webkitImageSmoothingEnabled: boolean;
} }
declare interface HTMLCanvasElement {
opaque: boolean;
webkitOpaque: boolean;
}
// Just for compatibility with the shared code // Just for compatibility with the shared code
declare interface Logger { declare interface Logger {
log(...args); log(...args);
@ -127,13 +122,6 @@ declare interface NodeRequire {
context(src: string, flag: boolean, regexp: RegExp): WebpackContext; context(src: string, flag: boolean, regexp: RegExp): WebpackContext;
} }
// HTML Element
declare interface Element {
style: any;
innerText: string;
innerHTML: string;
}
declare interface Object { declare interface Object {
entries(obj: object): Array<[string, any]>; entries(obj: object): Array<[string, any]>;
} }

View File

@ -81,6 +81,13 @@ export const LANGUAGES = {
region: "", region: "",
}, },
"tr": {
name: "Türkçe",
data: require("./built-temp/base-tr.json"),
code: "tr",
region: "",
},
"zh-CN": { "zh-CN": {
// simplified // simplified
name: "中文简体", name: "中文简体",

View File

@ -102,7 +102,10 @@ export class AdinplayAdProvider extends AdProviderInterface {
// Add the player // Add the player
const videoElement = this.adContainerMainElement.querySelector(".videoInner"); const videoElement = this.adContainerMainElement.querySelector(".videoInner");
this.adContainerMainElement.querySelector(".adInner").style.maxWidth = w + "px"; /** @type {HTMLElement} */
const adInnerElement = this.adContainerMainElement.querySelector(".adInner");
adInnerElement.style.maxWidth = w + "px";
const self = this; const self = this;
window.aiptag.cmd.player.push(function () { window.aiptag.cmd.player.push(function () {

View File

@ -95,6 +95,7 @@ export class PlatformWrapperImplBrowser extends PlatformWrapperInterface {
request = window.indexedDB.open("indexeddb_feature_detection", 1); request = window.indexedDB.open("indexeddb_feature_detection", 1);
} catch (ex) { } catch (ex) {
logger.warn("Error while opening indexed db:", ex); logger.warn("Error while opening indexed db:", ex);
this.app.storage = new StorageImplBrowser(this.app);
resolve(); resolve();
return; return;
} }

View File

@ -13,8 +13,14 @@ import { LANGUAGES } from "../languages";
const logger = createLogger("application_settings"); const logger = createLogger("application_settings");
const categoryGame = "game"; /**
const categoryApp = "app"; * @enum {string}
*/
export const enumCategories = {
general: "general",
userInterface: "userInterface",
advanced: "advanced",
};
export const uiScales = [ export const uiScales = [
{ {
@ -122,7 +128,7 @@ export const allApplicationSettings = [
options: Object.keys(LANGUAGES), options: Object.keys(LANGUAGES),
valueGetter: key => key, valueGetter: key => key,
textGetter: key => LANGUAGES[key].name, textGetter: key => LANGUAGES[key].name,
category: categoryApp, category: enumCategories.general,
restartRequired: true, restartRequired: true,
changeCb: (app, id) => null, changeCb: (app, id) => null,
magicValue: "auto-detect", magicValue: "auto-detect",
@ -132,7 +138,7 @@ export const allApplicationSettings = [
options: uiScales.sort((a, b) => a.size - b.size), options: uiScales.sort((a, b) => a.size - b.size),
valueGetter: scale => scale.id, valueGetter: scale => scale.id,
textGetter: scale => T.settings.labels.uiScale.scales[scale.id], textGetter: scale => T.settings.labels.uiScale.scales[scale.id],
category: categoryApp, category: enumCategories.userInterface,
restartRequired: false, restartRequired: false,
changeCb: changeCb:
/** /**
@ -143,7 +149,7 @@ export const allApplicationSettings = [
new BoolSetting( new BoolSetting(
"fullscreen", "fullscreen",
categoryApp, enumCategories.general,
/** /**
* @param {Application} app * @param {Application} app
*/ */
@ -157,7 +163,7 @@ export const allApplicationSettings = [
new BoolSetting( new BoolSetting(
"soundsMuted", "soundsMuted",
categoryApp, enumCategories.general,
/** /**
* @param {Application} app * @param {Application} app
*/ */
@ -165,7 +171,7 @@ export const allApplicationSettings = [
), ),
new BoolSetting( new BoolSetting(
"musicMuted", "musicMuted",
categoryApp, enumCategories.general,
/** /**
* @param {Application} app * @param {Application} app
*/ */
@ -174,7 +180,7 @@ export const allApplicationSettings = [
new BoolSetting( new BoolSetting(
"enableColorBlindHelper", "enableColorBlindHelper",
categoryApp, enumCategories.general,
/** /**
* @param {Application} app * @param {Application} app
*/ */
@ -182,13 +188,13 @@ export const allApplicationSettings = [
), ),
// GAME // GAME
new BoolSetting("offerHints", categoryGame, (app, value) => {}), new BoolSetting("offerHints", enumCategories.userInterface, (app, value) => {}),
new EnumSetting("theme", { new EnumSetting("theme", {
options: Object.keys(THEMES), options: Object.keys(THEMES),
valueGetter: theme => theme, valueGetter: theme => theme,
textGetter: theme => T.settings.labels.theme.themes[theme], textGetter: theme => T.settings.labels.theme.themes[theme],
category: categoryGame, category: enumCategories.userInterface,
restartRequired: false, restartRequired: false,
changeCb: changeCb:
/** /**
@ -205,7 +211,7 @@ export const allApplicationSettings = [
options: autosaveIntervals, options: autosaveIntervals,
valueGetter: interval => interval.id, valueGetter: interval => interval.id,
textGetter: interval => T.settings.labels.autosaveInterval.intervals[interval.id], textGetter: interval => T.settings.labels.autosaveInterval.intervals[interval.id],
category: categoryGame, category: enumCategories.advanced,
restartRequired: false, restartRequired: false,
changeCb: changeCb:
/** /**
@ -218,7 +224,7 @@ export const allApplicationSettings = [
options: ["60", "100", "120", "144", "165", "250", G_IS_DEV ? "10" : "500"], options: ["60", "100", "120", "144", "165", "250", G_IS_DEV ? "10" : "500"],
valueGetter: rate => rate, valueGetter: rate => rate,
textGetter: rate => rate + " Hz", textGetter: rate => rate + " Hz",
category: categoryGame, category: enumCategories.advanced,
restartRequired: false, restartRequired: false,
changeCb: (app, id) => {}, changeCb: (app, id) => {},
enabled: !IS_DEMO, enabled: !IS_DEMO,
@ -228,7 +234,7 @@ export const allApplicationSettings = [
options: scrollWheelSensitivities.sort((a, b) => a.scale - b.scale), options: scrollWheelSensitivities.sort((a, b) => a.scale - b.scale),
valueGetter: scale => scale.id, valueGetter: scale => scale.id,
textGetter: scale => T.settings.labels.scrollWheelSensitivity.sensitivity[scale.id], textGetter: scale => T.settings.labels.scrollWheelSensitivity.sensitivity[scale.id],
category: categoryGame, category: enumCategories.advanced,
restartRequired: false, restartRequired: false,
changeCb: changeCb:
/** /**
@ -241,17 +247,17 @@ export const allApplicationSettings = [
options: movementSpeeds.sort((a, b) => a.multiplier - b.multiplier), options: movementSpeeds.sort((a, b) => a.multiplier - b.multiplier),
valueGetter: multiplier => multiplier.id, valueGetter: multiplier => multiplier.id,
textGetter: multiplier => T.settings.labels.movementSpeed.speeds[multiplier.id], textGetter: multiplier => T.settings.labels.movementSpeed.speeds[multiplier.id],
category: categoryGame, category: enumCategories.advanced,
restartRequired: false, restartRequired: false,
changeCb: (app, id) => {}, changeCb: (app, id) => {},
}), }),
new BoolSetting("alwaysMultiplace", categoryGame, (app, value) => {}), new BoolSetting("alwaysMultiplace", enumCategories.advanced, (app, value) => {}),
new BoolSetting("enableTunnelSmartplace", categoryGame, (app, value) => {}), new BoolSetting("enableTunnelSmartplace", enumCategories.advanced, (app, value) => {}),
new BoolSetting("vignette", categoryGame, (app, value) => {}), new BoolSetting("vignette", enumCategories.userInterface, (app, value) => {}),
new BoolSetting("compactBuildingInfo", categoryGame, (app, value) => {}), new BoolSetting("compactBuildingInfo", enumCategories.userInterface, (app, value) => {}),
new BoolSetting("disableCutDeleteWarnings", categoryGame, (app, value) => {}), new BoolSetting("disableCutDeleteWarnings", enumCategories.advanced, (app, value) => {}),
new BoolSetting("rotationByBuilding", categoryGame, (app, value) => {}), new BoolSetting("rotationByBuilding", enumCategories.advanced, (app, value) => {}),
]; ];
export function getApplicationSettingById(id) { export function getApplicationSettingById(id) {

View File

@ -40,7 +40,7 @@ export class BaseSetting {
/** /**
* @param {Application} app * @param {Application} app
* @param {Element} element * @param {HTMLElement} element
* @param {any} dialogs * @param {any} dialogs
*/ */
bind(app, element, dialogs) { bind(app, element, dialogs) {
@ -188,7 +188,7 @@ export class BoolSetting extends BaseSetting {
return ` return `
<div class="setting cardbox ${this.enabled ? "enabled" : "disabled"}"> <div class="setting cardbox ${this.enabled ? "enabled" : "disabled"}">
${this.enabled ? "" : `<span class="standaloneOnlyHint">${T.demo.settingNotAvailable}</span>`} ${this.enabled ? "" : `<span class="standaloneOnlyHint">${T.demo.settingNotAvailable}</span>`}
<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 checkbox checked" data-setting="${this.id}"> <div class="value checkbox checked" data-setting="${this.id}">

View File

@ -1,9 +1,7 @@
import { TextualGameState } from "../core/textual_game_state"; import { TextualGameState } from "../core/textual_game_state";
import { SOUNDS } from "../platform/sound";
import { T } from "../translations"; import { T } from "../translations";
import { KEYMAPPINGS, getStringForKeyCode } from "../game/key_action_mapper";
import { Dialog } from "../core/modal_dialog_elements";
import { THIRDPARTY_URLS } from "../core/config"; import { THIRDPARTY_URLS } from "../core/config";
import { cachebust } from "../core/cachebust";
export class AboutState extends TextualGameState { export class AboutState extends TextualGameState {
constructor() { constructor() {
@ -15,9 +13,16 @@ export class AboutState extends TextualGameState {
} }
getMainContentHTML() { getMainContentHTML() {
return T.about.body return `
.replace("<githublink>", THIRDPARTY_URLS.github) <div class="head">
.replace("<discordlink>", THIRDPARTY_URLS.discord); <img src="${cachebust("res/logo.png")}" alt="shapez.io Logo">
</div>
<div class="text">
${T.about.body
.replace("<githublink>", THIRDPARTY_URLS.github)
.replace("<discordlink>", THIRDPARTY_URLS.discord)}
</div>
`;
} }
onEnter() { onEnter() {

View File

@ -46,7 +46,7 @@ export class MainMenuState extends GameState {
: "" : ""
} }
</div> </div>
<video autoplay muted loop class="fullscreenBackgroundVideo"> <video autoplay muted loop class="fullscreenBackgroundVideo">
<source src="${cachebust("res/bg_render.webm")}" type="video/webm"> <source src="${cachebust("res/bg_render.webm")}" type="video/webm">
</video> </video>
@ -92,10 +92,10 @@ export class MainMenuState extends GameState {
<a class="redditLink">${T.mainMenu.subreddit}</a> <a class="redditLink">${T.mainMenu.subreddit}</a>
<a class="changelog">${T.changelog.title}</a> <a class="changelog">${T.changelog.title}</a>
<a class="helpTranslate">${T.mainMenu.helpTranslate}</a> <a class="helpTranslate">${T.mainMenu.helpTranslate}</a>
</div> </div>
<div class="author">${T.mainMenu.madeBy.replace( <div class="author">${T.mainMenu.madeBy.replace(
"<author-link>", "<author-link>",
'<a class="producerLink" target="_blank">Tobias Springer</a>' '<a class="producerLink" target="_blank">Tobias Springer</a>'
@ -218,11 +218,6 @@ export class MainMenuState extends GameState {
this.trackClicks(qs(".languageChoose"), this.onLanguageChooseClicked); this.trackClicks(qs(".languageChoose"), this.onLanguageChooseClicked);
this.trackClicks(qs(".helpTranslate"), this.onTranslationHelpLinkClicked); this.trackClicks(qs(".helpTranslate"), this.onTranslationHelpLinkClicked);
const contestButton = qs(".participateContest");
if (contestButton) {
this.trackClicks(contestButton, this.onContestClicked);
}
if (G_IS_STANDALONE) { if (G_IS_STANDALONE) {
this.trackClicks(qs(".exitAppButton"), this.onExitAppButtonClicked); this.trackClicks(qs(".exitAppButton"), this.onExitAppButtonClicked);
} }
@ -312,15 +307,6 @@ export class MainMenuState extends GameState {
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.reddit); this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.reddit);
} }
onContestClicked() {
this.app.analytics.trackUiClick("contest_click");
this.dialogs.showInfo(
T.mainMenu.contests.contest_01_03062020.title,
T.mainMenu.contests.contest_01_03062020.longDesc
);
}
onLanguageChooseClicked() { onLanguageChooseClicked() {
this.app.analytics.trackUiClick("choose_language"); this.app.analytics.trackUiClick("choose_language");
const setting = /** @type {EnumSetting} */ (getApplicationSettingById("language")); const setting = /** @type {EnumSetting} */ (getApplicationSettingById("language"));

View File

@ -37,7 +37,7 @@ export class PreloadState extends GameState {
return false; return false;
} }
onEnter(payload) { onEnter() {
this.htmlElement.classList.add("prefab_LoadingState"); this.htmlElement.classList.add("prefab_LoadingState");
const elementsToRemove = ["#loadingPreload", "#fontPreload"]; const elementsToRemove = ["#loadingPreload", "#fontPreload"];
@ -52,9 +52,13 @@ export class PreloadState extends GameState {
const dialogsElement = document.body.querySelector(".modalDialogParent"); const dialogsElement = document.body.querySelector(".modalDialogParent");
this.dialogs.initializeToElement(dialogsElement); this.dialogs.initializeToElement(dialogsElement);
/** @type {HTMLElement} */
this.statusText = this.htmlElement.querySelector(".loadingStatus > .desc"); this.statusText = this.htmlElement.querySelector(".loadingStatus > .desc");
/** @type {HTMLElement} */
this.statusBar = this.htmlElement.querySelector(".loadingStatus > .bar > .inner"); this.statusBar = this.htmlElement.querySelector(".loadingStatus > .bar > .inner");
/** @type {HTMLElement} */
this.statusBarText = this.htmlElement.querySelector(".loadingStatus > .bar > .status"); this.statusBarText = this.htmlElement.querySelector(".loadingStatus > .bar > .status");
this.currentStatus = "booting"; this.currentStatus = "booting";
this.currentIndex = 0; this.currentIndex = 0;
@ -251,12 +255,12 @@ export class PreloadState extends GameState {
${this.currentStatus} failed:<br/> ${this.currentStatus} failed:<br/>
${text} ${text}
</div> </div>
<div class="supportHelp"> <div class="supportHelp">
Please send me an email with steps to reproduce and what you did before this happened: Please send me an email with steps to reproduce and what you did before this happened:
<br /><a class="email" href="mailto:${email}?subject=App%20does%20not%20launch">${email}</a> <br /><a class="email" href="mailto:${email}?subject=App%20does%20not%20launch">${email}</a>
</div> </div>
<div class="lower"> <div class="lower">
<button class="resetApp styledButton">Reset App</button> <button class="resetApp styledButton">Reset App</button>
<i>Build ${G_BUILD_VERSION} @ ${G_BUILD_COMMIT_HASH}</i> <i>Build ${G_BUILD_VERSION} @ ${G_BUILD_COMMIT_HASH}</i>

View File

@ -1,6 +1,6 @@
import { TextualGameState } from "../core/textual_game_state"; import { TextualGameState } from "../core/textual_game_state";
import { formatSecondsToTimeAgo } from "../core/utils"; import { formatSecondsToTimeAgo } from "../core/utils";
import { allApplicationSettings } from "../profile/application_settings"; import { allApplicationSettings, enumCategories } from "../profile/application_settings";
import { T } from "../translations"; import { T } from "../translations";
export class SettingsState extends TextualGameState { export class SettingsState extends TextualGameState {
@ -15,50 +15,65 @@ export class SettingsState extends TextualGameState {
getMainContentHTML() { getMainContentHTML() {
return ` return `
<div class="upperLinks"> <div class="sidebar">
${this.getCategoryButtonsHtml()}
${ ${
this.app.platformWrapper.getSupportsKeyboard() this.app.platformWrapper.getSupportsKeyboard()
? ` ? `
<button class="styledButton editKeybindings">${T.keybindings.title}</button> <button class="styledButton categoryButton editKeybindings">
` ${T.keybindings.title}
</button>`
: "" : ""
} }
<button class="styledButton about">${T.about.title}</button>
</div> <div class="other">
<button class="styledButton about">${T.about.title}</button>
<div class="versionbar">
${this.getSettingsHtml()} <div class="buildVersion">${T.global.loading} ...</div>
<div class="versionbar"> </div>
<div class="buildVersion">${T.global.loading} ...</div>
</div> </div>
</div>
<div class="categoryContainer">
${this.getSettingsHtml()}
</div>
`; `;
} }
getCategoryButtonsHtml() {
return Object.keys(enumCategories)
.map(key => enumCategories[key])
.map(
category =>
`
<button class="styledButton categoryButton" data-category-btn="${category}">
${T.settings.categories[category]}
</button>
`
)
.join("");
}
getSettingsHtml() { getSettingsHtml() {
let lastCategory = null; const categoriesHTML = {};
let html = "";
Object.keys(enumCategories).forEach(key => {
const catName = enumCategories[key];
categoriesHTML[catName] = `<div class="category" data-category="${catName}">`;
});
for (let i = 0; i < allApplicationSettings.length; ++i) { for (let i = 0; i < allApplicationSettings.length; ++i) {
const setting = allApplicationSettings[i]; const setting = allApplicationSettings[i];
if (setting.categoryId !== lastCategory) { categoriesHTML[setting.categoryId] += setting.getHtml();
lastCategory = setting.categoryId;
if (i !== 0) {
html += "</div>";
}
html += `<strong class="categoryLabel">${T.settings.categories[lastCategory]}</strong>`;
html += "<div class='settingsContainer'>";
}
html += setting.getHtml();
}
if (lastCategory) {
html += "</div>";
} }
return html; return Object.keys(categoriesHTML)
.map(k => categoriesHTML[k] + "</div>")
.join("");
} }
renderBuildText() { renderBuildText() {
@ -90,10 +105,33 @@ export class SettingsState extends TextualGameState {
} }
this.initSettings(); this.initSettings();
this.initCategoryButtons();
this.htmlElement.querySelector(".category").classList.add("active");
this.htmlElement.querySelector(".categoryButton").classList.add("active");
}
setActiveCategory(category) {
const previousCategory = this.htmlElement.querySelector(".category.active");
const previousCategoryButton = this.htmlElement.querySelector(".categoryButton.active");
if (previousCategory.getAttribute("data-category") == category) {
return;
}
previousCategory.classList.remove("active");
previousCategoryButton.classList.remove("active");
const newCategory = this.htmlElement.querySelector("[data-category='" + category + "']");
const newCategoryButton = this.htmlElement.querySelector("[data-category-btn='" + category + "']");
newCategory.classList.add("active");
newCategoryButton.classList.add("active");
} }
initSettings() { initSettings() {
allApplicationSettings.forEach(setting => { allApplicationSettings.forEach(setting => {
/** @type {HTMLElement} */
const element = this.htmlElement.querySelector("[data-setting='" + setting.id + "']"); const element = this.htmlElement.querySelector("[data-setting='" + setting.id + "']");
setting.bind(this.app, element, this.dialogs); setting.bind(this.app, element, this.dialogs);
setting.syncValueToElement(); setting.syncValueToElement();
@ -107,6 +145,20 @@ export class SettingsState extends TextualGameState {
}); });
} }
initCategoryButtons() {
Object.keys(enumCategories).forEach(key => {
const category = enumCategories[key];
const button = this.htmlElement.querySelector("[data-category-btn='" + category + "']");
this.trackClicks(
button,
() => {
this.setActiveCategory(category);
},
{ preventDefault: false }
);
});
}
onAboutClicked() { onAboutClicked() {
this.moveToStateAddGoBack("AboutState"); this.moveToStateAddGoBack("AboutState");
} }

View File

@ -3,7 +3,7 @@
/* Basic Options */ /* Basic Options */
"target": "es6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, "target": "es6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */,
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
// "lib": [], /* Specify library files to be included in the compilation. */ "lib": ["DOM","ES2018"], /* Specify library files to be included in the compilation. */
"allowJs": true /* Allow javascript files to be compiled. */, "allowJs": true /* Allow javascript files to be compiled. */,
"checkJs": true /* Report errors in .js files. */, "checkJs": true /* Report errors in .js files. */,
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */

View File

@ -31,6 +31,8 @@ The base language is English and can be found [here](base-en.yaml).
- [Catalan](base-cat.yaml) - [Catalan](base-cat.yaml)
- [Slovenian](base-sl.yaml) - [Slovenian](base-sl.yaml)
- [Ukrainian](base-uk.yaml) - [Ukrainian](base-uk.yaml)
- [Indonesian](base-ind.yaml)
- [Serbian](base-sr.yaml)
(If you want to translate into a new language, see below!) (If you want to translate into a new language, see below!)
@ -57,7 +59,7 @@ If you want to edit an existing translation (Fixing typos, Updating it to a newe
## Adding a new language ## Adding a new language
Please DM me on discord (tobspr#5407), so I can add the language template for you. Please DM me on Discord (tobspr#5407), so I can add the language template for you.
Please use the following template: Please use the following template:

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: Unknown Level savegameLevelUnknown: Unknown Level
continue: Continue continue: Continue
newGame: New Game newGame: New Game
madeBy: Made by <author-link> madeBy: Made by <author-link>
@ -491,6 +490,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter clockwise by 90 degrees. description: Rotates shapes counter clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -632,8 +634,9 @@ storyRewards:
settings: settings:
title: Settings title: Settings
categories: categories:
game: Game general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -844,9 +847,9 @@ about:
If you want to contribute, check out <a href="<githublink>" If you want to contribute, check out <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community This game wouldn't have been possible without the great Discord community
around my games - You should really join the <a href="<discordlink>" around my games - You should really join the <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" The soundtrack was made by <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - He's awesome.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -154,8 +154,6 @@ mainMenu:
savegameLevel: Nivell <x> savegameLevel: Nivell <x>
savegameLevelUnknown: Nivell desconegut savegameLevelUnknown: Nivell desconegut
dialogs: dialogs:
buttons: buttons:
ok: OK ok: OK
@ -498,6 +496,9 @@ buildings:
ccw: ccw:
name: Rotador (Antihorari) name: Rotador (Antihorari)
description: Rota formes en sentit antihorari 90 graus. description: Rota formes en sentit antihorari 90 graus.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -636,8 +637,9 @@ storyRewards:
settings: settings:
title: Opcions title: Opcions
categories: categories:
game: Joc general: General
app: Aplicació userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Desenvolupament dev: Desenvolupament
@ -828,7 +830,7 @@ about:
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (this is me).<br><br> This game is open source and developed by <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (this is me).<br><br>
If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community around my games - You should really join the <a href="<discordlink>" target="_blank">discord server</a>!<br><br> This game wouldn't have been possible without the great Discord community around my games - You should really join the <a href="<discordlink>" target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br> The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br>
Finally, huge thanks to my best friend <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our factorio sessions this game would never have existed. Finally, huge thanks to my best friend <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our factorio sessions this game would never have existed.
changelog: changelog:

View File

@ -132,7 +132,6 @@ mainMenu:
savegameLevel: Úroveň <x> savegameLevel: Úroveň <x>
savegameLevelUnknown: Neznámá úroveň savegameLevelUnknown: Neznámá úroveň
continue: Pokračovat continue: Pokračovat
newGame: Nová hra newGame: Nová hra
madeBy: Vytvořil <author-link> madeBy: Vytvořil <author-link>
@ -472,6 +471,9 @@ buildings:
ccw: ccw:
name: Rotor (opačný) name: Rotor (opačný)
description: Otáčí tvary o 90 stupňů proti směru hodinových ručiček description: Otáčí tvary o 90 stupňů proti směru hodinových ručiček
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -613,8 +615,9 @@ storyRewards:
settings: settings:
title: Nastavení title: Nastavení
categories: categories:
game: Hra general: General
app: Aplikace userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Vývojová verze dev: Vývojová verze
@ -824,9 +827,9 @@ about:
Pokud se chceš na hře podílet, podívej se na <a href="<githublink>" Pokud se chceš na hře podílet, podívej se na <a href="<githublink>"
target="_blank">shapez.io na githubu</a>.<br><br> target="_blank">shapez.io na githubu</a>.<br><br>
Tato hra by nebyla ani možná bez skvělé discord komunity Tato hra by nebyla ani možná bez skvělé Discord komunity
okolo Tobiasových her - Vážně by ses měl přijít mrknout na <a href="<discordlink>" okolo Tobiasových her - Vážně by ses měl přijít mrknout na <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">Discord server</a>!<br><br>
Soundtrack udělal <a href="https://soundcloud.com/pettersumelius" Soundtrack udělal <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Je úžasnej.<br><br> target="_blank">Peppsen</a> - Je úžasnej.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -155,8 +155,6 @@ mainMenu:
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: Unknown Level savegameLevelUnknown: Unknown Level
dialogs: dialogs:
buttons: buttons:
ok: OK ok: OK
@ -491,6 +489,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter clockwise by 90 degrees. description: Rotates shapes counter clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -636,8 +637,9 @@ storyRewards:
settings: settings:
title: Settings title: Settings
categories: categories:
game: Game general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -846,7 +848,7 @@ about:
If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community around my games - You should really join the <a href="<discordlink>" target="_blank">discord server</a>!<br><br> This game wouldn't have been possible without the great Discord community around my games - You should really join the <a href="<discordlink>" target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br> The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -23,7 +23,7 @@ steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: In shapez.io nutzt du die vorhandenen Ressourcen, um mit deinen Maschinen durch Kombination immer komplexere Formen zu erschaffen. shortText: In shapez.io nutzt du die vorhandenen Ressourcen, um mit deinen Maschinen durch Kombination immer komplexere Formen zu erschaffen.
# This is the text shown above the discord link # This is the text shown above the Discord link
discordLink: Offizieller Discord - Hier kannst du mit mir schreiben! discordLink: Offizieller Discord - Hier kannst du mit mir schreiben!
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
@ -616,7 +616,7 @@ storyRewards:
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: Freispiel title: Freies Spiel
desc: Du hast es geschafft! Du hast den <strong>Freispielmodus</strong> freigeschaltet! Das heißt, dass abzuliefernde Formen jetzt zufällig generiert werden! (Keine Sorge, für die Standaloneversion ist noch mehr geplant!) desc: Du hast es geschafft! Du hast den <strong>Freispielmodus</strong> freigeschaltet! Das heißt, dass abzuliefernde Formen jetzt zufällig generiert werden! (Keine Sorge, für die Standaloneversion ist noch mehr geplant!)
reward_blueprints: reward_blueprints:
@ -645,7 +645,7 @@ settings:
dev: Entwicklung dev: Entwicklung
staging: Beta staging: Beta
prod: Produktion prod: Produktion
buildDate: Gebaut <at-date> buildDate: Gebaut am <at-date>
labels: labels:
uiScale: uiScale:
@ -815,7 +815,7 @@ keybindings:
rotateWhilePlacing: Rotieren rotateWhilePlacing: Rotieren
rotateInverseModifier: >- rotateInverseModifier: >-
Modifikator: stattdessen gegen UZS rotieren Modifikator: stattdessen gegen den UZS rotieren
cycleBuildingVariants: Variante wählen cycleBuildingVariants: Variante wählen
confirmMassDelete: Massenlöschung bestätigen confirmMassDelete: Massenlöschung bestätigen
cycleBuildings: Gebäude rotieren cycleBuildings: Gebäude rotieren

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: Unknown Level savegameLevelUnknown: Unknown Level
continue: Continue continue: Continue
newGame: New Game newGame: New Game
madeBy: Made by <author-link> madeBy: Made by <author-link>
@ -486,6 +485,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter clockwise by 90 degrees. description: Rotates shapes counter clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -632,8 +634,9 @@ storyRewards:
settings: settings:
title: Settings title: Settings
categories: categories:
game: Game general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -845,7 +848,7 @@ about:
If you want to contribute, check out <a href="<githublink>" If you want to contribute, check out <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community This game wouldn't have been possible without the great Discord community
around my games - You should really join the <a href="<discordlink>" around my games - You should really join the <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">discord server</a>!<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -23,7 +23,7 @@ steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. shortText: shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map.
# This is the text shown above the discord link # This is the text shown above the Discord link
discordLink: Official Discord - Chat with me! discordLink: Official Discord - Chat with me!
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
@ -41,7 +41,7 @@ steamPage:
Soon you'll 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 them to satisfy the demand. Soon you'll 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 them to satisfy the demand.
This game features 18 progressive levels (Which should already keep you busy for hours!) but I'm constantly adding new content - There's a lot planned! This game features 18 progressive levels (Which should already keep you busy for hours!) but I'm constantly adding new content - There's a lot planned!
Purchasing the game gives you access to the standalone version which has additional features, and you'll also receive access to newly developed features. Purchasing the game gives you access to the standalone version which has additional features, and you'll also receive access to newly developed features.
@ -74,7 +74,7 @@ steamPage:
[b]This game is open source![/b] [b]This game is 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. Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible.
Be sure to check out my trello board for the full roadmap! Be sure to check out my trello board for the full roadmap!
[b]Links[/b] [b]Links[/b]
@ -503,6 +503,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter-clockwise by 90 degrees. description: Rotates shapes counter-clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -644,8 +647,9 @@ storyRewards:
settings: settings:
title: Settings title: Settings
categories: categories:
game: Game general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -852,13 +856,13 @@ about:
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (this is me).<br><br> This game is open source and developed by <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (this is me).<br><br>
If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on GitHub</a>.<br><br>
This game wouldn't have been possible without the great discord community around my games - You should really join the <a href="<discordlink>" target="_blank">discord server</a>!<br><br> This game wouldn't have been possible without the great Discord community around my games - You should really join the <a href="<discordlink>" target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br> The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br>
Finally, huge thanks to my best friend <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our factorio sessions, this game would never have existed. Finally, huge thanks to my best friend <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our Factorio sessions, this game would never have existed.
changelog: changelog:
title: Changelog title: Changelog

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -23,9 +23,9 @@ steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io es un juego sobre construir fábricas para automatizar la creación y combinación de figuras cada vez más complejas en un mapa infinito. shortText: shapez.io es un juego sobre construir fábricas para automatizar la creación y combinación de figuras cada vez más complejas en un mapa infinito.
# This is the text shown above the discord link # This is the text shown above the Discord link
discordLink: Discord oficial - ¡Chatea conmigo! discordLink: Discord oficial - ¡Chatea conmigo!
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
# - Do not translate the first line (This is the gif image at the start of the store) # - Do not translate the first line (This is the gif image at the start of the store)
@ -33,7 +33,7 @@ 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 es un juego basado en la construcción de fábricas para automatizar la creación y combinación de figuras en un mapa que se expande infinitamente. shapez.io es un juego basado en la construcción de fábricas para automatizar la creación y combinación de figuras en un mapa que se expande infinitamente.
Entrega las figuras requeridas para progresar y desbloquear mejoras para aumentar la velocidad de tu fábrica. Entrega las figuras requeridas para progresar y desbloquear mejoras para aumentar la velocidad de tu fábrica.
Al aumentar la demanda, necesitarás escalar tu fábrica para ajustarte a las necesidades - ¡No te olvides de los recursos, necesitarás expandirte en el [b]mapa infinito[/b]! Al aumentar la demanda, necesitarás escalar tu fábrica para ajustarte a las necesidades - ¡No te olvides de los recursos, necesitarás expandirte en el [b]mapa infinito[/b]!
@ -73,7 +73,7 @@ steamPage:
[b]¡Este juego es de código abierto![/b] [b]¡Este juego es de código abierto![/b]
Cualquiera puede contribuir, estoy activamente involucrado en la comunidad e intento leer todas las sugerencias y considerar todas las propuestas planteadas. Cualquiera puede contribuir, estoy activamente involucrado en la comunidad e intento leer todas las sugerencias y considerar todas las propuestas planteadas.
¡Comprueba mi tablero de Trello para ver todo lo planificado! ¡Comprueba mi tablero de Trello para ver todo lo planificado!
[b]Enlaces[/b] [b]Enlaces[/b]
@ -219,7 +219,7 @@ dialogs:
oneSavegameLimit: oneSavegameLimit:
title: Partidas guardadas limitadas title: Partidas guardadas limitadas
desc: Solo puedes tener una partida guardada a la vez en la versión de prueba. ¡Por favor, elimina la ya existente u obtén el juego completo! desc: Solo puedes tener una partida guardada a la vez en la versión de prueba. ¡Por favor, elimina la ya existente u obtén el juego completo!
updateSummary: updateSummary:
title: ¡Nueva actualización! title: ¡Nueva actualización!
desc: >- desc: >-
@ -502,6 +502,9 @@ buildings:
ccw: ccw:
name: Rotador (Inverso) name: Rotador (Inverso)
description: Rota las figuras en sentido antihorario 90 grados. description: Rota las figuras en sentido antihorario 90 grados.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -556,7 +559,7 @@ buildings:
merger: merger:
name: Fusionador de cables name: Fusionador de cables
description: Fusiona dos cables en uno description: Fusiona dos cables en 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:
@ -642,8 +645,9 @@ storyRewards:
settings: settings:
title: Opciones title: Opciones
categories: categories:
game: Juego general: General
app: Aplicación userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Desarrollo dev: Desarrollo

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -155,8 +155,6 @@ mainMenu:
savegameLevel: Taso <x> savegameLevel: Taso <x>
savegameLevelUnknown: Tuntematon Taso savegameLevelUnknown: Tuntematon Taso
dialogs: dialogs:
buttons: buttons:
ok: OK ok: OK
@ -501,6 +499,9 @@ buildings:
ccw: ccw:
name: Rotate (Vastapäivään) name: Rotate (Vastapäivään)
description: Kääntää muotoja 90 astetta vastapäivään. description: Kääntää muotoja 90 astetta vastapäivään.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -640,8 +641,9 @@ storyRewards:
settings: settings:
title: Asetukset title: Asetukset
categories: categories:
game: Peli general: General
app: Sovellus userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Kehitys dev: Kehitys
@ -850,7 +852,7 @@ about:
Jos haluat osallistua, tarkista <a href="<githublink>" target="_blank">shapez.io githubissa</a>.<br><br> Jos haluat osallistua, tarkista <a href="<githublink>" target="_blank">shapez.io githubissa</a>.<br><br>
Tämä peli ei olisi ollut mahdollinen ilman suurta discord yhteisöä pelini ympärillä - Sinun kannattaisi liittyä <a href="<discordlink>" target="_blank">discord palvelimelleni</a>!<br><br> Tämä peli ei olisi ollut mahdollinen ilman suurta Discord yhteisöä pelini ympärillä - Sinun kannattaisi liittyä <a href="<discordlink>" target="_blank">Discord palvelimelleni</a>!<br><br>
Ääniraidan on tehnyt <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Hän on mahtava.<br><br> Ääniraidan on tehnyt <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - Hän on mahtava.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -30,48 +30,47 @@ 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 est un jeu ou il faut construire des usines pour automatiser la création et la transformation de formes de plus en plus complexes sur une carte infinie. shapez.io est un jeu dans lequel vous devrez construire des usines pour automatiser la création et la combinaison de formes de plus en plus complexes sur une carte infinie.
En livrant les bonnes formes tu vas progresser dans le jeu et débloquer des améliorations pour accélerer ton usine. Lors de la livraison des formes requises vous progresserez et débloquerez des améliorations pour accélerer votre usine.
Comme la demande de formes augmente, il vas falloir agrandir ton usine pour produire plus - N'oublie pas les resources, il vas falloir s'étendre tout autour de la [b]carte infinie[/b]! Au vu de l'augmantation des demandes de formes, vous devrez agrandir votre usine pour répondre à la forte demande - Mais n'oubliez pas les ressources, vous drevrez vous étendre au milieu de cette [b]carte infinie[/b] !
Puis il vas falloir mélanger les couleurs et peindres tes formes avec - Combine du rouge, du bleu et du vert pour produire différente couleurs et peindre des formes pour satisfaire la demande. Bientôt vous devrez mixer les couleurs et peindre vos formes avec - Combinez les ressources de couleurs rouge, verte et bleue pour produire différentes couleurs et peindre les formes avec pour satisfaire la demande.
Ce jeu propose 18 niveaux progressifs (qui devraient vous occuper pendant des heures!) et j'ajoute constament plus de contenu - Il y en as beaucoup qui arrive! Ce jeu propose 18 niveaux progressifs (qui devraient déjà vous occuper des heures!) mais j'ajoute constamment de nouveau contenus - Il y en a beaucoup de prévus !
Acheter le jeu te donnes accès à la version hors-ligne qui as plus de contenu et tu recevras l'accès aux nouvelles fonctionnalités. Acheter le jeu vous donne accès à la version complète qui a des fonctionnalitées additionnelles et vous recevrez aussi un accès à des fonctionnalitées fraîchement développées.
[b]Avantages de la version hors-ligne[/b] [b]Avantages de la version complète (standalone)[/b]
[list] [list]
[*] Mode sombre [*] Mode sombre
[*] Balises infinies [*] Balises infinies
[*] Sauvegardes infinies [*] Parties infinies
[*] Plus de setting [*] Plus d'options
[*] Arrive bientôt: Cables et éléctricité! Sort en Juillet 2020. [*] Prochainement: Câbles et énergie ! Prévu pour (environ) fin Juillet 2020.
[*] Arrive bientôt: Plus de niveaux [*] Prochainement: Plus de niveaux
[*] Me permet de plus déveloper le jeu ❤️ [*] Aidez moi à continuer de développer shapez.io ❤️
[/list] [/list]
[b]Mises à jours futures[/b] [b]Mises à jour futures[/b]
Je fait souvent des mises à jours et essaye d'en sortir une part semaine! Je fais souvent des mises à jour et essaye d'en sortir une par semaine!
[list] [list]
[*] Plusieurs cartes et challenges (e.g. carte avec des obstacles) [*] Différentes cartes et challenges (e.g. carte avec obstacles)
[*] Puzzles (Livrer les formes avec des batiments limités/une carte limitée) [*] Puzzles (Délivrer la forme requise avec une zone limitée/jeu de batîments)
[*] Un mode histoire ou les bâtiments on un coût [*] Un mode histoire où les batîments ont un coût
[*] Générateur de carte configurable (Configure les ressources/formes leur taille, densité et plus) [*] Générateur de carte configurable (configuration des ressources/formes taille/densitée, graine et plus)
[*] Plus de formes [*] Plus de formes
[*] Meilleures performances (Le jeu est déja très optimisé!) [*] Amélioration des performances (Le jeu tourne déjà plutot bien!)
[*] Et bien plus! [*] Et bien plus !
[/list] [/list]
[b]Ce jeu est open source![/b] [b]Ce jeu est open source ![/b]
Tout le monde peut contribuer, je suis très impliqué dans la communeauté et essaye de regarder toutes les suggestions et prendre les retours si possible.
Vas voir mon trello pour plus d'informations!
Tout le monde peut contribuer, je suis très impliqué dans la communauté et j'essaye de répondre à toutes les suggestions et prendre en compte vos retours si possible.
Jetez un coup d'œil à mon Trello pour le suivi du projet et la planification du développement !
[b]Liens[/b] [b]Liens[/b]
[list] [list]
@ -79,17 +78,17 @@ steamPage:
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Trello[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]Trello[/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]Code source (GitHub)[/url] [*] [url=https://github.com/tobspr/shapez.io]Code source (GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Aide à traduire[/url] [*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Aidez à traduire[/url]
[/list] [/list]
discordLink: Discord officiel - Parles avec moi! discordLink: Discord officiel - Parlez avec moi!
global: global:
loading: Chargement loading: Chargement
error: Erreur error: Erreur
# 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: ","
@ -141,9 +140,9 @@ mainMenu:
play: Jouer play: Jouer
changelog: Historique changelog: Historique
importSavegame: Importer importSavegame: Importer
openSourceHint: Ce jeu est open source ! openSourceHint: Ce jeu est open source!
discordLink: Serveur Discord officiel discordLink: Serveur Discord officiel
helpTranslate: Contribuez à la traduction ! helpTranslate: Contribuez à la traduction!
# 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: >-
@ -167,7 +166,7 @@ dialogs:
reset: Réinitialiser reset: Réinitialiser
getStandalone: Se procurer la version complète getStandalone: Se procurer la version complète
deleteGame: Je sais ce que je fais deleteGame: Je sais ce que je fais
viewUpdate: Voir les mises-à-jour viewUpdate: Voir les mises à jour
showUpgrades: Montrer les améliorations showUpgrades: Montrer les améliorations
showKeybindings: Montrer les raccourcis showKeybindings: Montrer les raccourcis
@ -182,7 +181,7 @@ dialogs:
Votre sauvegarde a été importée avec succès. Votre sauvegarde a été importée avec succès.
gameLoadFailure: gameLoadFailure:
title: Le jeu est cassé title: La sauvegarde est corrompue
text: >- text: >-
Impossible de charger votre sauvegarde: Impossible de charger votre sauvegarde:
@ -203,7 +202,7 @@ dialogs:
editKeybinding: editKeybinding:
title: Changer les contrôles title: Changer les contrôles
desc: Appuyez sur la touche que vous voulez assigner, ou Escape pour annuler. desc: Appuyez sur la touche que vous voulez assigner, ou Échap pour annuler.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Réinitialiser les contrôles title: Réinitialiser les contrôles
@ -222,7 +221,7 @@ dialogs:
desc: Vous ne pouvez avoir qu'une seule sauvegarde en même temps dans la version démo. Merci d'effacer celle en cours ou alternativement de vous procurer la version complète ! desc: Vous ne pouvez avoir qu'une seule sauvegarde en même temps dans la version démo. Merci d'effacer celle en cours ou alternativement de vous procurer la version complète !
updateSummary: updateSummary:
title: Nouvel mise-à-jour ! title: Nouvelle mise à jour !
desc: >- desc: >-
Voici les modifications depuis votre dernière session: Voici les modifications depuis votre dernière session:
@ -240,8 +239,7 @@ dialogs:
massCutConfirm: massCutConfirm:
title: Confirmer la coupure title: Confirmer la coupure
desc: >- desc: >-
Vous vous apprêtez à couper beaucoup de bâtiments (<count> pour être précis) ! Êtes-vous Vous vous apprêtez à couper beaucoup de bâtiments (<count> pour être précis) ! Êtes-vous certains de vouloir faire cela ?
certains de vouloir faire cela ?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Pas encore débloqué title: Pas encore débloqué
@ -251,7 +249,7 @@ dialogs:
keybindingsIntroduction: keybindingsIntroduction:
title: Raccourcis utiles title: Raccourcis utiles
desc: >- desc: >-
Le jeu a plein de raccourcis facilitant la construction de grandes usines. Le jeu a de nombreux raccourcis facilitant la construction de grandes usines.
En voici quelques uns, n'hésitez pas à aller <strong>découvrir les raccourcis</strong> !<br><br> En voici quelques uns, n'hésitez pas à aller <strong>découvrir les raccourcis</strong> !<br><br>
<code class='keybinding'>CTRL</code> + Glisser: Sélectionne une zone à copier / effacer.<br> <code class='keybinding'>CTRL</code> + Glisser: Sélectionne une zone à copier / effacer.<br>
<code class='keybinding'>SHIFT</code>: Laissez appuyé pour placer plusieurs fois le même bâtiment.<br> <code class='keybinding'>SHIFT</code>: Laissez appuyé pour placer plusieurs fois le même bâtiment.<br>
@ -260,7 +258,7 @@ dialogs:
createMarker: createMarker:
title: Nouvelle balise title: Nouvelle balise
desc: Donnez-lui un nom, vous pouvez aussi inclure <strong>le raccourci </strong> d'une forme (Que vous pouvez générer <a href="https://viewer.shapez.io" target="_blank">ici</a>) desc: Donnez-lui un nom, vous pouvez aussi inclure <strong>le raccourci </strong> d'une forme (Que vous pouvez générer <a href="https://viewer.shapez.io" target="_blank">ici</a>)
titleEdit: Edit Marker titleEdit: Éditer cette balise
markerDemoLimit: markerDemoLimit:
desc: Vous ne pouvez créer que deux balises dans la démo. Achetez la version complète pour en faire autant que vous voulez ! desc: Vous ne pouvez créer que deux balises dans la démo. Achetez la version complète pour en faire autant que vous voulez !
@ -268,11 +266,11 @@ dialogs:
exportScreenshotWarning: exportScreenshotWarning:
title: Exporter une capture d'écran title: Exporter une capture d'écran
desc: >- desc: >-
Vous avez demandé à exporter votre base sous la forme d'une capture d'écran. Soyez conscient que cela peut s'avérer passablement lent pour une grande base, voire même planter votre jeu ! Vous avez demandé à exporter votre base sous la forme d'une capture d'écran. Soyez conscient que cela peut s'avérer passablement lent pour une grande base, voire même faire planter votre jeu !
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Confirmer la coupe
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: Vous n'avez pas les moyens de copier cette zone ! Etes vous certain de vouloir la couper ?
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
@ -296,7 +294,7 @@ ingame:
copySelection: Copier copySelection: Copier
clearSelection: Effacer la sélection clearSelection: Effacer la sélection
pipette: Pipette pipette: Pipette
switchLayers: Switch layers switchLayers: Échanger les calques
# 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)
@ -411,11 +409,11 @@ ingame:
cyan: Cyan cyan: Cyan
white: Blanc white: Blanc
uncolored: Non coloré uncolored: Non coloré
black: Black black: Noir
shapeViewer: shapeViewer:
title: Calques title: Calques
empty: Vide empty: Vide
copyKey: Copy Key copyKey: Copier la clé de forme
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -488,6 +486,9 @@ buildings:
ccw: ccw:
name: Pivoteur inversé name: Pivoteur inversé
description: Fait pivoter une forme de 90 degrés vers la gauche. description: Fait pivoter une forme de 90 degrés vers la gauche.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -527,25 +528,25 @@ buildings:
levelShortcut: NV levelShortcut: NV
wire: wire:
default: default:
name: Energy Wire name: Ligne énergétique
description: Allows you to transport energy. description: Permet de transporter de l'énergie.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: Inverseur de couleur
description: Accepts a color or shape and inverts it. description: Accepte une couleur ou une forme et l'inverse.
energy_generator: energy_generator:
deliver: Deliver deliver: Délivrer
toGenerateEnergy: For toGenerateEnergy: Pour
default: default:
name: Energy Generator name: Générateur d'énergie
description: Generates energy by consuming shapes. description: Genère de l'énergie en consommant des formes.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: Duplicateur de ligne
description: Splits a energy wire into two. description: Sépare une ligne énergétique en deux.
merger: merger:
name: Wire Merger name: Fusionneur de ligne
description: Merges two energy wires into one. description: Fusionne deux lignes énergétiques en une seule.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
@ -568,7 +569,7 @@ storyRewards:
reward_stacker: reward_stacker:
title: Combineur title: Combineur
desc: Vous pouvez maintenant combiner deux formes avec le <strong>combineur</strong> ! Les deux entrées sont combinée et si elles ne peuvent êtres mises l'une à côté de l'autre, elles sont <strong>fusionnées</strong>. Sinon, la forme de droite est <strong>placée au dessus</strong> de la forme de gauche après avoir été légèrement réduite. desc: Vous pouvez maintenant combiner deux formes avec le <strong>combineur</strong> ! Les deux entrées sont combinées et si elles ne peuvent êtres mises l'une à côté de l'autre, elles sont <strong>fusionnées</strong>. Sinon, la forme de droite est <strong>placée au dessus</strong> de la forme de gauche après avoir été légèrement réduite.
reward_splitter: reward_splitter:
title: Distributeur/Rassembleur title: Distributeur/Rassembleur
@ -619,8 +620,6 @@ storyRewards:
title: Patrons title: Patrons
desc: Vous pouvez maintenant <strong>copier et coller</strong> des parties de votre usines ! Sélectionnez une zone (Appuyez sur CTRL, et sélectionnez avec votre souris), et appuyez sur 'C' pour la copier.<br><br>Coller n'est <strong>pas gratuit</strong>, vous devez produire <strong>des formes de patrons</strong> pour vous le payer (les mêmes que celles que vous venez de livrer). desc: Vous pouvez maintenant <strong>copier et coller</strong> des parties de votre usines ! Sélectionnez une zone (Appuyez sur CTRL, et sélectionnez avec votre souris), et appuyez sur 'C' pour la copier.<br><br>Coller n'est <strong>pas gratuit</strong>, vous devez produire <strong>des formes de patrons</strong> pour vous le payer (les mêmes que celles que vous venez de livrer).
# Question from the translator: Should shortcuts be hardcoded in this message ?
# 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: Niveau suivant title: Niveau suivant
@ -635,8 +634,9 @@ storyRewards:
settings: settings:
title: Options title: Options
categories: categories:
game: Jeu general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Développement dev: Développement
@ -826,11 +826,11 @@ keybindings:
lockBeltDirection: Utiliser le plannificateur de convoyeurs lockBeltDirection: Utiliser le plannificateur de convoyeurs
switchDirectionLockSide: "Plannificateur: changer de côté" switchDirectionLockSide: "Plannificateur: changer de côté"
pipette: Pipette pipette: Pipette
menuClose: Close Menu menuClose: Fermer le menu
switchLayers: Switch layers switchLayers: Échanger les calques
advanced_processor: Color Inverter advanced_processor: Inverseur de couleur
energy_generator: Energy Generator energy_generator: Générateur d'énergie
wire: Energy Wire wire: Ligne énergétique
about: about:
title: À propos de ce jeu title: À propos de ce jeu
@ -841,9 +841,9 @@ about:
Si vous souhaitez contribuer, allez voir <a href="<githublink>" Si vous souhaitez contribuer, allez voir <a href="<githublink>"
target="_blank">shapez.io sur github</a>.<br><br> target="_blank">shapez.io sur github</a>.<br><br>
Ce jeu n'aurait pu être réalisé sans la précieuse communauté discord autour de Ce jeu n'aurait pu être réalisé sans la précieuse communauté Discord autour de
mes jeux - Vous devriez vraiment envisager de joindre le <a href="<discordlink>" mes jeux - Vous devriez vraiment envisager de joindre le <a href="<discordlink>"
target="_blank">serveur discord</a> !<br><br> target="_blank">serveur Discord</a> !<br><br>
La bande son a été créée par <a href="https://soundcloud.com/pettersumelius" La bande son a été créée par <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Il est impressionnant !<br><br> target="_blank">Peppsen</a> - Il est impressionnant !<br><br>
@ -868,3 +868,5 @@ demo:
# #
# French translation completed (and corrected) by Pascal Grossé and Withers001 # French translation completed (and corrected) by Pascal Grossé and Withers001
# French translation entirely completed and corrected by martypiton

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -189,7 +189,6 @@ mainMenu:
# TODO # TODO
dialogs: dialogs:
buttons: buttons:
ok: OK ok: OK
@ -534,6 +533,9 @@ buildings:
ccw: ccw:
name: Obrtač (↺) name: Obrtač (↺)
description: Okreće oblike za 90 stupnjeva u smjeru suprotnom od kazaljke na satu. description: Okreće oblike za 90 stupnjeva u smjeru suprotnom od kazaljke na satu.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -673,8 +675,9 @@ storyRewards:
settings: settings:
title: Postavke title: Postavke
categories: categories:
game: Igra general: General
app: Aplikacija userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -884,7 +887,7 @@ about:
If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community around my games - You should really join the <a href="<discordlink>" target="_blank">discord server</a>!<br><br> This game wouldn't have been possible without the great Discord community around my games - You should really join the <a href="<discordlink>" target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br> The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: <x>. szint savegameLevel: <x>. szint
savegameLevelUnknown: Ismeretlen szint savegameLevelUnknown: Ismeretlen szint
continue: Continue continue: Continue
newGame: New Game newGame: New Game
madeBy: Made by <author-link> madeBy: Made by <author-link>
@ -486,6 +485,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter clockwise by 90 degrees. description: Rotates shapes counter clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -631,8 +633,9 @@ storyRewards:
settings: settings:
title: Beállítások title: Beállítások
categories: categories:
game: Game general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -842,9 +845,9 @@ about:
If you want to contribute, check out <a href="<githublink>" If you want to contribute, check out <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community This game wouldn't have been possible without the great Discord community
around my games - You should really join the <a href="<discordlink>" around my games - You should really join the <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" The soundtrack was made by <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - He's awesome.<br><br>

878
translations/base-ind.yaml Normal file
View File

@ -0,0 +1,878 @@
#
# GAME TRANSLATIONS
#
# Contributing:
#
# If you want to contribute, please make a pull request on this respository
# and I will have a look.
#
# Placeholders:
#
# Do *not* replace placeholders! Placeholders have a special syntax like
# `Hotkey: <key>`. They are encapsulated within angle brackets. The correct
# translation for this one in German for example would be: `Taste: <key>` (notice
# how the placeholder stayed '<key>' and was not replaced!)
#
# Adding a new language:
#
# If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it.
#
steamPage:
# This is the short text appearing on the steam page
shortText: shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map.
# This is the text shown above the Discord link
discordLink: Official Discord - Chat with me!
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE:
# - Do not translate the first line (This is the gif image at the start of the store)
# - Please keep the markup (Stuff like [b], [list] etc) in the same format
longText: >-
[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.
Upon delivering the requested shapes you'll progress within the game and unlock upgrades to speed up your factory.
As the demand for shapes increases, you'll have to scale up your factory to meet the demand - Don't forget about resources though, you'll have to expand across the [b]infinite map[/b]!
Soon you'll 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 them to satisfy the demand.
This game features 18 progressive levels (Which should already keep you busy for hours!) but I'm constantly adding new content - There's a lot planned!
Purchasing the game gives you access to the standalone version which has additional features, and you'll also receive access to newly developed features.
[b]Standalone Advantages[/b]
[list]
[*] Dark Mode
[*] Unlimited Waypoints
[*] Unlimited Savegames
[*] Additional settings
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020.
[*] Coming soon: More Levels
[*] Allows me to further develop shapez.io ❤️
[/list]
[b]Future Updates[/b]
I am updating the game often and trying to push an update at least once every week!
[list]
[*] Different maps and challenges (e.g. maps with obstacles)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings)
[*] A story mode where buildings have a cost
[*] Configurable map generator (Configure resource/shape size/density, seed and more)
[*] Additional types of shapes
[*] Performance improvements (The game already runs pretty well!)
[*] And much more!
[/list]
[b]This game is 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.
Be sure to check out my trello board for the full roadmap!
[b]Links[/b]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/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/blob/master/translations/README.md]Help translate[/url]
[/list]
global:
loading: Loading
error: Error
# How big numbers are rendered, e.g. "10,000"
thousandsDivider: ","
# What symbol to use to seperate the integer part from the fractional part of a number, e.g. "0.4"
decimalSeparator: "."
# The suffix for large numbers, e.g. 1.3k, 400.2M, etc.
suffix:
thousands: k
millions: M
billions: B
trillions: T
# Shown for infinitely big numbers
infinite: inf
time:
# Used for formatting past time dates
oneSecondAgo: one second ago
xSecondsAgo: <x> seconds ago
oneMinuteAgo: one minute ago
xMinutesAgo: <x> minutes ago
oneHourAgo: one hour ago
xHoursAgo: <x> hours ago
oneDayAgo: one day ago
xDaysAgo: <x> days ago
# Short formats for times, e.g. '5h 23m'
secondsShort: <seconds>s
minutesAndSecondsShort: <minutes>m <seconds>s
hoursAndMinutesShort: <hours>h <minutes>m
xMinutes: <x> minutes
keys:
tab: TAB
control: CTRL
alt: ALT
escape: ESC
shift: SHIFT
space: SPACE
demoBanners:
# This is the "advertisement" shown in the main menu and other various places
title: Demo Version
intro: >-
Get the standalone to unlock all features!
mainMenu:
play: Play
continue: Continue
newGame: New Game
changelog: Changelog
subreddit: Reddit
importSavegame: Import
openSourceHint: This game is open source!
discordLink: Official Discord Server
helpTranslate: Help translate!
madeBy: Made by <author-link>
# This is shown when using firefox and other browsers which are not supported.
browserWarning: >-
Sorry, but the game is known to run slow on your browser! Get the standalone version or download chrome for the full experience.
savegameLevel: Level <x>
savegameLevelUnknown: Unknown Level
dialogs:
buttons:
ok: OK
delete: Delete
cancel: Cancel
later: Later
restart: Restart
reset: Reset
getStandalone: Get Standalone
deleteGame: I know what I am doing
viewUpdate: View Update
showUpgrades: Show Upgrades
showKeybindings: Show Keybindings
importSavegameError:
title: Import Error
text: >-
Failed to import your savegame:
importSavegameSuccess:
title: Savegame Imported
text: >-
Your savegame has been successfully imported.
gameLoadFailure:
title: Game is broken
text: >-
Failed to load your savegame:
confirmSavegameDelete:
title: Confirm deletion
text: >-
Are you sure you want to delete the game?
savegameDeletionError:
title: Failed to delete
text: >-
Failed to delete the savegame:
restartRequired:
title: Restart required
text: >-
You need to restart the game to apply the settings.
editKeybinding:
title: Change Keybinding
desc: Press the key or mouse button you want to assign, or escape to cancel.
resetKeybindingsConfirmation:
title: Reset keybindings
desc: This will reset all keybindings to their default values. Please confirm.
keybindingsResetOk:
title: Keybindings reset
desc: The keybindings have been reset to their respective defaults!
featureRestriction:
title: Demo Version
desc: You tried to access a feature (<feature>) which is not available in the demo. Consider getting the standalone version for the full experience!
oneSavegameLimit:
title: Limited savegames
desc: You can only have one savegame at a time in the demo version. Please remove the existing one or get the standalone version!
updateSummary:
title: New update!
desc: >-
Here are the changes since you last played:
upgradesIntroduction:
title: Unlock Upgrades
desc: >-
All shapes you produce can be used to unlock upgrades - <strong>Don't destroy your old factories!</strong>
The upgrades tab can be found on the top right corner of the screen.
massDeleteConfirm:
title: Confirm delete
desc: >-
You are deleting a lot of buildings (<count> to be exact)! Are you sure you want to do this?
massCutConfirm:
title: Confirm cut
desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you want to do this?
massCutInsufficientConfirm:
title: Confirm cut
desc: >-
You can not afford to paste this area! Are you sure you want to cut it?
blueprintsNotUnlocked:
title: Not unlocked yet
desc: >-
Complete level 12 to unlock Blueprints!
keybindingsIntroduction:
title: Useful keybindings
desc: >-
This game has a lot of keybindings which make it easier to build big factories.
Here are a few, but be sure to <strong>check out the keybindings</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Drag: Select an area.<br>
<code class='keybinding'>SHIFT</code>: Hold to place multiple of one building.<br>
<code class='keybinding'>ALT</code>: Invert orientation of placed belts.<br>
createMarker:
title: New Marker
titleEdit: Edit Marker
desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
markerDemoLimit:
desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers!
exportScreenshotWarning:
title: Export screenshot
desc: You requested to export your base as a screenshot. Please note that this can be quite slow for a big base and even crash your game!
ingame:
# This is shown in the top left corner and displays useful keybindings in
# every situation
keybindingsOverlay:
moveMap: Move
selectBuildings: Select area
stopPlacement: Stop placement
rotateBuilding: Rotate building
placeMultiple: Place multiple
reverseOrientation: Reverse orientation
disableAutoOrientation: Disable auto-orientation
toggleHud: Toggle HUD
placeBuilding: Place building
createMarker: Create marker
delete: Delete
pasteLastBlueprint: Paste last blueprint
lockBeltDirection: Enable belt planner
plannerSwitchSide: Flip planner side
cutSelection: Cut
copySelection: Copy
clearSelection: Clear selection
pipette: Pipette
switchLayers: Switch layers
# Names of the colors, used for the color blind mode
colors:
red: Red
green: Green
blue: Blue
yellow: Yellow
purple: Purple
cyan: Cyan
white: White
black: Black
uncolored: Gray
# Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar)
buildingPlacement:
# Buildings can have different variants which are unlocked at later levels,
# and this is the hint shown when there are multiple variants available.
cycleBuildingVariants: Press <key> to cycle variants.
# Shows the hotkey in the ui, e.g. "Hotkey: Q"
hotkeyLabel: >-
Hotkey: <key>
infoTexts:
speed: Speed
range: Range
storage: Storage
oneItemPerSecond: 1 item / second
itemsPerSecond: <x> items / s
itemsPerSecondDouble: (x2)
tiles: <x> tiles
# The notification when completing a level
levelCompleteNotification:
# <level> is replaced by the actual level, so this gets 'Level 03' for example.
levelTitle: Level <level>
completed: Completed
unlockText: Unlocked <reward>!
buttonNextLevel: Next Level
# Notifications on the lower right
notifications:
newUpgrade: A new upgrade is available!
gameSaved: Your game has been saved.
# The "Upgrades" window
shop:
title: Upgrades
buttonUnlock: Upgrade
# Gets replaced to e.g. "Tier IX"
tier: Tier <x>
# The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: MAXIMUM LEVEL (Speed x<currentMult>)
# The "Statistics" window
statistics:
title: Statistics
dataSources:
stored:
title: Stored
description: Displaying amount of stored shapes in your central building.
produced:
title: Produced
description: Displaying all shapes your whole factory produces, including intermediate products.
delivered:
title: Delivered
description: Displaying shapes which are delivered to your central building.
noShapesProduced: No shapes have been produced so far.
# Displays the shapes per minute, e.g. '523 / m'
shapesPerMinute: <shapes> / m
# Settings menu, when you press "ESC"
settingsMenu:
playtime: Playtime
buildingsPlaced: Buildings
beltsPlaced: Belts
buttons:
continue: Continue
settings: Settings
menu: Return to menu
# Bottom left tutorial hints
tutorialHints:
title: Need help?
showHint: Show hint
hideHint: Close
# When placing a blueprint
blueprintPlacer:
cost: Cost
# Map markers
waypoints:
waypoints: Markers
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.
creationSuccessNotification: Marker has been created.
# Shape viewer
shapeViewer:
title: Layers
empty: Empty
copyKey: Copy Key
# Interactive tutorial
interactiveTutorial:
title: Tutorial
hints:
1_1_extractor: Place an <strong>extractor</strong> on top of a <strong>circle shape</strong> to extract it!
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!
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.
# All shop upgrades
shopUpgrades:
belt:
name: Belts, Distributor & Tunnels
description: Speed x<currentMult> → x<newMult>
miner:
name: Extraction
description: Speed x<currentMult> → x<newMult>
processors:
name: Cutting, Rotating & Stacking
description: Speed x<currentMult> → x<newMult>
painting:
name: Mixing & Painting
description: Speed x<currentMult> → x<newMult>
# Buildings and their name / description
buildings:
hub:
deliver: Deliver
toUnlock: to unlock
levelShortcut: LVL
belt:
default:
name: &belt Conveyor Belt
description: Transports items, hold and drag to place multiple.
wire:
default:
name: &wire Energy Wire
description: Allows you to transport energy.
miner: # Internal name for the Extractor
default:
name: &miner Extractor
description: Place over a shape or color to extract it.
chainable:
name: Extractor (Chain)
description: Place over a shape or color to extract it. Can be chained.
underground_belt: # Internal name for the Tunnel
default:
name: &underground_belt Tunnel
description: Allows you to tunnel resources under buildings and belts.
tier2:
name: Tunnel Tier II
description: Allows you to tunnel resources under buildings and belts.
splitter: # Internal name for the Balancer
default:
name: &splitter Balancer
description: Multifunctional - Evenly distributes all inputs onto all outputs.
compact:
name: Merger (compact)
description: Merges two conveyor belts into one.
compact-inverse:
name: Merger (compact)
description: Merges two conveyor belts into one.
cutter:
default:
name: &cutter Cutter
description: Cuts shapes from top to bottom and outputs both halves. <strong>If you use only one part, be sure to destroy the other part or it will stall!</strong>
quad:
name: Cutter (Quad)
description: Cuts shapes into four parts. <strong>If you use only one part, be sure to destroy the other parts or it will stall!</strong>
advanced_processor:
default:
name: &advanced_processor Color Inverter
description: Accepts a color or shape and inverts it.
rotater:
default:
name: &rotater Rotate
description: Rotates shapes clockwise by 90 degrees.
ccw:
name: Rotate (CCW)
description: Rotates shapes counter-clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker:
default:
name: &stacker Stacker
description: Stacks both items. If they can not be merged, the right item is placed above the left item.
mixer:
default:
name: &mixer Color Mixer
description: Mixes two colors using additive blending.
painter:
default:
name: &painter Painter
description: &painter_desc Colors the whole shape on the left input with the color from the top input.
mirrored:
name: *painter
description: *painter_desc
double:
name: Painter (Double)
description: Colors the shapes on the left inputs with the color from the top input.
quad:
name: Painter (Quad)
description: Allows you to color each quadrant of the shape with a different color.
trash:
default:
name: &trash Trash
description: Accepts inputs from all sides and destroys them. Forever.
storage:
name: Storage
description: Stores excess items, up to a given capacity. Can be used as an overflow gate.
energy_generator:
deliver: Deliver
# This will be shown before the amount, so for example 'For 123 Energy'
toGenerateEnergy: For
default:
name: &energy_generator Energy Generator
description: Generates energy by consuming shapes.
wire_crossings:
default:
name: &wire_crossings Wire Splitter
description: Splits a energy wire into two.
merger:
name: Wire Merger
description: Merges two energy wires into one.
storyRewards:
# Those are the rewards gained from completing the store
reward_cutter_and_trash:
title: Cutting Shapes
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!
reward_rotater:
title: Rotating
desc: The <strong>rotater</strong> has been unlocked! It rotates shapes clockwise by 90 degrees.
reward_painter:
title: Painting
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!
reward_mixer:
title: Color Mixing
desc: The <strong>mixer</strong> has been unlocked - Combine two colors using <strong>additive blending</strong> with this building!
reward_stacker:
title: Combiner
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!
reward_splitter:
title: Splitter/Merger
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>
reward_tunnel:
title: Tunnel
desc: The <strong>tunnel</strong> has been unlocked - You can now tunnel items through belts and buildings with it!
reward_rotater_ccw:
title: CCW Rotating
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>!
reward_miner_chainable:
title: Chaining Extractor
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!
reward_underground_belt_tier_2:
title: Tunnel Tier 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!
reward_splitter_compact:
title: Compact Balancer
desc: >-
You have unlocked a compact variant of the <strong>balancer</strong> - It accepts two inputs and merges them into one belt!
reward_cutter_quad:
title: Quad Cutting
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!
reward_painter_double:
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!
reward_painter_quad:
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!
reward_storage:
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!
reward_freeplay:
title: Freeplay
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!)
reward_blueprints:
title: Blueprints
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).
# Special reward, which is shown when there is no reward actually
no_reward:
title: Next level
desc: >-
This level gave you no reward, but the next one will! <br><br> PS: Better don't destroy your existing factory - You need <strong>all</strong> those shapes later again to <strong>unlock upgrades</strong>!
no_reward_freeplay:
title: Next level
desc: >-
Congratulations! By the way, more content is planned for the standalone!
settings:
title: Settings
categories:
general: General
userInterface: User Interface
advanced: Advanced
versionBadges:
dev: Development
staging: Staging
prod: Production
buildDate: Built <at-date>
labels:
uiScale:
title: Interface scale
description: >-
Changes the size of the user interface. The interface will still scale based on your device's resolution, but this setting controls the amount of scaling.
scales:
super_small: Super small
small: Small
regular: Regular
large: Large
huge: Huge
autosaveInterval:
title: Autosave Interval
description: >-
Controls how often the game saves automatically. You can also disable it entirely here.
intervals:
one_minute: 1 Minute
two_minutes: 2 Minutes
five_minutes: 5 Minutes
ten_minutes: 10 Minutes
twenty_minutes: 20 Minutes
disabled: Disabled
scrollWheelSensitivity:
title: Zoom sensitivity
description: >-
Changes how sensitive the zoom is (Either mouse wheel or trackpad).
sensitivity:
super_slow: Super slow
slow: Slow
regular: Regular
fast: Fast
super_fast: Super fast
movementSpeed:
title: Movement speed
description: >-
Changes how fast the view moves when using the keyboard.
speeds:
super_slow: Super slow
slow: Slow
regular: Regular
fast: Fast
super_fast: Super Fast
extremely_fast: Extremely Fast
language:
title: Language
description: >-
Change the language. All translations are user-contributed and might be incomplete!
enableColorBlindHelper:
title: Color Blind Mode
description: >-
Enables various tools which allow you to play the game if you are color blind.
fullscreen:
title: Fullscreen
description: >-
It is recommended to play the game in fullscreen to get the best experience. Only available in the standalone.
soundsMuted:
title: Mute Sounds
description: >-
If enabled, mutes all sound effects.
musicMuted:
title: Mute Music
description: >-
If enabled, mutes all music.
theme:
title: Game theme
description: >-
Choose the game theme (light / dark).
themes:
dark: Dark
light: Light
refreshRate:
title: Simulation Target
description: >-
If you have a 144hz monitor, change the refresh rate here so the game will properly simulate at higher refresh rates. This might actually decrease the FPS if your computer is too slow.
alwaysMultiplace:
title: Multiplace
description: >-
If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently.
offerHints:
title: Hints & Tutorials
description: >-
Whether to offer hints and tutorials while playing. Also hides certain UI elements up to a given level to make it easier to get into the game.
enableTunnelSmartplace:
title: Smart Tunnels
description: >-
When enabled, placing tunnels will automatically remove unnecessary belts. This also enables you to drag tunnels and excess tunnels will get removed.
vignette:
title: Vignette
description: >-
Enables the vignette, which darkens the screen corners and makes text easier to read.
rotationByBuilding:
title: Rotation by building type
description: >-
Each building type remembers the rotation you last set it to individually. This may be more comfortable if you frequently switch between placing different building types.
compactBuildingInfo:
title: Compact Building Infos
description: >-
Shortens info boxes for buildings by only showing their ratios. Otherwise a description and image is shown.
disableCutDeleteWarnings:
title: Disable Cut/Delete Warnings
description: >-
Disables the warning dialogs brought up when cutting/deleting more than 100 entities.
keybindings:
title: Keybindings
hint: >-
Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options.
resetKeybindings: Reset Keybindings
categoryLabels:
general: Application
ingame: Game
navigation: Navigating
placement: Placement
massSelect: Mass Select
buildings: Building Shortcuts
placementModifiers: Placement Modifiers
mappings:
confirm: Confirm
back: Back
mapMoveUp: Move Up
mapMoveRight: Move Right
mapMoveDown: Move Down
mapMoveLeft: Move Left
mapMoveFaster: Move Faster
centerMap: Center Map
mapZoomIn: Zoom in
mapZoomOut: Zoom out
createMarker: Create Marker
menuOpenShop: Upgrades
menuOpenStats: Statistics
menuClose: Close Menu
toggleHud: Toggle HUD
toggleFPSInfo: Toggle FPS and Debug Info
switchLayers: Switch layers
exportScreenshot: Export whole Base as Image
belt: *belt
splitter: *splitter
underground_belt: *underground_belt
miner: *miner
cutter: *cutter
advanced_processor: *advanced_processor
rotater: *rotater
stacker: *stacker
mixer: *mixer
energy_generator: *energy_generator
painter: *painter
trash: *trash
wire: *wire
pipette: Pipette
rotateWhilePlacing: Rotate
rotateInverseModifier: >-
Modifier: Rotate CCW instead
cycleBuildingVariants: Cycle Variants
confirmMassDelete: Delete area
pasteLastBlueprint: Paste last blueprint
cycleBuildings: Cycle Buildings
lockBeltDirection: Enable belt planner
switchDirectionLockSide: >-
Planner: Switch side
massSelectStart: Hold and drag to start
massSelectSelectMultiple: Select multiple areas
massSelectCopy: Copy area
massSelectCut: Cut area
placementDisableAutoOrientation: Disable automatic orientation
placeMultiple: Stay in placement mode
placeInverse: Invert automatic belt orientation
about:
title: About this Game
body: >-
This game is open source and developed by <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (this is me).<br><br>
If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great Discord community around my games - You should really join the <a href="<discordlink>" target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br>
Finally, huge thanks to my best friend <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our factorio sessions, this game would never have existed.
changelog:
title: Changelog
demo:
features:
restoringGames: Restoring savegames
importingGames: Importing savegames
oneGameLimit: Limited to one savegame
customizeKeybindings: Customizing Keybindings
exportingBase: Exporting whole Base as Image
settingNotAvailable: Not available in the demo.

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Livello <x> savegameLevel: Livello <x>
savegameLevelUnknown: Livello sconosciuto savegameLevelUnknown: Livello sconosciuto
continue: Continua continue: Continua
newGame: Nuova partita newGame: Nuova partita
madeBy: Creato da <author-link> madeBy: Creato da <author-link>
@ -486,6 +485,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter clockwise by 90 degrees. description: Rotates shapes counter clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -632,8 +634,9 @@ storyRewards:
settings: settings:
title: Impostazioni title: Impostazioni
categories: categories:
game: Gioco general: General
app: Applicazione userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Sviluppo dev: Sviluppo
@ -843,9 +846,9 @@ about:
If you want to contribute, check out <a href="<githublink>" If you want to contribute, check out <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community This game wouldn't have been possible without the great Discord community
around my games - You should really join the <a href="<discordlink>" around my games - You should really join the <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" The soundtrack was made by <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - He's awesome.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -30,32 +30,32 @@ 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. shapez.ioは無限のマップ内で様々な"形"を資源とし、段々と複雑になっていく形の作成や合成の自動化を目指して工場を構築するゲームです。
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]! "形"の需要が増えるにつれ、工場を拡大する必要があります - より多くの資源を手に入れるために[b]無限のマップ[!b]を開拓していく必要があります。
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. "形"に色を塗る必要もあります - 赤、緑、青を混ぜ、さまざまな色を作り需要に応じて色が塗られた"形"を製造できます。
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! 現在このゲームには18個のレベルがあり、今後これを拡大していく予定です - 他にも様々なアップデートを準備しています!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. このゲームを買うことによってスタンドアローン版の様々な機能が使えるようになり、新しいアップデートもすぐに手に入ります。
[b]Standalone Advantages[/b] [b]スタンドアローン版で使える機能[/b]
[list] [list]
[*] Dark Mode [*] ダークモード
[*] Unlimited Waypoints [*] ウェイポイントの制限がありません
[*] Unlimited Savegames [*] セーブの数の制限がありません
[*] Additional settings [*] 様々な設定
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] 追加予定: ワイヤーとエネルギー! (7月末を目指しています)
[*] Coming soon: More Levels [*] 追加予定: より多くのレベル
[*] Allows me to further develop shapez.io ❤️ [*] shapez.io開発が助けられます❤️
[/list] [/list]
[b]Future Updates[/b] [b]今後の予定[/b]
I am updating the game very often and trying to push an update at least every week! 週に一回はアップデートを出せることを目指しています。
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] Different maps and challenges (e.g. maps with obstacles)
@ -67,22 +67,22 @@ steamPage:
[*] And much more! [*] And much more!
[/list] [/list]
[b]This game is open source![/b] [b]このゲームはオープンソースです![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. 誰でもこのげむの開発を手伝うことができ、私もプレーヤーの意見をできるだけゲームに取り入れようとしています。
Be sure to check out my trello board for the full roadmap! Trelloで今後の予定が全て確認できます。
[b]Links[/b] [b]外部リンク[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]公式Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]今後の予定[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url] [*] [url=https://www.reddit.com/r/shapezio]Reddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Source code (GitHub)[/url] [*] [url=https://github.com/tobspr/shapez.io]ソースコード(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]翻訳に参加[/url]
[/list] [/list]
discordLink: Official Discord - Chat with me! discordLink: 公式Discord - 私と話せます!
global: global:
loading: ロード中 loading: ロード中
@ -134,14 +134,14 @@ 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: デモ版 title: デモ版
intro: >- intro: >-
スタンドアローン版を手に入れ、すべての要素をアンロックしましょう! スタンドアローン版を手に入れ、すべての機能をアンロックしましょう!
mainMenu: mainMenu:
play: プレイ play: プレイ
changelog: 更新履歴 changelog: 更新履歴
importSavegame: インポート importSavegame: インポート
openSourceHint: このゲームはオープンソースです openSourceHint: このゲームはオープンソースです
discordLink: 公式Discordサーバ discordLink: 公式Discord
helpTranslate: 翻訳に参加 helpTranslate: 翻訳に参加
# 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.
@ -151,10 +151,9 @@ mainMenu:
savegameLevel: レベル <x> savegameLevel: レベル <x>
savegameLevelUnknown: 不明なレベル savegameLevelUnknown: 不明なレベル
continue: 続きから continue: 続きから
newGame: 新規ゲーム newGame: 新規ゲーム
madeBy: Made by <author-link> madeBy: 制作者 <author-link>
subreddit: Reddit subreddit: Reddit
dialogs: dialogs:
@ -491,6 +490,9 @@ buildings:
ccw: ccw:
name: 回転機 (逆) name: 回転機 (逆)
description: 形を反時計回り方向に90度回転します。 description: 形を反時計回り方向に90度回転します。
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -632,8 +634,9 @@ storyRewards:
settings: settings:
title: 設定 title: 設定
categories: categories:
game: ゲーム general: General
app: アプリケーション userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -837,7 +840,7 @@ about:
開発に参加したい場合は以下をチェックしてみてください。<a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> 開発に参加したい場合は以下をチェックしてみてください。<a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br>
このゲームはdiscordでの素晴らしいコミュニティなしには実現しませんでした。 - このサーバにも是非参加してください! <a href="<discordlink>" target="_blank">discord server</a>!<br><br> このゲームはdiscordでの素晴らしいコミュニティなしには実現しませんでした。 - このサーバにも是非参加してください! <a href="<discordlink>" target="_blank">Discord server</a>!<br><br>
サウンドトラックは<a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a>により製作されました。 - 彼は素晴らしいです<br><br> サウンドトラックは<a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a>により製作されました。 - 彼は素晴らしいです<br><br>

View File

@ -15,13 +15,13 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io는 무한한 공간에서 점점 더 복잡한 도형의 생산과 조합을 자동화하는 공장을 짓는 게임입니다. shortText: shapez.io는 무한한 공간에서 점점 더 복잡한 도형의 생산과 조합을 자동화하는 공장을 짓는 게임입니다.
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
@ -30,59 +30,59 @@ 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. shapez.io는 무한한 공간에서 점점 더 복잡한 도형의 생산과 조합을 자동화하는 공장을 짓는 게임입니다.
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]! 도형에 대한 수요가 증가함에 따라, 여러분은 수요에 맞게 공장을 확장해야 합니다. - [b]무한한 공간[/b]으로 확장하여 도형 재료를 구하는 것도 잊지 마세요.
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. 곧이어 여러분은 색을 섞고 도형을 색칠 할 것입니다. - 빨강, 초록, 파랑 색을 섞어서 만든 다양한 색으로 수요를 만족시키세요.
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! 이 게임에는 18개의 레벨이 있습니다 (이것 만으로도 여러분은 이미 몇시간이 걸렸을 거예요!) 하지만 저는 항상 새로운 콘텐츠를 추가하고 있습니다 - 계획해 놓은 것들이 많습니다!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. 게임을 구입하면 추가 기능이 있는 독립 실행형 버전을 이용할 수 있으며 새로 개발된 기능도 이용할 수 있습니다.
[b]Standalone Advantages[/b] [b]유료 버전의 장점[/b]
[list] [list]
[*] Dark Mode [*] 다크 모드
[*] Unlimited Waypoints [*] 제한 없는 마커
[*] Unlimited Savegames [*] 제한 없는 저장
[*] Additional settings [*] 더 다양한 설정
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] 출시 예고: 전선 & 에너지! 2020년 7월 말을 목표로 하는 중.
[*] Coming soon: More Levels [*] 출시 예고: 더 많은 레벨
[*] Allows me to further develop shapez.io ❤️ [*] shapez.io를 개발하는 데 도움이 됨 ❤️
[/list] [/list]
[b]Future Updates[/b] [b]향후 업데이트[/b]
I am updating the game very often and trying to push an update at least every week! 저는 게임을 자주 업데이트하고 있고 적어도 매주마다 업데이트를 추진하려고 노력 중입니다!
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] 다양한 맵과 챌린지 (e.g. 장애물이 있는 맵)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] 퍼즐 (제한된 영역/건물만으로 도형 전달하기)
[*] A story mode where buildings have a cost [*] 건물에 비용이 드는 스토리 모드
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] 설정 가능한 맵 생성기 (자원/도형, 크기/밀도, 시드 등)
[*] Additional types of shapes [*] 더 많은 종류의 도형
[*] Performance improvements (The game already runs pretty well!) [*] 성능 향상 (지금도 게임이 잘 되긴 합니다!)
[*] And much more! [*] 그 외 다수!
[/list] [/list]
[b]This game is open source![/b] [b]이 게임은 오픈소스 입니다![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. 누구나 참여할 수 있으며, 저는 커뮤니티에 적극적으로 참여하고 있고 가능한 경우 모든 제안을 검토하고 피드백을 고려하려고 합니다.
Be sure to check out my trello board for the full roadmap! 전체 로드맵을 위해 반드시 내 Trello 보드를 확인하세요!
[b]Links[/b] [b]링크[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]공식 디스코드[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]로드맵[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url] [*] [url=https://www.reddit.com/r/shapezio]서브레딧[/url]
[*] [url=https://github.com/tobspr/shapez.io]Source code (GitHub)[/url] [*] [url=https://github.com/tobspr/shapez.io]소스 코드 (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]번역을 도와주세요![/url]
[/list] [/list]
discordLink: Official Discord - Chat with me! discordLink: 공식 디스코드 - 채팅해요!
global: global:
loading: 로딩중 loading: 로딩중
@ -134,7 +134,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: 무료 버전 title: 무료 버전
intro: >- intro: >-
유료 버전을 구매해서 모든 컨탠츠를 사용해 보세요! 유료 버전을 구매해서 모든 콘텐츠를 사용해 보세요!
mainMenu: mainMenu:
play: 시작 play: 시작
@ -150,11 +150,10 @@ mainMenu:
savegameLevel: 레벨 <x> savegameLevel: 레벨 <x>
savegameLevelUnknown: 레벨 모름 savegameLevelUnknown: 레벨 모름
continue: 계속하기 continue: 계속하기
newGame: 새 게임 newGame: 새 게임
madeBy: 제작 <author-link> madeBy: 제작 <author-link>
subreddit: Reddit subreddit: 레딧
dialogs: dialogs:
buttons: buttons:
@ -178,7 +177,7 @@ dialogs:
importSavegameSuccess: importSavegameSuccess:
title: 저장 파일 불러오기 성공 title: 저장 파일 불러오기 성공
text: >- text: >-
저장 파일이 성공적으로 불러와졌습니다. 저장 파일을 성공적으로 불러왔습니다.
gameLoadFailure: gameLoadFailure:
title: 저장 파일 에러 title: 저장 파일 에러
@ -205,16 +204,16 @@ dialogs:
desc: 당신이 원하는 키나 마우스 버튼을 눌러서 바꾸거나 ESC를 눌러 취소하세요. desc: 당신이 원하는 키나 마우스 버튼을 눌러서 바꾸거나 ESC를 눌러 취소하세요.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: 키바인딩 설정 title: 키바인딩 설정
desc: 이것은 모든 키바인딩을 기본값으로 초기화합니다. desc: 이것은 모든 키바인딩을 기본값으로 초기화합니다.
keybindingsResetOk: keybindingsResetOk:
title: 키바인딩 설정 완료 title: 키바인딩 설정 완료
desc: 모든 키바인딩이 기본값으로 재설정 되었습니다! desc: 모든 키바인딩이 기본값으로 재설정 되었습니다!
featureRestriction: featureRestriction:
title: 데모 버전 title: 데모 버전
desc: 데모 버전에는 없는 컨탠츠(<feature>)로 시도했습니다. 유료 버전을 구입해서 모든 컨텐츠를 사용해보세요! desc: 데모 버전에는 없는 콘텐츠(<feature>)로 시도했습니다. 유료 버전을 구입해서 모든 콘텐츠를 사용해보세요!
oneSavegameLimit: oneSavegameLimit:
title: 저장파일 개수 제한 title: 저장파일 개수 제한
@ -258,7 +257,7 @@ dialogs:
createMarker: createMarker:
title: 새로운 마커 title: 새로운 마커
desc: 이 장소에 이름을 지어주세요, 당신은 원하는 모양으로 <strong>단축키</strong>를 생성할 수 있습니다. (<a href="https://viewer.shapez.io" target="_blank">여기</a>에서 만들 수 있습니다.) desc: 이 장소에 이름을 지어주세요, 당신은 원하는 모양으로 <strong>단축키</strong>를 생성할 수 있습니다. (<a href="https://viewer.shapez.io" target="_blank">여기</a>에서 만들 수 있습니다.)
titleEdit: Edit Marker titleEdit: 마커 변경
markerDemoLimit: markerDemoLimit:
desc: 데모 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다! desc: 데모 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다!
@ -266,12 +265,12 @@ dialogs:
exportScreenshotWarning: exportScreenshotWarning:
title: 스크린샷 내보내기 title: 스크린샷 내보내기
desc: >- desc: >-
당신은 당신의 공장을 스크린샷으로 내보내려 하고있습니다. 공장이 너무 큰 경우에는 당신은 공장을 스크린샷으로 내보내려 하고있습니다. 공장이 너무 큰 경우에는
시간이 오래 걸리거나 게임이 꺼질 수도 있음을 알려드립니다! 시간이 오래 걸리거나 게임이 꺼질 수도 있음을 알려드립니다!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: 자르기 확인
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: 이 곳에는 붙여넣기를 할 수 없습니다! 정말 자르시겠습니까?
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
@ -295,7 +294,7 @@ ingame:
copySelection: 선택된 부분 복사하기 copySelection: 선택된 부분 복사하기
clearSelection: 선택된 부분 지우기 clearSelection: 선택된 부분 지우기
pipette: 스포이드 pipette: 스포이드
switchLayers: Switch layers switchLayers: 레이어 전환
# 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)
@ -342,7 +341,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: 최대 (Speed x<currentMult>) maximumLevel: 최대 레벨 (속도 x<currentMult>)
# The "Statistics" window # The "Statistics" window
statistics: statistics:
@ -389,7 +388,7 @@ ingame:
waypoints: 마커 waypoints: 마커
hub: 중앙 건물 hub: 중앙 건물
description: 마커를 좌클릭해서 그곳으로 가고, 우클릭해서 삭제합니다.<br><br><keybinding>을 눌러 지금 있는 곳에 마커를 놓거나 <strong>우클릭해서</strong> 원하는 곳에 놓으세요. description: 마커를 좌클릭해서 그곳으로 가고, 우클릭해서 삭제합니다.<br><br><keybinding>을 눌러 지금 있는 곳에 마커를 놓거나 <strong>우클릭해서</strong> 원하는 곳에 놓으세요.
creationSuccessNotification: 마커가 성공적으로 제작되었습니다. creationSuccessNotification: 마커가 성공적으로 생성되었습니다.
# Interactive tutorial # Interactive tutorial
interactiveTutorial: interactiveTutorial:
@ -397,10 +396,10 @@ ingame:
hints: hints:
1_1_extractor: <strong>추출기</strong>를 <strong>원 모양의 도형</strong>에 놓아서 추출하세요! 1_1_extractor: <strong>추출기</strong>를 <strong>원 모양의 도형</strong>에 놓아서 추출하세요!
1_2_conveyor: >- 1_2_conveyor: >-
추출기를 <strong>컨베이어 벨트</strong>로 당신의 중앙 건물에 연결하세요!<br><br>팁: 마우스로 벨트를 <strong>클릭해서 드래그</strong>하세요! 추출기를 <strong>컨베이어 벨트</strong>로 당신의 중앙 건물에 연결하세요!<br><br>팁: 마우스로 벨트를 <strong>클릭하고 드래그</strong>하세요!
1_3_expand: >- 1_3_expand: >-
이것은 방치형 게임이 <strong>아닙니다!</strong> 추출기를 더 놓아 목표를 빨리 달성하세요.<br><br>팁: <strong>SHIFT</strong>를 눌러 여러 개의 추출기를 놓고 <strong>R</strong>로 회전 시키세요. 이것은 방치형 게임이 <strong>아닙니다!</strong> 추출기를 더 놓아 목표를 빨리 달성하세요.<br><br>팁: <strong>SHIFT</strong>를 눌러 여러 개의 추출기를 놓고 <strong>R</strong>로 방향을 바꾸세요.
colors: colors:
red: 빨강 red: 빨강
@ -410,12 +409,12 @@ ingame:
purple: 보라 purple: 보라
cyan: 청록 cyan: 청록
white: 하양 white: 하양
uncolored: uncolored:
black: Black black: 검정
shapeViewer: shapeViewer:
title: title:
empty: 비었음 empty: 비었음
copyKey: Copy Key copyKey: 키 복사하기
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -490,10 +489,13 @@ buildings:
ccw: ccw:
name: 회전기 (반시계방향) name: 회전기 (반시계방향)
description: 도형을 반시계방향으로 90도 회전시킨다. description: 도형을 반시계방향으로 90도 회전시킨다.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
name: &stacker 스택커 name: &stacker 결합기
description: 도형 2개를 쌓는다. 합칠 수가 없다면 오른쪽 도형이 왼쪽 도형 위에 놓아진다. description: 도형 2개를 쌓는다. 합칠 수가 없다면 오른쪽 도형이 왼쪽 도형 위에 놓아진다.
mixer: mixer:
@ -525,24 +527,24 @@ buildings:
description: 할당된 용량만큼 초과되는 도형을 저장한다. description: 할당된 용량만큼 초과되는 도형을 저장한다.
wire: wire:
default: default:
name: Energy Wire name: 전선
description: Allows you to transport energy. description: 에너지를 전송한다.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: 색 반전기
description: Accepts a color or shape and inverts it. description: 색소나 도형을 받아 색을 반전시킨다.
energy_generator: energy_generator:
deliver: Deliver deliver: 연료
toGenerateEnergy: For toGenerateEnergy: 마다
default: default:
name: Energy Generator name: 발전기
description: Generates energy by consuming shapes. description: 도형을 소비해 에너지를 만듭니다.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: 전선 분배기
description: Splits a energy wire into two. description: Splits a energy wire into two.
merger: merger:
name: Wire Merger name: 전선 병합기
description: Merges two energy wires into one. description: Merges two energy wires into one.
storyRewards: storyRewards:
@ -577,8 +579,8 @@ storyRewards:
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: 체인 추출기
@ -610,11 +612,11 @@ storyRewards:
desc: <strong>저장소</strong>가 잠금 해제되었습니다! 주어진 용량만큼 자원을 저장할 수 있습니다! desc: <strong>저장소</strong>가 잠금 해제되었습니다! 주어진 용량만큼 자원을 저장할 수 있습니다!
reward_freeplay: reward_freeplay:
title: 프리플레이 모드 title: 자유 모드
desc: 해내셨군요! <strong>프리플레이 모드</strong>가 잠금 해제되었습니다! 이제 도형이 랜덤으로 생성됩니다! (걱정 마세요, 유료버전에는 더 많은 컨텐츠가 계획되어 있습니다!) desc: 해내셨군요! <strong>자유 모드</strong>가 잠금 해제되었습니다! 이제 도형이 랜덤으로 생성됩니다! (걱정 마세요, 유료버전에는 더 많은 컨텐츠가 계획되어 있습니다!)
reward_blueprints: reward_blueprints:
title: 블루프린트 title: 청사진
desc: 이제부터는 공장의 일부 영역을 <strong>복사하여 붙여넣기</strong> 할 수 있습니다! CTRL을 누르면서 드래그해서 먼저 영역을 선택하세요. <br><br> 그 다음에는 C, DEL, ESC 로 복사하거나, 지우거나, 취소 하세요.<br><br> 복사는 무료가 이닙니다. 특별한 "화폐" 도형으로 돈을 지불하고 복사가 됩니다. desc: 이제부터는 공장의 일부 영역을 <strong>복사하여 붙여넣기</strong> 할 수 있습니다! CTRL을 누르면서 드래그해서 먼저 영역을 선택하세요. <br><br> 그 다음에는 C, DEL, ESC 로 복사하거나, 지우거나, 취소 하세요.<br><br> 복사는 무료가 이닙니다. 특별한 "화폐" 도형으로 돈을 지불하고 복사가 됩니다.
# Special reward, which is shown when there is no reward actually # Special reward, which is shown when there is no reward actually
@ -631,13 +633,14 @@ storyRewards:
settings: settings:
title: 설정 title: 설정
categories: categories:
game: 게임 general: General
app: userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: 전 중 dev:
staging: 단계적으로 발전 중 staging: 검증
prod: 제작 중 prod: 배포
buildDate: 날짜<at-date> buildDate: 날짜<at-date>
labels: labels:
@ -655,7 +658,7 @@ settings:
scrollWheelSensitivity: scrollWheelSensitivity:
title: 확대 민감도 title: 확대 민감도
description: >- description: >-
마우스 휠이나 트패드로 확대하는 데의 민감도 마우스 휠이나 트패드로 확대하는 데의 민감도
sensitivity: sensitivity:
super_slow: 매우 느리게 super_slow: 매우 느리게
slow: 느리게 slow: 느리게
@ -678,15 +681,15 @@ settings:
language: language:
title: 언어 title: 언어
description: >- description: >-
언어 바꾸기 - 모든 언어팩은 사용자들이 만든 것이므로 완성되지 않았을 수 있습니다.. 언어 바꾸기 - 모든 언어팩은 사용자들이 만든 것이므로 완성되지 않았을 수 있습니다!
fullscreen: fullscreen:
title: Fullscreen title: 전체화면
description: >- description: >-
이 게임은 풀 스크린으로 하는 것이 가장 좋습니다. 풀 스크린 모드는 유료 버전에서만 가능합니다. 이 게임은 전체화면으로 하는 것이 가장 좋습니다. 전체화면은 유료 버전에서만 가능합니다.
soundsMuted: soundsMuted:
title: 소리 끄기 title: 효과음 끄기
description: >- description: >-
모든 효과음을 끕니다. 모든 효과음을 끕니다.
@ -704,19 +707,19 @@ settings:
light: 밝은 테마 light: 밝은 테마
refreshRate: refreshRate:
title: 모니터 리프레쉬 속 title: 시뮬레이션 빈
description: >- description: >-
당신의 모니터의 리프세쉬 속도가 144hz 보다 높으면 이 설정을 바꾸어서 게임이 더 빨리 리프레시 되게 하세요. 만약에 컴퓨터가 느리다면 FPS에 영양을 미칠 수 있습니다. 144hz 모니터가 있다면 이 설정을 바꿔 게임이 높은 빈도로 적절히 시뮬레이션되게 하세요. 만약에 컴퓨터가 느리다면 FPS에 영양을 미칠 수 있습니다.
alwaysMultiplace: alwaysMultiplace:
title: 항상 여러 개 배치 title: 항상 여러 개 배치
description: >- description: >-
배치 이후에도 모든 빌딩이 선택되어 있습니다. SHIFT를 계속 누르고 있는 것과 같은 효과입니다. 활성화된 경우 모든 건물은 따로 취소하기 전까지 배치 후 선택된 상태로 유지됩니다. SHIFT를 계속 누르고 있는 것과 같은 효과입니다.
offerHints: offerHints:
title: 힌트와 튜토리얼 title: 힌트와 튜토리얼
description: >- description: >-
이것을 끄면 힌트와 튜토리얼이 나오지 않습니다. 또한 게임에 쉽게 들어가기 위해서 주어진 레벨에서 특정 UI 요소를 숨길 수도 있습니다. 이것을 끄면 힌트와 튜토리얼이 나오지 않습니다. 또한 특정 UI 요소를 지정된 레벨까지 숨겨 게임에 쉽게 들어갈 수 있습니다.
enableTunnelSmartplace: enableTunnelSmartplace:
title: 스마트 터널 title: 스마트 터널
@ -725,14 +728,14 @@ settings:
또한, 터널을 당겨서 남는 터널을 없앱니다. 또한, 터널을 당겨서 남는 터널을 없앱니다.
vignette: vignette:
title: 삽화 title: 비네트 효과
description: >- description: >-
화면의 코너를 어둡게 만들어 텍스트를 읽기 쉽게 해주는 삽화를 활성화 시킵니다. 화면의 모서리를 어둡게 만들어 텍스트를 읽기 쉽게 해주는 비네트 효과를 활성화 시킵니다.
autosaveInterval: autosaveInterval:
title: 자동저장 주기 title: 자동저장 주기
description: >- description: >-
자동저장을 얼마나 자주 할 것인지 정합니다. 자동저장기능을 끌 수도 있습니다. 자동저장을 얼마나 자주 할 것인지 정합니다. 자동저장 기능을 끌 수도 있습니다.
intervals: intervals:
one_minute: 1분 one_minute: 1분
two_minutes: 2분 two_minutes: 2분
@ -772,8 +775,8 @@ keybindings:
navigation: 둘러보기 navigation: 둘러보기
placement: 놓기 placement: 놓기
massSelect: 다중 선택 massSelect: 다중 선택
buildings: 건물 쇼트컷 buildings: 건물 단축키
placementModifiers: 배치 수정기 placementModifiers: 배치 옵션
mappings: mappings:
confirm: 확인 confirm: 확인
@ -818,18 +821,18 @@ keybindings:
massSelectCut: 영역 자르기 massSelectCut: 영역 자르기
placementDisableAutoOrientation: 자동 회전 끄기 placementDisableAutoOrientation: 자동 회전 끄기
placeMultiple: 배치 모드에 있기 placeMultiple: 배치 모드 유지
placeInverse: 자동 벨트 회전 뒤집기 placeInverse: 반대 방향으로 벨트 배치
exportScreenshot: 공장 전체를 이미지로 내보내기 exportScreenshot: 공장 전체를 이미지로 내보내기
mapMoveFaster: 더 빠르게 움직이기 mapMoveFaster: 더 빠르게 움직이기
lockBeltDirection: 벨트 플래너 활성화 lockBeltDirection: 벨트 플래너 활성화
switchDirectionLockSide: "플래너: 방향 바꾸기" switchDirectionLockSide: "플래너: 방향 바꾸기"
pipette: 피펫 pipette: 스포이드
menuClose: Close Menu menuClose: 메뉴 닫기
switchLayers: Switch layers switchLayers: 레이어 전환
advanced_processor: Color Inverter advanced_processor: 색 반전기
energy_generator: Energy Generator energy_generator: 발전기
wire: Energy Wire wire: 전선
about: about:
title: 이 게임의 정보 title: 이 게임의 정보

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: Unknown Level savegameLevelUnknown: Unknown Level
continue: Continue continue: Continue
newGame: New Game newGame: New Game
madeBy: Made by <author-link> madeBy: Made by <author-link>
@ -491,6 +490,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter clockwise by 90 degrees. description: Rotates shapes counter clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -632,8 +634,9 @@ storyRewards:
settings: settings:
title: Settings title: Settings
categories: categories:
game: Game general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -842,9 +845,9 @@ about:
If you want to contribute, check out <a href="<githublink>" If you want to contribute, check out <a href="<githublink>"
target="_blank">shapez.io on github</a>.<br><br> target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community This game wouldn't have been possible without the great Discord community
around my games - You should really join the <a href="<discordlink>" around my games - You should really join the <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" The soundtrack was made by <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - He's awesome.<br><br> target="_blank">Peppsen</a> - He's awesome.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -30,11 +30,11 @@ 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 een spel dat draait om het bouwen van fabrieken om steeds complexere vormen te produceren en deze productie te automatiseren in een oneindig groot speelveld. shapez.io is een spel dat draait om het bouwen van fabrieken om steeds complexere vormen te produceren en deze productie te automatiseren in een oneindig groot speelveld.
Door het leveren van de gevraagde vormen, kom je verder in het spel en ontgrendel je upgrades waar je fabriek sneller van wordt. Door het leveren van de gevraagde vormen, kom je verder in het spel en ontgrendel je upgrades waar je fabriek sneller van wordt.
De vraag naar vormen wordt steeds groter, wat betekent dat je de fabriek moet uitbreiden om de vraag tegemoet te komen. Om de juiste grondstoffen te delven zul je steeds verder in het [b]oneindig grote speelveld[/b] moeten gaan werken! De vraag naar vormen wordt steeds groter, wat betekent dat je de fabriek moet uitbreiden om de vraag tegemoet te komen. Om de juiste grondstoffen te delven zul je steeds verder in het [b]oneindig grote speelveld[/b] moeten gaan werken!
Omdat simpele vormen snel saai worden, moet je kleuren mengen om de vormen te verven - Combineer rode, groene en blauwe grondstoffen om verschillende kleuren te produceren en gebruik deze om de vormen te verven, zodat je de vraag hiernaar tegemoet kan komen. Omdat simpele vormen snel saai worden, moet je kleuren mengen om de vormen te verven - Combineer rode, groene en blauwe grondstoffen om verschillende kleuren te produceren en gebruik deze om de vormen te verven, zodat je de vraag hiernaar tegemoet kan komen.
Dit spel bevat 18 levels (Waar je al uren mee bezig zal zijn!), maar ik ben continu bezig om het spel uit te breiden - er staat veel in de planning! Dit spel bevat 18 levels (Waar je al uren mee bezig zal zijn!), maar ik ben continu bezig om het spel uit te breiden - er staat veel in de planning!
@ -45,12 +45,12 @@ steamPage:
[list] [list]
[*] Donkere modus [*] Donkere modus
[*] Oneindig veel markeringen [*] Oneindig veel markeringen
[*] Oneindig veel savegames [*] Oneindig veel savegames
[*] Extra opties [*] Extra opties
[*] Binnenkort: Kabels & Energie! Hopelijk vanaf eind juli 2020. [*] Binnenkort: Kabels & Energie! Hopelijk vanaf eind juli 2020.
[*] Binnenkort: Meer Levels [*] Binnenkort: Meer Levels
[*] Helpt mij om shapez.io verder te ontwikkelen ❤️ [*] Help mij om shapez.io verder te ontwikkelen ❤️
[/list] [/list]
[b]Geplande Updates[/b] [b]Geplande Updates[/b]
@ -69,7 +69,7 @@ steamPage:
[b]Dit spel is open source![/b] [b]Dit spel is open source![/b]
Iedreen kan bijdragen. Ik ben actief in de community en probeer naar alle suggesties en feedback te kijken en deze mee te nemen in de ontwikkeling. Iedereen kan bijdragen. Ik ben actief in de community en probeer naar alle suggesties en feedback te kijken en deze op te nemen in de ontwikkeling.
Bekijk mijn trello-bord voor het volledige stappenplan! Bekijk mijn trello-bord voor het volledige stappenplan!
[b]Links[/b] [b]Links[/b]
@ -90,7 +90,7 @@ global:
# 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: ","
@ -141,7 +141,7 @@ mainMenu:
changelog: Changelog changelog: Changelog
importSavegame: Importeren importSavegame: Importeren
openSourceHint: Dit spel is open source! openSourceHint: Dit spel is open source!
discordLink: Officiële discord-server (Engelstalig) discordLink: Officiële Discord-server (Engelstalig)
helpTranslate: Help met vertalen! helpTranslate: Help met vertalen!
# 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.
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: Onbekend Level savegameLevelUnknown: Onbekend Level
continue: Verder continue: Verder
newGame: Nieuw Spel newGame: Nieuw Spel
madeBy: Gemaakt door <author-link> madeBy: Gemaakt door <author-link>
@ -172,12 +171,12 @@ dialogs:
showKeybindings: Zie Sneltoetsen showKeybindings: Zie Sneltoetsen
importSavegameError: importSavegameError:
title: Import Error title: Importeer error
text: >- text: >-
Het importeren van je savegame is mislukt: Het importeren van je savegame is mislukt:
importSavegameSuccess: importSavegameSuccess:
title: Savegame Geïmporteerd title: Savegame geïmporteerd
text: >- text: >-
Je savegame is succesvol geïmporteerd. Je savegame is succesvol geïmporteerd.
@ -227,7 +226,7 @@ dialogs:
Dit zijn de veranderingen sinds je voor het laatst gespeeld hebt: Dit zijn de veranderingen sinds je voor het laatst gespeeld hebt:
upgradesIntroduction: upgradesIntroduction:
title: Ontgrendel Upgrades title: Ontgrendel upgrades
desc: >- desc: >-
Alle vormen die je produceert kunnen gebruikt worden om upgrades te ontgrendelen - <strong>vernietig je oude fabrieken niet!</strong> Alle vormen die je produceert kunnen gebruikt worden om upgrades te ontgrendelen - <strong>vernietig je oude fabrieken niet!</strong>
Het upgrades-tabblad staat in de rechterbovenhoek van het scherm. Het upgrades-tabblad staat in de rechterbovenhoek van het scherm.
@ -349,7 +348,7 @@ ingame:
dataSources: dataSources:
stored: stored:
title: In opslag title: In opslag
description: Geeft weer hoe veel vormen er zijn opgeslagen in de HUB. description: Geeft alle vormen weer die opgeslagen zijn in de HUB.
produced: produced:
title: Geproduceerd title: Geproduceerd
description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten. description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten.
@ -484,6 +483,9 @@ buildings:
ccw: ccw:
name: Roteerder (andersom) name: Roteerder (andersom)
description: Draait vormen 90 graden tegen de klok in. description: Draait vormen 90 graden tegen de klok in.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -501,7 +503,7 @@ buildings:
description: &painter_desc Verft de volledige vorm in de linker input met de kleur van de rechter input. description: &painter_desc Verft de volledige vorm in de linker input met de kleur van de rechter input.
double: double:
name: Verver (Dubbel) name: Verver (Dubbel)
description: Verft de vormen in de linker inputs met de kleur van de rechter input. description: Verft de vormen in de linker input met de kleur van de rechter input.
quad: quad:
name: Verver (Quad) name: Verver (Quad)
description: Verft elke kwart van de vorm een andere kleur. description: Verft elke kwart van de vorm een andere kleur.
@ -630,8 +632,9 @@ storyRewards:
settings: settings:
title: Opties title: Opties
categories: categories:
game: Spel general: General
app: Applicatie userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Ontwikkeling dev: Ontwikkeling
@ -649,7 +652,7 @@ settings:
small: Klein small: Klein
regular: Middel regular: Middel
large: Groot large: Groot
huge: Wumbo huge: Jumbo
scrollWheelSensitivity: scrollWheelSensitivity:
title: Zoom-gevoeligheid title: Zoom-gevoeligheid
@ -840,9 +843,9 @@ about:
Als je ook bij wil dragen, ga dan naar <a href="<githublink>" Als je ook bij wil dragen, ga dan naar <a href="<githublink>"
target="_blank">shapez.io op github</a>.<br><br> target="_blank">shapez.io op github</a>.<br><br>
Dit spel was niet mogelijk geweest zonder de geweldige discord community Dit spel was niet mogelijk geweest zonder de geweldige Discord community
rondom mijn spellen - Je zou eens lid moeten worden van de <a href="<discordlink>" rondom mijn spellen - Je zou eens lid moeten worden van de <a href="<discordlink>"
target="_blank">discord server</a> (engelstalig)!<br><br> target="_blank">Discord server</a> (engelstalig)!<br><br>
De muziek is gemaakt door <a href="https://soundcloud.com/pettersumelius" De muziek is gemaakt door <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Hij is geweldig.<br><br> target="_blank">Peppsen</a> - Hij is geweldig.<br><br>

View File

@ -15,13 +15,13 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io er et spill som handler om å bygge fabrikker for å automatisere produksjon og kombinering av former med økende kompleksitet på et ubegrenset brett. shortText: shapez.io er et spill som handler om å bygge fabrikker for å automatisere produksjon og kombinasjon av former med økende kompleksitet på et uendelig ekspanderende brett.
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
@ -30,59 +30,59 @@ 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. Shapez.io er et spill som handler om å bygge fabrikker for å automatisere produksjon og kombinasjon av former med økende kompleksitet på et uendelig ekspanderende brett.
Upon delivering the requested shapes you will progress within the game and unlock upgrades to speed up your factory. Ved leveranse av de forespurte formene vil du komme videre i spillet og låse opp oppgraderinger for å øke farten på fabrikken din
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]! Etter hvert som forespørselen av former øker, vil du være nødt til å utvide fabrikken din for å møte etterspørselen - Ikke glem ressursene, du vil bli nødt til å utvide over det [b]uendelige brettet[/b]!
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. Snart blir du nødt til å plande farger og male formene dine med dem - Kombiner røde, grønne og blåe farge ressurser for å produsere forskjellige farger og male former med dem for å tilfredstille etterspørselen.
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! Dette spillet har 18 progressive nivåer (Noe som burde holde deg opptatt i flere timer allerede!) men jeg legger stadig til nytt innhold - Det er mye som er planlagt!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Kjøp av spillet gir deg tilgang til den frittstående versjonen som har mange tilleggsfunksjoner og du vil også få tilgang til nyutviklede funksjoner.
[b]Standalone Advantages[/b] [b]Frittstående fordeler[/b]
[list] [list]
[*] Dark Mode [*] Mørk Modus
[*] Unlimited Waypoints [*] Ubegrensede Veipunkter
[*] Unlimited Savegames [*] Uendelige Lagringsfiler
[*] Additional settings [*] Tilleggsinnstillinger
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] Kommer snart: Ledninger og strøm! Sikter mot (omtrent) slutten av Juli 2020.
[*] Coming soon: More Levels [*] Kommer snart: Flere Nivåer
[*] Allows me to further develop shapez.io ❤️ [*] Tillater meg å fortsette å utvikle shapez.io ❤️
[/list] [/list]
[b]Future Updates[/b] [b]Fremtidige Oppdateringer[/b]
I am updating the game very often and trying to push an update at least every week! Jeg oppdaterer spillet veldig ofte og prøver å presse inn en oppdatering i det minste hver uke!
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] Forskjellige baner og utfordringer (f.eks. baner med hindringer)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] Gåter (lever den forspurte formen med et begrenset område / sett med bygninger)
[*] A story mode where buildings have a cost [*] En historiemodus der bygninger har en pris
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] Konfigurerbar kartgenerator (Konfigurer ressurser/former, størrelse/tetthet, seed og mer)
[*] Additional types of shapes [*] Flere typer former
[*] Performance improvements (The game already runs pretty well!) [*] Ytelsesforbedringer (Spillet kjører allerede ganske bra!)
[*] And much more! [*] Og mye mer!
[/list] [/list]
[b]This game is open source![/b] [b]Dette spillet er åpen kildekode![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. Hvem som helst kan bidra, Jeg er aktivt involvert i samfunnet og forsøker å gå gjennom alle forslag og ta tilbakemelding i betraktning der det er mulig.
Be sure to check out my trello board for the full roadmap! Sørg for å sjekke trello panelet mitt for hele veikartet!
[b]Links[/b] [b]Lenker[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]Offisiell Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]Veikart[/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]Kildekode (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]Hjelp til å oversette[/url]
[/list] [/list]
discordLink: Official Discord - Chat with me! discordLink: Offisiell Discord - Chat med meg!
global: global:
loading: Laster loading: Laster
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Nivå <x> savegameLevel: Nivå <x>
savegameLevelUnknown: Ukjent Nivå savegameLevelUnknown: Ukjent Nivå
continue: Fortsett continue: Fortsett
newGame: Nytt Spill newGame: Nytt Spill
madeBy: Laget av <author-link> madeBy: Laget av <author-link>
@ -488,6 +487,9 @@ buildings:
ccw: ccw:
name: Roter (Mot klokken) name: Roter (Mot klokken)
description: Roter objekter mot klokken, 90 grader. description: Roter objekter mot klokken, 90 grader.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -629,8 +631,9 @@ storyRewards:
settings: settings:
title: Instillinger title: Instillinger
categories: categories:
game: Spill general: General
app: Applikasjon userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Utvikling dev: Utvikling
@ -839,7 +842,7 @@ 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 fantastidke 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>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -156,7 +156,6 @@ mainMenu:
savegameLevel: Poziom <x> savegameLevel: Poziom <x>
savegameLevelUnknown: Nieznany poziom savegameLevelUnknown: Nieznany poziom
madeBy: Gra wykonana przez <author-link> madeBy: Gra wykonana przez <author-link>
subreddit: Reddit subreddit: Reddit
@ -500,6 +499,9 @@ buildings:
ccw: ccw:
name: Obracacz (Przeciwny kierunek) name: Obracacz (Przeciwny kierunek)
description: Obraca kształt przeciwnie do ruchu wskazówek zegara o 90 stopni. description: Obraca kształt przeciwnie do ruchu wskazówek zegara o 90 stopni.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -653,8 +655,9 @@ storyRewards:
settings: settings:
title: Ustawienia title: Ustawienia
categories: categories:
game: Gra general: General
app: Aplikacja userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Wersja Rozwojowa dev: Wersja Rozwojowa

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -30,59 +30,59 @@ 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. shapez.io é um jogo sobre construir fábricas, automatizando a criação e combinação de formas cada vez mais complexas num mapa infinito.
Upon delivering the requested shapes you will progress within the game and unlock upgrades to speed up your factory. Após a entrega das formas requisitadas você progredirá no jogo e desbloqueará melhorias para acelerar sua fábrica.
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]! Conforme sua demanda por formas aumenta, você irá que aumentar sua fábrica para alcançar-la - Mas não se esqueça dos recursos, você precisará expandir pelo [b]mapa infinito[/b]!
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. Rapidamente você vai ter que misturar cores e pintar suas formas com elas - Combine recursos vermelhos, verdes e azuis para produzir cores diferentes e pintar formas com elas para satisfazer a demanda.
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! O jogo contém 18 níveis progressivos (Que já devem manter você ocupado por horas!) mas eu adiciono novo contéudo constantemente - Tem bastante coisa já planejada!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Comprando o jogo você terá acesso à versão completa, que contém recursos adicionais, e além disso você também terá acesso aos recursos que seram desenvolvidos.
[b]Standalone Advantages[/b] [b]Vantagens da versão completa[/b]
[list] [list]
[*] Dark Mode [*] Modo Escuro
[*] Unlimited Waypoints [*] Pontos de Referência Ilimitados
[*] Unlimited Savegames [*] Quantidade de Saves Ilimitada
[*] Additional settings [*] Configurações adicionais
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] Em Breve: Fios e Energia! Previsto para (mais ou menos) o fim de Julho de 2020.
[*] Coming soon: More Levels [*] Em Breve: Mais Níveis
[*] Allows me to further develop shapez.io ❤️ [*] Me permite desenvolver shapez.io ❤️
[/list] [/list]
[b]Future Updates[/b] [b]Atualizações Futuras[/b]
I am updating the game very often and trying to push an update at least every week! Eu lanço atualizações frequentemente e estou tentando lançar pelo menos um por semana!
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] Mapas diferentes e desafios (por exemplo mapas com obstáculos)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] Puzzles (Entregue a forma pedida com uma área restringida ou um certo conjunto de construções)
[*] A story mode where buildings have a cost [*] Um modo história onde as construções têm um custo
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] Um geredor de mapa customizável (Configure recursos, forma, tamanho, densidade, semente e mais)
[*] Additional types of shapes [*] Mais tipos de formas
[*] Performance improvements (The game already runs pretty well!) [*] Melhorias de desempenho (O jogo já roda bem!)
[*] And much more! [*] E muito mais!
[/list] [/list]
[b]This game is open source![/b] [b]Esse jogo tem código aberto![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. Qualquer um pode contribuir, eu estou ativamente envolvido com a comunidade e tento ler todas as sugestões e levar o feedback em consideração quando possível.
Be sure to check out my trello board for the full roadmap! Para uma lista completa dos planos para o futuro, não se esqueça de dar uma olhada no meu quadro do Trello!
[b]Links[/b] [b]Links[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]Discord oficial[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]Planos para o futuro[/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]Código fonte(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]Ajude a traduzir[/url]
[/list] [/list]
discordLink: Official Discord - Chat with me! discordLink: Discord Oficial - Converse comigo!
global: global:
loading: Carregando loading: Carregando
@ -150,7 +150,6 @@ mainMenu:
savegameLevel: Nível <x> savegameLevel: Nível <x>
savegameLevelUnknown: Nível desconhecido savegameLevelUnknown: Nível desconhecido
helpTranslate: Ajude a traduzir! helpTranslate: Ajude a traduzir!
continue: Continuar continue: Continuar
newGame: Novo jogo newGame: Novo jogo
@ -166,7 +165,7 @@ dialogs:
restart: Reiniciar restart: Reiniciar
reset: Reset reset: Reset
getStandalone: Obter versão completa getStandalone: Obter versão completa
deleteGame: Sei o que faço deleteGame: Sei o que estou fazendo
viewUpdate: Atualizações viewUpdate: Atualizações
showUpgrades: Ver melhorias showUpgrades: Ver melhorias
showKeybindings: Controles showKeybindings: Controles
@ -247,20 +246,21 @@ dialogs:
desc: >- desc: >-
Este jogo possui muitas combinações de teclas que facilitam a construção de grandes fábricas Este jogo possui muitas combinações de teclas que facilitam a construção de grandes fábricas
Aqui estão algumas, certifique-se de <strong> verificar as combinações de teclas </strong>!<br><br> Aqui estão algumas, certifique-se de <strong> verificar as combinações de teclas </strong>!<br><br>
<code class='keybinding'>CTRL</code> + Arrastar: Seleciona área para copiar / delete.<br> <code class='keybinding'>CTRL</code> + Arrastar: Seleciona área para copiar/deletar.<br>
<code class='keybinding'>SHIFT</code>: Mantenha pressionado para colocar vária construções.<br> <code class='keybinding'>SHIFT</code>: Mantenha pressionado para colocar várias construções.<br>
<code class='keybinding'>ALT</code>: Inverte as posições.<br> <code class='keybinding'>ALT</code>: Inverte as posições.<br>
createMarker: createMarker:
title: Nova Marcação title: Nova Marcação
desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>) desc: Dê um nome com significado, também pode adicionar <strong>um pequeno código</strong> de uma forma. (Pode ser gerado <a href="https://viewer.shapez.io" target="_blank">aqui</a>)
titleEdit: Edit Marker titleEdit: Editar Marcador
markerDemoLimit: markerDemoLimit:
desc: >- desc: >-
Você só pode criar dois marcadores na versão demo. Adquira a versão completa para marcadores ilimitados! Você só pode criar dois marcadores na versão demo. Adquira a versão completa para marcadores ilimitados!
massCutConfirm: massCutConfirm:
title: Confirm cut title: Confirmar corte
desc: >- desc: >-
Você está cortando vários objetos (<count> para ser exato)! Você quer continuar? Você está cortando vários objetos (<count> para ser exato)! Você quer continuar?
@ -270,7 +270,7 @@ dialogs:
Você está prestes a exportar uma captura de tela da sua base. Note que isso pode ser bastante lento para uma base grande, e até mesmo pode travar o jogo! Você está prestes a exportar uma captura de tela da sua base. Note que isso pode ser bastante lento para uma base grande, e até mesmo pode travar o jogo!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Confirmar Corte
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: You can not afford to paste this area! Are you sure you want to cut it?
ingame: ingame:
@ -290,13 +290,14 @@ ingame:
delete: Destruir delete: Destruir
selectBuildings: Selecionar área selectBuildings: Selecionar área
pasteLastBlueprint: Colar último projeto pasteLastBlueprint: Colar último projeto
lockBeltDirection: Enable belt planner
lockBeltDirection: Ativar Planejador de Esteiras
plannerSwitchSide: Flip planner side plannerSwitchSide: Flip planner side
cutSelection: Cut cutSelection: Cortar
copySelection: Copy copySelection: Copiar
clearSelection: Clear Selection clearSelection: Limpar Seleção
pipette: Pipette pipette: Conta-Gotas
switchLayers: Switch layers switchLayers: Trocar Camadas
# 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)
@ -350,13 +351,13 @@ ingame:
dataSources: dataSources:
stored: stored:
title: Estoque title: Estoque
description: Exibindo a quantidade de formas armazenadas em seu edifício central. description: Exibindo a quantidade de formas armazenadas em sua construção central.
produced: produced:
title: Produção title: Produção
description: Exibindo todas as formas que toda a sua fábrica produz, incluindo produtos intermediários.. description: Exibindo todas as formas que toda a sua fábrica produz, incluindo produtos intermediários..
delivered: delivered:
title: Entregue title: Entregue
description: Exibindo formas entregues ao seu edifício central.. description: Exibindo formas entregues na sua construção central.
noShapesProduced: Nenhuma forma foi produzida até o momento. noShapesProduced: Nenhuma forma foi produzida até o momento.
# Displays the shapes per minute, e.g. '523 / m' # Displays the shapes per minute, e.g. '523 / m'
@ -403,19 +404,19 @@ ingame:
Este <strong> NÃO </strong> é um jogo inativo! Construa mais extratores e esteiras para concluir o objetivo mais rapidamente.<br><br>Dica, segure <strong> SHIFT </strong> para colocar vários extratores e use <strong> R </strong> para girá-los. Este <strong> NÃO </strong> é um jogo inativo! Construa mais extratores e esteiras para concluir o objetivo mais rapidamente.<br><br>Dica, segure <strong> SHIFT </strong> para colocar vários extratores e use <strong> R </strong> para girá-los.
colors: colors:
red: Red red: Vermelho
green: Green green: Verde
blue: Blue blue: Azul
yellow: Yellow yellow: Amarelo
purple: Purple purple: Roxo
cyan: Cyan cyan: Ciano
white: White white: Branco
uncolored: No color black: Preto
black: Black uncolored: Sem cor
shapeViewer: shapeViewer:
title: Layers title: Camadas
empty: Empty empty: Vazio
copyKey: Copy Key copyKey: Copiar Chave
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -428,11 +429,11 @@ shopUpgrades:
description: Velocidade x<currentMult> → x<newMult> description: Velocidade x<currentMult> → x<newMult>
processors: processors:
name: Corte, Rotação e Empilhamento name: Corte, Rotação & Montagem
description: Velocidade x<currentMult> → x<newMult> description: Velocidade x<currentMult> → x<newMult>
painting: painting:
name: Mistura de cores e pintura name: Mistura & Pintura
description: Velocidade x<currentMult> → x<newMult> description: Velocidade x<currentMult> → x<newMult>
# Buildings and their name / description # Buildings and their name / description
@ -448,30 +449,30 @@ buildings:
description: Coloque sobre uma forma ou cor para extraí-la. description: Coloque sobre uma forma ou cor para extraí-la.
chainable: chainable:
name: Extrator em Cadeia name: Extrator (em Cadeia)
description: Coloque sobre uma forma ou cor para extraí-la. Pode ser ligado a outros extratores. description: Coloque sobre uma forma ou cor para extraí-la. Pode ser ligado a outros extratores.
underground_belt: # Internal name for the Tunnel underground_belt: # Internal name for the Tunnel
default: default:
name: &underground_belt Túnel name: &underground_belt Túnel
description: Permite transportar recursos sob construções. description: Permite transportar recursos por baixo de construções e esteiras.
tier2: tier2:
name: Túnel Classe II name: Túnel Classe II
description: Permite transportar recursos sob construções. description: Permite transportar recursos por baixo de construções e esteiras.
splitter: # Internal name for the Balancer splitter: # Internal name for the Balancer
default: default:
name: &splitter Balanceador name: &splitter Distribuidor
description: Multifuncional - Distribui uniformemente todas as entradas em todas as saídas. description: Multifuncional - Distribui uniformemente todas as entradas em todas as saídas.
compact: compact:
name: Balanceador (compacto) name: Misturador (compacto)
description: Mescla duas esteiras transportadoras em uma. description: Une duas esteiras transportadoras em uma.
compact-inverse: compact-inverse:
name: Balanceador (compacto) name: Misturador (compacto)
description: Mescla duas esteiras transportadoras em uma. description: Une duas esteiras transportadoras em uma.
cutter: cutter:
default: default:
@ -488,11 +489,14 @@ buildings:
ccw: ccw:
name: Rotacionador (Anti-horário) name: Rotacionador (Anti-horário)
description: Gira as formas no sentido anti-horário em 90 graus. description: Gira as formas no sentido anti-horário em 90 graus.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
name: &stacker Empilhador name: &stacker Empilhador
description: Empilha os dois itens. Se eles não puderem ser mesclados, o item direito será colocado acima do item esquerdo. description: Empilha os dois itens. Se eles não puderem ser unidos, o item direito será colocado acima do item esquerdo.
mixer: mixer:
default: default:
@ -527,31 +531,32 @@ buildings:
levelShortcut: LVL levelShortcut: LVL
wire: wire:
default: default:
name: Energy Wire name: &wire Fio de Energia
description: Allows you to transport energy.
description: Permite transportar energia.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: &advanced_processor Inversor de Cor
description: Accepts a color or shape and inverts it. description: Aceita uma cor ou forma e a inverte.
energy_generator: energy_generator:
deliver: Deliver deliver: Entregar
toGenerateEnergy: For toGenerateEnergy: Para
default: default:
name: Energy Generator name: &energy_generator Gerador de Energia
description: Generates energy by consuming shapes. description: Consome formas para gerar energia.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: &wire_crossings Divisor de Fios
description: Splits a energy wire into two. description: Divide um fio de energia em dois.
merger: merger:
name: Wire Merger name: Misturador de Fios
description: Merges two energy wires into one. description: Une dois fios de energia em um.
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: Cortando formas title: Cortando formas
desc: Voce desbloqueou <strong>cortador</strong> - corte de formas pela metade <strong>verticalmente</strong> independentemente de sua orientação!<br><br> Certifique-se de se livrar do lixo, ou então <strong> ele irá parar a produção </strong> - Para esse propósito, eu lhe dei um lixo, que destrói tudo o que você coloca nele. desc: Voce desbloqueou <strong>cortador</strong> - corte de formas pela metade <strong>verticalmente</strong> independentemente de sua orientação!<br><br> Certifique-se de se livrar do lixo, ou então <strong> ele irá parar a produção </strong> - Para esse propósito, eu lhe dei uma lixeira, que destrói tudo o que você coloca nela!
reward_rotater: reward_rotater:
title: Rotação title: Rotação
@ -560,7 +565,7 @@ storyRewards:
reward_painter: reward_painter:
title: Pintura title: Pintura
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! O <strong>Pintor</strong> foi desbloqueado - Extrai alguns pigmentos coloridos (assim como você fez com as formas) e combina-os com uma forma no pintor para os colorir!<br><br>PS: Se for daltônico, existe um <strong>modo daltônico</strong> nas definições!
reward_mixer: reward_mixer:
title: Misturando cores title: Misturando cores
@ -571,8 +576,8 @@ storyRewards:
desc: Agora você pode combinar formas com o <strong>empilhador</strong>! Ambas as entradas são combinadas e, se puderem ser colocadas próximas uma da outra, serão <strong> fundidas </strong>. Caso contrário, a entrada direita é <strong>empilhada em cima</strong> da entrada esquerda! desc: Agora você pode combinar formas com o <strong>empilhador</strong>! Ambas as entradas são combinadas e, se puderem ser colocadas próximas uma da outra, serão <strong> fundidas </strong>. Caso contrário, a entrada direita é <strong>empilhada em cima</strong> da entrada esquerda!
reward_splitter: reward_splitter:
title: Balanceador title: Distribuidor
desc: O <strong>balanceador</strong> multifuncional foi desbloqueado - pode ser usado para construir fábricas maiores <strong>dividindo e unindo itens</strong> em múltiplas esteiras!<br><br> desc: O <strong>Distribuidor</strong> multifuncional foi desbloqueado - pode ser usado para construir fábricas maiores <strong>dividindo e unindo itens</strong> em múltiplas esteiras!<br><br>
reward_tunnel: reward_tunnel:
title: Túnel title: Túnel
@ -591,8 +596,8 @@ storyRewards:
desc: Você desbloqueou uma nova variante do <strong>túnel</strong> - ele tem um <strong>maior alcance</strong>, e também pode atravessar outros túneis na mesma linha! desc: Você desbloqueou uma nova variante do <strong>túnel</strong> - ele tem um <strong>maior alcance</strong>, e também pode atravessar outros túneis na mesma linha!
reward_splitter_compact: reward_splitter_compact:
title: Balanceador compacto title: Distribuidor compacto
desc: Você desbloqueou uma variante compacta do <strong>balanceador</strong> - ele aceita duas entradas e as mescla em uma! desc: Você desbloqueou uma variante compacta do <strong>Distribuidor</strong> - ele aceita duas entradas e as une em uma!
reward_cutter_quad: reward_cutter_quad:
title: Cortador quádruplo title: Cortador quádruplo
@ -616,7 +621,7 @@ storyRewards:
reward_blueprints: reward_blueprints:
title: Projetos title: Projetos
desc: Agora você pode <strong>copiar e colar</strong> partes de sua fábrica! Selecione uma área (mantenha pressionada a tecla CTRL e arraste com o mouse) e pressione 'C' para copiá-la. <br><br>Colar <strong>não é de graça</strong>, é necessário produzir <strong>formas de projeto</strong> para pagar! (Aquelas que você acabou de entregar). desc: Agora você pode <strong>copiar e colar</strong> partes de sua fábrica! Selecione uma área (mantenha pressionada a tecla CTRL e arraste com o mouse) e pressione 'C' para copiá-la. <br><br>Colar <strong>não é de graça</strong>, é necessário produzir <strong>formas do projeto</strong> para pagar! (Aquelas que você acabou de entregar).
# 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:
@ -627,13 +632,14 @@ storyRewards:
no_reward_freeplay: no_reward_freeplay:
title: Próximo nível title: Próximo nível
desc: >- desc: >-
Parabéns! Não se esqueça, existe muita coisa planejada para a versão completa. Parabéns! Aliás, mais conteúdo vindo na versão completa!
settings: settings:
title: opções title: opções
categories: categories:
game: Jogo general: General
app: Aplicação userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Desenvolvedor dev: Desenvolvedor
@ -675,9 +681,9 @@ settings:
Se ligado o jogo fica mudo Se ligado o jogo fica mudo
musicMuted: musicMuted:
title: Musica title: Música
description: >- description: >-
Se ligado, a musica fica muda. Se ligado, a música fica muda.
theme: theme:
title: Tema title: Tema
@ -696,12 +702,12 @@ settings:
alwaysMultiplace: alwaysMultiplace:
title: Multiplicidade title: Multiplicidade
description: >- description: >-
Se ativado, todos os edifícios permanecerão selecionados após o posicionamento até que você o cancele. Isso é equivalente a manter SHIFT permanentemente. Se ativado, todas as construções permanecerão selecionadas após o posicionamento até que você a cancele. Isso é equivalente a pressionar SHIFT permanentemente.
offerHints: offerHints:
title: Dicas e tutoriais title: Dicas e tutoriais
description: >- description: >-
Se serão oferecidas dicas e tutoriais enquanto estiver jogando. Se ativado, oferece dicas e tutoriais enquanto se joga. Além disso, esconde certos elementos da interface até certo ponto, para facilitar o começo do jogo.
language: language:
title: Idioma title: Idioma
@ -742,9 +748,9 @@ settings:
twenty_minutes: 20 Minutos twenty_minutes: 20 Minutos
disabled: Desativado disabled: Desativado
compactBuildingInfo: compactBuildingInfo:
title: Informações compactas sobre edifícios title: Informações compactas sobre construções
description: >- description: >-
Reduz as caixas de informações dos edifícios, mostrando apenas suas proporções. Reduz as caixas de informações dos construções, mostrando apenas suas proporções.
Caso contrário, uma descrição e imagem são mostradas. Caso contrário, uma descrição e imagem são mostradas.
disableCutDeleteWarnings: disableCutDeleteWarnings:
title: Desativar avisos de recorte / exclusão title: Desativar avisos de recorte / exclusão
@ -794,18 +800,25 @@ keybindings:
menuOpenStats: Estatísticas menuOpenStats: Estatísticas
toggleHud: Ocultar Interface toggleHud: Ocultar Interface
toggleFPSInfo: Mostar FPS toggleFPSInfo: Mostrar FPS e Debug Info
switchLayers: Alternar Camadas
exportScreenshot: Exportar Base inteira como Imagem
belt: *belt belt: *belt
splitter: *splitter splitter: *splitter
underground_belt: *underground_belt underground_belt: *underground_belt
miner: *miner miner: *miner
cutter: *cutter cutter: *cutter
advanced_processor: *advanced_processor
rotater: *rotater rotater: *rotater
stacker: *stacker stacker: *stacker
mixer: *mixer mixer: *mixer
energy_generator: *energy_generator
painter: *painter painter: *painter
trash: *trash trash: *trash
wire: *wire
pipette: Conta-Gotas
rotateWhilePlacing: Rotacionar rotateWhilePlacing: Rotacionar
rotateInverseModifier: >- rotateInverseModifier: >-
Modifier: Rotação anti-horária Modifier: Rotação anti-horária
@ -822,16 +835,10 @@ keybindings:
placeInverse: Inverter orientação de esteira placeInverse: Inverter orientação de esteira
pasteLastBlueprint: Colar último projeto pasteLastBlueprint: Colar último projeto
massSelectCut: Cortar área massSelectCut: Cortar área
exportScreenshot: Exportar base inteira como imagem
mapMoveFaster: Mover mais rápido mapMoveFaster: Mover mais rápido
lockBeltDirection: Ativar planejador de correia lockBeltDirection: Ativar planejador de correia
switchDirectionLockSide: "Planejador: Mudar de lado" switchDirectionLockSide: "Planejador: Mudar de lado"
pipette: Pipeta menuClose: Fechar Menu
menuClose: Close Menu
switchLayers: Switch layers
advanced_processor: Color Inverter
energy_generator: Energy Generator
wire: Energy Wire
about: about:
title: Sobre o jogo title: Sobre o jogo
@ -842,9 +849,9 @@ about:
Se quiser contribuir, confira <a href="<githublink>" Se quiser contribuir, confira <a href="<githublink>"
target="_blank">shapez.io no github</a>.<br><br> target="_blank">shapez.io no github</a>.<br><br>
O jogo não seria possível sem a comunidade incrível do discord sobre O jogo não seria possível sem a comunidade incrível do Discord sobre
os meus jogos - Junte-se à comunidade no <a href="<discordlink>" os meus jogos - Junte-se à comunidade no <a href="<discordlink>"
target="_blank">servidor do discord</a>!<br><br> target="_blank">servidor do Discord</a>!<br><br>
A trilha sonora foi feita por <a href="https://soundcloud.com/pettersumelius" A trilha sonora foi feita por <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Ele é demais.<br><br> target="_blank">Peppsen</a> - Ele é demais.<br><br>
@ -860,8 +867,8 @@ demo:
features: features:
restoringGames: Restaurar jogos salvos restoringGames: Restaurar jogos salvos
importingGames: Carregar jogos salvos importingGames: Carregar jogos salvos
oneGameLimit: Limitado para um jogo salvo oneGameLimit: Limitado a um jogo salvo
customizeKeybindings: Modificar Teclas customizeKeybindings: Modificar Teclas
exportingBase: Exportar base inteira como imagem exportingBase: Exportar Base inteira como Imagem
settingNotAvailable: Não disponível na versão demo. settingNotAvailable: Não disponível na versão demo.

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -30,59 +30,59 @@ 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. shapez.io é um jogo cujo objetivo é construir fábricas para automatizar a criação e fusão de formas geométricas num mapa infinito.
Upon delivering the requested shapes you will progress within the game and unlock upgrades to speed up your factory. Ao entregar as formas pedidas, irás progredir no jogo e irás desbloquear melhorias para acelerar a produção da tua fábrica.
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]! Uma vez que a procura aumenta a cada nível, terás de aumentar a tua fábrica para fazer face às necessidades - Para isso, terás de explorar o [b]mapa infinito[/b] para encontrar todos os recursos!
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. Rapidamente irás precisar de misturar cores e pintar as formas com elas - Combina os recursos de cores vermelha, verde e azul para produzires mais cores e usá-las para pintar as formas geométricas com o intuito de satisfazer a procura.
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! Este jogo conta com 18 níveis (Que deverão manter-te ocupado durante horas!) mas estou constantemente a adicionar novos conteúdos - Há muitas coisas planeadas!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Ao comprares o jogo, terás acesso à versão completa, que contém funcionalidades adicionais, e também a conteúdos desenvolvidos recentemente.
[b]Standalone Advantages[/b] [b]Vantagens do jogo completo[/b]
[list] [list]
[*] Dark Mode [*] Modo escuro
[*] Unlimited Waypoints [*] Marcos ilimitados
[*] Unlimited Savegames [*] Savegames infinitos
[*] Additional settings [*] Mais definições
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] Brevemente: Fios & Energia! Previsto para o final de Julho 2020 (aproximadamente).
[*] Coming soon: More Levels [*] Brevemente: Mais níveis
[*] Allows me to further develop shapez.io ❤️ [*] Possibilita-me desenvolver ainda mais o shapez.io ❤️
[/list] [/list]
[b]Future Updates[/b] [b]Atualizações futuras[/b]
I am updating the game very often and trying to push an update at least every week! Atualizo o jogo frequentemente e tento lançar uma atualização pelo menos todas as semanas!
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] Mapas diferentes e desafios (por exemplo mapas com obstáculos)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] Puzzles (Entrega a forma pedida numa área restrita e/ou com um número limitado de construções)
[*] A story mode where buildings have a cost [*] Modo história onde as construções têm um custo
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] Criação de mapas configuráveis (Editar o número e tamanho das minas, semente, e mais)
[*] Additional types of shapes [*] Mais tipos de formas geométricas
[*] Performance improvements (The game already runs pretty well!) [*] Mais melhorias de performance (Apesar do jogo já correr bastante bem!)
[*] And much more! [*] E muito mais!
[/list] [/list]
[b]This game is open source![/b] [b]Este jogo é open source (código aberto)![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. Qualquer pessoa pode contribuir! Adicionalmente, Eu ouço [b]muito[/b] a comunidade! Eu tento ler todas as sugestões e retirar delas tanto feedback quanto possível.
Be sure to check out my trello board for the full roadmap! Segue o meu trello board para veres todo o roteiro de desenvolvimento!
[b]Links[/b] [b]Ligações[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]Discord oficial[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]Roteiro de desenvolvimento[/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]Código fonte (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]Ajuda a traduzir[/url]
[/list] [/list]
discordLink: Official Discord - Chat with me! discordLink: Discord oficial - Conversa comigo!
global: global:
loading: A carregar loading: A carregar
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Nível <x> savegameLevel: Nível <x>
savegameLevelUnknown: Nível desconhecido savegameLevelUnknown: Nível desconhecido
continue: Continuar continue: Continuar
newGame: Novo Jogo newGame: Novo Jogo
madeBy: Criado por <author-link> madeBy: Criado por <author-link>
@ -252,9 +251,9 @@ dialogs:
<code class='keybinding'>ALT</code>: Inverte as posições.<br> <code class='keybinding'>ALT</code>: Inverte as posições.<br>
createMarker: createMarker:
title: Novo marco title: Novo Marco
desc: Dá-lhe um nome com significado, também poderás adicionar <strong>um pequeno código</strong> de uma forma. (Pode ser gerado <a href="https://viewer.shapez.io" target="_blank">aqui</a>) desc: Dá-lhe um nome com significado, também poderás adicionar <strong>um pequeno código</strong> de uma forma. (Pode ser gerado <a href="https://viewer.shapez.io" target="_blank">aqui</a>)
titleEdit: Edit Marker titleEdit: Editar Marco
markerDemoLimit: markerDemoLimit:
desc: Apenas podes criar dois marcos na versão Demo. Adquire o jogo completo para colocar marcos infinitos! desc: Apenas podes criar dois marcos na versão Demo. Adquire o jogo completo para colocar marcos infinitos!
@ -270,8 +269,8 @@ dialogs:
ser um pouco lento para uma base muito grande até mesmo bloquear o teu jogo! ser um pouco lento para uma base muito grande até mesmo bloquear o teu jogo!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Confirma o corte
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: Não consegues pagar para colar esta área! Tens a certeza que pretendes cortá-la?
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
@ -295,7 +294,7 @@ ingame:
copySelection: Copiar copySelection: Copiar
clearSelection: Cancelar clearSelection: Cancelar
pipette: Pipeta pipette: Pipeta
switchLayers: Switch layers switchLayers: Troca de camadas
# 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)
@ -411,11 +410,11 @@ ingame:
cyan: Ciano cyan: Ciano
white: Branco white: Branco
uncolored: Sem cor uncolored: Sem cor
black: Black black: Preto
shapeViewer: shapeViewer:
title: Camadas title: Camadas
empty: Vazio empty: Vazio
copyKey: Copy Key copyKey: Chave de cópia
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -485,6 +484,9 @@ buildings:
ccw: ccw:
name: Rodar (CCW) name: Rodar (CCW)
description: Roda as formas 90º no sentido contrário ao dos ponteiros do relógio. description: Roda as formas 90º no sentido contrário ao dos ponteiros do relógio.
fl:
name: Rodar (180)
description: Roda as formas 180º.
stacker: stacker:
default: default:
@ -524,25 +526,25 @@ buildings:
levelShortcut: NVL levelShortcut: NVL
wire: wire:
default: default:
name: Energy Wire name: Fio Elétrico
description: Allows you to transport energy. description: Permite o transporte de energia.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: Inversor de Cor
description: Accepts a color or shape and inverts it. description: Aceita uma cor ou forma e inverte-a.
energy_generator: energy_generator:
deliver: Deliver deliver: Entrega
toGenerateEnergy: For toGenerateEnergy: Para
default: default:
name: Energy Generator name: Gerador de energia
description: Generates energy by consuming shapes. description: Gera energia consumindo formas.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: Repartidor de fios
description: Splits a energy wire into two. description: Divide um fio elétrico em dois.
merger: merger:
name: Wire Merger name: Conector de fios
description: Merges two energy wires into one. description: Junta dois fios elétricos num só.
storyRewards: storyRewards:
# Those are the rewards gained from completing the store # Those are the rewards gained from completing the store
@ -630,8 +632,9 @@ storyRewards:
settings: settings:
title: Definições title: Definições
categories: categories:
game: Jogo general: Geral
app: Aplicação userInterface: Interface de Utilizador
advanced: Avançado
versionBadges: versionBadges:
dev: Desenvolvimento dev: Desenvolvimento
@ -826,11 +829,11 @@ keybindings:
lockBeltDirection: Ativa o planeamento de tapetes lockBeltDirection: Ativa o planeamento de tapetes
switchDirectionLockSide: "Planeador: Troca o lado" switchDirectionLockSide: "Planeador: Troca o lado"
pipette: Pipeta pipette: Pipeta
menuClose: Close Menu menuClose: Fechar Menu
switchLayers: Switch layers switchLayers: Troca de camadas
advanced_processor: Color Inverter advanced_processor: Inversor de Cor
energy_generator: Energy Generator energy_generator: Gerador de energia
wire: Energy Wire wire: Fio Elétrico
about: about:
title: Sobre o jogo title: Sobre o jogo
body: >- body: >-
@ -840,9 +843,9 @@ about:
Se quiseres contribuir, dá uma olhadela em <a href="<githublink>" Se quiseres contribuir, dá uma olhadela em <a href="<githublink>"
target="_blank">shapez.io no github</a>.<br><br> target="_blank">shapez.io no github</a>.<br><br>
Este Jogo não seria possível sem a excelente comunidade do discord Este Jogo não seria possível sem a excelente comunidade do Discord
em torno dos meus jogos - Devias mesmo juntar-te ao <a href="<discordlink>" em torno dos meus jogos - Devias mesmo juntar-te ao <a href="<discordlink>"
target="_blank">servidor no discord</a>!<br><br> target="_blank">servidor no Discord</a>!<br><br>
A banda sonora foi feita por <a href="https://soundcloud.com/pettersumelius" A banda sonora foi feita por <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Ele é Fantástico.<br><br> target="_blank">Peppsen</a> - Ele é Fantástico.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -151,7 +151,6 @@ mainMenu:
savegameLevel: Nivelul <x> savegameLevel: Nivelul <x>
savegameLevelUnknown: Nivel necunoscut savegameLevelUnknown: Nivel necunoscut
continue: Continuă continue: Continuă
newGame: Joc nou newGame: Joc nou
madeBy: Făcut de <author-link> madeBy: Făcut de <author-link>
@ -484,6 +483,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotește formele în inversul sensului acelor de ceasornic la 90 de grade. description: Rotește formele în inversul sensului acelor de ceasornic la 90 de grade.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -629,8 +631,9 @@ storyRewards:
settings: settings:
title: Setări title: Setări
categories: categories:
game: Joc general: General
app: Aplicație userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Dezvoltare dev: Dezvoltare
@ -834,9 +837,9 @@ about:
Dacă vrei să contribui, verifică <a href="<githublink>" Dacă vrei să contribui, verifică <a href="<githublink>"
target="_blank">shapez.io pe github</a>.<br><br> target="_blank">shapez.io pe github</a>.<br><br>
Acest joc nu ar fi fost posibil fără minunata comunitate de pe discord Acest joc nu ar fi fost posibil fără minunata comunitate de pe Discord
pe lângă jocurile mele - Chiar ar trebui să te alături <a href="<discordlink>" pe lângă jocurile mele - Chiar ar trebui să te alături <a href="<discordlink>"
target="_blank">server-ului de discord</a>!<br><br> target="_blank">server-ului de Discord</a>!<br><br>
Coloana sonoră a fost făcută de <a href="https://soundcloud.com/pettersumelius" Coloana sonoră a fost făcută de <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Este uimitor.<br><br> target="_blank">Peppsen</a> - Este uimitor.<br><br>

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -30,66 +30,66 @@ 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. shapez.io — это игра о строительстве фабрик для автоматизации создания и объединения все более сложных фигур на бесконечной карте.
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]! По мере увеличения спроса на фигуры вам придется увеличивать свою фабрику, чтобы удовлетворить спрос. Однако, не забывайте о ресурсах, несмотря на то что вы будете расширятся на [b]бесконечной карте[/b]!
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. Вскоре вам придется смешивать цвета и красить ими фигуры. Комбинируйте красный, зеленый и синий красители для получения разных цветов и красьте ими фигуры, чтобы удовлетворить спрос.
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! Эта игра имеет 18 уровней развития (но и они займут вас на часы!), но я постоянно добавляю новый контент - там многое запланировано!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Покупка игры даст доступ к полной версии, которая имеет дополнительные функции, а также вы получите доступ к недавно разработанным функциям.
[b]Standalone Advantages[/b] [b]Преимущества полной версии[/b]
[list] [list]
[*] Dark Mode [*] Темный Режим
[*] Unlimited Waypoints [*] Неограниченные Метки
[*] Unlimited Savegames [*] Неограниченные Сохранения
[*] Additional settings [*] Дополнительные настройки
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] Скоро: Провода & Энергия! Запланировано (примерно) на конец июля 2020 года.
[*] Coming soon: More Levels [*] Скоро: Больше уровней
[*] Allows me to further develop shapez.io ❤️ [*] Позволит мне дальше разрабатывать shapez.io ❤️
[/list] [/list]
[b]Future Updates[/b] [b]Будущие обновления[/b]
I am updating the game very often and trying to push an update at least every week! Я очень часто обновляю игру и пытаюсь обновлять ее как минимум каждую неделю!
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] Различные карты и испытания (например, карты с препятствиями)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] Пазлы (Доставить запрошенную фигуру с ограничением пространства / набора зданий)
[*] A story mode where buildings have a cost [*] Режим истории, где здания стоят фигур
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] Настраиваемый генератор карт (настройка ресурса / размера фигуры / плотности, семя и т.д.)
[*] Additional types of shapes [*] Дополнительные типы фигур
[*] Performance improvements (The game already runs pretty well!) [*] Улучшения производительности (игра уже работает довольно хорошо!)
[*] And much more! [*] И многое другое!
[/list] [/list]
[b]This game is open source![/b] [b]Это игра с открытым исходным кодом![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. Любой может внести свой вклад, я активно участвую в жизни сообщества и пытаюсь рассмотреть все предложения и по возможности принять во внимание отзывы.
Be sure to check out my trello board for the full roadmap! Не забудьте проверить мою доску trello со всеми планами!
[b]Links[/b] [b]Ссылки[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]Официальный Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]Планы[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url] [*] [url=https://www.reddit.com/r/shapezio]Сабреддит[/url]
[*] [url=https://github.com/tobspr/shapez.io]Source code (GitHub)[/url] [*] [url=https://github.com/tobspr/shapez.io]Исходный код (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]Помочь с переводом[/url]
[/list] [/list]
discordLink: Official Discord - Chat with me! discordLink: Официальный Discord - Общайся со мной!
global: global:
loading: Загрузка loading: Загрузка
error: Ошибка error: Ошибка
# 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: "."
@ -142,7 +142,7 @@ mainMenu:
changelog: Список изменений changelog: Список изменений
importSavegame: Импорт importSavegame: Импорт
openSourceHint: Это игра с открытым исходным кодом! openSourceHint: Это игра с открытым исходным кодом!
discordLink: Оффициальный Дискорд Сервер discordLink: Офици- альный Дискорд
helpTranslate: Помоги с переводом! helpTranslate: Помоги с переводом!
# 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.
@ -152,7 +152,6 @@ mainMenu:
savegameLevel: Уровень <x> savegameLevel: Уровень <x>
savegameLevelUnknown: Неизвестный уровень savegameLevelUnknown: Неизвестный уровень
continue: Продолжить continue: Продолжить
newGame: Новая Игра newGame: Новая Игра
madeBy: Создал <author-link> madeBy: Создал <author-link>
@ -255,7 +254,7 @@ dialogs:
createMarker: createMarker:
title: Новый маркер title: Новый маркер
desc: Дайте ему содержательное имя, также можно добавить <strong>сокращение</strong> в виде фигуры (Которое можно сгенерировать <a href="https://viewer.shapez.io" target="_blank">здесь</a>) desc: Дайте ему содержательное имя, также можно добавить <strong>сокращение</strong> в виде фигуры (Которое можно сгенерировать <a href="https://viewer.shapez.io" target="_blank">здесь</a>)
titleEdit: Edit Marker titleEdit: Редактирование маркера
markerDemoLimit: markerDemoLimit:
desc: Вы можете создать только 2 своих маркера в демо-версии. Приобретите полную версию для безлимитных маркеров. desc: Вы можете создать только 2 своих маркера в демо-версии. Приобретите полную версию для безлимитных маркеров.
@ -273,8 +272,8 @@ dialogs:
и даже привести к аварийному завершению игры! и даже привести к аварийному завершению игры!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Подтвердите вырезку
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: Вы не можете позволить себе вставить эту область! Вы уверены, что хотите вырезать ее?
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
@ -298,7 +297,7 @@ ingame:
copySelection: Копировать copySelection: Копировать
clearSelection: Отменить clearSelection: Отменить
pipette: Пипетка pipette: Пипетка
switchLayers: Switch layers switchLayers: Переключить слои
# 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)
@ -391,7 +390,7 @@ 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
@ -414,11 +413,11 @@ ingame:
cyan: Бирюзовый cyan: Бирюзовый
white: Белый white: Белый
uncolored: Бесцветный uncolored: Бесцветный
black: Black black: Черный
shapeViewer: shapeViewer:
title: Слои title: Слои
empty: Пусто empty: Пусто
copyKey: Copy Key copyKey: Копировать
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -488,6 +487,9 @@ buildings:
ccw: ccw:
name: Вращатель (Обр.) name: Вращатель (Обр.)
description: Поворачивает фигуры против часовой стрелки на 90 градусов. description: Поворачивает фигуры против часовой стрелки на 90 градусов.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -527,25 +529,25 @@ buildings:
levelShortcut: Ур. levelShortcut: Ур.
wire: wire:
default: default:
name: Energy Wire name: Энергетический провод
description: Allows you to transport energy. description: Позволяет транспортировать энергию.
advanced_processor: advanced_processor:
default: default:
name: Color Inverter name: Инвертор цвета
description: Accepts a color or shape and inverts it. description: Инвертирует цвета красителей или фигур.
energy_generator: energy_generator:
deliver: Deliver deliver: Доставить
toGenerateEnergy: For toGenerateEnergy: Для
default: default:
name: Energy Generator name: Генератор энергии
description: Generates energy by consuming shapes. description: Производит энергию потребляя фигуры.
wire_crossings: wire_crossings:
default: default:
name: Wire Splitter name: Разделитель провода
description: Splits a energy wire into two. description: Разделяет энергетический провод на два.
merger: merger:
name: Wire Merger 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
@ -605,7 +607,7 @@ storyRewards:
reward_painter_quad: reward_painter_quad:
title: Покрасчик (4 Входа) title: Покрасчик (4 Входа)
desc: Разблокирован вариант <strong>покрасчика</strong> - он позволяет отдельно раскрашивать каждую часть фигуры! desc: Разблокирован вариант <strong>покрасчика</strong> - он позволяет отдельно раскрашивать каждую четверть фигуры!
reward_storage: reward_storage:
title: Буферное Хранилище title: Буферное Хранилище
@ -633,8 +635,9 @@ storyRewards:
settings: settings:
title: Настройки title: Настройки
categories: categories:
game: Игровые general: General
app: Основные userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Разработчик dev: Разработчик
@ -828,11 +831,11 @@ keybindings:
lockBeltDirection: Включает конвейерный планировщик lockBeltDirection: Включает конвейерный планировщик
switchDirectionLockSide: "Планировщик: Переключение сторон" switchDirectionLockSide: "Планировщик: Переключение сторон"
pipette: Пипетка pipette: Пипетка
menuClose: Close Menu menuClose: Закрыть меню
switchLayers: Switch layers switchLayers: Переключить слои
advanced_processor: Color Inverter advanced_processor: Инвертор цвета
energy_generator: Energy Generator energy_generator: Генератор энергии
wire: Energy Wire wire: Энергетический провод
about: about:
title: Об игре title: Об игре

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -23,7 +23,7 @@ steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io je igra grajenja tovarne katere cilj je avtomatiziranje kreiranja in procesiranja vse bolj zapletenih oblik na neskončni ravnini. shortText: shapez.io je igra grajenja tovarne katere cilj je avtomatiziranje kreiranja in procesiranja vse bolj zapletenih oblik na neskončni ravnini.
# This is the text shown above the discord link # This is the text shown above the Discord link
discordLink: Uradni Discord - Pridruži se klepetu! discordLink: Uradni Discord - Pridruži se klepetu!
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
@ -40,7 +40,7 @@ steamPage:
Kmalu boste morali mešati barve in z njimi barvati svoje oblike - Združite rdeče, zelene in modre barvne vire, da ustvarite različne barve in z njimi barvate oblike, da zadostite povpraševanju. Kmalu boste morali mešati barve in z njimi barvati svoje oblike - Združite rdeče, zelene in modre barvne vire, da ustvarite različne barve in z njimi barvate oblike, da zadostite povpraševanju.
V tej igri je 18 progresivnih stopenj (ki vas bodo zaposlile za več ur!), Vendar nenehno dodajam novo vsebino - načrtovanih novosti je veliko! V tej igri je 18 progresivnih stopenj (ki vas bodo zaposlile za več ur!), Vendar nenehno dodajam novo vsebino - načrtovanih novosti je veliko!
Nakup igre vam omogoča dostop do samostojne različice, ki ima dodatne funkcije, prav tako pa boste imeli dostop do novo razvitih funkcij. Nakup igre vam omogoča dostop do samostojne različice, ki ima dodatne funkcije, prav tako pa boste imeli dostop do novo razvitih funkcij.
[img]{STEAM_APP_IMAGE}/extras/header_standalone_advantages.png[/img] [img]{STEAM_APP_IMAGE}/extras/header_standalone_advantages.png[/img]
@ -501,6 +501,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter-clockwise by 90 degrees. description: Rotates shapes counter-clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -640,8 +643,9 @@ storyRewards:
settings: settings:
title: Settings title: Settings
categories: categories:
game: Game general: General
app: Application userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Development dev: Development
@ -850,7 +854,7 @@ about:
If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br>
This game wouldn't have been possible without the great discord community around my games - You should really join the <a href="<discordlink>" target="_blank">discord server</a>!<br><br> This game wouldn't have been possible without the great Discord community around my games - You should really join the <a href="<discordlink>" target="_blank">Discord server</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br> The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br>

896
translations/base-sr.yaml Normal file
View File

@ -0,0 +1,896 @@
#
# GAME TRANSLATIONS
#
# Contributing:
#
# If you want to contribute, please make a pull request on this respository
# and I will have a look.
#
# Placeholders:
#
# Do *not* replace placeholders! Placeholders have a special syntax like
# `Hotkey: <key>`. They are encapsulated within angle brackets. The correct
# translation for this one in German for example would be: `Taste: <key>` (notice
# how the placeholder stayed '<key>' and was not replaced!)
#
# Adding a new language:
#
# If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it.
#
#
#
# Hvala https://github.com/ivanbratovic na idejama za prevod. Alal ti vera na prevodu :)
#
# + HUB = Središte
# + Area = Oblast
# + Shape = Oblik
# + Upgrade = Nadogradnja
# + Waypoint/Marker = Putokaz
# + Blueprint = Nacrt
# + Extractor = Rudar
# + Extractor (chain) = Rudar (lančani)
# + Conveyor Belt = Pokretna Traka
# + Belt = Traka
# + Tunnel = Tunel
# + Merger = Spajač
# + Rotator = Obrtač
steamPage:
# This is the short text appearing on the steam page
shortText: shapez.io je igra o pravljenju fabrika za automatizaciju stvaranja i spajanja sve složenijih oblika na beskonačno velikoj mapi.
# This is the text shown above the Discord link
discordLink: Oficijalni Discord server
# TODO
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE:
# - Do not translate the first line (This is the gif image at the start of the store)
# - Please keep the markup (Stuff like [b], [list] etc) in the same format
longText: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
shapez.io je igra o pravljenju fabrika za automatizaciju stvaranja i spajanja sve složenijih oblika na beskonačno velikoj mapi.
Nakon dostavljanja zahtevanog oblika napredovaćete u igri i oključaćete nadogradnje za bržu fabriku.
Kako potražnja za oblicima raste, da bi zadovoljili potražnju, moraćete da uvećate fabriku - Ne zaboravite na resurse, proširićete se na [b]beskonačnoj mapi[/b]!
Vrlo brzo moraćete da mešate boje i farbate oblike - Pomešajte crvenu, zelenu i plavu rudu boje da biste dobili različite boje i ofarbajte oblik kako bi ispunili zahteve potražnje.
Igra sadrži 18 progresivnih nivoa (Koji će vas zaokupirati satima!) i stalno dodajem nove stvari - Mnogo toga je planirano!
Kupovinom igre dobijate pristup samostalnoj verziji koja poseduje dodatne funkcije, a dobićete i pristup novorazvijenim funkcijama.
[b]Prednosti samostalne igre[/b]
[list]
[*] Tamna tema
[*] Neobraničen broj putokaza
[*] Neograničen broj sačuvanih igara
[*] Dodatna podešavanja
[*] Uskoro: Žice i Energija! Predviđeno (otprilike) za kraj Jula 2020.
[*] Uskoro: Više nivoa
[*] Omogućavate mi da dalje radim na shapez.io ❤️
[/list]
[b]Buduća ažuriranja[/b]
Trudim se da stalno ažuriram igru i da dostavim ažuriranje makar jednom nedeljno!
[list]
[*] Različite mape i izazovi (npr. mapa sa preprekama)
[*] Slagalice (Dostavite odgovaraćuji oblik, ali uz ograničen broj građevina / oblasti)
[*] Način igre u kojem građevine imaju cenu
[*] Podesiv generator mapa (Prilagođena veličina/gustina oblika/resursa, i još.)
[*] Dodatne vrste oblika
[*] Poboljšanje performansi (Igra je već prilično fluidna!)
[*] I još mnogo toga!
[/list]
[b]Ovo je igra otvorenog koda![/b]
Svako može da doprinese igri, Aktivno interagujem sa zajednicom i, kad god je to moguće, pokušavam i uzmem u obzir sve predloge i povratne informacije.
Obavezno posetite potpuni plan koji se nalazi na trello tabli!
[b]Links[/b]
[list]
[*] [url=https://discord.com/invite/HN7EVzV]Oficijalni Discord server[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Plan[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Izvorni kod (GitHub)[/url]
[*] [url=https://github.com/tobspr/shapez.io/blob/master/translations/README.md]Pomozite sa prevođenjem[/url]
[/list]
global:
loading: Učitavanje
error: Greška
# How big numbers are rendered, e.g. "10,000"
thousandsDivider: " "
# What symbol to use to seperate the integer part from the fractional part of a number, e.g. "0.4"
decimalSeparator: "."
# The suffix for large numbers, e.g. 1.3k, 400.2M, etc.
suffix:
thousands: hilj.
millions: mil.
billions: mlrd.
trillions: tril.
# Shown for infinitely big numbers
infinite: beskonačno
time:
# Used for formatting past time dates
oneSecondAgo: pre jedne sekunde
xSecondsAgo: pre <x> sekundi
oneMinuteAgo: pre jednog minuta
xMinutesAgo: pre <x> minuta
oneHourAgo: pre jednog sata
xHoursAgo: pre <x> sati
oneDayAgo: pre jednog dana
xDaysAgo: pre <x> dana
# Short formats for times, e.g. '5h 23m'
secondsShort: <seconds>s
minutesAndSecondsShort: <minutes>m <seconds>s
hoursAndMinutesShort: <hours>h <minutes>m
xMinutes: <x> min
keys:
tab: TAB
control: CTRL
alt: ALT
escape: ESC
shift: SHIFT
space: SPACE
demoBanners:
# This is the "advertisement" shown in the main menu and other various places
title: Demo Verzija
intro: >-
Nabavite punu igru kako biste otključali sve funkcije!
mainMenu:
play: Igraj
continue: Nastavi
newGame: Nova Igra
changelog: Promene
subreddit: Reddit
importSavegame: Uvezi
openSourceHint: Ova igra je otvorenog koda!
discordLink: Oficijalni Diskord server
helpTranslate: Pomozite sa prevođenjem!
madeBy: Napravio <author-link>
# This is shown when using firefox and other browsers which are not supported.
browserWarning: >-
Izvinjavamo se, pošto je poznato da se ova igra koči u pretraživaču! Za puno iskustvo nabavite samostalnu verziju ili koristite chrome.
savegameLevel: Nivo <x>
savegameLevelUnknown: Nepoznat Nivo
dialogs:
buttons:
ok: OK
delete: Izbriši
cancel: Poništi
later: Kasnije
restart: Ponovo pokreni
reset: Resetuj
getStandalone: Nabavite samostalnu igru
deleteGame: Znam šta radim
viewUpdate: Pogledajte ažuriranje
showUpgrades: Prikaži Nadogradnje
showKeybindings: Prikaži podešavanje tastera
importSavegameError:
title: Greška prilikom uvoza
text: >-
Neuspešan uvoz sačuvane igre:
importSavegameSuccess:
title: Uvoz sačuvane igre
text: >-
Uspešno uvezena sačuvana igra.
gameLoadFailure:
title: Igra je pukla
text: >-
Neuspešno učitavanje sačuvane igre:
confirmSavegameDelete:
title: Potrvrdi brisanje
text: >-
Da li ste sigurni da želite da obrišete sačuvanu igru?
savegameDeletionError:
title: Greška prilikom brisanja
text: >-
Neuspešno brisanje sačuvane igre:
restartRequired:
title: Potrebno je ponovno pokretanje
text: >-
Da bi primenili podešavanja, potrebno je da ponovo pokrenute igru.
editKeybinding:
title: Promeni podešavanja tastera
desc: Pritisnite taster ili dugme na mišu koje žeite da dodelite, ili Escape za otkazivanje.
resetKeybindingsConfirmation:
title: Resetuj podešavanja tastera
desc: Ovo će resetovati sve tastere na njihove početne vrednosti. Potrebno je potvrditi.
keybindingsResetOk:
title: Podešavanja tastera su resetovana
desc: Podešavanja tastera su resetovana na njihove početne vrednosti!
featureRestriction:
title: Demo Verzija
desc: Pokušali ste da pristupite funkciji (<feature>) koja nije dostupna u demo verziji. Za puno iskustvo, nabavite samostalnu igru!
oneSavegameLimit:
title: Ograničen broj sačuvanih igara
desc: Možete imati samo jednu sačuvanu igru u demo verziji. Izbrišite postojeću ili nabavite samostalnu igru!
updateSummary:
title: Novo ažuriranje!
desc: >-
OVo su promene od zadnjeg igranja:
upgradesIntroduction:
title: Oktključaj Nadogradnje
desc: >-
Svi oblici koje napravite mogu se iskoristiti za oktljučavanje nadogradnji - <strong>Ne uništavajte stare fabrike!</strong>
Karticu za nadogradnje možete pronaći u gornjem desnom uglu ekrana.
massDeleteConfirm:
title: Potvrdi brisanje
desc: >-
<count> građevina će biti obrisano! Da li ste sigurni da to želite?
massCutConfirm:
title: Potvrdi rezanje
desc: >-
<count> građevina će biti izrezano! Da li ste sigurni da to želite?
massCutInsufficientConfirm:
title: Potvrdi rezanje
desc: >-
Ne možete da priuštite nalepljivanje ove oblasti! Da li ste sigurni da želite da je izrežete?
blueprintsNotUnlocked:
title: Zaključano
desc: >-
Završite nivo 12 kako bi otključali Nacrte!
keybindingsIntroduction:
title: Korisne kombinacije tastera
desc: >-
Ova igra ima dosta kombinacija tastera koji olakšavaju izgradnju velikih fabrika.
Ovo su neki, ali se preporučuje da <strong>pogledate sve kombinacije</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Miš: Biranje oblasti.<br>
<code class='keybinding'>SHIFT</code>: Držato za postavljanje više istih zgrada odjednom.<br>
<code class='keybinding'>ALT</code>: Okrenite smer postavljenh pokretnih traka.<br>
createMarker:
title: Novi Putokaz
titleEdit: Uredi Putokaz
desc: Dajte mu smisleno ime. Možete koristiti i <strong>kod</strong> oblika (Koji možete napraviti <a href="https://viewer.shapez.io" target="_blank">ovde</a>)
markerDemoLimit:
desc: U demo verziji možete imati samo dva putokaza istovremeno. Nabavite samostalnu igru za beskonačno mnogo putokaza!
exportScreenshotWarning:
title: Izvezi sliku ekrana
desc: Hoćete da izvezete sliku cele fabrike kao snimak ekrana. Ovaj proces može biti prilično spor za velike fabrike, može se desiti i pucanje igre!
ingame:
# This is shown in the top left corner and displays useful keybindings in
# every situation
keybindingsOverlay:
moveMap: Kretanje
selectBuildings: Odaberi oblast
stopPlacement: Prekini postavljanje
rotateBuilding: Okreni građevinu
placeMultiple: Postavi više građevina odjednom
reverseOrientation: Obrni orijentaciju
disableAutoOrientation: Onemogući automatsku orijentaciju
toggleHud: Uključi/Isključi Interfejs
placeBuilding: Postavi građevinu
createMarker: Napravi Putokaz
delete: Brisanje
pasteLastBlueprint: Nalepi zadnji nacrt
lockBeltDirection: Omogući planiranje traka
plannerSwitchSide: Okreni stranu planera
cutSelection: Izreži
copySelection: Kopiraj
clearSelection: Očisti odabir
pipette: Pipeta
switchLayers: Promeni sloj
# Names of the colors, used for the color blind mode
colors:
red: Crvena
green: Zelena
blue: Plava
yellow: Žuta
purple: Ljubičasta
cyan: Cijan
white: Bela
black: Crna
uncolored: Bez boje
# Everything related to placing buildings (I.e. as soon as you selected a building
# from the toolbar)
buildingPlacement:
# Buildings can have different variants which are unlocked at later levels,
# and this is the hint shown when there are multiple variants available.
cycleBuildingVariants: Pritisni <key> za različite varijacije građevine.
# Shows the hotkey in the ui, e.g. "Hotkey: Q"
hotkeyLabel: >-
Taster: <key>
infoTexts:
speed: Brzina
range: Domet
storage: Skladište
oneItemPerSecond: 1 premet / sekundi
itemsPerSecond: <x> predmeta / s
itemsPerSecondDouble: (x2)
tiles: <x> polja
# The notification when completing a level
levelCompleteNotification:
# <level> is replaced by the actual level, so this gets 'Level 03' for example.
levelTitle: Nivo <level>
completed: Završen
unlockText: Otključali ste <reward>!
buttonNextLevel: Sledeći nivo
# Notifications on the lower right
notifications:
newUpgrade: Nova nadogradnja je dostupna!
gameSaved: Igra je sačuvana.
# The "Upgrades" window
shop:
title: Nadogradnje
buttonUnlock: Nadogradi
# Gets replaced to e.g. "Tier IX"
tier: <x> red
# The roman number for each tier
tierLabels: [I, II, III, IV, V, VI, VII, VIII, IX, X]
maximumLevel: MAKSIMALNI LEVEL (Brzina x<currentMult>)
# The "Statistics" window
statistics:
title: Statistika
dataSources:
stored:
title: Skladišteno
description: Količina skladištenih oblika u središtu.
produced:
title: Proizvedeno
description: Svi oblici koje proizvodi cela fabrika, uključujući i međuproizvode.
delivered:
title: Dostavljeno
description: Oblici koji su dostavljeni središtu.
noShapesProduced: Za sada nema proizvedenih oblika.
# Displays the shapes per minute, e.g. '523 / m'
shapesPerMinute: <shapes> / min
# Settings menu, when you press "ESC"
settingsMenu:
playtime: Vreme igranja
buildingsPlaced: Građevine
beltsPlaced: Trake
buttons:
continue: Nastavi
settings: Podešavanja
menu: Povratak na glavni meni
# Bottom left tutorial hints
tutorialHints:
title: Potrebna pomoć?
showHint: Prikaži savet
hideHint: Zatvori
# When placing a blueprint
blueprintPlacer:
cost: Cena
# Map markers
waypoints:
waypoints: Putokazi
hub: Središte
description: Klikni levim klikom na putokaz kako bi skočio na njegovu lokaciju, a izbriši ga desnim klikom. <br><br>Za stvaranje putokaza pritisni <keybinding>, ili <strong>desnim klikom</strong> napravi putokaz na odabranoj lokaciji.
creationSuccessNotification: Putokaz kreiran.
# Shape viewer
shapeViewer:
title: Slojevi
empty: Prazno
copyKey: Kopiraj kod oblika
# Interactive tutorial
interactiveTutorial:
title: Tutorijal
hints:
1_1_extractor: Postavi <strong>Rudara</strong> na <strong>oblik kruga</strong> kako bi ga iskopao!
1_2_conveyor: >-
Spoji rudara na središte koristeći <strong>pokretnu traku</strong>.<br><br>Savet: <strong>Pritisni i prevuci</strong> traku mišem!
1_3_expand: >-
Ovo <strong>NIJE</strong> pasivna igra čekanja! Više rudara i pokretnih traka će ubrzati napredak do cilja.<br><br>Savet: Drži <strong>SHIFT</strong> za postavljanje više rudara istovremeno, a pritisni <strong>R</strong> za okretanje.
# All shop upgrades
shopUpgrades:
belt:
name: Trake, Delioci i Tuneli
description: Brzina x<currentMult> → x<newMult>
miner:
name: Rudarenje
description: Brzina x<currentMult> → x<newMult>
processors:
name: Rezanje, Okretanje i Slaganje
description: Brzina x<currentMult> → x<newMult>
painting:
name: Mešanje i Farbanje
description: Brzina x<currentMult> → x<newMult>
# Buildings and their name / description
buildings:
hub:
deliver: Dostavite
toUnlock: kako bi otključali
levelShortcut: LVL
belt:
default:
name: &belt Pokretna traka
description: Prenosi predmete, drži i prevuci za postavku više njih.
wire:
default:
name: &wire Žica
description: Omogućava prenos energije.
miner: # Internal name for the Extractor
default:
name: &miner Rudar
description: Postavite ga na oblik koji želite da iskopate.
chainable:
name: Rudar (Lančani)
description: Postavite ga na oblik koji želite da iskopate. Mogu se ređati jedan u drugi.
underground_belt: # Internal name for the Tunnel
default:
name: &underground_belt Tunel
description: Omogućava prenos predmeta ispod građevina i traka.
tier2:
name: Tunel II Reda
description: Omogućava prenos predmeta ispod građevina i traka.
splitter: # Internal name for the Balancer
default:
name: &splitter Balanser
description: Multifunkcionalan - Jednako raspoređuje sve ulaze na sve izlaze.
compact:
name: Spajač (kompaktni)
description: Spaja dve pokretne trake u jednu.
compact-inverse:
name: Spajač (kompaktni)
description: Spaja dve pokretne trake u jednu.
cutter:
default:
name: &cutter Rezač
description: Reže oblike od vrha prema dnu i na izlaze daje obe polovine. <strong>Ako se koristi samo jedan deo, drugi se mora uništiti da bi se sprečio zastoj!</strong>
quad:
name: Rezač (četvorostruki)
description: Reže oblike na četiri dela. <strong>Ako se koristi samo jedan deo, ostali se moraju uništiti da bi se sprečio zastoj!</strong>
#TODO
advanced_processor:
default:
name: &advanced_processor Okretač boje
description: Prihvata boju ili oblik i izokreće je.
rotater:
default:
name: &rotater Obrtač (↻)
description: Okreće oblike za 90 stepeni u smeru kazaljke na satu.
ccw:
name: Obrtač (↺)
description: Okreće oblike za 90 stepeni u smeru suprotnom od kazaljke na satu.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker:
default:
name: &stacker Slagač
description: Slaže jedan oblik na drugi. Ako se oblici ne mogu spojiti, desni oblik se postavlja na vrh levog.
mixer:
default:
name: &mixer Mešalica boja
description: Spaja dve boje koristeći aditivno mešanje boja.
painter:
default:
name: &painter Farbač
description: &painter_desc Farba ceo oblik na levom ulazu bojom sa gornjeg ulaza.
mirrored:
name: *painter
description: *painter_desc
double:
name: Farbač (dupli)
description: Farba ceo oblik na levom ulazu bojom sa gornjeg ulaza.
quad:
name: Farbač (četvorostruki)
description: Omogućava farbanje svake četvrtine oblika različitom bojom.
trash:
default:
name: &trash Smeće
description: Prima stvar sa svih strana i zauvek ih uništava.
storage:
name: Skladište
description: Skladišti višak predmeta do određenog kapaciteta. Može se koristiti kao zaštita od prelivanja.
energy_generator:
deliver: Dostavi
# This will be shown before the amount, so for example 'For 123 Energy'
toGenerateEnergy: Za
default:
name: &energy_generator Generator
description: Pretvara oblike u energiju.
#TODO
wire_crossings:
default:
name: &wire_crossings Razdelnik žica
description: Deli žicu na dva dela.
merger:
name: Spajač žica
description: Spaja dve žice u jednu.
storyRewards:
# Those are the rewards gained from completing the store
reward_cutter_and_trash:
title: Rezanje Oblika
desc: <strong>Rezač</strong> je otključan! On reže oblike <strong>od vrha prema dnu</strong> bez obzira na orijentaciju građevine!<br><br>Višak se mora odbaciti kako bi se izbegao <strong>zastoj</strong>. - Za tu svrhu postoji smeće, koje uništava sve što uđe u njega.
reward_rotater:
title: Obrtanje
desc: <strong>Obrtač</strong> je otključan! On okreće oblike za 90 stepeni u smeru kazaljke na satu.
reward_painter:
title: Farbanje
desc: >-
<strong>Farbač</strong> je otključan - Boja se (kao i oblici) može rudariti i spojiti s oblikom u farbaču!<br><br>PS: Postoji <strong>opcija za daltonizam</strong> u podešavanjima!
reward_mixer:
title: Mešalica boja
desc: <strong>Mešalica boja</strong> je otključana - Ona spaja dve boje koristeći <strong>aditivno mešanje</strong>!
reward_stacker:
title: Slagač
desc: Dva oblika mogu spojiti <strong>slagačem</strong>! Oblici sa oba ulaza se spajaju - ako se mogu staviti jedan kraj drugoga, biće <strong>spojeni</strong>. Ako ne, desni ulaz se slaže <strong>na vrh</strong> levog!
reward_splitter:
title: Deljenje/Spajanje
desc: Multifunkcionalni <strong>balanser</strong> je otključan! Može ga se iskoristiti za <strong>deljenje i spajanje oblika</strong> na više pokretnih traka!<br><br>
reward_tunnel:
title: Tunel
desc: <strong>Tunel</strong> je otključan - Omogućava prenos stvari ispod traka i ostalih građevina!
reward_rotater_ccw:
title: Rotacija u smeru suprotnom od kazaljke na satu
desc: Varijacija <strong>obrtača</strong> je otključana - Omogućuje okretanje u smeru suprotnom od kazaljke na satu! Odaberi obrtač i <strong>pritisni 'T' za menjanje njegove varijacije</strong>!
reward_miner_chainable:
title: Lančani rudar
desc: Otključan je <strong>lančani rudar</strong>! On može da <strong>prosledi svoje resurse</strong> drugim rudarima radi efikasnijeg rudarenja!
reward_underground_belt_tier_2:
title: Tunel II Reda
desc: Otključana je nova varijacija <strong>tunela</strong> - On ima <strong>veći domet</strong>, a uz to se sada mogu kombinovati vrste tunela.
reward_splitter_compact:
title: Kompaktni Balanser
desc: >-
Varijacija <strong>balansera</strong> je otključana - On prihvata dva ulaza i spaja ih u jednu traku!
reward_cutter_quad:
title: Četvorostruki Rezač
desc: Varijacija <strong>rezača</strong> je otključana - Omogućava rezanje oblika na <strong>četiri dela</strong> umesto na samo dva!
reward_painter_double:
title: Dupli Farbač
desc: Varijacija <strong>farbača</strong> je otključana - Radi isti posao kao običan farbač, ali može ofarbati <strong>dva oblika odjednom</strong> po ceni jedne boje umesto dve!
reward_painter_quad:
title: Četvorostruki Farbač
desc: Varijacija <strong>farbača</strong> je otključana - Omogućava farbanje pojedinačnih delova oblika!
reward_storage:
title: Skladište
desc: Varijacija <strong>smeća</strong> je otključana - Omogućava skladištenje predmeta do određenog kapaciteta!
reward_freeplay:
title: Slobodna Igra
desc: Uspeli ste! Otključali ste <strong>mod slobodne igre</strong>! Oblici su od sada nasumično generisani! (Bez brige, više sadržaja je planirano za samostalnu igru!)
reward_blueprints:
title: Nacrti
desc: Sada možete da <strong>kopirate i nalepljujete</strong> delove fabrike! Odaberite oblast (držite CTRL, prevucite mišem), i pritisnite 'C' da biste kopirali.<br><br>Nalepljivanje <strong>nije besplatno</strong>, potrebno je da napravite <strong>oblike za nacrte</strong> da biste ga priuštili! (To su oblici koje ste do malopre dostavljali).
# Special reward, which is shown when there is no reward actually
no_reward:
title: Sledeći Nivo
desc: >-
Ovaj nivo je bio bez nagrade, ali sledeći neće! <br><br> PS: Nemojte uništavati stare fabrike - <strong>Svi</strong> ti oblici će vam biti potrebni kasnije da biste <strong>otključali nadogradnje</strong>!
no_reward_freeplay:
title: Sledeći Nivo
desc: >-
Svaka čast! Više sadržaja je u planu za samostalnu igru!
settings:
title: Podešavanja
categories:
general: General
userInterface: User Interface
advanced: Advanced
versionBadges:
dev: Razvoj
staging: Skela #TODO
prod: produkcija
buildDate: Izgrađeno <at-date>
labels:
uiScale:
title: Veličina interfejsa
description: >-
Menja veličinu korisničkog interfejsa. Veličina interfejsa će i dalje zavisiti od vaše rezolucije uređaja.Ova opcija kontroliše tu veličinu interfejsa.
scales:
super_small: Maleno
small: Malo
regular: Normalno
large: Veliko
huge: Ogromno
autosaveInterval:
title: Interval Automatskog Čuvanja Igre
description: >-
Kontroliše koliko često će se igra automatski čuvati. Ovu opciju možete i da onemogućite.
intervals:
one_minute: 1 minut
two_minutes: 2 minuta
five_minutes: 5 minuta
ten_minutes: 10 minuta
twenty_minutes: 20 minuta
disabled: Onemogućeno
scrollWheelSensitivity:
title: Osetljivost zumiranja
description: >-
Kontroliše koliko je zumiranje osetljivo (Točkić na mišu ili trackpad).
sensitivity:
super_slow: Najsporije
slow: Sporo
regular: Normalno
fast: Brzo
super_fast: Najbrže
movementSpeed:
title: Brzina kretanja
description: >-
Menja brzinu kretanja kamere pri korišćenju tastature.
speeds:
super_slow: Najsporije
slow: Sporo
regular: Normalno
fast: Brzo
super_fast: Najbrže
extremely_fast: Brže od najbržeg
language:
title: Jezik
description: >-
Promenite jezik igre. Svi prevodi su delo volontera i mogu biti nezavršeni!
enableColorBlindHelper:
title: Opcija za daltonizam
description: >-
Omogućuje razne alate koji pomažu pri igranju igre sa nekim oblikom daltonizma.
fullscreen:
title: Ceo ekran
description: >-
Preporučljivo je, radi najboljeg iskustva, da igrate ovu igru na celom ekranu. Opcija dostupna samo u samostalnoj igri.
soundsMuted:
title: Utišajte Zvukove
description: >-
Ako je odabrana, ova opcija isključuje sve zvučne efekte.
musicMuted:
title: Utišajte Muziku
description: >-
Ako je odabrana, ova opcija isključuje svu muziku.
theme:
title: Tema Igre
description: >-
Odaberite temu igre (svetla / tamna).
themes:
dark: Tamna
light: Svetla
refreshRate:
title: Simulacija na 144 Hz
description: >-
Opcija za monitore visoke frekvencije osvežavanja. Ovo može smanjiti FPS ako je vaš računar prespor.
alwaysMultiplace:
title: Višestruko Postavljanje
description: >-
Ako je omogućeno, sve građevine će ostati odabrane nakon što su postavljene. Ova opcija je ekvivalenta stalnom držanju dugmeta SHIFT.
offerHints:
title: Saveti i Tutorijali
description: >-
Opcija za prikazivanje saveta i tutorijala za vreme igre. Dodatno krije određene elemente interfejsa, dok ih ne budete otključali, radi lakše igre.
enableTunnelSmartplace:
title: Pametni Tuneli
description: >-
Ako je omogućeno, postavljanje tunela automatski briše nepotrebne pokretne trake. Takođe omogućuje prevlačenje tunela i brisanje višak tunela.
vignette:
title: Vinjeta
description: >-
Omogućeva vinjetu - zatamnjuje ivice ekrana da bi tekst bio čitljiviji.
rotationByBuilding: #TODO
title: Okretanje prema vrsti građevine
description: >-
Svaka građevina pamti smer na koji je bila okrenuta. Ova opcija je preporučuje ako često menjate vrste građevina koje postavljate.
compactBuildingInfo:
title: Skraćene Informacije o Građevinama
description: >-
Skraćuje deo sa informacijama građevine tako da prikazuje samo njihove odnose. U suptornom prikazuje opis i sliku građevine.
disableCutDeleteWarnings:
title: Onemogući upozorenje za Rezanje/Brisanje
description: >-
Onemogućuje upozorenje koje se javlja kada režete/brišete više od 100 stvari.
keybindings:
title: Tasteri
hint: >-
Savet: Koristite CTRL, SHIFT i ALT! Oni omogućuju razne opcije postavljanja građevina.
resetKeybindings: Resetuj podešavanja tastera
categoryLabels:
general: Aplikacija
ingame: Igra
navigation: Navigacija
placement: Postavljanje
massSelect: Masovno Odabiranje
buildings: Prečice za građevine
placementModifiers: Modifikatori Postavljanja
mappings:
confirm: Potvrdi
back: Nazad
mapMoveUp: Idi Gore
mapMoveRight: Idi Desno
mapMoveDown: Idi Dole
mapMoveLeft: Idi Levo
mapMoveFaster: Brže kretanje
centerMap: Centar mape
mapZoomIn: Zumiraj
mapZoomOut: Odzumiraj
createMarker: Napravi Putokaz
menuOpenShop: Nadogradnje
menuOpenStats: Statistika
menuClose: Zatvori Meni
toggleHud: Uključi/Isključi Interfejs
toggleFPSInfo: Uključi/Isključi FPS i infomacije o traženju grešaka u kodu
switchLayers: Promeni Sloj
exportScreenshot: Izvoz slike cele fabrike kao snimak ekrana
belt: *belt
splitter: *splitter
underground_belt: *underground_belt
miner: *miner
cutter: *cutter
advanced_processor: *advanced_processor
rotater: *rotater
stacker: *stacker
mixer: *mixer
energy_generator: *energy_generator
painter: *painter
trash: *trash
wire: *wire
pipette: Pipeta
rotateWhilePlacing: Okreni građevinu
rotateInverseModifier: >-
Modifikator: Rotiraj u smeru suprotnom od kazaljke na satu
cycleBuildingVariants: Promena Varijacije
confirmMassDelete: Uništite Oblast
pasteLastBlueprint: Nalepite posledji nacrt
cycleBuildings: Promena Građevine
lockBeltDirection: Omogući planer pokretnih traka
switchDirectionLockSide: >-
Planer: Okreni stranu
massSelectStart: Pritisni i zadrži za za početak
massSelectSelectMultiple: Odabir više oblasti
massSelectCopy: Kopiranje oblasti
massSelectCut: Izrezivanje oblasti
placementDisableAutoOrientation: Onemogućite automatsku orijentaciju
placeMultiple: Ostanite u modu za postavljanje
placeInverse: Automatski okreni orijentaciju pokretnih traka
about:
title: O Igri
body: >-
Ova igra je otvorenog koda i napravljena je od strane <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (to sam ja).<br><br>
Ako želite da doprinesete razvoju, bacite pogled na <a href="<githublink>" target="_blank">shapez.io github</a>.<br><br>
Bez odlične Discord zajednice ova igra, kao ni druge, ne bi postojala - Pridružite se <a href="<discordlink>" target="_blank">Discord serveru</a>!<br><br>
<a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> je komponovao muziku za igru - On je super.<br><br>
Na kraju svega, veliko hvala mom najboljem prijatelju <a href="https://github.com/niklas-dahl" target="_blank">Niklas-u</a> - Bez naših factorio sesija, ova igra nikad ne bi postojala.
changelog:
title: Promene
demo:
features:
restoringGames: Obnavljanje sačuvanih igara
importingGames: Uvoz sačuvanih igara
oneGameLimit: Ograničenje od jedne sačuvane igre
customizeKeybindings: Prilagođena Podešavanja Tastera
exportingBase: Izvoz slike cele fabrike kao snimak ekrana
settingNotAvailable: Nije dostupno u demo verziji.

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -118,7 +118,7 @@ global:
# Short formats for times, e.g. '5h 23m' # Short formats for times, e.g. '5h 23m'
secondsShort: <seconds>s secondsShort: <seconds>s
minutesAndSecondsShort: <minutes>m <seconds>s minutesAndSecondsShort: <minutes>m <seconds>s
hoursAndMinutesShort: <hours>t <minutes>s hoursAndMinutesShort: <hours>t <minutes>m
xMinutes: <x> minuter xMinutes: <x> minuter
@ -138,20 +138,19 @@ demoBanners:
mainMenu: mainMenu:
play: Spela play: Spela
changelog: Changelog changelog: Ändringslogg
importSavegame: Importera importSavegame: Importera
openSourceHint: Detta spel är open source! openSourceHint: Detta spelet har öppen kod!
discordLink: Officiell Discord Server discordLink: Officiell Discord Server
helpTranslate: Hjälp till att översätta! helpTranslate: Hjälp till att översätta!
# 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: >-
Förlåt, men det är känt att spelet spelar långsamt på din browser! Skaffa den fristående versionen eller ladda ner chrome för den fulla upplevelsen. Förlåt, men det är känt att spelet spelar långsamt på din browser! Skaffa den fristående versionen eller ladda ner Chrome för en bättre upplevelse.
savegameLevel: Nivå <x> savegameLevel: Nivå <x>
savegameLevelUnknown: Okänd Nivå savegameLevelUnknown: Okänd Nivå
continue: Fortsätt continue: Fortsätt
newGame: Nytt spel newGame: Nytt spel
madeBy: Skapad av <author-link> madeBy: Skapad av <author-link>
@ -203,7 +202,7 @@ dialogs:
editKeybinding: editKeybinding:
title: Ändra snabbtangenter title: Ändra snabbtangenter
desc: Tryck ned tangenten eller musknappen du vill tillsätta, eller escape för att avbryta. desc: Tryck ned tangenten eller musknappen du vill använda, eller escape för att avbryta.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Återställ snabbtangenter title: Återställ snabbtangenter
@ -219,34 +218,34 @@ dialogs:
oneSavegameLimit: oneSavegameLimit:
title: Begränsad mängd sparfiler title: Begränsad mängd sparfiler
desc: Du kan bara ha en sparfil åt gången i demoversionen. Var snäll och ta bort det existerande eller skaffa den fristående versionen! desc: Du kan bara ha en sparfil åt gången i demoversionen. Var snäll och ta bort den nuvarande eller skaffa den fristående versionen!
updateSummary: updateSummary:
title: Ny uppdatering! title: Ny uppdatering!
desc: >- desc: >-
Här är ändringarna sen du sist spelade: Här är ändringarna sen du senast spelade:
upgradesIntroduction: upgradesIntroduction:
title: Lås upp Uppgraderingar title: Lås upp Uppgraderingar
desc: >- desc: >-
Alla former du producerar kan användas för att låsa upp uppgraderingar - <strong>Förstör inte dina gamla fabriker!</strong> Alla former du producerar kan användas för att låsa upp uppgraderingar - <strong>Förstör inte dina gamla fabriker!</strong>
Uppgraderingsmenyn finns i det övre högra hörnet på skärmen. Uppgraderingsmenyn finns i det övre högra hörnet på skärmen.
massDeleteConfirm: massDeleteConfirm:
title: Bekräfta borttagning title: Bekräfta borttagning
desc: >- desc: >-
Du tar nu bort ganska många byggnader (<count> för att vara exakt)! Är du säker på att du vill göra detta? Du tar bort ganska många byggnader (<count> för att vara exakt)! Är du säker på att du vill göra detta?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Inte upplåst än title: Inte upplåst än
desc: >- desc: >-
Ritningar är inte än upplåsta! Klara fler nivåer för att låsa upp dem. Nå level 12 för att låsa upp Ritningar.
keybindingsIntroduction: keybindingsIntroduction:
title: Användbara tangentbindningar title: Användbara tangentbindningar
desc: >- desc: >-
Detta spel använder en stor mängd tangentbindningar som gör det lättare att bygga stora fabriker. Detta spel använder en stor mängd tangentbindningar som gör det lättare att bygga stora fabriker.
Här är några men se till att <strong>kolla in tangentbindningarna</strong>!<br><br> Här är några, men se till att <strong>kolla in tangentbindningarna</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Dra: Välj en yta att kopiera / radera.<br> <code class='keybinding'>CTRL</code> + Dra: Välj en yta att kopiera / radera.<br>
<code class='keybinding'>SHIFT</code>: Håll ned för att placera flera av samma byggnad.<br> <code class='keybinding'>SHIFT</code>: Håll ned för att placera flera av samma byggnad.<br>
<code class='keybinding'>ALT</code>: Invertera orientationen av placerade rullband.<br> <code class='keybinding'>ALT</code>: Invertera orientationen av placerade rullband.<br>
@ -254,10 +253,10 @@ dialogs:
createMarker: createMarker:
title: Ny Markör title: Ny Markör
desc: Ge den ett meningsfullt namn, du kan också inkludera en <strong>kort kod</strong> av en form (Vilket du kan generera här <a href="https://viewer.shapez.io" target="_blank"></a>) desc: Ge den ett meningsfullt namn, du kan också inkludera en <strong>kort kod</strong> av en form (Vilket du kan generera här <a href="https://viewer.shapez.io" target="_blank"></a>)
titleEdit: Edit Marker titleEdit: Ändra Markör
markerDemoLimit: markerDemoLimit:
desc: Du kan endast skapa två markörer i demoversionen. Skaffa den fristående versionen för ett oändligt antal! desc: Du kan endast ha två markörer i demoversionen. Skaffa den fristående versionen för ett obegränsat antal!
massCutConfirm: massCutConfirm:
title: Bekräfta Klipp title: Bekräfta Klipp
desc: >- desc: >-
@ -268,11 +267,11 @@ dialogs:
title: Exportera skärmdump title: Exportera skärmdump
desc: >- desc: >-
Du efterfrågade att exportera din fabrik som en skärmdump. Du efterfrågade att exportera din fabrik som en skärmdump.
Vänligen notera att detta kan ta ett tag för en stor bas och i vissa fall till och med krascha ditt spel Vänligen notera att detta kan ta ett tag för en stor bas och i vissa fall till och med krascha ditt spel!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Bekräfta Klipp
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: Du har inte råd att placera detta område! Är du säker att du vill klippa 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
@ -285,10 +284,10 @@ ingame:
placeMultiple: Placera flera placeMultiple: Placera flera
reverseOrientation: Vänd orientation reverseOrientation: Vänd orientation
disableAutoOrientation: Stäng av automatisk orientation disableAutoOrientation: Stäng av automatisk orientation
toggleHud: Toggle HUD toggleHud: Växla HUD
placeBuilding: Placera Byggnad placeBuilding: Placera Byggnad
createMarker: Skapa Markör createMarker: Skapa Markör
delete: Förstör delete: Ta bort
pasteLastBlueprint: Klistra in ritning pasteLastBlueprint: Klistra in ritning
lockBeltDirection: Aktivera rullbandsplanerare lockBeltDirection: Aktivera rullbandsplanerare
plannerSwitchSide: Vänd planerarsidan plannerSwitchSide: Vänd planerarsidan
@ -296,7 +295,7 @@ ingame:
copySelection: Kopiera copySelection: Kopiera
clearSelection: Rensa vald clearSelection: Rensa vald
pipette: Pipett pipette: Pipett
switchLayers: Switch layers switchLayers: Byt lager
# 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)
@ -486,6 +485,9 @@ buildings:
ccw: ccw:
name: Roterare (CCW) name: Roterare (CCW)
description: Roterar former 90 motsols. description: Roterar former 90 motsols.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -631,8 +633,9 @@ storyRewards:
settings: settings:
title: Inställningar title: Inställningar
categories: categories:
game: Spelinställningar general: General
app: Applikation userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: Utveckling dev: Utveckling
@ -843,7 +846,7 @@ about:
Spelet hade inte varit möjligt utan den fantastiska discordgemenskapen Spelet hade inte varit möjligt utan den fantastiska discordgemenskapen
runt mina spel - Du borde gå med i den <a href="<discordlink>" runt mina spel - Du borde gå med i den <a href="<discordlink>"
target="_blank">discord server</a>!<br><br> target="_blank">Discord server</a>!<br><br>
Musiken skapades av <a href="https://soundcloud.com/pettersumelius" Musiken skapades av <a href="https://soundcloud.com/pettersumelius"
target="_blank">Peppsen</a> - Han är grym!<br><br> target="_blank">Peppsen</a> - Han är grym!<br><br>

File diff suppressed because it is too large Load Diff

View File

@ -15,16 +15,22 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# # Ґлосарій:
# map мапа
# keybinds гарячі клавіши
# upgrade поліпшення
# marker позначка
# area ділянка
# hub
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. shortText: shapez.io — це гра про будування фабрик для автоматизації створення та обробки все більш складних форм на нескінченно розширюваній мапі.
# This is the text shown above the discord link # This is the text shown above the Discord link
discordLink: Official Discord - Chat with me! discordLink: Офіційний Discord сервер — поговори зі мною!
# This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page. # This is the long description for the steam page - It is contained here so you can help to translate it, and I will regulary update the store page.
# NOTICE: # NOTICE:
@ -42,86 +48,86 @@ steamPage:
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! 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!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. Купуючи гру, ви отримуєте доступ до окремої версії, яка має додаткові функції, а також ви отримаєте доступ до нещодавно розроблених функцій.
[img]{STEAM_APP_IMAGE}/extras/header_standalone_advantages.png[/img] [img]{STEAM_APP_IMAGE}/extras/header_standalone_advantages.png[/img]
[list] [list]
[*] Dark Mode [*] Темний режим
[*] Unlimited Waypoints [*] Необмежені позначки
[*] Unlimited Savegames [*] Необмежені збереження
[*] Additional settings [*] Додаткові налаштування
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] Незабаром: дроти й енергія! Гадаю, оновлення вийде у кінці липня 2020 року.
[*] Coming soon: More Levels [*] Незабаром: більше рівнів.
[*] Allows me to further develop shapez.io ❤️ [*] Allows me to further develop shapez.io ❤️
[/list] [/list]
[img]{STEAM_APP_IMAGE}/extras/header_future_updates.png[/img] [img]{STEAM_APP_IMAGE}/extras/header_future_updates.png[/img]
I am updating the game very often and trying to push an update at least every week! Я оновлюю гру надпрочуд часто і намагаюся випускати оновлення щотижня!
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] Різноманітні мапи та випробування (наприклад, мапи з перешкодами)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] Пазли (Надайте потрібну форму з обмеженою площею/набором будівель)
[*] A story mode where buildings have a cost [*] Режим історії, де будівлі матимуть вартість
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] Генератор мап, який можна налаштувати (ресурс/розмір/щільність форми, зерно та багато іншого)
[*] Additional types of shapes [*] Додаткові типи форм
[*] Performance improvements (The game already runs pretty well!) [*] Поліпшення продуктивності (Гра вже працює досить добре!)
[*] And much more! [*] Та багато чого іншого!
[/list] [/list]
[img]{STEAM_APP_IMAGE}/extras/header_open_source.png[/img] [img]{STEAM_APP_IMAGE}/extras/header_open_source.png[/img]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. Будь-хто може зробити внесок, я активно беру участь у спільноті і намагаюся оцінити всі пропозиції і відгуки, та взяти до уваги, де це можливо.
Be sure to check out my trello board for the full roadmap! Не забудьте перевірити мою дошку Trello заради повної дорожньої карти!
[img]{STEAM_APP_IMAGE}/extras/header_links.png[/img] [img]{STEAM_APP_IMAGE}/extras/header_links.png[/img]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]Офіційний Discord[/url]
[*] [url=https://trello.com/b/ISQncpJP/shapezio]Roadmap[/url] [*] [url=https://trello.com/b/ISQncpJP/shapezio]Дорожня карта[/url]
[*] [url=https://www.reddit.com/r/shapezio]Subreddit[/url] [*] [url=https://www.reddit.com/r/shapezio]Спільнота на Reddit[/url]
[*] [url=https://github.com/tobspr/shapez.io]Source code (GitHub)[/url] [*] [url=https://github.com/tobspr/shapez.io]Вихідний код на 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]Допоможіть з перекладом[/url]
[/list] [/list]
global: global:
loading: Loading loading: Завантаження
error: Error error: Помилка
# 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: тис.
millions: M millions: млн
billions: B billions: млрд
trillions: T trillions: трлн
# Shown for infinitely big numbers # Shown for infinitely big numbers
infinite: inf infinite: неск.
time: time:
# Used for formatting past time dates # Used for formatting past time dates
oneSecondAgo: one second ago oneSecondAgo: одну секунду тому
xSecondsAgo: <x> seconds ago xSecondsAgo: <x> секунд тому
oneMinuteAgo: one minute ago oneMinuteAgo: 1 хвилину тому
xMinutesAgo: <x> minutes ago xMinutesAgo: <x> хвилин тому
oneHourAgo: one hour ago oneHourAgo: одну годину тому
xHoursAgo: <x> hours ago xHoursAgo: <x> годин тому
oneDayAgo: one day ago oneDayAgo: один день тому
xDaysAgo: <x> days ago xDaysAgo: <x> днів тому
# Short formats for times, e.g. '5h 23m' # Short formats for times, e.g. '5h 23m'
secondsShort: <seconds>s secondsShort: <seconds>сек.
minutesAndSecondsShort: <minutes>m <seconds>s minutesAndSecondsShort: <minutes>хв. <seconds>сек.
hoursAndMinutesShort: <hours>h <minutes>m hoursAndMinutesShort: <hours>год. <minutes>хв.
xMinutes: <x> minutes xMinutes: <x> хв.
keys: keys:
tab: TAB tab: TAB
@ -133,182 +139,180 @@ global:
demoBanners: 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: Demo Version title: Демоверсія
intro: >- intro: >-
Get the standalone to unlock all features! Завантажте окрему версію, щоб розблокувати всі функції!
mainMenu: mainMenu:
play: Play play: Грати
continue: Continue continue: Продовжити
newGame: New Game newGame: Нова гра
changelog: Changelog changelog: Змінопис
subreddit: Reddit subreddit: Reddit
importSavegame: Import importSavegame: Імпортувати
openSourceHint: This game is open source! openSourceHint: Ця гра з відкритим вихідним кодом!
discordLink: Official Discord Server discordLink: Офіційний Discord сервер
helpTranslate: Help translate! helpTranslate: Допоможіть перекласти!
madeBy: Made by <author-link> madeBy: Зробив <author-link>
# 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: >-
Sorry, but the game is known to run slow on your browser! Get the standalone version or download chrome for the full experience. Вибачте, але гра, як відомо, працює повільно у вашому браузері! Завантажте окрему версію чи хром, щоб отримати більше задоволення від гри.
savegameLevel: Level <x>
savegameLevelUnknown: Unknown Level
savegameLevel: Рівень <x>
savegameLevelUnknown: Невідомий рівень
dialogs: dialogs:
buttons: buttons:
ok: OK ok: Гаразд
delete: Delete delete: Видалити
cancel: Cancel cancel: Скасувати
later: Later later: Пізніше
restart: Restart restart: Перезавантажити
reset: Reset reset: Скинути
getStandalone: Get Standalone getStandalone: Завантажити гру
deleteGame: I know what I am doing deleteGame: Я знаю, що роблю
viewUpdate: View Update viewUpdate: Переглянути оновлення
showUpgrades: Show Upgrades showUpgrades: Показати поліпшення
showKeybindings: Show Keybindings showKeybindings: Показати прив’язки клавіш
importSavegameError: importSavegameError:
title: Import Error title: Помилка при імпортуванні
text: >- text: >-
Failed to import your savegame: Не вдалося імпортувати вашу збережену гру:
importSavegameSuccess: importSavegameSuccess:
title: Savegame Imported title: Збереження імпортовано
text: >- text: >-
Your savegame has been successfully imported. Вашу збережену гру успішно імпортовано.
gameLoadFailure: gameLoadFailure:
title: Game is broken title: Гра поламана
text: >- text: >-
Failed to load your savegame: Не вдалося завантажити вашу збережену гру.
confirmSavegameDelete: confirmSavegameDelete:
title: Confirm deletion title: Підтвердження
text: >- text: >-
Are you sure you want to delete the game? Ви справді хочете видалити гру?
savegameDeletionError: savegameDeletionError:
title: Failed to delete title: Виникла помилка при видаленні
text: >- text: >-
Failed to delete the savegame: Не вдалося видалити збережену гру.
restartRequired: restartRequired:
title: Restart required title: Потрібне перезавантаження
text: >- text: >-
You need to restart the game to apply the settings. Перезавантажте гру, щоб налаштування вступили в дію.
editKeybinding: editKeybinding:
title: Change Keybinding title: Зміна гарячої клавіши
desc: Press the key or mouse button you want to assign, or escape to cancel. desc: Натисніть клавішу, яку ви хочете призначити, або escape для скасування.
resetKeybindingsConfirmation: resetKeybindingsConfirmation:
title: Reset keybindings title: Скинути гарячу клавіші
desc: This will reset all keybindings to their default values. Please confirm. desc: Це скине всі прив'язки клавіш до їхніх значень за замовчуванням. Будь ласка, підтвердіть.
keybindingsResetOk: keybindingsResetOk:
title: Keybindings reset title: Скинути гарячі клавіші
desc: The keybindings have been reset to their respective defaults! desc: Гарячі клавіши скинемуться до їхніх початкових значень!
featureRestriction: featureRestriction:
title: Demo Version title: Демоверсія
desc: You tried to access a feature (<feature>) which is not available in the demo. Consider getting the standalone version for the full experience! desc: Ви спробували отримати доступ до функції (<feature>), яка недоступна в демонстраційній версії. Подумайте про отримання окремої версії, щоб насолодитися грою сповна!
oneSavegameLimit: oneSavegameLimit:
title: Limited savegames title: Обмежені збереження
desc: You can only have one savegame at a time in the demo version. Please remove the existing one or get the standalone version! desc: Ви можете мати лише одне збереження одночасно в демоверсії. Будь ласка, видаліть збереження чи завантажте окрему версію гри!
updateSummary: updateSummary:
title: New update! title: Нове оновлення!
desc: >- desc: >-
Here are the changes since you last played: Ось зміни з вашої останньої гри
upgradesIntroduction: upgradesIntroduction:
title: Unlock Upgrades title: Розблокування поліпшень
desc: >- desc: >-
All shapes you produce can be used to unlock upgrades - <strong>Don't destroy your old factories!</strong> Усі форми, що ви виробляєте, можуть використовуватися для розблокування поліпшення - <strong>Не зруйновуйте ваші старі заводи!<strong>
The upgrades tab can be found on the top right corner of the screen. Вкладку з поліпшеннями можна знайти в правому верхньому куті екрана.
massDeleteConfirm: massDeleteConfirm:
title: Confirm delete title: Підтвердження видалення
desc: >- desc: >-
You are deleting a lot of buildings (<count> to be exact)! Are you sure you want to do this? Ви видаляєте багато будівль (<count>, якщо бути точним)! Ви справді хочете зробити це?
massCutConfirm: massCutConfirm:
title: Confirm cut title: Підтвердження вирізання
desc: >- desc: >-
You are cutting a lot of buildings (<count> to be exact)! Are you sure you want to do this? Ви вирізаєте багато будівль(<count>, якщо бути точним)! Ви справді хочете зробити це?
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: Підтвердити вирізання
desc: >- desc: >-
You can not afford to paste this area! Are you sure you want to cut it? Ви не можете дозволити собі вставити цю область! Ви справді хочете вирізати це?
blueprintsNotUnlocked: blueprintsNotUnlocked:
title: Not unlocked yet title: Ще не розблоковано
desc: >- desc: >-
Complete level 12 to unlock Blueprints! Досягніть 13-го рівня, щоб розблокувати Blueprints!
keybindingsIntroduction: keybindingsIntroduction:
title: Useful keybindings title: Корисні гарячі клавіши
desc: >- desc: >-
This game has a lot of keybindings which make it easier to build big factories. Гра має багато гарічих клавіш, що полегшує будівництво великих заводів.
Here are a few, but be sure to <strong>check out the keybindings</strong>!<br><br> Here are a few, but be sure to <strong>check out the keybindings</strong>!<br><br>
<code class='keybinding'>CTRL</code> + Drag: Select an area.<br> <code class='keybinding'>CTRL</code> + Drag: Select an area.<br>
<code class='keybinding'>SHIFT</code>: Hold to place multiple of one building.<br> <code class='keybinding'>SHIFT</code>: Hold to place multiple of one building.<br>
<code class='keybinding'>ALT</code>: Invert orientation of placed belts.<br> <code class='keybinding'>ALT</code>: Invert orientation of placed belts.<br>
createMarker: createMarker:
title: New Marker title: Нова позначка
desc: Give it a meaningful name, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>) desc: Дайте йому змістовну назву, you can also include a <strong>short key</strong> of a shape (Which you can generate <a href="https://viewer.shapez.io" target="_blank">here</a>)
titleEdit: Edit Marker titleEdit: Редагувати позначку
markerDemoLimit: markerDemoLimit:
desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! desc: Ви можете створити тільки 2 позначки в демоверсії. Отримайте окрему версії для створення необмеженної кількості позначок.
exportScreenshotWarning: exportScreenshotWarning:
title: Export screenshot title: Експортувати зняток
desc: You requested to export your base as a screenshot. Please note that this can be quite slow for a big base and even crash your game! desc: Ви просили експортувати свою базу як знімок екрана. Зверніть увагу, що для великої бази це може бути досить повільним процесом і може навіть зруйнувати вашу гру!
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
# every situation # every situation
keybindingsOverlay: keybindingsOverlay:
moveMap: Move moveMap: Рухатися
selectBuildings: Select area selectBuildings: Виділити будівлі
stopPlacement: Stop placement stopPlacement: Stop placement
rotateBuilding: Rotate building rotateBuilding: Повернути будівлю
placeMultiple: Place multiple placeMultiple: Place multiple
reverseOrientation: Reverse orientation reverseOrientation: Reverse orientation
disableAutoOrientation: Disable auto-orientation disableAutoOrientation: Disable auto-orientation
toggleHud: Toggle HUD toggleHud: Toggle HUD
placeBuilding: Place building placeBuilding: Place building
createMarker: Create marker createMarker: Створити позначку
delete: Delete delete: Видалити
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
lockBeltDirection: Enable belt planner lockBeltDirection: Enable belt planner
plannerSwitchSide: Flip planner side plannerSwitchSide: Flip planner side
cutSelection: Cut cutSelection: Вирізати
copySelection: Copy copySelection: Скопіювати
clearSelection: Clear selection clearSelection: Clear selection
pipette: Pipette pipette: Піпетка
switchLayers: Switch layers switchLayers: Змінити шари
# Names of the colors, used for the color blind mode # Names of the colors, used for the color blind mode
colors: colors:
red: Red red: Червоний
green: Green green: Зелений
blue: Blue blue: Синій
yellow: Yellow yellow: Жовтий
purple: Purple purple: Фіолетовий
cyan: Cyan cyan: Блакитний
white: White white: Білий
black: Black black: Чорний
uncolored: No color uncolored: Без кольору
# 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)
@ -322,126 +326,126 @@ ingame:
Hotkey: <key> Hotkey: <key>
infoTexts: infoTexts:
speed: Speed speed: Швидкість
range: Range range: Range
storage: Storage storage: Сховище
oneItemPerSecond: 1 item / second oneItemPerSecond: 1 предмет за сек.
itemsPerSecond: <x> items / s itemsPerSecond: <x> предмет. за сек
itemsPerSecondDouble: (x2) itemsPerSecondDouble: (x2)
tiles: <x> tiles tiles: <x> плиток
# 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: Level <level> levelTitle: Рівень <level>
completed: Completed completed: Завершено
unlockText: Unlocked <reward>! unlockText: Розблоковано «<reward>»!
buttonNextLevel: Next Level buttonNextLevel: Наступний рівень
# Notifications on the lower right # Notifications on the lower right
notifications: notifications:
newUpgrade: A new upgrade is available! newUpgrade: Нове оновлення розблоковано!
gameSaved: Your game has been saved. gameSaved: Вашу гру збережено.
# The "Upgrades" window # The "Upgrades" window
shop: shop:
title: Upgrades title: Поліпшення
buttonUnlock: Upgrade buttonUnlock: Поліпшення
# Gets replaced to e.g. "Tier IX" # Gets replaced to e.g. "Tier IX"
tier: Tier <x> tier: Клас <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: MAXIMUM LEVEL (Speed x<currentMult>) maximumLevel: МАКСИМАЛЬНИЙ РІВЕНЬ (Швидкість <currentMult>х)
# The "Statistics" window # The "Statistics" window
statistics: statistics:
title: Statistics title: Статистика
dataSources: dataSources:
stored: stored:
title: Stored title: Зберігається
description: Displaying amount of stored shapes in your central building. description: Displaying amount of stored shapes in your central building.
produced: produced:
title: Produced title: Виробляється
description: Displaying all shapes your whole factory produces, including intermediate products. description: Displaying all shapes your whole factory produces, including intermediate products.
delivered: delivered:
title: Delivered title: Доставлено
description: Displaying shapes which are delivered to your central building. description: Displaying shapes which are delivered to your central building.
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'
shapesPerMinute: <shapes> / m shapesPerMinute: <shapes> за хв.
# Settings menu, when you press "ESC" # Settings menu, when you press "ESC"
settingsMenu: settingsMenu:
playtime: Playtime playtime: У грі
buildingsPlaced: Buildings buildingsPlaced: Будівлі
beltsPlaced: Belts beltsPlaced: Стрічки
buttons: buttons:
continue: Continue continue: Продовжити
settings: Settings settings: Налаштування
menu: Return to menu menu: Повернутися до меню
# Bottom left tutorial hints # Bottom left tutorial hints
tutorialHints: tutorialHints:
title: Need help? title: Потрібна допомога?
showHint: Show hint showHint: Показати підказку
hideHint: Close hideHint: Закрити
# When placing a blueprint # When placing a blueprint
blueprintPlacer: blueprintPlacer:
cost: Cost cost: Вартість
# Map markers # Map markers
waypoints: waypoints:
waypoints: Markers waypoints: Позначки
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: 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.
creationSuccessNotification: Marker has been created. creationSuccessNotification: Marker has been created.
# Shape viewer # Shape viewer
shapeViewer: shapeViewer:
title: Layers title: Шари
empty: Empty empty: Пустий
copyKey: Copy Key copyKey: Copy Key
# Interactive tutorial # Interactive tutorial
interactiveTutorial: interactiveTutorial:
title: Tutorial title: Навчання
hints: hints:
1_1_extractor: Place an <strong>extractor</strong> on top of a <strong>circle shape</strong> to extract it! 1_1_extractor: Розмістіть <strong>екстрактор</strong> поверх <strong>фігури кола</strong>, щоб отримати її!
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! З’єднайте екстрактор з вашим центром за допомогою <strong>конвеєрної стрічки</strong>!<br><br>Підказка: <strong>Натисніть і протягніть</strong> стрічку вашою мишею.
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. У цій грі <strong>ВАМ НЕ ПОТРІБНО БЕЗДІЯТИ</strong>! Будуйте більше екстракторів і стрічок, щоб виконати свою мету швидше.<br><br>Підказка: Утримуйте <strong>SHIFT</strong>, щоб розмістити багато екстракторів, і використовуйте <strong>R</strong>, щоб обертати їх.
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
belt: belt:
name: Belts, Distributor & Tunnels name: Стрічки, розподілювачі і тунелі
description: Speed x<currentMult> → x<newMult> description: Швидкість x<currentMult> → x<newMult>
miner: miner:
name: Extraction name: Видобуток
description: Speed x<currentMult> → x<newMult> description: Швидкість x<currentMult> → x<newMult>
processors: processors:
name: Cutting, Rotating & Stacking name: Різання, обертання й укладання
description: Speed x<currentMult> → x<newMult> description: Швидкість x<currentMult> → x<newMult>
painting: painting:
name: Mixing & Painting name: Змішування і малювання
description: Speed x<currentMult> → x<newMult> description: Швидкість x<currentMult> → x<newMult>
# Buildings and their name / description # Buildings and their name / description
buildings: buildings:
hub: hub:
deliver: Deliver deliver: Доставте,
toUnlock: to unlock toUnlock: щоб розблокувати
levelShortcut: LVL levelShortcut: РІВ
belt: belt:
default: default:
@ -504,6 +508,9 @@ buildings:
ccw: ccw:
name: Rotate (CCW) name: Rotate (CCW)
description: Rotates shapes counter-clockwise by 90 degrees. description: Rotates shapes counter-clockwise by 90 degrees.
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -562,8 +569,8 @@ buildings:
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: Різання фігур
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: Ви тільки-но розблокували <strong>різця</strong>. Він розрізає фігури наполовину з <strong>вершини до низу</strong> незалежно від його орієнтації!<br><br>Обов’язково позбудьтесь відходів або <strong>він зупиниться</strong>. Для цього є сміттєбак, який знищує все, що входить в нього.
reward_rotater: reward_rotater:
title: Rotating title: Rotating
@ -584,7 +591,7 @@ storyRewards:
reward_splitter: reward_splitter:
title: Splitter/Merger title: Splitter/Merger
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: Багатофункціональний <strong> балансир </strong> було розблоковано. Його можна використовувати для створення великих заводів, <strong>розділяючи та об’єднуючи предмети </strong> на кілька стрічок!<br><br>
reward_tunnel: reward_tunnel:
title: Tunnel title: Tunnel
@ -633,22 +640,21 @@ storyRewards:
# 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: Наступний рівень
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>! Цей рівень не дав нагороди, але в наступному... щось буде. <br><br> До речі, краще не руйнуйте свій поточний завод. Вам знадобляться всі ті форми пізніше, щоб <strong>розблокувати поліпшення</strong>!
no_reward_freeplay: no_reward_freeplay:
title: Next level title: Наступний рівень
desc: >- desc: >-
Congratulations! By the way, more content is planned for the standalone! Вітаємо! До речі, більше контенту планується в окремій версії!
settings: settings:
title: Settings title: Налаштування
categories: categories:
game: Game general: Загальне
app: Application userInterface: Користувацький інтерфейс
advanced: Передове
versionBadges: versionBadges:
dev: Development dev: Development
@ -658,102 +664,102 @@ settings:
labels: labels:
uiScale: uiScale:
title: Interface scale title: Масштаб інтерфейсу
description: >- description: >-
Changes the size of the user interface. The interface will still scale based on your device's resolution, but this setting controls the amount of scaling. Змінює розмір користувацього інтерфейсу. Інтерфейс усе ще буде масштабуватися залежно від роздільної здатності вашого пристрою, але цей параметр контролює масштаб масштабування.
scales: scales:
super_small: Super small super_small: Надзвичайно малий
small: Small small: Малий
regular: Regular regular: Звичайний
large: Large large: Великий
huge: Huge huge: Величезний
autosaveInterval: autosaveInterval:
title: Autosave Interval title: Проміжок між автозбереженнями
description: >- description: >-
Controls how often the game saves automatically. You can also disable it entirely here. Контролює, як часто гра автоматично зберігатиметься. Ви також можете повністю вимкнути його тут.
intervals: intervals:
one_minute: 1 Minute one_minute: 1 хвилина
two_minutes: 2 Minutes two_minutes: 2 хвилини
five_minutes: 5 Minutes five_minutes: 5 хвилин
ten_minutes: 10 Minutes ten_minutes: 10 хвилин
twenty_minutes: 20 Minutes twenty_minutes: 20 хвилин
disabled: Disabled disabled: Вимкнено
scrollWheelSensitivity: scrollWheelSensitivity:
title: Zoom sensitivity title: Чутливість масштабування
description: >- description: >-
Changes how sensitive the zoom is (Either mouse wheel or trackpad). Змінює наскільки чутливе масштабування (колесо миші або трекпад).
sensitivity: sensitivity:
super_slow: Super slow super_slow: Надзвичайно повільна
slow: Slow slow: Повільна
regular: Regular regular: Звичайна
fast: Fast fast: Швидка
super_fast: Super fast super_fast: Надзвичайно швидка
movementSpeed: movementSpeed:
title: Movement speed title: Швидкість руху
description: >- description: >-
Changes how fast the view moves when using the keyboard. Змінює Змінює швидкість руху бачення при використанні клавіатури.
speeds: speeds:
super_slow: Super slow super_slow: Надзвичайно повільна
slow: Slow slow: Повільна
regular: Regular regular: Звичайна
fast: Fast fast: Швидка
super_fast: Super Fast super_fast: Надзвичайно швидка
extremely_fast: Extremely Fast extremely_fast: Екстремально швидка
language: language:
title: Language title: Мова
description: >- description: >-
Change the language. All translations are user-contributed and might be incomplete! Змініть мову. Усі переклади зроблені користувачами і можуть бути незавершеними!
enableColorBlindHelper: enableColorBlindHelper:
title: Color Blind Mode title: Режим високої контрастності
description: >- description: >-
Enables various tools which allow you to play the game if you are color blind. Дозволяє використовувати різні інструменти, які дозволяють грати в гру, якщо ви є дальтоніком.
fullscreen: fullscreen:
title: Fullscreen title: Повноекранний режим
description: >- description: >-
It is recommended to play the game in fullscreen to get the best experience. Only available in the standalone. Щоб повністю насолодитися грою, рекомендується грати у повноекранному режимі. Не доступно тільки в демоверсії.
soundsMuted: soundsMuted:
title: Mute Sounds title: Заглушити звуки
description: >- description: >-
If enabled, mutes all sound effects. Якщо увімкнено, то вимикає всі звукові ефекти.
musicMuted: musicMuted:
title: Mute Music title: Заглушити музику
description: >- description: >-
If enabled, mutes all music. Якщо увімкнено, то вимикає всю музику.
theme: theme:
title: Game theme title: Тема гри
description: >- description: >-
Choose the game theme (light / dark). Оберіть тему гри (світлу чи темну).
themes: themes:
dark: Dark dark: Темна
light: Light light: Світла
refreshRate: refreshRate:
title: Simulation Target title: Частота оновлення
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. Якщо ви маєте 144-герцовий монітор, то змініть частоту оновлення тут, щоб гра правильно працювала при більшій швидкості оновлення. Це може фактично знизити FPS, якщо ваш комп’ютер занадто повільний.
alwaysMultiplace: alwaysMultiplace:
title: Multiplace title: Мультирозміщення
description: >- description: >-
If enabled, all buildings will stay selected after placement until you cancel it. This is equivalent to holding SHIFT permanently. Якщо ввімкнено, всі будівлі залишатимуться вибраними після розміщення, доки ви не скасуєте це. Це еквівалентно постійному утримуванню SHIFT.
offerHints: offerHints:
title: Hints & Tutorials title: Підказки & посібники
description: >- description: >-
Whether to offer hints and tutorials while playing. Also hides certain UI elements up to a given level to make it easier to get into the game. Якщо увімкнено, то пропонує підказки та посібники під час гри. Також приховує певні елементи інтерфейсу до заданого рівня, щоб полегшити потрапляння в гру.
enableTunnelSmartplace: enableTunnelSmartplace:
title: Smart Tunnels title: Розумні Tunnels
description: >- description: >-
When enabled, placing tunnels will automatically remove unnecessary belts. This also enables you to drag tunnels and excess tunnels will get removed. When enabled, placing tunnels will automatically remove unnecessary belts. This also enables you to drag tunnels and excess tunnels will get removed.
@ -778,15 +784,15 @@ settings:
Disables the warning dialogs brought up when cutting/deleting more than 100 entities. Disables the warning dialogs brought up when cutting/deleting more than 100 entities.
keybindings: keybindings:
title: Keybindings title: Гарячі клавіши
hint: >- hint: >-
Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options. Tip: Be sure to make use of CTRL, SHIFT and ALT! They enable different placement options.
resetKeybindings: Reset Keybindings resetKeybindings: Скинути гарячі клавіші
categoryLabels: categoryLabels:
general: Application general: Застосунок
ingame: Game ingame: Гра
navigation: Navigating navigation: Navigating
placement: Placement placement: Placement
massSelect: Mass Select massSelect: Mass Select
@ -794,8 +800,8 @@ keybindings:
placementModifiers: Placement Modifiers placementModifiers: Placement Modifiers
mappings: mappings:
confirm: Confirm confirm: Підтвердити
back: Back back: Назад
mapMoveUp: Move Up mapMoveUp: Move Up
mapMoveRight: Move Right mapMoveRight: Move Right
mapMoveDown: Move Down mapMoveDown: Move Down
@ -803,13 +809,13 @@ keybindings:
mapMoveFaster: Move Faster mapMoveFaster: Move Faster
centerMap: Center Map centerMap: Center Map
mapZoomIn: Zoom in mapZoomIn: Приблизити
mapZoomOut: Zoom out mapZoomOut: Віддалити
createMarker: Create Marker createMarker: Створити позначку
menuOpenShop: Upgrades menuOpenShop: Поліпшення
menuOpenStats: Statistics menuOpenStats: Статистика
menuClose: Close Menu menuClose: Закрити меню
toggleHud: Toggle HUD toggleHud: Toggle HUD
toggleFPSInfo: Toggle FPS and Debug Info toggleFPSInfo: Toggle FPS and Debug Info
@ -829,12 +835,12 @@ keybindings:
trash: *trash trash: *trash
wire: *wire wire: *wire
pipette: Pipette pipette: Pipetteї
rotateWhilePlacing: Rotate rotateWhilePlacing: Повернути
rotateInverseModifier: >- rotateInverseModifier: >-
Modifier: Rotate CCW instead Modifier: Rotate CCW instead
cycleBuildingVariants: Cycle Variants cycleBuildingVariants: Cycle Variants
confirmMassDelete: Delete area confirmMassDelete: Видалити ділянку
pasteLastBlueprint: Paste last blueprint pasteLastBlueprint: Paste last blueprint
cycleBuildings: Cycle Buildings cycleBuildings: Cycle Buildings
lockBeltDirection: Enable belt planner lockBeltDirection: Enable belt planner
@ -842,36 +848,36 @@ keybindings:
Planner: Switch side Planner: Switch side
massSelectStart: Hold and drag to start massSelectStart: Hold and drag to start
massSelectSelectMultiple: Select multiple areas massSelectSelectMultiple:
massSelectCopy: Copy area massSelectCopy: Копіювати ділянку
massSelectCut: Cut area massSelectCut: Вирізати ділянку
placementDisableAutoOrientation: Disable automatic orientation placementDisableAutoOrientation: Вимкнути автоматичну орієнтацію
placeMultiple: Stay in placement mode placeMultiple: Stay in placement mode
placeInverse: Invert automatic belt orientation placeInverse: Invert automatic belt orientation
about: about:
title: About this Game title: Про гру
body: >- body: >-
This game is open source and developed by <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (this is me).<br><br> Ця гра з відкритим вихідним кодом і розроблена <a href="https://github.com/tobspr" target="_blank">Tobias Springer</a> (це я).<br><br>
If you want to contribute, check out <a href="<githublink>" target="_blank">shapez.io on github</a>.<br><br> Якщо ви хочете зробити внесок, то йдіть на <a href="<githublink>" target="_blank">github shapez.io</a>.<br><br>
This game wouldn't have been possible without the great discord community around my games - You should really join the <a href="<discordlink>" target="_blank">discord server</a>!<br><br> Ця гра не була б можливою без великої Discord спільноти навколо моїх ігор. Гадаю, вам дійсно слід долучитися до <a href="<discordlink>" target="_blank">серверу в discord</a>!<br><br>
The soundtrack was made by <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - He's awesome.<br><br> Звуковий трек був зроблений гравцем <a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> — він просто приголомшливий.<br><br>
Finally, huge thanks to my best friend <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> - Without our factorio sessions, this game would never have existed. І нарешті, величезна подяка моєму найкращому другу <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a>, бо без наших сеансів у факторіо ця гра ніколи б не існувала.
changelog: changelog:
title: Changelog title: Змінопис
demo: demo:
features: features:
restoringGames: Restoring savegames restoringGames: Відновлення збережень
importingGames: Importing savegames importingGames: Імпортування збережень
oneGameLimit: Limited to one savegame oneGameLimit: Обмежено одним збереженням
customizeKeybindings: Customizing Keybindings customizeKeybindings: Налаштування гарячих клавіш
exportingBase: Exporting whole Base as Image exportingBase: Експортування цілої бази у вигляді зображення
settingNotAvailable: Not available in the demo. settingNotAvailable: Недоступно в демоверсії.

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -45,6 +45,7 @@
# Painter上色机 # Painter上色机
# Trash垃圾桶 # Trash垃圾桶
---
steamPage: steamPage:
# This is the short text appearing on the steam page # This is the short text appearing on the steam page
shortText: shapez.io 是一款在无边际的地图上建造工厂、自动化生产与组合愈加复杂的图形的游戏。 shortText: shapez.io 是一款在无边际的地图上建造工厂、自动化生产与组合愈加复杂的图形的游戏。
@ -178,10 +179,8 @@ mainMenu:
很抱歉, 本游戏在当前浏览器上可能运行缓慢! 使用chrome或者获取独立版以得到更好的体验。 很抱歉, 本游戏在当前浏览器上可能运行缓慢! 使用chrome或者获取独立版以得到更好的体验。
savegameLevel: 第<x>关 savegameLevel: 第<x>关
savegameLevelUnknown: 未知关卡 savegameLevelUnknown:
未知关卡
# contestOver: This contest has ended - Join the discord to get noticed about new contests!
continue: 继续游戏 continue: 继续游戏
newGame: 新游戏 newGame: 新游戏
madeBy: 作者:<author-link> madeBy: 作者:<author-link>
@ -301,8 +300,8 @@ dialogs:
你将要导出你的工厂的截图。如果你的基地很大,截图过程将会很慢,且有可能导致游戏崩溃! 你将要导出你的工厂的截图。如果你的基地很大,截图过程将会很慢,且有可能导致游戏崩溃!
massCutInsufficientConfirm: massCutInsufficientConfirm:
title: Confirm cut title: 确认剪切
desc: You can not afford to paste this area! Are you sure you want to cut it? desc: 你没有足够的图形来粘贴这个区域!你确定要剪切吗?
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
@ -444,11 +443,11 @@ ingame:
cyan: 青色 cyan: 青色
white: 白色 white: 白色
uncolored: 无色 uncolored: 无色
black: Black black: 黑色
shapeViewer: shapeViewer:
title: 层 # TODO: find better translation title: 层 # TODO: find better translation
empty: empty:
copyKey: Copy Key copyKey: 复制短代码
# All shop upgrades # All shop upgrades
shopUpgrades: shopUpgrades:
@ -518,6 +517,9 @@ buildings:
ccw: ccw:
name: 旋转机(逆时针) name: 旋转机(逆时针)
description: 将图形逆时针旋转90度。 description: 将图形逆时针旋转90度。
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -527,7 +529,7 @@ buildings:
mixer: mixer:
default: default:
name: &mixer 混色机 name: &mixer 混色机
description: 将两个颜色混合在一起。(加法混合) description: 用加法混色将两个颜色混合起来
painter: painter:
default: default:
@ -590,11 +592,11 @@ storyRewards:
reward_painter: reward_painter:
title: 上色 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>color blind mode</strong> in the settings! 恭喜!你解锁了<strong>上色机</strong>。 开采一些颜色 (就像你开采图形一样) 将其在上色机中与图形结合来将图形上色!<br><br>PS: 如果你患有色盲,可以在设置中启用<strong>色盲模式</strong>
reward_mixer: reward_mixer:
title: 混合颜色 title: 混合颜色
desc: The <strong>mixer</strong> has been unlocked - Combine two colors using <strong>additive blending</strong> with this building! desc: 恭喜!你解锁了<strong>混色机</strong>。这个建筑使用<strong>加法混色</strong>将两种颜色混合起来。
reward_stacker: reward_stacker:
title: 堆叠 title: 堆叠
@ -614,7 +616,7 @@ storyRewards:
reward_miner_chainable: reward_miner_chainable:
title: 链式开采机 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: 二级隧道 title: 二级隧道
@ -622,7 +624,7 @@ storyRewards:
reward_splitter_compact: reward_splitter_compact:
title: 小型合流机 title: 小型合流机
desc: You have unlocked a compact variant of the <strong>balancer</strong> - It accepts two inputs and merges them into one! desc: 恭喜!你解锁了<strong>平衡机</strong>的变体。它能够接受两个输入,合并成一个输出!
reward_cutter_quad: reward_cutter_quad:
title: 四向切割机 title: 四向切割机
@ -638,7 +640,7 @@ storyRewards:
reward_storage: reward_storage:
title: 仓库 title: 仓库
desc: You have unlocked a variant of the <strong>trash</strong> - It allows to store items up to a given capacity! desc: 恭喜!你解锁了<strong>垃圾桶</strong>的变体。他可以存储一定数量的物品!
reward_freeplay: reward_freeplay:
title: 自由模式 title: 自由模式
@ -662,8 +664,9 @@ storyRewards:
settings: settings:
title: 设置 title: 设置
categories: categories:
game: 游戏内容 general: 通用
app: 应用 userInterface: 用户界面
advanced: 高级
versionBadges: versionBadges:
dev: 开发版本 # Development dev: 开发版本 # Development
@ -789,11 +792,9 @@ settings:
title: 色盲模式 title: 色盲模式
description: 提供一些分辨颜色的工具。目前当鼠标移至颜色资源上方时,屏幕上方会显示颜色名称。 description: 提供一些分辨颜色的工具。目前当鼠标移至颜色资源上方时,屏幕上方会显示颜色名称。
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.
keybindings: keybindings:
title: 按键设置 title: 按键设置

View File

@ -15,7 +15,7 @@
# #
# Adding a new language: # Adding a new language:
# #
# If you want to add a new language, ask me in the discord and I will setup # If you want to add a new language, ask me in the Discord and I will setup
# the basic structure so the game also detects it. # the basic structure so the game also detects it.
# #
@ -56,50 +56,50 @@ steamPage:
# - Please keep the markup (Stuff like [b], [list] etc) in the same format # - Please keep the markup (Stuff like [b], [list] etc) in the same format
longText: >- longText: >-
[img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img] [img]{STEAM_APP_IMAGE}/extras/store_page_gif.gif[/img]
shapez.io 是一款在一個無邊無際的地圖上建造工廠、將生產與組合愈加複雜圖形自動化的遊戲。
shapez.io is a game about building factories to automate the creation and processing of increasingly complex shapes across an infinitely expanding map. 在指定圖形送達基地後,你會晉級且解鎖能加速生產的新功能。
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]! 當指定圖形的數量增加時,你必須擴充你的工廠才能應付訂單 -- 但別忘記資源,你需要在[b]無邊無際的地圖[/b]上擴充。
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. 不久後你將需要混色並為圖形上色 -- 混和紅、綠、藍以創造新顏色再將圖形上色來達成目標。
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! 遊戲目前有十八關(應該也夠你忙一陣子了),而我還有很多計畫,持續更新中!
Purchasing the game gives you access to the standalone version which has additional features and you'll also receive access to newly developed features. 購買獨立版的你即擁有額外內容,也會優先接觸新開發內容。
[b]Standalone Advantages[/b] [b]獨立版的額外內容[/b]
[list] [list]
[*] Dark Mode [*] 深色主題
[*] Unlimited Waypoints [*] 地圖標記數量無限制
[*] Unlimited Savegames [*] 存檔數量無限制
[*] Additional settings [*] 更多設定
[*] Coming soon: Wires & Energy! Aiming for (roughly) end of July 2020. [*] 即將到來: 電線與能源! 目標在2020年七月底(左右)問世。
[*] Coming soon: More Levels [*] 即將到來: 更多新關卡
[*] Allows me to further develop shapez.io ❤️ [*] 幫助我繼續開發 shapez.io ❤️
[/list] [/list]
[b]Future Updates[/b] [b]未來更新[/b]
I am updating the game very often and trying to push an update at least every week! 我時常更新遊戲,希望能周更!
[list] [list]
[*] Different maps and challenges (e.g. maps with obstacles) [*] 不同的地圖與挑戰(像是有障礙物的地圖)
[*] Puzzles (Deliver the requested shape with a restricted area / set of buildings) [*] 迷宮(在地圖受限制或只能使用特定建築的情況下送達圖形)
[*] A story mode where buildings have a cost [*] 一個蓋建築物需要成本的故事模式
[*] Configurable map generator (Configure resource/shape size/density, seed and more) [*] 可調控的地圖生成器(資源/圖形/密度可調整、隨機生成種子等等)
[*] Additional types of shapes [*] 更多圖形種類
[*] Performance improvements (The game already runs pretty well!) [*] 遊戲效能提升(即使目前已經不錯了)
[*] And much more! [*] 還有更多更多!
[/list] [/list]
[b]This game is open source![/b] [b]這個遊戲是開源的![/b]
Anybody can contribute, I'm actively involved in the community and attempt to review all suggestions and take feedback into consideration where possible. 任何人都可以貢獻,我在社群裡很活耀、嘗試回復所有的建議並盡量參考大家的意見。
Be sure to check out my trello board for the full roadmap! 欲知詳情,別忘了造訪我的 Trello 喔!
[b]Links[/b] [b]連結[/b]
[list] [list]
[*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url] [*] [url=https://discord.com/invite/HN7EVzV]Official Discord[/url]
@ -178,7 +178,6 @@ mainMenu:
savegameLevel: Level <x> savegameLevel: Level <x>
savegameLevelUnknown: 未知關卡 savegameLevelUnknown: 未知關卡
continue: 繼續 continue: 繼續
newGame: 新遊戲 newGame: 新遊戲
madeBy: 作者:<author-link> madeBy: 作者:<author-link>
@ -513,6 +512,9 @@ buildings:
ccw: ccw:
name: 旋轉機(逆時針) name: 旋轉機(逆時針)
description: 將圖形逆時針旋轉90度。 description: 將圖形逆時針旋轉90度。
fl:
name: Rotate (180)
description: Rotates shapes by 180 degrees.
stacker: stacker:
default: default:
@ -658,8 +660,9 @@ storyRewards:
settings: settings:
title: 設置 title: 設置
categories: categories:
game: 遊戲內容 general: General
app: 應用 userInterface: User Interface
advanced: Advanced
versionBadges: versionBadges:
dev: 開發版本 # Development dev: 開發版本 # Development

1318
yarn.lock

File diff suppressed because it is too large Load Diff