Software Internationalization
Anonymous Coward writes "It seems that the folks over at O'Reilly have quietly released a book entitled, "Java Internationalization". The website for the book can be reached from the Java O'Reilly site, . The authors also have a website dedicated to the book.
I'm curious as to how developers are treating software internationalization, not just in Java, but in other programming languages like C#, C++, Perl. For software designers out there today, is internationalization and localization a forethought or an afterthought? Is Java the only viable language for writing truly multi-lingual applications?"
Is Java the only viable language for writing truly multi-lingual applications?"
NO
oh by the way. fp
MOM
The tricky part has nothing to do with coding language preference, but in the overall design of the application itself. Provided that you can come up with acceptable translations of all your output strings -- which itself can be tricky -- that still doesn't really address more subtle interface issues you might face, depending on what you're trying to do.
For web design, it could be worthwhile to have drastically different versions of your content for different locales -- IKEA and the BBC are interesting case studies for this. For other applications, one interface framework might be fine, but really this involves a lot of work and study of your target audience, and it goes far beyond (and is much more interesting than) the question of what language you code in.
That said, Unicode is a truly terrifying thing, and any language that makes it easier to work with is a welcome thing. Java supposedly uses Unicode internally, and if that helps as much as it seems like it should then great. Otherwise, or maybe even still, you face a much gentler slope in going to other Latinish languages (most of the European ones and any of the others that have adopted that alphabet or at least have a cultural standard for & acceptance of it (thus Japanese counts, Chinese doesn't), to anything with a much different character set (Russian, Arabic, Hebrew) and beyond (the CJKV languages -- Chinese, Japanese, Korean, Vietnamese).
I can deal with the prospect of planning for French, German, Spanish, and Italian versions of work that I do, but having to go beyond that is a very daunting prospect. And, of course, and interesting one... :)
DO NOT LEAVE IT IS NOT REAL
To internationalize, put all of your translatable strings, images, and formats into a resource. Your resource can be a text file, or an image, or whatever. Your must then get all the information from resources.
The basic idea is that you have a resource that needs to be translated: resource.txt. Your program determines the locale (say US_en) and then fetches resource.txt.en.US. If then merges that with resource.txt.en and resource.txt. The nice thing is this works even if you can't list your files (they may be on a web server for example). Also, because you are merging files, if something is the same for USA and Great Britian, it can go in resource.txt.en and you don't have to duplicate work in .US and .GB.
Besides having the libraries to handle this stuff the only thing that java makes it easy to do is determine the current locale. But the concept is simple and with a couple weeks of work you could have similar libraries up for any language.
Wow, another O'Reilly book plug.
/. should stay afloat on the kickback for some time.
At least
Disclaimer - I been out of the shrinkwrap game for awhile. The following may be out of date.
Most commercial apps I've worked with have a core in C or C++, then port the UI to whatever is available. Nearly all Adobe apps, for example, have a cross-platform core, and a localization specific to platform. Macs get MPW code (and alot of Rezedit), Windows gets VC + properties files (or whatever windows gets these days), and Unix gets X (or your favorite UI API).
Nowadays, string localizations may be done more and more in the specific country, but this is possible in Java as well.
Sigh, most real client app companies (in my limited experience) which are truly shipping to more than a very few countries are still willing to trade off the pain of porting the UI for the stability of the shared core in C or C++.
The great part about java is still that it can be an dynamically configurable server app for many languages and people at the same time. That could be the way of the future, or not. I aint gonna wax philosophical in Developers.
You may not like this advice but Microsoft have lots of information on i18n and l10n
Some is Windows based, obviously, but some isn't.
It's a good reference if you're not ideologically opposed to visiting some sites
http://www.thehungersite.com
er, I'd love to know where to get Unix versions of those Adobe apps.... (Photoshop and the SVG viewer to name just two...)
Like I said, it's been awhile. I guess PS never made it, no big money in it, natch. But I have illustrator for unix, anyways. There are really two issues to this, one localization to country/language, and the other cross-platform. The country/language part is perhaps easier with Java, but the core is the core, and the UI is easier to port, than to face the cost (and bloat alright? I said it. so slay me) of a java core.
Most languages that I program in either have an I10n or similar module or library that makes abstracting I10n issues out of your code and centralize them in a place allowing you to easily add new supported languages to your code base.
I never really thought about I10n until the last client I worked at where we had 8 different languages to cater to. Some of them could be done with the various iso-8859-x sets, but some of them required Unicode which caused real issues for us.
Now I think about I10n while doing the initial design rather than afterwards because it makes things a whole lot easier--even if you never really need it.
If you're doing any kind of Open Source project, I would seriously consider I10n issues at the beginning of the project since there are lots of people who speak lots of languages out there. It doesn't mean you have to do all the translations--just have to be able to support them. If it's important, you'll find volunteers to do translations for you. If not, you can always use babelfish or some other translator and attempt the translation yourself and someone will get irked enough to "fix" it for you.
http://www.lotus.com/international
Domino Global Workbench (make those databases multi-lingual from one GUI and string translation)
Lotus Translation Components (on the fly translation)
WebSphere Translation Server (throw DB2 behind your web server)
Lotus Translation Servivces for Sametime (gives you realtime translation for chat)
As someone who is unfamiliar with Java, let me turn this question around -- what features does Java have that makes you think it's such a great choice for internationalization? Are they unavailable in other languages in common use?
What I'm listening to now on Pandora...
Java not only handles unicode but also does code page translation.
:)
For example, I had to port an ASP app that used an Access database with Big5 Chinese data. The web pages it output were also Big5. I used Java to convert the data to UTF8 and loaded it into Postgres. A servlet grabs the UTF8 data from the database, Java stores the data as UTF16 internally, and the servlet produces either Big5 or UTF8 web pages, depending on the user's preference. It only took a couple lines of code to make this happen, because Java can convert from its internal Unicode format to other codepages. I believe that the same applies for other languages (e.g., KOI8 Cyrillic).
Unicode is definitely the standard of the future, and it also allows for easier transfer of data between applications that can't handle CJKV multibyte character sets.
Of course, I don't know Chinese, which made this a fun project
i would imagine that by designing and implementing an application that allows you to use externalized strings, you could easily switch presentation languages. XML/XSL is just the current sexy way to do that easily.
Apple's MacOSX does that - they have localizations by language that install with every OSX Carbon or Cocoa application. (though they dont use XML for the actual string table - most likely they are using some sort of hash table for speedier access)
theres tonnes of ways to do it, and none of them require you to go one language or another. java is just a nice way and the personal preference of many.
There is so much more to i18n than translating text messages. The biggest problem is character encoding.
I work in Japan, only work in Japanese and we only have products for the Japanese market. Yet, most of our time is spent dealing with i18n issues - converting to and from different encodings (shift-jis for MS and EUC-JP for Linux). There are several other encodings used in other areas as well.
The reason Java is so good in this environment is that the internal encoding is all unicode. Therefore we just have to translate encodings at input and output and everything else works with very few problems. (Having said that, even though Java support for multibyte character sets is very good there are still a few gotchas to watch out for). The whole API and 3rd party software is then available for use without limitation. I don't think this can be said for many other programming environments.
Slightly off-topic but the take up of Linux in places such as China and Japan will be greatly accelerated if flagship software, such as Nautilus, would work in a multibyte character environment at version 1.0
Part of the problem is that there is no agreed-upon implementation. The POSIX group could not choose between X/Open's catgets implementation and GNU's gettext, and as such, left it out of the standard entirely. Another problem with both toolsets is that neither presents a truly extensible strings database format. If you need to add additional storage fields to the strings database for a language other than C, you're out of luck if you plan to use the library and tools on the same files. Very short-sighted IMHO.
adobe used to sell photoshop for unix, it only cost like 3,000 USD
Java has outstanding support for writing internationalized applications. It's not so much the language itself as the standard libraries.
I've done some work in this area. Here's what Java supplies:
"Library design is language design." Believe it. All languages have strengths and weaknesses. I18N support is a major strength for Java.
Java.sun.com has an I18N tutorial.
Andrew Wiles
a**n + b**n != c**n for n > 2
THE OFFICIAL TACO-SNOTTING FAQ
By The WIPO Troll, $Revision: 1.11 $
Why have I been receiving emails from CmdrTaco, in which he seems to be speaking in some kind of code language?
Good Lord. What is "Taco-snotting?"
Ewwwwww. So, can I stop receiving these emails?
I can't stop receiving these emails from CmdrTaco!?
Have you ever been Taco-Snotted?
That's horrible. Does "Taco-snotting" have anything to do with CmdrTaco's "special taco"?
Does Jon Katz get involved in any of this? I thought he was a paedophile, not a homosexual.
No, thanks. I'm already CmdrTaco's boi toi.
________________________________________
READER COMMENTS
by Anonymous Coward on 2001.11.25 9:14 (#2609574)
try to find a pic of actual "taco-snotting"! fucking funny it would be! so go to gay porn sites day in and day out until you find a man giving another man a blowjob that has jizz coming out of his nose and mouth. by the way, keep up the good work
by Anonymous Coward on 2001.11.23 12:18 (#2603370)
WIPO, this is getting waaaay old, either drop it or revise it.... there've been no updates for days now...
CmdrTaco
by Anonymous Coward on 2001.11.22 17:28 (#2600815)
A truly excellent and very humourous troll indeed!
However...
To complete this perverted orgy, fellow geeks Michael, Timothy, and Jamie often join in, dressed in black Gestapo uniforms, jack boots, and leather gloves.
Black GeStaPo uniforms? The GeStaPo (Geheime Staatspolizei - Secret State Police) wore civilian clothes (although there are reports on them occasionally using Allgemeine SS uniforms in occupied territories).
I seriously doubt that perverted individuals like CmdrTaco et al would have the good taste to ever wear the outstandingly beautiful black Waffen SS uniforms! Please update the FAQ accordingly.
by Anonymous Coward on 2001.11.23 4:06 (#2602610)
Actually, it appears you are both wrong!! Ah ha!! I think our boy WIPO was thinking of the Allgemeine SS uniforms. Waffen SS were grey.
by Anonymous Coward on 2001.11.21 4:49 (#2594325)
oh yeah, you say you have masturbated only 2 times to this post. well, by the time it takes for me to get through reading it, i usually end up masturbated 5 to 6 times, 10 to 12 if i have the goatse.cx homepage loaded up and am looking at it side by side with the slashdot page. my keyboard, hands, mouse, monitor, the underside of my desk and around the floor under my desk are cum soaked and sticky with the man smell i know and love.
by Anonymous Coward on 2001.11.21 4:41 (#2594311)
for version 2 you should make a total re-write of the cod...errr...text and add some details about cmdrtaco and the homo-gang's happenings with their coworkers (osdn?) and all of the gay revelry they enjoy and promote. by the way, did i just see cmdrtaco on television promoting the nax hair removal system? i guess after using vaseline in and around his ass he grew quite a ponytail and it had to be removed somehow...ouch!
by TRoLLaXoR on 2001.11.21 3:59 (#2594191)
WIPO, do you notice how few comments you get for anything you write/post/spam nowadays?
-Trollaxor
by sales_worldwide on 2001.11.20 11:53 (#2588488)
You forgot to mention Jon Katz's "docking" games, where he places his chopper head to head with another chap, and rolls the other guys foreskin over his own circumcised end ("docking"), providing him with fantasies of actually having his own forskin
"Making linux GPL was the best thing I ever did" - Torvalds. I'd hate to see the worst thing...
by Fucky the troll on 2001.11.20 11:28 (#2588446)
Woah! When did the WIPO troll get freed? And how the fuck did I miss it?
Excellent FP, sir.
This is a sig virus. Please put me in your sig
by Anonymous Coward on 2001.11.20 11:04 (#2588407)
omg that is crapflooding material if i ever saw it!!!!!! and u got a first post!!!! whoot to the wipo troll!!!
by Anonymous Coward on 2001.11.19 9:03 (#2583756)
GW...you know we love every hair on your 27 acre ass... and I, for one, would never do anything untowards your graceful demeanor. And you probably have several friends that would love to help you do the bear dance all over my face if I so much as spelled your name wrong. And you know I'd defend your Constitutional right to defame God in heaven. I'd even help fund your education, should you ever decide to take that route. Hell, I'd buy you a tall tepid bear-whiz beer if you were here with me, right now!
But.
Now go stick your shaved head back down inside the woman's toilet, and just to show there's no hard feelings, I'll jump in the tow-truck and drive right over to help you pull it right out...ok?
thanks
by mark knopfler 69 on 2001.11.19 8:25 (#2583695)
I DO NOT BELIEVE YOU SIR. FOR ONE THING, THE E-MAIL FROM CMDRTACO DOES NOT HAVE ENOUGH GRAMMATICAL AND SPELLING MISTAKES. Let's be realistic here, CmdrTaco usually types with one hand, and since he is shaking from jacking off his aim on the keyboard isn't too good. Those e-mails were a little too well written. Sorry boy, you'll have to do better.
by WeatherTroll on 2001.11.19 8:14 (#2583667)
You should update this to say VA Software instead of VA Linux.
by smackmonkey on 2001.11.19 7:06 (#2583510)
Crackhead moderators: this is +5, Hilarious material.
--
CNN declares War on Islam!
Left-wing America declares War on its Civil Liberties!
by Anonymous Coward on 2001.11.19 5:40 (#2583336)
This was funny the first 100 times. Now it is getting boring!
by egg troll on 2001.11.18 22:27 (#2582054)
Having masturbated *twice* to this post, I'm still incredibly aroused! Come over for a Taco Snot. I'll be wearing my crotchless Clifford the Big Red Dog outfit!!
For more info check out this
by Anonymous Coward on 2001.11.18 12:03 (#2580822)
add more links to goatse and to cowboineal's site to make it better. a link to rotten.com would be nice too
by Anonymous Coward on 2001.11.18 12:18 (#2580832)
and a link to michael's site and to jon katz's site if he has one and homo's site. i dont know what else to say. maybe a few links to phallic.org they have nice penis pictures! a link to the planet quake site or whatever. really make the reader feel this faq really answers their questions. oh yeah, and when you talk about cmdrtaco snotting you, say he brought you to "orgasm after sweaty orgasm". describe it more is all i'm saying. and use more italics and bolding! and when you talk about jon katz shitting or whatever have a link to fecal japan on rotten.com
other wise a great job wipo troll! keep up the good work!
by Wil Wheaton on 2001.11.18 6:41 (#2580438)
Hi. Let's be buddies.. butt buddies.
--
WIL WHEATON DOT NET
by dead_puppy on 2001.11.18 5:33 (#2580342)
Here is an e-mail I received a week ago:
From: malda@slashdot.org
To: puppy_dead@hotmail.com
Subject: were where you last friday?
I thought we where supposed to meet at Backdoor's at 8-ish, sugar-lips? You could've at least told me that you could'nt make it! I was even in my favorite pink skirt for you, honey-cup... next time, you could be more considarite and tell me you cant come... bastard.
--
CmdrTaco (malda@slashdot.org)
You finding Ling-Ling's head?
by Big_Ass_Spork on 2001.11.18 4:53 (#2580300)
I do it wrong
Laying here in the shadows of my room, I squint up at my love. My Ms. Portman. I am sore and tired after fucking her for eight solid hours. My chapped and aching dick is soaking in grits to relieve the pain. She gets on her knees and starts lapping the grits up out of the bowl. She places her beautiful hands on my penis and starts to lick the grits off my achy piece.
Massaging my nutsack she....
WAIT, I DO IT WRONG!!!!
Yanking my dick out of her mouth I throw her to the ground and shove it in to her gaping freshly fisted ass. [goatse.cx]
"OH BIG ASS SPORK!! Fuck my ass, fuck my ass good. DEEPER, my stallion, deeper!! Make a Beowulf cluster of sperm on my back!!"
"Imagine a Beowulf cluster of this baby!"
I DO IT WRONG!!!!
---
All your Sporks are belong to Big_Ass_Spork! What you say?! All your Sporks are belo... forget it...
by j0nkatz on 2001.11.17 22:54 (#2579596)
I just heard some sad news on the radio -- famous queerbait Rob Malda was found dead in his Holland home this morning. The details were a bit hazy, but it seems that he drowned in jizz while Taco Snotting his friend Hemos. I'm sure everyone in the
I wanna Open Source sex so it won't be worth a shit either.
by Anonymous Coward on 2001.11.15 6:38 (#2567601)
No no no, the correct term for that is "donkey-punch". I have eye-witnessed this amazing eye-popping event demonstrated on unsuspecting hose-monsters by my frat brothers in the past.. .
by AbsoluteRelativity on 2001.11.15 5:31 (#2567457)
The WIPO Troll
Slashdot and the Karma Lottery - News for uber monkeys, by uber monkeys.
by Anonymous Coward on 2001.11.13 9:27 (#2557632)
Oh, man that's just sick !
by Anonymous Coward on 2001.11.13 9:03 (#2557604)
TELL ME WHERE I CAN GET AN ANONYMOUS proxy please WIPO Troll. Maybe later i will join you in a snotting at my place.
by vikool on 2001.11.13 7:43 (#2557495)
what is this bull shit,i feel offened that some people feel so so senseless to post stuff like these esp when such a tragic incident has occured
by I.T.R.A.R.K. on 2001.11.11 22:38 (#2551890)
Where the fuck do I sign up?!
- I throw rocks at retarded kids
"Adequacy.org: Where congenital stupidity is not an option, but a requirement."
by Anonymous Coward on 2001.11.11 21:53 (#2551753)
this shit is hilarious..keep up the good work.
by rockwood on 2001.11.11 21:49 (#2551746)
OMG! That is the most disgusting thing I have ever heard! WHo in their right mind would sit down and waste the time to construct such a replusive story. I guess I'll be skipping lunch and dinner today.. and possibly tomorrow also. The game doesn't affect reality. Reality affects the game.
by Anonymous Coward on 2001.11.11 14:43 (#2550701)
dude, this is crap-flood material if i ever saw it.
duuuuuuuuudddddddddddddeeeeeeeee.
by Anonymous Coward on 2001.11.11 8:16 (#2550266)
horny_rob_6969@hotmail.com
Ah, so that's what the alt.binaries.pictures.erotica.horny-rob newsgroup is about!
by egg troll on 2001.11.11 5:34 (#2550024)
+5, Arousing
For more info check out this
by Anonymous Coward on 2001.11.11 4:39 (#2549891)
WINNER>
by Anonymous Coward on 2001.11.11 4:37 (#2549887)
I love you. Why do you use your bitchslapped account, rather than signing up for a new account to post at +1 before getting bitchslapped by the censors here? I guess I should speak for myself, but I don't want to log out and lose all my slashdot customization properties, nor do I want to lose my 50 karma yet.
by Anonymous Coward on 2001.11.09 9:19 (#2542412)
you fucking rock! right down to the expanded cvs id!
WIPO trolls > linux
________________________________________
J. Wipo Troll, Esq.
Crapflooder Associates
Slashdot.org
If you are interested in internationalization with Java or C/C++, check out International Components for Unicode (ICU). This is an open-source internationalization library that has a lot of features and is quite solid. See:
C/C++:
http://oss.software.ibm.com/icu/index.html
Java:
http://oss.software.ibm.com/icu4j/
IBM provided a lot of the Java i18n stuff originally and have continued to maintain and expand it as an open-source project.
C supports language files which allow you to link your output entries to a file and simply by switching which language the files will be pulled from a different directory. It's really quite easy to make multi-lingual apps.