Add finish, italian, romania, ukrainian, minor adjustments

pull/1094/head
tobspr 3 years ago
parent 65d4c64ae5
commit 4bc918dedd

@ -44,7 +44,7 @@ function gulptasksTranslations($, gulp) {
[h2]${storePage.what_others_say}[/h2]
[list]
[*] [i]${storePage.northernlion_comment}[/i] [b]- Northernlion, YouTube[/b]
[*] [i]${storePage.nothernlion_comment}[/i] [b]- Northernlion, YouTube[/b]
[*] [i]${storePage.notch_comment}[/i] [b]- Notch[/b]
[*] [i]${storePage.steam_review_comment}[/i] [b]- Steam User[/b]
[/list]

@ -13051,16 +13051,11 @@ yaml-loader@^0.6.0:
loader-utils "^1.4.0"
yaml "^1.8.3"
yaml@^1.10.0:
yaml@^1.10.0, yaml@^1.8.3:
version "1.10.0"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
yaml@^1.8.3:
version "1.10.0"
resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
yargs-parser@5.0.0-security.0:
version "5.0.0-security.0"
resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz"

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<rect style="fill:#F5F5F5;" width="512" height="512"/>
<polygon style="fill:#41479B;" points="512,229.517 211.862,229.517 211.862,0 158.897,0 158.897,229.517 0,229.517 0,282.483
158.897,282.483 158.897,512 211.862,512 211.862,282.483 512,282.483 "/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 786 B

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<rect style="fill:#41479B;" width="170.67" height="512"/>
<rect x="170.67" style="fill:#FFE15A;" width="170.67" height="512"/>
<rect x="341.33" style="fill:#FF4B55;" width="170.67" height="512"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@ -67,7 +67,7 @@ $icons: notification_saved, notification_success, notification_upgrade;
}
$languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW, zh-CN, nb, mt-MT, ar, nl, vi,
th, hu, pl, ja, kor, no, pt-PT;
th, hu, pl, ja, kor, no, pt-PT, fi, ro;
@each $language in $languages {
[data-languageicon="#{$language}"] {

@ -43,9 +43,10 @@
.languageChoose {
@include S(border-radius, 8px);
border: solid #222428;
background-color: #fff;
@include S(border-width, 2px);
background-size: cover;
background-color: #222428 !important;
background-size: contain !important;
background-position: center center !important;
opacity: 0.8;
}
}
@ -182,7 +183,7 @@
.updateLabel {
position: absolute;
transform: translateX(50%) rotate(-5deg);
color: rgb(133, 58, 231);
color: #3291e9;
@include Heading;
font-weight: bold;
@include S(right, 40px);
@ -444,7 +445,7 @@
justify-content: center;
align-items: flex-end;
width: 100%;
grid-template-columns: auto auto auto 1fr;
grid-template-columns: auto auto auto auto 1fr;
@include S(padding, 10px);
box-sizing: border-box;
@include S(grid-gap, 4px);
@ -500,6 +501,15 @@
background-color: $linkBgHover;
}
&.nftLink {
background-color: #3291e9;
color: #fff;
&:hover {
background-color: darken(#3291e9, 5);
}
}
.thirdpartyLogo {
display: inline-block;
@include S(width, 50px);
@ -514,6 +524,12 @@
background-image: uiResource("main_menu/discord.png");
background-size: 95%;
}
&.nftLogo {
/* @load-async */
background-image: uiResource("main_menu/opensea.png");
background-size: 80%;
}
}
}

@ -7,6 +7,7 @@ export const CHANGELOG = [
"There are now <strong>45 Steam Achievements!</strong>",
"Fixed constant signals being editable from the regular layer",
"Fixed items still overlapping sometimes between buildings and belts",
"The game is now available in finish, italian, romanian and ukrainian! (Thanks to all contributors!)",
"Updated translations (Thanks to all contributors!)",
],
},

@ -16,6 +16,7 @@ export const THIRDPARTY_URLS = {
github: "https://github.com/tobspr/shapez.io",
reddit: "https://www.reddit.com/r/shapezio",
shapeViewer: "https://viewer.shapez.io",
nftTokens: "https://opensea.io/collection/shapez",
standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/",

@ -8,120 +8,180 @@ export const LANGUAGES = {
code: "en",
region: "",
},
"de": {
name: "Deutsch",
data: require("./built-temp/base-de.json"),
code: "de",
region: "",
"zh-CN": {
// simplified chinese
name: "简体中文",
data: require("./built-temp/base-zh-CN.json"),
code: "zh",
region: "CN",
},
"fr": {
name: "Français",
data: require("./built-temp/base-fr.json"),
code: "fr",
region: "",
"zh-TW": {
// traditional chinese
name: "繁體中文",
data: require("./built-temp/base-zh-TW.json"),
code: "zh",
region: "TW",
},
"ja": {
// japanese
name: "日本語",
data: require("./built-temp/base-ja.json"),
code: "ja",
region: "",
},
"pt-PT": {
name: "Português (Portugal)",
data: require("./built-temp/base-pt-PT.json"),
code: "pt",
region: "PT",
},
"pt-BR": {
name: "Português (Brasil)",
data: require("./built-temp/base-pt-BR.json"),
code: "pt",
region: "BR",
},
"ru": {
name: "Русский",
data: require("./built-temp/base-ru.json"),
code: "ru",
"kor": {
// korean
name: "한국어",
data: require("./built-temp/base-kor.json"),
code: "kor",
region: "",
},
"cs": {
// czech
name: "Čeština",
data: require("./built-temp/base-cz.json"),
code: "cs",
region: "",
},
"da": {
// danish
name: "Dansk",
data: require("./built-temp/base-da.json"),
code: "da",
region: "",
},
"de": {
// german
name: "Deutsch",
data: require("./built-temp/base-de.json"),
code: "de",
region: "",
},
"es-419": {
// spanish
name: "Español",
data: require("./built-temp/base-es.json"),
code: "es",
region: "",
},
"pl": {
name: "Polski",
data: require("./built-temp/base-pl.json"),
code: "pl",
"fr": {
// french
name: "Français",
data: require("./built-temp/base-fr.json"),
code: "fr",
region: "",
},
"kor": {
name: "한국어",
data: require("./built-temp/base-kor.json"),
code: "kor",
"it": {
// italian
name: "Italiano",
data: require("./built-temp/base-it.json"),
code: "it",
region: "",
},
"hu": {
// hungarian
name: "Magyar",
data: require("./built-temp/base-hu.json"),
code: "hu",
region: "",
},
"nl": {
// dutch
name: "Nederlands",
data: require("./built-temp/base-nl.json"),
code: "nl",
region: "",
},
"no": {
// norwegian
name: "Norsk",
data: require("./built-temp/base-no.json"),
code: "no",
region: "",
},
"tr": {
name: "Türkçe",
data: require("./built-temp/base-tr.json"),
code: "tr",
"pl": {
// polish
name: "Polski",
data: require("./built-temp/base-pl.json"),
code: "pl",
region: "",
},
"zh-CN": {
// simplified
name: "中文简体",
data: require("./built-temp/base-zh-CN.json"),
code: "zh",
region: "CN",
"pt-PT": {
// portuguese
name: "Português",
data: require("./built-temp/base-pt-PT.json"),
code: "pt",
region: "PT",
},
"zh-TW": {
// traditional
name: "中文繁體",
data: require("./built-temp/base-zh-TW.json"),
code: "zh",
region: "TW",
"pt-BR": {
// portuguese - brazil
name: "Português - Brasil",
data: require("./built-temp/base-pt-BR.json"),
code: "pt",
region: "BR",
},
"ro": {
// romanian
name: "Română",
data: require("./built-temp/base-ro.json"),
code: "pt",
region: "BR",
},
"ru": {
// russian
name: "Русский",
data: require("./built-temp/base-ru.json"),
code: "ru",
region: "",
},
"fi": {
// finish
name: "Suomi",
data: require("./built-temp/base-fi.json"),
code: "fi",
region: "",
},
"sv": {
// swedish
name: "Svenska",
data: require("./built-temp/base-sv.json"),
code: "sv",
region: "",
},
"da": {
name: "Dansk",
data: require("./built-temp/base-da.json"),
code: "da",
"tr": {
// turkish
name: "Türkçe",
data: require("./built-temp/base-tr.json"),
code: "tr",
region: "",
},
"hu": {
name: "Magyar",
data: require("./built-temp/base-hu.json"),
code: "hu",
"uk": {
// ukrainian
name: "Українська",
data: require("./built-temp/base-uk.json"),
code: "uk",
region: "",
},
};

@ -109,6 +109,17 @@ export class MainMenuState extends GameState {
${G_CHINA_VERSION ? "" : `<a class="helpTranslate">${T.mainMenu.helpTranslate}</a>`}
</div>
${
G_CHINA_VERSION
? ""
: `
<a class="nftLink boxLink" target="_blank">
shapez.io NFT Tokens
<span class="thirdpartyLogo nftLogo"></span>
</a>`
}
<div class="author">${T.mainMenu.madeBy.replace(
"<author-link>",
'<a class="producerLink" target="_blank">Tobias Springer</a>'
@ -244,25 +255,41 @@ export class MainMenuState extends GameState {
const discordLink = this.htmlElement.querySelector(".discordLink");
this.trackClicks(
discordLink,
() => this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.discord),
() => {
this.app.analytics.trackUiClick("main_menu_link_discord");
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.discord);
},
{ preventClick: true }
);
const nftLink = this.htmlElement.querySelector(".nftLink");
if (nftLink) {
this.trackClicks(
nftLink,
() => {
this.app.analytics.trackUiClick("main_menu_link_nft");
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.nftTokens);
},
{ preventClick: true }
);
}
const githubLink = this.htmlElement.querySelector(".githubLink");
if (githubLink) {
this.trackClicks(
githubLink,
() => this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.github),
() => {
this.app.analytics.trackUiClick("main_menu_link_github");
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.github);
},
{ preventClick: true }
);
}
const producerLink = this.htmlElement.querySelector(".producerLink");
this.trackClicks(
producerLink,
() => this.app.platformWrapper.openExternalLink("https://tobspr.com"),
{ preventClick: true }
);
this.trackClicks(producerLink, () => this.app.platformWrapper.openExternalLink("https://tobspr.io"), {
preventClick: true,
});
}
renderMainMenu() {

@ -10,7 +10,7 @@ steamPage:
Mit steigendem Level werden die Formen immer komplexer, und du musst dich auf der unendlich großen Karte ausbreiten. Das ist noch nicht alles, denn du musst exponentiell mehr produzieren, um die Anforderungen zu erfüllen - Da hilft nur skalieren!
Während du am Anfang nur Formen verarbeitest, musst du diese später auch einfärben - Dafür musst du Farben extrahieren und mischen! Der Kauf des Spiels auf Steam gibt dir Zugriff auf die Vollversion, aber du kannst auch zuerst die Demo auf shapez.io spielen und dich später entscheiden!
what_others_say: What people say about shapez.io
what_others_say: Was andere über shapez.io sagen
nothernlion_comment: This game is great - I'm having a wonderful time playing,
and time has flown by.
notch_comment: Oh crap. I really should sleep, but I think I just figured out

@ -14,14 +14,11 @@ steamPage:
欢迎免费体验试玩版:“让您的想象力插上翅膀!”
和最聪明的玩家一起挑战,请访问 Steam 游戏商城购买《异形工厂》Shapez.io的完整版,
what_others_say: What people say about shapez.io
nothernlion_comment: This game is great - I'm having a wonderful time playing,
and time has flown by.
notch_comment: Oh crap. I really should sleep, but I think I just figured out
how to make a computer in shapez.io
steam_review_comment: This game has stolen my life and I don't want it back.
Very chill factory game that won't let me stop making my lines more
efficient.
what_others_say: 来看看玩家们对《异形工厂》Shapez.io的评价
nothernlion_comment: 非常棒的有游戏,我的游戏过程充满乐趣,不觉时间飞逝。
notch_comment: 哦,天哪!我真得该去睡了!但我想我刚刚搞定如何在游戏里面制造一台电脑出来。
steam_review_comment: 这是一个不知不觉偷走你时间,但你并不会想要追回的游戏。非常烧脑的挑战,让我这样的完美主义者停不下来,总是希望可以再高效一些。
global:
loading: 加载中
error: 错误
@ -131,13 +128,15 @@ dialogs:
desc: 您还没有解锁蓝图功能通过第12关的挑战后可解锁蓝图。
keybindingsIntroduction:
title: 实用快捷键
desc: "这个游戏有很多有用的快捷键设定。 以下是其中的一些介绍,记得在<strong>按键设置</strong>中查看其他按键设定!<br><br>
desc:
"这个游戏有很多有用的快捷键设定。 以下是其中的一些介绍,记得在<strong>按键设置</strong>中查看其他按键设定!<br><br>
<code class='keybinding'>CTRL键</code> + 拖动:选择区域以复制或删除。<br> <code
class='keybinding'>SHIFT键</code>: 按住以放置多个同一种设施。<br> <code
class='keybinding'>ALT键</code>: 反向放置传送带。<br>"
createMarker:
title: 创建地图标记
desc: 填写一个有意义的名称, 还可以同时包含一个形状的 <strong>短代码</strong> (您可以 <link>点击这里</link>
desc:
填写一个有意义的名称, 还可以同时包含一个形状的 <strong>短代码</strong> (您可以 <link>点击这里</link>
生成短代码)
titleEdit: 编辑地图标记
markerDemoLimit:
@ -248,15 +247,18 @@ ingame:
hints:
1_1_extractor: 在<strong>圆形</strong>上放置一个<strong>开采器</strong>来获取圆形!<br><br>提示:<strong>按下鼠标左键</strong>选中<strong>开采器</strong>
1_2_conveyor: 用<strong>传送带</strong>将您的开采器连接到中心基地上!<br><br>提示:选中<strong>传送带</strong>后<strong>按下鼠标左键可拖动</strong>布置传送带!
1_3_expand: 您可以放置更多的<strong>开采器</strong>和<strong>传送带</strong>来更有效率地完成关卡目标。<br><br>
1_3_expand:
您可以放置更多的<strong>开采器</strong>和<strong>传送带</strong>来更有效率地完成关卡目标。<br><br>
提示:按住 <strong>SHIFT</strong>
键可放置多个<strong>开采器</strong>,注意用<strong>R</strong>
键可旋转<strong>开采器</strong>的出口方向,确保开采的图形可以顺利传送。
2_1_place_cutter: 现在放置一个<strong>切割器</strong>,这个设施可把<strong>圆形</strong>切成两半!<br><br>注意:无论如何放置,切割机总是<strong>从上到下</strong>切割。
2_2_place_trash: 使用切割机后产生的废弃图形会导致<strong>堵塞</strong>。<br><br>注意使用<strong>垃圾桶</strong>清除当前
2_2_place_trash:
使用切割机后产生的废弃图形会导致<strong>堵塞</strong>。<br><br>注意使用<strong>垃圾桶</strong>清除当前
(!) 不需要的废物。
2_3_more_cutters: 干的好!现在放置<strong>2个以上的切割机</strong>来加快当前缓慢的过程!<br><br>提示:用<strong>快捷键0-9</strong>可以快速选择各项设施!
3_1_rectangles: 现在让我们开采一些矩形!找到<strong>矩形地带</strong>并<strong>放置4个开采器</strong>并将它们用<strong>传送带</strong>连接到中心基地。<br><br>
3_1_rectangles:
现在让我们开采一些矩形!找到<strong>矩形地带</strong>并<strong>放置4个开采器</strong>并将它们用<strong>传送带</strong>连接到中心基地。<br><br>
提示:选中<strong>传送带</strong>后按住<strong>SHIFT键</strong>可快速准确地规划<strong>传送带路线!</strong>
21_1_place_quad_painter: 放置<strong>四口上色器</strong>并且获取一些<strong>圆形</strong><strong>白色</strong>和<strong>红色</strong>
21_2_switch_to_wires: 按 <strong>E</strong> 键选择<strong>电线层</strong><br><br>
@ -311,8 +313,8 @@ ingame:
title: 支持作者
desc: 我使用闲暇时间开发游戏!
achievements:
title: Achievements
desc: Hunt them all!
title: 成就
desc: 挑战全成就解锁!
shopUpgrades:
belt:
name: 传送、分发、隧道
@ -505,7 +507,8 @@ storyRewards:
desc: 恭喜!您解锁了<strong>旋转机</strong>。它会顺时针将输入的<strong>图形旋转90度</strong>。
reward_painter:
title: 上色
desc: 恭喜!您解锁了<strong>上色器</strong>。开采一些颜色 (就像您开采图形一样),将其在上色器中与图形结合来将图形上色!
desc:
恭喜!您解锁了<strong>上色器</strong>。开采一些颜色 (就像您开采图形一样),将其在上色器中与图形结合来将图形上色!
<br>注意:如果您不幸患有色盲,可以在设置中启用<strong>色盲模式</strong>
reward_mixer:
title: 混合颜色
@ -522,11 +525,13 @@ storyRewards:
desc: 恭喜!您解锁了<strong>隧道</strong>。它可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。
reward_rotater_ccw:
title: 逆时针旋转
desc: 恭喜!您解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。它可以逆时针旋转<strong>图形</strong>。
desc:
恭喜!您解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。它可以逆时针旋转<strong>图形</strong>。
<br>选择<strong>旋转机</strong>然后按"T"键来选取这个变体。
reward_miner_chainable:
title: 链式开采器
desc: 您已经解锁了<strong>链式开采器</strong>!它能<strong>转发资源</strong>给其他的开采器,这样您就能更有效率的开采各类资源了!<br><br>
desc:
您已经解锁了<strong>链式开采器</strong>!它能<strong>转发资源</strong>给其他的开采器,这样您就能更有效率的开采各类资源了!<br><br>
注意:新的开采器已替换了工具栏里旧的开采器!
reward_underground_belt_tier_2:
title: 二级隧道
@ -543,12 +548,14 @@ storyRewards:
<br>它<strong>优先从左边</strong>输出,这样您就可以用它做一个<strong>溢流门</strong>了!
reward_freeplay:
title: 自由模式
desc: 成功了!您解锁了<strong>自由模式</strong>!挑战升级!这意味着现在将<strong>随机</strong>生成图形!
desc:
成功了!您解锁了<strong>自由模式</strong>!挑战升级!这意味着现在将<strong>随机</strong>生成图形!
从现在起,中心基地最为需要的是<strong>产量</strong>,我强烈建议您去制造一台能够自动交付所需图形的机器!<br><br>
基地会在<strong>电线层</strong>输出需要的图形,您需要去分析图形并在此基础上自动配置您的工厂。
reward_blueprints:
title: 蓝图
desc: 您现在可以<strong>复制粘贴</strong>您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域然后按C键复制。
desc:
您现在可以<strong>复制粘贴</strong>您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域然后按C键复制。
<br><br>粘贴并<strong>不是免费的</strong>,您需要制造<strong>蓝图图形</strong>来负担。蓝图图形是您刚刚交付的图形。
no_reward:
title: 下一关
@ -576,7 +583,8 @@ storyRewards:
<br>注意:您注意到<strong>传送读取器</strong>和<strong>存储器</strong>输出的他们最后读取的物品了吗?试着在显示屏上展示一下!"
reward_constant_signal:
title: 恒定信号
desc: 恭喜!您解锁了生成于电线层之上的<strong>恒定信号</strong>,把它连接到<strong>过滤器</strong>时非常有用。
desc:
恭喜!您解锁了生成于电线层之上的<strong>恒定信号</strong>,把它连接到<strong>过滤器</strong>时非常有用。
<br>比如它能发出图形、颜色、开关值1 / 0的固定信号。
reward_logic_gates:
title: 逻辑门
@ -595,7 +603,8 @@ storyRewards:
<strong>提示</strong>:可在设置中打开电线层教程!"
reward_filter:
title: 物品过滤器
desc: 恭喜!您解锁了<strong>物品过滤器</strong>!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。<br><br>
desc:
恭喜!您解锁了<strong>物品过滤器</strong>!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。<br><br>
您也可以输入开关值1 / 0信号来激活或者禁用它。
reward_demo_end:
title: 试玩结束
@ -611,7 +620,7 @@ settings:
dev: 开发版本
staging: 预览版本
prod: 正式版本
buildDate: <at-date>编译
buildDate: <at-date>编译
labels:
uiScale:
title: 用户界面大小
@ -806,10 +815,10 @@ keybindings:
comparator: 比较器
item_producer: 物品生产器 (沙盒模式)
copyWireValue: 电线:复制指定电线上的值
rotateToUp: "Rotate: Point Up"
rotateToDown: "Rotate: Point Down"
rotateToRight: "Rotate: Point Right"
rotateToLeft: "Rotate: Point Left"
rotateToUp: "向上旋转"
rotateToDown: "向下旋转"
rotateToRight: "向右旋转"
rotateToLeft: "向左旋转"
about:
title: 关于游戏
body: >-
@ -889,4 +898,3 @@ tips:
- 按F4显示FPS。
- 按两次F4显示您鼠标和镜头所在的块。
- 您可以点击被固定在屏幕左侧的图形来解除固定。
- You can click a pinned shape on the left side to unpin it.

Loading…
Cancel
Save