Where programmers share ideas and help each other grow. All developers are welcome to submit stories, tutorials, questions, or anything worth discussing. The front page is curated by the folks behind @ThePracticalDev.
Have fun and don't be afraid to contribute, everyone's perspective is valuable! ✌️
Some things I've noticed and learned in primarily client apps, not necessarily all directed towards American devs. For this discussion, my location is Finland, regional settings Finnish, and language US English.
Location does not equal language. The combination I use is really common here, thanks to international businesses and people who cringe when they see Finnish translations of technical stuff. Pretty much every country has multiple languages used widely enough or recognized by the law, and some unofficial de facto language (not always English).
Language does not equal culture/regional settings. I'd still like my dates and numbers comprehensible, thank you very much:
There are many date formats. And yours is wrong, regardless of who you are. If you really have to hard-code the format, please spell out the month! (In what language? I don't know! Windows translates it based on the regional settings, and it looks weird, but they must have a reason.)
There are many number formats. I've had a sample game crash because it tried to format a number in local format, but the font texture only had characters for the US format. I've also had an OS calculator not accept the decimal separator.
Not everybody uses your keyboard layout. Characters are behind modifiers or in unexpected places. Make it possible to change the keyboard shortcuts. A case in point: An utility used a global Ctrl+Alt+Something shortcut for popping up a window. That happened to be the combination for a backslash...
Quotes etc. are going to be different in every language.
Finnish has the letters Å, Ä, Ö, and they are not accented but letters of their own! Accordingly, they are sorted nowhere near A or O.
These characters also do not exist in US-ASCII, and use 2 bytes in UTF-8. Unicode is a must even for Latin scripts.
You really should not use flags to indicate languages. That should be obvious for an English speaker.
Some flags and borders are too contested to be safely used anyway. Geopolitics.
As others have mentioned, pluralization is one difficult thing, as well as the genders in some languages, and the weird declension of some languages. Building up strings will be hard.
English is a relatively short language. German and Finnish can take up twice as much space, or more in case of single words.
Your beautifully justified text is going to die when it gets translated. Finnish has really long words. The title of this discussion gains one more line, for instance.
Names. There are 13 living Finns with the last name Ö (meaning "island" in Swedish). Just one letter. You also should handle names like von Neumann gracefully.
And hey, Finnish is easy, with a left-to-right Latin script with rules quite similar to English, a Gregorian calendar, uncontested borders, and speakers generally knowledgeable about English. (It is also minor enough to not matter for most devs.)
Bottom line: Do not roll up your own solutions, but trust the OS and do think about these things from the beginning. Making things work for everyone takes lots of time, effort and testing.
I was with an ad-tech company that woo'd me by saying they were growing after a recent acquisition. It was nice to be around a large group of developers sharing ideas, until a new exec started. Upon hiring, this exec, claiming to be from a CI background, threw shade on all our internal attempts to build any utility software citing "it would be cheaper in the long run to get [insert package]." I soon found that all the work several of us put in design and implementation was scraped to negotiate a contract with and then the adoption of a third party API.
The solution was far less than projected and the time to integrate pulled resources from further development of client facing apps. Deadlines pushed and frustrations, I spoke to my manager, who spoke to theirs. A sprint later, there were lay offs in engineering, practically everyone who voiced opposition and blame on this exec.
AFAIK, the exec is still there, but we have moved on.
I'm getting into FP via Elm and Elixir. Both are quite accessible and have helpful communities. Elm is a gem, I think. Static typing and Elm architecture (not to mention whitespace, bracket forest-free environment, elm-format, helpful compiler and a good handful of other things) feel like a cure to the front-end madness. I'm still wrapping my head around Elixir, but -- damn -- is pattern matching nice :)