From 1e4ae8b19ec9fdfe6fda403df836118449fd538f Mon Sep 17 00:00:00 2001 From: Samuel ORTION Date: Tue, 20 Apr 2021 17:05:13 +0200 Subject: [PATCH] Added i18n (french) --- public/about/index.php | 36 +- public/api/v1/doc/index.php | 2 + public/articles/index.php | 2 +- public/articles/list.php | 10 +- public/articles/view.php | 4 +- public/auth/index.php | 3 + public/auth/login/index.php | 15 +- public/auth/login/login.php | 10 +- public/auth/register/index.php | 20 +- public/auth/register/register.php | 12 +- public/contact/index.php | 29 +- public/contact/sendmail.php | 14 +- public/discussion/index.php | 16 +- public/discussion/messages/index.php | 9 +- public/discussion/messages/sendmessage.php | 6 +- public/explore/guano/index.php | 6 +- public/explore/index.php | 5 +- public/explore/list/index.php | 25 +- public/explore/map/index.php | 7 +- public/explore/mysteries/index.php | 5 +- public/explore/random/index.php | 20 +- public/explore/record/edit/index.php | 30 +- public/explore/record/index.php | 10 +- public/explore/search/index.php | 36 +- public/explore/search/searchrecord.php | 20 +- public/explore/spectrograms/index.php | 8 +- public/explore/taxa/index.php | 26 +- public/explore/users/index.php | 13 +- public/forum/categories.php | 18 +- public/forum/createcategory.php | 6 +- public/forum/createtopic.php | 8 +- public/forum/index.php | 6 +- public/forum/newtopic.php | 14 +- public/forum/topics/index.php | 7 +- public/forum/topics/sendreply.php | 8 +- public/forum/topics/topics.php | 37 +- public/gallery/gallery.php | 2 +- public/gallery/index.php | 6 +- public/gallery/upload.php | 10 +- public/header.php | 2 +- public/home/last-uploaded-file.php | 4 +- public/home/status.php | 8 +- public/index.php | 5 +- public/lang/en/lang.php | 33 + public/lang/gettext.php | 40 + public/lang/locale/chiro-canto.pot | 977 ++++++++++++++++++ public/lang/locale/fr/LC_MESSAGES/default.mo | Bin 0 -> 15598 bytes public/lang/locale/fr/LC_MESSAGES/default.po | 994 +++++++++++++++++++ public/lang/select.php | 10 + public/larynx/index.php | 5 +- public/media/icons/language.jpg | Bin 0 -> 30061 bytes public/menu.php | 53 +- public/search/index.php | 24 +- public/styles/style.css | 30 +- public/upload/index.php | 5 +- public/upload/location.php | 10 +- public/upload/submit.php | 35 +- public/upload/upload.php | 72 +- totranslate.txt | 150 +++ translate.sh | 4 + 60 files changed, 2615 insertions(+), 367 deletions(-) create mode 100644 public/auth/index.php create mode 100644 public/lang/en/lang.php create mode 100644 public/lang/gettext.php create mode 100644 public/lang/locale/chiro-canto.pot create mode 100644 public/lang/locale/fr/LC_MESSAGES/default.mo create mode 100644 public/lang/locale/fr/LC_MESSAGES/default.po create mode 100644 public/lang/select.php create mode 100644 public/media/icons/language.jpg create mode 100644 totranslate.txt create mode 100644 translate.sh diff --git a/public/about/index.php b/public/about/index.php index a0a82ac..41e9635 100755 --- a/public/about/index.php +++ b/public/about/index.php @@ -4,29 +4,9 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); -require "$root/database/credentials.php"; -// Connect the database -try { - $db = new PDO("mysql:host=$host;dbname=$database;charset=utf8", - $user, - $password, - array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION - )); -} catch (Exception $e) { - die("Error : ".$e->getMessage()); -} -if (isset($_GET['record'])) { - $req = $db->prepare('SELECT id, recordist_name, file_name, license, species, sound_type, date, time FROM `records` WHERE id=:id'); - $req->execute(array( - "id"=>$_GET['record'] - )); -} else { - $req = $db->prepare('SELECT id, recordist_name, file_name, license, species, sound_type, date, time FROM `records` ORDER BY date DESC, time DESC LIMIT 1'); - $req->execute(); -} -$data = $req->fetch(); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/gettext.php"); ?> - @@ -44,12 +24,12 @@ include("$root/analytics/owa.php");
-

About

-

Chiro-Canto is an online bat sound sharing set of tools, inspired by Xeno-Canto.

-

Author

-

This website is developped with ♥ by Samuel ORTION, a juvenile Geekus biologicus.

-

Source code

-

This project is available under the GNU Affero GPL v3 license at https://forge.ortion.xyz/Chiro-Canto/chiro-canto.

+

+

Xeno-Canto.')?>

+

+

Geekus biologicus.')?>

+

+

https://forge.ortion.xyz/Chiro-Canto/chiro-canto.')?>

diff --git a/public/api/v1/doc/index.php b/public/api/v1/doc/index.php index 49b5bb0..7add4f5 100755 --- a/public/api/v1/doc/index.php +++ b/public/api/v1/doc/index.php @@ -5,6 +5,8 @@ error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); include("$root/vendor/erusev/parsedown/Parsedown.php"); $Parsedown = new Parsedown(); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/$lang/lang.php"); ?> diff --git a/public/articles/index.php b/public/articles/index.php index c0dccff..f5012e5 100755 --- a/public/articles/index.php +++ b/public/articles/index.php @@ -8,7 +8,7 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); include("$root/vendor/erusev/parsedown/Parsedown.php"); $Parsedown = new Parsedown(); - +require("$root/lang/gettext.php"); function archive() { global $root; $results = array(); diff --git a/public/articles/list.php b/public/articles/list.php index 00d4934..3b262d6 100755 --- a/public/articles/list.php +++ b/public/articles/list.php @@ -23,7 +23,7 @@ include("$root/analytics/owa.php");
-

All Articles

+

- - + + @@ -44,8 +44,8 @@ include("$root/analytics/owa.php");
Publication DateArticle
-

New article

-

Return to Homepage

+

+

diff --git a/public/articles/view.php b/public/articles/view.php index caa2e71..ac23d61 100755 --- a/public/articles/view.php +++ b/public/articles/view.php @@ -2,5 +2,5 @@

title)?>

text(htmlspecialchars($results['articles'][0]->summary))?>
text(htmlspecialchars($results['articles'][0]->content))?>
-

Published on publication_date)?>

-

Return to Homepage

+

publication_date)?>

+

diff --git a/public/auth/index.php b/public/auth/index.php new file mode 100644 index 0000000..89c73ca --- /dev/null +++ b/public/auth/index.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/public/auth/login/index.php b/public/auth/login/index.php index 61275e8..9a1537e 100755 --- a/public/auth/login/index.php +++ b/public/auth/login/index.php @@ -4,7 +4,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); - +require("$root/lang/gettext.php"); ?> @@ -13,7 +13,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Login | Chiro - Canto + <?=_('Login')?> | Chiro - Canto
-

Login

+

'.$_SESSION['error_msg'].'' : ""?>
- - + + - - + +
+
diff --git a/public/auth/login/login.php b/public/auth/login/login.php index e72f46d..ad41bd4 100755 --- a/public/auth/login/login.php +++ b/public/auth/login/login.php @@ -46,16 +46,16 @@ if (isset($_POST['submit'])) $username = $_POST['username']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper username.\n"; + $_SESSION['error_msg'] .= _('You did not enter a proper username.').'\n'; } if (isset($_POST['password'])) { $password = $_POST['password']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper password.\n"; + $_SESSION['error_msg'] .= _('You did not enter a proper password.').'\n'; } } else { - $_SESSION['error_msg'] .= "You did not submit the register form.\n"; + $_SESSION['error_msg'] .= _('You did not submit the register form.'); } if ($_SESSION['error_msg'] == "") @@ -67,11 +67,11 @@ if ($_SESSION['error_msg'] == "") $_SESSION['username'] = $username; header('Location: '."/"); } else { - $_SESSION['error_msg'] = "Incorrect password, please try again.\n"; + $_SESSION['error_msg'] = _('Incorrect password, please try again.').'\n'; header('Location: '."../../auth/login"); } } else { - // header('Location: '."../../auth/login"); + header('Location: '."../../auth/login"); } ?> \ No newline at end of file diff --git a/public/auth/register/index.php b/public/auth/register/index.php index e4ad8ff..31ef89f 100755 --- a/public/auth/register/index.php +++ b/public/auth/register/index.php @@ -4,6 +4,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); ?> @@ -13,7 +14,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Register | Chiro - Canto + <?=_('Register')?> | Chiro - Canto
-

Register

+

'.$_SESSION['error_msg'].'' : ""?>
- + - + - + - + - + - + - +
+
diff --git a/public/auth/register/register.php b/public/auth/register/register.php index 87b88ac..16b2a1e 100755 --- a/public/auth/register/register.php +++ b/public/auth/register/register.php @@ -38,38 +38,38 @@ if (isset($_POST['submit'])) $fname = $_POST['firstname']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper first name.\n"; + $_SESSION['error_msg'] .= _('You did not enter a proper first name.').'\n'; } if (isset($_POST['lastname'])) { $lname = $_POST['lastname']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper last name.\n"; + $_SESSION['error_msg'] .= _('You did not enter a proper last name.'); } if (isset($_POST['username'])) { $username = $_POST['username']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper username.\n"; + $_SESSION['error_msg'] .= _('You did not enter a proper username.').'\n'; } if (isset($_POST['email'])) { $email = $_POST['email']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper email address.\n"; + $_SESSION['error_msg'] .= _('You did not enter a proper email address.').'\n'; } $website = isset($_POST['website']) ? $_POST['website'] : ""; if (isset($_POST['password'])) { $password_hash = password_hash($_POST['password'], PASSWORD_DEFAULT); } else { - $_SESSION['error_msg'] .= "You did not enter a proper password.\n"; + $_SESSION['error_msg'] .= _('You did not enter a proper password.').'\n'; } } else { - $_SESSION['error_msg'] .= "You did not submit the register form.\n"; + $_SESSION['error_msg'] .= _('You did not submit the register form.').'\n'; } if ($_SESSION['error_msg'] == "") diff --git a/public/contact/index.php b/public/contact/index.php index 1c65d2a..15d9f29 100755 --- a/public/contact/index.php +++ b/public/contact/index.php @@ -1,5 +1,6 @@ @@ -18,28 +19,28 @@ include("$root/analytics/matomo.php");
-

Contact

+

- -
+ +
- -
+ +
- -
+ +
- -
+ +
- -
+ +
- -
+ +
- +
diff --git a/public/contact/sendmail.php b/public/contact/sendmail.php index 0f79703..c0ae159 100755 --- a/public/contact/sendmail.php +++ b/public/contact/sendmail.php @@ -21,27 +21,27 @@ if (isset($_POST)) { if (isset($_POST['firstname'])) { $fname = $_POST['firstname']; } else { - $error_msg .= "You have not entered a proper first name.\n"; + $error_msg .= _('You have not entered a proper first name.').'\n'; } if (isset($_POST['lastname'])) { $lname = $_POST['lastname']; } else { - $error_msg .= "You have not entered a proper last name.\n"; + $error_msg .= _('You have not entered a proper last name.').'\n'; } if (isset($_POST['email'])) { $email = $_POST['email']; } else { - $error_msg .= "You have not entered a proper email address.\n"; + $error_msg .= _('You have not entered a proper email address.').'\n'; } if (isset($_POST['subject'])) { $subject = $_POST['subject']; } else { - $error_msg .= "You have not entered a proper subject.\n"; + $error_msg .= _('You have not entered a proper subject.').'\n'; } if (isset($_POST['message'])) { $message = $_POST['message']; } else { - $error_msg .= "You have not entered a proper message.\n"; + $error_msg .= _('You have not entered a proper message.').'\n'; } } @@ -82,7 +82,7 @@ try { $mail->send(); $mail->smtpClose(); - echo 'Message has been sent'; + echo _('Message has been sent'); } catch (Exception $e) { - echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; + echo _('Message could not be sent. Mailer Error: ') + $mail->ErrorInfo; } diff --git a/public/discussion/index.php b/public/discussion/index.php index cbd4ff4..f965c3c 100644 --- a/public/discussion/index.php +++ b/public/discussion/index.php @@ -4,6 +4,8 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/gettext.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -36,7 +38,7 @@ $result = $req->fetchAll(); - Discussion | Chiro - Canto + <?=_('Discussion')?> | Chiro - Canto
-

Discussion

-

New messages

+

+

-

Send a message

+

- + - +
diff --git a/public/discussion/messages/index.php b/public/discussion/messages/index.php index d515ca9..fed20ab 100644 --- a/public/discussion/messages/index.php +++ b/public/discussion/messages/index.php @@ -5,6 +5,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -25,7 +26,7 @@ if (isset($_SESSION['username'])) { $sender_id = $data['id']; } } else { - $_SESSION['error_msg'] = "You must be logged in to receive an send message."; + $_SESSION['error_msg'] = _('You must be logged in to receive or send messages.'); header('Location: /auth/login'); } if (isset($_GET['author'])) { @@ -72,7 +73,7 @@ include("$root/analytics/matomo.php");
-

Discussion

+

@@ -108,8 +109,8 @@ include("$root/analytics/matomo.php");
- - + +
@@ -24,7 +26,7 @@ include("$root/analytics/matomo.php");

GUANO v1.0

'.$_SESSION['error_msg'].'
' : "";?> - about GUANO +
fetch()) { } else { - $_SESSION['error_msg'] = "Can't fetch data."; + $_SESSION['error_msg'] = _("Can't fetch data."); } ?> GUANO|Version: 1.0

diff --git a/public/explore/index.php b/public/explore/index.php index b364d8f..576c7bd 100755 --- a/public/explore/index.php +++ b/public/explore/index.php @@ -4,6 +4,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); ?> @@ -11,7 +12,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Explore

+

list diff --git a/public/explore/list/index.php b/public/explore/list/index.php index fa54d58..edccc66 100755 --- a/public/explore/list/index.php +++ b/public/explore/list/index.php @@ -4,6 +4,7 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -25,7 +26,7 @@ $result = $req->fetchAll(); - Explore | Chiro - Canto + <?_('Explore')?> | Chiro - Canto @@ -37,17 +38,17 @@ include("$root/analytics/owa.php");
-

Explore

-

Recording List

+

+

- - - - - - + + + + + + @@ -68,9 +69,9 @@ include("$root/analytics/owa.php"); diff --git a/public/explore/map/index.php b/public/explore/map/index.php index 485ba83..0f71a51 100755 --- a/public/explore/map/index.php +++ b/public/explore/map/index.php @@ -5,6 +5,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -26,7 +27,7 @@ $result = $req->fetchAll(); - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto @@ -44,8 +45,8 @@ include("$root/analytics/matomo.php");
-

Explore

-

Record Map

+ +

diff --git a/public/explore/mysteries/index.php b/public/explore/mysteries/index.php index 69a913c..e5f6375 100755 --- a/public/explore/mysteries/index.php +++ b/public/explore/mysteries/index.php @@ -4,6 +4,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -37,7 +38,7 @@ include("$root/analytics/matomo.php");
-

Mystery recording

+

-

Recorded on at

+

fetch()) - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Explore

-

Random Record

+

+

DatetimeSpeciesFile NameAuthorLicenseAudio
- spectro analysis - database search - + spectro analysis + database search +
- - - - - + + + + + @@ -60,7 +62,7 @@ include("$root/analytics/matomo.php");
SpeciesFile NameAuthorLicenseAudio
-

Click on the file name to go to the spectrogram view.

+

diff --git a/public/explore/record/edit/index.php b/public/explore/record/edit/index.php index f098a14..804fd64 100644 --- a/public/explore/record/edit/index.php +++ b/public/explore/record/edit/index.php @@ -5,6 +5,8 @@ error_reporting(E_ALL); session_start(); session_reset(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/$lang/lang.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -24,7 +26,7 @@ if (isset($_GET['id'])){ - Edit | Chiro - Canto + <?=_('Edit')?> | Chiro - Canto @@ -36,7 +38,7 @@ if (isset($_GET['id'])){
-

Edit

+

prepare('SELECT * FROM records WHERE id=:id'); $req->execute(array( @@ -46,32 +48,32 @@ if (isset($_GET['id'])){ ?>
- + - + - + - + - + - + - - + + - + - + - +
diff --git a/public/explore/record/index.php b/public/explore/record/index.php index 267059d..2585a1f 100644 --- a/public/explore/record/index.php +++ b/public/explore/record/index.php @@ -4,6 +4,8 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/$lang/lang.php"); ?> @@ -11,7 +13,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Record

+

-

Recorded on at

+

diff --git a/public/explore/search/index.php b/public/explore/search/index.php index 2fe5b58..62fa157 100755 --- a/public/explore/search/index.php +++ b/public/explore/search/index.php @@ -4,30 +4,16 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); -// require "$root/database/credentials.php"; -// // Connect the database -// try { -// $db = new PDO("mysql:host=$host;dbname=$database;charset=utf8", -// $user, -// $password, -// array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION -// )); -// } catch (Exception $e) { -// die("Error : ".$e->getMessage()); -// } - -// $req = $db->prepare('SELECT id, recordist_name, file_name, license, species, sound_type, date, time FROM `records` WHERE species="unknown" ORDER BY `entry_timestamp` ASC LIMIT 1'); -// $req->execute(); -// $result = $req->fetchAll(); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/gettext.php"); ?> - - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Explore

-

Multicriteria recordings Search

+

+

- + - + - + - + - + - +
diff --git a/public/explore/search/searchrecord.php b/public/explore/search/searchrecord.php index c238350..29e2cec 100755 --- a/public/explore/search/searchrecord.php +++ b/public/explore/search/searchrecord.php @@ -5,6 +5,8 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/$lang/lang.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -97,7 +99,7 @@ if ($_SESSION['error_msg'] == "") { } } } else { - $_SESSION['error_msg'] .= "You did not enter any query.\n"; + $_SESSION['error_msg'] .= _("You did not enter any query.").'\n'; header("Location: /explore/search"); } @@ -112,15 +114,15 @@ if ($_SESSION['error_msg'] == "") { - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Explore

-

Search Results

+

+

prepare($sql); @@ -128,16 +130,16 @@ if ($_SESSION['error_msg'] == "") { $result = $req->fetchAll(); // print_r($sql); if (empty($result)) { - echo "No result for this query, please try again.\n"; + echo _("No result for this query, please try again.").'\n'; } else { ?> - - - - + + + + diff --git a/public/explore/spectrograms/index.php b/public/explore/spectrograms/index.php index fab4531..97524e3 100755 --- a/public/explore/spectrograms/index.php +++ b/public/explore/spectrograms/index.php @@ -4,6 +4,8 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/$lang/lang.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -33,7 +35,7 @@ $data = $req->fetch(); - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Spectrograms

+

-

Recorded on at

+

at

fetchAll(); - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto -

Chiroptera Taxa

-

These taxa come from INPN TAXREF v14.0.

+

+

File nameAuthorLicenseDate
- - - - - - - - - + + + + + + + + + diff --git a/public/explore/users/index.php b/public/explore/users/index.php index 25b15c7..9a39f1a 100644 --- a/public/explore/users/index.php +++ b/public/explore/users/index.php @@ -5,6 +5,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); require "$root/database/credentials.php"; // Connect the database try { @@ -27,7 +28,7 @@ $result = $req->fetchAll(); - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Explore

-

Random Record

+

+

KingdomPhylumClassOrderFamilySubfamilyTribuGenusSpecies
- - - + + + diff --git a/public/forum/categories.php b/public/forum/categories.php index 429fa1d..d8da7a5 100755 --- a/public/forum/categories.php +++ b/public/forum/categories.php @@ -22,12 +22,12 @@ $rows = $req->fetchAll(PDO::FETCH_ASSOC); $Parsedown = new Parsedown(); ?> -

Categories

+

NameUsernamePrivate message link
- - + + @@ -43,11 +43,11 @@ foreach ($rows as $row) { } ?>
TitleDescription
-

Create a category

+

- - - - - + + + + +
diff --git a/public/forum/createcategory.php b/public/forum/createcategory.php index 8632867..56fc861 100755 --- a/public/forum/createcategory.php +++ b/public/forum/createcategory.php @@ -34,17 +34,17 @@ if (isset($_POST['submit'])) $name = $_POST['title']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper category title. \n"; + $_SESSION['error_msg'] .= _("You did not enter a proper category title.") . '\n'; } if (isset($_POST['description'])) { $description = $_POST['description']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper category description. \n"; + $_SESSION['error_msg'] .= _("You did not enter a proper category description.") . '\n'; } } else { - $_SESSION['error_msg'] .= "You did not log in.\n"; + $_SESSION['error_msg'] .= _("You did not log in.") . '\n'; header('Location: '."/auth/login/"); } } else diff --git a/public/forum/createtopic.php b/public/forum/createtopic.php index 8cf6535..f0ed68b 100755 --- a/public/forum/createtopic.php +++ b/public/forum/createtopic.php @@ -56,22 +56,22 @@ if (isset($_POST['submit'])) $topic_subject = $_POST['topic_subject']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper topic subject. \n"; + $_SESSION['error_msg'] .= _("You did not enter a proper topic subject.") . '\n'; } if (isset($_POST['category'])) { $id_cat = $_POST['category']; } else { - $_SESSION['error_msg'] .= "You did not enter a proper topic category. \n"; + $_SESSION['error_msg'] .= _("You did not enter a proper topic category.") . '\n'; } } else { - $_SESSION['error_msg'] .= "You did not log in.\n"; + $_SESSION['error_msg'] .= _("You did not log in.") . '\n'; header('Location: '."/auth/login/"); } } else { - $_SESSION['error_msg'] .= "You did not sumit the category creation form.\n"; + $_SESSION['error_msg'] .= _("You did not sumit the category creation form.") . '\n'; } if ($_SESSION['error_msg'] == "") diff --git a/public/forum/index.php b/public/forum/index.php index 891aed0..3cf863b 100755 --- a/public/forum/index.php +++ b/public/forum/index.php @@ -4,7 +4,7 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); - +require("$root/lang/gettext.php"); ?> @@ -13,7 +13,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Forum | Chiro - Canto + <?=_('Forum')?> | Chiro - Canto
-

Forum

+

diff --git a/public/forum/newtopic.php b/public/forum/newtopic.php index 9731c27..433b65b 100755 --- a/public/forum/newtopic.php +++ b/public/forum/newtopic.php @@ -33,21 +33,21 @@ if ($data = $req->fetch()) - Chiro - Canto + <?=_('Forum')?> Chiro - Canto
-

Forum

-

Create a new topic

+

+

- - - + + + - +
diff --git a/public/forum/topics/index.php b/public/forum/topics/index.php index fe97e4b..7fb8c0b 100755 --- a/public/forum/topics/index.php +++ b/public/forum/topics/index.php @@ -4,7 +4,8 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); - +$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; +require("$root/lang/$lang/lang.php"); ?> @@ -13,7 +14,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Forum | Chiro - Canto + <?=_('Forum')?> | Chiro - Canto
-

Forum

+

diff --git a/public/forum/topics/sendreply.php b/public/forum/topics/sendreply.php index cd26983..f91be25 100755 --- a/public/forum/topics/sendreply.php +++ b/public/forum/topics/sendreply.php @@ -43,22 +43,22 @@ if (isset($_POST['submit'])) $topic_id = $_POST['topic_id']; } else { - $_SESSION['error_msg'] .= "You did not enter your reply. \n"; + $_SESSION['error_msg'] .= _("You did not enter your reply.") .'\n'; } if (isset($_POST['reply']) and $_POST['reply'] != "") { $reply_content = $_POST['reply']; } else { - $_SESSION['error_msg'] .= "You did not enter your reply. \n"; + $_SESSION['error_msg'] .= _("You did not enter your reply.") .'\n'; } } else { - $_SESSION['error_msg'] .= "You did not log in.\n"; + $_SESSION['error_msg'] .= _("You did not log in.") .'\n'; header('Location: '."/auth/login/"); } } else { - $_SESSION['error_msg'] .= "You did not sumit the reply form.\n"; + $_SESSION['error_msg'] .= _("You did not sumit the reply form.") .'\n'; } if ($_SESSION['error_msg'] == "") diff --git a/public/forum/topics/topics.php b/public/forum/topics/topics.php index 87cc6c2..fabf79d 100755 --- a/public/forum/topics/topics.php +++ b/public/forum/topics/topics.php @@ -40,9 +40,9 @@ if (isset($_GET['topic'])){ - - - + + + @@ -71,7 +71,7 @@ if (isset($_GET['topic'])){
AuthorReplyDate

-

Your Reply

+

- +
-
- - - - - -
getMessage()); - echo "Can't fetch topic data.\n"; + echo _("Can't fetch topic data.") .'\n'; } } else { @@ -124,10 +117,10 @@ else { - - - - + + + + @@ -144,10 +137,18 @@ else { $firstname = $data['firstname']; $lastname = $data['lastname']; } + + $req = $db->prepare('SELECT COUNT(*) AS counter FROM replies WHERE reply_topic=:reply_topic'); + $req->execute(array( + "reply_topic"=>$row['id'] + )); + if ($data = $req->fetch()) { + $n_messages = $data['counter']; + } ?> - + diff --git a/public/gallery/gallery.php b/public/gallery/gallery.php index b28160b..40c5ab7 100755 --- a/public/gallery/gallery.php +++ b/public/gallery/gallery.php @@ -29,6 +29,6 @@ $result = $req->fetchAll(); } ?> -Upload Image + @@ -11,7 +13,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Gallery | Chiro - Canto + <?=_('Gallery')?> | Chiro - Canto
-

Gallery

+

'.$_SESSION['error_msg'].'' : ""?>
-
+

- + prepare('INSERT INTO images (species, file_name, author_id, entry_date) VALUES (:species, :file_name, :author_id, now())'); @@ -63,10 +63,10 @@ if(isset($_POST['submit'])){ db_entry(isset($_POST['species']) ? $_POST['species'] : "", $name); header('Location: /gallery'); } else { - echo "Can't move your file."; + echo _("Can't move your file."); } } else { - $_SESSION['error_msg'] .= 'You should select a file to upload !!'; + $_SESSION['error_msg'] .= _('You should select a file to upload !'); } } else { form(); diff --git a/public/header.php b/public/header.php index 7790b59..02a720b 100755 --- a/public/header.php +++ b/public/header.php @@ -3,7 +3,7 @@ diff --git a/public/home/last-uploaded-file.php b/public/home/last-uploaded-file.php index 3718c12..0431c97 100755 --- a/public/home/last-uploaded-file.php +++ b/public/home/last-uploaded-file.php @@ -21,7 +21,7 @@ if ($data = $req->fetch())

-

Recorded on at

+

at

fetch())
\ No newline at end of file diff --git a/public/home/status.php b/public/home/status.php index ff8204d..ead7bdd 100755 --- a/public/home/status.php +++ b/public/home/status.php @@ -32,9 +32,9 @@ if ($data = $req->fetch()) { } ?>
- Records Uploaded
- Users Registered
- Taxa Available
+
+
+
fetch()) { $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' ); $base = 1024; $class = min((int)log($bytes , $base) , count($si_prefix) - 1); - echo sprintf('%1.2f', $bytes / pow($base,$class)).' '.$si_prefix[$class];?> of Free space
+ echo sprintf('%1.2f', $bytes / pow($base,$class)).' '.$si_prefix[$class];?>
\ No newline at end of file diff --git a/public/index.php b/public/index.php index 58fbed6..64f1d5d 100755 --- a/public/index.php +++ b/public/index.php @@ -4,6 +4,7 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); session_start(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); ?> @@ -25,9 +26,9 @@ include("$root/analytics/matomo.php");
-

Last uploaded sound

+

-

Stats

+

diff --git a/public/lang/en/lang.php b/public/lang/en/lang.php new file mode 100644 index 0000000..1989540 --- /dev/null +++ b/public/lang/en/lang.php @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/public/lang/locale/chiro-canto.pot b/public/lang/locale/chiro-canto.pot new file mode 100644 index 0000000..4260b99 --- /dev/null +++ b/public/lang/locale/chiro-canto.pot @@ -0,0 +1,977 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-04-20 12:45+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: public/index.php:29 +msgid "Last uploaded sound" +msgstr "" + +#: public/index.php:31 +msgid "Stats" +msgstr "" + +#: public/menu.php:5 +msgid "about" +msgstr "" + +#: public/menu.php:8 +msgid "contact" +msgstr "" + +#: public/menu.php:13 +msgid "explore" +msgstr "" + +#: public/menu.php:17 +msgid "list" +msgstr "" + +#: public/menu.php:19 +msgid "map" +msgstr "" + +#: public/menu.php:21 public/menu.php:59 +msgid "mysteries" +msgstr "" + +#: public/menu.php:24 +msgid "random" +msgstr "" + +#: public/menu.php:26 +msgid "search" +msgstr "" + +#: public/menu.php:28 +msgid "spectrograms" +msgstr "" + +#: public/menu.php:31 +msgid "taxa" +msgstr "" + +#: public/menu.php:33 +msgid "guano" +msgstr "" + +#: public/menu.php:36 +msgid "users" +msgstr "" + +#: public/menu.php:43 +msgid "upload" +msgstr "" + +#: public/menu.php:46 +msgid "larynx" +msgstr "" + +#: public/menu.php:52 +msgid "forum" +msgstr "" + +#: public/menu.php:55 +msgid "messages" +msgstr "" + +#: public/menu.php:62 +msgid "articles" +msgstr "" + +#: public/menu.php:66 +msgid "Welcome" +msgstr "" + +#: public/header.php:6 +msgid "To share bat sounds all over the world" +msgstr "" + +#: public/forum/index.php:16 public/forum/index.php:27 +#: public/forum/newtopic.php:36 public/forum/newtopic.php:43 +#: public/forum/topics/index.php:17 public/forum/topics/index.php:28 +msgid "Forum" +msgstr "" + +#: public/forum/categories.php:25 +msgid "Categories" +msgstr "" + +#: public/forum/categories.php:29 +msgid "Title" +msgstr "" + +#: public/forum/categories.php:30 +msgid "Description" +msgstr "" + +#: public/forum/categories.php:46 +msgid "Create a category" +msgstr "" + +#: public/forum/categories.php:48 +msgid "Category title" +msgstr "" + +#: public/forum/categories.php:49 +msgid "Enter a name for the new category.." +msgstr "" + +#: public/forum/categories.php:50 +msgid "Category description" +msgstr "" + +#: public/forum/categories.php:51 +msgid "Enter a description for the new category (support Markdown).." +msgstr "" + +#: public/forum/categories.php:52 public/forum/newtopic.php:50 +#: public/upload/location.php:13 public/upload/upload.php:73 +#: public/gallery/upload.php:13 public/auth/login/index.php:34 +#: public/auth/register/index.php:43 public/contact/index.php:43 +msgid "submit" +msgstr "" + +#: public/forum/categories.php:52 public/forum/newtopic.php:50 +#: public/upload/upload.php:74 public/auth/login/index.php:34 +#: public/auth/register/index.php:43 public/contact/index.php:43 +msgid "reset" +msgstr "" + +#: public/forum/createcategory.php:37 +msgid "You did not enter a proper category title." +msgstr "" + +#: public/forum/createcategory.php:44 +msgid "You did not enter a proper category description." +msgstr "" + +#: public/forum/createcategory.php:47 public/forum/createtopic.php:69 +#: public/forum/topics/sendreply.php:56 +msgid "You did not log in." +msgstr "" + +#: public/forum/newtopic.php:44 +msgid "Create a new topic" +msgstr "" + +#: public/forum/newtopic.php:46 +msgid "Topic subject" +msgstr "" + +#: public/forum/newtopic.php:47 +msgid "Enter a topic subject.." +msgstr "" + +#: public/forum/newtopic.php:48 +msgid "Topic category" +msgstr "" + +#: public/forum/createtopic.php:59 +msgid "You did not enter a proper topic subject." +msgstr "" + +#: public/forum/createtopic.php:66 +msgid "You did not enter a proper topic category." +msgstr "" + +#: public/forum/createtopic.php:74 +msgid "You did not sumit the category creation form." +msgstr "" + +#: public/forum/topics/topics.php:43 public/forum/topics/topics.php:122 +#: public/explore/search/searchrecord.php:140 +#: public/explore/random/index.php:50 public/explore/list/index.php:49 +#: public/about/index.php:29 public/search/index.php:90 +msgid "Author" +msgstr "" + +#: public/forum/topics/topics.php:44 +msgid "Reply" +msgstr "" + +#: public/forum/topics/topics.php:45 public/explore/record/edit/index.php:55 +#: public/search/index.php:92 +msgid "Date" +msgstr "" + +#: public/forum/topics/topics.php:74 +msgid "Your Reply" +msgstr "" + +#: public/forum/topics/topics.php:93 +msgid "Enter your reply (support Markdown).." +msgstr "" + +#: public/forum/topics/topics.php:106 +msgid "Can't fetch topic data." +msgstr "" + +#: public/forum/topics/topics.php:120 +msgid "Subjects" +msgstr "" + +#: public/forum/topics/topics.php:121 +msgid "Answers" +msgstr "" + +#: public/forum/topics/topics.php:123 +msgid "Creation date" +msgstr "" + +#: public/forum/topics/topics.php:151 +msgid "No reply" +msgstr "" + +#: public/forum/topics/sendreply.php:46 public/forum/topics/sendreply.php:53 +msgid "You did not enter your reply." +msgstr "" + +#: public/forum/topics/sendreply.php:61 +msgid "You did not sumit the reply form." +msgstr "" + +#: public/upload/index.php:26 +msgid "Upload" +msgstr "" + +#: public/upload/index.php:37 +msgid "Upload Your Recording" +msgstr "" + +#: public/upload/location.php:2 +msgid "Location" +msgstr "" + +#: public/upload/location.php:3 +msgid "Metadata" +msgstr "" + +#: public/upload/location.php:4 +msgid "Verify" +msgstr "" + +#: public/upload/location.php:10 public/upload/upload.php:10 +#: public/explore/record/edit/index.php:53 +msgid "Coordinates" +msgstr "" + +#: public/upload/upload.php:8 +msgid "File" +msgstr "" + +#: public/upload/upload.php:8 +msgid "Audio File must be in wav format." +msgstr "" + +#: public/upload/upload.php:12 public/explore/random/index.php:48 +#: public/explore/taxa/index.php:54 public/explore/list/index.php:47 +#: public/explore/record/edit/index.php:61 +msgid "Species" +msgstr "" + +#: public/upload/upload.php:14 +msgid "Species identified" +msgstr "" + +#: public/upload/upload.php:15 +msgid "Enter a species.." +msgstr "" + +#: public/upload/upload.php:19 +msgid "Identity unknown" +msgstr "" + +#: public/upload/upload.php:21 public/explore/record/edit/index.php:63 +msgid "Subspecies" +msgstr "" + +#: public/upload/upload.php:22 +msgid "Enter a subspecies name.." +msgstr "" + +#: public/upload/upload.php:23 public/explore/search/searchrecord.php:141 +#: public/explore/random/index.php:51 public/explore/list/index.php:50 +#: public/search/index.php:91 +msgid "License" +msgstr "" + +#: public/upload/upload.php:32 public/explore/record/edit/index.php:59 +msgid "Recordist Name" +msgstr "" + +#: public/upload/upload.php:33 +msgid "Enter your name.." +msgstr "" + +#: public/upload/upload.php:34 +msgid "Country" +msgstr "" + +#: public/upload/upload.php:37 +msgid "Recording Date" +msgstr "" + +#: public/upload/upload.php:39 +msgid "Recording Time" +msgstr "" + +#: public/upload/upload.php:41 +msgid "Optional Metadata" +msgstr "" + +#: public/upload/upload.php:43 +msgid "Sound Types" +msgstr "" + +#: public/upload/upload.php:45 +msgid "uncertain" +msgstr "" + +#: public/upload/upload.php:46 +msgid "echolocation" +msgstr "" + +#: public/upload/upload.php:47 +msgid "buzz" +msgstr "" + +#: public/upload/upload.php:48 +msgid "social cry" +msgstr "" + +#: public/upload/upload.php:49 +msgid "song" +msgstr "" + +#: public/upload/upload.php:51 +msgid "Quality" +msgstr "" + +#: public/upload/upload.php:53 +msgid "Unrated" +msgstr "" + +#: public/upload/upload.php:54 +msgid "Loud and Clear" +msgstr "" + +#: public/upload/upload.php:55 +msgid "" +"Clear, but bat a bit distant, or some interference with other sound sources" +msgstr "" + +#: public/upload/upload.php:56 +msgid "Moderately clear, or quite some interference" +msgstr "" + +#: public/upload/upload.php:57 +msgid "Faint recording, or much interference" +msgstr "" + +#: public/upload/upload.php:58 +msgid "Barely audible" +msgstr "" + +#: public/upload/upload.php:60 +msgid "Remarks" +msgstr "" + +#: public/upload/upload.php:62 +msgid "Recorder manufacturer" +msgstr "" + +#: public/upload/upload.php:64 +msgid "Recorder model" +msgstr "" + +#: public/upload/upload.php:66 public/explore/record/edit/index.php:70 +msgid "Recorder Serial Number" +msgstr "" + +#: public/upload/upload.php:68 +msgid "Samplerate" +msgstr "" + +#: public/upload/upload.php:70 +msgid "Time Expansion Factor" +msgstr "" + +#: public/upload/submit.php:113 +msgid "This file extension is not allowed; please upload a WAV file." +msgstr "" + +#: public/upload/submit.php:117 +msgid "The file size must be below 10MB." +msgstr "" + +#: public/upload/submit.php:122 +msgid "The file " +msgstr "" + +#: public/upload/submit.php:122 +msgid "has been uploaded." +msgstr "" + +#: public/upload/submit.php:124 +msgid "Sorry, there was an error uploading your file" +msgstr "" + +#: public/upload/submit.php:134 +msgid "Incorrect coordinates, please try again." +msgstr "" + +#: public/upload/submit.php:149 +msgid "Error, incorrect species name." +msgstr "" + +#: public/upload/submit.php:167 +msgid "Incorrect license" +msgstr "" + +#: public/upload/submit.php:174 +msgid "Incorrect Recordist Name." +msgstr "" + +#: public/upload/submit.php:181 +msgid "Incorrect Country. " +msgstr "" + +#: public/upload/submit.php:188 +msgid "Incorrect date." +msgstr "" + +#: public/upload/submit.php:195 +msgid "Incorrect time." +msgstr "" + +#: public/upload/submit.php:202 +msgid "Incorrect sound type." +msgstr "" + +#: public/upload/submit.php:209 +msgid "Incorrect quality value." +msgstr "" + +#: public/upload/submit.php:237 +msgid "Form not submitted." +msgstr "" + +#: public/gallery/index.php:16 public/gallery/index.php:27 +msgid "Gallery" +msgstr "" + +#: public/gallery/upload.php:9 +msgid "Image" +msgstr "" + +#: public/gallery/upload.php:42 +msgid "You need to be logged in to upload images." +msgstr "" + +#: public/gallery/upload.php:66 +msgid "Can't move your file." +msgstr "" + +#: public/gallery/upload.php:69 +msgid "You should select a file to upload !" +msgstr "" + +#: public/gallery/gallery.php:32 +msgid "Upload Image" +msgstr "" + +#: public/auth/login/index.php:16 public/auth/login/index.php:27 +msgid "Login" +msgstr "" + +#: public/auth/login/index.php:30 public/auth/register/index.php:35 +#: public/explore/users/index.php:48 +msgid "Username" +msgstr "" + +#: public/auth/login/index.php:31 +msgid "Enter your username.." +msgstr "" + +#: public/auth/login/index.php:33 +msgid "Enter your password.." +msgstr "" + +#: public/auth/login/index.php:36 +msgid "Not yet registered ?" +msgstr "" + +#: public/auth/login/login.php:49 public/auth/register/register.php:55 +msgid "You did not enter a proper username." +msgstr "" + +#: public/auth/login/login.php:54 public/auth/register/register.php:68 +msgid "You did not enter a proper password." +msgstr "" + +#: public/auth/login/login.php:58 public/auth/register/register.php:72 +msgid "You did not submit the register form." +msgstr "" + +#: public/auth/login/login.php:70 +msgid "Incorrect password, please try again." +msgstr "" + +#: public/auth/register/index.php:17 public/auth/register/index.php:28 +msgid "Register" +msgstr "" + +#: public/auth/register/index.php:31 public/contact/index.php:25 +msgid "First Name" +msgstr "" + +#: public/auth/register/index.php:33 public/contact/index.php:28 +msgid "Last Name" +msgstr "" + +#: public/auth/register/index.php:37 +msgid "Password" +msgstr "" + +#: public/auth/register/index.php:39 +msgid "Your email" +msgstr "" + +#: public/auth/register/index.php:41 +msgid "Your website (optional)" +msgstr "" + +#: public/auth/register/index.php:45 +msgid "Already registered ?" +msgstr "" + +#: public/auth/register/register.php:41 +msgid "You did not enter a proper first name." +msgstr "" + +#: public/auth/register/register.php:48 +msgid "You did not enter a proper last name." +msgstr "" + +#: public/auth/register/register.php:62 +msgid "You did not enter a proper email address." +msgstr "" + +#: public/home/last-uploaded-file.php:39 +msgid "Error fetch." +msgstr "" + +#: public/home/status.php:35 +msgid "records_uploaded" +msgstr "" + +#: public/home/status.php:36 +msgid "users_registered" +msgstr "" + +#: public/home/status.php:37 +msgid "taxa_available" +msgstr "" + +#: public/home/status.php:45 +msgid "free_space" +msgstr "" + +#: public/explore/mysteries/index.php:42 +msgid "Mystery recording" +msgstr "" + +#: public/explore/mysteries/index.php:50 +msgid "Recorded on " +msgstr "" + +#: public/explore/mysteries/index.php:50 public/explore/record/index.php:55 +msgid "at" +msgstr "" + +#: public/explore/spectrograms/index.php:38 public/explore/index.php:15 +#: public/explore/index.php:26 public/explore/search/index.php:16 +#: public/explore/search/index.php:27 +#: public/explore/search/searchrecord.php:117 +#: public/explore/search/searchrecord.php:124 +#: public/explore/random/index.php:33 public/explore/random/index.php:43 +#: public/explore/map/index.php:30 public/explore/map/index.php:48 +#: public/explore/taxa/index.php:31 public/explore/list/index.php:29 +#: public/explore/list/index.php:41 public/explore/users/index.php:31 +#: public/explore/users/index.php:42 public/explore/record/index.php:16 +#: public/search/index.php:68 public/search/index.php:79 +msgid "Explore" +msgstr "" + +#: public/explore/spectrograms/index.php:49 +msgid "Spectrograms" +msgstr "" + +#: public/explore/spectrograms/index.php:55 public/explore/record/index.php:55 +msgid "Recorded on" +msgstr "" + +#: public/explore/search/index.php:28 +msgid "Multicriteria recordings Search" +msgstr "" + +#: public/explore/search/index.php:30 +msgid "Species name" +msgstr "" + +#: public/explore/search/index.php:32 +msgid "Subspecies name" +msgstr "" + +#: public/explore/search/index.php:34 +msgid "Recordist name" +msgstr "" + +#: public/explore/search/index.php:36 +msgid "After date" +msgstr "" + +#: public/explore/search/index.php:38 +msgid "Befora date" +msgstr "" + +#: public/explore/search/index.php:40 +msgid "Keyword(s) in remarks (comma separated)" +msgstr "" + +#: public/explore/search/searchrecord.php:102 +msgid "You did not enter any query." +msgstr "" + +#: public/explore/search/searchrecord.php:125 +msgid "Search results" +msgstr "" + +#: public/explore/search/searchrecord.php:133 public/search/index.php:83 +msgid "No result for this query, please try again." +msgstr "" + +#: public/explore/search/searchrecord.php:139 +#: public/explore/random/index.php:49 public/search/index.php:89 +msgid "File name" +msgstr "" + +#: public/explore/search/searchrecord.php:142 public/explore/list/index.php:46 +msgid "Datetime" +msgstr "" + +#: public/explore/random/index.php:44 +msgid "Random Record" +msgstr "" + +#: public/explore/random/index.php:52 public/explore/list/index.php:51 +msgid "Audio" +msgstr "" + +#: public/explore/random/index.php:65 +msgid "Click on the file name to go to the spectrogram view." +msgstr "" + +#: public/explore/map/index.php:49 +msgid "Record Map" +msgstr "" + +#: public/explore/taxa/index.php:41 +msgid "Taxa" +msgstr "" + +#: public/explore/taxa/index.php:42 +msgid "These taxa come from INPN TAXREF v14.0." +msgstr "" + +#: public/explore/taxa/index.php:46 +msgid "Kingdom" +msgstr "" + +#: public/explore/taxa/index.php:47 +msgid "Phylum" +msgstr "" + +#: public/explore/taxa/index.php:48 +msgid "Class" +msgstr "" + +#: public/explore/taxa/index.php:49 +msgid "Order" +msgstr "" + +#: public/explore/taxa/index.php:50 +msgid "Family" +msgstr "" + +#: public/explore/taxa/index.php:51 +msgid "Subfamily" +msgstr "" + +#: public/explore/taxa/index.php:52 +msgid "Tribu" +msgstr "" + +#: public/explore/taxa/index.php:53 +msgid "Genus" +msgstr "" + +#: public/explore/list/index.php:42 +msgid "Recording List" +msgstr "" + +#: public/explore/list/index.php:48 public/explore/record/edit/index.php:51 +msgid "File Name" +msgstr "" + +#: public/explore/list/index.php:72 +msgid "Open with Larynx" +msgstr "" + +#: public/explore/list/index.php:73 +msgid "See GUANO metadata" +msgstr "" + +#: public/explore/list/index.php:74 +msgid "Edit record metadata" +msgstr "" + +#: public/explore/guano/index.php:29 +msgid "about GUANO" +msgstr "" + +#: public/explore/guano/index.php:55 +msgid "Can't fetch data." +msgstr "" + +#: public/explore/users/index.php:43 +msgid "Users" +msgstr "" + +#: public/explore/users/index.php:47 +msgid "Name" +msgstr "" + +#: public/explore/users/index.php:49 +msgid "Private message link" +msgstr "" + +#: public/explore/record/index.php:27 +msgid "Record" +msgstr "" + +#: public/explore/record/index.php:70 +msgid "Can't find the record associated with this id, please try again." +msgstr "" + +#: public/explore/record/edit/index.php:29 +#: public/explore/record/edit/index.php:41 +msgid "Edit" +msgstr "" + +#: public/explore/record/edit/index.php:57 +msgid "Time" +msgstr "" + +#: public/explore/record/edit/index.php:66 +msgid "Recorder Manufacturer" +msgstr "" + +#: public/explore/record/edit/index.php:68 +msgid "Recorder Model" +msgstr "" + +#: public/explore/record/edit/index.php:76 +msgid "Can't fetch information on record with id" +msgstr "" + +#: public/about/index.php:27 +msgid "About" +msgstr "" + +#: public/about/index.php:28 +msgid "" +"Chiro-Canto is an online bat sound sharing set of tools, inspired by Xeno-Canto." +msgstr "" + +#: public/about/index.php:30 +msgid "" +"This website is developped with ♥ by Samuel ORTION, a juvenile " +"Geekus biologicus." +msgstr "" + +#: public/about/index.php:31 +msgid "Source code" +msgstr "" + +#: public/about/index.php:32 +msgid "" +"This project is available under the GNU Affero GPL v3 license at https://forge.ortion." +"xyz/Chiro-Canto/chiro-canto." +msgstr "" + +#: public/contact/index.php:22 +msgid "Contact" +msgstr "" + +#: public/contact/index.php:26 +msgid "Your first name.." +msgstr "" + +#: public/contact/index.php:29 +msgid "Your last name.." +msgstr "" + +#: public/contact/index.php:31 +msgid "Email" +msgstr "" + +#: public/contact/index.php:32 +msgid "Your email.." +msgstr "" + +#: public/contact/index.php:34 +msgid "Website" +msgstr "" + +#: public/contact/index.php:35 +msgid "Your website.." +msgstr "" + +#: public/contact/index.php:37 +msgid "Subject" +msgstr "" + +#: public/contact/index.php:38 +msgid "Your subject.." +msgstr "" + +#: public/contact/index.php:40 +msgid "Message" +msgstr "" + +#: public/contact/index.php:41 +msgid "Write something.." +msgstr "" + +#: public/contact/sendmail.php:24 +msgid "You have not entered a proper first name." +msgstr "" + +#: public/contact/sendmail.php:29 +msgid "You have not entered a proper last name." +msgstr "" + +#: public/contact/sendmail.php:34 +msgid "You have not entered a proper email address." +msgstr "" + +#: public/contact/sendmail.php:39 +msgid "You have not entered a proper subject." +msgstr "" + +#: public/contact/sendmail.php:44 +msgid "You have not entered a proper message." +msgstr "" + +#: public/contact/sendmail.php:85 +msgid "Message has been sent" +msgstr "" + +#: public/contact/sendmail.php:87 +msgid "Message could not be sent. Mailer Error: " +msgstr "" + +#: public/search/index.php:80 +msgid "Search Results" +msgstr "" + +#: public/articles/view.php:5 +msgid "Published on " +msgstr "" + +#: public/articles/view.php:6 public/articles/list.php:48 +msgid "Return to Homepage" +msgstr "" + +#: public/articles/list.php:26 +msgid "All Articles" +msgstr "" + +#: public/articles/list.php:36 +msgid "Article" +msgstr "" + +#: public/articles/list.php:47 +msgid "New article" +msgstr "" + +#: public/larynx/index.php:32 +msgid "A web tool for bat sound analysis" +msgstr "" + +#: public/larynx/index.php:103 +msgid "Error: Can't retrieve audio from database in Larynx" +msgstr "" + +#: public/discussion/messages/index.php:29 +msgid "You must be logged in to receive or send messages." +msgstr "" + +#: public/discussion/messages/index.php:76 public/discussion/index.php:41 +#: public/discussion/index.php:52 +msgid "Discussion" +msgstr "" + +#: public/discussion/messages/index.php:112 +msgid "Enter your message.." +msgstr "" + +#: public/discussion/messages/index.php:113 public/discussion/index.php:84 +msgid "Send" +msgstr "" + +#: public/discussion/messages/sendmessage.php:36 +msgid "Error: No message author" +msgstr "" + +#: public/discussion/messages/sendmessage.php:41 +msgid "Error: No message destinator" +msgstr "" + +#: public/discussion/messages/sendmessage.php:45 +msgid "Error: No message content" +msgstr "" + +#: public/discussion/index.php:53 +msgid "New messages" +msgstr "" + +#: public/discussion/index.php:76 +msgid "No message received." +msgstr "" + +#: public/discussion/index.php:80 +msgid "Send a message" +msgstr "" + +#: public/discussion/index.php:82 +msgid "Addressee" +msgstr "" diff --git a/public/lang/locale/fr/LC_MESSAGES/default.mo b/public/lang/locale/fr/LC_MESSAGES/default.mo new file mode 100644 index 0000000000000000000000000000000000000000..10806ac396166ff03837482a5545e38da7e1cd1a GIT binary patch literal 15598 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 literal 0 HcmV?d00001 diff --git a/public/lang/locale/fr/LC_MESSAGES/default.po b/public/lang/locale/fr/LC_MESSAGES/default.po new file mode 100644 index 0000000..84bf30b --- /dev/null +++ b/public/lang/locale/fr/LC_MESSAGES/default.po @@ -0,0 +1,994 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-04-20 12:45+0200\n" +"PO-Revision-Date: 2021-04-20 14:05+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.2\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" + +#: public/index.php:29 +msgid "Last uploaded sound" +msgstr "Dernier fichier téléversé" + +#: public/index.php:31 +msgid "Stats" +msgstr "Statistiques" + +#: public/menu.php:5 +msgid "about" +msgstr "à propos" + +#: public/menu.php:8 +msgid "contact" +msgstr "contact" + +#: public/menu.php:13 +msgid "explore" +msgstr "explorer" + +#: public/menu.php:17 +msgid "list" +msgstr "liste" + +#: public/menu.php:19 +msgid "map" +msgstr "carte" + +#: public/menu.php:21 public/menu.php:59 +msgid "mysteries" +msgstr "mystères" + +#: public/menu.php:24 +msgid "random" +msgstr "aléatoire" + +#: public/menu.php:26 +msgid "search" +msgstr "recherche" + +#: public/menu.php:28 +msgid "spectrograms" +msgstr "spectrogramme" + +#: public/menu.php:31 +msgid "taxa" +msgstr "taxons" + +#: public/menu.php:33 +msgid "guano" +msgstr "guano" + +#: public/menu.php:36 +msgid "users" +msgstr "utilisateurs" + +#: public/menu.php:43 +msgid "upload" +msgstr "téléchargement" + +#: public/menu.php:46 +msgid "larynx" +msgstr "larynx" + +#: public/menu.php:52 +msgid "forum" +msgstr "forum" + +#: public/menu.php:55 +msgid "messages" +msgstr "messages" + +#: public/menu.php:62 +msgid "articles" +msgstr "articles" + +#: public/menu.php:66 +msgid "Welcome" +msgstr "Bienvenue" + +#: public/header.php:6 +msgid "To share bat sounds all over the world" +msgstr "Partager des sons de chauve-souris du monde entier" + +#: public/forum/index.php:16 public/forum/index.php:27 +#: public/forum/newtopic.php:36 public/forum/newtopic.php:43 +#: public/forum/topics/index.php:17 public/forum/topics/index.php:28 +msgid "Forum" +msgstr "Forum" + +#: public/forum/categories.php:25 +msgid "Categories" +msgstr "Catégories" + +#: public/forum/categories.php:29 +msgid "Title" +msgstr "Titre" + +#: public/forum/categories.php:30 +msgid "Description" +msgstr "Description" + +#: public/forum/categories.php:46 +msgid "Create a category" +msgstr "Créer une catégorie" + +#: public/forum/categories.php:48 +msgid "Category title" +msgstr "Titre de la catégorie" + +#: public/forum/categories.php:49 +msgid "Enter a name for the new category.." +msgstr "Entrer un nom pour la nouvelle catégorie.." + +#: public/forum/categories.php:50 +msgid "Category description" +msgstr "Description de la catégorie" + +#: public/forum/categories.php:51 +msgid "Enter a description for the new category (support Markdown).." +msgstr "" +"Entrer une description pour la nouvelle catégorie (supporte Markdown).." + +#: public/forum/categories.php:52 public/forum/newtopic.php:50 +#: public/upload/location.php:13 public/upload/upload.php:73 +#: public/gallery/upload.php:13 public/auth/login/index.php:34 +#: public/auth/register/index.php:43 public/contact/index.php:43 +msgid "submit" +msgstr "soumettre" + +#: public/forum/categories.php:52 public/forum/newtopic.php:50 +#: public/upload/upload.php:74 public/auth/login/index.php:34 +#: public/auth/register/index.php:43 public/contact/index.php:43 +msgid "reset" +msgstr "annuler" + +#: public/forum/createcategory.php:37 +msgid "You did not enter a proper category title." +msgstr "Vous n'avez pas entré de titre." + +#: public/forum/createcategory.php:44 +msgid "You did not enter a proper category description." +msgstr "Vous n'avez pas entré de description." + +#: public/forum/createcategory.php:47 public/forum/createtopic.php:69 +#: public/forum/topics/sendreply.php:56 +msgid "You did not log in." +msgstr "Vous n'êtes pas connecté." + +#: public/forum/newtopic.php:44 +msgid "Create a new topic" +msgstr "Créer un nouveau sujet" + +#: public/forum/newtopic.php:46 +msgid "Topic subject" +msgstr "Topic" + +#: public/forum/newtopic.php:47 +msgid "Enter a topic subject.." +msgstr "Entrer un sujet.." + +#: public/forum/newtopic.php:48 +msgid "Topic category" +msgstr "Catégorie du sujet" + +#: public/forum/createtopic.php:59 +msgid "You did not enter a proper topic subject." +msgstr "Vous n'avez pas entré de sujet." + +#: public/forum/createtopic.php:66 +msgid "You did not enter a proper topic category." +msgstr "Vous n'avez pas entré de catégorie de sujet." + +#: public/forum/createtopic.php:74 +msgid "You did not sumit the category creation form." +msgstr "Vous n'avez pas soumis le formulaire de création de catégorie." + +#: public/forum/topics/topics.php:43 public/forum/topics/topics.php:122 +#: public/explore/search/searchrecord.php:140 +#: public/explore/random/index.php:50 public/explore/list/index.php:49 +#: public/about/index.php:29 public/search/index.php:90 +msgid "Author" +msgstr "Auteur" + +#: public/forum/topics/topics.php:44 +msgid "Reply" +msgstr "Réponse" + +#: public/forum/topics/topics.php:45 public/explore/record/edit/index.php:55 +#: public/search/index.php:92 +msgid "Date" +msgstr "Date" + +#: public/forum/topics/topics.php:74 +msgid "Your Reply" +msgstr "Votre réponse" + +#: public/forum/topics/topics.php:93 +msgid "Enter your reply (support Markdown).." +msgstr "Entrer votre réponse (supporte Markdown).." + +#: public/forum/topics/topics.php:106 +msgid "Can't fetch topic data." +msgstr "Impossible de récupérer les données." + +#: public/forum/topics/topics.php:120 +msgid "Subjects" +msgstr "Sujets" + +#: public/forum/topics/topics.php:121 +msgid "Answers" +msgstr "Réponses" + +#: public/forum/topics/topics.php:123 +msgid "Creation date" +msgstr "Date de création" + +#: public/forum/topics/topics.php:151 +msgid "No reply" +msgstr "Pas de réponse" + +#: public/forum/topics/sendreply.php:46 public/forum/topics/sendreply.php:53 +msgid "You did not enter your reply." +msgstr "Vous n'avez pas entré votre réponse." + +#: public/forum/topics/sendreply.php:61 +msgid "You did not sumit the reply form." +msgstr "Vous n'avez pas soumis le formulaire de réponse." + +#: public/upload/index.php:26 +msgid "Upload" +msgstr "Téléchargement" + +#: public/upload/index.php:37 +msgid "Upload Your Recording" +msgstr "Télécharger votre enregistrement" + +#: public/upload/location.php:2 +msgid "Location" +msgstr "Lieu" + +#: public/upload/location.php:3 +msgid "Metadata" +msgstr "Métadonnées" + +#: public/upload/location.php:4 +msgid "Verify" +msgstr "Vérification" + +#: public/upload/location.php:10 public/upload/upload.php:10 +#: public/explore/record/edit/index.php:53 +msgid "Coordinates" +msgstr "Coordonnées" + +#: public/upload/upload.php:8 +msgid "File" +msgstr "Fichier" + +#: public/upload/upload.php:8 +msgid "Audio File must be in wav format." +msgstr "Le fichier doit être au format wav." + +#: public/upload/upload.php:12 public/explore/random/index.php:48 +#: public/explore/taxa/index.php:54 public/explore/list/index.php:47 +#: public/explore/record/edit/index.php:61 +msgid "Species" +msgstr "Espèce" + +#: public/upload/upload.php:14 +msgid "Species identified" +msgstr "Espèce identifiée" + +#: public/upload/upload.php:15 +msgid "Enter a species.." +msgstr "Entrer une espèce.." + +#: public/upload/upload.php:19 +msgid "Identity unknown" +msgstr "Identité inconnue" + +#: public/upload/upload.php:21 public/explore/record/edit/index.php:63 +msgid "Subspecies" +msgstr "Sous-espèce" + +#: public/upload/upload.php:22 +msgid "Enter a subspecies name.." +msgstr "Entrer un nom de sous-espèce.." + +#: public/upload/upload.php:23 public/explore/search/searchrecord.php:141 +#: public/explore/random/index.php:51 public/explore/list/index.php:50 +#: public/search/index.php:91 +msgid "License" +msgstr "Licence" + +#: public/upload/upload.php:32 public/explore/record/edit/index.php:59 +msgid "Recordist Name" +msgstr "Nom de l'auteur de l'enregistrement" + +#: public/upload/upload.php:33 +msgid "Enter your name.." +msgstr "Entrer votre nom.." + +#: public/upload/upload.php:34 +msgid "Country" +msgstr "Pays" + +#: public/upload/upload.php:37 +msgid "Recording Date" +msgstr "Date d'enregistrement" + +#: public/upload/upload.php:39 +msgid "Recording Time" +msgstr "Heure d'enregistrement" + +#: public/upload/upload.php:41 +msgid "Optional Metadata" +msgstr "Métadonnées optionnelles" + +#: public/upload/upload.php:43 +msgid "Sound Types" +msgstr "Type de son" + +#: public/upload/upload.php:45 +msgid "uncertain" +msgstr "incertain" + +#: public/upload/upload.php:46 +msgid "echolocation" +msgstr "écholocation" + +#: public/upload/upload.php:47 +msgid "buzz" +msgstr "buzz" + +#: public/upload/upload.php:48 +msgid "social cry" +msgstr "cris sociaux" + +#: public/upload/upload.php:49 +msgid "song" +msgstr "chant" + +#: public/upload/upload.php:51 +msgid "Quality" +msgstr "Qualité" + +#: public/upload/upload.php:53 +msgid "Unrated" +msgstr "Non spécifiée" + +#: public/upload/upload.php:54 +msgid "Loud and Clear" +msgstr "Fort et clair" + +#: public/upload/upload.php:55 +msgid "" +"Clear, but bat a bit distant, or some interference with other sound sources" +msgstr "" +"Clair, mais chauve-souris un peu distante, ou quelques interference avec " +"d'autres sons" + +#: public/upload/upload.php:56 +msgid "Moderately clear, or quite some interference" +msgstr "Modérément clair, ou quelques interférences" + +#: public/upload/upload.php:57 +msgid "Faint recording, or much interference" +msgstr "Enregistrement faible, ou beaucoup d'interference" + +#: public/upload/upload.php:58 +msgid "Barely audible" +msgstr "Quasiment inaudible" + +#: public/upload/upload.php:60 +msgid "Remarks" +msgstr "Remarques" + +#: public/upload/upload.php:62 +msgid "Recorder manufacturer" +msgstr "Constructeur de l'enregistreur" + +#: public/upload/upload.php:64 +msgid "Recorder model" +msgstr "Modèle de l'enregistreur" + +#: public/upload/upload.php:66 public/explore/record/edit/index.php:70 +msgid "Recorder Serial Number" +msgstr "Numéro de série de l'enregistreur" + +#: public/upload/upload.php:68 +msgid "Samplerate" +msgstr "Fréquence d'échantillonage" + +#: public/upload/upload.php:70 +msgid "Time Expansion Factor" +msgstr "Facteur d'expansion de temps" + +#: public/upload/submit.php:113 +msgid "This file extension is not allowed; please upload a WAV file." +msgstr "" +"Cette extension de fichier n'est pas autorisée; merci de télécharger un son ." +"wav." + +#: public/upload/submit.php:117 +msgid "The file size must be below 10MB." +msgstr "Le fichier doit faire moins de 10MB." + +#: public/upload/submit.php:122 +msgid "The file " +msgstr "Le fichier " + +#: public/upload/submit.php:122 +msgid "has been uploaded." +msgstr "a été téléchargé." + +#: public/upload/submit.php:124 +msgid "Sorry, there was an error uploading your file" +msgstr "Désolé, il y a eu une erreur lors du téléchargement" + +#: public/upload/submit.php:134 +msgid "Incorrect coordinates, please try again." +msgstr "Coordonnées incorrectes, merci de réessayer." + +#: public/upload/submit.php:149 +msgid "Error, incorrect species name." +msgstr "Erreur, espèce incorrecte." + +#: public/upload/submit.php:167 +msgid "Incorrect license" +msgstr "Licence incorrecte" + +#: public/upload/submit.php:174 +msgid "Incorrect Recordist Name." +msgstr "Auteur de l'enregistrement incorrect." + +#: public/upload/submit.php:181 +msgid "Incorrect Country. " +msgstr "Pays incorrect. " + +#: public/upload/submit.php:188 +msgid "Incorrect date." +msgstr "Date incorrecte." + +#: public/upload/submit.php:195 +msgid "Incorrect time." +msgstr "Heure incorrecte." + +#: public/upload/submit.php:202 +msgid "Incorrect sound type." +msgstr "Type de son incorrect." + +#: public/upload/submit.php:209 +msgid "Incorrect quality value." +msgstr "Qualité incorrecte." + +#: public/upload/submit.php:237 +msgid "Form not submitted." +msgstr "Formulaire non soumis." + +#: public/gallery/index.php:16 public/gallery/index.php:27 +msgid "Gallery" +msgstr "Galerie" + +#: public/gallery/upload.php:9 +msgid "Image" +msgstr "Image" + +#: public/gallery/upload.php:42 +msgid "You need to be logged in to upload images." +msgstr "Vous devez être connecté pour télécharger une image." + +#: public/gallery/upload.php:66 +msgid "Can't move your file." +msgstr "Erreur: impossible de déplacer le fichier." + +#: public/gallery/upload.php:69 +msgid "You should select a file to upload !" +msgstr "Vous devez sélectionner un fichier à télécharger !" + +#: public/gallery/gallery.php:32 +msgid "Upload Image" +msgstr "Télécharger une image" + +#: public/auth/login/index.php:16 public/auth/login/index.php:27 +msgid "Login" +msgstr "Connexion" + +#: public/auth/login/index.php:30 public/auth/register/index.php:35 +#: public/explore/users/index.php:48 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: public/auth/login/index.php:31 +msgid "Enter your username.." +msgstr "Entrer un nom d'utilisateur.." + +#: public/auth/login/index.php:33 +msgid "Enter your password.." +msgstr "Entrer votre mot de passe.." + +#: public/auth/login/index.php:36 +msgid "Not yet registered ?" +msgstr "Pas encore inscrit ?" + +#: public/auth/login/login.php:49 public/auth/register/register.php:55 +msgid "You did not enter a proper username." +msgstr "Vous n'avez pas entré un nom d'utilisateur correct." + +#: public/auth/login/login.php:54 public/auth/register/register.php:68 +msgid "You did not enter a proper password." +msgstr "Vous n'avez pas entré de mot de passe." + +#: public/auth/login/login.php:58 public/auth/register/register.php:72 +msgid "You did not submit the register form." +msgstr "Vous n'avez pas soumis le formulaire d'inscription." + +#: public/auth/login/login.php:70 +msgid "Incorrect password, please try again." +msgstr "Mot de passe incorrect, merci de réessayer." + +#: public/auth/register/index.php:17 public/auth/register/index.php:28 +msgid "Register" +msgstr "Inscription" + +#: public/auth/register/index.php:31 public/contact/index.php:25 +msgid "First Name" +msgstr "Prénom" + +#: public/auth/register/index.php:33 public/contact/index.php:28 +msgid "Last Name" +msgstr "Nom" + +#: public/auth/register/index.php:37 +msgid "Password" +msgstr "Mot de passe" + +#: public/auth/register/index.php:39 +msgid "Your email" +msgstr "Votre email" + +#: public/auth/register/index.php:41 +msgid "Your website (optional)" +msgstr "Votre site web (optionnel)" + +#: public/auth/register/index.php:45 +msgid "Already registered ?" +msgstr "Déjà inscrit ?" + +#: public/auth/register/register.php:41 +msgid "You did not enter a proper first name." +msgstr "Vous n'avez pas entré de prénom." + +#: public/auth/register/register.php:48 +msgid "You did not enter a proper last name." +msgstr "Vous n'avez pas entré de nom." + +#: public/auth/register/register.php:62 +msgid "You did not enter a proper email address." +msgstr "Vous n'avez pas entré d'adresse email." + +#: public/home/last-uploaded-file.php:39 +msgid "Error fetch." +msgstr "Erreur de collecte." + +#: public/home/status.php:35 +msgid "records_uploaded" +msgstr "Enregistrements téléchargés" + +#: public/home/status.php:36 +msgid "users_registered" +msgstr "Utilisateurs enregistrés" + +#: public/home/status.php:37 +msgid "taxa_available" +msgstr "Taxons disponibles" + +#: public/home/status.php:45 +msgid "free_space" +msgstr "Espace libre sur le disque" + +#: public/explore/mysteries/index.php:42 +msgid "Mystery recording" +msgstr "Enregistrement mystère" + +#: public/explore/mysteries/index.php:50 +msgid "Recorded on " +msgstr "Enregistré le" + +#: public/explore/mysteries/index.php:50 public/explore/record/index.php:55 +msgid "at" +msgstr "à" + +#: public/explore/spectrograms/index.php:38 public/explore/index.php:15 +#: public/explore/index.php:26 public/explore/search/index.php:16 +#: public/explore/search/index.php:27 +#: public/explore/search/searchrecord.php:117 +#: public/explore/search/searchrecord.php:124 +#: public/explore/random/index.php:33 public/explore/random/index.php:43 +#: public/explore/map/index.php:30 public/explore/map/index.php:48 +#: public/explore/taxa/index.php:31 public/explore/list/index.php:29 +#: public/explore/list/index.php:41 public/explore/users/index.php:31 +#: public/explore/users/index.php:42 public/explore/record/index.php:16 +#: public/search/index.php:68 public/search/index.php:79 +msgid "Explore" +msgstr "Explorer" + +#: public/explore/spectrograms/index.php:49 +msgid "Spectrograms" +msgstr "Spectrogramme" + +#: public/explore/spectrograms/index.php:55 public/explore/record/index.php:55 +msgid "Recorded on" +msgstr "Enregistré le " + +#: public/explore/search/index.php:28 +msgid "Multicriteria recordings Search" +msgstr "Recherche d'enregistrement mutlicritères" + +#: public/explore/search/index.php:30 +msgid "Species name" +msgstr "Nom de l'espèce" + +#: public/explore/search/index.php:32 +msgid "Subspecies name" +msgstr "Nom de la sous-espèce" + +#: public/explore/search/index.php:34 +msgid "Recordist name" +msgstr "Nom de l'auteur de l'enregistrement" + +#: public/explore/search/index.php:36 +msgid "After date" +msgstr "Après la date" + +#: public/explore/search/index.php:38 +msgid "Befora date" +msgstr "Avant la date" + +#: public/explore/search/index.php:40 +msgid "Keyword(s) in remarks (comma separated)" +msgstr "Mot(s) clé dans les remarques (séparés par des virgules)" + +#: public/explore/search/searchrecord.php:102 +msgid "You did not enter any query." +msgstr "Vous n'avez pas entré de champ." + +#: public/explore/search/searchrecord.php:125 +msgid "Search results" +msgstr "Résultats de recherche" + +#: public/explore/search/searchrecord.php:133 public/search/index.php:83 +msgid "No result for this query, please try again." +msgstr "Pas de résultats pour cette requête, merci de réessayer." + +#: public/explore/search/searchrecord.php:139 +#: public/explore/random/index.php:49 public/search/index.php:89 +msgid "File name" +msgstr "Nom du fichier" + +#: public/explore/search/searchrecord.php:142 public/explore/list/index.php:46 +msgid "Datetime" +msgstr "Date et heure" + +#: public/explore/random/index.php:44 +msgid "Random Record" +msgstr "Enregistrement aléatoire" + +#: public/explore/random/index.php:52 public/explore/list/index.php:51 +msgid "Audio" +msgstr "Audio" + +#: public/explore/random/index.php:65 +msgid "Click on the file name to go to the spectrogram view." +msgstr "Cliquer sur le nom du fichier pour voir le spectrogramme." + +#: public/explore/map/index.php:49 +msgid "Record Map" +msgstr "Carte des enregistrements" + +#: public/explore/taxa/index.php:41 +msgid "Taxa" +msgstr "Taxons" + +#: public/explore/taxa/index.php:42 +msgid "These taxa come from INPN TAXREF v14.0." +msgstr "Ces taxons proviennent du TAXREF v14.0 de l'INPN." + +#: public/explore/taxa/index.php:46 +msgid "Kingdom" +msgstr "Règne" + +#: public/explore/taxa/index.php:47 +msgid "Phylum" +msgstr "Phylum" + +#: public/explore/taxa/index.php:48 +msgid "Class" +msgstr "Classe" + +#: public/explore/taxa/index.php:49 +msgid "Order" +msgstr "Ordre" + +#: public/explore/taxa/index.php:50 +msgid "Family" +msgstr "Famille" + +#: public/explore/taxa/index.php:51 +msgid "Subfamily" +msgstr "Sous-famille" + +#: public/explore/taxa/index.php:52 +msgid "Tribu" +msgstr "Tribu" + +#: public/explore/taxa/index.php:53 +msgid "Genus" +msgstr "Genre" + +#: public/explore/list/index.php:42 +msgid "Recording List" +msgstr "Liste des enregistrements" + +#: public/explore/list/index.php:48 public/explore/record/edit/index.php:51 +msgid "File Name" +msgstr "Nom du fichier" + +#: public/explore/list/index.php:72 +msgid "Open with Larynx" +msgstr "Ouvrir avec Larynx" + +#: public/explore/list/index.php:73 +msgid "See GUANO metadata" +msgstr "Voir les métadonées au format GUANO" + +#: public/explore/list/index.php:74 +msgid "Edit record metadata" +msgstr "Editer les métadonnées de l'enregistrement" + +#: public/explore/guano/index.php:29 +msgid "about GUANO" +msgstr "À propos de GUANO" + +#: public/explore/guano/index.php:55 +msgid "Can't fetch data." +msgstr "Impossible de collecter les données." + +#: public/explore/users/index.php:43 +msgid "Users" +msgstr "Utilisateurs" + +#: public/explore/users/index.php:47 +msgid "Name" +msgstr "Nom" + +#: public/explore/users/index.php:49 +msgid "Private message link" +msgstr "Lien vers les messages privés." + +#: public/explore/record/index.php:27 +msgid "Record" +msgstr "Enregistrement" + +#: public/explore/record/index.php:70 +msgid "Can't find the record associated with this id, please try again." +msgstr "" +"Impossible de trouver l'enregistrement associé avec cet id, merci de " +"réessayer." + +#: public/explore/record/edit/index.php:29 +#: public/explore/record/edit/index.php:41 +msgid "Edit" +msgstr "Editer" + +#: public/explore/record/edit/index.php:57 +msgid "Time" +msgstr "Heure" + +#: public/explore/record/edit/index.php:66 +msgid "Recorder Manufacturer" +msgstr "Fabriquant de l'enregistreur" + +#: public/explore/record/edit/index.php:68 +msgid "Recorder Model" +msgstr "Modèle de l'enregistreur" + +#: public/explore/record/edit/index.php:76 +msgid "Can't fetch information on record with id" +msgstr "" +"Impossible de collecter les informations sur l'enregistrement associé avec " +"l'id" + +#: public/about/index.php:27 +msgid "About" +msgstr "À propos" + +#: public/about/index.php:28 +msgid "" +"Chiro-Canto is an online bat sound sharing set of tools, inspired by Xeno-Canto." +msgstr "" +"Chiro-Canto est un outil en ligne de partage de sons de chauve-souris " +"inspiré par Xeno-Canto." + +#: public/about/index.php:30 +msgid "" +"This website is developped with ♥ by Samuel ORTION, a juvenile " +"Geekus biologicus." +msgstr "" +"Ce site web est développé avec ♥ par Samuel ORTION, un Geekus " +"biologicus juvénile." + +#: public/about/index.php:31 +msgid "Source code" +msgstr "Code source" + +#: public/about/index.php:32 +msgid "" +"This project is available under the GNU Affero GPL v3 license at https://forge.ortion." +"xyz/Chiro-Canto/chiro-canto." +msgstr "" +"Ce projet est disponible sous licence libre GNU Affero GPL v3 sur mon dépôt " +"Git : https://" +"forge.ortion.xyz/Chiro-Canto/chiro-canto." + +#: public/contact/index.php:22 +msgid "Contact" +msgstr "Conact" + +#: public/contact/index.php:26 +msgid "Your first name.." +msgstr "Votre prénom.." + +#: public/contact/index.php:29 +msgid "Your last name.." +msgstr "Votre nom.." + +#: public/contact/index.php:31 +msgid "Email" +msgstr "Email" + +#: public/contact/index.php:32 +msgid "Your email.." +msgstr "Votre email.." + +#: public/contact/index.php:34 +msgid "Website" +msgstr "Site web" + +#: public/contact/index.php:35 +msgid "Your website.." +msgstr "Votre site web.." + +#: public/contact/index.php:37 +msgid "Subject" +msgstr "Sujet.." + +#: public/contact/index.php:38 +msgid "Your subject.." +msgstr "Votre sujet.." + +#: public/contact/index.php:40 +msgid "Message" +msgstr "Message" + +#: public/contact/index.php:41 +msgid "Write something.." +msgstr "Ecrivez quelque chose.." + +#: public/contact/sendmail.php:24 +msgid "You have not entered a proper first name." +msgstr "Vous n'avez pas entré de prénom." + +#: public/contact/sendmail.php:29 +msgid "You have not entered a proper last name." +msgstr "Vous n'avez pas entré de nom." + +#: public/contact/sendmail.php:34 +msgid "You have not entered a proper email address." +msgstr "Vous n'avez pas entré d'adresse mail." + +#: public/contact/sendmail.php:39 +msgid "You have not entered a proper subject." +msgstr "Vous n'avez pas entré de sujet." + +#: public/contact/sendmail.php:44 +msgid "You have not entered a proper message." +msgstr "Vous n'avez pas entré de message." + +#: public/contact/sendmail.php:85 +msgid "Message has been sent" +msgstr "Le message a été envoyé." + +#: public/contact/sendmail.php:87 +msgid "Message could not be sent. Mailer Error: " +msgstr "Le message n'a pas pu être envoyé. Erreur du courrielleur : " + +#: public/search/index.php:80 +msgid "Search Results" +msgstr "Résultats de recherche" + +#: public/articles/view.php:5 +msgid "Published on " +msgstr "Publié le" + +#: public/articles/view.php:6 public/articles/list.php:48 +msgid "Return to Homepage" +msgstr "Retour vers la page d'accueuil" + +#: public/articles/list.php:26 +msgid "All Articles" +msgstr "Tous les articles" + +#: public/articles/list.php:36 +msgid "Article" +msgstr "Article" + +#: public/articles/list.php:47 +msgid "New article" +msgstr "Nouvel article" + +#: public/larynx/index.php:32 +msgid "A web tool for bat sound analysis" +msgstr "Une application web pour l'analyse de son" + +#: public/larynx/index.php:103 +msgid "Error: Can't retrieve audio from database in Larynx" +msgstr "Erreur: Impossible de récupérer l'audio dans Larynx" + +#: public/discussion/messages/index.php:29 +msgid "You must be logged in to receive or send messages." +msgstr "Vous devez être connecté pour recevoir ou evoyer des messages." + +#: public/discussion/messages/index.php:76 public/discussion/index.php:41 +#: public/discussion/index.php:52 +msgid "Discussion" +msgstr "Discussion" + +#: public/discussion/messages/index.php:112 +msgid "Enter your message.." +msgstr "Entrer votre message.." + +#: public/discussion/messages/index.php:113 public/discussion/index.php:84 +msgid "Send" +msgstr "Envoyer" + +#: public/discussion/messages/sendmessage.php:36 +msgid "Error: No message author" +msgstr "Erreur: Pas d'auteur du message" + +#: public/discussion/messages/sendmessage.php:41 +msgid "Error: No message destinator" +msgstr "Erreur: Pas de destinataire du message" + +#: public/discussion/messages/sendmessage.php:45 +msgid "Error: No message content" +msgstr "Erreur: Pas de message" + +#: public/discussion/index.php:53 +msgid "New messages" +msgstr "Nouveaux messages" + +#: public/discussion/index.php:76 +msgid "No message received." +msgstr "Pas de message reçus" + +#: public/discussion/index.php:80 +msgid "Send a message" +msgstr "Envoyer un message" + +#: public/discussion/index.php:82 +msgid "Addressee" +msgstr "Destinataire" diff --git a/public/lang/select.php b/public/lang/select.php new file mode 100644 index 0000000..ddefd06 --- /dev/null +++ b/public/lang/select.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/public/larynx/index.php b/public/larynx/index.php index de043b2..ea5e8f1 100755 --- a/public/larynx/index.php +++ b/public/larynx/index.php @@ -5,6 +5,7 @@ error_reporting(E_ALL); session_start(); $root = realpath($_SERVER["DOCUMENT_ROOT"]); $version = "1.0"; +require("$root/lang/gettext.php"); ?> @@ -28,7 +29,7 @@ include("$root/analytics/matomo.php");

Larynx

-

A web tool for bat sound analysis

+

@@ -99,7 +100,7 @@ include("$root/analytics/matomo.php"); \ No newline at end of file diff --git a/public/media/icons/language.jpg b/public/media/icons/language.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b23517585bcfee9d67e3945348d37d2230ef0d7 GIT binary patch literal 30061 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 MUHTj#k1r -
- sign in sign up'?> +
+ sign in sign up'?> +
+ +
+
+ + + +
+
+
\ No newline at end of file diff --git a/public/search/index.php b/public/search/index.php index 35f2aca..7e724da 100755 --- a/public/search/index.php +++ b/public/search/index.php @@ -3,7 +3,8 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $root = realpath($_SERVER['DOCUMENT_ROOT']); -require($root."/database/credentials.php"); +require("$root/lang/gettext.php"); +require("$root/database/credentials.php"); // Connect the database try{ $db = new PDO("mysql:host=$host;dbname=$database;charset=utf8", @@ -46,16 +47,15 @@ if (isset($_POST['search'])) $result = $req->fetchAll(); } } - // print_r($result); } } else { - // header('Location: /'); + header('Location: /explore/search'); } if (empty($result)) { - // header('Location: /'); + header('Location: /explore/search'); } else { ?> @@ -65,7 +65,7 @@ if (empty($result)) - Explore | Chiro - Canto + <?=_('Explore')?> | Chiro - Canto
-

Explore

-

Search Results

+

+

SubjectsAnswersAuthorCreation date
- - - - + + + + diff --git a/public/styles/style.css b/public/styles/style.css index 6e6ebbf..ce69e7b 100755 --- a/public/styles/style.css +++ b/public/styles/style.css @@ -106,7 +106,7 @@ label { input, select, textarea { - /* width: fit-content; */ + width: 100%; /* Full width */ padding: 12px; margin: 0; @@ -119,8 +119,6 @@ textarea { /* Add a top margin */ margin-bottom: 1em; /* Bottom margin */ - resize: vertical - /* Allow the user to vertically resize the textarea (not horizontally) */ ; } @@ -137,16 +135,18 @@ input[type=submit] { background-color: #4CAF50; color: white; padding: 12px 20px; + margin: 0.1em; border: none; border-radius: 4px; cursor: pointer; - /* width: auto; */ + width: auto; } input[type=reset] { background-color: #af4c4c; color: white; padding: 12px 20px; + margin: 0.1em; border: none; border-radius: 4px; cursor: pointer; @@ -240,6 +240,7 @@ iframe html body { display: flex; padding-top: 0; padding-bottom: 0; + padding: 0.5em; } .container.row { @@ -736,6 +737,7 @@ section.observation label { #map { object-fit: contain; + height: 50vh; } #map img { @@ -744,4 +746,24 @@ section.observation label { .fa { height: 1em; +} + +.language { + background: transparent; + margin: 0; + padding: 0.1em; +} + +.language:hover { + background: transparent; +} + +.language::after { + content: none; +} + +#language { + position: absolute; + right: 2.5em; + top: 2.5em; } \ No newline at end of file diff --git a/public/upload/index.php b/public/upload/index.php index 69b8305..86c2b32 100755 --- a/public/upload/index.php +++ b/public/upload/index.php @@ -15,6 +15,7 @@ if (!isset($_SESSION['username']) or $_SESSION['username'] == "") { } $root = realpath($_SERVER["DOCUMENT_ROOT"]); +require("$root/lang/gettext.php"); ?> @@ -22,7 +23,7 @@ $root = realpath($_SERVER["DOCUMENT_ROOT"]); - Upload | Chiro - Canto + <?=_('Upload')?> | Chiro - Canto
-

Upload Your Recording

+

'.$_SESSION['error_msg'].'' : ""; if (isset($_GET['step'])) { diff --git a/public/upload/location.php b/public/upload/location.php index 573071f..3dee4df 100755 --- a/public/upload/location.php +++ b/public/upload/location.php @@ -1,16 +1,16 @@
- +
- +
diff --git a/public/upload/submit.php b/public/upload/submit.php index 5304e72..c8ee650 100644 --- a/public/upload/submit.php +++ b/public/upload/submit.php @@ -1,7 +1,8 @@ implode(',', $_SESSION['observation']['type']), "duration"=>$t, "make"=>isset($_SESSION['observation']['make']) ? $_SESSION['observation']['make'] : "", - "model"=>isset($_SESSION['osbservation']['model']) ? $_SESSION['osbservation']['model'] : "", + "model"=>isset($_SESSION['osbservation']['model']) ? $_SESSION['observation']['model'] : "", "serial"=>isset($_SESSION['observation']['serial']) ? $_SESSION['observation']['serial'] : "", "sample_rate"=>isset($_SESSION['observation']['sample_rate']) ? $_SESSION['observation']['sample_rate'] : 384, "time_expansion"=>isset($_SESSION['observation']['time_expansion']) ? $_SESSION['observation']['time_expansion'] : 10, @@ -109,18 +110,18 @@ if (isset($_POST['submit'])) $file_extension_allowed = ['wav']; if (! in_array($fileExtension, $file_extension_allowed)) { - $_SESSION['error_msg'] .= "This file extension is not allowed; please upload a WAV file.\n"; + $_SESSION['error_msg'] .= _("This file extension is not allowed; please upload a WAV file."); } if ($fileSize > 10*1024*1024) { - $_SESSION['error_msg'] .= "The file size must be below 10MB. \n"; + $_SESSION['error_msg'] .= _("The file size must be below 10MB."); } print_r($target_file); if (move_uploaded_file($_FILES['file']['tmp_name'], $target_file)) { - echo "The file ". htmlspecialchars(basename($_FILES['file']['name']))." has been uploaded."; + echo _("The file "). htmlspecialchars(basename($_FILES['file']['name']))." "._("has been uploaded."); } else { - echo "Sorry, there was an error uploading your file"; + echo _("Sorry, there was an error uploading your file"); } $_SESSION['observation']['file'] = basename($_FILES['file']['name']); if (isset($_POST['latlng'])) { @@ -130,7 +131,7 @@ if (isset($_POST['submit'])) $_SESSION['observation']['lng'] = explode(',', $latlng)[1]; } else { - $_SESSION['error_msg'] .= "Incorrect coordinates, please try again."; + $_SESSION['error_msg'] .= _("Incorrect coordinates, please try again."); } if (isset($_POST['spchoice'])) { @@ -145,7 +146,7 @@ if (isset($_POST['submit'])) setcookie('species', $_SESSION['observation']['species'], time() + 86400 * 365.2, "/"); } else { - $_SESSION['error_msg'].= "Error, incorrect species name.\n"; + $_SESSION['error_msg'].= _("Error, incorrect species name."); } if (isset($_POST['subspecies'])) { @@ -163,49 +164,49 @@ if (isset($_POST['submit'])) setcookie('license', $_SESSION['observation']['license'], time() + 86400 * 365.2, "/"); } else { - $_SESSION['error_msg'] .= "Incorrect license\n"; + $_SESSION['error_msg'] .= _("Incorrect license"); } if (isset($_POST['name'])) { $_SESSION['observation']['recordist-name'] = $_POST['name']; setcookie('name', $_SESSION['observation']['recordist-name'], time() + 86400 * 365.2, "/"); } else { - $_SESSION['error_msg'] .= "Incorrect Recordist Name.\n"; + $_SESSION['error_msg'] .= _("Incorrect Recordist Name."); } if (isset($_POST['loc-country'])) { $_SESSION['observation']['country'] = $_POST['loc-country']; } else { - $_SESSION['error_msg'] .= "Incorrect Country. \n"; + $_SESSION['error_msg'] .= _("Incorrect Country. "); } if (isset($_POST['recording-date'])) { $_SESSION['observation']['date'] = $_POST['recording-date']; } else { - $_SESSION['error_msg'] .= "Incorrect date. \n"; + $_SESSION['error_msg'] .= _("Incorrect date."); } if (isset($_POST['recording-time'])) { $_SESSION['observation']['time'] = $_POST['recording-time']; } else { - $_SESSION['error_msg'] .= "Incorrect time. \n"; + $_SESSION['error_msg'] .= _("Incorrect time."); } if (isset($_POST['sound-type-option'])) { $_SESSION['observation']['type'] = $_POST['sound-type-option']; } else { - $_SESSION['error_msg'] .= "Incorrect sound type. \n"; + $_SESSION['error_msg'] .= _("Incorrect sound type."); } if (isset($_POST['quality'])) { $_SESSION['observation']['quality'] = $_POST['quality']; } else { - $_SESSION['error_msg'] .= "Incorrect quality value.\n"; + $_SESSION['error_msg'] .= _("Incorrect quality value."); } if (isset($_POST['remarks'])) { @@ -233,7 +234,7 @@ if (isset($_POST['submit'])) $_SESSION['observation']['time_expansion'] = $_POST['time_expansion']; } } else { - $_SESSION['error_msg'] = "Form not submitted.\n"; + $_SESSION['error_msg'] = _("Form not submitted."); } if ($_SESSION['error_msg'] == "") { diff --git a/public/upload/upload.php b/public/upload/upload.php index 99b2847..be8cb05 100644 --- a/public/upload/upload.php +++ b/public/upload/upload.php @@ -5,22 +5,22 @@
diff --git a/totranslate.txt b/totranslate.txt new file mode 100644 index 0000000..5d78a43 --- /dev/null +++ b/totranslate.txt @@ -0,0 +1,150 @@ +./public/index.php +./public/menu.php +./public/header.php +./public/footer.php +./public/forum/index.php +./public/forum/categories.php +./public/forum/createcategory.php +./public/forum/newtopic.php +./public/forum/createtopic.php +./public/forum/topics/index.php +./public/forum/topics/topics.php +./public/forum/topics/sendreply.php +./public/upload/index.php +./public/upload/location.php +./public/upload/metadata.php +./public/upload/verify.php +./public/upload/submitlocation.php +./public/upload/submitobservation.php +./public/upload/submitmetadata.php +./public/upload/getspecieshint.php +./public/upload/upload.php +./public/upload/submit.php +./public/gallery/index.php +./public/gallery/upload.php +./public/gallery/gallery.php +./public/auth/login/index.php +./public/auth/login/login.php +./public/auth/register/index.php +./public/auth/register/register.php +./public/auth/index.php +./public/database/credentials.php +./public/home/last-uploaded-file.php +./public/home/status.php +./public/vendor/erusev/parsedown/Parsedown.php +./public/vendor/composer/installed.php +./public/vendor/composer/InstalledVersions.php +./public/vendor/composer/autoload_namespaces.php +./public/vendor/composer/autoload_psr4.php +./public/vendor/composer/autoload_classmap.php +./public/vendor/composer/autoload_static.php +./public/vendor/composer/platform_check.php +./public/vendor/composer/autoload_real.php +./public/vendor/composer/ClassLoader.php +./public/vendor/autoload.php +./public/vendor/phpmailer/phpmailer/get_oauth_token.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php +./public/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php +./public/vendor/phpmailer/phpmailer/src/Exception.php +./public/vendor/phpmailer/phpmailer/src/OAuth.php +./public/vendor/phpmailer/phpmailer/src/PHPMailer.php +./public/vendor/phpmailer/phpmailer/src/POP3.php +./public/vendor/phpmailer/phpmailer/src/SMTP.php +./public/src/dump_taxref_into_database.php +./public/explore/mysteries/index.php +./public/explore/spectrograms/index.php +./public/explore/index.php +./public/explore/search/index.php +./public/explore/search/searchrecord.php +./public/explore/random/index.php +./public/explore/map/index.php +./public/explore/taxa/index.php +./public/explore/list/index.php +./public/explore/guano/index.php +./public/explore/users/index.php +./public/explore/record/index.php +./public/explore/record/edit/index.php +./public/explore/record/edit/update.php +./public/about/index.php +./public/contact/index.php +./public/contact/sendmail.php +./public/contact/config.php +./public/api/v1/doc/index.php +./public/api/v1/records/index.php +./public/api/v1/records/insertion/index.php +./public/api/v1/oauth2/index.php +./public/api/v1/oauth2/oauth2client.php +./public/api/v1/index.php +./public/api/index.php +./public/search/searchbar.php +./public/search/index.php +./public/analytics/matomo.php +./public/analytics/owa.php +./public/articles/index.php +./public/articles/Article.php +./public/articles/config.php +./public/articles/home.php +./public/articles/archive.php +./public/articles/view.php +./public/articles/admin.php +./public/articles/list.php +./public/articles/edit.php +./public/larynx/index.php +./public/larynx/v/2.0/index.php +./public/larynx/v/2.1/index.php +./public/discussion/messages/index.php +./public/discussion/messages/sendmessage.php +./public/discussion/notification.php +./public/discussion/index.php +./public/lang/en/lang.php +./public/lang/gettext.php +./public/lang/select.php diff --git a/translate.sh b/translate.sh new file mode 100644 index 0000000..9861cb9 --- /dev/null +++ b/translate.sh @@ -0,0 +1,4 @@ +# Generate php file list +find -name *.php > totranslate.txt +# Generate translation template +xgettext -f totranslate.txt -o public/lang/locale/chiro-canto.pot \ No newline at end of file
File nameAuthorLicenseDate