Re: Localization strategies?
Re: Localization strategies?
- Subject: Re: Localization strategies?
- From: John Joyce <email@hidden>
- Date: Mon, 21 Dec 2009 23:30:26 -0600
On Dec 21, 2009, at 8:18 PM, Uli Kusterer wrote:
On 20.12.2009, at 21:30, Ricky Sharp wrote:
Thus, I'm wondering if it would ultimately be worth it to
externalize all strings from my nibs and just put everything in my
single .strings file. This will clearly involve me adding tons of
IBOutlet ivars just so that at runtime I can set their text with
NSLocalizedString APIs.
One approach to avoid the whole IBOutlet excess would be to create
subclasses of the standard view classes which, when they are loaded,
use their contents/title as the key and pass it to NSLocalizedString
(). That way, your NIBs only contain keys, and the .strings files
can hold the actual strings, including comments.
Another possibility: instead of creating a bunch of subclasses and
having to specify that subclass for each view you create in IB, you
could write a method that recurses through all views in a window.
Check each view for a "title" or "name" property (maybe "stringValue"
too), and maybe use some convention like #TITLE# to indicate you want
to replace that title or name with a localized string to be gotten via
NSLocalizedString(). Check whether the view is a table view that
displays column headers, and if so, iterate through its columns. Do
similar special-casing for tab views and segmented views and anything
else that needs it.
This method could be in its own utility class, where it could be
called by awakeFromNib. Offhand I think this is how I would do it if
I wanted to take the approach of putting keys in the nib.
--Andy
It's best not to localize in a locale unless you are going to do it
correctly!
That means hand tooling the UI. Apple realized long ago that GUI
elements must be localized correctly. This means far more than
translation with the inevitable string length differences. This means
making an interface make sense in a localized format. One size fits
all only when the UI is intuitive and self explanatory. (Photobooth is
an excellent example)
It tends to be true that your UI could use improvement if it is overly
textual. A good UI design can avoid localization being painful. This
is the true shortcut in localization
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden