mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-04 07:22:19 +02:00
Update CONTRIBUTING.md 0.5
This commit is contained in:
parent
64f045c0ae
commit
fcbf7aa575
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
Thank you for taking the time to contribute, every little bit helps. This project is entirely open-source and unmonetized - community contributions are what keep it alive!
|
Thank you for taking the time to contribute, every little bit helps. This project is entirely open-source and unmonetized - community contributions are what keep it alive!
|
||||||
|
|
||||||
Please make sure you understand everything relevant to your changes from the [Table of Contents](#-table-of-contents), and absolutely *feel free to reach out reach out in the **#dev-corner** channel on [Discord](https://discord.gg/pokerogue)*. We are here to help and the better you understand what you're working on, the easier it will be for it to find its way into the game.
|
Please make sure you understand everything relevant to your changes from the [Table of Contents](#-table-of-contents), and *feel free to reach out reach out in the **#dev-corner** channel on [Discord](https://discord.gg/pokerogue)*.
|
||||||
|
We are here to help and the better you understand what you're working on, the easier it will be for it to find its way into the game.
|
||||||
|
|
||||||
## 📄 Table of Contents
|
## 📄 Table of Contents
|
||||||
|
|
||||||
@ -26,12 +27,22 @@ If you have the motivation and experience with Typescript/Javascript (or are wil
|
|||||||
|
|
||||||
- node: >=22.14.0 - [manage with pnpm](https://pnpm.io/cli/env) | [manage with fnm](https://github.com/Schniz/fnm) | [manage with nvm](https://github.com/nvm-sh/nvm)
|
- node: >=22.14.0 - [manage with pnpm](https://pnpm.io/cli/env) | [manage with fnm](https://github.com/Schniz/fnm) | [manage with nvm](https://github.com/nvm-sh/nvm)
|
||||||
- pnpm: 10.x - [how to install](https://pnpm.io/installation) (not recommended to install via `npm` on Windows native) | [alternate method - volta.sh](https://volta.sh/)
|
- pnpm: 10.x - [how to install](https://pnpm.io/installation) (not recommended to install via `npm` on Windows native) | [alternate method - volta.sh](https://volta.sh/)
|
||||||
|
- Git (install [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)) - required to access the translations
|
||||||
|
|
||||||
### Running Locally
|
### Procedure
|
||||||
|
|
||||||
1. Clone the repo and in the root directory run `pnpm install`
|
1. Clone the repository through Git by running the following command in your desired directory:
|
||||||
- *if you run into any errors, reach out in the **#dev-corner** channel on Discord*
|
``bash
|
||||||
2. Run `pnpm start:dev` to locally run the project at `localhost:8000`
|
git clone --recurse-submodules https://github.com/pagefaultgames/pokerogue
|
||||||
|
```
|
||||||
|
[^1]
|
||||||
|
2. Run `pnpm install` in the newly cloned folder to download required dependencies.
|
||||||
|
3. Run `pnpm start:dev` to locally run the project in `localhost:8000`
|
||||||
|
|
||||||
|
If you run into any errors at any point, reach out in the **#dev-corner** channel in Discord and someone will be happy to help.
|
||||||
|
|
||||||
|
[^1]: If you forget to use the `--recurse-submodules` flag when cloning initially (or do so via an alternate tool), consult [localization.md](./docs/localization.md) \
|
||||||
|
for instructions on how to clone the `locales` submodule manually.
|
||||||
|
|
||||||
### Linting
|
### Linting
|
||||||
|
|
||||||
@ -60,8 +71,13 @@ You are free to comment on any issue so that you may be assigned to it and we ca
|
|||||||
## 📚 Documentation
|
## 📚 Documentation
|
||||||
|
|
||||||
You can find the auto-generated documentation [here](https://pagefaultgames.github.io/pokerogue/main/index.html).
|
You can find the auto-generated documentation [here](https://pagefaultgames.github.io/pokerogue/main/index.html).
|
||||||
For information on enemy AI, check out the [enemy-ai.md](./docs/enemy-ai.md) file.
|
|
||||||
For detailed guidelines on documenting your code, refer to the [comments.md](./docs/comments.md) file.
|
Additionally, the [docs folder](./docs) contains a variety of in-depth documents and guides useful for aspiring contributors. \
|
||||||
|
Notable topics include:
|
||||||
|
- [Commenting your code](./docs/comments.md)
|
||||||
|
- [Linting & Formatting](./docs/linting.md)
|
||||||
|
- [Localization](./docs/localization.md)
|
||||||
|
- [Enemy AI move selection](./docs/enemy-ai.md)
|
||||||
|
|
||||||
Again, if you have unanswered questions please feel free to ask!
|
Again, if you have unanswered questions please feel free to ask!
|
||||||
|
|
||||||
@ -103,59 +119,7 @@ Most non-trivial changes (*especially bug fixes*) should come along with new tes
|
|||||||
|
|
||||||
## 📜 Localization
|
## 📜 Localization
|
||||||
|
|
||||||
The project intends for all text to be localized. That is, strings are pulled from translation files using keys (depending on the current language) and *never* hardcoded as a particular language. Note that there is a PDF in a message pinned in **#dev-corner** which gives the following information in greater detail.
|
See [localization.md](./docs/localization.md) for a detailed overview of the localization process.
|
||||||
|
|
||||||
### Setting Up and Updating the Locales Submodule
|
|
||||||
> The locales (translation) files are set up as a git submodule. A project-in-a-project, if you will.
|
|
||||||
|
|
||||||
To fetch translations when you first start development in your fork or to update them on your local branch, run:
|
|
||||||
```bash
|
|
||||||
git submodule update --progress --init --recursive
|
|
||||||
```
|
|
||||||
|
|
||||||
### How Localizations Work
|
|
||||||
> This project uses the [i18next](https://www.i18next.com/) library to integrate translations from public/locales
|
|
||||||
into the source code based on the user's settings or location. The basic process for
|
|
||||||
fetching translated text is as follows:
|
|
||||||
1. The source code fetches text by a given key, e.g.
|
|
||||||
|
|
||||||
```ts
|
|
||||||
i18next.t("fileName:keyName", { arg1: "Hello", arg2: "an example", ... })
|
|
||||||
```
|
|
||||||
2. The game looks up the key in the corresponding JSON file in the user's
|
|
||||||
language, e.g.
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// from "en/file-name.json"...
|
|
||||||
"keyName": "{{arg1}}! This is {{arg2}} of translated text!"
|
|
||||||
```
|
|
||||||
If the key doesn't exist for the user's language, the game will default to the
|
|
||||||
corresponding English key (in the case of LATAM Spanish, it will first default to ES Spanish).
|
|
||||||
|
|
||||||
3. The game shows the text to the user:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
"Hello! This is an example of translated text!"
|
|
||||||
```
|
|
||||||
### Adding Translated Text
|
|
||||||
> If your feature involves new or modified text in any form, then you will be modifying the [locales](https://github.com/pagefaultgames/pokerogue-locales) repository. ***Never hardcode new text in any language!***
|
|
||||||
|
|
||||||
The workflow is:
|
|
||||||
|
|
||||||
1. Make a pull request to the main repository for your new feature.
|
|
||||||
If this feature requires new text, the text should be integrated into the code with a new i18next key pointing to where you plan to add it into the pokerogue-locales repository.
|
|
||||||
|
|
||||||
2. Make another pull request -- this time to the [pokerogue-locales](https://github.com/pagefaultgames/pokerogue-locales)
|
|
||||||
repository -- adding a new entry to the English locale with text for each key
|
|
||||||
you added to your main PR. You *only* need to add the English key and value - the translation team will handle the rest.
|
|
||||||
|
|
||||||
3. If your feature is pulled from the mainline Pokémon games (e.g. a Move or Ability implementation), add a source link for any added text within the locale PR.
|
|
||||||
[Poké Corpus](https://abcboy101.github.io/poke-corpus) is a great resource for finding text from the latest mainline games; otherwise, a YouTube video link showing the text in mainline is sufficient.
|
|
||||||
|
|
||||||
4. Ping @lugiadrien in **#dev-corner** or the current callout thread to make sure your locales PR is seen.
|
|
||||||
It'll be merged into the locales repository after any necessary corrections, at which point you can test it in your main PR (after updating locales from remote)
|
|
||||||
|
|
||||||
5. The Dev team will approve your main PR, and your changes will be in the beta environment!
|
|
||||||
|
|
||||||
## 😈 Development Save File
|
## 😈 Development Save File
|
||||||
> Some issues may require you to have unlocks on your save file which go beyond normal overrides. For this reason, the repository contains a [save file](../test/testUtils/saves/everything.psrv) with _everything_ unlocked (even ones not legitimately obtainable, like unimplemented variant shinies).
|
> Some issues may require you to have unlocks on your save file which go beyond normal overrides. For this reason, the repository contains a [save file](../test/testUtils/saves/everything.psrv) with _everything_ unlocked (even ones not legitimately obtainable, like unimplemented variant shinies).
|
||||||
|
Loading…
Reference in New Issue
Block a user