Fedora Websites development help

David Kaylor dkaylor at gmail.com
Mon Jun 16 17:34:58 UTC 2008


I did some thinking about the first issue this weekend.  If mod_negotiate
would allow you map languages by directory structure instead of file name,
the issue of running on an unconfigured site would go away.  For example,
http://fedoraproject.org/en/get-fedora maps to
DOCUMENT_ROOT/get-fedora.html.en.  If it could instead map to
DOCUMENT_ROOT/en/get-fedora, the site would work  with unconfigured servers.

With that in mind, I did some tinkering using mod_rewrite and had some
success implementing this behavior:

# If the browser prefers a language, set the prefer-language environment
variable accordingly
SetEnvIf Accept-Language
^.*(ar|bal|ca|de|el|en|es|fa|fi|fr|he|id|it|ja|nl|pl|ro|ru|sk|sr).*$
prefer-language=$1

RewriteEngine on

# If the query string contains ?lang=[lang], set prefer-language and
redirect
RewriteCond %{QUERY_STRING}
^lang=(ar|bal|ca|de|el|en|es|fa|fi|fr|he|id|it|ja|nl|pl|pt_BR|ro|ru|sk|sr|zh_CN)$
RewriteRule
^(?:/(?:ar|bal|ca|de|el|en|es|fa|fi|fr|he|id|it|ja|nl|pl|pt_BR|ro|ru|sk|sr|zh_CN))?(/.*)$
/%1$1? [E=prefer-language:%1,R=301]

# Pick a language directory based on prefer-language
RewriteCond %{REQUEST_URI}
!^/(ar|bal|ca|de|el|en|es|fa|fi|fr|he|id|it|ja|nl|pl|ro|ru|sk|sr|static)(/|)
RewriteRule ^(/.*)$ /%{ENV:prefer-language}/$1

# If a page is missing for a non-English language, fall back to the English
page
RewriteCond %{REQUEST_URI} !-U
RewriteRule
^/(ar|bal|ca|de|el|es|fa|fi|fr|he|id|it|ja|nl|pl|ro|ru|sk|sr|)/(.*)$ /en/$2

There are potentially some issues with this solution, but it at least
provides some food for thought.

-Dave

2008/6/12 Ricky Zhou <ricky at fedoraproject.org>:

> Wow, thanks for all of the resposes to Max's call for volunteers!
>
> So here's a summary of what we're looking to do with the buildscript.
>
> Right now, we have a general process for creating the website, but it's
> not pretty.  Basically, we have a build script which goes through and
> just runs each page through genshi.  Unfortunately, when we throw
> translations into the mix, it gets a bit complicated.
>
> Right now, we handle translations (and the language selector) through
> some Apache + mod_negotiate magic (see the bottom of
>
> http://git.fedorahosted.org/git/fedora-web.git?p=fedora-web.git;a=blob;f=fedoraproject.org/httpd/conf/httpd.conf.in
> )
> So one immediate problem here is that it's not easy for somebody to
> make some changes and just scp them to their fedorapeople space (or
> anywhere without some specialized apache configs present).  I have some
> ideas for making this better (which would involve some modifications to
> the buildscript).  Overall, the goal is to just make our process
> friendlier and easier to get started with.
>
> The other general issue that I'd like to discuss is what kind of
> workflow we can establish for working with translators.  Right now,
> we're just pushing English changes up immediately (which means that many
> pages can be untranslated, or even partially translated).
>
> Anyway, if anybody wants to take a look at some of these issues, you can
> get the source of the website with:
>
> git clone git://git.fedorahosted.org/git/fedora-web.git
>
> Feel free to ask any questions on-list (or we have an IRC channel,
> #fedora-websites on irc.freenode.net).  We also have weekly meetings
> (see http://fedoraproject.org/wiki/Websites/Meetings for the schedule).
>
> Thanks,
> Ricky
>
> --
> Fedora-websites-list mailing list
> Fedora-websites-list at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-websites-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/fedora-websites-list/attachments/20080616/c12399ff/attachment.htm>


More information about the Fedora-websites-list mailing list