Aleksandar • Vacić

iOS bits and pieces

Validating forms

When Javascript entered the world, developers used it for many things, but two most popular were client-side form validation and status bar scrollers. No one does the second one anymore, thank you very much.

But the first one is, in my humble opinion, still the best use of client scripting. With DOM-compliant browsers dominating the fields, developers have enough resources to add client-side validation in the least-intrusive way, without adding any extra markup like onsubmit, onclick or onblur handlers in the HTML itself. All you need is to include one or two external script files.

Styling form fields

As long as I can remember, forms have always been problematic. They need to be short but complete, good looking but not confusing, informative but not cluttered.

These requests are often opposite, especially because designer’s view of those aspects is sometimes…hm, different then client’s.

Basic rules

I believe there is only one basic rule: do not change the overall look of the form elements.

People are used to form elements from the operating system they use. Elements like text fields, checkboxes, drop-down lists and buttons are something people deal with in their usual daily apps, and when they see them on the web, they imidiatelly know what to do with them, i.e. how to fill-in/choose data.

The usual victims are text fields and buttons, as they’re easiest to change.


How many of you recognized that this above is input-awaiting field? Hm, ok. What about your dad? It doesn’t matter if he does too. There’s always people that will be confused. And don’t expect them to call customer service - they are embarassed to not know how to fill-up the form and they will simply leave.

It’s nothing to laugh about. What is obvious to one, is stupid to another and unusable to third. Avoid that.

Another reason against the above is that you can’t style drop-down lists similar to that, so the whole form would look unfinished. Change colours or borders, but don’t remove borders or blend the fields into background.

With this in mind, lets see what we can do.

Two-level navigation

Alex Robinson posted a CSS challenge few days ago on css-discuss list: using 2-level nested list, create a two-line navigation with the following properties:

  • “current” main item’s sub menu should be always visible

  • sub menus for other items should display on hover

  • menu should be liquid, i.e. to be based on ems rather than pixels

I took the plunge. Excellent example of such navigation is Nokia’s, and the CSS version based on the above is here.

Version with floated box fails in IE/Win. In that example, each item is floated to the left, and IE calculates width:100% for absolutely positioned nested lists from the left edge of the item instead of full viewport width. Yet another IE/Win bug. :(

Software localization

I just completed the translation of FeedDemon’s user interface to serbian language. I thought it would be a straight-forward thing, but it wasn’t. It’s damn hard.

Serbia is only just recently starting to receive software which is partially localized - interface and messages are in serbian while help and other stuff are in english. Microsoft leads the way by offering Serbian Latin and Serbian Cyrillic interface shells which are installed over existing english version of Windows XP.

There was, there is and there will be much discussions over the terms used. I did not pay too much attention and was simply joining the laughs over some translations.

When I took upon myself to translate the FeedDemon to serbian, I realized how hard it is. English is very, very computer-oriented. Words are short, have somewhat neutral sound and one word can mean different things when used in various contexts. Also, some of the words are very hard to translate and I often found myself adding lots of hints that Nick did not have originally, simply to explain the meaning of menu item or some button.

For instance, FeedDemon have watches. Those are special channels used to automatically search incoming news items for certain keywords. There is no direct 1-word translation for it in serbian that could be used here (which will actually be related to what FeedDemon’s watch actually is). Or 2-word. Or 3-word. So in the end I used the word monitor (has the same meaning in both english and serbian) which describes what that features actually does - monitors incoming news items.

Same thing with news bin. Direct translation of the word bin sounds kind of…awkward, since that word is not used in that context in the serbian language - it sounded more like a trash can than the place where you keep important stuff. I chose the word kutija (box) which is the closest thing I could think of.

Another problem: File menu is usually the first one in any software, and it always have something to do with files - open, save, close… However, RSS aggregator deals with news items, not files. Nonetheless, I did not have a single doubt about the use of such menu - I’m used to it, since I deal with computers for years, using purely english-based software.

But this translation is for people that don’t know english language. People that possibly know little about computers and files. In such case, using the serbian word for file would be meaningless since not a single menu option there deals with files. Therefore, I named it Vest, which means news, and I like to think of it as good choice.

Even the very essence of RSS - news item - is hard to translate. In serbian, when you use the word news you are talking about the newspaper or TV news (“10 people injured”, “Milan wins the Champions League” etc.). And items in the RSS are mostly blog entries (at least in the feeds I read). I tried several words, ran them through the interface just to see how they sound in various contexts that FeedDemon uses news item…you know what I chose? News. I used the direct translation, since all others tear my ears when spoken - I’m just not used to hear them for something like this.

Bottom line?

Software localization is never a straight-forward business. After I finished the initial translation, it took me 6 or 7 passes to polish the words and phrases and to give them proper meaning. And there is no reason to laugh. Even though some terms sounds funny, in the ears of new computer users, they could be quite sensible.