From: Matthew M. <ma...@tu...> - 2004-07-01 16:05:51
|
A couple of developers have brought up dynamic language capabilities in 0.9.4. Right now, we have no plans to support it on release. This does not mean it never will, just not initially. Here is our position. If you want to run a site in two or more languages, you need to create a mirror site for each language. When you create an announcement, page, block, etc. on one site, you will need to log into the alternate site and enter it again in the new language. Our program will handle the translation of the static elements but you are responsible for the dynamic content. Here is the position of others as I understand it. They do not want to have separate sites. They want one site that translates not only the static content, but the dynamic content as well. If a user logs into the site, it should change both static and dynamic based on their browser preferences. I have problems with that. Say the one site could do that. What of the comments? Three languages on one site. Would it not be simpler to have a site dedicated to one language so all those who comment can understand one another? If your user interactivity is low (you gear your site less toward community and more toward information) then this may not be an issue. Let's look at some examples of how dynamic language could get done. The first example covers the process by which 0.9.3 worked. 0.9.3 created a table per dynamic language. The table contained the name of the table it was emulating and the id of the content. When the dyn() function was called, it would return the translated data in an column array. If the data was not yet translated, it would return NULL. Not a bad solution but it had some problems. One was that no one used it. Granted, it lacked documentation however it was still difficult to implement. Every time you wanted to display data, you would have to check to see if the translation existed. If it didn't, you would grab the original. We now have doubled the fetching process for every query. The developer would also have to make sure that with each insert and update, that the dynamic table knew about it. The fact that few developers implemented this means, to me, that it was hassle. We are trying to design 0.9.4 so that developers have to learn less about the core. Using the 0.9.3 process was cumbersome. This process, should it have been popular, would eventually made a HUGE translation table. Imagine ONE table containing all the translations for ten modules each having 1000 rows of data. Every time a translation request was made, 10000 rows would need to be searched. You can see why dynamic language capabilities were turned off by default. It was slow. Could this method be improved upon? Perhaps, but it would again depend on the developer. They would have to query the language system each time a change was made or each time content was read. 0.9.4 is written so most of the time, you can save and load content via objects. Dynamic language capability would remove that simplicity. We do not repeat 0.9.3. table-per-language process in 0.9.4. The new version uses po files for translation. You may ask, why not use them for dynamic translation as well? With static content, I know the data in the po file duplicates the data in my code. With dynamic content, this file would have to be continually updated. Every edit would create a new entry in the po file. If an entry was deleted or updated, a search and replace on the text file would have to be performed for that exact phrase. I can't imagine how this would work much less writing the code for it. Having a mirror site, in my opinion, solves all these problems. Sure I have to enter the content more than once, but I would have to if I were running extra languages off one site as well. I would enter it once to create the original and then have to go to a separate interface and translate it. I don't have to worry about my modules complying with the dynamic standard. I don't have to worry about speed because I am pulling data from only one database and not double checking every entry. All comments are made in the native tongue of the person viewing the site. I have discussed this with other developers before. Many say it should be done without offering the 'how'. Again, I'm not saying it will never happen, I just can't think of a good way to do it. If you can come up with a process that: 1) is simple for the developer to implement (or better yet, invisible), 2) does not create overhead with multiple processes, 3) can update content concurrently with the original, and 4) ultimately is easier than multiple sites I am open to considering it. I don't think maintaining separate language sites is easy, I just think that it is a simpler solution than the alternatives. -- Matthew McNaney Internet Systems Architect Electronic Student Services Appalachian State University Phone: 828-262-6493 http://phpwebsite.appstate.edu http://ess.appstate.edu |
From: Ulf H. <U1...@ul...> - 2004-07-01 17:15:33
|
hmm. would that mean that information-driven sites would have to stick on the current version and remain un-updatable for good? Bummer. As I said, I am running some sites like that. They work great - am willing to show you, but I dont want to post the links across the whole list. I am not sure if I am asking for so much. I understand the issue of huge language tables, of un-translated comments and your strive for perfection. Hoewer, perfection might not be what the business out there is asking for. I for one need a reliable system that works and that can handle more than one language. Running different sites for each language is not an option for me, as it creates an admin overhead in most cases. Many sites are only partially translated (ony the most important "core" information) - distributing different languages across different sites would result in incomplete content in some languages. Which leads to users getting confused. Not to speak about having N systems to upgrade one a new version of the framwork gets release, to apply N patches, N sets of custom code and opening N times more potential security issues.... For now, the current debate is IMHO more a political than a technical issue (as solutions exist which might not be optimal but which are sufficient for a lot of users). My fear is, once you go ahead and apply the po technology, the lang module and some nice opportunities that come with it vanish. I guess what I am trying to acomplish is to reduce the hassle you are talking about - for me some improvements in the lang mod and in the guidelines of it being supported by other mods would do the trick. Ulf Matthew McNaney wrote: >a lot. > > > |
From: Mike N. <mh...@us...> - 2004-07-02 14:17:51
|
On Thu, 2004-07-01 at 10:15, Ulf Hallmann wrote: > would that mean that information-driven sites would have to stick on > the current version and remain un-updatable for good? Bummer. As I > said, I am running some sites like that. They work great - am willing > to show you, but I dont want to post the links across the whole list. Ulf, Can you point the list members to a document (see example link below) outlining your system? I'd like to see a formal proposal, patch (cvs unified diff), or prof-of-concept. Is it a true i18n solution or just l10n? Thanks. W3C Internationalization Activity http://www.w3.org/International/ Note: if you have a patch (cvs unified diff) we can host it at -comm. -- Mike Noyes <mhnoyes at users.sourceforge.net> http://sourceforge.net/users/mhnoyes/ SF.net Projects: ffl, leaf, phpwebsite, phpwebsite-comm, sitedocs |
From: Eloi G. <el...@re...> - 2004-07-03 19:30:31
|
Hi Ulf! I spent a couple months trying to find a way to get the Article Manager module to work with the Language module. While I came up with workable solutions, none of them were easy to use. Like Matt noted, almost all of them generated so much extra db traffic that anything more than personal sites would have to be hosted on dedicated servers! In hopes of writing an alternative Language mod, I researched what other apps were doing. All of them had various flaws. At the end I realized that other than subscribing to a dynamic language server like babelfish, content mirroring is the only workable, easy-to-use, easy-to-administer option. However, you don't need to set up separate sites. Using 0.94's group restrictions (or even a language identifier picklist Matt?) You can say that an item can be seen only by German group members. That way there's no extra queries needed. From there everything stays easy if you keep it simple. There're no fallback languages or automatic features or centralized modules/data stores. They always mess things up over a period of time, anyway. The only change that a module would make to make things any easier is to include an additional field to be used as a "translation group identifier". That way the module would know that everything with an identifier of "ll3ee" are translations of each other, but that should be used only for editing & administration purposes only -- not for display because it would create an additional load on the server. Matt, I haven't looked at the 0.94 code yet -- is it possible for "special-use" groups to be created? Meaning that you can check a box designating it as a language group without creating extra tables, queries & stuff? -Eloi- Ulf Hallmann wrote: > hmm. > > would that mean that information-driven sites would have to stick on > the current version and remain un-updatable for good? Bummer. As I > said, I am running some sites like that. They work great - am willing > to show you, but I dont want to post the links across the whole list. > > I am not sure if I am asking for so much. I understand the issue of > huge language tables, of un-translated comments and your strive for > perfection. Hoewer, perfection might not be what the business out > there is asking for. I for one need a reliable system that works and > that can handle more than one language. > > Running different sites for each language is not an option for me, as > it creates an admin overhead in most cases. Many sites are only > partially translated (ony the most important "core" information) - > distributing different languages across different sites would result > in incomplete content in some languages. Which leads to users getting > confused. Not to speak about having N systems to upgrade one a new > version of the framwork gets release, to apply N patches, N sets of > custom code and opening N times more potential security issues.... > > For now, the current debate is IMHO more a political than a technical > issue (as solutions exist which might not be optimal but which are > sufficient for a lot of users). My fear is, once you go ahead and > apply the po technology, the lang module and some nice opportunities > that come with it vanish. > > I guess what I am trying to acomplish is to reduce the hassle you are > talking about - for me some improvements in the lang mod and in the > guidelines of it being supported by other mods would do the trick. > > Ulf > > > Matthew McNaney wrote: > >>a lot. >> >> >> > *_______________* |
From: Matthew M. <ma...@tu...> - 2004-07-06 14:23:54
|
On Thu, 2004-07-01 at 13:15, Ulf Hallmann wrote: > would that mean that information-driven sites would have to stick on > the current version and remain un-updatable for good? No it doesn't, for reasons I will explain in a moment. > Running different sites for each language is not an option for me, as > it creates an admin overhead in most cases. Many sites are only > partially translated (ony the most important "core" information) If there was a dynamic system, this same problem could arise. Unless the administrator translates the content, the site will have language gaps. Compare the differences: 1) One site: admin enters the original content. admin then re-enters the content for each language. 2) Multiple Sites: admin enters the original content on the hub. Admin re-enters content on each language branch site. Same amount of work. > - distributing different languages across different sites would > result in incomplete content in some languages. The same thing would happen with different languages on the same site. > Which leads to users getting confused. Only users who would visit two different versions of the same site would get confused, and that is not likely. Even were it likely, they would surely understand, "oh they have translated this on my site yet." > Not to speak about having N systems to upgrade one a new version of > the framwork gets release, to apply N patches, N sets of custom code > and opening N times more potential security issues.... Branches don't work that way :) When you update the hub, all the branches are updated as well. There will always be just ONE code base. That is how we are able to update 30+ university sites at one time. > For now, the current debate is IMHO more a political than a technical > issue (as solutions exist which might not be optimal but which are > sufficient for a lot of users). I disagree. It IS a technical issue as I have to program it and feel good about asking other developers and users to implement it. If I were not concerned with usability, then 0.9.4 would 1) not have language capabilities, 2) would not work in Windows, 3) would only work in MySQL. In each of these cases however, I was able, through some effort, to accommodate other versions. > My fear is, once you go ahead and apply the po technology, the lang > module and some nice opportunities that come with it vanish. I wrote the language module and I am writing the implementation of the PO technology. It surprises me that people think I am changing this to somehow make the program worse. If I thought updating the language module was the way to go, I would do it. It isn't, and I'm not. > I guess what I am trying to acomplish is to reduce the hassle you are > talking about - for me some improvements in the lang mod and in the > guidelines of it being supported by other mods would do the trick. The only hassle, for me, would be maintaining the language module instead of looking at new opportunities. Run a Google search on PO files. Notice the amount of developers who already use it. Creating something proprietary is more of a hassle than using an accepted and embraced technology. One last thing. I never said there wouldn't be tools to help you with the language sites. I want to add a mirror option to the branch site creation. That way you could post to the hub and it would disseminate down to the other branches. The way we see it: 1) post on the hub 2) go to the branch 3) the content item is waiting approval for posting 4) edit the item into the other language and approve it To me, this is an orderly, simple procedure. -- Matthew McNaney Internet Systems Architect Electronic Student Services Appalachian State University Phone: 828-262-6493 http://phpwebsite.appstate.edu http://ess.appstate.edu |
From: Shaun M. <sh...@ae...> - 2004-07-06 14:41:36
|
On 6 Jul 2004, at 15:17, Matthew McNaney wrote: > > One last thing. I never said there wouldn't be tools to help you with > the language sites. I want to add a mirror option to the branch site > creation. That way you could post to the hub and it would disseminate > down to the other branches. The way we see it: > > 1) post on the hub > 2) go to the branch > 3) the content item is waiting approval for posting > 4) edit the item into the other language and approve it Oooh. Can we have the other way round as well so that branches can promote the content up to the hub? Ideally allowing say the announcement summary on the hub to click through to the branch site for the full article? Shaun aegis design - http://www.aegisdesign.co.uk |
From: Mike N. <mh...@us...> - 2004-07-06 14:55:17
|
On Tue, 2004-07-06 at 07:42, Shaun Murray wrote: > On 6 Jul 2004, at 15:17, Matthew McNaney wrote: > > One last thing. I never said there wouldn't be tools to help you with > > the language sites. I want to add a mirror option to the branch site > > creation. That way you could post to the hub and it would disseminate > > down to the other branches. The way we see it: > > > > 1) post on the hub > > 2) go to the branch > > 3) the content item is waiting approval for posting > > 4) edit the item into the other language and approve it > > Oooh. Can we have the other way round as well so that branches can > promote the content up to the hub? Ideally allowing say the > announcement summary on the hub to click through to the branch site for > the full article? Shaun, The phpwsrssfeeds module will address some of this with aggregation. The rest of it will/may be addressed in 0.9.4 work flow. -- Mike Noyes <mhnoyes at users.sourceforge.net> http://sourceforge.net/users/mhnoyes/ SF.net Projects: ffl, leaf, phpwebsite, phpwebsite-comm, sitedocs |
From: Matthew M. <ma...@tu...> - 2004-07-06 14:58:53
|
> Oooh. Can we have the other way round as well so that branches can > promote the content up to the hub? Ideally allowing say the > announcement summary on the hub to click through to the branch site for > the full article? Ya I would like that as well. It is planned :) -- Matthew McNaney Internet Systems Architect Electronic Student Services Appalachian State University Phone: 828-262-6493 http://phpwebsite.appstate.edu http://ess.appstate.edu |
From: Ulf H. <U1...@ul...> - 2004-07-08 10:59:40
|
Matthew, now this all makes a lot of sense. Please don't get me wrong: I am not trying to question your activities, or the technology that you selected. I guess what I tried to to is to make the existing things work (i.e. circumvent some of the major flaws of the existing lang module). I have to admit that I did not work with branches yet as did did not see / understand the additional worlds that are opened by using this feature. I will dig more into it in order to clarify a couple of questions that still remain open to me (such as: can different branches operate from the same mysql-DB, maybe distiguished by prefixes? This might be interesting for users who have to pay their hosters for every additional DB...). If I understood you correctly, you are working on a solution that would present a comprehensive site to the user, no matter what branch he is looking at. If a part of the content would not be translated yet, the navigation would seamlessly integrate the content in the default language. Of course, highly interactive content, such as forum postings or comments, would not be dynamically translated - that part we can leave to babelfish et al. [note to Tony: Please distinguish btw. translating dynamic content and dynamically translating content... ;) ]. --> This would be exactly what I would be looking for (and what I am looking to see on the phpws home page as well). So it looks like I have to do nothing than to sit and wait..... ;) Is there anything I can do to help? What are you going to offer to people who are currently using the lang mod in connection with say pagemaster, article manager or blockmaker? Will migration tools be provided? I wonder what could be done to avoid mis-leading discussion like this (to clarify: Obviously I am the one who mis-lead...). An overview on existing models, their dev teams and a more transparant roadmap might save lots of dev and discussion time on all sides. I shall stand ready once capacities for getting this organized are needed. Cheers, and greetings from Munich Ulf Matthew McNaney wrote: >>Oooh. Can we have the other way round as well so that branches can >>promote the content up to the hub? Ideally allowing say the >>announcement summary on the hub to click through to the branch site for >>the full article? >> >> > >Ya I would like that as well. It is planned :) > > > |
From: Eloi G. <el...@re...> - 2004-07-06 16:22:23
|
+1 That sounds really cool. Matthew McNaney wrote: >I want to add a mirror option to the branch site >creation. That way you could post to the hub and it would disseminate >down to the other branches. The way we see it: > > * * |
From: Tony M. <to...@ht...> - 2004-07-06 15:05:25
|
On Tue, 6 Jul 2004, Matthew McNaney wrote: > On Thu, 2004-07-01 at 13:15, Ulf Hallmann wrote: <Snip> > > - distributing different languages across different sites would > > result in incomplete content in some languages. > > The same thing would happen with different languages on the same site. I don't think that it's possible to have dynamic translations for content is necessarily a good thing. If you think it is, go to babelfish.altavista.digital.com and translate "the spirit is willing, but the flesh is weak" from Italian to English and back again. :) What would be really nice though, is to have a language module where you could look up the language preferance of the user and support a language tag in the URL, such a ?lang=en on the end of the page. Then you could create web pages with a selectable language attribute, and have it presented to the user who requests the information. Then the page in multiple languages would be near the same place. I don't think you'll ever get away from having to produce multiple pages of content. (The possibilities are endless. You could even code in a "translate this page for us" button and have a user submit a translation of your page for your approval :)) -Tony -- Hometown Enterprises Internet Services Professional, affordable web design and hosting. http://www.hteis.com/ |
From: Matthew M. <ma...@tu...> - 2004-07-07 19:45:08
|
On Tue, 2004-07-06 at 11:05, Tony Miller wrote: > What would be really nice though, is to have a language module where you > could look up the language preferance of the user and support a language > tag in the URL, such a ?lang=en on the end of the page. Then you could > create web pages with a selectable language attribute, and have it > presented to the user who requests the information. Then the page in > multiple languages would be near the same place. That would be a good idea. There is nothing saying that a developer couldn't gear their module to do so. -- Matthew McNaney Internet Systems Architect Electronic Student Services Appalachian State University Phone: 828-262-6493 http://phpwebsite.appstate.edu http://ess.appstate.edu |
From: Yves K. <fir...@fi...> - 2004-07-07 23:24:23
|
hi all im not a real developer, but i had to create a small module at work. we need more than one language often in switzerland (4 off. lang's) what i did; i was translating the static content; using your language-module.(eg menu,links,titles) and for the dynamic content, it was to 'difficult' for me to work with th= e dynamic-module. so i made lang.related table entry's eg: id,match-code,lang,content,someelse 0,test1,en,my content,nice here 1,test1,de,mein inhalt,sch=F6n hier 2,news,en,hello world,0 3,news,de,hallo welt,0 in the module i asked the language-mod for current_language to select the related table entry. (where match-code and lang) my idea is; if the language-module is very simple to use and there is a e= asy doc how we shoult do it, i am shure module-developers (betters than me) could integrate the dynamic part to the modules Yves Kuendig -----Urspr=FCngliche Nachricht----- Von: php...@li... [mailto:php...@li...]Im Auftrag von Matthew McNaney Gesendet: Mittwoch, 7. Juli 2004 21:29 An: phpWebSite Developers Betreff: Re: [Phpwebsite-developers] Dynamic Translation (long) On Tue, 2004-07-06 at 11:05, Tony Miller wrote: > What would be really nice though, is to have a language module where yo= u > could look up the language preferance of the user and support a languag= e > tag in the URL, such a ?lang=3Den on the end of the page. Then you cou= ld > create web pages with a selectable language attribute, and have it > presented to the user who requests the information. Then the page in > multiple languages would be near the same place. That would be a good idea. There is nothing saying that a developer couldn't gear their module to do so. -- Matthew McNaney ... |
From: Shaun M. <sh...@ae...> - 2004-07-08 12:57:55
|
On 7 Jul 2004, at 20:29, Matthew McNaney wrote: > On Tue, 2004-07-06 at 11:05, Tony Miller wrote: >> What would be really nice though, is to have a language module where >> you >> could look up the language preferance of the user and support a >> language >> tag in the URL, such a ?lang=en on the end of the page. Then you >> could >> create web pages with a selectable language attribute, and have it >> presented to the user who requests the information. Then the page in >> multiple languages would be near the same place. > > That would be a good idea. There is nothing saying that a developer > couldn't gear their module to do so. I'd guess that what is being alluded to is that if the user has selected 'French' then if there are translations of announcements into French then these are presented instead of the English in the front page list and as full announcements. If no translation matching the users language is available then the default language version is presented. Some method of tagging translations as replacing the default language version would be needed and this would be a useful cross-module standard method that could be carried on to pagemaster, phatform or whatever. I don't think it needs anything added that's not there already and the use of PO files is incidental to the translation and presentation of dynamic content. You just need someone to step up and create a multi-language capable version of the announce module that pays attention to the language setting. Shaun aegis design - http://www.aegisdesign.co.uk |
From: Eloi G. <el...@re...> - 2004-07-12 22:35:17
|
> I'd guess that what is being alluded to is that if the user has > selected 'French' then if there are translations of announcements into > French then these are presented instead of the English in the front > page list and as full announcements. If no translation matching the > users language is available then the default language version is > presented. It would have to be simpler than that. I the user selects 'French' and there's no French version of that announcement, they don't see anything. Once you start adding 'default language' abilities, every module serving information on any specific page would have to track down default & alternate versions of whatever content they're displaying. I'm sure it can be done efficiently with some fancy SQL coding, but because phpws is intended to work across all db backends, this extra feature would come at a cost of either extra db usage or extra memory usage. > I don't think it needs anything added that's not there already and the > use of PO files is incidental to the translation and presentation of > dynamic content. You just need someone to step up and create a > multi-language capable version of the announce module that pays > attention to the language setting. > You're right. All the Language module has to do is keep a flag in memory indicating what language is being used. Everything else is up to the module. PHPWS_Dynamic can be retired. I'm researching version control features right now, but I can *probably* pop in multi-language capability if we can agree on a non-resource intensive method. |