Coder Social home page Coder Social logo

i18n support about learngitbranching HOT 8 CLOSED

pcottle avatar pcottle commented on May 18, 2024
i18n support

from learngitbranching.

Comments (8)

pcottle avatar pcottle commented on May 18, 2024

I'd totally be willing to add i18n support -- almost all the dialogs and text use string lookup so it wouldn't be impossible. The translations might have to be sourced by the community though

Glad you like the app!!

from learngitbranching.

bcho avatar bcho commented on May 18, 2024

umm, just have a look on the code. Most dialogs are under src/level and some error messages in src/js, right? Can you show me how to implement the i18n support? (I mean where to store the translated message, how to use the lookup function.) Maybe I can translate it into Chinese sometimes later.

from learngitbranching.

pcottle avatar pcottle commented on May 18, 2024

There's two main types of text around the site -- dialogs within some level or sandbox and small things like button names and headers.

The button names might be hard to change because they are part of the HTML template -- we would need to tokenize all their locations and then pass in the translated strings. It would be somewhat laborious but not horrible

The dialogs, however, could be fairly easy to translate. All the dialogs are located in either src/levels/<level type>/<level name>.js or src/js/dialogs/<dialog>.js Right now they are simply a part of a JSON structure, like

{
   levelName: "rebasing",
   solution: "git commit",
   startDialog: [{
        type: 'ModalAlert',
        options: {
             markdown: "Hello!!!"
         }
   }]
}

To add i18n support, we just make this structure one level deeper:

{
   levelName: "rebasing",
   solution: "git commit",
   startDialog: {
     english: [{
          type: 'ModalAlert',
          options: {
               markdown: "Hello!!!"
           }
     }],
     spanish: [{
          // same
             markdown: "Hola!"
      ]}
   }
}

Obviously we would use locale codes instead of spanish but you get the drift.

Then you just change all the caller locations and drop in new translations!

from learngitbranching.

bcho avatar bcho commented on May 18, 2024

What does the same in spanish mean? Does it also need type and options attributes?

OK, I will translate the dialogs first. Thanks for your help :)

from learngitbranching.

pcottle avatar pcottle commented on May 18, 2024

Yeah // same just means it will have the same exact structure except for the actual content. I was tired of typing JSON by hand but maybe I should have carried it out.

Awesome! Really cool to have a translator on board, that's a really cool step the project can take. Let me know when you're halfway-ish done with translating a few (ping me at [email protected] ) and I'll begin the intl support

from learngitbranching.

outsideris avatar outsideris commented on May 18, 2024

Should I also ping you via email if I translate to another language?

from learngitbranching.

pcottle avatar pcottle commented on May 18, 2024

@outsideris Sure! Once any given translation gets near completion I'll race to add the i18n support. After the first one or two though, I can just manage the discussion on github. Having an email ping was simply to help prioritize issues / features

from learngitbranching.

outsideris avatar outsideris commented on May 18, 2024

@pcottle Thanks....

from learngitbranching.

Related Issues (20)

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.