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