Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Websites Team Robert Mayr (robyduck).

Similar presentations


Presentation on theme: "The Websites Team Robert Mayr (robyduck)."— Presentation transcript:

1 The Websites Team Robert Mayr (robyduck)

2 What is the Websites Team?
What does the Websites Team do? File structure and site building. How to contribute?

3 What is the Websites Team?

4 ...a group of fans who know and use…
Html – Css Php Python Genshi

5 ... and have the goal to... Consolidate all key Fedora websites onto one uniform scheme; Maintain content that doesn't fall under any particular sub-project; Make the sites as fun and exciting as the project they represent.

6 Websites Infrastructure Design Localization Intern.tion Ambass Package
Bugzap Epel Docs Marketing Infrastructure Design Websites Localization Intern.tion

7 What does the Websites Team do?

8 Translation Artwork Documentation Ambassadors Infrastructure website
Maintain all the websites related to the fedoraproject.org domain Collaborate with the Infra Team Translation Artwork Documentation Ambassadors Infrastructure website Bug triage Marketing

9 [ How does it work? ] Architecture and build of the sites maintained

10 In every single subdomain the directory tree actually is the following:
. |-- boot.fedoraproject.org | |-- build | |-- ChangeLog | |-- data | |-- httpd | |-- Makefile | |-- po | `-- static `-- TODO

11 i18n ${_('String')} ${Markup(_('String with > html code'))}
We use the Genshi framework for internationalization. Our current templates need to have special markup around the strings in order to mark them as translatable. ${_('String')} ${Markup(_('String with > html code'))} ${Markup(_('String with a <a href="%s">link</a>') % ‘ ${_('%(size)s, DVD ISO disc image for %(arch)s-bit PC') % {'size':'3.1 GB', 'arch':'32'}} It’s the simplest example; The markup that could be used everywhere (it works with embedded html code) Example using a variable. That is really useful in order to avoid having translators to translate again the string when changing the variable; It’s the most complete one which shows you how to deal with multiple variables. The translator will be able to change the variable order using it's name. To test that you haven't missed anything try with ‘make en test’ in order to build the website for the en language. Once it's correct, you need to generate the new translation template file (POT) with $ make pot

12 I10n . |-- boot.fedoraproject.org | |-- build | | ‘-- translations.py
All POs are downloaded hourly Whenever the HTML content change, we need to update the POT as explained on the previous section. Then, we need to push this POT to the translation platform, transifex.com. $ make pushpot For adding a new language, you need to update the LINGUAS file, the translation.py file, and the languages.conf file. The tree is like following: . |-- boot.fedoraproject.org | |-- build | | ‘-- translations.py | |-- httpd | | ‘-- conf | | ‘-- languages.conf.in | ‘-- po | ‘-- LINGUAS `-- l10n_update.sh The script "l10N_update.sh" could be used to generate a new LINGUAS file as well as to upload a new POT and to backup the PO files. There is a redesign on going in order to automatize this, and have only one translation.py and languages.conf.in files.

13 The new upcomming architecture will have a different directory tree, using a recursive make: (to be done) . |-- boot.fedoraproject.org | |-- build | |-- data | |-- httpd | |-- Makefile | |-- po | `-- static |-- build |-- Makefile |-- static |-- templates `-- TODO

14 Build All websites are rebuilt hourly with a syncStatic script;
Only the Infra Group can change the script and decide against which branch each website is build; There is also a specific syncStatic.stg script for the staging websites, as stg.fedoraproject.org and spins.stg.fedoraproject.org The build of all the sites takes about minutes.

15 Let’s do some practice

16 Preparing the system Configuration of the system and clone of the Team Websites’ GIT repository su -c 'yum shell‘ > install git gettext python-genshi python-setuptools babel python-feedparser > groupinstall 'Web Server‘ > run $ git config --global user.name “Robert Mayr“ $ git config --global user. $ git config --global color.ui auto $ cd $HOME $ git clone git://git.fedorahosted.org/git/fedora-web.git

17 Create a new branch Create a local development branch and verify it is syncronized $ cd fedora-web/fedoraproject.org $ git checkout -b devel_branch Working on an existing branch without overwriting anything, for example: $ git checkout -b devel_branch --track origin/f18-beta $ git remote show origin $ git branch -a $ git status

18 Test of the changes After changing the files verify ALWAYS the website rebuild: $ cd fedora-web/fedoraproject.org $ make $ make test $ make stoptest If anything it’s ok apply your changes: $ git add data/content/file1.html data/content/file2.html … $ git commit –am ‘’my first file edit’

19 Sending your changes The first times you need to create a patch:
$ cd fedora-web/fedoraproject.org $ git format-patch origin/master The patch can be send to the track website-ticket, from where the administrators will apply it. Once you get the commit permissions in the 'gitfedora-web' group you can send your changes directly: $ git push

20 How to contribute to the
Websites Team

21 First steps Join the Websites Mailing List and send a self-introduction; Create your FAS account and your personal page on the Wiki; Request to join the Websites group; Follow us on the freenode IRC channel #fedora-websites.

22 Start contributing Take the Easyfix tickets for your first works;
Send your patch; Inform the team about your patch linking it in the ML; Request sponsorship for the ‘gitfedora-web’ group.


Download ppt "The Websites Team Robert Mayr (robyduck)."

Similar presentations


Ads by Google