]> git.p6c8.net - jirafeau.git/commitdiff
lib/lang: move translations to json based files
authorJerome Jutteau <mojo@couak.net>
Tue, 14 Apr 2015 17:31:39 +0000 (19:31 +0200)
committerJerome Jutteau <mojo@couak.net>
Tue, 14 Apr 2015 17:31:39 +0000 (19:31 +0200)
This should ease translation efforts #9

Signed-off-by: Jerome Jutteau <mojo@couak.net>
install.php
lib/lang.php
lib/lang/lang_fr.php [deleted file]
lib/lang/template.php [deleted file]
lib/locales/fr.json [new file with mode: 0644]
lib/locales/template.json [new file with mode: 0644]

index 5226f1bfdc48fb2616190184f96c1fbb1b403a5c..451ebe3d42d53602ff8f9dee64026631e3ab7cbc 100644 (file)
@@ -249,7 +249,7 @@ case 2:
         "2"><?php echo
         t
         ('Jirafeau has an administration interface (through admin.php). ' .
-        'You can set a password to access the interface or leave it be empty ' .
+        'You can set a password to access the interface or leave it empty ' .
         'to disable the interface.');
     ?></td> </tr> <tr> <td class = "label"><label for = "select_password"
        ><?php echo t('Administration password') . ':';
index 89f890fd637ccdc6fd46a714f813084ed23005d1..263afb07f172827341fb0cbc985dfc321dc13629 100644 (file)
@@ -40,18 +40,27 @@ function t ($text)
         if (strcmp ($l, $key) == 0)\r
             $found = true;\r
 \r
-    /* Get translation execpt for english. */\r
-    if ($found && strcmp ($l, "en"))\r
-    {\r
-        /* $tr is defined in this requirement. */\r
-        require (JIRAFEAU_ROOT . "lib/lang/lang_$l.php");\r
-\r
-        foreach ($tr as $o => $t)\r
-            if (strcmp ($text, $o) == 0)\r
-                return "$t";\r
-    }\r
-    /* Return original text if no translation is found or already in english. */\r
-    return ($text);\r
+    /* Don't translate english. */\r
+    if (!($found && strcmp ($l, "en")))\r
+        return $text;\r
+\r
+    /* Open translation file. */\r
+    $trans_j = file_get_contents (JIRAFEAU_ROOT . "lib/locales/$l.json");\r
+    if ($trans_j === FALSE)\r
+        return $text;\r
+\r
+    /* Decode JSON. */\r
+    $trans = json_decode ($trans_j, true);\r
+    error_log(print_r($trans, true));\r
+    if ($trans === NULL)\r
+        return $text;\r
+\r
+    /* Try to find translation. */\r
+    $translation = $trans[$text];\r
+    if (empty ($translation))\r
+        return $text;\r
+\r
+    return $translation;\r
 }\r
 \r
 ?>\r
diff --git a/lib/lang/lang_fr.php b/lib/lang/lang_fr.php
deleted file mode 100644 (file)
index 6f3c6fa..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-/*
- *  Jirafeau, your web file repository
- *  Copyright (C) 2013
- *  Jerome Jutteau <j.jutteau@gmail.com>
- *  Jimmy Beauvois <jimmy.beauvois@gmail.com>
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU Affero General Public License as
- *  published by the Free Software Foundation, either version 3 of the
- *  License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Affero General Public License for more details.
- *
- *  You should have received a copy of the GNU Affero General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-$tr = array (
-            /* index.php */
-             'Jirafeau, your web file repository' => 'Jirafeau, votre dépot de fichiers',
-             'Select a file' => 'Sélectionner un fichier à envoyer:',
-             'Send' => 'Envoyer',
-             'Uploading ...' => 'Envoi en cours ...',
-             'One time download' => 'Téléchargement unique',
-             'Password' => 'Mot de passe',
-             'Time limit' => 'Limite de temps',
-             'Maximum file size' => 'Taille maximale',
-             'powered by Open-Source project Jirafeau' => 'Propulsé par le projet Open-Source Jirafeau',
-             'Jirafeau Project' => 'Projet Jirafeau',
-             'One minute' => 'Une minute',
-             'One hour' => 'Une heure',
-             'One day' => 'Une journée',
-             'One week' => 'Une semaine',
-             'One month' => 'Un mois',
-             'One year' => 'Une année',
-             'None' => 'Aucune',
-             'Upload password' => 'Mot de passe',
-             'File is too big' => 'Le fichier est trop volumineux',
-             'File size is limited to' => 'La taille de fichier est limité à',
-             'The file directory is not writable' => 'Le dossier \'file\' ne peut être écrit.',
-             'The link directory is not writable' => 'Le dossier \'link\' ne peut être écrit.',
-             'The async directory is not writable!' => 'Le dossier \'async\' ne peut être écrit.',
-             'Installer script still present' => 'Le script d\'installation est toujours présent',
-             'Please make sure to delete the installer script "install.php" before continuing.' => 'Merci de supprimer le fichier "install.php" avant de continuer.',
-             'An error occurred.' => 'Une erreur s\'est produite',
-             'File uploaded !' => 'Fichier envoyé !',
-             'Download page' => 'Page de téléchargement',
-             'This file is valid until the following date' => 'Ce fichier est valable jusqu\'à la date suivante',
-             'View link' => 'Lien d\'affichage',
-             'Direct download link' => 'Lien de téléchargement direct',
-             'Delete link' => 'Lien de suppression',
-             /* f.php */
-             'Download' => 'Télécharger',
-             'Preview' => 'Prévisualiser',
-             'Sorry, the requested file is not found' => 'Désolé, le fichier que vous demandez n\'existe pas ou n\'existe plus',
-             'File not available.' => 'Fichier non disponible',
-             'File has been deleted.' => 'Le fichier a été supprimé.',
-             'The time limit of this file has expired.' => 'La limite de temps est dépassée.',
-             'Password protection' => 'Protection par mot de passe',
-             'Give the password of this file' => 'Donnez le mot de passe pour ce fichier',
-             'Access denied' => 'Accès interdit',
-             'You are about to download' => 'Vous êtes sur le point de télécharger',
-             'By using our services, you accept our' => 'En utilisant nos services, vous acceptez nos',
-             'Term Of Service' => 'Conditions d\'utilisation',
-             'Warning, this file will self-destruct after being read' => 'Attention, ce fichier s\'auto-détruira après sa lecture',
-             /* functions.php */
-             'Internal error during file creation.' => 'Erreur interne lors la creation de fichier.',
-             /* install.hpp */
-             'This file was generated by the install process. You can edit it. Please see config.original.php to understand the configuration items.' => 'Ce fichier a été généré par le processus d\'installation. Vous pouvez l\'éditer. Merci de se référer à config.original.php pour comprendre les éléments de configuration.',
-             'The following directory could not be created' => 'Le dossier suivant ne peut être créé',
-             'You should create this directory manually.' => 'Vous devriez creer manuelement ce dossier',
-             'The following directory is not writable' => 'Le dossier suivant ne peut être créé',
-             'You should give the write permission to the web server on this directory.' => 'Vous devriez donner le droits d\'écriture à ce repertoire pour le rendre accessible par le serveur web.',
-             'Here is a solution' => 'Une solution possible',
-             'The local configuration file could not be created. Create a ' .
-                '<code>lib/config.local.php</code> file and give the write ' .
-                'permission to the web server (preferred solution), or give the ' .
-                'write permission to the web server on the <code>lib</code> ' .
-                'directory.' => 'Le fichier de configuration local ne peut être créé. Creez le fichier <code>lib/config.local.php</code> et donnez lui les droits d\'écriture par le serveur web (solution préférable) ou bien donnez les accès en écriture au dossier <code>lib</code>',
-            'The local configuration is not writable by the web server. ' .
-                'Give the write permission to the web server on the ' .
-                '<code>lib/config.local.php</code> file.' => 'Le fichier de configuration local ne peut être écrit. Donnez les droits d\'écriture au fichier <code>lib/config.local.php</code> par le serveur web.',
-            'Installation of Jirafeau' => 'Installation de Jirafeau',
-            'step' => 'étape',
-            'out of' => 'sur',
-            'Administration password' => 'Mot de passe d\'administration',
-            'Finalisation' => 'Finalisation',
-            'Jirafeau is setting the website according to the configuration you provided.' => 'Jirafeau se configure selon les paramêtres donnés',
-            'Previous step' => 'Etape précedente',
-            'Retry this step' => 'Ressayer cette étape',
-            'Jirafeau is now fully operational' => 'Jirafeau est maintenant utilisable',
-            'Information' => 'Information',
-            'The base address of Jirafeau is the first part of the URL, until (and including) the last slash. For example: "http://www.example.com/". Do not forget the trailing slash!'
-                => 'L\'adresse d\'origine de Jirafeau est la première partie de l\'URL (slash de fin inclue). Par exemple: "http://www.exemple.com/". N\'oubliez pas le slash de fin !',
-            'Base address' => 'Addresse d\'origine',
-            'The data directory is where your files and information about your files will be stored. You should put it outside your web site, or at least restrict the access to this directory. Do not forget the trailing slash!'
-                => 'Le dossier "data" est là où seront stoqués les fichiers ainsi que leurs informations. Ce dossier ne devrait pas être accessible directement par l\'utilisateur. N\'oubliez pas le slash de fin !',
-            'Data directory' => 'Dossier de stockage des données',
-            'Jirafeau is internationalised. Choose a specific langage or choose Automatic (langage is provided by user\'s browser).'
-                => 'Jirafeau supporte plusieurs languages. Choisissez un langage spécific ou Automatic (la langue utilisée est alors fournie par le navigateur du visiteur).',
-            'Choose the default language' => 'Choisissez la langue par defaut',
-            'Next step' => 'Etape suivante',
-            'Jirafeau has an administration interface (through admin.php). ' .
-            'You can set a password to access the interface or leave it empty ' .
-            'to disable the interface.' => 'Jirafeau a une interface d\'administration (accessible via admin.php). Vous pouvez saisir un mot de passe pour y acceder ou ne pas en mettre pour désactiver l\'accès à l\'interface.',
-            'Administration password' => 'Mot de passe d\'administration',
-            /* admin.php */
-            'Sorry, the admin interface is not enabled.' => 'Désolé, l\'interface d\'administration n\'est pas activée.',
-            'Sorry, you are not authenticated on admin interface.' => 'Désolé, vous n\'êtes pas authentifié sur l\'interface d\'administration',
-            'Login' => 'Connexion',
-            'Wrong password.' => 'Mot de passe invalide.',
-            'Admin interface' => 'Interface d\'administration',
-            'Clean expired files' => 'Nettoyer les fichiers périmés',
-            'Clean old unfinished transfers' => 'Nettoyer les anciens transferts inachevés',
-            'Clean' => 'Nettoyage',
-            'Search files by name' => 'Rechercher les fichiers par leur nom',
-            'Search' => 'Rechercher',
-            'List all files' => 'Lister tous les fichiers',
-            'List' => 'Lister',
-            'Actions' => 'Actions',
-            'Search files by file hash' => 'Rechercher par empreinte de fichier',
-            'Search a specific link' => 'Rechercher un lien particulier',
-            'Number of cleaned files' => 'Nombre de fichiers nettoyés',
-            'Logout' => 'Déconnexion',
-            'You are now loggued out' => 'Vous êtes maintenant déconnecté',
-            'Link deleted' => 'Lien supprimé',
-            'Filename' => 'Nom',
-            'file' => 'fichier',
-            'link' => 'lien',
-            'Type' => 'Type',
-            'Size' => 'Taille',
-            'Expire' => 'Expiration',
-            'Onetime' => 'Une fois',
-            'Upload date' => 'Date d\'envoie',
-            'Origin' => 'Origine',
-            'Action' => 'Action',
-            'Del link' => 'Supprimer le lien',
-            'Del file and links' => 'Supprimer fichier et liens',
-            'Deleted links' => 'Liens supprimés',
-            /* script.php */
-            'Welcome to Jirafeau\'s query interface' => 'Bienvenue sur l\'interface programmable de Jirafeau',
-            'This interface permits to script your uploads and downloads.' => 'Cette interface permet de programmer vos envoie et téléversements.',
-            'The instructions above show how to query this interface.' => 'Les instructions ci-dessous montrent comment interroger cette interface.',
-            'Get server capacity' => 'Récupérer la capacité d\'envoie du serveur',
-            'Maximal allowed size of an uploaded file' => 'Récupérer la taille maximal autorisée d\'un envoie de fichier',
-            'First line returns size (in MB).' => 'La première ligne correspond à la taille exprimée en MB.',
-            'Get Jirafeau\'s version' => 'Récupérer la version de Jirafeau',
-            'Send a GET query to' => 'Envoyez une requette GET à',
-            'Send a POST query to' => 'Envoyez une requette POST à',
-            'Upload a file' => 'Envoyer un fichier',
-            'Get a file' => 'Récupérer un ficher',
-            'Required' => 'Requis',
-            'Optional' => 'Optionel',
-            'Parameters' => 'Paramètres',
-            'This will return brut text content.' => 'Retourne un texte brut.',
-            'First line is the download reference and the second line the delete code.' => 'La première ligne correspond à la reference de l\'envoie et la seconde ligne correspond au code de suppréssion.',
-            'First line is the server capacity (in Bytes).' => 'La première ligne correspond à la capacité du serveur (en octets).',
-            'Example' => 'Exemple',
-            'If a password has been set, send a POST request with it.' => 'Si un mot de passe a été définis, envoyer une requette POST avec.',
-            'Delete a file' => 'Supprimer un fichier',
-            'This will return "Ok" if succeeded, "Error" otherwhise.' => 'Retourne "OK" en cas de succès, "Error" dans le cas contraire.',
-            'Get a generated script' => 'Récupérer un script généré',
-            'This will return brut text content of the code.' => 'Renvoie le code sous forme the texte brut.',
-            'Initalize an asynchronous transfer' => 'Initialiser un transfert asynchrone',
-            'The goal is to permit to transfer big file, chunk by chunk.' => 'Le but est de permettre de transférer de gros fichiers, morceaux par morceaux.',
-            'Chunks of data must be sent in order.' => 'Chaque morceau doit être envoyé dans l\'ordre.',
-            'First line is the asynchronous transfer reference and the second line the code to use in the next operation.'
-                => 'La première ligne correspond à la référence de transfert asynchrone, la seconde au code à utiliser dans la prochaine requette.',
-            'Push data during asynchronous transfer' => 'Envoyer des données pendant un transfert asynchrone',
-            'Returns the next code to use.' => 'Renvoie le prochain code à utiliser.',
-            'Finalize asynchronous transfer' => 'Finaliser un transfert asynchrone',
-            'This will return "Ok" or "Error" string.' => 'Retourn la chaine "Ok" ou "Error".',
-    );
- ?>
diff --git a/lib/lang/template.php b/lib/lang/template.php
deleted file mode 100644 (file)
index 74a908a..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-<?php
-$tr = array (
-            /* index.php */
-             'Jirafeau, your web file repository' => '',
-             'Select a file' => '',
-             'Send' => '',
-             'Uploading ...' => '',
-             'One time download' => '',
-             'Password' => '',
-             'Time limit' => '',
-             'Maximum file size' => '',
-             'powered by Open-Source project Jirafeau' => '',
-             'Jirafeau Project' => '',
-             'One minute' => '',
-             'One hour' => '',
-             'One day' => '',
-             'One week' => '',
-             'One month' => '',
-             'One year' => '',
-             'None' => '',
-             'Upload password' => '',
-             'File is too big' => '',
-             'File size is limited to' => '',
-             'The file directory is not writable' => '',
-             'The link directory is not writable' => '',
-             'The async directory is not writable!' => '',
-             'Installer script still present' => '',
-             'Please make sure to delete the installer script "install.php" before continuing.' => '',
-             'An error occurred.' => '',
-             'File uploaded !' => '',
-             'Download page' => '',
-             'This file is valid until the following date' => '',
-             'View link' => '',
-             'Direct download link' => '',
-             'Delete link' => '',
-             /* f.php */
-             'Download' => '',
-             'Preview' => '',
-             'Sorry, the requested file is not found' => '',
-             'File not available.' => '',
-             'File has been deleted.' => '',
-             'The time limit of this file has expired.' => '',
-             'Password protection' => '',
-             'Give the password of this file' => '',
-             'Access denied' => '',
-             'You are about to download' => '',
-             'By using our services, you accept our' => '',
-             'Term Of Service' => '',
-             'Warning, this file will self-destruct after being read' => '',
-             /* functions.php */
-             'Internal error during file creation.' => '',
-             /* install.hpp */
-             'This file was generated by the install process. You can edit it. Please see config.original.php to understand the configuration items.' => '',
-             'The following directory could not be created' => '',
-             'You should create this directory manually.' => '',
-             'The following directory is not writable' => '',
-             'You should give the write permission to the web server on this directory.' => '',
-             'Here is a solution' => '',
-             'The local configuration file could not be created. Create a ' .
-                '<code>lib/config.local.php</code> file and give the write ' .
-                'permission to the web server (preferred solution), or give the ' .
-                'write permission to the web server on the <code>lib</code> ' .
-                'directory.' => '',
-            'The local configuration is not writable by the web server. ' .
-                'Give the write permission to the web server on the ' .
-                '<code>lib/config.local.php</code> file.' => '',
-            'Installation of Jirafeau' => '',
-            'step' => '',
-            'out of' => '',
-            'Administration password' => '',
-            'Finalisation' => '',
-            'Jirafeau is setting the website according to the configuration you provided.' => '',
-            'Previous step' => '',
-            'Retry this step' => '',
-            'Jirafeau is now fully operational' => '',
-            'Information' => '',
-            'The base address of Jirafeau is the first part of the URL, until (and including) the last slash. For example: "http://www.example.com/". Do not forget the trailing slash!'
-                => '',
-            'Base address' => '',
-            'The data directory is where your files and information about your files will be stored. You should put it outside your web site, or at least restrict the access to this directory. Do not forget the trailing slash!'
-                => '',
-            'Data directory' => '',
-            'Jirafeau is internationalised. Choose a specific langage or choose Automatic (langage is provided by user\'s browser).'
-                => '',
-            'Choose the default language' => '',
-            'Next step' => '',
-            '' .
-            'You can set a password to access the interface or leave it empty ' .
-            'to disable the interface.' => '',
-            'Administration password' => '',
-            /* admin.php */
-            'Sorry, the admin interface is not enabled.' => '',
-            'Sorry, you are not authenticated on admin interface.' => '',
-            'Login' => '',
-            'Wrong password.' => '',
-            'Admin interface' => '',
-            'Clean expired files' => '',
-            'Clean old unfinished transfers' => '',
-            'Clean' => '',
-            'Search files by name' => '',
-            'Search' => '',
-            'List all files' => '',
-            'List' => '',
-            'Actions' => '',
-            'Search files by file hash' => '',
-            'Search a specific link' => '',
-            'Number of cleaned files' => '',
-            'Logout' => '',
-            'You are now loggued out' => '',
-            'Link deleted' => '',
-            'Filename' => '',
-            'file' => '',
-            'link' => '',
-            'Type' => '',
-            'Size' => '',
-            'Expire' => '',
-            'Onetime' => '',
-            'Upload date' => '',
-            'Origin' => '',
-            'Action' => '',
-            'Del link' => '',
-            'Del file and links' => '',
-            'Deleted links' => '',
-            /* script.php */
-            'Welcome to Jirafeau\'s query interface' => '',
-            'This interface permits to script your uploads and downloads.' => '',
-            'The instructions above show how to query this interface.' => '',
-            'Get server capacity' => '',
-            'Maximal allowed size of an uploaded file' => '',
-            'First line returns size (in MB).' => '',
-            'Get Jirafeau\'s version' => '',
-            'Send a GET query to' => '',
-            'Send a POST query to' => '',
-            'Upload a file' => '',
-            'Get a file' => '',
-            'Required' => '',
-            'Optional' => '',
-            'Parameters' => '',
-            'This will return brut text content.' => '',
-            'First line is the download reference and the second line the delete code.' => '',
-            'First line is the server capacity (in Bytes).' => '',
-            'Example' => '',
-            'If a password has been set, send a POST request with it.' => '',
-            'Delete a file' => '',
-            'This will return "Ok" if succeeded, "Error" otherwhise.' => '',
-            'Get a generated script' => '',
-            'This will return brut text content of the code.' => '',
-            'Initalize an asynchronous transfer' => '',
-            'The goal is to permit to transfer big file, chunk by chunk.' => '',
-            'Chunks of data must be sent in order.' => '',
-            'First line is the asynchronous transfer reference and the second line the code to use in the next operation.'
-                => '',
-            'Push data during asynchronous transfer' => '',
-            'Returns the next code to use.' => '',
-            'Finalize asynchronous transfer' => '',
-            'This will return "Ok" or "Error" string.' => '',
-    );
-?>
diff --git a/lib/locales/fr.json b/lib/locales/fr.json
new file mode 100644 (file)
index 0000000..ec17d85
--- /dev/null
@@ -0,0 +1,141 @@
+{
+    "Jirafeau, your web file repository": "Jirafeau, votre dépot de fichiers",
+    "Select a file": "Sélectionner un fichier à envoyer:",
+    "Send": "Envoyer",
+    "Uploading ...": "Envoi en cours ...",
+    "One time download": "Téléchargement unique",
+    "Password": "Mot de passe",
+    "Time limit": "Limite de temps",
+    "Maximum file size": "Taille maximale",
+    "powered by Open-Source project Jirafeau": "Propulsé par le projet Open-Source Jirafeau",
+    "Jirafeau Project": "Projet Jirafeau",
+    "One minute": "Une minute",
+    "One hour": "Une heure",
+    "One day": "Une journée",
+    "One week": "Une semaine",
+    "One month": "Un mois",
+    "One year": "Une année",
+    "None": "Aucune",
+    "Upload password": "Mot de passe",
+    "File is too big": "Le fichier est trop volumineux",
+    "File size is limited to": "La taille de fichier est limité à",
+    "The file directory is not writable": "Le dossier 'file' ne peut être écrit.",
+    "The link directory is not writable": "Le dossier 'link' ne peut être écrit.",
+    "The async directory is not writable!": "Le dossier 'async' ne peut être écrit.",
+    "Installer script still present": "Le script d'installation est toujours présent",
+    "Please make sure to delete the installer script \"install.php\" before continuing.": "Merci de supprimer le fichier \"install.php\" avant de continuer.",
+    "An error occurred.": "Une erreur s'est produite",
+    "File uploaded !": "Fichier envoyé !",
+    "Download page": "Page de téléchargement",
+    "This file is valid until the following date": "Ce fichier est valable jusqu'à la date suivante",
+    "View link": "Lien d'affichage",
+    "Direct download link": "Lien de téléchargement direct",
+    "Delete link": "Lien de suppression",
+    "Download": "Télécharger",
+    "Preview": "Prévisualiser",
+    "Sorry, the requested file is not found": "Désolé, le fichier que vous demandez n'existe pas ou n'existe plus",
+    "File not available.": "Fichier non disponible",
+    "File has been deleted.": "Le fichier a été supprimé.",
+    "The time limit of this file has expired.": "La limite de temps est dépassée.",
+    "Password protection": "Protection par mot de passe",
+    "Give the password of this file": "Donnez le mot de passe pour ce fichier",
+    "Access denied": "Accès interdit",
+    "You are about to download": "Vous êtes sur le point de télécharger",
+    "By using our services, you accept our": "En utilisant nos services, vous acceptez nos",
+    "Term Of Service": "Conditions d'utilisation",
+    "Warning, this file will self-destruct after being read": "Attention, ce fichier s'auto-détruira après sa lecture",
+    "Internal error during file creation.": "Erreur interne lors la creation de fichier.",
+
+    "This file was generated by the install process. You can edit it. Please see config.original.php to understand the configuration items.": "Ce fichier a été généré par le processus d'installation. Vous pouvez l'éditer. Merci de se référer à config.original.php pour comprendre les éléments de configuration.",
+    "The following directory could not be created": "Le dossier suivant ne peut être créé",
+    "You should create this directory manually.": "Vous devriez creer manuelement ce dossier",
+    "The following directory is not writable": "Le dossier suivant ne peut être créé",
+    "You should give the write permission to the web server on this directory.": "Vous devriez donner le droits d'écriture à ce repertoire pour le rendre accessible par le serveur web.",
+    "Here is a solution": "Une solution possible",
+    "The local configuration file could not be created. Create a <code>lib/config.local.php</code> file and give the write permission to the web server (preferred solution), or give the write permission to the web server on the <code>lib</code> directory.": "Le fichier de configuration local ne peut être créé. Creez le fichier <code>lib/config.local.php</code> et donnez lui les droits d'écriture par le serveur web (solution préférable) ou bien donnez les accès en écriture au dossier <code>lib</code>",
+    "The local configuration is not writable by the web server. Give the write permission to the web server on the '<code>lib/config.local.php</code> file.": "Le fichier de configuration local ne peut être écrit. Donnez les droits d'écriture au fichier <code>lib/config.local.php</code> par le serveur web.",
+    "Installation of Jirafeau": "Installation de Jirafeau",
+    "step": "étape",
+    "out of": "sur",
+    "Administration password": "Mot de passe d'administration",
+    "Finalisation": "Finalisation",
+    "Jirafeau is setting the website according to the configuration you provided.": "Jirafeau se configure selon les paramêtres donnés",
+    "Previous step": "Etape précedente",
+    "Retry this step": "Ressayer cette étape",
+    "Jirafeau is now fully operational": "Jirafeau est maintenant utilisable",
+    "Information": "Information",
+    "The base address of Jirafeau is the first part of the URL, until (and including) the last slash. For example: \"http://www.example.com/\". Do not forget the trailing slash!": "L'adresse d'origine de Jirafeau est la première partie de l'URL (slash de fin inclue). Par exemple: \"http://www.exemple.com/\". N'oubliez pas le slash de fin !",
+    "Base address": "Addresse d'origine",
+    "The data directory is where your files and information about your files will be stored. You should put it outside your web site, or at least restrict the access to this directory. Do not forget the trailing slash!": "Le dossier \"data\" est là où seront stoqués les fichiers ainsi que leurs informations. Ce dossier ne devrait pas être accessible directement par l'utilisateur. N'oubliez pas le slash de fin !",
+    "Data directory": "Dossier de stockage des données",
+    "Jirafeau is internationalised. Choose a specific langage or choose Automatic (langage is provided by user's browser).": "Jirafeau supporte plusieurs languages. Choisissez un langage spécific ou Automatic (la langue utilisée est alors fournie par le navigateur du visiteur).",
+    "Choose the default language": "Choisissez la langue par defaut",
+    "Next step": "Etape suivante",
+    "Jirafeau has an administration interface (through admin.php). You can set a password to access the interface or leave it empty to disable the interface.": "Jirafeau a une interface d'administration (accessible via admin.php). Vous pouvez saisir un mot de passe pour y acceder ou ne pas en mettre pour désactiver l'accès à l'interface.",
+    "Administration password": "Mot de passe d'administration",
+
+    "Sorry, the admin interface is not enabled.": "Désolé, l'interface d'administration n'est pas activée.",
+    "Sorry, you are not authenticated on admin interface.": "Désolé, vous n'êtes pas authentifié sur l'interface d'administration",
+    "Login": "Connexion",
+    "Wrong password.": "Mot de passe invalide.",
+    "Admin interface": "Interface d'administration",
+    "Clean expired files": "Nettoyer les fichiers périmés",
+    "Clean old unfinished transfers": "Nettoyer les anciens transferts inachevés",
+    "Clean": "Nettoyage",
+    "Search files by name": "Rechercher les fichiers par leur nom",
+    "Search": "Rechercher",
+    "List all files": "Lister tous les fichiers",
+    "List": "Lister",
+    "Actions": "Actions",
+    "Search files by file hash": "Rechercher par empreinte de fichier",
+    "Search a specific link": "Rechercher un lien particulier",
+    "Number of cleaned files": "Nombre de fichiers nettoyés",
+    "Logout": "Déconnexion",
+    "You are now loggued out": "Vous êtes maintenant déconnecté",
+    "Link deleted": "Lien supprimé",
+    "Filename": "Nom",
+    "file": "fichier",
+    "link": "lien",
+    "Type": "Type",
+    "Size": "Taille",
+    "Expire": "Expiration",
+    "Onetime": "Une fois",
+    "Upload date": "Date d'envoie",
+    "Origin": "Origine",
+    "Action": "Action",
+    "Del link": "Supprimer le lien",
+    "Del file and links": "Supprimer fichier et liens",
+    "Deleted links": "Liens supprimés",
+
+    "Welcome to Jirafeau's query interface": "Bienvenue sur l'interface programmable de Jirafeau",
+    "This interface permits to script your uploads and downloads.": "Cette interface permet de programmer vos envoie et téléversements.",
+    "The instructions above show how to query this interface.": "Les instructions ci-dessous montrent comment interroger cette interface.",
+    "Get server capacity": "Récupérer la capacité d'envoie du serveur",
+    "Maximal allowed size of an uploaded file": "Récupérer la taille maximal autorisée d'un envoie de fichier",
+    "First line returns size (in MB).": "La première ligne correspond à la taille exprimée en MB.",
+    "Get Jirafeau's version": "Récupérer la version de Jirafeau",
+    "Send a GET query to": "Envoyez une requette GET à",
+    "Send a POST query to": "Envoyez une requette POST à",
+    "Upload a file": "Envoyer un fichier",
+    "Get a file": "Récupérer un ficher",
+    "Required": "Requis",
+    "Optional": "Optionnel",
+    "Parameters": "Paramètres",
+    "This will return brut text content.": "Retourne un texte brut.",
+    "First line is the download reference and the second line the delete code.": "La première ligne correspond à la reference de l'envoie et la seconde ligne correspond au code de suppréssion.",
+    "First line is the server capacity (in Bytes).": "La première ligne correspond à la capacité du serveur (en octets).",
+    "Example": "Exemple",
+    "If a password has been set, send a POST request with it.": "Si un mot de passe a été définis, envoyer une requette POST avec.",
+    "Delete a file": "Supprimer un fichier",
+    "This will return \"Ok\" if succeeded, \"Error\" otherwhise.": "Retourne \"OK\" en cas de succès, \"Error\" dans le cas contraire.",
+    "Get a generated script": "Récupérer un script généré",
+    "This will return brut text content of the code.": "Renvoie le code sous forme the texte brut.",
+    "Initalize an asynchronous transfer": "Initialiser un transfert asynchrone",
+    "The goal is to permit to transfer big file, chunk by chunk.": "Le but est de permettre de transférer de gros fichiers, morceaux par morceaux.",
+    "Chunks of data must be sent in order.": "Chaque morceau doit être envoyé dans l'ordre.",
+    "First line is the asynchronous transfer reference and the second line the code to use in the next operation.": "La première ligne correspond à la référence de transfert asynchrone, la seconde au code à utiliser dans la prochaine requette.",
+    "Push data during asynchronous transfer": "Envoyer des données pendant un transfert asynchrone",
+    "Returns the next code to use.": "Renvoie le prochain code à utiliser.",
+    "Finalize asynchronous transfer": "Finaliser un transfert asynchrone",
+    "This will return \"Ok\" or \"Error\" string.": "Retourne la chaine \"Ok\" ou \"Error\"."
+}
diff --git a/lib/locales/template.json b/lib/locales/template.json
new file mode 100644 (file)
index 0000000..5a90d57
--- /dev/null
@@ -0,0 +1,141 @@
+{
+    "Jirafeau, your web file repository": "",
+    "Select a file": "",
+    "Send": "",
+    "Uploading ...": "",
+    "One time download": "",
+    "Password": "",
+    "Time limit": "",
+    "Maximum file size": "Taille maximale",
+    "powered by Open-Source project Jirafeau": "",
+    "Jirafeau Project": "",
+    "One minute": "",
+    "One hour": "",
+    "One day": "",
+    "One week": "",
+    "One month": "",
+    "One year": "",
+    "None": "",
+    "Upload password": "",
+    "File is too big": "",
+    "File size is limited to": "",
+    "The file directory is not writable": "",
+    "The link directory is not writable": "",
+    "The async directory is not writable!": "",
+    "Installer script still present": "",
+    "Please make sure to delete the installer script \"install.php\" before continuing.": "",
+    "An error occurred.": "",
+    "File uploaded !": "",
+    "Download page": "",
+    "This file is valid until the following date": "",
+    "View link": "",
+    "Direct download link": "",
+    "Delete link": "",
+    "Download": "",
+    "Preview": "",
+    "Sorry, the requested file is not found": "",
+    "File not available.": "",
+    "File has been deleted.": "",
+    "The time limit of this file has expired.": "",
+    "Password protection": "",
+    "Give the password of this file": "",
+    "Access denied": "",
+    "You are about to download": "",
+    "By using our services, you accept our": "",
+    "Term Of Service": "",
+    "Warning, this file will self-destruct after being read": "",
+    "Internal error during file creation.": "",
+
+    "This file was generated by the install process. You can edit it. Please see config.original.php to understand the configuration items.": "",
+    "The following directory could not be created": "",
+    "You should create this directory manually.": "",
+    "The following directory is not writable": "",
+    "You should give the write permission to the web server on this directory.": "",
+    "Here is a solution": "",
+    "The local configuration file could not be created. Create a <code>lib/config.local.php</code> file and give the write permission to the web server (preferred solution), or give the write permission to the web server on the <code>lib</code> directory.": "",
+    "The local configuration is not writable by the web server. Give the write permission to the web server on the '<code>lib/config.local.php</code> file.": "",
+    "Installation of Jirafeau": "",
+    "step": "",
+    "out of": "",
+    "Administration password": "",
+    "Finalisation": "",
+    "Jirafeau is setting the website according to the configuration you provided.": "",
+    "Previous step": "",
+    "Retry this step": "",
+    "Jirafeau is now fully operational": "",
+    "Information": "",
+    "The base address of Jirafeau is the first part of the URL, until (and including) the last slash. For example: \"http://www.example.com/\". Do not forget the trailing slash!": "",
+    "Base address": "",
+    "The data directory is where your files and information about your files will be stored. You should put it outside your web site, or at least restrict the access to this directory. Do not forget the trailing slash!": "",
+    "Data directory": "",
+    "Jirafeau is internationalised. Choose a specific langage or choose Automatic (langage is provided by user's browser).": "",
+    "Choose the default language": "",
+    "Next step": "",
+    "Jirafeau has an administration interface (through admin.php). You can set a password to access the interface or leave it empty to disable the interface.": "",
+    "Administration password": "",
+
+    "Sorry, the admin interface is not enabled.": "",
+    "Sorry, you are not authenticated on admin interface.": "",
+    "Login": "",
+    "Wrong password.": "",
+    "Admin interface": "",
+    "Clean expired files": "",
+    "Clean old unfinished transfers": "",
+    "Clean": "",
+    "Search files by name": "",
+    "Search": "",
+    "List all files": "",
+    "List": "",
+    "Actions": "",
+    "Search files by file hash": "",
+    "Search a specific link": "",
+    "Number of cleaned files": "",
+    "Logout": "",
+    "You are now loggued out": "",
+    "Link deleted": "",
+    "Filename": "",
+    "file": "",
+    "link": "",
+    "Type": "",
+    "Size": "",
+    "Expire": "",
+    "Onetime": "",
+    "Upload date": "",
+    "Origin": "",
+    "Action": "",
+    "Del link": "",
+    "Del file and links": "",
+    "Deleted links": "",
+
+    "Welcome to Jirafeau's query interface": "",
+    "This interface permits to script your uploads and downloads.": "",
+    "The instructions above show how to query this interface.": "",
+    "Get server capacity": "",
+    "Maximal allowed size of an uploaded file": "",
+    "First line returns size (in MB).": "",
+    "Get Jirafeau's version": "",
+    "Send a GET query to": "",
+    "Send a POST query to": "",
+    "Upload a file": "",
+    "Get a file": "",
+    "Required": "",
+    "Optional": "",
+    "Parameters": "",
+    "This will return brut text content.": "",
+    "First line is the download reference and the second line the delete code.": "",
+    "First line is the server capacity (in Bytes).": "",
+    "Example": "",
+    "If a password has been set, send a POST request with it.": "",
+    "Delete a file": "",
+    "This will return \"Ok\" if succeeded, \"Error\" otherwhise.": "",
+    "Get a generated script": "",
+    "This will return brut text content of the code.": "",
+    "Initalize an asynchronous transfer": "",
+    "The goal is to permit to transfer big file, chunk by chunk.": "",
+    "Chunks of data must be sent in order.": "",
+    "First line is the asynchronous transfer reference and the second line the code to use in the next operation.": "",
+    "Push data during asynchronous transfer": "",
+    "Returns the next code to use.": "",
+    "Finalize asynchronous transfer": "",
+    "This will return \"Ok\" or \"Error\" string.": ""
+}

patrick-canterino.de