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@lemmynsfw.com
    link
    fedilink
    arrow-up
    31
    ·
    1 month 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).

    • Prunebutt@slrpnk.net
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      edit-2
      1 month 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.

        • Prunebutt@slrpnk.net
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          1 month 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.