--- Log opened Fri Nov 11 00:00:30 2005 00:09 >> SignOff: adamhill_work (Remote closed the connection) [#punt-dev] 00:40 >> SignOff: _dreaminofjeanni (Read error: 104 (Connection reset by peer)) [#punt-dev] 00:40 >> #punt-dev JOIN _dreaminofjeanni (i=adamhill@ppp-70-242-26-241.dsl.hstntx.swbell.net) 00:42 >> _dreaminofjeanni is now known as adamhill 00:45 >> dpatton is now known as dpatton_away 02:04 >> SignOff: adamhill (" HydraIRC -> http://www.hydrairc.com <- IRC with a difference") [#punt-dev] 02:12 >> #punt-dev JOIN adamhill (i=adamhill@ppp-70-242-26-241.dsl.hstntx.swbell.net) 06:45 >> #punt-dev JOIN [1]adamhill (i=adamhill@ppp-70-242-26-241.dsl.hstntx.swbell.net) 06:55 >> #punt-dev JOIN mazop (n=mazop@212.183.13.231) 06:58 >> SignOff: adamhill (Read error: 110 (Connection timed out)) [#punt-dev] 06:58 >> [1]adamhill is now known as adamhill 07:24 >> dpatton_away is now known as dpatton 07:42 >> dpatton is now known as dpatton_away 07:47 >> SignOff: mazop (Read error: 104 (Connection reset by peer)) [#punt-dev] 08:02 >> #punt-dev JOIN mazop (n=mazop@212.183.13.231) 08:38 >> SignOff: adamhill (Read error: 104 (Connection reset by peer)) [#punt-dev] 08:38 >> #punt-dev JOIN adamhill (i=adamhill@ppp-70-242-26-241.dsl.hstntx.swbell.net) 11:22 >> #punt-dev PART mazop (n=mazop@212.183.13.231) () 12:25 >> SignOff: adamhill (Read error: 104 (Connection reset by peer)) [#punt-dev] 12:25 >> #punt-dev JOIN adamhill (i=adamhill@ppp-70-242-26-241.dsl.hstntx.swbell.net) 14:30 >> #punt-dev JOIN adamhill_work (n=86a3fd7e@70.84.174.194) 14:48 >> SignOff: adamhill_work (Remote closed the connection) [#punt-dev] 14:58 >> #punt-dev JOIN adamhill_work (n=86a3fd7f@70.84.174.194) 15:23 >> dpatton_away is now known as dpatton 16:05 >> #punt-dev JOIN [1]adamhill (i=adamhill@ppp-70-242-26-241.dsl.hstntx.swbell.net) 16:17 >> SignOff: adamhill (Read error: 110 (Connection timed out)) [#punt-dev] 16:17 >> [1]adamhill is now known as adamhill 17:58 < dpatton> In 1 hour there will be a discussion in #punt-dev regarding some issues with using GNU gettext in Punt. 17:58 < dpatton> This will include adding support for providing translations for Plugins and Addons. 17:58 < dpatton> Everyone is welcome to attend :-) 18:00 >> dpatton is now known as dpatton_away 18:17 >> #punt-dev JOIN Bull_[UK] (i=MeGA@worldwind/user/bull) 18:31 >> dpatton_away is now known as dpatton 18:52 >> #punt-dev JOIN mazop (n=mazop@dsl-85-98.utaonline.at) 18:57 < dpatton> Hi everyone - it's time for the "gettext in Punt" meeting :-) 18:57 < dpatton> I'll start by pasting in some text that gives a bit of background... 18:57 < mazop> he 18:57 < mazop> hi dave... 18:58 < mashi> hi! 18:58 < mazop> hey mashi...coding and checkins ike in olddays ;) 18:58 < dpatton> well, at least 3 people at the "meeting" ;-) 18:58 < Bull_[UK]> any one bring pizza? 18:58 < dpatton> anyone else want to say hello before we start? 18:59 < dpatton> hi Bull_[UK] ! 18:59 < Bull_[UK]> hi 18:59 < mazop> mashi: btw....i am not sure about, but is punt defaults set to 'convert to dds' ? 18:59 < Bull_[UK]> ;) 18:59 < mazop> if... maybe think about that ;) 18:59 < dpatton> mazop: shhh - that's not on the meeting agenda! ;-) 18:59 < mazop> hey bull :) 18:59 < Bull_[UK]> hi mazop 19:00 < ShockFire> hehe 19:00 * mazop shouts his mouth ...... 19:00 < dpatton> hi Tim 19:00 < adamhill_work> hi 19:00 >> #punt-dev JOIN hobu_work (n=chatzill@hobu.cssm.iastate.edu) 19:00 < dpatton> hi Adam 19:00 < ShockFire> hey dave 19:00 < dpatton> hi "hobu" ;-) 19:00 < mazop> hi @ everyone ! 19:00 < ShockFire> I think I'll translate Punt to dutch this weekend, or otherwise somewhere next week 19:00 * mazop otherwis we need hoursjust for greetings ;) 19:01 < Bull_[UK]> lol more of you turned up than fr ww meetings 19:01 < dpatton> ShockFire: ok, cool - the info you need is on the For Translators webpage: http://punt.sourceforge.net/4translators.html 19:01 < ShockFire> yep, I know 19:01 * mazop didnt know about punt-meeting.......hmmm... 19:02 < ShockFire> I don't think I've ever missed a WW/Punt meeting :) 19:02 < dpatton> OK, lets start - I'll paste in a bit of background info.... 19:02 < dpatton> Some notes on how GNU gettext is used in Punt. 19:02 < dpatton> gettext 0.14.5 manual: http://punt.sourceforge.net/gettext/gettext_toc.html 19:02 < Bull_[UK]> nope but you never speak 19:02 < dpatton> There are two parts to gettext - the runtime, and the tools. 19:02 < dpatton> We use the tools to process POT, PO, and DLL files. 19:02 < dpatton> The gettext runtime take a string, and returns a "translated string". 19:02 < dpatton> The gettext runtine is used by incorporating 'gettext for C#' into the Punt project, 19:02 < dpatton> so we have the opportunity to alter/enhance the gettext code. 19:02 < dpatton> In 'traditional'(i.e. C programs on Unix) usage of gettext, the name and location 19:02 < dpatton> of the file that gettext uses to obtain the translated string is determined by 19:02 < dpatton> both the values of environment variables, and by specifying a "domain". 19:02 < dpatton> The 'gettext for C#' implementation uses the thread's CurrentUICulture, the 19:02 < dpatton> 'basename' used when an object of type GNU.Gettext.GettextResourceManager 19:03 < dpatton> is created, and some hardcoding of the path, relative to the Punt executable. 19:03 < dpatton> The first time that a string is passed to gettext, it looks for the resources 19:03 < dpatton> file(a DLL) for the CurrentUICulture. If that's not found, it will look for 19:03 < dpatton> the resources file for the parent of the CurrentUICulture. If that isn't found, 19:03 < dpatton> then the original string is returned(therefore English is always supported, 19:03 < dpatton> even without any language DLL files). For example, if CurrentUICulture is 19:03 < dpatton> de-AT (German(Austria)) ad that resource file isn't found, then it will 19:03 < dpatton> look for the de (German) resource file. 19:03 < dpatton> The contents of resource files are loaded into hashtables, so the penalty 19:03 < dpatton> of looking for the files is confined to the initial lookups. 19:03 < dpatton> OK, that's the "background" 19:03 < ShockFire> bull: hehe, yeah 19:03 < ShockFire> for those who didn't pay attention I will quote dave: "stuff." 19:04 < Bull_[UK]> hehe 19:04 < dpatton> The first "problem" is 'short or ambiguous strings' 19:05 < dpatton> for example, in Punt, on the View menu, you can select Camera, and then select from Normal or "Free Look" camera 19:05 < dpatton> "Normal" is marked as a translatable string in the Punt code. 19:06 < dpatton> If "Normal" was to also be used elsewhere, then there would only be one entry for "Normal" in the PO file, which might cause problems for translators, if the two usages had different meanings and therefore had different translations 19:07 < dpatton> The gettext manual suggests using longer strings in the sourcecode: http://punt.sourceforge.net/gettext/gettext_10.html#SEC170 19:08 < dpatton> basically, "View|Camera|Normal", and having a function to strip out the "prefix" 19:08 < dpatton> My question - anyone see any issues with adopting that approach? Can anyone see where the pipe symbol(|) would be used in 'translatable text'? 19:09 < ShockFire> does that string show up as something to translate, or just the word "Normal"? 19:10 < adamhill_work> there is no way to annotate the PO file ("this 'Normal' means...") to provide context? 19:10 < dpatton> If we used "View|Camera|Normal" in the Punt source, it would show up for the translator as "View|Camera|Normal", however, they could just translate "Normal" 19:11 < dpatton> yes, comments can be placed in the Punt source, which then will show up in the PO file, and on the poEdit comments portion of the screen 19:12 < ShockFire> I think it would work, though I consider it a hack 19:12 < dpatton> however, that doesn't solve the issue of there only being a single instance of "Normal", even if there are multiple instances within the Punt source 19:13 < dpatton> the "marked text"(i.e. a string like "Normal") in the Punt source becomes the key in the gettext hashtable, so two instances of the same string, which may need to have two different translations, need to use two different "marked text strings" 19:14 < mashi> do we have a case where the translation of one string becomes 2 different strings in the translated string? 19:14 < mashi> (needs to) 19:15 < ShockFire> you mean as in: 19:15 < dpatton> sure - the string "M" - in English, it stands for both Months and Minutes, but won't necessarily work in other languages 19:15 < ShockFire> 'kom' kan be both 'bowl' and 'come' 19:16 < dpatton> the most obvious problem comes from 'short strings' such as things like menu items, button text, etc. 19:16 >> #punt-dev JOIN T_Servo_Work (n=c6d0fb17@70.84.174.194) 19:17 < dpatton> so, any more on this topic before moving on? 19:17 < dpatton> ok :-) 19:18 < dpatton> The bigger question is - how to implement support for internationalization of Plugins, Addons, and XML files 19:20 < dpatton> For Punt, we use a single "domain"(gettext terminology" - "Punt" - so that we end up with all translatable Punt strings in a single PO file, and therefore one DLL file(Punt.resources.dll) per language 19:21 >> #punt-dev JOIN Llynix (n=Miranda@worldwind/developer/llynix) 19:21 < dpatton> For Plugins, we would have to allow plugins to be able to specify the domain to be used(e.g. the plugin name), and they would have to follow the Punt/gettext method of dealing with the multiple language DLLs 19:22 < dpatton> The only way I can see that working is for each plugin to have it's own domain, in order to avoid conflicts 19:23 < dpatton> to me, that means enforcing that language DLLs for plugins have to be in subdirectories of the Plugin's directory 19:23 < dpatton> Anyone see any problems with that approach? 19:23 < Llynix> I thought dll's had to be in the same directory? 19:24 * Llynix wanted all the ww dll's in a system directory 19:24 < dpatton> Llynix: we are talking about "language DLLs" - they can be loaded from anywhere 19:26 < dpatton> I guess everyone agrees(or is sleeping ;-) 19:26 < mashi> yes, dlls can be loaded from anywhere 19:27 * mazop wakes up - and agrees ;) 19:27 < mashi> my input is try and keep the number of directories to a minimum? Have you considered putting the language code in the filename? 19:27 < dpatton> Punt allows the user to configure the location of the Plugins directory, and the expectation is that each Plugin has it's own directory 19:28 < dpatton> where there could be problems is with plugins that aren't installed that way - i.e. installed directly into the Plugins directory 19:29 < T_Servo_Work> they only need their own directoy if it was more than 1 file 19:29 * T_Servo_Work doesn;t see a need for a folder for 1 file 19:30 < mashi> earthquake.dll, earthquake-en-AU.dll, earthquake-de.dll ? 19:30 < dpatton> I'm reluctant to change how gettext is setup - to have language DLLs located in directories named according the the language(Culture) - because gettext is a well-established way of doing globalization 19:31 < dpatton> T_Servo_Work: if a Plugin was translated into 5 languages, that would be 5 additional files 19:31 < T_Servo_Work> Ok, fine.. but you have to get the person to want to do that 19:32 < mashi> it seems kind of compllicated to have to create a directory for each of the translations containing only 1 file each? 19:33 < T_Servo_Work> Um... 19:33 < adamhill_work> hmmmm has any other project had to deal with this? 19:33 < dpatton> that's how it's done for hundreds of programs that use gettext 19:33 < T_Servo_Work> from the little I have cought.. your making this more clumbersom and confusing than it was before 19:34 < dpatton> there is another possibility, which is to use the directory structure Punt uses - problem there is that could lead to "collisions", if two plugins specified the same "domain" 19:34 < dpatton> T_Servo_Work: "before"? 19:35 < T_Servo_Work> ok, currently in WW 19:35 < adamhill_work> are there any plugins with the same names? 19:35 < mazop> ...not as i know... 19:35 < adamhill_work> the closest we have come to in WW land is 'OnEarth' and 'OneEarth' 19:36 < adamhill_work> what about another 'declaration' in the comments up top and make the PluginEngine declare the domain some how 19:37 < adamhill_work> *comments in the Plugin 19:37 < adamhill_work> same for the add-on loader 19:37 < dpatton> so for the domain, do we use the name of the plugin file - myplugin.cs = domain of "myplugin" - or allow the plugin author to specify the domain in her code? 19:38 < adamhill_work> or make them decalre it and make sure they agree 19:39 < dpatton> hmmm - I guess the plugin loaded in effect enforces unique plugin names, if you include the directory name(s), so the domain could be enfored to be 'path to plugin' + plugin.cs filename 19:39 < dpatton> plugin loader in effect... 19:41 < dpatton> ...\Plugins\Fred\\Plugin1\myplugin.cs = domain of "Fred-Plugin1-myplugin"? 19:42 < dpatton> then the German language file for that plugin is: ...\Punt Program Directory\languages\de\Fred-Plugin1-myplugin.resources.dll 19:43 < dpatton> Two problems I see with that approach: 19:44 < dpatton> 1) it means that some of the files associated with a plugin are no longer in the same location as "the rest of that plugin's files" 19:45 < dpatton> 2) Users may run into problems, if they have access to install Plugins, but don't have write access to the location of the Punt executable 19:45 < dpatton> To extend the discussion, we also need an approach that will work for Addons and XML files 19:46 < dpatton> you could certainly end up with naming collisions between Plugins and Addons and XML(e.g. layer) files 19:46 < mashi> for source code snippets it would perhaps also be nice if the string table could be a part of the source file? 19:46 >> SignOff: T_Servo_Work ("heading home") [#punt-dev] 19:47 < dpatton> mashi: I disagree - that breaks the whole notion of using gettext, and readily available tools for translators such as poEdit 19:48 * dpatton unless I didn't understand what you were saying ;-) 19:50 < mashi> you could still use poedit, and then merge it all into a single file for distribution. 1 file = easy distribution 19:51 < mashi> plugins will often have < 10 strings, but I understand what you are saying ;) 19:51 < dpatton> so, to sum up so far - Punt enforces the domain name based on the path+name of the Plugin/Addon/XML file, but not everyone agrees with where the language DLLs should be located? 19:51 < dpatton> not sure what you mean by "could still use poedit, and then merge it all into a single file"? 19:53 < dpatton> do you mean having multiple translations in one file? So a plugin with 10 translatable strings and two translations would have 20 translated strings in one file? 19:54 < mashi> yes, here's the contents of your australian translation for punt: 19:54 < mashi> Hashtable hashtable1 = base.Table; 19:54 < mashi> hashtable1.Add("Welcome", "G'day Mate"); 19:54 < mashi> this could be added to the source, I know it violates some principles ;) 19:56 < dpatton> I don't see what advantage that provides - it certainly won't work with gettext, and therefore with Punt's use of gettext 19:56 < mashi> sorry.. go back to the agenda 19:57 < dpatton> to me, all that sounds like is a plugin author providing their own method of supporting multiple languages in their plugin(for which they would have to provide their own interface to the user to make their selection) 19:58 < mashi> dpatton> The 'gettext for C#' implementation uses the thread's CurrentUICulture, 19:59 < dpatton> What it does raise is a good point - there needs to be a way for plugin authors to know what language a user has selected in Punt, in case they DO want to implement their own mechanism of multi-language support 19:59 < dpatton> I think we can rely on CurrentUICulture, and perhaps raising an event if the language is changed 20:00 >> SignOff: adamhill_work (Remote closed the connection) [#punt-dev] 20:00 < dpatton> ANyway, one more "agenda item"(I'm sure most people have 'left' already) 20:00 < dpatton> see- there goes Adam :-) 20:01 < dpatton> How do we deal with being able to translate the information that is in things like property attributes? 20:02 < dpatton> For example: 20:02 < dpatton> [Browsable(true),Category("General")] 20:02 < dpatton> [Description("The number of times the program has been started since installation.")] 20:02 < dpatton> public int ApplicationStartCount 20:03 < dpatton> we want to be able to allow translators to provide translations for "General" and "The number of times the program has been started since installation." 20:05 < mashi> I think it might be possible to tweak ReadableNamesProxyDescriptor.cs http://10.0.0.254/cgi-bin/viewcvs.cgi/Punt/PluginSDK/Configuration/Browsing/ReadableNamesProxyDescriptor.cs?rev=1.2&view=markup 20:05 < mashi> I'm more worried about the xml files? 20:06 < dpatton> I'm not sure, but xgettext(used to extract strings from the source) allows for specification for multiple "keywords" that indicate text to be extracted, so it may be possible to use "[Description" as a keyword, but that doesn't help because there's nothing in the code to cause Punt to try and look for the extract string(or it's translation) 20:08 < dpatton> I don't see the XML files being as much of a problem. 20:10 < dpatton> Each XML element that is in an XML, for which we would want to enable translations, somehow gets assigned as "the text property" of some object. We use I18N._() for those assignments, so that the gettext runtime will do a lookup to find the translated value(if any) of the string being assigned. 20:11 < dpatton> The difference is, instead of using xgettext to extract the strings from C# sourcecode, we will need to have a way to extract the translatable strings from the XML files. 20:12 < mashi> do you see 1 language.dll per translation and xml? 20:13 < mashi> or do they share punt's dlls? 20:14 < dpatton> we could do that with an XSLT transform - maybe a "Punt utility program" that takes 'a bunch of XML files', builds the transform output in memory, then writes it out to a file 'properly marked for extraction by xgettext', so that xgettext can produce a proper POT file? 20:16 < dpatton> well, by "XML files" we mean things like \Config\Earth\@Images.xml etc? 20:16 < mashi> yes 20:17 < dpatton> I think the only way to "cleanly" avoid namespace collisions between various XML files, Addons, and Plugins is to have the language DLLs be located in "\languages" subdirectories, and within \languages nave one directory for each Culture 20:19 < dpatton> so the Norwegian translation for strings in \Config\Earth\@Images.xml would be in \Config\Earth\languages\de\@Images.xml.resources.dll 20:20 < mashi> I still prefer \Config\Earth\@Images.de.dll (doesn't cause a collision either) 20:20 < dpatton> that approach will certainly work, but, there may be lots of small files, with few strings in each file 20:22 < mashi> on the plus side it will be easier to handle? 20:23 < dpatton> instead, we could have \Config\Earth\languages\de\xml.resources.dll where something like "Blue Marble Base (2048x1024)" in @Images.xml gets extracted as "@Images.xml|Blue Marble Base (2048x1024)", and then all XML strings go into one xml.pot file 20:24 * dpatton this is why the first issue I brought up was the idea of using the pipe character in conjunction with short strings - I knew it might be applicable "later on" ;-) 20:24 < dpatton> we could take a similar approach for Plugins and Addons 20:26 < mashi> please let's not have many languages\de directories? ;) 20:26 < dpatton> The downside is that if things are aggregated together, then every time there's a new Plugin/Addon/XML file, someone has to extract it's strings, and merge them into the existing POT file 20:27 < mashi> I guess we'll need a tool for that? 20:28 < dpatton> I think we will have to allow people to configure the location of the \languages directories, because sysadmins may not want them located where Punt.exe is located 20:28 < mashi> rather than piping all strings, maybe we could just do it on those strings that actually need it? 20:29 < dpatton> problem is, for XML/Addons/Plugins, you have no way to know in advance "those strings that actually need it" - someone can create a new XML/Addon/Plugin tomorrow that uses an existing string, in a different contect that requires a different translation 20:30 < dpatton> there are only two ways around that - separate files for each XML/Addon/Plugin, or fully qualified names in common files 20:32 < dpatton> In the Punt sourcecode, I'm only suggesting piping some of the strings, because in that case there is a 'controlled universe' of potential strings 20:33 < dpatton> mashi: don't think anyone else is "here", so I'll ask you ;-) 20:34 < mashi> ok.. how about starting the string with a special character? (to avoid having to search all strings for containing "|" on lookup? 20:35 < dpatton> you want to see something like ...\de\Punt.resources.dll ...\de\Addons.resources.dll ...\de\Plugins.resources.dll ...\de\XML.resources.dll ? 20:35 < Llynix> I'm here 20:35 < Llynix> I'm just not paying attention :) 20:35 < dpatton> so there is only one directory that contains German language DLLs? 20:36 < mashi> very minor issue, just want the file system to be as clean as possible (by removing "\" from paths when there's only going to be 1 file in each directory) 20:36 < Llynix> just an idea to throw out.. but a lot of language problems could be handled via the installer.. ie replace default xml files with a localized version, install dlls etc. 20:37 < dpatton> "starting the string with a special character" - why? if we use | in the strings, you only need to search backward from the end of the string to the first | character to find the 'true' string to be returned 20:38 < mashi> yes, but you have to do this for every lookup of every string in the program.. ;) 20:39 < mashi> = it will be costly to lookup strings inside the render loop 20:39 < dpatton> Llynix: that's not practical, because in Punt people can select the language, and then text from XML files should also change - picture Punt on a PC in a European school, with students using different languages 20:40 < dpatton> mashi: yes, I'm also wondering about the "cost" of using | 20:40 < Llynix> hrmm 20:40 * Llynix doesn't see why it doesn't apply with multiple languages 20:41 < Llynix> what your planning on doing.. is providing an 'override' for the xml names? 20:42 < dpatton> one option is to do this - use | in the marked strings, but instruct translators to only translate "the last part", and don't do any "lookup to see if there is a | character" 20:42 < mashi> and if there is no translation? 20:42 < mashi> available 20:43 < dpatton> the downside to that is that it means we have to have an English DLL file, because if a translation isn't found, the "original string" is returned, which without the English DLL, would contain the | character(s) 20:44 < dpatton> we could have conditional code to only do the | lookup if there is no translation found, however, to cover all the bases 20:45 < dpatton> Llynix: we aren't talking about 'overriding' the names of the XML files, but rather some of the text within them, such as layer names 20:45 < Llynix> that's what I was refering to 20:46 * Llynix would rather see localized xml sets 20:46 < dpatton> basically looking at being able to have "every peice of text" that a user sees be in the language of their choice(assuming the translations have been done) 20:46 < Llynix> especially when you talk about something like localizing placenames 20:47 < dpatton> so you mean something like de.@Images.xml for the "German @Images.xml file"? 20:48 * Llynix nods 20:50 < dpatton> it's a possible approach - it does mean that translators end up dealing with editing, in this case, XML files, rather than using established tools such as poEdit, and it means that the advantages of using the gettext tools for management of things like mergind existing translations with new text requireing translation are lost 20:50 < dpatton> merging existing 20:53 < dpatton> The simpler we can keep things for translators(all strings in one file, using existing cross-platform tools, etc), the better - more change of then being willing to do a translation, and then to be willing to keep doing updates, as things change over time 20:54 < mashi> keep all strings in 1 file (including plugins+addons...)? 20:55 < dpatton> I'm thinking I'll look into using 4 files per language: Punt.resources.dll, Plugins.resources.dll, Addons.resources.dll, and XML.resources.dll 20:56 < Llynix> for translators I'd just send them a text file full of english strings and have them send you one back in their language :) 20:56 < dpatton> translators using poEdit can setup "Translation Memory databases", which makes translating the "same string" more than once easier 20:57 < dpatton> Llynix: not going to do that - it's way too much work - there's a reason people spent years developing/refining 'standard tools' such as gettext ;-) 20:58 * Llynix shrugs 20:58 < Llynix> people know how to handle text 20:59 < dpatton> trust me - I've been the one doing the "management" of dealing with the Punt language files so far, and for only two languages, and you really do need a set of tools to deal with managing things like mergeing new text with existing translations, etc :-) 21:01 < mashi> screenshot: http://www.poedit.org/screenshots/snapshot1.png 21:02 < dpatton> Anyway, thanks for everyone's input - talking about the possibilities has helped to clarify a few things. 21:02 < dpatton> Next step is to look at doing some implementations - it's more important to get something working, even if it's not "perfect", than having nothing at all :-) 21:03 < mashi> llynix has a point about the installer. if you need french and german on the same PC, installing the app twice to different locations would also work 21:03 < Llynix> or you could just select both french and german in the installer 21:04 < mashi> but of course the instant selection feature is more sexy 21:04 < Llynix> there is no reason for say me.. to install any other language other then english 21:04 < Llynix> I mean.. I know a little esperanto.. but I don't see the value of it 21:04 < mashi> ahhh.. of course 21:06 < mashi> so in the installer you could pick which languages to install and in the program you could choose among those? 21:06 < dpatton> Llynix: by default Punt always support English - once things are further along, we'll have basically three options for people - no language files(i.e. only English), a 'pack' of language files, or just a single language file 21:07 < dpatton> that applies to both the installer, and for downloads 21:08 < dpatton> mashi: installing Punt twice to different locations, of itself, won't work, because they would share the same Punt.xml settings file 21:09 < mashi> not if the users were different? 21:09 < dpatton> you may as well just install it once, setup two different directories, and have two different shortcuts to start Punt 21:09 < dpatton> true - I thought you menat for the same user 21:11 >> #punt-dev JOIN adamhill_work (n=86a3fd7e@70.84.174.194) 21:11 < mashi> best thing to do is probably for you to go ahead and implement it.. afterwards I'm sure we'll have a lot more opinions about it ;) 21:11 * Bull_[UK] drags himself away from the excitement and watch smallville ;) 21:12 < dpatton> ok, now that Bull is watching TV, and Adam is back, we can declare the meeting officially over ;-) 21:15 < mashi> for plugins namespace + plugin classname could also be used as the "unique key" 21:15 < adamhill_work> sorry I had to install 2005 21:20 < dpatton> For most people, 2005 installed itself, at midnight on January 1 ;-) 21:20 < adamhill_work> mashi do you actually need proj.4 as a .NET assembly for something or were you just asking? I compiled it, but havent had a chance to see what kind of DLL came out (in vs2005) 21:21 < dpatton> mashi: you mean use the classname to avoid conflicts within the plugin's own namespace? we haven't run into that within Punt 21:29 < mashi> adamhill_work: don't exactly need it, I was just wishing.. let me know if you manage to make an assembly out of it? 21:30 < mashi> yes, namespace + classname will always be unique (for loaded classes/plugins) or the compiler will complain? 21:36 < adamhill_work> mashi: that is correct AFAIK 21:37 < adamhill_work> and I will let you know 21:37 < dpatton> adamhill_work: what is it you are doing with proj4 - using VS2005 to compile the C code to a Windows DLL? 21:39 < adamhill_work> correct, suppoosedly in VC2005 you can just compile a C++ DLL project and have a managed DLL come out the other end, in 2003 there was some combination of flags you have to throw 21:41 < adamhill_work> vs2005 had some complaints about "str being unsafe please consider using " so I dont know if it produced a mananged or native DLL (i fell asleep before checking) 21:46 < dpatton> ok, just wondering - at some point I'd like to be able to compile GNU gettext tools to have a copy that runs on Windows - I may have to do that via MingGW + Mono however 21:49 * mazop tired -> bed -> dreams ;) 21:54 >> #punt-dev PART mazop (n=mazop@dsl-85-98.utaonline.at) () 22:00 >> #punt-dev PART Bull_[UK] (i=MeGA@worldwind/user/bull) () 22:04 < adamhill_work> i compiled proj.4 with gcc in Cygwin on Windows 23:04 >> SignOff: adamhill_work (Remote closed the connection) [#punt-dev] --- Log closed Sat Nov 12 00:00:55 2005