parent
13c6fc7598
commit
a70a937302
@ -0,0 +1,26 @@
|
||||
const path = require("path");
|
||||
|
||||
const yaml = require("gulp-yaml");
|
||||
|
||||
const translationsSourceDir = path.join(__dirname, "..", "translations");
|
||||
const translationsJsonDir = path.join(__dirname, "..", "src", "js", "translations-built");
|
||||
|
||||
function gulptasksTranslations($, gulp, buildFolder) {
|
||||
gulp.task("translations.clear", () => {
|
||||
return gulp.src(translationsJsonDir, { read: false }).pipe($.clean({ force: true }));
|
||||
});
|
||||
|
||||
gulp.task("translations.convertToJson", () => {
|
||||
return gulp
|
||||
.src(path.join(translationsSourceDir, "*.yaml"))
|
||||
.pipe($.plumber())
|
||||
.pipe(yaml({ space: 2, safe: true }))
|
||||
.pipe(gulp.dest(translationsJsonDir));
|
||||
});
|
||||
|
||||
gulp.task("translations.fullBuild", $.sequence("translations.convertToJson"));
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
gulptasksTranslations,
|
||||
};
|
@ -0,0 +1 @@
|
||||
translations-built
|
@ -0,0 +1,20 @@
|
||||
import { globalConfig } from "./core/config";
|
||||
|
||||
const baseTranslations = require("./translations-built/base-en.json");
|
||||
|
||||
export const T = baseTranslations;
|
||||
|
||||
if (G_IS_DEV && globalConfig.debug.testTranslations) {
|
||||
// Replaces all translations by fake translations to see whats translated and what not
|
||||
const mapTranslations = obj => {
|
||||
for (const key in obj) {
|
||||
const value = obj[key];
|
||||
if (typeof value === "string") {
|
||||
obj[key] = value.replace(/[a-z]/gi, "x");
|
||||
} else {
|
||||
mapTranslations(value);
|
||||
}
|
||||
}
|
||||
};
|
||||
mapTranslations(T);
|
||||
}
|
@ -0,0 +1,259 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
global:
|
||||
loading: Loading
|
||||
|
||||
# How big numbers are rendered, e.g. "10,000"
|
||||
thousandsDivider: ","
|
||||
|
||||
# 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>s
|
||||
|
||||
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: This is a demo version
|
||||
intro: >-
|
||||
Get <strong>shapez.io on steam</strong> for:
|
||||
advantages:
|
||||
- No advertisements.
|
||||
- Unlimited savegame slots.
|
||||
- Supporting the developer ❤️
|
||||
|
||||
mainMenu:
|
||||
play: Play
|
||||
importSavegame: Import Savegame
|
||||
openSourceHint: This game is open source!
|
||||
discordLink: Official Discord Server
|
||||
|
||||
# This is shown when using firefox and other browsers which are not supported.
|
||||
browserWarning: >-
|
||||
This game is optimized for Google Chrome. Your browser is not supported or slow!
|
||||
|
||||
dialogs:
|
||||
buttons:
|
||||
ok: OK
|
||||
delete: Delete
|
||||
cancel: Cancel
|
||||
|
||||
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:
|
||||
|
||||
ingame:
|
||||
# This is shown in the top left corner and displays useful keybindings in
|
||||
# every situation
|
||||
keybindingsOverlay:
|
||||
centerMap: Center
|
||||
moveMap: Move
|
||||
removeBuildings: Delete
|
||||
stopPlacement: Stop placement
|
||||
rotateBuilding: Rotate building
|
||||
placeMultiple: Place multiple
|
||||
reverseOrientation: Reverse orientation
|
||||
disableAutoOrientation: Disable auto orientation
|
||||
toggleHud: Toggle HUD
|
||||
|
||||
# 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>
|
||||
|
||||
# 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.
|
||||
|
||||
# Mass delete information, this is when you hold CTRL and then drag with your mouse
|
||||
# to select multiple buildings to delete
|
||||
massDelete:
|
||||
infoText: Press <keyDelete> to remove selected buildings and <keyCancel> to cancel.
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
||||
playtime1Minute: 1 minutes
|
||||
playtimeXMinutes: <x> minutes
|
||||
|
||||
buttons:
|
||||
continue: Continue
|
||||
menu: Return to menu
|
||||
|
||||
# All shop upgrades
|
||||
shopUpgrades:
|
||||
belt:
|
||||
name: Belts, Distributor & Tunnels
|
||||
description: Speed +<gain>%
|
||||
miner:
|
||||
name: Extraction
|
||||
description: Speed +<gain>%
|
||||
processors:
|
||||
name: Shape Processing
|
||||
description: Speed +<gain>%
|
||||
painting:
|
||||
name: Mixing & Painting
|
||||
description: Speed +<gain>%
|
||||
|
||||
# Buildings and their name / description
|
||||
buildings:
|
||||
belt:
|
||||
name: Belt
|
||||
description: Transports items, hold and drag to place multiple.
|
||||
|
||||
miner: # Internal name for the Extractor
|
||||
name: Extractor
|
||||
description: Place over a shape or color to extract it. Six extractors fill exactly one belt.
|
||||
|
||||
underground_belt: # Internal name for the Tunnel
|
||||
name: Tunnel
|
||||
description: Allows to tunnel resources under buildings and belts.
|
||||
|
||||
splitter: # Internal name for the Balancer
|
||||
name: Balancer
|
||||
description: Multifunctional - Evenly distributes all inputs onto all outputs.
|
||||
|
||||
cutter:
|
||||
name: Cut Half
|
||||
description: Cuts shapes from top to bottom and outputs both halfs. <strong>If you use only one part, be sure to destroy the other part or it will stall!</strong>
|
||||
|
||||
rotater:
|
||||
name: Rotate
|
||||
description: Rotates shapes clockwise by 90 degrees.
|
||||
|
||||
stacker: # Internal name for the Combiner
|
||||
name: Combine
|
||||
description: Combines both items. If they can not be merged, the right item is placed above the left item.
|
||||
|
||||
mixer:
|
||||
name: Mix Colors
|
||||
description: Mixes two colors using additive blending.
|
||||
|
||||
painter:
|
||||
name: Dye
|
||||
description: Colors the whole shape on the left input with the color from the right input.
|
||||
|
||||
trash: # Internal name for the destroyer
|
||||
name: Destroyed
|
||||
description: Accepts inputs from all sides and destroys them. Forever.
|
||||
|
||||
storyRewards:
|
||||
# Those are the rewards gained from completing the store
|
||||
reward_cutter_and_trash: Cutting Shapes
|
||||
reward_rotater: Rotating
|
||||
reward_painter: Painting
|
||||
reward_mixer: Color Mixing
|
||||
reward_stacker: Combiner
|
||||
reward_splitter: Splitter/Merger
|
||||
reward_tunnel: Tunnel
|
||||
|
||||
# Special reward, which is shown when there is no reward actually
|
||||
no_reward: Next level
|
Loading…
Reference in new issue