# Contributing ## Adding a new translation 1. Fork this repo in your GitHub account. 2. Clone your fork into your computer. 3. Make a copy of `en-US.js` (you can find it inside the `i18n` folder) and start translating all the strings to your language using your favorite text editor. 4. When you finish, save it with your locale as name (e.g. `fr-FR.js` if you are working on a french translation) inside that folder. 5. Open the `i18n.js` file. 6. Look for `else langObj = enUS;` and add your locale in this format right before it: ``` else if (lang === "your-locale") langObj = yourLocale; ``` 7. Finally open `index.html` and look for this line: ``` ``` 8. Add a reference to your file before the previous line in this format: ``` ``` 9. Now you're done, upload your changes to your fork in GitHub and make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare). ## Updating/Adding a payload 1. Fork this repo in your GitHub account. 2. Clone your fork into your computer. 3. Create a `.js` file inside the `payloads` folder with the name of the payload (if you are adding one). 4. Open that file with your favorite text editor. 5. **(Optional)** Add these lines at the beggining of the file, or update them if you are updating the payload, just for cosmetic purposes: ``` // Payload Name and Version // Sourced from https://www.example.com/link/to/your/payload.bin ``` 6. Add the line `const your_payload_name = new Uint8Array([` to the file (if you are creating it). 7. Go to [web-cfw-loader](https://webcfw.sdsetup.com/), select *Upload payload*, open your updated/new payload and check *Get payload byte array (don't sploit)*. 8. Press *Deliver Payload!* and copy the byte array from the log (the entire text after `Logging payload bytes...`). 9. Paste the byte array right after `Uint8Array([`. 10. Delete `, ` at the end of the array and append `]);`. 11. Save the file. #### If you are updating a payload 12. Open `index.html` and look for the payload option. 13. Bump its version to the corresponding one. 14. Open every of the language files (the `.js` files from the `i18n` folder), look for the payload string and bump its version number too. 15. Finally, upload your changes to your fork in GitHub and make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare). #### If you are adding a payload 12. Open `main.js` and look for the string `} else if (payloadType === "uploaded") {`. 13. Add the new payload right before it using this format: ``` } else if (payloadType === "your_payload_name") { payload = your_payload_name; ``` 14. Save the file and open `index.html`. 15. Look for the string `` and add the new an option for the new payload using this format: ``` ``` 16. On the same file, go down to `` and add the path to the payload right before it using this format: ``` ``` 17. Save it, open `i18n.js` and look for this string `document.getElementById("optionUpload").innerHTML = langObj.optionUpload;` 18. Again, append the payload option id to the previous line using this format: ``` document.getElementById("optionFusee").innerHTML = langObj.optionFusee; ``` 19. Finally, open every of the language files (the `.js` files inside the `i18n` folder) and add the payload to them using this format (you already know where): ``` "optionTheNewPayload" : "The New Payload Name And Its Version", ``` 20. Congrats, you did it! Now, upload your changes to your fork in GitHub and make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare). ## **Extra:** Test your changes before making a pull request If you want to confirm that your changes work before suggesting them follow these steps: 1. Make sure all your changes are successfully uploaded to your fork in GitHub. 2. Go to your repo settings. 3. Go down to GitHub Pages and select *master branch* in *Source*. 4. Click *Save* and wait a few seconds. 5. Now, you should see your site at *https://YourGitHubUsername.github.io/web-cfw-loader/*. 6. If everything is alright, now is the time to make a [pull request](https://github.com/AtlasNX/web-cfw-loader/compare).