Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "i18n"
-
I18n is short for internationalization because there is 18 letters between I and the last n. I love the laziness of developers.7
-
Im getting a bit tired of programming.
I have been struggling for years regarding programming. I did have some moments of perceived success, but most of the time it has been depressing.
I’m not sure if I dislike programming. But there are some aspects of it that make me feel not as passionate about it.
First of, programs are invisible. No one sees your program or you (assuming we’re talking about a non artistic dev job).
People can’t see lines of code executing, but even if they did it would be gibberish to them.
Users can only become aware of bad software and that kind of breaks my heart a bit.
You could write fast, stable, secure, easy to read, easy to update software. People won’t notice. Hell, even your boss/coworkers might not notice.
In fact, sometimes you try to do the good thing, you try to become a better dev, you try to write tests first, you try to i18n, and what do you get? “Uhh, that’s taking too much time and I don’t see the benefit”.
I know some people will say that people noticing bad service happens on every job.
But programming is the ultimate isolation job. No client has ever told me “hey that code you wrote was pretty good”. They can’t even read code.
I don’t know the users, the users don’t know me, and the users can only judge my program by the result, they can only judge the visual interface.
Let’s say you write a cool project at github. The code is great. Guess what, every language’s ecosystem out there is saturated. Everything is already written. GitHub is saturated. Your best project ends up being a just for yourself enjoyment.
I’m not saying you shouldn’t enjoy code for yourself. That’s how I bet most prolific coders start. I’ve been doing that for many years now. But at some point you want to be part of something with humans.
Imagine I’m stranded on an island with nothing no humans, just food, water and a computer. Would I write code just for myself, just for fun? I think I would off myself 3 months in.
Maybe I should do develop a more social talent...14 -
So I started in a new job a week ago for a two weeks probation period, im getting payed double than my last job but it's so professionally frustrating.
They use a full php stack with a framework called tinymvc that I never heard of and the last commit is from 2009.
Beside this they implement some sort of "flexible" MVC where a great amount of the logic are inside the views. They have one model for each entity (in theory) but in reality one model have methods for a lot of tables.
Beside this the i18n is done by querying the database for all the translation strings and copying it in every user session, so every session file it's about 400kb where around 380 are duplicated translations.
The views folder is empty because they decided to modify the framework to look for the views in another folder called resource's and the development must be done connected directly to the production database
Above all this shit all the many-to-many relations in the database (MySQL) are handled creating a comma separated field on one of the tables, completely breaking the reference integrity.
So, after a week of work I can't stop thinking who the fuck developed this? In which world this shit is okay? How can I work around this big lake of shit?7 -
Clients who ask for their entire site to be translated into another language, and expect it not to cost a lot. Le sigh
-
Fucking gnu gettext, fucking .po and .mo files and fuck the fucking poedit. Why in the fucking hell a damn i18n solution used by so many languages doesn't support correctly fucking utf 8 characters in strings inside the code, I mean, WHAT THE FUCK, this is my second day trying to make the fucking Python gettext module to translate the fucking word "está" because I've a fucking big code base programming in Spanish that need to be translated. This is the fucking 2016 and we still have problems with fucking special characters? I mean CMMON1
-
>import ENi18n
>import ZHi18n
en = {…ENi18n, moreStuff}
zh = {…ZHi18n, moreStuffZH}
pt = {…ZHi18n, moreStuffPT}
“Hey man can you fix this? Seems like we are missing the Portuguese i18n. Check this file please (path)”
“I’m sorry I don’t understand, can you call me and explain?”
Why do I need to explain this? What is difficult to grasp here? How can it take more than 20 seconds to know what to do here? It’s not even a file I made, you made it and I just ran into it!
Fuck man, I’m going to blow my brains out.2 -
A (work-)project i spent a year on will finally be released soon. That's the perfect opportunity to vent out all the rage i built up during dealing with what is the javascript version of a zodiac letter.
Everything went wrong with the beginning. 3 people were assigned to rewrite an old flash-application. Me, A and B. B suggested a javascript framework, even though me and A never worked with more than jquery. In the end we chose react/redux with rest on the server, a classic.
After some time i got the hang of time, around that time B left and a new guy, C, was hired soon after that. He didn't know about react/redux either. The perfect start off to a burning pile of smelly code.
Today this burning pile turned into a wasteland of code quality, a house of cards with a storm approaching, a rocket with leaks ready to launch, you get the idea.
We got 2 dozen files with 200-500 loc, each in the same directory and each with the same 2 word prefix which makes finding the right one a nightmare on its on. We have an i18n-library used only for ~10 textfields, copy-pasted code you never know if it's used or not, fetch-calls with no error-handling, and many other code smells that turn this fire into a garbage fire. An eternal fire. 3 months ago i reduced the linter-warnings on this project to 1, now i can't keep count anymore.
We use the reactabular-module which gives us headaches because IT DOESN'T DO WHAT IT'S SUPPOSED TO DO AND WE CANT USE IT WELL EITHER. All because the client cant be bothered to have the table header scroll along with the body. We have methods which do two things because passing another callback somehow crashed in the browser. And the only thing about indentation is that it exists. Copy pasting from websites, other files and indentation wars give the files the unique look that make you wonder if some of the devs hides his whitespace code in the files.
All of this is the result of missing time, results over quality and the worst approach of all, used by A: if A wants an ui-component similar to an existing one, he copies the original and edits he copy until it does what he wants. A knows about classes, modules, components, etc. Still, he can't bring himself to spend his time on creating superclasses... his approach gives results much faster
Things got worse when A tried redux, luckily A prefers the components local state. WHICH IS ANOTHER PROBLEM. He doesn't understand redux and loads all of the data directly from the server and puts it into the local state. The point of redux is that you don't have to do this. But there are only 1 or 2 examples of how this practice hurt us yet, so i'm gonna have to let this slide. IF HE AT LEAST WOULD UPDATE THE DATA PROPERLY. Changes are just sent to the server and then all of the data is re-fetched. I programmed the rest-endpoints to return the updated objects for a very reason. But no, fuck me.
I've heard A decided (A is the teamleader) to use less redux on the next project and use a dedicated rest-endpoints for every little comoutation you COULD DO WITH REDUX INSTEAD. My will is broken and just don't want to work with this anymore.
There are still various subpages that cant f5 because the components cant handle an empty redux state in the beginning, but to be honest i don't care anymore. Lets hope the client will never find out, along with the "on error nothing happens"-bugs. The product should've been shipped last week, but thanks to mandatory bugfixes the release was postponed to next week. Then the next project starts...
Please give me some tips to keep up code quality over time, i cant take this once more.
I'm also aware that i could've done more, talking A and C about code style, prettifying the code, etc. Etc. But i was busy putting out my out fires, i couldn't kill much of the other fires which in the end became a burning building (a perfect metaphor for this software)4 -
Please do not make assumptions..
When you create a world class e-shop and if you detect a person is browsing from some EU country, don't assume he's fluent in Spanish [?].
Aliexpress detects I'm from LT and I have no idea how to change my language. I don't understand spanish enough to find langg settings and changing the url does not work17 -
Oh. My. God.
Boss JUST NOW after months of development has told me that anything the user sees needs to be i18n wrapped
*Bangs head on desk*
Why wasn't I told this?
Why isn't it this way anywhere else in the code?! Wtf!
Lol at least today will be laid back and easy, albeit tedious8 -
Had to demo i18n working to client with 45m notice..
Google translate the whole page server side and pray CSS behaves. -
Please tell me why my boss thinks instead of just implimenting a language picker, it's a good idea to:
1) store the browser's language option in the DB only for new users, but only the first time they log in, never again.
2) never give existing users the ability to change language, and just default them to English.
3) deal with all upcoming language change tickets by having devs manually do DB updates ON THE LIVE PROD DB.
I'm screaming.2 -
I love, that most of the standard shortcuts of every single software I've ever used don't work on a German Keyboard layout :(
-
Worst: having to deal with "senior" unity devs who bullied me out of the company I was working in and who believe people should make ~200 lines of code functions cause "context switching is heavy on performances"
Best: i have started to automate a lot of stuff and to auto-generate definitions (e.g. keys for i18n) and can't really stop doing it anymore ☺️
Extra: stopping to care about the language and focussing a lot on approaches is also a thing I consider good about this year... Last time I was concerned with learning go, now i am more like: "how do I make this hot reload" or "how can I auto-generate routing if the configuration is default?" -
I got assigned to work on a new project a couple of weeks ago. We got the POC code handed off from senior management, since he came up with the idea over the weekend. The project concept is hella exciting, but the dev manager and PO I have to deal with make life unbearable to say the least.
We have only 2 devs (including me) and 1 QA on this supposedly very important project. Of course, management announced the project to the clients already, so now we have to deliver ASAP cause it adds “sizzle”.
The MVP deadline is... no one knows when, either July 30th or September 1st. The MVP requirements are... unknown. I swear if someone saw the list of tasks and issues attached to “MVP” Epic, they would call us nuts trying to fit it all in.
To make things better, each PR requires 2 reviewers, so we end up adding manager as a reviewer just cause we need him to hit that “approve” button. So in attempt to make life easier, we requested to have a third developer. We are getting another developer, but that guy doesn’t know how to unit test a pure function...
Current priorities are... unit testing with coverage of 95% and if we want to refactor code, we have to add area to the list in a Google Doc. As a result, we are not tackling big things like risk of SQL injections not to mention big features like i18n (5-6 languages to support by the way and yes, it’s part of MVP as well as SSR no one knows why). Currently, I spend 2-3 hours a week in calls with the team just to figure out what the hell MVP is, what we have to do and why we have to do it. Last time we spent an hour refining 1 spike and breaking down one story into 3.
Oh, we also don’t have a deployment plan, not even to test environments since DevOps team was not aware of this project at all. Thus, QA cannot create any test suites and have to test everything manually which eats a lot of their time.
This whole project is a big hot mess and I’m considering leaving it all together especially since I’m working on two squads at the same time. I love the project, I love the idea, but management makes it unbearable, so I’m not even motivated to work on that.3 -
So I'm having a discussion with frontend devs now and I'm curious how you folks are doing this:
suppose you have a rest api at BE and some js framework in FE consuming it. Where do you format display info at: BE or FE? Info like human-readable timestamps [according to user's TZ], i18n, displaynames with appropr. lengths, etc..
Is this a job for FE or BE in your oppinions?
[imo it's view's job to be responsible for view-speciffic matters, while BE should provide all required info for FE to do it's formatting et al.]18 -
When my company decided they needed i18n cause we had one Japanese customer so we need to support multiple languages. And the customer churned after we released the Japanese version of the app1
-
I started asking to get draft templates in German language. So at least we'll know what the site will look like what when text is very long and customers are called "Sebastian Wiedenmann" instead of "John Doe".
Remember English is a very concise language and you always get bad CSS surprises when applying translations.random english css template internationalization internationalisation international i18n localisation localization german l10n2 -
So, working on real multi language support today I was searching for countries and country-codes. Yes this one is easy peasy. Also easy if you want every countryname in your supported languages.
But why is there no source for the states or provinces translated in every language. It's so hard to find...
Anyone knows a source for it? Is it worth to create a project for such translations?1 -
Internationalization be like:
Yo dawg, look, you can use mutliple languages now!
Suddenly gettext won't find any language files and every string is empty ;_;
WHY HAVE YOU FORSAKEN ME GNU?!1 -
Do internacionalization on an Angular4 they say... It will be fun they say...
Me after 2 days on it: **slowly dying inside**
Feel free to suggest alternatives... Might be helpful next project...9 -
I hate when I visit a new web framework's site and see documentation that promotes HTML tags like this:
<input type='text' name='foo' value='{{val}}' />
If you don't know enough about which quotes you should use and why... I have no faith in the quality of your software solution. -
eleventy localization still lacks good examples and useful best practice. Localizing symfony projects seemed way more easy and logical to me
-
Would like to share an open Source production-ready NestJS Boilerplate for fast development of REST API with most of the popular features included of the box: SignIn/SignUp, Seeds, TypeORM, FileUpload, Mailing, I18N, and others
https://github.com/brocoders/...3