Commit 2277f8e1 authored by Yann Leboulanger's avatar Yann Leboulanger

switch to a new website powered by hugo

parent a2a7bd16
<?php
require_once ("HTML.php");
function get_pref_language_array($str_http_languages)
{
$langs = explode(',',$str_http_languages);
$qcandidat = 0;
$nblang = count($langs);
for ($i=0; $i<$nblang; $i++)
{
for ($j=0; $j<count($langs); $j++)
{
$lang = trim($langs[$j]); // Suprime les espaces avant et après $lang
// Lang est de la forme langue;q=valeur
if (!strstr($lang, ';') && $qcandidat != 1) {
// Si la chaine ne contient pas de valeur de préférence q
$candidat = $lang;
$qcandidat = 1;
$indicecandidat = $j;
}
else {
// On récupère l'indice q
$q = preg_replace('~.*;q=(.*)~', '\\1', $lang);
if ($q > $qcandidat) {
$candidat = preg_replace('~(.*);.*~', '\\1', $lang); ;
$qcandidat = $q;
$indicecandidat = $j;
}
}
}
$resultat[$i] = $candidat;
$qcandidat=0;
// On supprime la valeur du tableau
unset($langs[$indicecandidat]);
$langs = array_values($langs);
}
return $resultat;
}
function get_language()
{
$query = $_SERVER['QUERY_STRING'];
$array = explode ("&", $query);
foreach ($array as $i)
{
$tmp = explode ("=", $i);
${$tmp[0]} = $tmp[1];
}
if (isSet($lang))
$preflang = array(0 => $lang);
elseif (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
$preflang = get_pref_language_array($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
else
$preflang = array(0 => 'en');
$availablelang = array('fr', 'en', 'de', 'nl', 'es');
$result = array_intersect($preflang, $availablelang);
if (count($result) != 0)
$language = $result[0];
else
$language = 'en';
return $language;
}
function Entete ($titre, $texte, $p="")
{
header('Content-Type: application/xhtml+xml');
session_start();
// print_r($_SERVER);
$language = get_language();
$lang_association = array('fr' => 'fr_FR', 'en' => 'en_US', 'de' => 'de_DE', 'at' => 'de_DE', 'ch' => 'de_DE', 'nl' => 'nl_NL', 'es' => 'es_ES');
$lang = $lang_association[$language];
putenv("LANG=$lang");
setlocale(LC_ALL, $lang);
$domain = 'msg';
bindtextdomain("$domain", "locale");
textdomain("$domain");
$_SESSION['lang'] = $language;
$menu = array (_("Home") => "index.php",
_("Screenshots") => "screenshots.php",
_("Download") => "downloads.php",
_("Documentation") => "docs.php",
_("Wiki") => "https://dev.gajim.org/gajim/gajim/wikis/home",
_("Development") => "dev.php");
if (strpos($_SERVER['SCRIPT_NAME'], 'docs.php'))
$menu2 = array(
_("Installation") => "docs.php?lang=$language#install",
_("XMPP") => "docs.php?lang=$language#jabber",
_("Structure") => "docs.php?lang=$language#structure");
$page = $_SERVER["SCRIPT_NAME"];
$p = explode("/", $page);
$page = $p[count($p)-1];
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
echo "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
echo "<html xmlns='http://www.w3.org/1999/xhtml'>\n <head>\n";
echo " <meta name=\"Author\" content=\"Le Boulanger Yann (asterix)\"/>";
echo " <meta name=\"description\" content=\"Gajim is an XMPP client written in PyGTK. The goal of Gajim's developers is to provide a full featured and easy to use xmpp client for the GTK+ users. Gajim does not require GNOME to run, eventhough it exists with it nicely. Gajim is released under the GNU General Public License\"/>\n";
echo " <meta name=\"keywords\" content=\"gajim client python gtk xmpp chat linux gnu instant messaging messenger pygtk contact transport file transfer hig chatstate bookmark avatars srv wikipedia\"/>\n";
echo " <title>\n $titre\n </title>\n";
echo " <link rel=\"stylesheet\" href=\"css/main.css\" type=\"text/css\" />\n";
if ($language == "he" or $language == "ar")
echo " <link rel=\"stylesheet\" href=\"css/main-rtl.css\" type=\"text/css\" />\n";
echo " <link rel=\"shortcut icon\" href=\"/favicon.ico\" />\n";
echo " </head>\n <body>\n";
echo "<div id=\"logo\">";
echo "<a href=\"index.php\" ><img id=\"logo_img\" src=\"imgs/up_logo.jpg\" alt=\"Gajim !\" title=\"Home\"/></a>\n";
echo " <div id=\"translator\">\n";
echo _(" Language:")."<br />\n";
echo " <a href = \"$page?lang=en\"><img src=\"imgs/en_flag.png\" alt=\"en_flag\" title=\"Website in English\" /></a>\n";
echo " <a href = \"$page?lang=fr\"><img src=\"imgs/fr_flag.png\" alt=\"fr_flag\" title=\"Site en français\" /></a>\n";
echo " <a href = \"$page?lang=de\"><img src=\"imgs/de_flag.png\" alt=\"de_flag\" title=\"Webseite in Deutsch\" /></a>\n";
echo " <a href = \"$page?lang=nl\"><img src=\"imgs/nl_flag.png\" alt=\"nl_flag\" title=\"Website in Dutch\" /></a>\n";
echo " <a href = \"$page?lang=es\"><img src=\"imgs/es_flag.png\" alt=\"es_flag\" title=\"Web en español\" /></a>\n";
echo " </div> <!-- translator -->\n</div> <!-- logo -->\n";
echo "<div class=\"menu\">\n";
while ( list ($libelle, $ancre) = each ($menu)){
echo " <span>\n ";
echo Ancre ($ancre."?lang=$language", $libelle);
echo "\n </span>\n";
}
echo " </div><!-- menu -->\n";
echo " <div id=\"inner\"";
if ($language == "he" or $language == "ar")
echo " style=\"direction: rtl;\"";
echo "><br />\n";
echo "\n <div class=\"main\">\n";
if (isset($menu2)) {
echo "\n<div class=\"submenu\"><ul>\n";
while ( list ($libelle2, $ancre2) = each ($menu2)){
echo " <li>\n ";
echo "<img src=\"imgs/item.png\" alt=\"+\" /> ";
echo Ancre ($ancre2, $libelle2, "submenu_a");
echo "\n </li>\n";
}
echo " </ul></div> <!-- submenu -->\n";
}
}
function PiedDePage ()
{
echo " <div id=\"footer\">\n ";
echo _(" Site optimized for W3C Standards and realized with vim editor under GNU/Linux by Asterix (Jabber ID: asterix@jabber.lagaule.org)\n");
echo " </div> <!-- footer -->\n";
echo " </div> <!-- main -->\n";
echo " </div> <!-- inner -->\n";
echo " </body>\n</html>\n";
exit;
}
?>
<?php
// Fonctions produisant des conteneurs HTML
function Ancre ($url, $libelle, $classe=-1)
{
$optionClasse = "";
if ($classe != -1) $optionClasse = " class='$classe'";
return "<a href=\"" . $url . "\"" . "$optionClasse>$libelle</a>";
}
function Image ($url, $largeur=-1, $hauteur=-1, $classe=-1)
{
$attrLargeur = "";
$attrHauteur = "";
$attrClasse = "";
if ($largeur != -1) $attrLargeur = " width = '$largeur'";
if ($hauteur != -1) $attrHauteur = " height = '$hauteur'";
if ($classe != -1) $attrClasse = " class='$classe'";
return "<img src=\"" . $url . "\"" . $attrLargeur
. $attrHauteur . $attrClasse . " alt=\"Image\" />\n";
}
?>
The MIT License (MIT)
Copyright (c) 2014 Spencer Lyon
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
\ No newline at end of file
![Build Status](https://dev.gajim.org/gajim/website-dev/badges/master/pipeline.svg)
---
# Website repository for gajim.org
This is the new [Hugo](https://gohugo.io)-powered website for gajim.org.
A preview of this site can be viewed here: http://gajim.pages.gajim.org/website-dev/
---
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents**
- [Website repository for gajim.org](#website-repository-for-gajimorg)
- [Building locally](#building-locally)
- [Preview your site](#preview-your-site)
- [GitLab CI](#gitlab-ci)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Building locally
This website can be viewd and modified on your local machine.
To work locally, follow the steps below:
1. Fork, clone or download website-dev
2. [Install](https://gohugo.io/overview/installing/) Hugo
3. Preview Gajim's website locally: `hugo server`
4. Add or modify content
If you want to modify files in the `content` directory, please change files in
the `en` directory only. Content for other languages will be generated from our
translation service at [translate.gajim.org](https://translate.gajim.org/).
Read more at Hugo's [documentation](https://gohugo.io/overview/introduction/).
### Preview your site
If you clone or download this project to your local computer and run `hugo server`,
the site can be accessed under `localhost:1313/website-dev/`.
The theme used for gajim.org is adapted from http://themes.gohugo.io/beautifulhugo/.
## GitLab CI
Static pages of gajim.org are built by [GitLab CI](https://about.gitlab.com/gitlab-ci/), following the steps
defined in [`.gitlab-ci.yml`](.gitlab-ci.yml).
Learn more about [GitLab Pages](https://pages.gitlab.io) and the [official
documentation](https://docs.gitlab.com/ce/user/project/pages/).
baseurl = "http://gajim.pages.gajim.org/website-dev/"
contentdir = "content"
layoutdir = "layouts"
publishdir = "public"
title = "Gajim"
canonifyurls = true
disableHugoGeneratorInject = true
Paginate = 5
defaultContentLanguage = "en"
theme = "beautifulhugo"
metaDataFormat = "yaml"
pygmentsUseClasses = true
pygmentCodeFences = true
[Params]
subtitle = "A fully-featured XMPP client"
logo = "img/gajim-logo.png"
favicon = "img/favicon.ico"
dateFormat = "January 2, 2006"
commit = false
rss = true
comments = false
#[[Params.bigimg]]
# src = "img/triangle.jpg"
# desc = "Triangle"
#[[Params.bigimg]]
# src = "img/sphere.jpg"
# desc = "Sphere"
#[[Params.bigimg]]
# src = "img/hexagon.jpg"
# desc = "Hexagon"
[Author]
name = "Gajim Developers"
#email = "youremail@domain.com"
[en]
contentDir = "content/en"
languageName = "English"
[de]
contentDir = "content/de"
languageName = "Deutsch"
[de.params]
subtitle = "Ein vollwertiger XMPP-Client"
[fr]
contentDir = "content/fr"
languageName = "Français"
[fr.params]
subtitle = "Client XMPP complet"
# German
[[main]]
name = "Neuigkeiten"
url = "post/"
weight = 1
[[main]]
name = "Herunterladen"
url = "download/"
weight = 2
[[main]]
name = "Bildschirmfotos"
url = "screenshots/"
weight = 3
[[main]]
name = "Wiki"
url = "https://dev.gajim.org/gajim/gajim/wikis/home"
weight = 4
[[main]]
name = "Entwicklung"
url = "development/"
weight = 5
# English
[[main]]
name = "News"
url = "post/"
weight = 1
[[main]]
name = "Download"
url = "download/"
weight = 2
[[main]]
name = "Screenshots"
url = "screenshots/"
weight = 3
[[main]]
name = "Wiki"
url = "https://dev.gajim.org/gajim/gajim/wikis/home"
weight = 4
[[main]]
name = "Development"
url = "development/"
weight = 5
# French
[[main]]
name = "Nouvelles"
url = "post/"
weight = 1
[[main]]
name = "Téléchargement"
url = "download/"
weight = 2
[[main]]
name = "Captures d'écran"
url = "screenshots/"
weight = 3
[[main]]
name = "Wiki"
url = "https://dev.gajim.org/gajim/gajim/wikis/home"
weight = 4
[[main]]
name = "Développement"
url = "development/"
weight = 5
---
title: Gajim
subtitle: Gajim, a fully-featured XMPP client
comments: false
---
<table class="startpage-download">
<tr>
<td>
<img src="/img/gajim-logo.png"/>
</td>
<td>
<div class="dropdown show">
<a class="btn btn-success dropdown-toggle" href="#" role="button" id="downloadDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Download</a>
<div class="dropdown-menu" aria-labelledby="downloadDropdown">
<a class="dropdown-item" href="download#windows">Windows</a>
<a class="dropdown-item" href="download#macos">MacOS</a>
<a class="dropdown-item" href="download#linux">Linux</a>
</div>
</div>
</td>
</tr>
</table>
### Features
* Never miss a message, keep all your chat clients synchronized
* Invite friends to group chats or join one
* Simply send pictures, videos or other files to friends and groups
* Chat securely with End-to-End encryption via [OMEMO](https://dev.gajim.org/gajim/gajim-plugins/wikis/OmemoGajimPlugin) or [PGP](https://dev.gajim.org/gajim/gajim-plugins/wikis/pgpplugin).
* Use your favorite emoticons, set your own profile picture
* Keep and manage all your chat history
* Organize your chats with tabs
* Automatic spell-checking for your messages
* Connect to other Messengers via Transports (Facebook, IRC, ...)
* Lookup things on Wikipedia, dictionaries or other search engines directly from the chat window
* Share what are up to, which music are you listing to, or how you are feeling lately by setting your activity, tune, and mood
* Even more features via plugins, for example: Image Previews, Location Previews, Anti Spam, ...
* Gajim is available in [29 languages](https://dev.gajim.org/gajim/gajim/wikis/development/TranslationsList)
### Advanced Features
* Support for multiple accounts
* One of your friends has accounts everywhere but you just want one contact you can easily write to? Group multiple contacts to a single Meta-Contact
* XML console to see what's happening on the protocol layer
* Serverless messaging (Bonjour/Zeroconf), BOSH
* Support for service discovery including nodes and search for users
* DBus capabilities
---
title: Development
subtitle: Gajim development
comments: false
---
## How to reach us
Come join us at [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) with an XMPP client of your choice. Discuss new features, report bugs, or just have a chat.
You may also want to [subscribe to our mailing list](mailto:gajim-devel-subscribe@gajim.org) (low-traffic), or just [browse the archives](https://lists.gajim.org).
## How you can help
Development happens on [our Gitlab](http://dev.gajim.org/gajim/gajim). Contributions are welcome!
You can help us make Gajim better by:
* Coding: contact us on our mailing list or join our group chat [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join)
* Translating: [How to translate](https://dev.gajim.org/gajim/gajim/wikis/development/DevTranslate), get involved and [start translating Gajim](https://translate.gajim.org/projects)
* Bug reporting: in case you find a bug, do not hesitate to [report it](https://dev.gajim.org/gajim/gajim/issues/new)
* Donating:
* [PayPal](https://www.paypal.com/donate/?token=eFHDaiuQ45i6ZiDz9CCv39HkBCdK3PBkDPHjk2zImuiL_OpRe2sHi1MNM80NzvEKqfLPmG&country.x=US&locale.x=US)
* [Flattr](https://flattr.com/@Asterix)
## Development
### Code repository
We use git and gitlab to manage the development. [Gajim](https://dev.gajim.org/gajim/gajim), [Plugins](https://dev.gajim.org/gajim/gajim-plugins), [python-nbxmpp](https://dev.gajim.org/gajim/python-nbxmpp), and this [website](https://dev.gajim.org/gajim/website-dev) you are viewing right now each have their own project.
### Install instructions for development
For Windows, follow [this guide](https://dev.gajim.org/gajim/gajim/blob/master/win/README.md) to set up a development environment for Gajim.
On Linux, you can follow [this guide](https://dev.gajim.org/gajim/gajim/blob/master/README.md).
### Authors
The project is lead by:
* Philipp Hörist (lovetox)
* Yann Leboulanger (Asterix)
---
title: Download
subtitle: Gajim is available for Windows, MacOS, and Linux
comments: false
---
**Current stable version: 1.1.3**
## Windows
<div class="dropdown show">
<a class="btn btn-success dropdown-toggle" href="#" role="button" id="win_download" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Download</a>
<div class="dropdown-menu" aria-labelledby="win_download">
<a class="dropdown-item" href="https://gajim.org/downloads/1.1/gajim-1.1.3-64bits-1.exe">Gajim (64 Bit)</a>
<a class="dropdown-item" href="https://gajim.org/downloads/1.1/gajim-1.1.3-32bits-1.exe">Gajim (32 Bit)</a>
<a class="dropdown-item" href="https://gajim.org/downloads/1.1/gajim-portable-1.1.3-64bits-1.exe">Gajim Portable (64 Bit)</a>
<a class="dropdown-item" href="https://gajim.org/downloads/1.1/gajim-portable-1.1.3-32bits-1.exe">Gajim Portable (32 Bit)</a>
</div>
</div>
You can either install Gajim on your system or use the portable version. Gajim Portable allows you to take everything with you in just a single folder.
If you are curious, you can also try the [latest nightly](https://gajim.org/downloads/snap/win/) of Gajim. But be advised, nightlies can be unstable. Make sure to have a backup of your profile folder. Migrating back is not possible without complications.
## MacOS
MacOS instructions to follow.
## Linux
Gajim is available on many distributions. Have a look at the [install instructions](#Installation-instructions). Gajim is also available on [flathub.org](https://flathub.org/apps/details/org.gajim.Gajim) and ready for [manual flatpak install](https://dev.gajim.org/gajim/gajim/tree/master/flatpak) as well.
If there is no package for your distribution, you should be able to install Gajim using the [source packages (.tar.bz2)](https://gajim.org/downloads/1.1/gajim-1.1.3.tar.bz2). There is also a [nightly package](https://gajim.org/downloads/snap/?M=D) available.
## Install instructions (Linux)
### Debian and Ubuntu
Available in [Debian packages](https://packages.debian.org/de/buster/gajim).
{{< highlight shell >}}
sudo apt-get install gajim
{{</ highlight >}}
### Fedora
Available in [Fedora packages](https://apps.fedoraproject.org/packages/gajim).
{{< highlight shell >}}
dnf install gajim
{{</ highlight >}}
### openSUSE
Available in [openSUSE packages](https://software.opensuse.org/package/gajim).
{{< highlight shell >}}
sudo zypper install gajim
{{</ highlight >}}
### Arch Linux
Available in [Arch Linux packages](https://www.archlinux.org/packages/?name=gajim).
{{< highlight shell >}}
pacman -S gajim
{{</ highlight >}}
### FreeBSD
Available in FreeBSD via [FreeBSD ports](https://www.freebsd.org/cgi/ports.cgi?query=gajim).
{{< highlight shell >}}
cd /usr/ports/net/gajim/ && make install clean
{{</ highlight >}}
### Gentoo
Available in [Gentoo packages](https://packages.gentoo.org/packages/net-im/gajim).
{{< highlight shell >}}
emerge gajim
{{</ highlight >}}
### Nightly package from git (Debian, Ubuntu)
In order to install the nightly package from git, you need to use the unstable repository (or at least [backports](https://backports.debian.org/Instructions/)).
1. Remove Gajim:
{{< highlight shell >}}
sudo apt-get remove gajim
{{</ highlight >}}
2. Add the GPG key:
{{< highlight shell >}}
wget -q https://gajim.org/gajim.key -O - | sudo apt-key add -
{{</ highlight >}}
3. Add the repository:
{{< highlight shell >}}
sudo sh -c "echo deb https://ftp.gajim.org/debian unstable main > /etc/apt/sources.list.d/gajim.list"
{{</ highlight >}}
4. Update the repository:
{{< highlight shell >}}
sudo apt-get update
{{</ highlight >}}
5. Install Gajim (stable branch nightly):
{{< highlight shell >}}
sudo apt-get install gajim-nightly
{{</ highlight >}}
6. Or install Gajim (current development nightly):
{{< highlight shell >}}
sudo apt-get install gajim-default-nightly
{{</ highlight >}}
## Old releases
If you want to dig through Gajim's history or you just liked the older version better, have a look at the [old releases](https://gajim.org/downloads/).
---
title: Gajim 1.1.0
subtitle: Version 1.1.0 of Gajim has been released
date: 2018-11-06
---
What's new since 1.0.3:
* Emoji updates
* Design updates for many dialogs and windows
* Support for PKIX over secure HTTP (POSH)
* Improvements with MAM for MUC (group chat history)
* Have a look at the [full changelog](https://dev.gajim.org/gajim/gajim/blob/gajim-1.1.0/ChangeLog)
---
title: Gajim 1.1.1
subtitle: Version 1.1.1 of Gajim has been released
date: 2018-12-24
---
What's new since 1.1.0:
* This is a bugfix release, several minor bugs were fixed
* Have a look at the [full changelog](https://dev.gajim.org/gajim/gajim/blob/gajim-1.1.1/ChangeLog)
---
title: Gajim 1.1.2
subtitle: Version 1.1.2 of Gajim has been released
date: 2019-01-15
---