diff --git a/src/html/index.html b/src/html/index.html
index ab32169c..f209659e 100644
--- a/src/html/index.html
+++ b/src/html/index.html
@@ -1,7 +1,7 @@
- shapez Demo - Factory Automation Game
+ 图形工厂
diff --git a/src/html/index.standalone.html b/src/html/index.standalone.html
index 9209c2fc..bd8ec1da 100644
--- a/src/html/index.standalone.html
+++ b/src/html/index.standalone.html
@@ -1,7 +1,7 @@
- shapez
+ 图形工厂
diff --git a/src/js/core/utils.js b/src/js/core/utils.js
index 9e2126b1..56b962b2 100644
--- a/src/js/core/utils.js
+++ b/src/js/core/utils.js
@@ -247,6 +247,16 @@ export function formatBigNumber(num, separator = T.global.decimalSeparator) {
if (num < 1000) {
return sign + "" + num;
} else {
+ if (G_WEGAME_VERSION) {
+ if (num < 1000000) {
+ if (num < 100000) {
+ return sign + String(num).replace(".0", "").replace(".", separator);
+ } else {
+ return sign + Math.round(num / 10000.0) + T.global.suffix.thousands;
+ }
+ }
+ }
+
let leadingDigits = num;
let suffix = "";
for (let suffixIndex = 0; suffixIndex < bigNumberSuffixTranslationKeys.length; ++suffixIndex) {
diff --git a/src/js/platform/browser/storage.js b/src/js/platform/browser/storage.js
index ac0fa4ca..d4cc3d6f 100644
--- a/src/js/platform/browser/storage.js
+++ b/src/js/platform/browser/storage.js
@@ -33,9 +33,9 @@ export class StorageImplBrowser extends StorageInterface {
window.localStorage.setItem("storage_availability_test", "1");
window.localStorage.removeItem("storage_availability_test");
} catch (e) {
- alert(
- "It seems we don't have permission to write to local storage! Please update your browsers settings or use a different browser!"
- );
+ // alert(
+ // "It seems we don't have permission to write to local storage! Please update your browsers settings or use a different browser!"
+ // );
reject(LOCAL_STORAGE_NO_WRITE_PERMISSION);
return;
}
diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js
index 1987d0a2..bbf3d383 100644
--- a/src/js/states/main_menu.js
+++ b/src/js/states/main_menu.js
@@ -263,7 +263,6 @@ export class MainMenuState extends GameState {
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。
-
`
: `
@@ -382,7 +381,7 @@ export class MainMenuState extends GameState {
closeLoader();
this.dialogs.showWarning(
T.dialogs.importSavegameError.title,
- T.dialogs.importSavegameError.text + "
" + err
+ T.dialogs.importSavegameError.text
);
return;
}
@@ -402,7 +401,7 @@ export class MainMenuState extends GameState {
closeLoader();
this.dialogs.showWarning(
T.dialogs.importSavegameError.title,
- T.dialogs.importSavegameError.text + ":
" + err
+ T.dialogs.importSavegameError.text
);
}
);
@@ -410,7 +409,7 @@ export class MainMenuState extends GameState {
reader.addEventListener("error", error => {
this.dialogs.showWarning(
T.dialogs.importSavegameError.title,
- T.dialogs.importSavegameError.text + ":
" + error
+ T.dialogs.importSavegameError.text
);
});
reader.readAsText(file, "utf-8");
@@ -433,10 +432,7 @@ export class MainMenuState extends GameState {
this.dialogs.initializeToElement(dialogsElement);
if (payload.loadError) {
- this.dialogs.showWarning(
- T.dialogs.gameLoadFailure.title,
- T.dialogs.gameLoadFailure.text + "
" + payload.loadError
- );
+ this.dialogs.showWarning(T.dialogs.gameLoadFailure.title, T.dialogs.gameLoadFailure.text);
}
if (G_IS_DEV && globalConfig.debug.testPuzzleMode) {
@@ -788,10 +784,7 @@ export class MainMenuState extends GameState {
})
.catch(err => {
- this.dialogs.showWarning(
- T.dialogs.gameLoadFailure.title,
- T.dialogs.gameLoadFailure.text + "
" + err
- );
+ this.dialogs.showWarning(T.dialogs.gameLoadFailure.title, T.dialogs.gameLoadFailure.text);
});
});
}
@@ -868,7 +861,7 @@ export class MainMenuState extends GameState {
err => {
this.dialogs.showWarning(
T.dialogs.savegameDeletionError.title,
- T.dialogs.savegameDeletionError.text + "
" + err
+ T.dialogs.savegameDeletionError.text
);
}
);
diff --git a/translations/base-zh-CN-ISBN.yaml b/translations/base-zh-CN-ISBN.yaml
index c2c94617..161760c5 100644
--- a/translations/base-zh-CN-ISBN.yaml
+++ b/translations/base-zh-CN-ISBN.yaml
@@ -1,11 +1,10 @@
steamPage:
- shortText: “唯一能限制您的,只有您的想象力!” 《异形工厂》(Shapez.io)
- 是一款在无限拓展的地图上,通过建造各类工厂设施,来自动化生产与组合出愈加复杂图形的游戏。
- discordLinkShort: 官方 Discord 服务器
+ shortText: “唯一能限制您的,只有您的想象力!” 《图形工厂》 是一款在无限拓展的地图上,通过建造各类工厂设施,来自动化生产与组合出愈加复杂图形的游戏。
+ discordLinkShort: 官方讨论区
intro: |-
“奇形怪状,放飞想象!”
“自动生产,尽情创造!”
- 《异形工厂》(Shapez.io)是一款能让您尽情发挥创造力,充分享受思维乐趣的IO游戏。
+ 《图形工厂》是一款能让您尽情发挥创造力,充分享受思维乐趣的益智游戏。
游戏很轻松,只需建造工厂,布好设施,无需操作即能自动创造出各种各样的几何图形。
挑战很烧脑,随着等级提升,需要创造的图形将会越来越复杂,同时您还需要在无限扩展的地图中持续扩建优化您的工厂。
以为这就是全部了吗? 不!图形的生产需求将会指数性增长,持续的扩大规模和熵增带来的无序,将会是令人头痛的问题!
@@ -13,8 +12,8 @@ steamPage:
然后,还有吗? 当然,唯有思维,方能无限。
欢迎免费体验试玩版:“让您的想象力插上翅膀!”
- 和最聪明的玩家一起挑战,请访问 Steam 游戏商城购买《异形工厂》(Shapez.io)的完整版,
- what_others_say: 来看看玩家们对《异形工厂》(Shapez.io)的评价
+ 和最聪明的玩家一起挑战,请购买《图形工厂》的完整版,
+ what_others_say: 来看看玩家们对《图形工厂》的评价
nothernlion_comment: 非常棒的有游戏,我的游戏过程充满乐趣,不觉时间飞逝。
notch_comment: 哦,天哪!我真得该去睡了!但我想我刚刚搞定如何在游戏里面制造一台电脑出来。
steam_review_comment: 这是一个不知不觉偷走你时间,但你并不会想要追回的游戏。非常烧脑的挑战,让我这样的完美主义者停不下来,总是希望可以再高效一些。
@@ -24,7 +23,7 @@ global:
thousandsDivider: ","
decimalSeparator: .
suffix:
- thousands: 千
+ thousands: 万
millions: 百万
billions: 亿万
trillions: 兆
@@ -67,7 +66,7 @@ mainMenu:
changelog: 更新日志
importSavegame: 读取存档
openSourceHint: 本游戏已开源!
- discordLink: 官方Discord服务器
+ discordLink: 官方讨论区
helpTranslate: 帮助我们翻译!
browserWarning: 很抱歉, 本游戏在当前浏览器上可能运行缓慢! 使用 谷歌浏览器 或者购买完整版以得到更好的体验。
savegameLevel: 第关
@@ -75,13 +74,13 @@ mainMenu:
continue: 继续游戏
newGame: 新游戏
madeBy: 作者:
- subreddit: Reddit
+ subreddit: 讨论区
savegameUnnamed: 存档未命名
puzzleMode: 谜题模式
back: 返回
puzzleDlcText: 新增谜题模式将带给您更多的游戏乐趣!
puzzleDlcWishlist: 添加心愿单!
- puzzleDlcViewNow: View Dlc
+ puzzleDlcViewNow: 查看资料片!
mods:
title: Active Mods
warningPuzzleDLC: Playing the Puzzle DLC is not possible with mods. Please
@@ -99,7 +98,7 @@ dialogs:
later: 以后
restart: 重新开始
reset: 重置
- getStandalone: 获取完整版
+ getStandalone: 获取完整版!
deleteGame: 我没疯!我知道我在做什么!
viewUpdate: 查看更新
showUpgrades: 显示设施升级
@@ -109,19 +108,19 @@ dialogs:
playOffline: 离线游戏
importSavegameError:
title: 读取错误
- text: 未能读取您的存档:
+ text: 未能读取您的存档!
importSavegameSuccess:
title: 读取成功
- text: 存档被成功读取
+ text: 存档被成功读取!
gameLoadFailure:
title: 存档损坏
- text: 未能读取您的存档:
+ text: 未能读取您的存档!
confirmSavegameDelete:
title: 确认删除
text: 您确定要删除这个游戏吗?
'' 等级
该操作无法回退!
savegameDeletionError:
title: 删除失败
- text: 未能删除您的存档
+ text: 未能删除您的存档!
restartRequired:
title: 需要重启游戏
text: 您需要重启游戏以应用变更的设置。
@@ -179,24 +178,24 @@ dialogs:
editSignal:
title: 设置信号
descItems: "选择一个预定义的项目:"
- descShortKey: ... 或者输入图形的 短代码 (您可以 点击这里 生成短代码)
+ descShortKey: ... 或者输入图形的 短代码 (您可以 点击这里 生成短代码!)
renameSavegame:
title: 重命名游戏存档
desc: 您可以在此重命名游戏存档。
tutorialVideoAvailable:
title: 教程
- desc: 这个关卡有视频攻略! 您想查看这个视频攻略?
+ desc: 这个关卡有视频攻略! 您想查看这个视频攻略吗?
tutorialVideoAvailableForeignLanguage:
title: 教程
- desc: 这个关卡有英语版本的视频攻略! 您想查看这个视频攻略吗??
+ desc: 这个关卡有英语版本的视频攻略! 您想查看这个视频攻略吗?
editConstantProducer:
title: 设置项目
puzzleLoadFailed:
title: 谜题载入失败
- desc: 谜题未能载入:
+ desc: 谜题未能载入!
submitPuzzle:
title: 提交谜题
- descName: 为您的谜题命名:
+ descName: 为您的谜题命名!
descIcon: 请输入唯一的短代码,它将作为您的谜题图标显示(您可以在这里生成,或者从以下随机推荐的图形中选择一个):
placeholderName: 谜题标题
puzzleResizeBadBuildings:
@@ -204,16 +203,16 @@ dialogs:
desc: 由于某些设施将会超出区域范围,因此您无法将区域变得更小。
puzzleLoadError:
title: 谜题出错!
- desc: 谜题未能载入:
+ desc: 谜题未能载入!
offlineMode:
title: 离线模式
desc: 无法访问服务器,所以游戏以离线模式进行。请确认您的互联网访问正常。
puzzleDownloadError:
title: 下载出错!
- desc: 无法下载谜题:
+ desc: 无法下载谜题!
puzzleSubmitError:
title: 提交出错!
- desc: 无法提交谜题:
+ desc: 无法提交谜题!
puzzleSubmitOk:
title: 谜题成功发布!
desc: 恭喜!您的谜题已经成功发布,其他玩家已经可以玩到。您可以在“我的谜题”中找到自己已发布的谜题。
@@ -237,7 +236,7 @@ dialogs:
desc: 此谜已被标记!
puzzleReportError:
title: 上报失败
- desc: 无法处理您的上报:
+ desc: 无法处理您的上报!
puzzleLoadShortKey:
title: 输入短代码
desc: 输入谜题的短代码并载入。
@@ -358,7 +357,9 @@ ingame:
interactiveTutorial:
title: 新手教程
hints:
- 1_1_extractor: 在圆形上放置一个开采器来获取圆形!
提示:按下鼠标左键选中开采器
+ 1_1_extractor:
+ 亲爱的玩家,欢迎来到《图形工厂》!在这里你可以通过创造各种图形设施与传送带模拟流水线生产,尽情发挥创造力,创办属于自己的工厂!
+ 在圆形上放置一个开采器来获取圆形!
提示:按下鼠标左键选中开采器
1_2_conveyor: 用传送带将您的开采器连接到中心基地上!
提示:选中传送带后按下鼠标左键可拖动布置传送带!
1_3_expand:
您可以放置更多的开采器和传送带来更有效率地完成关卡目标。
@@ -400,7 +401,7 @@ ingame:
watermark:
title: 试玩版
desc: 点击这里了解完整版内容
- get_on_steam: 在Steam商城购买
+ get_on_steam: 购买完整版!
standaloneAdvantages:
no_thanks: 不需要,谢谢
points:
@@ -452,7 +453,7 @@ ingame:
- 6.谜题发布后,所有设施都将被拆除,除了常量生成器和目标接收器。然后,等着其他玩家对您创造的谜题发起挑战吧!
puzzleCompletion:
title: 谜题挑战成功!
- titleLike: 喜欢此谜题的话,请为它点赞:
+ titleLike: 喜欢此谜题的话,请为它点赞。
titleRating: 您觉得此谜题难度如何?
titleRatingDesc: 您的评分将帮助作者在未来创作出更好的谜题!
continueBtn: 继续游戏
@@ -542,16 +543,16 @@ buildings:
deliver: 交付
toUnlock: 解锁
levelShortcut: 关卡
- endOfDemo: 试玩版结束
+ endOfDemo: 试玩版结束!
wire:
default:
name: 电线
description: 可用来传输信号,信号可以是物品,颜色或者开关值(0或1)。
- 不同颜色的电线不会互相连接
+ 不同颜色的电线不会互相连接。
second:
name: 电线
description: 可用来传输信号,信号可以是物品,颜色或者开关值(0或1)。
- 不同颜色的电线不会互相连接
+ 不同颜色的电线不会互相连接。
balancer:
default:
name: 平衡器
@@ -640,7 +641,7 @@ buildings:
description: 模拟将右侧图形叠在左侧图形上。
painter:
name: 模拟上色器
- description: 模拟使用右侧输入的颜色给底部输入的图形上色
+ description: 模拟使用右侧输入的颜色给底部输入的图形上色。
item_producer:
default:
name: 物品生成器
@@ -769,7 +770,7 @@ storyRewards:
您也可以输入开关值(1 / 0)信号来激活或者禁用它。
reward_demo_end:
title: 试玩结束
- desc: 恭喜!您已经通关了试玩版本!
更多挑战,请至Steam商城购买完整版!谢谢支持!
+ desc: 恭喜!您已经通关了试玩版本!
更多挑战,请购买完整版!谢谢支持!
settings:
title: 设置
categories:
@@ -870,10 +871,10 @@ settings:
description: 每一类设施都会记住各自上一次的旋转方向。如果您经常在不同设施类型之间切换,这个设置会让游戏操控更加便捷。
soundVolume:
title: 音效音量
- description: 设置音效的音量
+ description: 设置音效的音量。
musicVolume:
title: 音乐音量
- description: 设置音乐的音量
+ description: 设置音乐的音量。
lowQualityMapResources:
title: 低质量地图资源
description: 放大时简化地图上资源的渲染以提高性能。开启甚至会让画面看起来更干净,低配置电脑玩家建议开启!
@@ -947,7 +948,7 @@ keybindings:
painter: 上色器
trash: 垃圾桶
rotateWhilePlacing: 顺时针旋转
- rotateInverseModifier: "修饰键: 改为逆时针旋转"
+ rotateInverseModifier: "修饰键: 改为逆时针旋转。"
cycleBuildingVariants: 切换所选择设施变体
confirmMassDelete: 确认批量删除
cycleBuildings: 切换所选择设施
@@ -962,7 +963,7 @@ keybindings:
exportScreenshot: 导出截图
mapMoveFaster: 快速移动
lockBeltDirection: 启用传送带规划
- switchDirectionLockSide: 规划器:换边
+ switchDirectionLockSide: 规划器:换边。
pipette: 吸取器
menuClose: 关闭菜单
switchLayers: 切换层
@@ -981,7 +982,7 @@ keybindings:
analyzer: 图形分析器
comparator: 比较器
item_producer: 物品生产器 (沙盒模式)
- copyWireValue: 电线:复制指定电线上的值
+ copyWireValue: 电线:复制指定电线上的值。
rotateToUp: 向上旋转
rotateToDown: 向下旋转
rotateToRight: 向右旋转
@@ -990,20 +991,14 @@ keybindings:
goal_acceptor: 目标接收器
block: 方块
massSelectClear: 清除传送带
- showShapeTooltip: 显示图形输出提示
+ showShapeTooltip: 显示图形输出提示。
about:
title: 关于游戏
- body: >-
- 本游戏由 Tobias
- Springer(我)开发,并且已经开源。
-
- 如果您想参与开发,请查看 shapez.io on github。
-
- 这个游戏的开发获得了 Discord 社区内热情玩家的巨大支持。诚挚邀请您加入我们的 Discord 服务器!
-
- 本游戏的音乐由 Peppsen 制作——他是个很棒的伙伴。
-
- 最后,我想感谢我最好的朋友 Niklas ——如果没有他的《异星工厂》(factorio)带给我的体验和启发,《异形工厂》(shapez.io)将不会存在。
+ body: |-
+ 本游戏由托比亚斯开发,并且已经开源。
+ 这个游戏的开发获得了热情玩家的巨大支持。非常感谢!
+ 本游戏的音乐由佩普森制作——他是个很棒的伙伴。
+ 最后,我想感谢我最好的朋友尼可拉斯——如果没有他的《异星工厂》带给我的体验和启发,《图形工厂》将不会存在。
changelog:
title: 版本日志
demo:
@@ -1067,7 +1062,7 @@ tips:
- 这个游戏有很多设置可以提高游戏效率,请一定要了解一下!
- 中心基地有个指向它所在方向的小指南指针!
- 想清理传送带,可剪切那块区域然后将其在相同位置粘贴。
- - 按F4显示FPS。
+ - 按F4显示帧数。
- 按两次F4显示您鼠标和镜头所在的块。
- 您可以点击被固定在屏幕左侧的图形来解除固定。
- 您可以点击被固定在屏幕左侧的图形来解除固定。
@@ -1081,7 +1076,7 @@ puzzleMenu:
validatingPuzzle: 验证谜题
submittingPuzzle: 提交谜题
noPuzzles: 暂无满足此部分条件的谜题。
- dlcHint: 如已购买DLC,请在您的Steam库中右键点击异形工厂,然后选择属性-DLC。
+ dlcHint: 如已购买资料片,请在您的游戏库中右键点击图形工厂,然后选择属性-资料片。
categories:
levels: 关卡
new: 最新
@@ -1127,7 +1122,7 @@ puzzleMenu:
autoComplete: 您的谜题已自动完成!请确认您的常量生成器没有直接向您的目标接收器进行传送。
backendErrors:
ratelimit: 您的操作太频繁了。请稍等。
- invalid-api-key: 与后台通信失败,请尝试更新或重新启动游戏(无效的Api密钥)。
+ invalid-api-key: 与后台通信失败,请尝试更新或重新启动游戏(无效的密钥)。
unauthorized: 与后台通信失败,请尝试更新或重新启动游戏(未经授权)。
bad-token: 与后台通信失败,请尝试更新或重新启动游戏(令牌错误)。
bad-id: 谜题标识符无效。
@@ -1145,7 +1140,7 @@ backendErrors:
bad-payload: 此请求包含无效数据。
bad-building-placement: 您的谜题包含放置错误的设施。
timeout: 请求超时。
- too-many-likes-already: 您的谜题已经得到了许多玩家的赞赏。如果您仍然希望删除它,请联系support@shapez.io!
+ too-many-likes-already: 您的谜题已经得到了许多玩家的赞赏。如果您仍然希望删除它,请联系客服!
no-permission: 您没有执行此操作的权限。
mods:
title: Mods