Forgot your password?
typodupeerror
Programming Communications Technology

Japanese Localization Help? 102

Posted by Cliff
from the I-really-think-so-think-so-think-so dept.
TwoPumpChump asks: "I'm a young engineer, with only modest programming training and experience, (Nothing to match you Gods of the code,) and I have just been assigned with the task of traveling to one of our Japanese factories to learn, then translate and localize some VB 6 code for a product line that we'll be setting up here at our American facility. The application's purpose is to run various tests using GPIB communications, with NI-DAQ hardware for instrument control and dump results into a database, all of which I'm comfortable with. My question is, before I travel half around the globe for the first time ever, is what issues can I expect when localizing Japanese code to US English and what sort of 'toolkit' should I take?"
This discussion has been archived. No new comments can be posted.

Japanese Localization Help?

Comments Filter:
  • by Anonymous Coward on Thursday March 24, 2005 @07:21PM (#12040792)
    localhost$ sed --in-place s/l/r/g *
  • by treerex (743007) on Thursday March 24, 2005 @07:21PM (#12040798) Homepage

    You must have pissed someone off in a previous life, because this is usually a non-trivial exercise, and the company is trying to do it on the cheap.

    Presumably you speak Japanese.

    Try Google, searching for localization and internationalization. There are some sites out there that discuss it, even for VB.

    How much string processing will you need to do? Will there be data file changes? What is the scope of the UI changes required?

    There are companies out there, like Lionbridge or Basis Technology, that make good money doing this for people. Usually they get called after a company has already spent too much trying to do it themselves.

    • If you don't speak Japanese already, then your attempt at doing even half decent localization (assuming that includes translation) is going to futile, at least without help of someone who speaks both fluent Japanese AND fluent English.
    • by patio11 (857072) on Thursday March 24, 2005 @08:53PM (#12041673)
      Hello from Gifu-ken. Good luck, my friend, you're screwed. Localizing a medium-scale Java program from E->J is a huge undertaking, and Java is practically built around the assumption that the code will go international (native Unicode strings, etc).

      Some of your challenges:

      1) User expectations. Become friends with your testers (I hope you got a testing department?) and continuously ask them to evaluate whether the software works like expected. Obvious things to watch out for: date, number formatting issues, and the fact that alphabetic sort is expected to be by the table of fifty sounds, not the abc order.

      2) Input verification. Strip half-width kana, save yourself a LOT of pain later. Make sure you use a consistent internal representation of Japanese (if I see another person trying to compare Shift-JIS and Unicode for equality by casting to integers and using the equals operator I will stab my own eye out with a pencil).

      3) Canonicalization issues in data. Be prepared to weep tears of blood for this. My bank still hasn't figured out how to do it right, so I can't access my account online because my name is written in romaji in their database but their web site accepts only hiragana. Be especially careful with using consistent romanization. This probably means waging total war on both your users and existing data -- have fun!

      4) Conversion of postal addresses. You would think this is easy, but people screw it up anyhow. Make sure any input UI asks for addresses in the order expected locally and parses them correctly! I have some business contacts in the US who have my city listed as my apartment building due to software which made assumptions about address ordering for them.

      5) Suicide. Japan doesn't have a love affair with it -- thats a myth. You'll want to commit it by the end of this project -- thats a fact.

    • Either someone is really confident in him or he really cheesed someone there off.

      First, you're right. It won't be easy. Heck, accurately translating plain text isn't easy and this is worse.

      Second, with VB6 on the chopping block since MS is ending support, why are they wanting to translate a VB6 program *now*?

      Just a couple of things to consider...
    • He's right -- this is a difficult task. If you're really sure you want to head this project yourself, though, here's some tips.

      (This comes from a recent C/S grad with development experience and five semesters of Japanese.)

      I'm assuming you have no Japanese language experience of your own. Maybe you have some experience with their culture. I imagine you will be given access to bilingual folks, who will help you understand their application well enough to Americanize it.

      First, remember that Japan and the
    • The good news for this guy is that he's being expected to bring the code to the States, not to Japan. So, there's a minute chance the code was written with english variables, so that he can understand the program before having to dig through the software and excising all the strings with a Translate()'d version.
  • by MerlynEmrys67 (583469) on Thursday March 24, 2005 @08:07PM (#12041273)
    Maybe not to English - but to SOMETHING.

    The first L10N effort involves having to do all the I18N work (ie. moving string resources out of things so that you can just have a translator work on it).

    If the code has never been I18N'd - it is a huge horrible task. If it has, just bring an English/Japaneese translation book and do the translation (he he he - if only it really was that easy though)

  • I'm assuming translation for non-japanese speaking programmers.

    Try a straight kana -> romaji conversion of the programs first. Next, replace variables with english equivalents.

    Same thing with the data, but more (possibly much more) difficult.

    Toolkit. Hmmm. Well, something that allows both English and Japanese input (like MS IME stuff). Do you need a dictionary, like edict?

    • You need a JP EN tech dictionary. What's edict's technical coverage like?

      As a point of reference, one of my EN -> JP translators (who is primarily a social-services-and-tourism translator, not a tech translator) owns about $1200 USD worth of JP EN tech dictionaries (that's two dictionaries, fyi). She owns about $6-8K USD worth of dictionaries all told (to cover both JP EN and JP whatever-the-lang-code-is-for-German).

      It's not always true, but usually, free dictionaries are crap for translation purpo
  • >I'm a young engineer, with only modest programming training and experience, (Nothing to match you Gods of the code,)

    If you pull this assignment off, you can change your intro to read: "I'm a seasoned programmer,"

    Because it ain't easy.

    I think your success will depend entirely on whether someone in the Japanese team is willing to really help you out.

    If you've never been to Japan before, read up on cultural differences.

    • If you've never been to Japan before, read up on cultural differences.

      Does anyone know of a good and real readup for this topic? Most of what I read seems to have been passed through several layers of political correctness BS while tiptoing around taboo issues.

      As someone who is interested in an extended visit there sometime in the not-too-distant future, I'd like to find something which gives a real perspective of the differences, not a glossy tourist guide version of them.
      • My wife is japanese, from Japan (she left when she was 25 or so).

        I have been to Japan.

        Culturally there is very little you can do as an american to get prepared. It's going to be the shock of your life, and not only because it's so foreign, but because it's so modern. Americans equate state-of-the-art with western culture. in Japan, one realizes that state-of-the-art is not American. That's probably the biggest shock.

        To get along with the japanese, have "kejime".

        quoted from: http://ccins.camosun.bc.ca/~t [camosun.bc.ca]
        • Ah, reacting appropriately.

          This one thing that would be most helpful to know, but which is impossible to convey in any other way that learning the hard way. I think another way of saying it is: "do not cause any friction".

      • Cultural differences between Japan and what country? There is no single source, because you need one source for every single culture. Thus: find someone smart around you (not just any chick-hunting loser) that has been to Japan, and ask some questions. But even that is probably not enough. It seems Americans among others usually have a great deal of adjusting to do, while some other cultures are more similar.

        The starting point is the same as for all other cultures though: Drop all your prejudices and concep

  • zerg (Score:5, Informative)

    by Lord Omlette (124579) on Thursday March 24, 2005 @08:27PM (#12041448) Homepage
    Lonely Planet [lonelyplanet.com] and Pimsleur [pimsleurapproach.com].

    Japanese write software like crazy and there are plenty of open source coders out there. Make contact w/ a few of them and try localizing their projects to English (US) for the hell of it.

    Sounds like you're on a mission impossible, good luck.
  • Ah... (Score:3, Funny)

    by eviltypeguy (521224) on Thursday March 24, 2005 @08:33PM (#12041505)
    Hello American Investor,

    I see you are interested in distributing Mr. Sparkle VB6 Code in your home prefecture. You have chosen wisely. But, don't believe me, observe this commercial...

    Random line from the commercial:
    Join me or die, can you do any less!
  • by panoplos (584853) <panoplos@noSpAM.netscape.net> on Thursday March 24, 2005 @08:51PM (#12041657)

    I lived and worked as an embedded engineer in Japan on cellular technology, so there are few NB I can perhaps throw your way.

    1. Expect the worst
      All the strings are most likely hard-coded.
      What this means for you is: you will not have the luxury of running this code through a perl script, extracting strings to eventually provide one-to-one correlations in the other target langauge (in this case, English).
      Given that Japanese and English grammar differ greatly enough to affect the formatting of strings, many of the strings that will require translation will necessitate rethinking how the data is displayed on the GUI. This is only exacerbated by the fact that VB allows you to build strings with semtantics like "Processing test #" & testIdx & "'s results." (in Japanese: testIdx & "banme no tesutokekka wo shorichuu") -- damn slashdot completely removed my Japanese when I tried to input it!!
    2. Encoding issues
      I am not sure about VB in this regard, but you may run into issues with the character set encoding they are using. Most likely this will be Shift JIS on older Windows systems.
      ASCII is pretty much universal accross code sets, but it would be wise to port everything over to UNICODE, just incase you are going to have to support other langauges in the future.

    I am sure there are other things you will run into, but I wouldn't sweat it. As much as possible, use tools for internationalisation of strings, i.e. gettext.

    Hope this helps.

  • by Jerf (17166) on Thursday March 24, 2005 @09:38PM (#12041984) Journal
    I had to think about this for a bit, but I think there's only one thing to do:

    Quit.

    Honestly, if I was in your situation, and I could not talk anyone out of it, I'd either quit or demand a gigantic pay raise unless they were already paying me really well.

    Were this in Java or Python or a web app, something where you stand a chance with international charsets, it might be OK.

    English to German or some other Latinate language might be OK.

    If this was in something that didn't depend on drawing static forms on the screen, but instead built the forms from metadata, you might stand a chance. (This is assuming your VB app took the path of least resistance and doesn't already run this way, so you'll be completely re-drawing every form.)

    An app that had already been localized into something else might be OK, or one that had been planned for it since the beginning.

    But this? Absurdly large task for one person. You could be doing this for years, and it's just not fun enough for that.

    I sure hope the code is of a decent quality. If it's spaghetti code to boot, this message goes from 25% toungue-in-cheek to full out serious advice, because the L10N is going to touch everything. You're going to be stunned what new code paths are going to be generated.
    • by Anonymous Coward
      Quit.

      What the fuck? They're sending the dude to Japan. He should go and have a damn good time. A damn hell ass good time. If it doesn't work out, THEN he can quit.
      • AC says: What the fuck? They're sending the dude to Japan. He should go and have a damn good time. A damn hell ass good time. If it doesn't work out, THEN he can quit.

        Touche'.

        But you get my point. :-)
  • Well, everyone in Japan speaks Japanese for one thing. If you can't, then be prepared for a fun time!!
    Sounds like a fun job tho. Where did you find it?
  • by TwoPumpChump (767573) on Thursday March 24, 2005 @10:16PM (#12042247)
    I'm very grateful so far for the advice, (I submitted this,) I should have mentioned that yes, I do not speak a lick of Japanese but will have a couple of bilingual assistants. Only one of whom, however, is fluent enough in English to be of any use. Also, he is a decent VB programmer in his own right and as you may guess, I'll be buying him dinner to keep him on my good side. Unfortunately, he's a busy fellow so he won't be dropping in to help, except sporadically. The only other saving graces is that the software will have limited users (all in house; not released to the public, so I can indeed babysit the application.) But the biggest tip I'm picking up is to learn at program inside and out while I'm there, around the original developers, so when I get it stateside I'll know intimately what it's supposed to do and what it's supposed to accomplish. That, and to pray and pray hard ;-) Thanks, y'all
    • Honestly, who did you get on the wrong side of? They're sending you to Japan when you have absolutely no Japanese language skills in order to work on translating a program written in a language which is not going to be suppored by its creator in a few months.

      To top it off, you have only two assistants for this on the native language side of things, only one of which is any help and he's not going to be there all that often.

      It sounds like a project someone wants to fail before it's even started. I'd be asking myself if you angered one of your bosses (or if it's a power play between two higher ups and you're just a pawn).

      Please tell me your boss didn't catch you in bed with his daughter or wife ;)

      In all seriousness, though, this may be (though is not necessarily) a rather negative indication of your life expectancy at the place you are currently employed (wether it is because of something you did or if you're just a sacrificial lamb...)

      My advice? Do the best you can without killing yourself and try to have some fun while you're there. Good luck. You're going to need it...
      • I agree with the other poster - this project sounds like it's set up to fail.

        You haven't mentioned a timeframe for the project. If it's a year or more, really, seriously consider studying Japanese half-time during your stay (you really should be able to make a good case for it, seeing as how localization is supposed to be the point). Also, make a point of befriending people and absorbing the local culture. When you are fired and the project cancelled, you have a couple of pretty weighty bullet points to ad
      • Honestly, who did you get on the wrong side of?

        You know, I read the post and thought "Who did he get on the right side of/who did he have to have naked pictures of to land this position?" I've had lots of s-sucking assignments which I had to complete in such exotic places as Oklahoma city, Champaign Illinois, and Cincinatti, Ohio. When I was in college for my undergraduate (10 years ago now), I took courses in Japanese because I dreamed of a job involving overseas travel. I knew such jobs existed, and

      • I'm torn between "you're probbably right" and "his bosses are just fools who think it'll be a trivial task".

        The upside sounds like the app doesn't have to support both languages at the same time. That's a MAJOR saving grace. That means he can just rip out the japanese menu descriptions, and put in english equivs. No infra-structure for swapping between english/japanese is needed. There's disadvantages to this too of course. A code fork means two seperate, but incompartible versions of the app are goin
    • Assuming that the function of the code does not change often then I really see your project being more of adding a locationization modual and making sure that the data entered validates before hitting the DB (formating too), and that the querries return the data in the local format.

      I would personally have the local programmers sit down and do the following:
      Build a branch of the source code for you.
      Translate all strings and comments into English.
      Then you will have to:
      Comment the code with your own thoughts
    • The application's purpose is to run various tests using GPIB communications, with NI-DAQ hardware for instrument control and dump results into a database, all of which I'm comfortable with.

      How large is this program? From you description, it sounds like a simple test and mesurement application, and you have done those sort of things in the past. It also sounds like the real task you are being assigned is not to "port and localize", but to make an application that "does pretty much the same thing as the o
    • There's not much help I can give you, except this useful website:

      http://www.csse.monash.edu.au/~jwb/wwwjdic.html [monash.edu.au]

      Regards
      elFarto
  • Don't listen to them (Score:5, Informative)

    by ag0ny (59629) <javi@l[ ]ndeira.net ['ava' in gap]> on Thursday March 24, 2005 @11:06PM (#12042549) Homepage
    I've been living in Tokyo for three years now, working for a software development company. Even though I'm a systems administrator, I've had to do localizations on occasion. Both ways: Japanese to English and English to Japanese.

    If you were to do an English->Japanese localization you would be in deep trouble. But you say that the work is in the opposite direction. In that case it's not that hard, assuming that you can read some Japanese or that there's someone in the company who can help you with the translation.

    Some of the problems you'll be facing:

    - Get used to work on a Japanese Windows. Your English Windows will not be adequate for this.
    - Dates. They are written as YYYY+(kanji for year)+MM+(kanji for month)+DD+(kanji for day).
    - Input validation. You'll have to REMOVE lots of code that you won't need in the (more simple) English version. And in order to know what you have to remove, you'll have to understand it first. Learn about hankaku-zenkaku characters, katakana, hiragana and kanji, and how they're encoded in Shift-JIS.

    Mail me if you need help/advice.
  • My question is, before I travel half around the globe for the first time ever

    As this is internal company code, have you seen it and done some of the groundwork before you go?

    Jumping all the way to Japan, blind, is not the way to do it.

  • Many years ago (Score:4, Informative)

    by darnok (650458) on Thursday March 24, 2005 @11:46PM (#12042809)
    I had the job of translating some Swedish surveying software into English. I also had to convert it for use in the southern hemisphere, which was non-trivial as well.

    By the time I finished, I swear I knew every line of that code. It's a BRUTAL job, trying to translate variable, class, functions etc. names to English. You know how you may abbreviate a variable named "count" to "cnt"? Guess what, they do the same in Sweden too, except they abbreviate Swedish words.

    If I was doing this again, I'd
    - NOT agree to have it working within a specific timeframe, because the work consists of loads of breakthrough thoughts and ideas that are essentially unplannable
    - give serious thought to a rewrite from scratch. As your code is VB6 which is now out of MS support, and not that easy to support anyway, you may want to consider this option
    - demand a local, bi-lingual coder who'd worked on the code to work with me, at least in the initil phases
    - state very clearly that I'd be working 8 hours a day, 5 days a week, and no more on this project. It's extremely easy to fall into working huge hours with a project of this type, as you wind up having to hold huge amounts of info in your head and time just blows out the window in those cases
    - try to get a work partner, as the task is mentally draining and you need someone else to look at things when your brain starts to wind down

    Good luck, and enjoy Japan - it's an incredibly beautiful place to visit. Make sure you set aside time to have a look around
    • The Japanese code I've seen (which admittedly is a bit limited) mostly uses english-based wording for stuff like variable, function and class names.

      Comments, on the other hand, are of course usually in Japanese. On the third hand, most peoples' comments don't really become any more understandable just because you have them in a language you know :)

      I'd say the big challenge is in the string translations. You really need someone with both really good working (not just study) knowledge of both languages as w
    • I also had to convert it for use in the southern hemisphere, which was non-trivial as well.

      Was this toilet flush vortex management software or something?
  • Practical solution (Score:2, Interesting)

    by mattr (78516)
    Hi,

    I emailed a response to the address on your /. id. I'm an experienced software developer and business coordinator based in Tokyo. I've got a lot of experience in localization and other issues you will be running into head-on, am also a professional translator and fluent in Japanese.

    Anyway, I'm willing to talk to you more about your own project to give you some pointers if you want, though from a business perspective you most likely should hire me or someone with similar qualifications to solve all the
  • It is best if the translator to be a native speaker of the target language. So you really need to have E->J work done by a native Japanese speaker. You're the wrong man for the job.
    Just think about it. How many times have you read crappy instruction manuals written in incomprehensible English that were obviously produced by non-native speakers of English? You're about to produce something roughly equivalent. The world has enough sucky incomprehensible things, even in Japan, do you want to create more of
  • It isn't really clear to me from your post what the task is. Is it to translate the code itself, so that a programmer knowing only English can understand the variable names and so forth, or is it to localize the interface, that is, provide English messages and labels, use American format dates, and so forth? The best thing that you can do is get a look at the code long before you leave for Japan. In my experience (which is mostly of research code written by electrical engineers and computer scientists) th

  • I think an easy way to get a Japanese perspective would be to ask this same question on Slashdot Japan [slashdot.jp]. Then at least you can compare expectations.
  • It may not be so bad.
    The program I work on supports English, German, French, Italian, and Spanish.
    If the programmers did it right to start with it could be as simple as editing a few resource files. Our app is set up this way yes it can be done for some types of programs.
    From your description I am guessing that things like phone numbers and street addresses are not an issue.
    The only really tricky part is will you have to deal with unit conversions I.E. metric vs US. And or date issues DD/MM/YY vs MM/DD/YY.
  • Part zero - Do the metric conversion. All measurements and engineering units should be displayed in metric. The rest of the world just doesn't do as well with rods per hogshead.

    Part one - Get rid of all hardcoded strings. Anytime you need to display a string, read it from a config file (numbers excepted of course). This part can be done in english. Make sure that the config file, and the utility to read it, understands unicode.

    An easy way to make sure that you get every string is to (temporariliy) ta
  • Michael Kaplan [msdn.com] is Microsoft's Unicode expert. You might want to read through his blog's archives.

    I mean, if the project is VB6, there's a good bet that it's using multi-byte characters instead of unicode, but maybe reading his blogs will help give you an idea of what you're facing and what to look for...

    Man, I really hope you give us a slashback of how it went after you get back...
  • 1. Get some good business cards and a silver or aluminum business card holder to put them in. Present them held with two hands as if presenting a letter sealed by wax. When someone gives you one, treat it as a ceremony and place it reverently in the holder.

    2. Hold your arms close to your body - do this all the time as if at attention.

    3. YES does not mean yes. It means maybe. People will say Yes and not do what you think they agreed to a lot.

    4. Food is very very important there - if someone invites yo
  • All is not lost. You can't speak Japanese but fortunately you have two bilingual assistants. Both of them are going to be useful.

    Stick to coding and leave the translation to the translators. However make their job easier by prioritising what needs to be translated first ie. GUI. Also make sure the template that needs to be translated is kept concise, neat, and easily understood.

    With regards to above, expect your translators to really screw up your source code. So be ready for some emergency debuggi
  • Notes on Japanese Localization. ... For the localization supplier, a methodical approach and local help are indispensable, and it is necessary to establish ... Not Japanese Localization on snowboard [sportinworld.com] and jewelry [jewelrydiamondgift.com]
  • Been There Done That (Score:3, Informative)

    by Space Cow (93479) on Saturday March 26, 2005 @04:35PM (#12055779)
    I read, write, and speak Japanese daily in my full-time job. Before that I free-lanced doing translation of both documents and software.

    There were a number of useful comments posted in response to your question, but there is an important point most of them leave out (speaking from experience here). VB and VBA applications written in Japanese tend to have UI objects with Japanese names. There may be hundreds of widgets with the default name of CheckBox1, etc, but in Japanese. You must change the Japanese object names for the application to run on English language machines. Tracking these down and correcting both the object name and all ocurrences in the source is not trivial and no fun. I cannot recall if VB6 has an autochange feature (newer VBA has this) that changes source code references for objects when the object name changes, but you should look into this immediately.

    For one enormous MS Access VBA localization project, I ended up writing scripts that scoured through the object collections and changed the names for me...this was significantly faster than clicking through the VBA UI and manually making the changes. If you have experience with VB, you should consider creating tools like this to speed up the process. A toolset like this will be very helpful for this project and future ones they will likely throw at you if you are sucessful.

    To be honest, it is going to be much more difficult for you since I read in your followup that you don't read Japanese. I believe your company is making a mistake and should consider hiring a contractor with appropriate experience and skills to do this. I am willing to go into more detail on some of my experiences via email. If you are interested, contact me at spacecow10 at hotmail.com. Make your subject easy to pick out from spam since I will have to find you in the Junk Mail folder.

    Good luck.

  • I work as a sysadmin in a freakin Japanese goverment institute with about 4000+ machines in there. I have to manage not only the systems analysis, but build new systems, upgrade and patch machines, document them, translate announcements to English, handle system events, and write work reports to superiors. And I have to do all that alone, on their schedule. Basically they replaced a guy with 17 years of experience (who couldn't hack it anymore) with me with only 2 and a bit years experience. Somehow I am co
  • Yes, it's a doomed project. But look at it this way, you'll get to spend a month or so in Japan (one of the most expensive places on Earth) with all of it being paid for by someone else. My advice is to leave work early on Fridays, buy a rail pass, and go see the sights. Just be ready to jump ship the moment they bring you back to the US. This will count as "burning your bridges", career-wise, but is justified, based on what they want you to do. Chip H.
  • Better look at these:
    $ man {find, sed, grep, mv, cp, diff}

  • I recently had to facilitate translation of our (C++) instrumentation software into 5(!) different languages, including simplified Chinese. Luckily, almost all the strings in the project were in resources. Unluckily, there was no unicode support.

    Surprisingly, it didn't take that long to write in unicode support and fix up the few remaining string literals. One thing is paramount - make sure that the code is separated from the language specific stuff. Do Not Fork! You should be able to make changes to t

  • Design patterns are universal.

    If you are working with OO, create a singleton adapter called configuration manager.

    Configuration options should be decorators.

    Managed data, let's say Multiple laguage strings must be in a separate database (or text file, suit yourself) from the system.

    Make your code enter in the japanese codebase.
    This is the only way you are getting support for the rest of the team.

    And remember: Japanese is just another language. There is nothing magical in their alphabet - it is just inc

The biggest mistake you can make is to believe that you are working for someone else.

Working...