Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't think so. That's just a semantic description of what you are doing. Call it `UserMessage("....")` or whatever. If you go without that and have simply plaintext for any kind of thing, you might at some point mix up passwords with user messages and stuff like that. Has nothing to do with future-proofing.

You need user-messages? Then create user-messages and not strings. You don't need translations? Then don't create them.

Or in other words: make things a simple as you can but not simpler than they inherential are.

> Perhaps the wrapper is even less work to introduce in the future, since you can add it with a simple search-replace, instead of inserting it manually every time you type a string.

No you cannot, unless literally all strings in your program must be translated.



Lets say I write a HTML page.

   <h1>Hello world</h1>
Is less work and complexity than:

   <h1>{{ UserMessage("Hello world") }}</h1>
Introducing this abstraction before it is needed is a waste of resources and opportunity cost. Lets say you have the first solution, and someone decides "world" should be a link. Easy, you insert an <a>-tag. In the second example such a change would be much more complicated. You have suddenly made your work much more difficult for no benefit at all.

Sure, if you discover at some point in the future that you actually need translations, then you have to work through all text and decide which strings need to be translatable. Yes, that is work, but you have done that anyway! There is no extra work. And every text which have been deleted between the abstraction was introduced and the translation became necessary, would have had an extra cost which is wasted anyway.


Oh, if you write HTML then you are already using semantic wrappers. I.e. you already used <h1> which clearly indicates your intend.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: