From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA14053; Thu, 18 Apr 2002 10:27:35 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id KAA14049 for ; Thu, 18 Apr 2002 10:27:34 +0200 (MET DST) Received: from verdot.inria.fr (verdot.inria.fr [128.93.11.7]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g3I8RYb15233 for ; Thu, 18 Apr 2002 10:27:34 +0200 (MET DST) Received: (from ddr@localhost) by verdot.inria.fr (8.9.3/8.9.3) id KAA15955 for caml-list@inria.fr; Thu, 18 Apr 2002 10:27:34 +0200 Date: Thu, 18 Apr 2002 10:27:34 +0200 From: Daniel de Rauglaudre To: caml-list@inria.fr Subject: Re: [Caml-list] Printf and i18n Message-ID: <20020418102734.H11492@verdot.inria.fr> References: <87ads2rzu8.fsf@marant.org> <20020418084753.A11351@verdot.inria.fr> <20020418100241.B2735@fr.thalesgroup.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <20020418100241.B2735@fr.thalesgroup.com>; from jerome.marant@fr.thalesgroup.com on Thu, Apr 18, 2002 at 10:02:42AM +0200 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hi, On Thu, Apr 18, 2002 at 10:02:42AM +0200, Jérôme Marant wrote: > By the way, in order to improve the localization process, we would need > to add the "argument reordering" feature to printf functions. > For instance, with: > > printf " %2$d %1$s" "foo" 1 I have something like that, indeed. It is also John Prevost's remark. For that I use the same system of lexicon, but I don't use printf, but just print_string for this kind of phrases. I have specific functions to translate that sort of cases. The string is scanned by an automat to build the resulting string. I have as example in my lexicon: %1 of %2 cs: %1 :g:%2 de: %1 von :d:%2 en: %2's %1 fr: %1 d[e']%2 it: %1 d[i']%2 pl: %1 :g:%2 There is also some system for elision (before vowels), in French and in Italian. In French, to translate "Adam's car", you have "la voiture d'Adam", not "la voiture de Adam". And there is a system of declination in German and Polish. The :g: introduces the genitive case for the next phrase. And I have a system to indicate genitive cases for the other terms. Another case, the way dates are printed: (date) cs: 1. %m %y/%d. %m %y/%m %y/%y de: 1. %m %y/%d. %m %y/%m %y/%y en: 1 %m %y/%d %m %y/%m %y/%y fr: 1er %m %y/%d %m %y/%m %y/%y it: 1o %m %y/%d %m %y/%m %y/%y pl: 1 %m %y/%d %m %y/%m %y/%y %m = month, %y = year %d = day The slash separate the cases: first in the month other in the month date when there is only month and year date when there is only year Of course, in all these examples, printf does not work: you have to apply print_string, or printf "%s" -- Daniel de RAUGLAUDRE daniel.de_rauglaudre@inria.fr http://cristal.inria.fr/~ddr/ ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners