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:
It was worth it though! Because the community has translated it into 11 languages!
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).
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.
Not necessarily. You have to be able to tell between language strings vs strings that are supposed to be hardcoded
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.