{"thread":{"id":"9123","subject":"Re: [PATCH] Internationalization of git-gui","startedAt":"2007-07-20T18:34:50Z","lastAt":"2007-07-20T21:40:27Z","messageCount":2,"participants":["Brett Schwarz","Christian Stimming"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"47982","messageId":"772058.65660.qm@web38907.mail.mud.yahoo.com","threadId":"9123","inReplyTo":null,"subject":"Re: [PATCH] Internationalization of git-gui","fromName":"Brett Schwarz","fromEmail":"brett_schwarz@yahoo.com","sentAt":"2007-07-20T18:34:50Z","receivedAt":"2007-07-20T18:34:50Z","isPatch":true,"sender":{"key":"brett_schwarz@yahoo.com","avatar":null},"body":"After the glossary of terms has been create, it is easy to create the catalog file (assuming we use Tcl's standard mechanism). Each locale should have it's own file, named <locale_name>.msg (for example, es.msg for spanish). Inside that file, you just create entries for each glossary term (the below assumes that the msgcat namespace was imported):\n\n  mcset es Hello Hola\n  mcset es \"Hello %s\" \"Hola %s\"\n    .\n    .\n    .\n\nYou can find more out here if you like http://wiki.tcl.tk/msgcat\n\nHTH,\n    --brett\n\n\n----- Original Message ----\nFrom: Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com>\nTo: Shawn O. Pearce <spearce@spearce.org>\nCc: Johannes Schindelin <Johannes.Schindelin@gmx.de>; Christian Stimming <stimming@tuhh.de>; git@vger.kernel.org\nSent: Friday, July 20, 2007 10:32:24 AM\nSubject: Re: [PATCH] Internationalization of git-gui\n\nOn 7/20/07, Shawn O. Pearce <spearce@spearce.org> wrote:\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> > On Thu, 19 Jul 2007, Christian Stimming wrote:\n> >\n> > > Does this implementation look okay?\n> >\n> > This is valuable work, but unfortunately, it does not follow the\n> > recommendation in Documentation/SubmittingPatches at all.\n> >\n> > For starters, please send the patches inlined, one per mail.  And you\n> > might want to Cc the maintainer of git-gui (Shawn Pearce), too...\n>\n> I agree that internationalization of git-gui is worth doing.\n> I've thought about working on it, but haven't yet because nobody\n> else has seemed interested in having it done.  Apparently someone\n> is, so patches towards that end are most welcome.\n\nHi Shawn,\nI volunteer to translate all the git-gui messages in Italian.\n\nJust let me if you are interested and please give me an hint on how to\nproduce the translation so that you can incorporate it.\n\nThanks.\n\nRegards,\n\n-- \nPaolo\n\"Tutto cio' che merita di essere fatto,merita di essere fatto bene\"\nPhilip Stanhope IV conte di Chesterfield\n-\nTo unsubscribe from this list: send the line \"unsubscribe git\" in\nthe body of a message to majordomo@vger.kernel.org\nMore majordomo info at  http://vger.kernel.org/majordomo-info.html\n\n\n\n\n\n       \n____________________________________________________________________________________\nYahoo! oneSearch: Finally, mobile search \nthat gives answers, not web links. \nhttp://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC\n"},{"id":"47993","messageId":"200707202340.27496.stimming@tuhh.de","threadId":"9123","inReplyTo":"772058.65660.qm@web38907.mail.mud.yahoo.com","subject":"Re: [PATCH] Internationalization of git-gui","fromName":"Christian Stimming","fromEmail":"stimming@tuhh.de","sentAt":"2007-07-20T21:40:27Z","receivedAt":"2007-07-20T21:40:27Z","isPatch":true,"sender":{"key":"stimming@tuhh.de","avatar":"https://avatars.githubusercontent.com/u/227778?v=4"},"body":"Am Freitag, 20. Juli 2007 20:34 schrieb Brett Schwarz:\n> After the glossary of terms has been create, it is easy to create the\n> catalog file (assuming we use Tcl's standard mechanism). Each locale should\n> have it's own file, named <locale_name>.msg (for example, es.msg for\n> spanish). Inside that file, you just create entries for each glossary term\n> (the below assumes that the msgcat namespace was imported):\n>\n>   mcset es Hello Hola\n>   mcset es \"Hello %s\" \"Hola %s\"\n\nI beg your pardon, but I think you grossly misunderstood what I meant \nby \"glossary\". So before we end up in further confusion, let me clarify how \nthe general translation approach works. I'll use gettext wording because \nthat's what I know (from being the i18n guy in the gnucash project), but you \ncan easily insert any other wording you like here.\n\n#1 For the translation in general, there is the set of all user-visible \nstrings in the source language (here: english). In gettext terms this is \ncalled the \"PO template file\", git-gui.pot, also called the message template \nfile. This set of to-be-translated strings needs to be extracted from the \nsource code, which can be done by the xgettext program.\n\n#2 For each target language, there is a human-readable mapping file that maps \neach source string (english) into the target language. In gettext terms this \nis the \"PO file\", de.po and it.po and ja.po and whatnot, also called the \ntranslation file. This is the *only* file translators actually work with. \nGettext uses its PO file format here and a plethora of different tools exist \nto help translators editing these files. (Examples: emacs po-mode, \nKBabel, ...)\n\n#3 For each target language, the translation files are converted to a \n(potentially not human-readable) \"compiled\" mapping file, which is then read \nat program runtime and used for the actual translation. For the gettext po \nfile format, the msgfmt program can convert this to Tcl's .msg files.\n\nIf I understand correctly, your above suggestion implies that for Tcl msgcat, \nthe file in #2 and #3 are one and the same? In my opinion this might make \nsense if and only if that file format is supported by at least as many \ntranslation tools and offers as flexible translation updates as gettext's po \nfile format does. From my experience the po file format indeed offers a bunch \nof features that other translation file formats are missing but which are of \nsignificant help to the translator. That's why I would strongly suggest to do \nthe actual translation inside a po file, and have it converted to the msg \nfile afterwards. \n\nOn the other hand when I mentioned a \"glossary\", I was talking about a simple \ntext file that should collect the 15-20 most important single words from \nwithin the project. Those words usually show up in many different translation \nstrings, and as a translator you would easily lose track of which word you \ntranslated into which translation. (Example glossary terms: repository, \ncommit [both the verb and the noun, heh], fetch, pull, push.) That's why you \nwould first collect that glossary, then come up with a one-to-one translation \nfor each of the 20 words of the glossary, and *then* use that fixed wording \nthroughout all 200-500 message translations of the actual project. \n\nChristian\n"}]}