This is applicable to almost any piece of software with text in it. When starting your new app, you should make sure you are using a separate language file for the strings in your app. This makes text reusable, and you can change it all in one place.

Once your app gains a community, if you did this, you can also get translators!

With Photon i made the massive mistake of hardcoding everything up until the app became massive, and my PR for un-hardcoding all the strings looks like this:

The amount of lines modified in the GitHub PR. 2,067 lines added, 1,082 removed.

It was worth it though! Because the community has translated it into 11 languages!

  • Zos_Kia
    link
    313 months ago

    Alternative interpretation cause i find i18n extremely boring and hate the indirection it adds to a code base : you’re telling me I can start making an app without this hassle, and it will only cost me a 2Kloc PR some time in the future. That’s a totally manageable price to pay and makes the early dev experience much better (which can have a lot of impact on momentum).

    • @[email protected]
      link
      fedilink
      3
      edit-2
      3 months ago

      Also: shouldn’t the process of searching and replacing strings be quite easy to automate?

      Edit to clarify: I meant searching and replacing hard-coded strings into whatever library handles translateable strings. Not hard-coding different languages.

      • @[email protected]
        link
        fedilink
        English
        13 months ago

        Not necessarily. You have to be able to tell between language strings vs strings that are supposed to be hardcoded

        • @[email protected]
          link
          fedilink
          23 months ago

          Ok, that’s fair. I’d probably add a # FIXXME flag when I don’t want to mess around with that stuff for the moment to do that.