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
    30
    ·
    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.

  • teolan@lemmy.world
    link
    fedilink
    arrow-up
    14
    ·
    1 month ago

    How do you deal with the fear that contribution in languages you don’t know could be malicious/offensive? This is something that would scare me when reviewing contributions adding new languages

    • Scipitie@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      4
      ·
      1 month ago

      From another project I’ve contributed as translator, not as dev:. They had set up a completely different flow, translation tool, bug reporting, deployment, etc. The dev had basically nothing to do with it,except forwarding bug reports.

      The tool landscape grew quite a bit in the last decade though, I think - pretty sure you can do the pull request / review between volunteers as well by now without issues. M

  • teolan@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    1 month ago

    I’m French, so when building any GUI stuff I just tend to start from the beginning with both French and English languages, that way I have a reason for doing this from the start. I’m thinking I should also add Spanish, so that I can keep my admetedly low skills in Spanish.

      • HumanPenguin@feddit.uk
        link
        fedilink
        English
        arrow-up
        5
        ·
        1 month ago

        Unfortunately this is an issue for anyone visually impaired.

        People just do not stop to think how difficult their UX is if people need very large fonts.

          • HumanPenguin@feddit.uk
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 month ago

            The issue that layout containers are often unable to display large fonts on the widgets when certain restrictions are enforced in the layout. So, without giving time to try very large fonts. To Many developers never discover their applications just cannot be read by visually impaired people.

            • jimmy90@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              1 month ago

              yeah if the UI library is not ready to flow text and UI elements (including wrapping/breaking sensibly) then important information and interactive elements are inevitably clipped/unusable or jumbled beyond recognition

  • Rentlar@lemmy.ca
    link
    fedilink
    arrow-up
    5
    ·
    1 month ago

    You’ve inspired me to contribute to translating your app into a new language!

  • morrowind@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 month ago

    Is it really more effort to just extract relevant strings later, rather than worrying about it the whole time? Asking beyond lemmy apps too.

    • misery mansion@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      1 month ago

      Once you have this set up, you won’t worry about it again. It will just become “the way it is done”. And it’s just the correct way to build software IMHO, even if you have no plans right now to offer multiple languages.

    • jimmy90@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      1 month ago

      for things like translation it is obviously required, but it will be ongoing as the app changes over the years

      so it’s just about realising that text in the UI is just another kind of content that has to be managed so there will need to be infrastructure and process to make that easier