Skip to content

Community driven Hordes.io string localization

Notifications You must be signed in to change notification settings

emaahh/hordes-loc

 
 

Repository files navigation

hordes-loc

Community driven text and localization repository for the browser game Hordes.io. This is a library of strings for all in-game text, user interface labels, game lore, item descriptions, etc.

This repository is a public submodule of the hordes.io sourcecode, containing a build script to compile files found in loc/ into individual language specific .json files (here are the Russian and German files for an example). Translations for any respective language do not have to be complete, as the build script will substitute the original English text for any strings that have not been translated for the language.

Resources for first timers and GitHub beginners

Contributing

For your first translations, please fork the repository and start editing files that way. If everything looks good, your edits will be merged into the main repository.

Make sure to read all the comments in the files and take them seriously. Do not translate placeholder texts. Do not translate unique names. If you are unsure, cross-check with other translations to see whether a word is translated or not. For example, words like party, clan or unique names like Yggdrasil will generally not be translated to make sure players can communicate effectively regarding fundamental concepts of the game. Any text which has a $$ tag before it is also not to be translated. Please make sure to add thorough and informative descriptions of your changes in the PR (Pull Request) and commit descriptions, otherwise we will likely ignore or close your PR.

New languages and translations are always welcome, so feel free to make a PR. Any language types are welcome. In order to contribute translations, simply add them to the respective files in the loc/ directory. Make sure to check the build results (Github Action) after you make a Pull Request to correct any errors that may arise. Join our Discord if you need help.

If you want to check the status of any translation, go to this link and select the "run npm test" result which informs us about translation status of all the languages.

Detecting loc types...
  Found 23 languages
Compiling...
  en → 534/534 100%
  fr → 460/534  86%
  ru → 459/534  85%
  it → 408/534  76%
  de → 405/534  75%
  ...
Exporting...
  en -> en.json
  de -> de.json
  ru -> ru.json
  ...

If you want to check which languages are missing in a file, navigate to the file name in this link, which informs us about missing languages in a file.

Finding missing translations...
   classes archer description → [de, tr, es]

Examples

Lets say we want to add a German translation to some of the strings for the Archer class. We navigate to loc/classes/archer.js, and find:

export default {
  // The class name
  name: {
    en: 'Archer',
    ru: 'Лучник'
  },
  // Class description, visible during character creation
  description: {
    en: 'Archers deal high single target damage and bursty...',
    ru: 'Лучники наносят высокий урон по одиночной цели и...'
  }
}

All strings are contained in objects that hold translations for any amount of languages. The default language will generally be enfor English, but any language can be added. In this case, we can see the Archers name being held in the name: { ... } object, and the Russian translation is already present, along with the original English text.

To add a translation, simply add a language code (en, de, fr...) with your translation. For example, to add a German translation for the Archer's name:

  // The class name
  name: {
    en: 'Archer',
    ru: 'Лучник',
    de: 'Jäger'
  }

We do not have to add a German translation for the description string (You can if you want to, of course). It is perfectly fine if the translations are incomplete, as the build system will automatically resolve the incomplete translations to English. Once you finished your translation, scroll down to the bottom of the page to find a button named Commit changes. Leave the option below as Commit directly to the master branch and click the button. Now that you're done comitting the translation, go to your fork's main page and click the button New pull request, add in a name for your Pull Request and click Create Pull Request. If everything went fine, your translations will be available in the game.

About

Community driven Hordes.io string localization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%