Giter Site home page Giter Site logo

hordes-loc's Introduction

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 of 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, select the first entry, select "build (16.x)" under the Jobs section, and finally select "Run npm test". This gives us the translation status of all present 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, scroll down to the bottom of the "Run npm test" output.

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 en for 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 entry, find your language code (en, de, fr...) and include it with your translation text. For example, to add a German translation for the name "Archer":

  // 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 and your translation passed the syntax checks, your translations will be available in future game updates.

hordes-loc's People

Contributors

aerics84 avatar aydgn avatar cozmicc avatar cryspoeth47 avatar dekdevy avatar drifted-mdl avatar egafgo avatar farqandraith avatar filip12408 avatar isbre avatar karasugai avatar kavalorn47 avatar kittenowo avatar lasui avatar malfrador avatar marymehd avatar michealbob avatar millwr1ght avatar no898 avatar pumbovik avatar ramyx353 avatar redly0n avatar safe870 avatar shamanx86 avatar toolston avatar trieu1994 avatar ultranova-01 avatar unknown12z avatar yojogaming avatar zenser30 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hordes-loc's Issues

Won't work on Safari

I opened the game, completed the tutorial, and the game froze - the interface is clickable but the game is frozen.

WebGL2 is enabled:
image
image

Interface is clickable, game is frozen.
image

PC: Mac book air M2 Ventura 13.4.1
Safari: v16.5.1

Formal vs Informal addressing of the Player

In many languages (Spanish, French, Portuguese, for example), there is a difference in the formal "you" and informal "you". Especially for languages where the translations were all initially done by an automatic translator, there is some disparity between usage, though it seems like right now more translations use the formal than informal. Should the player be referred to formally or informally by the game?

Swedish Code

The ISO 639-1 language code for Swedish is sv not se, as is currently. Can we merge all PRs, stop for a bit, and change all the language codes?

Add arabic support

If you add Arabic support, the community could start translating that as well. Do we support RTL?

Titinan

What does "Titinan" mean? It is in gem.js

Culling of generator files

link.js and name.js

name.js contains 500 syllables, allowing for well over 60 billion name combinations.
link.js contains 1220 words for roughly 54 million link combinations.

Together they make up a serious amount of data, something in the ballpark of 20-40kb.
We don't need either of these quantities and filesizes. The files are critical to the page load as nothing can be displayed before the files have been loaded. Plus, many of the entries are low quality.

Often times you can improve the quality of something by creating alot of it, then weeding out the trash.

I need someone to reduce the name.js syllables from 500 to 300, and the link.js words from 1220 to 500 by removing low quality words/syllables. things to consider:

  • how well does it fit into a fantasy / game setting
  • is it at all interesting
  • does it allow for funny or attention grabbing combinations
  • could they be too obscure for the target audience to understand

Examples to remove from a quick glance:
disclosure, refurbishment, motherland, knee, paraphernalia, century, millenium, big, bad, red, blue, cyan, expanding, corrosive, pernicious.
Not saying those are bad, they just aren't good enough to be considered the best, which is all we want for these lists.

does random directory require translation?

i'm planning to update Russian translation and i saw that there's random directory on this repository that has some names.
It needs new files to be created? like name_russian.js or i just need to add new const like adjectives russian =?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.