[ic] I would need some ideas in how to accomplish this multilingual project

Stefan Hornburg Racke interchange-users@interchange.redhat.com
Tue May 7 03:31:02 2002


"Rene Hertell" <rene@hertell.com> writes:

> Hi list,
> 
> I would need some advice or ideas in how to implement this...
> 
> I'm starting to develop a multilingual site for our national
> sport-federation. The site would be containing news, time-schedules for
> courses and competitions, results from competitions, contact-lists,
> registration pages for competitors and organizers etc.. It should later
> contain a small shopping cart that would sell merchandise, books etc.
> 
> I have also a few goals in how everything should look:
> 
> - The URL should be as "clean" as possible. It should not contain any
> session-id:s counters etc.

No problem.

> - Everything except the templates, images, binaries etc. should be pulled
> from a database

No problem.

> - Minimal use of cookies etc.

IC cannot track the user session without IDs in session and without 
cookies.

> - The older content should be cacheable by proxies (news-pages etc). I guess
> that by manipulating the Last-Modified tag would probably do the trick

Might be feasible with [tag op=header].

> - The URL should be somehow standard in each language, like this
>   www.site.com/[L]competitions[/L]/2000/[L]results[/L]
>   www.site.com/[L]news[/L]/1999/[L]December[/L]
>   www.site.com/[L]news[/L]/[L]latest[/L]
>   (what I mean with the [L]-tags is that these parts of the URL should be in
> respective language)

Can easily be done with an ActionMap, e.g.:

ActionMap Catalog <<EOR
sub {
	my ($action, $class, $what, $spec) = split ('/', shift);
	
	$CGI->{mv_like_field} = 'category';		

	$class = 'CDROM' if $class eq 'DVD';

	if ($class eq 'CDROM' || $class eq 'Video') {
		if ($what eq 'Producer') {
			$CGI->{mv_like_field} = 'producer';		
		} elsif ($what eq 'Star') {
			$CGI->{mv_like_field} = 'category3';
		}
	} else {
		# other categories have only one level of qualification	
		$spec = $what;
		$CGI->{mv_like_field} = 'category';
		$class = 'Novelty' if $class eq 'Novelties';
	}

	$CGI->{mv_todo} = 'search';
	$CGI->{mv_nextpage} = 'results_new';
	$CGI->{mv_profile} = 'catalog';
	$CGI->{mv_coordinate} = 1;
	$CGI->{mv_search_field} = 'class';
	$CGI->{mv_searchspec} = "$class";

	$CGI->{mv_like_spec} = "%$spec";
	$CGI->{mv_column_op} = "eq";
	$CGI->{banner_title} = $spec;

	$Tag->update('process');
	return 1;
}
EOR

> - The maintenance of the content (bulletins, news) should be either
> controllable by a web-interface (or by maintaining a local database that
> would upload a tab-delimited file with fresh content...)

I suggest to build your own custom pages for that. IMHO table-editor
is a little bit clumsy for custom administration pages.

> 
> The most desired thing would be that I could use the same physical html-page
> for all languages.
> 

The localization features of IC are your friend.

> 
> For the moment this seems to be quite a nightmare to accomplish, but I'm
> (for the moment) an optimist, and I'll try carry out as many of my own
> wishes as possible..
> 

IC is a quite flexible and extensible, it depends more on your knowledge
and your fantasy to exploit it.

Ciao
        Racke

-- 
Think of it !

For projects and other business stuff please refer to COBOLT NetServices
(URL: http://www.cobolt.net; Email: info@cobolt.net; Phone: 0041-1-3884400)