Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Internationalizing Strings

 
Kaydell Leavitt
Ranch Hand
Posts: 689
Eclipse IDE Firefox Browser Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In my previous life as an object-oriented Pascal programmer for the Macintosh, we learned to internationalize by using full sentences like: "Sorry, you cannot ^1 because ^2". We learned not to use String concatenation, but to use parameter substitution instead. One problem that we solved is that different languages can have different word orders. String concatenation assumes a particular language's word order, whereas parameter substitution works for languages with a different word order.

In Pascal, the code looked like:

string2 := Param4(string1,param1,param2,param3);

In Java should I just use: String.replace(String,String) and call String.replace() once for each parameter?

Is there an easy way to do this with regular expressions or with the Pattern class? With Java 5.0, I could write my own function using varargs to take any number of parameters.

In Unicode is there a better character to indicate parameter substitution than the caret "^"?

-- Kaydell
 
Jim Yingst
Wanderer
Sheriff
Posts: 18671
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you use JDK 5 you can use format strings (e.g. the format() methods added to PrintWriter) to do this, along with a many other features. Or in JDK 1.3 or 1.4, you can use java.text.MessageFormat instead.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic