Fix multiple typos, closes #627
This commit is contained in:
parent
1ebfafd8de
commit
b5a2e77db4
|
@ -64,7 +64,7 @@ This project is based on ES5. Some ES2015 features are used but most of them are
|
|||
5. Add a constructor. **The constructor must be called with optional parameters only!** `new MyFancyComponent({})` should always work.
|
||||
6. Add any props you need in the constructor.
|
||||
7. Add the component in `src/js/game/component_registry.js`
|
||||
8. Add the componetn in `src/js/game/entity_components.js`
|
||||
8. Add the component in `src/js/game/entity_components.js`
|
||||
9. Done! You can use your component now
|
||||
|
||||
#### Adding a new building
|
||||
|
@ -96,6 +96,6 @@ This project is based on ES5. Some ES2015 features are used but most of them are
|
|||
|
||||
For most assets I use Adobe Photoshop, you can find them in `assets/`.
|
||||
|
||||
You will need a <a href="https://www.codeandweb.com/texturepacker" target="_blank">Texture Packer</a> license in order to regenerate the atlas. If you don't have one but want to contribute assets, let me know and I might compile it for you. I'm currently switching to an open source solution but I can't give an estimate when thats done.
|
||||
You will need a <a href="https://www.codeandweb.com/texturepacker" target="_blank">Texture Packer</a> license in order to regenerate the atlas. If you don't have one but want to contribute assets, let me know and I might compile it for you. I'm currently switching to an open source solution but I can't give an estimate when that's done.
|
||||
|
||||
<img src="https://i.imgur.com/W25Fkl0.png" alt="shapez.io Screenshot">
|
||||
|
|
|
@ -283,6 +283,7 @@
|
|||
<key type="filename">sprites/blueprints/virtual_processor-analyzer.png</key>
|
||||
<key type="filename">sprites/blueprints/virtual_processor-rotater.png</key>
|
||||
<key type="filename">sprites/blueprints/virtual_processor-shapecompare.png</key>
|
||||
<key type="filename">sprites/blueprints/virtual_processor-stacker.png</key>
|
||||
<key type="filename">sprites/blueprints/virtual_processor-unstacker.png</key>
|
||||
<key type="filename">sprites/blueprints/virtual_processor.png</key>
|
||||
<key type="filename">sprites/blueprints/wire_tunnel-coating.png</key>
|
||||
|
@ -310,6 +311,7 @@
|
|||
<key type="filename">sprites/buildings/virtual_processor-analyzer.png</key>
|
||||
<key type="filename">sprites/buildings/virtual_processor-rotater.png</key>
|
||||
<key type="filename">sprites/buildings/virtual_processor-shapecompare.png</key>
|
||||
<key type="filename">sprites/buildings/virtual_processor-stacker.png</key>
|
||||
<key type="filename">sprites/buildings/virtual_processor-unstacker.png</key>
|
||||
<key type="filename">sprites/buildings/virtual_processor.png</key>
|
||||
<key type="filename">sprites/buildings/wire_tunnel-coating.png</key>
|
||||
|
|
|
@ -1,161 +1,154 @@
|
|||
#ingame_HUD_ShapeViewer {
|
||||
$dims: 170px;
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
@include S(width, $dims);
|
||||
width: 100%;
|
||||
flex-direction: column;
|
||||
overflow-x: hidden;
|
||||
|
||||
&[data-layers="3"],
|
||||
&[data-layers="4"] {
|
||||
@include S(width, 2 * $dims);
|
||||
.renderArea {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
@include S(grid-row-gap, 15px);
|
||||
}
|
||||
}
|
||||
|
||||
.renderArea {
|
||||
display: grid;
|
||||
width: 100%;
|
||||
@include S(grid-row-gap, 10px);
|
||||
align-items: center;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
.infoArea {
|
||||
align-self: flex-end;
|
||||
@include S(margin-top, 10px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
|
||||
button {
|
||||
@include S(margin, 0);
|
||||
@include PlainText;
|
||||
}
|
||||
}
|
||||
|
||||
.seperator {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.layer {
|
||||
position: relative;
|
||||
background: #eee;
|
||||
|
||||
@include DarkThemeOverride {
|
||||
background: rgba(0, 10, 20, 0.2);
|
||||
}
|
||||
@include S(width, 150px);
|
||||
@include S(height, 100px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
> canvas {
|
||||
@include S(width, 50px);
|
||||
@include S(height, 50px);
|
||||
}
|
||||
|
||||
.quad {
|
||||
position: absolute;
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
|
||||
$arrowDims: 23px;
|
||||
$spacing: 9px;
|
||||
@include S(padding, 6px);
|
||||
|
||||
.colorLabel {
|
||||
text-transform: uppercase;
|
||||
@include SuperSmallText;
|
||||
@include S(font-size, 9px);
|
||||
}
|
||||
|
||||
.emptyLabel {
|
||||
text-transform: uppercase;
|
||||
@include SuperSmallText;
|
||||
@include S(font-size, 9px);
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: " ";
|
||||
background: rgba(0, 10, 20, 0.5);
|
||||
@include S(width, $arrowDims);
|
||||
@include S(height, 1px);
|
||||
position: absolute;
|
||||
transform: rotate(45deg);
|
||||
transform-origin: 50% 50%;
|
||||
}
|
||||
@include DarkThemeOverride {
|
||||
&::after {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
&.quad-0 {
|
||||
right: 0;
|
||||
top: 0;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-end;
|
||||
|
||||
&::after {
|
||||
@include S(left, $spacing);
|
||||
@include S(bottom, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
&.quad-1 {
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
|
||||
align-items: flex-end;
|
||||
justify-content: flex-end;
|
||||
|
||||
&::after {
|
||||
@include S(left, $spacing);
|
||||
@include S(top, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
}
|
||||
&.quad-2 {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
|
||||
align-items: flex-end;
|
||||
justify-content: flex-start;
|
||||
|
||||
&::after {
|
||||
@include S(right, $spacing);
|
||||
@include S(top, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(135deg);
|
||||
}
|
||||
}
|
||||
&.quad-3 {
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
align-items: flex-start;
|
||||
justify-content: flex-start;
|
||||
|
||||
&::after {
|
||||
@include S(right, $spacing);
|
||||
@include S(bottom, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(225deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#ingame_HUD_ShapeViewer {
|
||||
$dims: 170px;
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
@include S(width, $dims);
|
||||
width: 100%;
|
||||
flex-direction: column;
|
||||
overflow-x: hidden;
|
||||
|
||||
&[data-layers="3"],
|
||||
&[data-layers="4"] {
|
||||
@include S(width, 2 * $dims);
|
||||
.renderArea {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
@include S(grid-row-gap, 15px);
|
||||
}
|
||||
}
|
||||
|
||||
.renderArea {
|
||||
display: grid;
|
||||
width: 100%;
|
||||
@include S(grid-row-gap, 10px);
|
||||
align-items: center;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
.infoArea {
|
||||
align-self: flex-end;
|
||||
@include S(margin-top, 10px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
|
||||
button {
|
||||
@include S(margin, 0);
|
||||
@include PlainText;
|
||||
}
|
||||
}
|
||||
|
||||
.layer {
|
||||
position: relative;
|
||||
background: #eee;
|
||||
|
||||
@include DarkThemeOverride {
|
||||
background: rgba(0, 10, 20, 0.2);
|
||||
}
|
||||
@include S(width, 150px);
|
||||
@include S(height, 100px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
> canvas {
|
||||
@include S(width, 50px);
|
||||
@include S(height, 50px);
|
||||
}
|
||||
|
||||
.quad {
|
||||
position: absolute;
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
|
||||
$arrowDims: 23px;
|
||||
$spacing: 9px;
|
||||
@include S(padding, 6px);
|
||||
|
||||
.colorLabel {
|
||||
text-transform: uppercase;
|
||||
@include SuperSmallText;
|
||||
@include S(font-size, 9px);
|
||||
}
|
||||
|
||||
.emptyLabel {
|
||||
text-transform: uppercase;
|
||||
@include SuperSmallText;
|
||||
@include S(font-size, 9px);
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: " ";
|
||||
background: rgba(0, 10, 20, 0.5);
|
||||
@include S(width, $arrowDims);
|
||||
@include S(height, 1px);
|
||||
position: absolute;
|
||||
transform: rotate(45deg);
|
||||
transform-origin: 50% 50%;
|
||||
}
|
||||
@include DarkThemeOverride {
|
||||
&::after {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
&.quad-0 {
|
||||
right: 0;
|
||||
top: 0;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-end;
|
||||
|
||||
&::after {
|
||||
@include S(left, $spacing);
|
||||
@include S(bottom, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
&.quad-1 {
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
|
||||
align-items: flex-end;
|
||||
justify-content: flex-end;
|
||||
|
||||
&::after {
|
||||
@include S(left, $spacing);
|
||||
@include S(top, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
}
|
||||
&.quad-2 {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
|
||||
align-items: flex-end;
|
||||
justify-content: flex-start;
|
||||
|
||||
&::after {
|
||||
@include S(right, $spacing);
|
||||
@include S(top, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(135deg);
|
||||
}
|
||||
}
|
||||
&.quad-3 {
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
align-items: flex-start;
|
||||
justify-content: flex-start;
|
||||
|
||||
&::after {
|
||||
@include S(right, $spacing);
|
||||
@include S(bottom, $arrowDims / 2 + $spacing);
|
||||
transform: rotate(225deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ export const CHANGELOG = [
|
|||
date: "17.06.2020",
|
||||
entries: [
|
||||
"You can now place straight belts (and tunnels) by holding SHIFT! (For you, @giantwaffle ❤️)",
|
||||
"Added continue button to main menu and add seperate 'New game' button (by jaysc)",
|
||||
"Added continue button to main menu and add separate 'New game' button (by jaysc)",
|
||||
"Added setting to disable smart tunnel placement introduced with the last update",
|
||||
"Added setting to disable vignette",
|
||||
"Update translations",
|
||||
|
|
|
@ -30,10 +30,10 @@ export class Dialog {
|
|||
* @param {string} param0.title Title of the dialog
|
||||
* @param {string} param0.contentHTML Inner dialog html
|
||||
* @param {Array<string>} param0.buttons
|
||||
* Button list, each button contains of up to 3 parts seperated by ':'.
|
||||
* Button list, each button contains of up to 3 parts separated by ':'.
|
||||
* Part 0: The id, one of the one defined in dialog_buttons.yaml
|
||||
* Part 1: The style, either good, bad or misc
|
||||
* Part 2 (optional): Additional parameters seperated by '/', available are:
|
||||
* Part 2 (optional): Additional parameters separated by '/', available are:
|
||||
* timeout: This button is only available after some waiting time
|
||||
* kb_enter: This button is triggered by the enter key
|
||||
* kb_escape This button is triggered by the escape key
|
||||
|
|
|
@ -224,7 +224,7 @@ export class ReadWriteProxy {
|
|||
return rawData;
|
||||
})
|
||||
|
||||
// Parse JSON, this could throw but thats fine
|
||||
// Parse JSON, this could throw but that's fine
|
||||
.then(res => {
|
||||
try {
|
||||
return JSON.parse(res);
|
||||
|
|
|
@ -206,7 +206,7 @@ export class AtlasSprite extends BaseSprite {
|
|||
srcX,
|
||||
srcY,
|
||||
|
||||
// atlas src siize
|
||||
// atlas src size
|
||||
srcW,
|
||||
srcH,
|
||||
|
||||
|
|
|
@ -1091,7 +1091,7 @@ export class BeltPath extends BasicSerializableObject {
|
|||
computePositionFromProgress(progress) {
|
||||
let currentLength = 0;
|
||||
|
||||
// floating point issuses ..
|
||||
// floating point issues ..
|
||||
assert(progress <= this.totalLength + 0.02, "Progress too big: " + progress);
|
||||
|
||||
for (let i = 0; i < this.entityPath.length; ++i) {
|
||||
|
@ -1206,7 +1206,7 @@ export class BeltPath extends BasicSerializableObject {
|
|||
|
||||
// Check if the current items are on the belt
|
||||
while (trackPos + beltLength >= currentItemPos - 1e-5) {
|
||||
// Its on the belt, render it now
|
||||
// It's on the belt, render it now
|
||||
const staticComp = entity.components.StaticMapEntity;
|
||||
assert(
|
||||
currentItemPos - trackPos >= 0,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -23,7 +23,7 @@ export class EntityManager extends BasicSerializableObject {
|
|||
/** @type {Array<Entity>} */
|
||||
this.entities = [];
|
||||
|
||||
// We store a seperate list with entities to destroy, since we don't destroy
|
||||
// We store a separate list with entities to destroy, since we don't destroy
|
||||
// them instantly
|
||||
/** @type {Array<Entity>} */
|
||||
this.destroyList = [];
|
||||
|
|
|
@ -330,7 +330,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
|
|||
if (tileBelow && this.root.app.settings.getAllSettings().pickMinerOnPatch) {
|
||||
this.currentMetaBuilding.set(gMetaBuildingRegistry.findByClass(MetaMinerBuilding));
|
||||
|
||||
// Select chained miner if available, since thats always desired once unlocked
|
||||
// Select chained miner if available, since that's always desired once unlocked
|
||||
if (this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_miner_chainable)) {
|
||||
this.currentVariant.set(enumMinerVariants.chainable);
|
||||
}
|
||||
|
|
|
@ -360,7 +360,7 @@ export class BeltSystem extends GameSystemWithFilter {
|
|||
const followUpTile = staticComp.origin.add(followUpVector);
|
||||
const followUpEntity = this.root.map.getLayerContentXY(followUpTile.x, followUpTile.y, entity.layer);
|
||||
|
||||
// Check if theres a belt at the tile we point to
|
||||
// Check if there's a belt at the tile we point to
|
||||
if (followUpEntity) {
|
||||
const followUpBeltComp = followUpEntity.components.Belt;
|
||||
if (followUpBeltComp) {
|
||||
|
@ -390,7 +390,7 @@ export class BeltSystem extends GameSystemWithFilter {
|
|||
const supplyTile = staticComp.origin.add(supplyVector);
|
||||
const supplyEntity = this.root.map.getLayerContentXY(supplyTile.x, supplyTile.y, entity.layer);
|
||||
|
||||
// Check if theres a belt at the tile we point to
|
||||
// Check if there's a belt at the tile we point to
|
||||
if (supplyEntity) {
|
||||
const supplyBeltComp = supplyEntity.components.Belt;
|
||||
if (supplyBeltComp) {
|
||||
|
|
|
@ -170,7 +170,7 @@ export class MinerSystem extends GameSystemWithFilter {
|
|||
}
|
||||
|
||||
// Draw the item background - this is to hide the ejected item animation from
|
||||
// the item ejecto
|
||||
// the item ejector
|
||||
|
||||
const padding = 3;
|
||||
const destX = staticComp.origin.x * globalConfig.tileSize + padding;
|
||||
|
|
|
@ -71,7 +71,7 @@ export class UndergroundBeltSystem extends GameSystemWithFilter {
|
|||
const range = globalConfig.undergroundBeltMaxTilesByTier[tier];
|
||||
|
||||
// FIND ENTRANCE
|
||||
// Search for the entrance which is furthes apart (this is why we can't reuse logic here)
|
||||
// Search for the entrance which is farthest apart (this is why we can't reuse logic here)
|
||||
let matchingEntrance = null;
|
||||
for (let i = 0; i < range; ++i) {
|
||||
currentPos.addInplace(offset);
|
||||
|
|
|
@ -162,7 +162,7 @@ export class WireSystem extends GameSystemWithFilter {
|
|||
const tunnelEntities = this.root.entityMgr.getAllWithComponent(WireTunnelComponent);
|
||||
const pinEntities = this.root.entityMgr.getAllWithComponent(WiredPinsComponent);
|
||||
|
||||
// Clear all network references, but not on the first update since thats the deserializing one
|
||||
// Clear all network references, but not on the first update since that's the deserializing one
|
||||
if (!this.isFirstRecompute) {
|
||||
for (let i = 0; i < wireEntities.length; ++i) {
|
||||
wireEntities[i].components.Wire.linkedNetwork = null;
|
||||
|
@ -432,7 +432,7 @@ export class WireSystem extends GameSystemWithFilter {
|
|||
continue;
|
||||
}
|
||||
|
||||
// Check if its a tunnel, if so, go to the forwarded item
|
||||
// Check if it's a tunnel, if so, go to the forwarded item
|
||||
const tunnelComp = entity.components.WireTunnel;
|
||||
if (tunnelComp) {
|
||||
if (visitedTunnels.has(entity.uid)) {
|
||||
|
|
|
@ -1,80 +1,82 @@
|
|||
# Translations
|
||||
|
||||
The base language is English and can be found [here](base-en.yaml).
|
||||
|
||||
## Languages
|
||||
|
||||
- [German](base-de.yaml)
|
||||
- [French](base-fr.yaml)
|
||||
- [Korean](base-kor.yaml)
|
||||
- [Dutch](base-nl.yaml)
|
||||
- [Polish](base-pl.yaml)
|
||||
- [Portuguese (Brazil)](base-pt-BR.yaml)
|
||||
- [Portuguese (Portugal)](base-pt-PT.yaml)
|
||||
- [Russian](base-ru.yaml)
|
||||
- [Greek](base-el.yaml)
|
||||
- [Italian](base-it.yaml)
|
||||
- [Romanian](base-ro.yaml)
|
||||
- [Swedish](base-sv.yaml)
|
||||
- [Chinese (Simplified)](base-zh-CN.yaml)
|
||||
- [Chinese (Traditional)](base-zh-TW.yaml)
|
||||
- [Spanish](base-es.yaml)
|
||||
- [Hungarian](base-hu.yaml)
|
||||
- [Turkish](base-tr.yaml)
|
||||
- [Japanese](base-ja.yaml)
|
||||
- [Lithuanian](base-lt.yaml)
|
||||
- [Arabic](base-ar.yaml)
|
||||
- [Norwegian](base-no.yaml)
|
||||
- [Kroatian](base-hr.yaml)
|
||||
- [Danish](base-da.yaml)
|
||||
- [Finnish](base-fi.yaml)
|
||||
- [Catalan](base-cat.yaml)
|
||||
- [Slovenian](base-sl.yaml)
|
||||
- [Ukrainian](base-uk.yaml)
|
||||
- [Indonesian](base-ind.yaml)
|
||||
- [Serbian](base-sr.yaml)
|
||||
|
||||
(If you want to translate into a new language, see below!)
|
||||
|
||||
## Editing existing translations
|
||||
|
||||
If you want to edit an existing translation (Fixing typos, Updating it to a newer version, etc), you can just use the github file editor to edit the file.
|
||||
|
||||
- Click the language you want to edit from the list above
|
||||
- Click the small "edit" symbol on the top right
|
||||
|
||||
<img src="https://i.imgur.com/gZnUQoe.png" alt="edit symbol" width="200">
|
||||
|
||||
- Do the changes you wish to do (Be sure **not** to translate placeholders! For example, `<amount> minutes` should get `<amount> Minuten` and **not** `<anzahl> Minuten`!)
|
||||
|
||||
- Click "Propose Changes"
|
||||
|
||||
<img src="https://i.imgur.com/KT9ZFp6.png" alt="propose changes" width="200">
|
||||
|
||||
- Click "Create pull request"
|
||||
|
||||
<img src="https://i.imgur.com/oVljvRE.png" alt="create pull request" width="200">
|
||||
|
||||
- I will review your changes and make comments, and eventually merge them so they will be in the next release! Be sure to regulary check the created pull request for comments.
|
||||
|
||||
## Adding a new language
|
||||
|
||||
Please DM me on Discord (tobspr#5407), so I can add the language template for you.
|
||||
|
||||
Please use the following template:
|
||||
|
||||
```
|
||||
Hey, could you add a new translation?
|
||||
|
||||
Language: <Language, e.g. 'German'>
|
||||
Short code: <Short code, e.g. 'de', see below>
|
||||
Local Name: <Name of your Language, e.g. 'Deutsch'>
|
||||
```
|
||||
|
||||
You can find the short code [here](https://www.science.co.il/language/Codes.php) (In column `Code 2`).
|
||||
|
||||
PS: I'm super busy, but I'll give my best to do it quickly!
|
||||
|
||||
## Updating a language to the latest version
|
||||
|
||||
Run `yarn syncTranslations` in the root directory to synchronize all translations to the latest version! This will remove obsolete keys and add newly added keys. (Run `yarn` before to install packes).
|
||||
# Translations
|
||||
|
||||
The base language is English and can be found [here](base-en.yaml).
|
||||
|
||||
## Languages
|
||||
|
||||
- [German](base-de.yaml)
|
||||
- [French](base-fr.yaml)
|
||||
- [Korean](base-kor.yaml)
|
||||
- [Dutch](base-nl.yaml)
|
||||
- [Polish](base-pl.yaml)
|
||||
- [Portuguese (Brazil)](base-pt-BR.yaml)
|
||||
- [Portuguese (Portugal)](base-pt-PT.yaml)
|
||||
- [Russian](base-ru.yaml)
|
||||
- [Greek](base-el.yaml)
|
||||
- [Italian](base-it.yaml)
|
||||
- [Romanian](base-ro.yaml)
|
||||
- [Swedish](base-sv.yaml)
|
||||
- [Chinese (Simplified)](base-zh-CN.yaml)
|
||||
- [Chinese (Traditional)](base-zh-TW.yaml)
|
||||
- [Spanish](base-es.yaml)
|
||||
- [Hungarian](base-hu.yaml)
|
||||
- [Turkish](base-tr.yaml)
|
||||
- [Japanese](base-ja.yaml)
|
||||
- [Lithuanian](base-lt.yaml)
|
||||
- [Arabic](base-ar.yaml)
|
||||
- [Norwegian](base-no.yaml)
|
||||
- [Kroatian](base-hr.yaml)
|
||||
- [Danish](base-da.yaml)
|
||||
- [Finnish](base-fi.yaml)
|
||||
- [Catalan](base-cat.yaml)
|
||||
- [Slovenian](base-sl.yaml)
|
||||
- [Ukrainian](base-uk.yaml)
|
||||
- [Indonesian](base-ind.yaml)
|
||||
- [Serbian](base-sr.yaml)
|
||||
|
||||
(If you want to translate into a new language, see below!)
|
||||
|
||||
## Editing existing translations
|
||||
|
||||
If you want to edit an existing translation (Fixing typos, updating it to a newer version, etc), you can just use the github file editor to edit the file.
|
||||
|
||||
- Click the language you want to edit from the list above
|
||||
- Click the small "edit" symbol on the top right
|
||||
|
||||
<img src="https://i.imgur.com/gZnUQoe.png" alt="edit symbol" width="200">
|
||||
|
||||
- Do the changes you wish to do (Be sure **not** to translate placeholders! For example, `<amount> minutes` should get `<amount> Minuten` and **not** `<anzahl> Minuten`!)
|
||||
|
||||
- Click "Propose Changes"
|
||||
|
||||
<img src="https://i.imgur.com/KT9ZFp6.png" alt="propose changes" width="200">
|
||||
|
||||
- Click "Create pull request"
|
||||
|
||||
<img src="https://i.imgur.com/oVljvRE.png" alt="create pull request" width="200">
|
||||
|
||||
- I will review your changes and make comments, and eventually merge them so they will be in the next release! Be sure to regulary check the created pull request for comments.
|
||||
|
||||
## Adding a new language
|
||||
|
||||
Please DM me on Discord (tobspr#5407), so I can add the language template for you.
|
||||
|
||||
**Important: I am currently not accepting new languages until the wires update is out!**
|
||||
|
||||
Please use the following template:
|
||||
|
||||
```
|
||||
Hey, could you add a new translation?
|
||||
|
||||
Language: <Language, e.g. 'German'>
|
||||
Short code: <Short code, e.g. 'de', see below>
|
||||
Local Name: <Name of your Language, e.g. 'Deutsch'>
|
||||
```
|
||||
|
||||
You can find the short code [here](https://www.science.co.il/language/Codes.php) (In column `Code 2`).
|
||||
|
||||
PS: I'm super busy, but I'll give my best to do it quickly!
|
||||
|
||||
## Updating a language to the latest version
|
||||
|
||||
Run `yarn syncTranslations` in the root directory to synchronize all translations to the latest version! This will remove obsolete keys and add newly added keys. (Run `yarn` before to install packages).
|
||||
|
|
Loading…
Reference in New Issue